:root{--ground:#f9fbfc;--surface:#fff;--raised:#f4f6f8;--active:#ebedee;--border:#e8eaec;--rule:#f0f1f2;--control:#cdced1;--text:#131416;--muted:#5d5f60;--faint:#6b6b6b;--accent:#1b6c80;--positive:#1e7b4f;--negative:#c4242a;--warning:#92400e;--primary:#1d1f20;--pill-positive-bg:#dcfae5;--pill-positive-ink:#04250e;--pill-negative-bg:#ffedea;--pill-negative-ink:#831c1e;--pill-warning-bg:#fffbeb;--pill-warning-ink:#92400e;--pill-neutral-bg:#ebedee;--pill-neutral-ink:#353736;--radius-card:8px;--radius-control:6px;--radius-sheet:16px;--sheet-inset:8px;--row-height:48px;--sidebar-width:228px;--gap:24px;--pad:24px;--control-height:32px;--fs-title:22px;--fs-section:16px;--fs-kpi:28px;--fs-body:14px;--fs-small:12px;--font:"IBM Plex Sans", Inter, system-ui, sans-serif;--mono: "IBM Plex Mono", ui-monospace, Menlo, monospace;--t-hover:.12s;--ease-out:cubic-bezier(.2, .8, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{margin:0}body{background:var(--ground);color:var(--text);font:400 var(--fs-body) / 20px var(--font);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,p{margin:0}h1{font-size:var(--fs-title);letter-spacing:-.01em;font-weight:600;line-height:28px}h2{font-size:18px;font-weight:500;line-height:24px}h3{font-size:var(--fs-section);font-weight:500;line-height:22px}.num,td.num,.kpi-value{font-variant-numeric:tabular-nums}.mono{font-family:var(--mono);font-size:13px}.muted{color:var(--muted)}.small{font-size:var(--fs-small);line-height:16px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.app{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);grid-template-rows:48px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{flex-direction:column;grid-row:1/span 2;gap:2px;height:100svh;padding:12px 12px 16px;display:flex;position:sticky;top:0;overflow:auto}.brand{align-items:center;gap:10px;height:36px;margin-bottom:14px;padding:0 8px;font-weight:600;display:flex}.brand svg{flex:none}.brand small{color:var(--muted);font-weight:400;font-size:var(--fs-small);line-height:14px;display:block}.nav-group{color:var(--muted);font-size:var(--fs-small);margin:18px 8px 6px}.nav-item{height:34px;color:var(--muted);transition:background-color var(--t-hover) ease, color var(--t-hover) ease;border-radius:8px;align-items:center;gap:10px;padding:0 8px;display:flex}.nav-item:hover{color:var(--text);background:var(--raised)}.nav-item.active{background:var(--active);color:var(--text)}.nav-item svg{flex:none;width:16px;height:16px}.nav-item .count{font-size:var(--fs-small);color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto}.sidebar-foot{align-items:center;gap:10px;margin-top:auto;padding:8px;display:flex}.sidebar-foot .who{flex:1;min-width:0}.sidebar-foot .who div{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.topbar{justify-content:center;align-items:center;gap:12px;padding:0 24px 0 0;display:flex;position:relative}.search{width:min(548px,100%);position:relative}.search input{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);width:100%;height:32px;padding:0 64px 0 34px}.search svg{width:14px;height:14px;color:var(--muted);position:absolute;top:9px;left:11px}.search kbd{font:500 11px/18px var(--font);color:var(--muted);border:1px solid var(--border);background:var(--raised);border-radius:4px;padding:0 6px;position:absolute;top:6px;right:8px}.results{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:4px;position:absolute;top:36px;left:0;right:0;box-shadow:0 8px 24px #00000014}.results a{border-radius:6px;justify-content:space-between;gap:12px;padding:8px 10px;display:flex}.results a:hover,.results a[aria-selected=true]{background:var(--raised)}.sheet{margin:0 var(--sheet-inset) var(--sheet-inset) 0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sheet);grid-column:2;min-width:0}.canvas{padding:24px var(--pad) 40px;gap:var(--gap);align-content:start;display:grid}.title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.title-row .sub{color:var(--muted);max-width:72ch;margin-top:4px;font-size:15px;line-height:22px}.crumbs{color:var(--muted);gap:6px;margin-bottom:6px;display:flex}.crumbs a:hover{color:var(--text)}.actions{align-items:center;gap:8px;display:flex}.stamp{color:var(--muted);font-size:var(--fs-small)}.section-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.section-head .stamp{margin-left:8px}.split{gap:var(--gap);grid-template-columns:minmax(0,1fr) 372px;align-items:start;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);min-width:0;padding:20px}.panel.flush{padding:0}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;padding:16px 20px 4px;display:flex}.kpis{border:1px solid var(--border);border-radius:var(--radius-card);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.kpi{padding:14px 20px 16px}.kpi+.kpi{border-left:1px solid var(--border)}.kpi-label{color:var(--muted);font-weight:500}.kpi-value{font-size:var(--fs-kpi);letter-spacing:-.01em;margin-top:4px;font-weight:400;line-height:34px}.kpi-value .unit{font-size:var(--fs-body);color:var(--muted);letter-spacing:0;margin-left:4px}.kpi-note{color:var(--muted);margin-top:2px;font-size:13px}.where{grid-template-columns:repeat(var(--cities,3), minmax(0, 1fr));border:1px solid var(--border);border-radius:var(--radius-card);display:grid}.city{min-width:0;padding:14px 20px 16px}.city+.city{border-left:1px solid var(--border)}.city-name{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.city-name strong{font-weight:500}.city-name span{color:var(--muted);font-size:var(--fs-small)}.blocks{flex-wrap:wrap;gap:3px;margin:12px 0 8px;display:flex}.block{background:var(--accent);border-radius:2px;width:18px;height:12px}.block.stopped{outline:1.5px solid var(--control);outline-offset:-1.5px;background:0 0}.block.down{background:var(--negative)}.block.changing,.block.unknown{background:var(--control)}.city-list{color:var(--muted);font-size:13px;line-height:18px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th{text-align:left;color:var(--muted);white-space:nowrap;padding:10px 12px;font-size:13px;font-weight:400}td{border-top:1px solid var(--rule);vertical-align:baseline;padding:12px}th:first-child,td:first-child{padding-left:20px}th:last-child,td:last-child{padding-right:20px}td.num,th.num{text-align:right}tbody tr{transition:background-color var(--t-hover) ease}tbody tr.link{cursor:pointer}tbody tr.link:hover{background:var(--raised)}.cell-main{font-weight:500}.cell-sub{color:var(--muted);margin-top:2px;font-size:13px;line-height:18px}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.list{display:grid}.item{border-top:1px solid var(--rule);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 12px;padding:12px 20px;display:grid}.item:first-child{border-top:0}.item a.cell-main:hover{text-underline-offset:3px;text-decoration:underline}.health{white-space:nowrap;flex:none;align-items:center;gap:7px;display:inline-flex}.dot{background:var(--control);border-radius:50%;flex:none;width:7px;height:7px}.health.up .dot{background:var(--positive)}.health.down .dot,.health.partly-up .dot{background:var(--negative)}.health.stopped .dot{outline:1.5px solid var(--muted);outline-offset:-1.5px;background:0 0}.health.down,.health.partly-up{color:var(--negative)}.pill{height:22px;font-size:var(--fs-small);background:var(--pill-neutral-bg);color:var(--pill-neutral-ink);white-space:nowrap;border-radius:999px;flex:none;align-items:center;padding:0 8px;font-weight:500;display:inline-flex}.pill.positive{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.pill.negative{background:var(--pill-negative-bg);color:var(--pill-negative-ink)}.pill.warning{background:var(--pill-warning-bg);color:var(--pill-warning-ink)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip-link{background:var(--raised);border-radius:6px;align-items:center;height:24px;padding:0 8px;font-size:13px;display:inline-flex}.chip-link:hover{background:var(--active)}.tabs{border-bottom:1px solid var(--border);gap:24px;display:flex;overflow-x:auto}.tab{color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 0}.tab:hover{color:var(--text)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--text);font-weight:500}.tab .n{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:6px;font-weight:400}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.btn{height:var(--control-height);border-radius:var(--radius-control);border:1px solid var(--control);background:var(--surface);cursor:pointer;white-space:nowrap;transition:background-color var(--t-hover) ease, transform 80ms var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:0 12px;font-weight:500;display:inline-flex}.btn:hover{background:var(--raised)}.btn:active{transform:translateY(1px)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.primary:hover{background:#000}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--raised)}.btn:disabled{opacity:.6;cursor:default;transform:none}.input,select.input,textarea.input{border:1px solid var(--border);background:var(--surface);border-radius:10px;width:100%;height:40px;padding:0 12px}textarea.input{resize:vertical;height:auto;min-height:96px;padding:10px 12px;line-height:20px}.search-field{border:1px solid var(--border);border-radius:var(--radius-control);background:var(--surface);width:280px;height:32px;padding:0 10px}.field{gap:8px;display:grid}.field>span{font-weight:500}.field .hint{color:var(--muted);font-size:var(--fs-small)}.error{color:var(--negative)}.form-row{gap:var(--gap);border-top:1px solid var(--border);grid-template-columns:360px minmax(0,1fr);padding:24px 0;display:grid}.form-row:first-of-type{border-top:0}.form-row .label h3{margin-top:6px}.form-row .label p{color:var(--muted);margin-top:4px}.form-panel{background:#fafafa;border-radius:16px;gap:16px;padding:16px;display:grid}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.kv{grid-template-columns:112px minmax(0,1fr);gap:10px 12px;display:grid}.kv dt{color:var(--muted)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.env{border:1px solid var(--border);border-radius:var(--radius-card)}.env-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.env-head .left{align-items:center;gap:12px;min-width:0;display:flex}.env-body{gap:14px;padding:0 20px 16px;display:grid}.env table th:first-child,.env table td:first-child{padding-left:20px}.empty{border:1px dashed var(--control);border-radius:var(--radius-control);min-height:80px;color:var(--muted);text-align:center;grid-column:1/-1;place-items:center;padding:16px;display:grid}.skeleton{background:var(--raised);border-radius:4px;display:inline-block}.avatar{border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:11px;font-weight:600;display:inline-grid;overflow:hidden}.avatar img{width:100%;height:100%}.signin{background:var(--ground);place-items:center;min-height:100svh;padding:24px;display:grid}.signin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sheet);gap:16px;width:min(440px,100%);padding:28px;display:grid}.menu-toggle{display:none}@media (width<=1100px){.split{grid-template-columns:minmax(0,1fr)}.form-row{grid-template-columns:minmax(0,1fr);gap:12px}}@media (width<=900px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:40;background:var(--surface);width:100%;height:100%;transition:transform .2s var(--ease-out);position:fixed;inset:0;transform:translate(-100%)}.sidebar.open{transform:none}.topbar{background:var(--ground);z-index:30;grid-column:1;justify-content:space-between;padding:0 16px;position:sticky;top:0}.menu-toggle{display:inline-flex}.search{display:none}.sheet{border:0;border-radius:0;grid-column:1;margin:0}.canvas{padding:16px 16px 32px}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:row}.kpi+.kpi{border-left:0}.kpi:nth-child(2n){border-left:1px solid var(--border)}.kpi:nth-child(n+3){border-top:1px solid var(--border)}.where{grid-template-columns:minmax(0,1fr)}.city+.city{border-left:0;border-top:1px solid var(--border)}.search-field{width:100%}.form-grid{grid-template-columns:minmax(0,1fr)}.hide-phone{display:none}td,th{padding:10px 8px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
