:root{--bg:#0b0f14;--rail-w:64px;--panel-w:300px;--feed-w:300px;--surface:#fff;--fg:#1d2530;--muted:#6b7682;--line:#e3e7ec;--hover:#f2f4f7;--accent:#1f6feb;--accent-soft:#1f6feb1a;--shadow:0 2px 10px #0000002e;--danger:#d93025;--danger-soft:#d930251a;--warning:#b86e00;--warning-bar:#f0a000;--warning-soft:#f0a00024;--notice:#5b6b7c;--notice-soft:#5b6b7c1f;--good:#1a8a4c;--good-soft:#1a8a4c1f;font:13px/1.45 system-ui,-apple-system,Apple SD Gothic Neo,sans-serif}html,body{background:var(--bg);height:100%;color:var(--fg);margin:0;overflow:hidden}body{--sidebar-w:calc(var(--rail-w) + var(--panel-w));--right-w:var(--feed-w)}body.panel-collapsed{--sidebar-w:var(--rail-w)}body.feed-collapsed{--right-w:0px}button,input,select{font:inherit;color:inherit}.muted{color:var(--muted)}.icon{flex:none;display:block}.icon-wrap{place-items:center;display:inline-grid}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.skip-link{z-index:20;background:var(--surface);border-radius:6px;padding:6px 10px;position:absolute;top:-40px;left:8px}.skip-link:focus{top:8px}.view{top:0;bottom:0;left:var(--sidebar-w);right:var(--right-w);color:#e6edf3;outline:none;position:absolute;overflow:hidden}.view-host{position:absolute;inset:0}.view-scroll{box-sizing:border-box;padding:16px;position:absolute;inset:0;overflow:auto}.view-empty{text-align:center;color:#c4ccd4;place-content:center;gap:4px;padding:16px;display:grid;position:absolute;inset:0}.view-empty p{margin:0}.view-empty .muted{color:#8b96a2}.stage{background:#000;border-radius:6px;position:absolute;overflow:hidden;box-shadow:0 0 0 1px #ffffff0f}.stream{position:absolute;inset:0}.stream-media{object-fit:fill;user-select:none;width:100%;height:100%;display:block;position:absolute;inset:0}.stream-note{text-align:center;color:#c4ccd4;background:#05070ab3;place-items:center;padding:12px;font-size:13px;display:grid;position:absolute;inset:0}.stage-caption{color:#e6edf3;backdrop-filter:blur(6px);white-space:nowrap;text-overflow:ellipsis;background:#0b0f14a8;border-radius:999px;align-items:center;gap:6px;max-width:calc(100% - 20px);padding:4px 10px;font-size:12px;display:flex;position:absolute;bottom:10px;left:10px;overflow:hidden}.stage-caption span:last-child{color:#aab4be;text-overflow:ellipsis;overflow:hidden}.hit-layer{cursor:crosshair;position:absolute;inset:0}.sel-box,.evt-box{box-sizing:border-box;pointer-events:none;border:2px solid #fff;border-radius:3px;position:absolute;box-shadow:0 0 0 2px #1f6febe6,0 0 16px #1f6feb99}.evt-box{box-sizing:content-box;border-style:dashed;margin:-4px;padding:4px;box-shadow:0 0 0 9999px #00000047}.evt-box.sev-danger{border-color:#ff6b5e}.evt-box.sev-warning{border-color:#ffc44d}.cam-grid{box-sizing:border-box;grid-auto-flow:dense;align-content:stretch;gap:10px;padding:12px;display:grid;position:absolute;inset:0}.cam-tile{color:#e6edf3;background:#05080b;border:1px solid #ffffff14;border-radius:8px;min-width:0;min-height:0;position:relative;overflow:hidden;container-type:inline-size}.cam-tile:hover{border-color:#ffffff4d}.cam-tile.selected{border-color:#1f6febb3}.cam-tile:focus-within:has(.tile-open:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.cam-tile.alarm.sev-danger{border-color:#ff6b5e;box-shadow:0 0 0 1px #ff6b5e,0 0 18px #ff6b5e59}.cam-tile.alarm.sev-warning{border-color:#ffc44d;box-shadow:0 0 0 1px #ffc44d}.tile-open{z-index:1;cursor:pointer;background:0 0;border:0;outline:none;margin:0;padding:0;position:absolute;inset:0}.tile-pin{z-index:2;cursor:pointer;color:#e6edf3;backdrop-filter:blur(6px);opacity:0;background:#0b0f14a8;border:0;border-radius:7px;place-items:center;width:28px;height:28px;padding:0;transition:opacity .12s;display:grid;position:absolute;top:6px;right:6px}.cam-tile:hover .tile-pin,.tile-pin:focus-visible,.cam-tile.pinned .tile-pin,.cam-tile:has(.tile-open:focus-visible) .tile-pin{opacity:1}.tile-pin:hover{background:#0b0f14d9}.cam-tile.pinned .tile-pin{color:#fff;background:#1f6febd9}@media (hover:none){.tile-pin{opacity:1}}.tile-host{position:absolute;inset:0 0 30px}.tile-caption{white-space:nowrap;align-items:center;gap:6px;height:30px;padding:0 10px;font-size:12px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.tile-caption .dot{flex:none}.tile-alarm{flex:none;padding:0 6px;font-size:11px;line-height:18px}.tile-counts{color:#aab4be;font-variant-numeric:tabular-nums;text-overflow:ellipsis;flex:0 1000 auto;min-width:0;margin-left:auto;overflow:hidden}@container (width<=340px){.tile-caption .tile-counts{display:none}}@container (width<=260px){.tile-caption .tile-alarm-type{display:none}}.grid-pager{z-index:1;box-sizing:border-box;backdrop-filter:blur(8px);color:#e6edf3;background:#0b0f14a8;border-radius:999px;align-items:center;gap:6px;max-width:calc(100% - 24px);padding:4px 6px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #ffffff14}.pager-step{width:28px;height:28px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.pager-step:hover:not(:disabled){background:#ffffff1f}.pager-step:disabled{opacity:.35;cursor:default}.pager-dots{align-items:center;gap:2px;min-width:0;display:flex;overflow:hidden}.pager-dot{cursor:pointer;background:0 0;border:0;flex:none;place-items:center;width:18px;height:22px;padding:0;display:grid}.pager-dot:before{content:"";background:#ffffff59;border-radius:50%;width:7px;height:7px;transition:transform .12s}.pager-dot.current:before{background:#fff;transform:scale(1.25)}.pager-dot.sev-danger:before{background:#ff6b5e}.pager-dot.sev-warning:before{background:#ffc44d}.pager-dot.current.sev-danger:before,.pager-dot.current.sev-warning:before{box-shadow:0 0 0 2px #fff}.pager-count{color:#aab4be;font-variant-numeric:tabular-nums;white-space:nowrap;padding:0 2px;font-size:12px}.pager-chip{max-width:200px;margin-left:4px}.pager-chip .one-line{max-width:160px}.alarm-dot{border-radius:50%;flex:none;width:8px;height:8px}.alarm-dot.sev-danger{background:var(--danger)}.alarm-dot.sev-warning{background:var(--warning-bar)}.popover .controls-hint.key-hint{border-top:1px solid var(--line);color:var(--muted);flex-direction:column;gap:4px;margin:8px 0 0;padding:8px 0 0;font-size:12px;list-style:none;display:flex}.popover .key-hint li{justify-content:space-between;align-items:center;display:flex}.popover .key-hint kbd{background:var(--hover);border:1px solid var(--line);color:var(--fg);border-radius:4px;padding:0 5px;font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace}.rail{z-index:3;width:var(--rail-w);box-sizing:border-box;background:var(--surface);border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:4px;padding:10px 0;display:flex;position:absolute;top:0;bottom:0;left:0}.rail-logo{letter-spacing:-.02em;color:var(--accent);border-radius:8px;flex-direction:column;align-items:center;gap:2px;margin:2px 0 6px;padding:2px 6px 10px;font-size:12px;font-weight:800;text-decoration:none;display:flex;position:relative}.rail-logo:after{content:"";border-bottom:1px solid var(--line);width:40px;margin-left:-20px;position:absolute;bottom:0;left:50%}.rail-logo:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.rail-mark{display:block}.rail-item{cursor:pointer;width:54px;color:var(--muted);white-space:nowrap;background:0 0;border:0;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:8px 0 6px;font-size:11px;display:flex;position:relative}.rail-item:hover{background:var(--hover);color:var(--fg)}.rail-item.active{color:var(--accent);background:var(--accent-soft);font-weight:700}.rail-item.active.collapsed{background:0 0}.rail-item:focus-visible,.panel-toggle:focus-visible,.map-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.rail-badge{box-sizing:border-box;background:var(--danger);color:#fff;text-align:center;border-radius:8px;min-width:16px;height:16px;padding:0 4px;font-size:10px;font-weight:700;line-height:16px;position:absolute;top:3px;right:8px}.rail-conn{color:var(--muted);flex-direction:column;align-items:center;gap:3px;margin-top:auto;padding-bottom:4px;font-size:10px;display:flex}.rail-account{margin-top:2px}.rail-account-name{text-overflow:ellipsis;max-width:52px;overflow:hidden}.panel{z-index:2;left:var(--rail-w);width:var(--panel-w);box-sizing:border-box;background:var(--surface);position:absolute;top:0;bottom:0;overflow:auto;box-shadow:2px 0 8px #0000001f}.panel-right{width:var(--feed-w);flex-direction:column;display:flex;left:auto;right:0;overflow:hidden;box-shadow:-2px 0 8px #0000001f}.panel-header{border-bottom:1px solid var(--line);padding:14px 16px 10px}h1{word-break:keep-all;margin:0;font-size:18px;line-height:1.3}h2{margin:0;font-size:14px}h3{margin:0;font-size:13px}#site-stats{margin:6px 0 0;font-size:12px}.place{color:#4a5562;flex-wrap:wrap;align-items:center;gap:6px;margin:2px 0 0;font-size:12px;display:flex}.pane{padding:12px 16px 16px}.pane-title{margin:0 0 8px;font-size:15px}.pane-title-row{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.pane-title-row .pane-title{margin:0}.pane-subtitle{margin:16px 0 6px;font-size:13px}.hint{color:var(--muted);margin:8px 0 0;font-size:11px}.hint.error,.error{color:var(--danger)}.empty{color:var(--muted);margin:0;padding:12px 0;font-size:12px}.empty.error{color:var(--danger)}.empty .small-button{margin-top:6px}.panel-toggle{z-index:2;top:50%;left:var(--sidebar-w);border:1px solid var(--line);background:var(--surface);width:22px;height:52px;color:var(--muted);cursor:pointer;border-left:0;border-radius:0 8px 8px 0;place-items:center;padding:0;display:grid;position:absolute;transform:translateY(-50%);box-shadow:2px 0 6px #0000001f}.panel-toggle:hover{color:var(--fg)}.panel-toggle.right{left:auto;right:var(--right-w);border:1px solid var(--line);border-right:0;border-radius:8px 0 0 8px;box-shadow:-2px 0 6px #0000001f}.small-button{border:1px solid var(--line);background:var(--surface);cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:5px;padding:4px 9px;font-size:12px;display:inline-flex}.small-button:hover:not(:disabled){background:var(--hover)}.small-button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.small-button:disabled{opacity:.5;cursor:default}.primary-button{background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:0;border-radius:6px;padding:6px 12px;font-weight:600}.primary-button:hover:not(:disabled){background:#1a5fd0}.primary-button:disabled{cursor:default;background:#b8c4d4}.icon-button{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:4px;display:inline-grid}.icon-button:hover{color:var(--danger);background:var(--danger-soft)}.icon-button .icon{width:15px;height:15px}select,input[type=text]{border:1px solid var(--line);background:var(--surface);box-sizing:border-box;border-radius:6px;min-width:0;padding:4px 6px}select:hover,input[type=text]:hover{border-color:#c9d0d8}input.invalid{border-color:var(--danger);background:var(--danger-soft)}.field{margin:0 0 8px;display:block}.field-label{color:var(--muted);margin-bottom:2px;font-size:12px;display:block}.field select,.field input{width:100%}.form-actions{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.form-msg{margin:6px 0 0;font-size:12px}.form-msg:empty{display:none}.form-msg.error{color:var(--danger)}.seg{border:1px solid var(--line);border-radius:7px;display:inline-flex;overflow:hidden}.seg-wide{margin:4px 0 12px;display:flex}.seg-wide .seg-button{flex:1}.seg-button{background:var(--surface);cursor:pointer;white-space:nowrap;border:0;padding:5px 10px;font-size:12px}.seg-button+.seg-button{border-left:1px solid var(--line)}.seg-button:hover:not(:disabled){background:var(--hover)}.seg-button.active{background:var(--accent-soft);color:var(--accent);font-weight:700}.seg-button:disabled{opacity:.6;cursor:default}kbd{font:inherit;border:1px solid var(--line);background:var(--hover);border-radius:3px;padding:0 4px;font-size:10px}.controls-hint{margin:12px 0 0;padding:0;font-size:12px;list-style:none}.controls-hint li{justify-content:space-between;gap:8px;padding:2px 0;display:flex}.controls-hint li span:first-child{color:var(--muted)}.info-list{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;font-size:12px;display:grid}.info-list dt{color:var(--muted)}.info-list dd{text-align:right;font-variant-numeric:tabular-nums;word-break:break-all;margin:0}.info-list dt.long{grid-column:1/-1}.info-list dd.long{text-align:left;white-space:pre-line;color:#4a5562;grid-column:1/-1;margin-bottom:4px}.warn-text{color:var(--warning);font-weight:600}.dot{background:#9aa4ae;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot-live{background:#22a35a;box-shadow:0 0 0 3px #22a35a2e}.dot-stalled{background:var(--warning-bar);box-shadow:0 0 0 3px #f0a00033}.dot-offline{background:#9aa4ae}.chip{white-space:nowrap;border-radius:4px;padding:0 6px;font-size:11px;font-weight:600;line-height:18px;display:inline-block}.chip.sev-danger{background:var(--danger);color:#fff}.chip.sev-warning{background:var(--warning-soft);color:var(--warning)}.chip.sev-notice{background:var(--notice-soft);color:var(--notice)}.chip-mock{color:#8a5a00;background:#fff4d6}.chip.st-ok{background:var(--good-soft);color:var(--good)}.chip.st-degraded{background:var(--warning-soft);color:var(--warning)}.chip.st-error{background:var(--danger-soft);color:var(--danger)}.cam-list{flex-direction:column;gap:2px;display:flex}.cam-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;gap:4px;width:100%;padding:8px;display:flex}.cam-row:hover{background:var(--hover)}.cam-row.selected{background:var(--accent-soft)}.cam-row-head{align-items:center;gap:8px;display:flex}.cam-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.cam-meta{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.cam-counts{flex-wrap:wrap;gap:4px;padding-left:16px;font-size:11px;display:flex}.count-chip{background:var(--hover);color:#4a5562;white-space:nowrap;border-radius:4px;padding:1px 6px}.count-chip b{font-variant-numeric:tabular-nums;color:var(--fg)}.count-chip.warn{background:var(--warning-soft);color:var(--warning)}.count-chip.warn b{color:var(--warning)}.count-chip.bad{background:var(--danger-soft);color:var(--danger)}.count-chip.bad b{color:var(--danger)}.cam-form{background:var(--hover);border-radius:8px;margin:0 0 10px;padding:10px}.cam-form input{background:var(--surface)}.filters{grid-template-columns:1fr 1fr;gap:6px;display:grid}.filters select{width:100%;font-size:12px}.list-summary{margin:10px 0 4px;font-size:12px}.event-list{flex-direction:column;gap:5px;display:flex}.event-card{background:#f4f6f8;border-radius:9px;overflow:hidden}.event-row{text-align:left;cursor:pointer;width:100%;color:var(--fg);background:0 0;border:0;border-radius:9px;align-items:flex-start;gap:9px;padding:9px 22px 9px 10px;display:flex;position:relative}.event-row:hover{background:#eaedf1}.event-row.selected{background:var(--accent-soft)}.event-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.event-title{align-items:center;gap:6px;min-width:0;display:flex}.event-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.event-sub{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.event-side{flex-direction:column;flex:none;align-items:flex-end;gap:3px;font-size:11px;display:flex}.event-row.member{border-radius:0;align-items:center;padding:6px 22px 6px 35px}.event-row.member .event-side{flex-direction:row;gap:8px;margin-left:auto}.member-time{font-variant-numeric:tabular-nums;font-size:12px}.group-members{padding-bottom:4px}.group-members .event-row.member+.event-row.member{border-top:1px solid #e6e9ed}.chevron{color:var(--muted);display:grid}.unread .event-name,.unread .feed-type{font-weight:700}.read .event-name,.read .feed-type{color:#4a5562;font-weight:500}.read .type-icon:not(.danger){color:#9aa4ae}.read .member-time{color:var(--muted)}.unread-dot{background:#5d6873;border-radius:50%;width:7px;height:7px;margin-top:-3.5px;position:absolute;top:50%;right:9px}.event-row:not(.member)>.unread-dot{margin-top:0;top:17px}.type-icon{color:#4a5562;flex:none;place-items:center;margin-top:1px;display:grid}.type-icon.danger{color:var(--danger)}.review{background:var(--hover);color:var(--muted);border-radius:4px;padding:0 5px;line-height:17px}.review-confirmed{background:var(--danger-soft);color:var(--danger)}.review-false_alarm{background:var(--good-soft);color:var(--good)}.review-uncertain{background:var(--warning-soft);color:var(--warning)}.vlm-mini{color:var(--muted);white-space:nowrap}.vlm-mini.vlm-supports{color:var(--good)}.vlm-mini.vlm-contradicts{color:var(--danger)}.vlm-mini.vlm-insufficient_evidence{color:var(--warning)}.vlm-mini.vlm-pending{color:var(--accent)}.fresh{animation:2.4s ease-out fresh}@keyframes fresh{0%{background:#1f6feb38}to{background:0 0}}.feed-header{flex:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.feed-title{flex-direction:column;gap:2px;display:flex}.conn{color:var(--muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.feed-list{flex:1;margin:0;padding:2px 0;list-style:none;overflow:auto}.feed-list .empty{padding:12px 16px}.feed-item+.feed-item{border-top:1px solid #eef1f4}.feed-button{text-align:left;cursor:pointer;width:100%;color:var(--fg);white-space:nowrap;background:0 0;border:0;align-items:center;gap:8px;padding:8px 26px 8px 16px;display:flex;position:relative}.feed-button:hover{background:var(--hover)}.feed-type{flex:none}.feed-cam{text-overflow:ellipsis;min-width:0;color:var(--muted);flex:1;font-size:12px;overflow:hidden}.feed-ago{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:11px}.feed-button .unread-dot{right:12px}.feed-button .type-icon{margin-top:0}.info-window{z-index:4;top:12px;left:calc(var(--sidebar-w) + 12px);box-sizing:border-box;width:300px;max-height:calc(100% - 24px);color:var(--fg);backdrop-filter:blur(12px)saturate(1.3);background:#fffc;border:1px solid #fff9;border-radius:12px;padding:14px 16px 12px;animation:.14s ease-out info-in;position:absolute;overflow:auto;box-shadow:0 6px 24px #0000004d}.info-window.wide{background:#ffffffdb;width:360px}.info-window.clickable{cursor:pointer}.info-window.clickable:hover{background:#ffffffe0}.info-window:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@keyframes info-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.info-head{align-items:flex-start;gap:8px;display:flex}.info-window h2{word-break:keep-all;flex:1;margin:0;font-size:18px;line-height:1.3}.info-close{color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;margin:-2px -6px 0 0;padding:4px;display:grid}.info-close:hover{color:var(--fg);background:#1d253014}.info-kind{color:#4a5562;flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:12px;display:flex}.info-sub{color:var(--muted);margin:2px 0 0;font-size:12px}.info-figures{background:#1d25300f;border-radius:8px;grid-auto-columns:1fr;grid-auto-flow:column;margin:12px 0 0;display:grid}.figure{flex-direction:column;gap:1px;min-width:0;padding:7px 10px;display:flex}.figure+.figure{border-left:1px solid #1d253014}.figure span{color:var(--muted);font-size:11px}.figure b{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.figure.bad b{color:var(--danger)}.figure.good b{color:var(--good)}.figure.warn b{color:var(--warning)}.info-table{border-collapse:collapse;width:100%;margin-top:10px;font-size:12px}.info-table td{vertical-align:top;border-top:1px solid #1d253014;padding:4px 0}.info-table td:first-child{color:var(--muted);white-space:nowrap;padding-right:12px}.info-table td:last-child{text-align:right;font-variant-numeric:tabular-nums;word-break:break-all}.info-media{aspect-ratio:16/9;background:#000;border-radius:8px;margin-top:10px;overflow:hidden}.info-media .clip{background:#000;width:100%;height:100%;display:block}.media-note{color:#fff;background-position:50%;background-size:cover;place-items:center;width:100%;height:100%;font-size:12px;display:grid;position:relative}.media-note span{background:#0009;border-radius:999px;padding:3px 10px}.vlm-box{background:#1d25300d;border-radius:8px;margin-top:10px;padding:8px 10px}.vlm-head{justify-content:space-between;align-items:center;gap:8px;font-size:11px;display:flex}.vlm-badge{background:var(--hover);color:var(--muted);border-radius:4px;padding:1px 7px;font-size:12px;font-weight:700}.vlm-badge.vlm-supports{background:var(--good-soft);color:var(--good)}.vlm-badge.vlm-contradicts{background:var(--danger-soft);color:var(--danger)}.vlm-badge.vlm-insufficient_evidence{background:var(--warning-soft);color:var(--warning)}.vlm-badge.vlm-pending{background:var(--accent-soft);color:var(--accent)}.vlm-pending .vlm-badge:before{content:"";vertical-align:1px;background:currentColor;border-radius:50%;width:6px;height:6px;margin-right:5px;animation:1s infinite alternate pulse;display:inline-block}@keyframes pulse{to{opacity:.25}}.vlm-reason{margin:5px 0 0;font-size:12px}.diag{margin-top:10px}.diag>summary{cursor:pointer;color:var(--muted);user-select:none;padding:4px 0;font-size:12px}.diag>summary:hover{color:var(--fg)}.diag[open]>summary{margin-bottom:4px}.review-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;display:flex}.review-actions .seg{flex:1}.review-actions .seg-button{background:#ffffffb3;flex:1}.seg-button.review-confirmed.active{background:var(--danger-soft);color:var(--danger)}.seg-button.review-false_alarm.active{background:var(--good-soft);color:var(--good)}.seg-button.review-uncertain.active{background:var(--warning-soft);color:var(--warning)}.banners{z-index:6;top:12px;left:calc(var(--sidebar-w) + 12px);right:calc(var(--right-w) + 12px);pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute}.banner{pointer-events:auto;box-sizing:border-box;color:#fff;backdrop-filter:blur(8px);background:#c42218f0;border-radius:10px;align-items:center;gap:10px;width:min(520px,100%);padding:9px 10px 9px 14px;animation:.2s ease-out banner-in;display:flex;box-shadow:0 6px 24px #00000059}.banner.sev-warning{color:#2a1d00;background:#f0a000f2}.banner.sev-warning .banner-btn{color:#7a4a00}.banner.sev-warning .banner-x{color:#2a1d00}.banner.sev-warning .banner-x:hover{background:#00000014}.banner.out{opacity:0;transition:all .2s;transform:translateY(-6px)}@keyframes banner-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.banner-icon{animation:.6s 6 alternate pulse;display:grid}.banner-text{flex-direction:column;flex:1;min-width:0;display:flex}.banner-text b{font-size:14px}.banner-text span{opacity:.92;text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.banner-btn{color:#b3261e;cursor:pointer;background:#fff;border:0;border-radius:6px;padding:5px 12px;font-weight:700}.banner-x{color:#fff;cursor:pointer;opacity:.85;background:0 0;border:0;border-radius:6px;padding:4px;display:grid}.banner-x:hover{opacity:1;background:#ffffff26}.banner :focus-visible{outline-offset:1px;outline:2px solid #fff}body.info-open .view[data-screen=events] .view-host{left:372px}body.info-open .banners{left:calc(var(--sidebar-w) + 384px)}.toasts{z-index:7;bottom:20px;left:calc(var(--sidebar-w) + 12px);pointer-events:none;flex-direction:column;gap:6px;display:flex;position:absolute}.toast{color:#fff;box-shadow:var(--shadow);background:#1d2530;border-radius:8px;max-width:360px;padding:8px 14px;font-size:12px;transition:all .3s}.toast-ok{background:#17663b}.toast-error{background:#a3241b}.toast.out{opacity:0;transform:translateY(6px)}.map-controls{z-index:2;right:calc(var(--right-w) + 12px);flex-direction:column;gap:8px;display:flex;position:absolute;bottom:32px}.control-group{background:var(--surface);box-shadow:var(--shadow);border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.map-button{cursor:pointer;color:#3a4552;background:0 0;border:0;place-items:center;width:36px;height:36px;padding:0;display:grid}.map-button+.map-button{border-top:1px solid var(--line)}.map-button:hover{background:var(--hover);color:var(--fg)}.zone-list{flex-direction:column;gap:4px;display:flex}.zone-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:8px;width:100%;padding:7px 8px;display:flex}.zone-row:hover{background:var(--hover)}.zone-row.selected{background:var(--accent-soft)}.zone-row.inactive .zone-name{color:var(--muted)}.zone-row .swatch{background:var(--danger);border-radius:2px;flex:none;width:10px;height:10px}.zone-row.kind-exclude .swatch{background:#8a949c}.zone-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.zone-meta{color:var(--muted);white-space:nowrap;font-size:11px}.zone-list{margin:8px -8px 0}.cam-select{width:100%}.check{place-items:center;display:grid}.calib-table{border-collapse:collapse;width:100%;margin-top:8px;font-size:12px}.calib-table th{color:var(--muted);text-align:left;padding:2px 3px;font-size:11px;font-weight:600}.calib-table td{padding:2px 3px}.calib-table tr.selected td{background:var(--accent-soft)}.calib-table input{text-align:right;font-variant-numeric:tabular-nums;width:52px;padding:3px 4px}.calib-table .uv{font-variant-numeric:tabular-nums;color:#4a5562;white-space:nowrap}.pt-num{background:var(--accent);color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:inline-grid}.rmse{background:var(--hover);border-radius:8px;justify-content:space-between;align-items:baseline;gap:8px;margin-top:12px;padding:8px 10px;font-size:12px;display:flex}.rmse span{color:var(--muted)}.rmse b{font-variant-numeric:tabular-nums;font-size:14px}.rmse.good b{color:var(--good)}.rmse.warn b{color:var(--warning)}.rmse.bad b{color:var(--danger)}.save-row{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;padding-top:12px;display:flex}.save-msg{color:var(--muted);flex-basis:100%;font-size:11px}.save-msg.dirty{color:var(--warning)}.save-msg.error{color:var(--danger)}.edit-overlay{touch-action:none;outline:none;width:100%;height:100%;position:absolute;inset:0}.edit-overlay.drawing{cursor:crosshair}.zone polygon,.zone polyline{fill:#d9302533;stroke:#ff5a4e;stroke-width:2px;vector-effect:non-scaling-stroke;cursor:pointer}.zone polyline{fill:none}.zone.kind-exclude polygon{fill:#8c96a04d;stroke:#d0d6dc;stroke-dasharray:6 4}.zone.inactive polygon{opacity:.4}.zone.sel polygon,.zone.sel polyline{stroke:#fff;stroke-width:2.5px}.zone-label{fill:#fff;text-anchor:middle;dominant-baseline:middle;paint-order:stroke;stroke:#000000b3;stroke-width:3px;vector-effect:non-scaling-stroke;pointer-events:none;font-weight:700}.vertex{fill:#fff;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke;cursor:move}.vertex.sel,.vertex.calib{fill:var(--accent);stroke:#fff}.vertex.calib.sel{fill:#ffb020}.calib-label{fill:#fff;paint-order:stroke;stroke:#000000bf;stroke-width:3px;vector-effect:non-scaling-stroke;pointer-events:none;font-weight:700}.chart-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;max-width:1100px;margin:0 auto;display:grid}.span-2{grid-column:1/-1}.chart-card{background:var(--surface);color:var(--fg);box-shadow:var(--shadow);border-radius:12px;min-width:0;padding:14px 16px 12px}.chart-card h3{font-size:14px}.chart-card>.muted{margin:2px 0 8px;font-size:12px}.wide-card{max-width:1100px;margin:0 auto}.card-head{margin-bottom:8px}.card-head .muted{margin:2px 0 0;font-size:12px}.chart-holder{width:100%}.chart{font-size:12px;display:block;overflow:visible}.chart .axis-label{fill:var(--muted);font-size:11px}.chart .value-label{fill:var(--fg);font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .baseline{stroke:#c9d0d8;stroke-width:1px}.chart .track{fill:#f2f4f7}.chart .bar{fill:var(--accent)}.chart .hit{fill:#0000}.chart .bar-row:hover .bar,.chart .bar-col:hover .bar{fill:#1a5fd0}.chart .bar-row:hover .hit,.chart .bar-col:hover .hit{fill:#1f6feb0f}.chart .bar-col .bar{fill:#8fb3f0}.chart .bar-col.now .bar{fill:var(--accent)}.chart-empty{text-align:center;max-width:100%;padding:24px 0}.chart-table{margin-top:6px;font-size:12px}.chart-table summary{cursor:pointer;color:var(--muted);width:max-content;font-size:11px}.chart-table table{border-collapse:collapse;margin-top:4px}.chart-table td,.chart-table th{text-align:left;font-variant-numeric:tabular-nums;padding:2px 12px 2px 0}.stat-tiles{grid-template-columns:1fr 1fr;gap:6px;display:grid}.stat-tile{background:var(--hover);border-radius:8px;flex-direction:column;padding:8px 10px;display:flex}.stat-tile span{color:var(--muted);font-size:11px}.stat-tile b{font-variant-numeric:tabular-nums;font-size:20px}.stat-tile.bad b{color:var(--danger)}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:13px}.data-table th{text-align:left;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:6px 10px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:8px 10px}.data-table td.num{font-variant-numeric:tabular-nums;white-space:nowrap}.data-table .muted{font-size:11px}.data-table tr.st-row-offline td{background:#fafbfc}.status-cell{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.model-block{background:var(--hover);border-radius:8px;margin-bottom:10px;padding:8px 10px}.model-title{margin-bottom:4px;font-size:12px;font-weight:700}.popover{z-index:9;box-sizing:border-box;backdrop-filter:blur(12px)saturate(1.3);min-width:220px;max-width:300px;color:var(--fg);background:#ffffffdb;border:1px solid #fff9;border-radius:12px;padding:12px 14px;animation:.12s ease-out info-in;position:fixed;box-shadow:0 6px 24px #0000004d}.popover-head{margin-bottom:8px;font-weight:700}.popover .controls-hint{margin:0}.popover .controls-hint li{gap:16px}.popover .field select{width:100%}.filter-chips{flex-wrap:wrap;gap:4px;display:flex}.filter-chips:empty{display:none}.filter-chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:2px;padding:1px 2px 1px 8px;font-size:11px;font-weight:600;display:inline-flex}.filter-chip button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:2px;display:grid}.filter-chip button:hover{background:#1f6feb26}.help-button{color:var(--muted)}.help-button:hover{color:var(--accent);background:var(--accent-soft)}.modal-form{margin-top:10px}.modal-form input[type=text]{background:#ffffffe6;width:100%}.field-row{align-items:flex-end;gap:14px;margin-bottom:8px;display:flex}.field-row .field{margin:0}.check-label{cursor:pointer;align-items:center;gap:6px;padding-bottom:5px;font-size:12px;display:inline-flex}.file-row{align-items:center;gap:8px;margin-top:6px;display:flex}.file-input{display:none}.upload-progress{flex:1;height:6px}.form-note{color:var(--muted);margin:4px 0 0;font-size:11px}.form-note:empty{display:none}.small-button.danger{color:var(--danger)}.small-button.danger:hover{background:var(--danger-soft)}.modal-form .info-figures{margin:4px 0 0}.modal-form .seg-button{background:#ffffffb3}.modal-form .seg-button.active{background:var(--accent-soft)}.detail-grid{margin-top:12px}.detail-title{margin-bottom:8px!important}.result-group{margin-bottom:8px}.layer-group-title{color:var(--muted);margin:10px 0 2px;font-size:11px;font-weight:600}.result-list .empty.small{padding:4px 0 6px;font-size:11px}.result-row{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;flex-direction:column;gap:2px;width:calc(100% + 16px);margin:0 -8px;padding:7px 8px;display:flex}.result-row:hover{background:var(--hover)}.result-row.selected{background:var(--accent-soft)}.result-title{align-items:center;gap:6px;min-width:0;display:flex}.result-title b{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.result-sub{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.result-at{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.kind-chip{background:var(--hover);color:#4a5562;border-radius:4px;flex:none;padding:0 5px;font-size:10px;font-weight:700;line-height:16px}.kind-chip.kind-metrics{background:var(--accent-soft);color:var(--accent)}.kind-chip.kind-image,.kind-chip.kind-video{background:var(--good-soft);color:var(--good)}.new-badge{color:#fff;background:var(--accent);border-radius:999px;flex:none;padding:0 6px;font-size:10px;font-weight:700;line-height:16px}.rail-badge.new{background:var(--accent)}.result-media{box-sizing:border-box;flex-direction:column;gap:8px;padding:16px;display:flex;position:absolute;inset:0}.media-host{flex:1;place-items:center;min-height:0;display:grid;position:relative}.media-host img,.media-host video{object-fit:contain;background:#000;border-radius:6px;max-width:100%;max-height:100%;display:block}.result-caption{color:#e6edf3;flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.result-caption span{color:#aab4be;font-size:12px}.result-summary{color:#c4ccd4;margin:0;font-size:12px}.result-summary.dark{color:#4a5562;margin:6px 0 10px}.result-text{white-space:pre-wrap;word-break:break-word;background:var(--hover);border-radius:8px;margin:8px 0 0;padding:10px 12px;font:12px/1.6 ui-monospace,Menlo,monospace}.metrics-table td:first-child{font-weight:600}.delta{white-space:nowrap}.delta.up{color:#2b4d80}.delta.down{color:#7a4b00}.delta.good{color:var(--good)}.delta.bad{color:var(--danger)}@media (width<=600px){body,body.panel-collapsed{--sidebar-w:0px;--right-w:0px}.view{bottom:56px}body:not(.panel-collapsed) .view{bottom:50%}.rail{border-right:0;border-top:1px solid var(--line);flex-direction:row;justify-content:space-around;width:auto;height:56px;padding:0;top:auto;right:0}.rail-logo,.rail-conn{display:none}.rail-item{flex:1;width:auto}.panel{border-radius:12px 12px 0 0;width:auto;max-height:50%;inset:auto 0 56px}.panel-right,.panel-toggle{display:none!important}body.info-open .panel{display:none}.info-window,.info-window.wide{backdrop-filter:none;background:#fff;width:auto;max-height:calc(100% - 72px);top:8px;left:8px;right:8px}.map-controls{bottom:72px}body:not(.panel-collapsed) .map-controls{bottom:calc(50% + 12px)}.banners,body.info-open .banners{left:8px;right:8px}body.info-open .view[data-screen=events] .view-host,body.info-open .view[data-screen=zones] .view-host{left:0}.toasts{bottom:68px;left:8px}.cam-grid{gap:6px;padding:6px}}.hovercard{z-index:20;box-sizing:border-box;pointer-events:none;backdrop-filter:blur(12px)saturate(1.3);max-width:300px;color:var(--fg);overflow-wrap:anywhere;background:#ffffffe6;border:1px solid #fff9;border-radius:10px;flex-direction:column;gap:4px;padding:10px 12px;font-size:12px;animation:.1s ease-out info-in;display:flex;position:fixed;box-shadow:0 6px 20px #00000040}.hovercard[hidden]{display:none}.hc-head{align-items:center;gap:6px;font-size:13px;display:flex}.hc-head b{min-width:0}.hc-cam{font-weight:600}.hc-desc{color:#4a5562}.hc-row{font-variant-numeric:tabular-nums}.hc-times{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.hc-vlm{flex-direction:column;align-items:flex-start;gap:2px;margin-top:2px;display:flex}.hc-reason{color:#4a5562;-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}@media (hover:none){.hovercard{display:none!important}}.one-line{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.info-kind{flex-wrap:nowrap;min-width:0}.info-kind>*{flex:none}.info-kind>.one-line{flex:0 auto}.stage-caption b,.tile-caption b{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}.stage-caption span:last-child{white-space:nowrap;flex:0 1000 auto;min-width:0}.tile-counts{flex:none}.tile-caption b{flex:auto}.toast{overflow-wrap:anywhere}.filter-chip{min-width:0;max-width:100%}.chip-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.data-table td:first-child b,.data-table td:first-child .muted{text-overflow:ellipsis;white-space:nowrap;max-width:280px;display:block;overflow:hidden}.info-table td:last-child{overflow-wrap:anywhere}.banner-text b{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.field-label-row{justify-content:space-between;gap:8px;display:flex}.char-count{font-variant-numeric:tabular-nums;color:var(--muted)}.char-count.over{color:var(--warning)}.tile-caption{text-align:left}.unread-dot.sev-danger{background:var(--danger)}.unread-dot.sev-warning{background:var(--warning-bar)}.unread-dot.sev-notice{background:#5d6873}.rail-badge.sev-danger{background:var(--danger);color:#fff}.rail-badge.sev-warning{background:var(--warning-bar);color:#2b1d00}.rail-badge.sev-notice{color:#fff;background:#5d6873}.feed-header{flex-wrap:wrap;row-gap:8px}.feed-legend{flex-basis:100%;justify-content:space-between;align-items:center;gap:8px;display:flex}.sev-scale{gap:2px;display:inline-flex}.sev-cell{min-width:44px;font:inherit;color:var(--muted);text-align:center;background:0 0;border:0;flex-direction:column;align-items:stretch;gap:3px;padding:0;font-size:11px;display:flex}.sev-cell i{height:6px;display:block}.sev-cell:first-child i{border-radius:3px 0 0 3px}.sev-cell:last-child i{border-radius:0 3px 3px 0}.sev-cell.sev-danger i{background:var(--danger)}.sev-cell.sev-warning i{background:var(--warning-bar)}.sev-cell.sev-notice i{background:#5d6873}.sev-scale.compact .sev-cell{min-width:40px;font-size:10.5px}.sev-scale.pickable{display:flex}.sev-scale.pickable .sev-cell{cursor:pointer;border-radius:6px;flex:1;padding:4px 4px 5px}.sev-scale.pickable .sev-cell i{border-radius:3px}.sev-scale.pickable .sev-cell:hover{color:var(--fg);background:#1d25300f}.sev-scale.pickable .sev-cell.active{background:var(--accent-soft);color:var(--fg);font-weight:700}.sev-scale.pickable:has(.active) .sev-cell:not(.active) i{opacity:.35}.legend-def{align-items:flex-start;gap:10px;margin:0 0 8px;font-size:12px;display:flex}.legend-def p{margin:1px 0 0}.legend-def b{font-size:12px}.legend-swatch{border-radius:3px;flex:none;width:14px;height:14px;margin-top:2px}.legend-swatch.sev-danger{background:var(--danger)}.legend-swatch.sev-warning{background:var(--warning-bar)}.legend-swatch.sev-notice{background:#5d6873}.legend-sub{margin-top:10px}.legend-dots{flex:none;align-items:center;gap:4px;width:34px;height:14px;display:flex;position:relative}.legend-dots .unread-dot{margin:0;position:static}.legend-sample{border-radius:5px;flex:none;place-items:center;width:34px;height:16px;display:grid}.legend-sample.badge{color:#fff;border-radius:8px;justify-self:start;width:auto;min-width:16px;margin-right:18px;padding:0 4px;font-size:10px;font-weight:700}.legend-sample.badge.sev-danger{background:var(--danger)}.legend-sample.selected{background:var(--accent-soft);box-shadow:0 0 0 1px #1f6feb40}.popover:has(.legend-def){max-width:320px}.parts{flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0;display:inline-flex}.parts:empty{display:none}.event-sub.parts{flex-wrap:nowrap;display:flex}.event-sub.parts>span:first-child{font-variant-numeric:tabular-nums;flex:none}.event-sub.parts>.one-line{flex:0 auto}.zone-meta.parts{flex-wrap:nowrap;column-gap:6px}.tile-counts.parts{flex-wrap:nowrap;column-gap:8px}.cap-meta.parts{color:#aab4be;flex-wrap:nowrap;column-gap:8px}.hc-times.parts{column-gap:8px}#site-stats{flex-wrap:wrap;align-items:center;gap:2px 12px;display:flex}.site-stat{align-items:center;gap:5px;display:inline-flex}.site-stat .dot{width:7px;height:7px;box-shadow:none}.banner-title{align-items:center;gap:8px;min-width:0;display:flex}.banner-sev{background:#ffffff38;border-radius:4px;flex:none;padding:0 6px;font-size:11px;font-weight:800}.banner-sub{opacity:.92;flex-wrap:nowrap;font-size:12px;overflow:hidden}.rmse .parts{column-gap:8px}.group-count{color:var(--muted);font-weight:500}.group-more{text-align:left;width:100%;color:var(--accent);cursor:pointer;background:0 0;border:0;border-top:1px solid #e6e9ed;padding:7px 10px 7px 35px;font-size:12px;display:block}.group-more:hover{background:#eaedf1}.sound-group{display:inline-flex}.sound-group .sound-main{border-radius:6px 0 0 6px}.sound-group .sound-opt-btn{border-left:0;border-radius:0 6px 6px 0;padding:4px 5px}.sound-main.active{color:var(--accent);background:var(--accent-soft);border-color:#1f6feb59}.sound-opt-btn.active{color:var(--accent)}.audio-hint{color:var(--warning);flex-basis:100%;margin:0;font-size:11px}.sound-opt{cursor:pointer;align-items:flex-start;gap:8px;margin:0 0 8px;font-size:12px;display:flex}.sound-opt input{margin-top:2px}.sound-opt>span{flex-direction:column;display:flex}.legend-sample.sound{color:var(--muted)}.event-row:focus-visible,.group-more:focus-visible,.feed-button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.title-actions{align-items:center;gap:4px;display:inline-flex}.controls-hint.keys li>span:first-child{flex:none;gap:3px;display:inline-flex}.controls-hint.keys li{gap:16px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.stats-wrap{flex-direction:column;gap:12px;max-width:1320px;margin:0 auto;transition:opacity .2s;display:flex}.stats-wrap.loading{opacity:.6}.sev-swatch{border-radius:2px;flex:none;width:10px;height:10px;display:inline-block}.sev-swatch.sev-danger,.seg.sev-danger,.line-key.sev-danger{fill:#d93025;background:#d93025}.sev-swatch.sev-warning,.seg.sev-warning,.line-key.sev-warning{fill:#f0a000;background:#f0a000}.sev-swatch.sev-notice,.seg.sev-notice,.line-key.sev-notice{fill:#5d6873;background:#5d6873}.kpi-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.kpi{background:var(--surface);box-shadow:var(--shadow);border-radius:12px;flex-direction:column;gap:2px;min-width:0;padding:12px 16px;display:flex}.kpi-label{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.kpi-value{color:var(--fg);font-size:28px;font-weight:650;line-height:1.15}.tile-delta{color:var(--muted);font-size:11px}.tile-delta.up{color:#b3261e}.tile-delta.down{color:#006300}.card-head{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.card-sub{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.chart-legend{color:var(--fg);gap:12px;font-size:12px;display:inline-flex}.legend-item{align-items:center;gap:5px;display:inline-flex}.chart.flow .grid{stroke:#eef0f3;stroke-width:1px}.chart.flow .baseline{stroke:#c9d0d8;stroke-width:1px}.chart.flow .hit{fill:#0000}.chart.flow .flow-col:hover .hit,.chart.flow .flow-col:focus .hit{fill:#1d25300d}.chart.flow .flow-col:focus{outline:none}.chart.flow .flow-col:hover .seg,.chart.flow .flow-col:focus .seg{opacity:.85}.chart .now-line{stroke:#1d2530;stroke-opacity:.45;stroke-width:1px}.chart .now-label{fill:var(--muted);font-size:11px}.hc-series{font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:flex}.hc-series b{min-width:1.5em}.line-key{border-radius:2px;flex:none;width:12px;height:3px;display:inline-block}.multiples{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;display:grid}.mini-card{background:#f6f7f9;border-radius:10px;outline:none;flex-direction:column;gap:2px;min-width:0;padding:10px 12px 6px;display:flex}.mini-card:focus-visible{box-shadow:0 0 0 2px var(--accent)}.mini-card.empty{opacity:.5}.mini-head{color:#4a5562;align-items:center;gap:6px;min-width:0;font-size:12px;display:flex}.mini-value{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.mini-value b{font-size:22px;font-weight:650}.mini-sev{color:var(--muted);align-items:center;gap:4px;font-size:11px;display:inline-flex}.spark-holder{width:100%}.spark{display:block;overflow:visible}.spark .baseline{stroke:#e3e7ec;stroke-width:1px}.spark-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.spark-line.sev-danger{stroke:#d93025}.spark-line.sev-warning{stroke:#f0a000}.spark-line.sev-notice{stroke:#5d6873}.spark-dot{stroke:#f6f7f9;stroke-width:2px}.spark-dot.sev-danger{fill:#d93025}.spark-dot.sev-warning{fill:#f0a000}.spark-dot.sev-notice{fill:#5d6873}.heatmap{grid-template-columns:minmax(80px,160px) repeat(24,minmax(0,1fr));align-items:stretch;gap:2px;display:grid}.hm-hour{color:var(--muted);text-align:left;font-variant-numeric:tabular-nums;font-size:10px}.hm-name{align-self:center;padding-right:8px;font-size:12px}.hm-name.dim{color:var(--muted)}.hm-cell{background:#f3f5f7;border-radius:3px;outline:none;height:22px;position:relative}.hm-cell:focus-visible{box-shadow:0 0 0 2px var(--fg)}.hm-cell:hover{box-shadow:0 0 0 1px #1d253080}.hm-cell.l1,.hm-swatch.l1{background:#86b6ef}.hm-cell.l2,.hm-swatch.l2{background:#5598e7}.hm-cell.l3,.hm-swatch.l3{background:#2a78d6}.hm-cell.l4,.hm-swatch.l4{background:#1c5cab}.hm-cell.l5,.hm-swatch.l5{background:#104281}.hm-mark{filter:drop-shadow(0 0 .5px #fff);border-top:9px solid #d93025;border-left:9px solid #0000;border-top-right-radius:3px;width:0;height:0;position:absolute;top:0;right:0}.hm-legend{flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:8px;font-size:11px;display:flex}.hm-key{align-items:center;gap:5px;display:inline-flex}.hm-swatch{border-radius:2px;width:16px;height:12px;display:inline-block;position:relative}@media (width<=900px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}}.donut-card{padding-bottom:14px}.donut-body{flex-wrap:wrap;align-items:center;gap:28px;display:flex}.donut{flex:none;display:block}.donut-track{fill:none;stroke:#f1f3f5;stroke-width:20px}.donut-seg{fill:none;cursor:default}.donut-seg.sev-danger{stroke:#d93025}.donut-seg.sev-warning{stroke:#f0a000}.donut-seg.sev-notice{stroke:#5d6873}.donut-seg:hover{opacity:.85}.donut-label{fill:var(--muted);font-size:12px}.donut-total{fill:var(--fg);font-size:30px;font-weight:650}.donut-legend{flex-direction:column;gap:4px;min-width:260px;display:flex}.donut-row{border-radius:6px;outline:none;grid-template-columns:10px 40px 52px 56px auto;align-items:center;column-gap:12px;margin:0 -8px;padding:4px 8px;display:grid}.donut-row:hover{background:var(--hover)}.donut-row:focus-visible{box-shadow:0 0 0 2px var(--accent)}.donut-name{font-size:13px}.donut-n{text-align:right;font-variant-numeric:tabular-nums;font-size:18px;font-weight:650}.donut-pct{color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;font-size:12px}.donut-row.zero .donut-name,.donut-row.zero .donut-n{color:var(--muted)}.donut-row .tile-delta{font-size:11px}.stats-row{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:12px;display:grid}.stats-row>.chart-card{min-width:0}.donut-legend{width:max-content;max-width:100%}.donut-cols{color:var(--muted);grid-template-columns:10px 40px 52px 56px auto;column-gap:12px;margin:0 -8px 2px;padding:0 8px;font-size:11px;display:grid}.donut-cols span:nth-child(3),.donut-cols span:nth-child(4){text-align:right}.donut-row .tile-delta{white-space:nowrap}.stats-row.side{grid-template-columns:var(--donut-w,max-content) minmax(0, 1fr)}.stats-row.side .donut-body{flex-direction:column;align-items:center;gap:14px}.stats-row.side .multiples{grid-template-columns:repeat(auto-fill,minmax(max(165px,33.3333% - 6.66667px),1fr))}body.login-open>:not(.login-screen){visibility:hidden}.login-screen{z-index:50;box-sizing:border-box;background:radial-gradient(120% 90% at 50% 0%, #1b2633 0%, var(--bg) 60%);place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow:auto}.login-card{box-sizing:border-box;width:100%;max-width:340px;color:var(--fg);backdrop-filter:blur(12px)saturate(1.3);background:#fffffff5;border:1px solid #fff9;border-radius:14px;padding:24px 24px 18px;animation:.14s ease-out info-in;box-shadow:0 10px 40px #00000073}.login-brand{align-items:center;gap:12px;margin-bottom:18px;display:flex}.login-brand img{flex:none;display:block}.login-name{color:var(--accent);letter-spacing:-.02em;font-size:13px;font-weight:800}.login-brand h1{font-size:17px}.login-notice{background:var(--hover);border-radius:8px;margin:0 0 12px;padding:8px 10px;font-size:12px}.login-card .field{margin-bottom:12px}.login-card input{box-sizing:border-box;background:#fff;border:1px solid #cfd6de;border-radius:8px;width:100%;padding:8px 10px;font-size:14px;display:block}.login-card input:hover{border-color:#b7c0ca}.login-card input[aria-invalid=true]{border-color:var(--danger)}.login-error{color:var(--danger);align-items:flex-start;gap:6px;margin:0 0 12px;font-size:12px;font-weight:600;display:flex}.login-error .icon-wrap{margin-top:1px}.login-submit{border-radius:8px;width:100%;padding:9px 12px;font-size:14px}.login-hint{justify-content:center;align-items:center;gap:5px;margin-top:12px;display:flex}.account-info{grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 10px;font-size:12px;display:grid}.account-info dt{color:var(--muted)}.account-info dd{overflow-wrap:anywhere;margin:0;font-weight:600}.account-line{margin:0;font-size:12px}.account-logout{justify-content:center;width:100%}
