:root{color-scheme:light;--bg:#f6f7f4;--surface:#fff;--ink:#202b2a;--muted:#697574;--line:#e2e7e1;--green:#287754;--red:#b64134;--amber:#956014;--idle:#8a938d;--unknown:#7b7593}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;line-height:1.5}.dashboard{max-width:1120px;margin:auto;padding:28px 32px}header,.heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-size:14px;font-weight:750;letter-spacing:.09em;display:flex;align-items:center;gap:9px}.brand-light{color:var(--muted);font-weight:450}.brand-dot{width:10px;height:10px;background:var(--green);border-radius:50%}.heading{margin:38px 0 22px}h1{font-size:30px;line-height:1.15;font-weight:650;letter-spacing:-.04em;margin:0 0 9px}p{margin:0}.muted{color:var(--muted)}.small{font-size:12px}.update{text-align:right;font-size:12px;color:var(--muted)}.update button{display:block;margin:5px 0 0 auto}button{font:inherit;cursor:pointer}.text-button{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:7px;padding:6px 12px;font-size:12px}.text-button:hover{border-color:#9ba79e}.text-button:focus-visible{outline:2px solid var(--green);outline-offset:3px}.text-button:disabled{opacity:.5;cursor:wait}.banner{padding:13px 17px;border:1px solid var(--line);border-left:4px solid var(--unknown);border-radius:7px;background:var(--surface);font-weight:550}.banner.up{border-left-color:var(--green)}.banner.down{border-left-color:var(--red)}.banner.warn{border-left-color:var(--amber)}.legend{display:flex;gap:22px;font-size:11px;color:var(--muted);flex-wrap:wrap;margin:14px 0 26px}.legend span{display:flex;align-items:center;gap:6px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--idle);flex-shrink:0}.dot.up,.bar.up{background:var(--green)}.dot.down,.bar.down{background:var(--red)}.dot.warn,.bar.warn{background:var(--amber)}.dot.idle,.bar.idle{background:#a8b0a9}.dot.unknown,.bar.unknown{background:var(--unknown)}h2{font-size:12px;text-transform:uppercase;letter-spacing:.09em;font-weight:650;margin:26px 0 10px;display:flex;gap:10px;align-items:center}.count{color:var(--muted);font-size:11px;font-weight:400}.group{margin-bottom:27px}.row{display:grid;grid-template-columns:minmax(260px,1.4fr) minmax(130px,.8fr) minmax(155px,.65fr);gap:24px;align-items:center;padding:16px 18px;background:var(--surface);border:1px solid var(--line);border-bottom:0}.row:nth-child(2){border-radius:9px 9px 0 0}.row:last-child{border-bottom:1px solid var(--line);border-radius:0 0 9px 9px}h3{display:flex;gap:9px;align-items:center;font-size:14px;font-weight:600;margin:0 0 4px}.detail{font-size:12px;color:#586660;overflow-wrap:anywhere}.note{font-size:11px;color:var(--muted);margin-top:3px}.history{display:flex;gap:2px;height:22px;align-items:stretch}.bar{flex:1;min-width:1px;border-radius:2px;opacity:.82}.bar.empty{background:#e9ede7}.measurement{text-align:right;display:flex;flex-direction:column;gap:4px}.state{font-size:12px;font-weight:600}.state.up{color:var(--green)}.state.down{color:var(--red)}.state.warn{color:var(--amber)}.state.idle{color:var(--idle)}.state.unknown{color:var(--unknown)}footer{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding:18px 0 12px}footer p{margin-bottom:5px}.login-page{min-height:100dvh;display:grid;place-items:center;padding:25px}.login-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:38px;max-width:440px;width:100%}.login-card .brand{margin-bottom:42px}.login-card h1{font-size:29px}#telegram-login{margin:30px 0 18px;min-height:42px}#login-error{font-size:13px;color:var(--red);margin-bottom:15px}.login-card .small{margin-top:28px}
.row:nth-child(2):last-child{border-radius:9px}
@media(max-width:720px){.dashboard{padding:20px 16px}.heading{margin-top:30px;align-items:flex-start}h1{font-size:26px}.heading .muted{font-size:12px}.row{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px}.history{grid-column:1/-1;grid-row:2;height:12px;gap:3px}.measurement{max-width:160px}.legend{gap:12px}.note{max-width:340px}.login-card{padding:28px}.update{min-width:106px;font-size:10px}}
