*{margin:0;padding:0;box-sizing:border-box}:root{--ground: #171719;--surface: #131217;--raised: #212023;--rule: #242427;--control: #3a3a3e;--ink: #ffffff;--ink-2: #bdbdc0;--mute: #8a8c92;--accent: #4a8ad6;--positive: #44a282;--negative: #e5566f;--warning: #d9a441;--pill-neg-bg: #2c1a20;--pill-neg-ink: #ef6f86;--pill-warn-bg: #2a2416;--pill-warn-ink: #d9a441;--pill-neutral-bg: #212023;--pill-neutral-ink: #bdbdc0;--pill-pos-bg: #1b2828;--pill-pos-ink: #5fc39c;--unit-ok: #4a4a50;--shadow: 0 12px 28px rgba(0,0,0,.2);--radius-card: 6px;--gap: 24px;--bg: var(--ground);--card: var(--surface);--card-hover: var(--raised);--border: var(--rule);--line: var(--rule);--text: var(--ink);--text-sub: var(--ink-2);--muted: var(--mute);--ok: var(--positive);--err: var(--negative);--warn: var(--warning);--badge-text: #0b0b0c;--stat-bg: rgba(255,255,255,.03);--hover-border: #333337;--overlay: rgba(0,0,0,.6);--modal-close-hover: rgba(255,255,255,.05);--table-hover: rgba(255,255,255,.025);--admin-bg: rgba(74,138,214,.1);--admin-bg-hover: rgba(74,138,214,.2);--badge-online-bg: rgba(68,162,130,.15);--badge-offline-bg: rgba(229,86,111,.15);--warn-bg: rgba(217,164,65,.12)}[data-theme=light]{--ground: #f4f4f5;--surface: #ffffff;--raised: #f0f0f2;--rule: #e4e4e7;--control: #d4d4d8;--ink: #18181b;--ink-2: #3f3f46;--mute: #61636a;--accent: #2f6fbf;--positive: #2b7f63;--negative: #c4304b;--warning: #946110;--pill-neg-bg: #fbe9ec;--pill-neg-ink: #a8253e;--pill-warn-bg: #f8efdc;--pill-warn-ink: #7f530c;--pill-neutral-bg: #f0f0f2;--pill-neutral-ink: #3f3f46;--pill-pos-bg: #e6f3ee;--pill-pos-ink: #1f6b51;--unit-ok: #c9c9ce;--shadow: none;--badge-text: #ffffff;--stat-bg: rgba(0,0,0,.03);--hover-border: #d4d4d8;--overlay: rgba(0,0,0,.4);--modal-close-hover: rgba(0,0,0,.05);--table-hover: rgba(0,0,0,.025);--admin-bg: rgba(47,111,191,.1);--admin-bg-hover: rgba(47,111,191,.2);--badge-online-bg: rgba(43,127,99,.12);--badge-offline-bg: rgba(196,48,75,.12);--warn-bg: rgba(148,97,16,.12)}body{background:var(--bg);color:var(--text);font-family:Public Sans,Pretendard Variable,Pretendard,-apple-system,sans-serif;font-size:13px;min-height:100vh}.modal-overlay{display:none;position:fixed;inset:0;background:var(--overlay);z-index:200;justify-content:center;align-items:center}.modal-overlay.open{display:flex}.modal{background:var(--card);border:1px solid var(--border);border-radius:16px;width:90%;max-width:700px;max-height:80vh;overflow-y:auto;padding:24px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-header h2{font-size:18px;font-weight:700}.modal-close{background:none;border:none;color:var(--text-sub);font-size:24px;cursor:pointer;padding:4px 8px;border-radius:8px}.area-table{width:100%;border-collapse:collapse}.area-table th{text-align:left;font-size:11px;font-weight:600;color:var(--text-sub);padding:8px 12px;border-bottom:1px solid var(--border);text-transform:uppercase}.area-table td{font-size:13px;padding:10px 12px;border-bottom:1px solid var(--border)}.area-table tr:hover td{background:var(--table-hover)}.alarm-history{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.alarm-history h3{font-size:13px;font-weight:600;color:var(--text-sub);margin-bottom:12px}.alarm-chart{display:flex;gap:8px;align-items:flex-end;height:140px;padding-bottom:36px;position:relative}.alarm-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;position:relative}.alarm-bar-count{font-size:10px;font-weight:700;color:var(--text-sub);margin-bottom:4px;min-height:14px}.alarm-bar-stack{flex:1;width:100%;max-width:40px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;border-radius:4px 4px 0 0;overflow:hidden}.alarm-bar{width:100%;border-radius:3px;min-height:0;transition:height .3s}.alarm-bar.t4{background:var(--err)}.alarm-bar.t5{background:var(--warn)}.alarm-bar-date{font-size:10px;color:var(--text-sub);margin-top:6px}.alarm-bar-day{font-size:9px;color:var(--muted)}.alarm-legend{display:flex;gap:16px;margin-top:10px;font-size:11px;color:var(--text-sub)}.alarm-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px;vertical-align:middle}.alarm-dot.t4{background:var(--err)}.alarm-dot.t5{background:var(--warn)}.loading{display:flex;justify-content:center;align-items:center;height:300px;color:var(--text-sub);font-size:14px}.spinner{width:24px;height:24px;border:2px solid var(--border);border-top:2px solid var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-right:10px}@keyframes spin{to{transform:rotate(360deg)}}.login-wrap{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--bg)}.login-box{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:40px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px}.login-box h1{font-size:22px;font-weight:700;text-align:center}.login-sub{font-size:13px;color:var(--text-sub);text-align:center}.login-error{font-size:13px;color:var(--err);background:var(--badge-offline-bg);padding:8px 12px;border-radius:8px;text-align:center}.login-box input{background:var(--stat-bg);border:1px solid var(--border);border-radius:8px;padding:12px 14px;font-size:14px;color:var(--text);outline:none;transition:border-color .15s}.login-box input:focus{border-color:var(--accent)}.login-box input::placeholder{color:var(--muted)}.login-box button{background:var(--accent);color:var(--badge-text);border:none;border-radius:8px;padding:12px;font-size:14px;font-weight:600;cursor:pointer;transition:opacity .15s}.login-box button:hover{opacity:.85}.login-box button:disabled{opacity:.5;cursor:not-allowed}.pw-form{display:flex;flex-direction:column;gap:12px}.pw-form input{background:var(--stat-bg);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:14px;color:var(--text);outline:none}.pw-form input:focus{border-color:var(--accent)}.pw-form input::placeholder{color:var(--muted)}.pw-form button{background:var(--accent);color:var(--badge-text);border:none;border-radius:8px;padding:10px;font-size:14px;font-weight:600;cursor:pointer}.pw-form button:hover{opacity:.85}.pw-form button:disabled{opacity:.5;cursor:not-allowed}.logout-btn{background:var(--stat-bg);border:1px solid var(--border);color:var(--text-sub);font-size:11px;font-weight:600;padding:4px 12px;border-radius:8px;cursor:pointer;transition:background .15s}.logout-btn:hover{background:var(--hover-border)}.inquiry-page{max-width:1400px;margin:0 auto;padding:24px 32px 80px}.inquiry-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0 20px;flex-wrap:wrap}.inquiry-title{display:flex;align-items:center;gap:12px}.inquiry-title h2{font-size:20px;font-weight:700;color:var(--text)}.inquiry-badges{display:flex;gap:8px}.inq-badge{font-size:12px;font-weight:600;padding:3px 10px;border-radius:20px}.inq-badge.warn{background:var(--warn-bg);color:var(--warn)}.inq-badge.ok{background:var(--badge-online-bg);color:var(--ok)}.inquiry-actions{display:flex;align-items:center;gap:10px}.inquiry-filter{display:flex;background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}.inquiry-filter button{padding:8px 14px;background:transparent;color:var(--text-sub);border:none;font-size:13px;cursor:pointer;transition:background .15s}.inquiry-filter button:hover{background:var(--card-hover)}.inquiry-filter button.active{background:var(--accent);color:var(--badge-text);font-weight:600}.icon-btn{width:36px;height:36px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text-sub);font-size:16px;cursor:pointer;transition:background .15s}.icon-btn:hover{background:var(--card-hover)}.inquiry-empty{text-align:center;padding:80px 20px;color:var(--muted);background:var(--card);border:1px solid var(--border);border-radius:14px}.inquiry-table-wrap{background:var(--card);border:1px solid var(--border);border-radius:14px;overflow:hidden}.inquiry-table{width:100%;border-collapse:collapse}.inquiry-table thead th{background:var(--stat-bg);color:var(--text-sub);font-size:12px;font-weight:600;text-align:left;padding:12px 14px;border-bottom:1px solid var(--border)}.inquiry-table tbody td{padding:14px;font-size:13px;color:var(--text);border-bottom:1px solid var(--border)}.inquiry-table tbody tr:last-child td{border-bottom:none}.inq-row{cursor:pointer;transition:background .15s}.inq-row:hover{background:var(--table-hover)}.inq-title-cell{font-weight:500;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inq-status{display:inline-block;font-size:11px;font-weight:700;padding:3px 10px;border-radius:8px}.inq-status.pending{background:var(--warn-bg);color:var(--warn)}.inq-status.done{background:var(--badge-online-bg);color:var(--ok)}.modal-overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:center;justify-content:center;z-index:200;padding:20px}.inquiry-modal{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:28px;width:100%;max-width:720px;max-height:88vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.inq-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.inq-modal-header h3{font-size:18px;font-weight:700;color:var(--text);margin:6px 0}.inq-modal-meta{display:flex;gap:8px;align-items:center;margin-bottom:6px}.inq-chip{font-size:11px;font-weight:700;padding:3px 8px;border-radius:8px;background:var(--admin-bg);color:var(--accent)}.inq-modal-sub{font-size:12px;color:var(--muted)}.modal-close{width:32px;height:32px;border-radius:10px;border:none;background:transparent;color:var(--text-sub);font-size:18px;cursor:pointer;transition:background .15s}.modal-close:hover{background:var(--modal-close-hover)}.inq-section-label{font-size:12px;font-weight:600;color:var(--text-sub);text-transform:uppercase;letter-spacing:.5px;margin:14px 0 6px}.inq-content-box{background:var(--stat-bg);border:1px solid var(--border);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.6;color:var(--text);white-space:pre-wrap;max-height:220px;overflow-y:auto}.inq-answer-input{width:100%;background:var(--stat-bg);border:1px solid var(--border);border-radius:12px;padding:14px 16px;font-size:14px;line-height:1.6;color:var(--text);resize:vertical;font-family:inherit;outline:none;transition:border-color .15s}.inq-answer-input:focus{border-color:var(--accent)}.inq-answer-meta{font-size:11px;color:var(--muted);margin-top:4px}.inq-modal-actions{display:flex;gap:8px;align-items:center;margin-top:22px}.inq-btn-primary,.inq-btn-ghost,.inq-btn-danger{padding:10px 20px;border-radius:10px;font-size:13px;font-weight:600;cursor:pointer;border:none;transition:opacity .15s,background .15s}.inq-btn-primary{background:var(--accent);color:var(--badge-text)}.inq-btn-primary:disabled{opacity:.5;cursor:not-allowed}.inq-btn-ghost{background:transparent;color:var(--text-sub);border:1px solid var(--border)}.inq-btn-ghost:hover{background:var(--card-hover)}.inq-btn-danger{background:transparent;color:var(--err);border:1px solid var(--err)}.inq-btn-danger:hover{background:#f871711a}.inq-image-icon{opacity:.7;font-size:12px}.inq-image-link{display:block;margin-top:4px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--stat-bg)}.inq-attached-image{display:block;width:100%;max-height:420px;object-fit:contain;background:#000}.inquiry-toggle-btn{position:relative;background:var(--card);border:1px solid var(--border);color:var(--text);padding:6px 14px;border-radius:10px;font-size:13px;cursor:pointer;transition:background .15s}.inquiry-toggle-btn:hover{background:var(--card-hover)}.inquiry-toggle-btn .inq-count-dot{position:absolute;top:-4px;right:-4px;background:var(--err);color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;padding:0 5px;display:flex;align-items:center;justify-content:center}.inquiry-search{position:relative;display:flex;align-items:center;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:0 10px;min-width:260px}.inquiry-search input{border:none;outline:none;background:transparent;color:var(--text);font-size:13px;padding:8px 6px;flex:1;font-family:inherit}.inquiry-search input::placeholder{color:var(--muted)}.inq-search-icon{font-size:13px;opacity:.6}.inq-search-clear{border:none;background:transparent;color:var(--text-sub);cursor:pointer;font-size:13px;padding:2px 6px}.inq-search-clear:hover{color:var(--text)}.inquiry-toggle-btn.active{background:var(--accent);color:var(--badge-text);border-color:var(--accent)}.repeater-setup-panel{max-width:720px;margin:24px auto;padding:0 16px;font-family:inherit;color:var(--text, #e0e0e0)}.rs-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.rs-header h2{margin:0;font-size:22px}.rs-phase{padding:4px 10px;border-radius:12px;font-size:12px;background:var(--bg-card, #2a2a2a);color:var(--muted, #888)}.rs-phase-success{background:#1f5e3a;color:#fff}.rs-phase-failed{background:#5c2a2a;color:#fff}.rs-phase-sending,.rs-phase-scanning,.rs-phase-connecting{background:#2c4a7a;color:#fff}.rs-card{background:var(--bg-card, #1f1f1f);border:1px solid var(--border, #333);border-radius:10px;padding:18px;margin-bottom:14px}.rs-card p{margin:6px 0;color:var(--muted, #aaa)}.rs-steps{padding-left:18px;margin:12px 0;color:var(--muted, #bbb)}.rs-steps li{margin:4px 0;font-size:14px}.rs-device-info{background:var(--bg, #181818);padding:10px 12px;border-radius:6px;margin-bottom:14px;font-size:13px}.rs-device-info span{color:var(--muted, #888);margin-left:6px}.rs-section{margin-bottom:14px}.rs-section label{display:block;font-size:13px;color:var(--muted, #aaa);margin-bottom:6px}.rs-row-between{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.rs-ssid-list{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow-y:auto}.rs-ssid-btn{text-align:left;padding:10px 12px;background:var(--bg, #181818);color:var(--text, #e0e0e0);border:1px solid var(--border, #333);border-radius:6px;cursor:pointer;font-size:14px}.rs-ssid-btn:hover{border-color:var(--accent, #5a8de8)}.rs-ssid-sel{background:var(--accent, #5a8de8);color:#fff;border-color:var(--accent, #5a8de8)}.rs-input{width:100%;padding:10px 12px;box-sizing:border-box;background:var(--bg, #181818);color:var(--text, #e0e0e0);border:1px solid var(--border, #333);border-radius:6px;font-size:14px;margin-top:8px}.rs-input:focus{outline:none;border-color:var(--accent, #5a8de8)}.rs-error{background:#5c2a2a;color:#fff;padding:10px 12px;border-radius:6px;margin:10px 0;font-size:13px}.rs-actions{display:flex;gap:10px;margin-top:16px}.rs-btn{flex:1;padding:12px 16px;border-radius:6px;font-size:14px;border:1px solid var(--border, #333);background:var(--bg, #181818);color:var(--text, #e0e0e0);cursor:pointer}.rs-btn:disabled{opacity:.5;cursor:not-allowed}.rs-btn-primary{background:var(--accent, #5a8de8);color:#fff;border-color:var(--accent, #5a8de8)}.rs-btn-mini{padding:4px 10px;font-size:12px;border-radius:4px;background:var(--bg, #181818);color:var(--text, #e0e0e0);border:1px solid var(--border, #333);cursor:pointer}.rs-loading,.rs-ok,.rs-err{text-align:center;padding:32px 18px}.rs-loading p,.rs-ok p,.rs-err p{color:var(--muted, #bbb)}.rs-big-icon{font-size:64px;margin-bottom:12px}.rs-ok .rs-big-icon{color:#4ade80}.rs-err .rs-big-icon{color:#f87171}.rs-spinner,.rs-spinner-small{border:3px solid var(--border, #333);border-top-color:var(--accent, #5a8de8);border-radius:50%;animation:rs-spin .8s linear infinite;margin:12px auto}.rs-spinner{width:36px;height:36px}.rs-spinner-small{width:22px;height:22px}@keyframes rs-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.repeater-setup-panel{max-width:100%;margin:12px 0;padding:0 10px}.rs-header{flex-wrap:wrap;gap:8px}.rs-header h2{font-size:18px}.rs-phase{font-size:11px;padding:3px 8px}.rs-card{padding:14px;border-radius:8px;margin-bottom:10px}.rs-steps li{font-size:13px}.rs-device-info{font-size:12px;padding:8px 10px}.rs-device-info span{display:block;margin-left:0;margin-top:2px}.rs-ssid-list{max-height:280px}.rs-ssid-btn{padding:14px 12px;font-size:15px;min-height:48px}.rs-input{padding:14px;font-size:16px;min-height:48px}.rs-actions{flex-direction:column-reverse;gap:8px}.rs-btn{padding:14px 16px;font-size:15px;min-height:50px}.rs-btn-primary{font-weight:600}.rs-loading,.rs-ok,.rs-err{padding:24px 14px}.rs-big-icon{font-size:56px}}@media(max-width:380px){.rs-header h2{font-size:16px}.rs-card{padding:12px}.rs-ssid-btn{font-size:14px}}.rs-pw-wrap{position:relative}.rs-pw-wrap .rs-input{padding-right:50px}.rs-pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:38px;height:38px;border:0;background:transparent;cursor:pointer;font-size:18px;color:var(--muted, #888)}.rs-pw-toggle.on{color:var(--accent, #5a8de8)}.rs-ssid-btn{transition:all .15s;font-weight:500}.rs-ssid-sel{border-width:2px!important;padding:9px 11px;box-shadow:0 4px 16px #5b8def66;font-weight:700}.rs-ssid-btn:active{transform:scale(.98)}.repeater-setup-panel,.rs-header h2{color:var(--text)}.rs-phase{background:var(--card);color:var(--text-sub);border:1px solid var(--border)}.rs-card{background:var(--card);border-color:var(--border)}.rs-card p,.rs-steps{color:var(--text-sub)}.rs-device-info{background:var(--card-hover);border:1px solid var(--border)}.rs-device-info span,.rs-section label{color:var(--text-sub)}.rs-ssid-btn{background:var(--card-hover);color:var(--text);border-color:var(--border)}.rs-ssid-btn:hover{border-color:var(--accent)}.rs-ssid-sel{background:var(--accent);color:#fff;border-color:var(--accent)}.rs-input{background:var(--card-hover);color:var(--text);border-color:var(--border)}.rs-input::placeholder{color:var(--text-sub)}.rs-input:focus{border-color:var(--accent)}.rs-btn{background:var(--card-hover);color:var(--text);border-color:var(--border)}.rs-btn:hover{border-color:var(--accent)}.rs-btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.rs-btn-mini{background:var(--card-hover);color:var(--text);border-color:var(--border)}.rs-pw-toggle{color:var(--text-sub)}.rs-pw-toggle.on{color:var(--accent)}.rs-loading p,.rs-ok p,.rs-err p{color:var(--text-sub)}.rs-spinner,.rs-spinner-small{border-color:var(--border);border-top-color:var(--accent)}.rs-phase-success{background:#38bda82e;color:var(--accent)}.rs-phase-failed{background:#f871712e;color:#f87171}.rs-phase-sending,.rs-phase-scanning,.rs-phase-connecting{background:#38bdf82e;color:var(--accent)}.alarm-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px;margin-top:12px}.alarm-table{width:100%;border-collapse:collapse;font-size:13.5px;min-width:760px}.alarm-table th{text-align:left;padding:9px 12px;font-size:11.5px;letter-spacing:.05em;color:var(--muted);background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;white-space:nowrap}.alarm-table td{padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}.alarm-table tbody tr:last-child td{border-bottom:0}.alarm-table tbody tr:hover{background:var(--card)}.alarm-mono{font-family:ui-monospace,Menlo,monospace;font-variant-numeric:tabular-nums}.alarm-detail{color:var(--muted);font-size:12.5px;white-space:normal}.alarm-table tr.alarm-checked td{opacity:.45}.alarm-checked-mark{font-size:11px;color:var(--muted, #888);white-space:nowrap}.alarm-check-btn{padding:3px 10px;font-size:12px;border-radius:6px;border:1px solid var(--border, #444);background:transparent;color:inherit;cursor:pointer;white-space:nowrap}.alarm-check-btn:hover:not(:disabled){background:var(--accent, #38bdf8);border-color:transparent;color:#fff}.alarm-check-btn:disabled{opacity:.4;cursor:default}.num,.kpi-value,.sites td.num{font-family:JetBrains Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums}.muted{color:var(--mute)}.neg,.sites td.neg{color:var(--negative)}.dash,.zero,.dim,.sites td.zero,.sites td.dim{color:var(--mute)}.shell{display:grid;grid-template-columns:216px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:20px 12px 16px;border-right:1px solid var(--rule);background:var(--ground)}.brand{display:flex;align-items:center;gap:10px;padding:4px 8px 22px;background:none;border:0;color:inherit;cursor:pointer;text-align:left;font:inherit}.brand-mark{width:24px;height:24px;flex:none}.brand-text{display:flex;flex-direction:column;line-height:1.3}.brand-name{font-size:15px;font-weight:700}.brand-scope{font-size:12px;color:var(--mute)}.nav{display:flex;flex-direction:column;gap:2px}.nav-item{position:relative;display:flex;align-items:center;gap:10px;height:34px;padding:0 8px;border:0;border-radius:6px;background:none;color:var(--ink-2);font:inherit;font-size:14px;text-decoration:none;cursor:pointer;text-align:left}.nav-item:hover{background:var(--raised);color:var(--ink)}.nav-item:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.nav-icon{width:16px;height:16px;flex:none;color:var(--mute)}.nav-label{position:relative}.nav-item.active,.nav-item.active .nav-icon{color:var(--ink)}.nav-item.active .nav-label:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:var(--accent)}.nav-ext{color:var(--mute);font-size:12px}.nav-count{margin-left:auto;font-size:12px;color:var(--ink-2)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:4px;padding-top:16px;border-top:1px solid var(--rule)}.user-row{display:flex;justify-content:space-between;gap:4px}.foot-btn{height:30px;padding:0 8px;border:0;border-radius:6px;background:none;color:var(--mute);font:inherit;font-size:13px;cursor:pointer;text-align:left}.foot-btn:hover{background:var(--raised);color:var(--ink)}.foot-btn.user{color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas{min-width:0}.overview{padding:28px 32px 64px;display:flex;flex-direction:column;gap:var(--gap)}.title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--gap)}.title-row h1{font-size:26px;font-weight:600;letter-spacing:-.01em}.finding{margin-top:6px;font-size:15px;color:var(--ink-2)}.finding strong{color:var(--ink);font-weight:600}.title-actions{display:flex;align-items:center;gap:16px;flex:none}.live{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--mute)}.live i{width:7px;height:7px;border-radius:50%;background:var(--positive)}.live.err i{background:var(--negative)}.live.err{color:var(--negative)}.btn{display:inline-flex;align-items:center;height:34px;padding:0 14px;border:1px solid var(--control);border-radius:999px;color:var(--ink);font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}.btn:hover{border-color:var(--mute)}.kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-card);box-shadow:var(--shadow)}.kpi{display:flex;flex-direction:column;gap:4px;padding:16px 20px;min-width:0}.kpi+.kpi{border-left:1px solid var(--rule)}.kpi-label{font-size:12px;color:var(--mute)}.kpi-value{font-size:22px;font-weight:500;color:var(--ink)}.kpi-value .of{font-size:14px;color:var(--mute)}.kpi-sub{font-size:12px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.panel{background:var(--surface);border:1px solid var(--rule);border-radius:var(--radius-card);box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px 12px}.panel-head h2{font-size:16px;font-weight:600}.sites{width:100%;border-collapse:collapse}.sites th{padding:0 12px 10px;font-size:12px;font-weight:400;color:var(--mute);text-align:right;white-space:nowrap;border-bottom:1px solid var(--rule)}.sites td{height:42px;padding:0 12px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--rule);color:var(--ink)}.sites .l{text-align:left}.sites th:first-child,.sites td:first-child{padding-left:20px}.sites th:last-child,.sites td:last-child{padding-right:20px}.sites tbody tr{cursor:pointer}.sites tbody tr:hover td{background:var(--table-hover)}.sites tbody tr:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.sites .of,.sites .unit{color:var(--mute)}.sites .unit{margin-left:2px;font-size:11px}.site-name{font-weight:600}.code{margin-left:8px;font-size:12px;color:var(--mute)}.row-link{color:var(--mute);font-size:12px;text-decoration:none}.row-link:hover{color:var(--ink)}.empty{text-align:center!important;color:var(--mute);height:120px!important}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500}.pill.neg{background:var(--pill-neg-bg);color:var(--pill-neg-ink)}.pill.warn{background:var(--pill-warn-bg);color:var(--pill-warn-ink)}.pill.neutral{background:var(--pill-neutral-bg);color:var(--pill-neutral-ink)}.units{display:inline-grid;grid-template-columns:repeat(20,7px);gap:2px;vertical-align:middle;padding:4px 0}.u{display:inline-block;width:7px;height:7px;border-radius:1px;box-sizing:border-box}.u-none{background:var(--negative)}.u-off{border:1.5px solid var(--negative)}.u-batt{background:var(--warning)}.u-weak{border:1.5px solid var(--warning)}.u-ok{background:var(--unit-ok)}.u-none-diag{border:1px dashed var(--control)}.unit-legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--mute)}.unit-legend span{display:inline-flex;align-items:center;gap:6px}.paused{padding:16px 20px 18px}.paused h3{font-size:13px;font-weight:600;margin-bottom:8px}.paused h3 .muted{font-weight:400}.paused-row{display:grid;grid-template-columns:160px 1fr auto;align-items:baseline;gap:12px;padding:7px 0;border-top:1px solid var(--rule);color:var(--ink-2);cursor:pointer}.paused-row:hover{color:var(--ink)}.paused-row .site-name{font-weight:500}.paused-row .note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--mute)}.paused-row .until{font-size:12px;color:var(--mute)}.paused-row>.code{display:none}@media(max-width:1100px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi:nth-child(4){border-left:0}.kpi:nth-child(n+4){border-top:1px solid var(--rule)}.panel{overflow-x:auto}}@media(max-width:820px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;border-right:0;border-bottom:1px solid var(--rule)}.brand{padding:0 8px 0 0}.nav{flex-direction:row;flex-wrap:wrap}.sidebar-foot{margin:0 0 0 auto;flex-direction:row;border:0;padding:0}.overview{padding:20px 16px 48px}.title-row{flex-direction:column;align-items:flex-start}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
