:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#0b1114;--app-bg:#081014;--surface:#121b20;--surface-muted:#0b151a;--panel:#071014;--panel-muted:#111b20;--border:#223039;--border-strong:#334853;--text:#eef6f8;--text-soft:#c5d6dc;--muted:#91a8b3;--muted-strong:#8da3ad;--button-bg:#1c2a32;--button-hover:#243640;--primary-bg:#1e6a49;--primary-hover:#247d57;--primary-border:#3b6d58;--brand-accent:#58d9ec;--brand-accent-soft:#58d9ec38;--brand-warm:#b98a51;--video-bg:#020506;--overlay-bg:#000000ad;--shadow-soft:0 18px 42px #00000038;color:#eef6f8;background:#0b1114;font-family:Inter,Segoe UI,Malgun Gothic,system-ui,-apple-system,BlinkMacSystemFont,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page-bg:#eef3f1;--app-bg:#f7faf8;--surface:#fff;--surface-muted:#eef5f2;--panel:#fff;--panel-muted:#f5faf7;--border:#d5e2de;--border-strong:#b7ccc5;--text:#132126;--text-soft:#33464d;--muted:#5d737b;--muted-strong:#667b83;--button-bg:#eef5f2;--button-hover:#dfece7;--primary-bg:#287453;--primary-hover:#1f6247;--primary-border:#4c8d72;--brand-accent:#197f92;--brand-accent-soft:#197f922b;--brand-warm:#9b7141;--video-bg:#050708;--overlay-bg:#050b0d99;--shadow-soft:0 14px 32px #23363b29}:root[data-theme=odri]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg:#061019;--app-bg:#06121a;--surface:#0d1a22;--surface-muted:#0b1820;--panel:#07131b;--panel-muted:#0c1b24;--border:#1c3440;--border-strong:#2b5561;--text:#effcff;--text-soft:#c5e2e8;--muted:#87aab4;--muted-strong:#91b5bf;--button-bg:#142a35;--button-hover:#1c3945;--primary-bg:#176d5f;--primary-hover:#1f8373;--primary-border:#349685;--brand-accent:#47d9f0;--brand-accent-soft:#47d9f033;--brand-warm:#c49458;--video-bg:#000406;--overlay-bg:#000508b8;--shadow-soft:0 18px 44px #00000057}*{box-sizing:border-box}html,body,#app{min-height:100%}body{background:#081014;margin:0}body.modal-fullscreen-open,body.mosaic-fullscreen-open{overflow:hidden}button{font:inherit}.shell{grid-template-rows:auto minmax(0,1fr);min-height:100vh;display:grid}.topbar{background:#121b20;border-bottom:1px solid #223039;justify-content:space-between;align-items:center;gap:20px;min-height:66px;padding:10px 14px;display:flex}.title-block,.focus-title-block{min-width:0}.eyebrow,.subtitle{color:#91a8b3;margin:0;font-size:12px}.eyebrow{margin-bottom:2px}h1,h2{letter-spacing:0;margin:0;line-height:1.2}h1{font-size:20px}h2{font-size:17px}.subtitle{margin-top:3px}.actions,.focus-actions{flex:none;align-items:center;gap:8px;display:inline-flex}.mobile-tabbar{display:none}.mobile-tabbar-link{min-width:0;min-height:46px;color:var(--text-soft);letter-spacing:0;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;font-size:12px;font-weight:800;text-decoration:none;display:inline-flex}.mobile-tabbar-link:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}.mobile-tabbar-link[data-active=true]{border-color:var(--primary-border);background:#1e6a493d;background:color-mix(in srgb, var(--primary-bg) 36%, transparent);color:var(--text)}.status{color:#c5d6dc;justify-content:flex-end;align-items:center;gap:8px;min-width:142px;font-size:13px;display:inline-flex}.status-dot{background:#f0b742;border-radius:999px;width:8px;height:8px;box-shadow:0 0 0 3px #f0b74226}.status.live .status-dot{background:#3ed084;box-shadow:0 0 0 3px #3ed08424}.status.error .status-dot{background:#ef5d5d;box-shadow:0 0 0 3px #ef5d5d26}.stream-meta{color:#91a8b3;text-align:right;min-width:190px;font-size:12px}.alert-pill{color:#9af5c7;cursor:pointer;background:#3ed0841c;border:1px solid #334853;border-radius:999px;min-width:86px;min-height:32px;padding:0 12px;font-size:12px;font-weight:800}.alert-pill[data-severity=info]{color:#a9d4ff;background:#7bb0e21f}.alert-pill[data-severity=warning]{color:#f6d58a;background:#f0b74224;border-color:#f0b74261}.alert-pill[data-severity=critical]{color:#ffb0b0;background:#ef5d5d29;border-color:#ef5d5d73}.button{color:#eef6f8;cursor:pointer;background:#1c2a32;border:1px solid #334853;border-radius:6px;justify-content:center;align-items:center;min-height:36px;padding:0 13px;text-decoration:none;display:inline-flex}.button:hover{background:#243640}.button:disabled{cursor:wait;opacity:.68}.button.primary{background:#1e6a49;border-color:#3b6d58}.button.compact{min-width:40px;padding:0 10px}.boot-shell,.login-shell{background:#081014;place-items:center;min-height:100vh;padding:20px;display:grid}.boot-shell{color:#a8bcc5}.boot-shell.error{color:#f6c2c2;gap:12px}.login-panel{gap:18px;width:min(100%,360px);display:grid}.login-form{gap:12px;display:grid}.login-form label{color:#c5d6dc;gap:6px;font-size:13px;display:grid}.login-form input{color:#eef6f8;width:100%;min-height:40px;font:inherit;background:#111b20;border:1px solid #334853;border-radius:6px;padding:0 11px}.login-form input:focus{outline-offset:1px;outline:2px solid #48a8d4e6}.login-error{color:#f6c2c2;min-height:18px;margin:0;font-size:13px}.monitor{place-items:center;min-height:0;padding:12px;display:grid}.stage{aspect-ratio:16/9;background:#020506;border:1px solid #263841;width:min(100%,177.778vh - 160px);position:relative;overflow:hidden;box-shadow:0 18px 42px #00000038}.stage.fullscreen-fallback,body.mosaic-native-fullscreen .stage{aspect-ratio:auto;width:100dvw;height:100dvh;box-shadow:none;border:0}.stage:fullscreen{aspect-ratio:auto;width:100dvw;height:100dvh;box-shadow:none;border:0}.stage.fullscreen-fallback,body.mosaic-native-fullscreen .stage{z-index:70;position:fixed;inset:0}.stage-exit{z-index:3;color:#eef6f8;cursor:pointer;background:#0a1216db;border:1px solid #eef6f852;border-radius:6px;min-height:38px;padding:0 13px;display:none;position:absolute;bottom:14px;right:14px}.stage.fullscreen-fallback .stage-exit,body.mosaic-native-fullscreen .stage .stage-exit{align-items:center;display:inline-flex}.stage:fullscreen .stage-exit{align-items:center;display:inline-flex}.fullscreen-notice{z-index:4;color:#f6d58a;text-align:center;background:#14120adb;border:1px solid #f0b74259;border-radius:6px;max-width:min(680px,100% - 32px);padding:9px 12px;font-size:13px;line-height:1.45;position:absolute;bottom:62px;left:50%;transform:translate(-50%);box-shadow:0 12px 28px #00000047}.fullscreen-notice[hidden]{display:none}.focus-fullscreen-notice{top:74px;bottom:auto}.mosaic-stream{object-fit:fill;opacity:0;width:100%;height:100%;transition:opacity .14s;position:absolute;inset:0}.stage.ready .mosaic-stream{opacity:1}.dashboard-grid{--columns:4;grid-template-columns:repeat(var(--columns), minmax(0, 1fr));background:#020506;display:grid;position:absolute;inset:0}.dashboard-grid[hidden]{display:none}.dashboard-grid.warming{visibility:hidden;pointer-events:none}.dashboard-grid-tile{background:#000;border-bottom:1px solid #87a8b533;border-right:1px solid #87a8b533;min-width:0;position:relative;overflow:hidden}.dashboard-grid-tile.inactive{color:#ecf6f875;place-items:center;font-size:12px;display:grid}.dashboard-grid-frame{background:#000;border:0;width:100%;height:100%}.overlay{--columns:4;grid-template-columns:repeat(var(--columns), minmax(0, 1fr));display:grid;position:absolute;inset:0}.tile{color:#ecf6f8db;cursor:zoom-in;background:0 0;border:1px solid #87a8b53d;border-top:0;border-left:0;min-width:0;padding:0;position:relative}.tile:hover,.tile:focus-visible{outline-offset:-2px;background:#26546614;outline:2px solid #48a8d4e6}.tile.dragging{opacity:.45}.tile.drop-target{outline-offset:-2px;outline:2px solid #3ed084f2}.tile-name,.tile-channel,.tile-state{text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px #000c;max-width:calc(100% - 72px);font-size:11px;font-weight:700;line-height:1.2;display:block;position:absolute;top:7px;overflow:hidden}.tile-name{left:8px}.tile-channel{color:#b9ccd3cc;right:8px}.tile-state{color:#c5d6dc;background:#081014b8;border:1px solid #eef6f833;border-radius:999px;max-width:calc(100% - 16px);padding:2px 6px;font-size:10px;top:auto;bottom:7px;right:8px}.tile[data-state=live] .tile-state{color:#92e7b8;border-color:#3ed08470}.tile[data-state=starting] .tile-state{color:#f0d18b;border-color:#f0b7426b}.tile[data-state=stale] .tile-state{color:#f0b742;border-color:#f0b74285}.tile[data-state=offline] .tile-state{color:#f6a7a7;border-color:#ef5d5d80}.tile.inactive{cursor:default}.tile.inactive:after{content:"비활성";color:#91a8b3;background:#000000a3;place-items:center;font-size:12px;display:grid;position:absolute;inset:0}.loading{pointer-events:none;color:#a8bcc5;background:#00000061;place-items:center;font-size:14px;display:grid;position:absolute;inset:0}.stage.ready .loading{display:none}.stage.error .loading{color:#f6c2c2}.focus-dialog{color:#eef6f8;background:#071014;border:1px solid #263841;width:min(96vw,1280px);height:min(92vh,820px);padding:0;overflow:hidden}.focus-dialog::backdrop{background:#000000bd}.focus-dialog:fullscreen{background:var(--video-bg);border:0;width:100dvw;max-width:none;height:100dvh;max-height:none;margin:0}.focus-dialog:fullscreen::backdrop{background:#000}.focus-dialog:fullscreen .focus-toolbar{z-index:2;color:#eef6f8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081014d6;border:1px solid #eef6f838;border-radius:6px;min-height:48px;position:absolute;top:12px;left:12px;right:12px}.focus-dialog:fullscreen .focus-frame{height:100%}.focus-dialog:fullscreen .focus-stream{object-fit:cover}.focus-transport{color:#91a8b3;margin:4px 0 0;font-size:12px}.focus-fullscreen-stage{z-index:60;color:#eef6f8;background:#000;position:fixed;inset:0;overflow:hidden}.focus-fullscreen-stage[hidden]{display:none}:is(.focus-fullscreen-stage:fullscreen,.focus-fullscreen-stage.focus-fullscreen-fallback){background:#000;border:0;width:100dvw;max-width:none;height:100dvh;max-height:none;margin:0}.focus-fullscreen-stage .focus-toolbar{z-index:2;color:#eef6f8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#081014d6;border:1px solid #eef6f838;border-radius:6px;min-height:48px;position:absolute;top:12px;left:12px;right:12px}.focus-fullscreen-stage .focus-frame{height:100%}.focus-fullscreen-stage .focus-stream{object-fit:cover}.settings-dialog,.health-dialog,.alert-dialog{color:#eef6f8;background:#071014;border:1px solid #263841;width:min(96vw,860px);max-height:min(92vh,840px);padding:0;overflow:hidden}.settings-dialog::backdrop,.health-dialog::backdrop,.alert-dialog::backdrop{background:#000000ad}.settings-toolbar{background:#121b20;border-bottom:1px solid #223039;justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:10px 12px;display:flex}.settings-actions{gap:8px;display:inline-flex}.settings-actions.compact{flex-wrap:wrap;justify-content:flex-end}.settings-rows{max-height:min(70vh,620px);overflow:auto}.settings-row{border-bottom:1px solid #87a8b52e;grid-template-columns:72px minmax(0,1fr) 96px;align-items:center;gap:10px;min-height:48px;padding:8px 12px;display:grid}.settings-channel{color:#91a8b3;font-size:12px;font-weight:700}.settings-name{color:#eef6f8;width:100%;min-height:34px;font:inherit;background:#111b20;border:1px solid #334853;border-radius:6px;padding:0 10px}.settings-name:focus{outline-offset:1px;outline:2px solid #48a8d4e6}.settings-toggle{color:#c5d6dc;justify-content:flex-end;align-items:center;gap:8px;font-size:13px;display:inline-flex}.settings-toggle input{accent-color:#3ed084;width:18px;height:18px}.settings-error{color:#f6c2c2;min-height:22px;margin:0;padding:0 12px 12px;font-size:13px}.recording-status{background:#0b151a;border-bottom:1px solid #87a8b52e;grid-template-columns:98px minmax(0,1fr);align-items:center;gap:4px 10px;padding:12px;display:grid}.recording-status span{color:#f0c870;background:#f0b74224;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.recording-status strong{color:#eef6f8;min-width:0;font-size:13px}.recording-status small{color:#8da3ad;grid-column:2;min-height:16px;font-size:12px}.recording-status[data-state=ready] span{color:#7df0b6;background:#3ed08421}.recording-status[data-state=auth_failed] span,.recording-status[data-state=unexpected_response] span,.recording-status[data-state=unreachable] span,.recording-status[data-state=error] span{color:#f5a0a0;background:#ef5d5d24}.media-status{background:#0b151a;border-bottom:1px solid #87a8b52e;grid-template-columns:98px minmax(0,1fr);align-items:center;gap:4px 10px;padding:12px;display:grid}.media-status span{color:#f0c870;background:#f0b74224;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.media-status strong{color:#eef6f8;min-width:0;font-size:13px}.media-status small{color:#8da3ad;grid-column:2;min-height:16px;font-size:12px}.media-status[data-state=ready] span{color:#7df0b6;background:#3ed08421}.health-summary{background:#223039;border-bottom:1px solid #87a8b52e;grid-template-columns:repeat(6,minmax(0,1fr));gap:1px;display:grid}.health-summary div{background:#0b151a;align-content:center;gap:4px;min-height:62px;padding:10px 12px;display:grid}.health-summary-label{color:#8da3ad;font-size:11px}.health-summary strong{color:#eef6f8;font-size:16px}.health-table-wrap{max-height:min(62vh,560px);overflow:auto}.health-table{border-collapse:collapse;color:#c5d6dc;width:100%;min-width:720px;font-size:13px}.health-table th,.health-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #87a8b529;padding:10px 12px}.health-table th{z-index:1;color:#91a8b3;background:#121b20;font-size:11px;font-weight:700;position:sticky;top:0}.alert-summary-panel{background:#3ed08417;border-bottom:1px solid #87a8b52e;gap:4px;padding:14px;display:grid}.alert-summary-panel[data-severity=info]{background:#7bb0e217}.alert-summary-panel[data-severity=warning]{background:#f0b7421a}.alert-summary-panel[data-severity=critical]{background:#ef5d5d1c}.alert-summary-panel strong{color:#eef6f8;font-size:16px}.alert-summary-panel span{color:#9fb3bc;font-size:12px}.alert-list{max-height:min(62vh,560px);padding:10px 12px 12px;overflow:auto}.alert-empty{color:#91a8b3;place-items:center;min-height:72px;font-size:13px;display:grid}.alert-item{border-bottom:1px solid #87a8b529;grid-template-columns:72px minmax(0,1fr) auto;gap:10px;padding:12px 0;display:grid}.alert-item[data-acknowledged=true]{opacity:.62}.alert-item>span{color:#a9d4ff;background:#7bb0e21f;border-radius:999px;justify-content:center;align-self:start;min-height:24px;padding:4px 8px;font-size:11px;font-weight:800;display:inline-flex}.alert-item[data-severity=warning]>span{color:#f6d58a;background:#f0b74224}.alert-item[data-severity=critical]>span{color:#ffb0b0;background:#ef5d5d29}.alert-item strong{color:#eef6f8;font-size:14px;display:block}.alert-item p{color:#c5d6dc;margin:4px 0;font-size:13px}.alert-item small{color:#8da3ad;font-size:12px}.alert-ack-button{align-self:center;min-width:64px}.alert-sync-status{color:#87a8b5;min-height:18px;margin:8px 0 0;font-size:12px}.alert-sync-status[data-state=ready]{color:#7de0a4}.alert-sync-status[data-state=error]{color:#ff9c9c}.health-table td:first-child{gap:2px;display:grid}.health-table td:first-child span{color:#91a8b3;font-size:12px}.health-state{color:#f0c870;background:#f0b7421f;border-radius:999px;align-items:center;min-height:24px;padding:0 8px;font-weight:700;display:inline-flex}.health-table tr[data-state=live] .health-state{color:#7df0b6;background:#3ed08421}.health-table tr[data-state=stale] .health-state{color:#f0c870;background:#f0b74224}.health-table tr[data-state=offline] .health-state{color:#f5a0a0;background:#ef5d5d24}.recording-controls{border-bottom:1px solid #87a8b52e;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) minmax(180px,1fr);gap:10px;padding:12px;display:grid}.recording-shell{background:#081014;grid-template-rows:auto minmax(0,1fr);height:100vh;min-height:0;display:grid;overflow:hidden}.media-shell,.ai-shell,.event-shell{background:#081014;min-height:100vh}.recording-workspace{grid-template-columns:minmax(360px,460px) minmax(0,1fr);gap:12px;height:auto;min-height:0;padding:12px;display:grid}.media-workspace,.ai-workspace,.event-workspace{grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:12px;min-height:0;padding:12px;display:grid}.recording-search-panel{grid-template-rows:auto minmax(0,1fr);gap:12px;min-height:0;display:grid}.media-search-panel,.ai-search-panel{min-height:0}.event-search-panel{gap:12px;min-height:0;display:grid}.recording-page-form,.recording-results-panel,.recording-player-panel,.media-page-form,.media-results-panel,.ai-page-form,.ai-results-panel,.event-page-form,.event-note-panel,.event-results-panel{background:#0b151a;border:1px solid #223039;border-radius:6px;min-width:0;min-height:0;overflow:hidden}.recording-page-form,.recording-player-panel,.media-page-form,.ai-page-form,.event-page-form,.event-note-panel{grid-template-rows:auto minmax(0,1fr);display:grid}.recording-player-panel{grid-template-rows:auto auto minmax(280px,1fr) auto}.recording-results-panel,.media-results-panel,.ai-results-panel,.event-results-panel{grid-template-rows:auto minmax(0,1fr);display:grid}.recording-panel-header{background:#121b20;border-bottom:1px solid #223039;justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:10px 12px;display:flex}.recording-panel-header.compact{min-height:50px}.recording-result-count{color:#91a8b3;font-size:12px;font-weight:700}.recording-controls.page{border-bottom:0;grid-template-columns:1fr}.media-controls,.ai-controls,.event-controls{grid-template-columns:1fr;gap:10px;padding:12px;display:grid}.media-controls label,.ai-controls label,.event-controls label{color:#c5d6dc;gap:6px;font-size:12px;display:grid}.media-controls select,.media-controls input,.ai-controls select,.ai-controls input,.event-controls select,.event-controls input,.event-controls textarea{color:#eef6f8;min-height:36px;font:inherit;background:#111b20;border:1px solid #334853;border-radius:6px;padding:0 10px}.event-controls textarea{resize:vertical;min-height:88px;padding:10px}.recording-results.page{min-height:0;max-height:none}.recording-page-player{background:#000;place-items:center;min-height:0;padding:12px;display:grid;position:relative;overflow:hidden}.recording-timeline-panel,.recording-clip-panel{background:#091116;border-bottom:1px solid #223039;min-width:0;padding:10px 12px}.recording-clip-panel{border-top:1px solid #223039;border-bottom:0}.recording-timeline-header{color:#91a8b3;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:12px;display:flex}.recording-timeline-header div{gap:2px;min-width:0;display:grid}.recording-timeline-header strong{color:#dcecf1;font-size:13px}.recording-timeline{scrollbar-width:thin;min-height:78px;overflow:auto hidden}.recording-timeline-track{background:linear-gradient(90deg,#87a8b529 1px,#0000 1px) 0 0/25% 100%,#050a0d;border:1px solid #223039;border-radius:6px;min-width:100%;height:72px;position:relative}.recording-timeline-tick{color:#8298a3;white-space:nowrap;pointer-events:none;font-size:11px;position:absolute;top:8px;transform:translate(-50%)}.recording-timeline-tick:after{content:"";background:#87a8b533;width:1px;height:34px;position:absolute;top:18px;left:50%}.recording-timeline-segment{cursor:pointer;background:linear-gradient(#51d69ca6,#1f805cb8);border:1px solid #51d69cb3;border-radius:4px;min-width:12px;height:24px;position:absolute;top:34px}.recording-timeline-segment:hover,.recording-timeline-segment:focus-visible,.recording-timeline-segment.selected{outline-offset:1px;outline:2px solid #cdf5dfb3}.recording-timeline-segment:disabled{cursor:not-allowed;background:#87a8b52e;border-color:#87a8b552}.recording-timeline-empty{color:#8298a3;text-align:center;border:1px dashed #87a8b53d;border-radius:6px;place-items:center;min-height:52px;display:grid}.recording-clip-candidates{gap:8px;max-height:130px;display:grid;overflow:auto}.recording-clip-candidate{background:#0b151a;border:1px solid #223039;border-radius:6px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;min-height:44px;padding:8px 10px;display:grid}.recording-clip-candidate div{gap:2px;min-width:0;display:grid}.recording-clip-candidate strong{color:#eaf5f7}.recording-clip-candidate span{color:#91a8b3;font-size:12px}.recording-clip-candidate small{color:#6ee7b7;font-size:11px}.recording-page-player .recording-playback-stream:not([src]){display:none}.recording-playback-empty{color:#728996;text-align:center;font-size:14px}.recording-controls label{color:#c5d6dc;gap:6px;font-size:12px;display:grid}.recording-controls select,.recording-controls input{color:#eef6f8;min-height:36px;font:inherit;background:#111b20;border:1px solid #334853;border-radius:6px;padding:0 10px}.recording-results{color:#91a8b3;min-height:180px;max-height:min(56vh,520px);padding:12px;font-size:13px;overflow:auto}.media-results,.ai-results,.event-results{color:#91a8b3;min-height:0;padding:12px;font-size:13px;overflow:auto}.recording-empty,.recording-diagnostic,.media-empty,.ai-empty,.event-empty{background:#0b151a;border:1px solid #223039;border-radius:6px;padding:10px 12px}.media-empty,.ai-empty,.event-empty{color:#91a8b3;text-align:center;place-items:center;min-height:110px;display:grid}.ai-status{background:#0b151a;border-bottom:1px solid #87a8b52e;grid-template-columns:98px minmax(0,1fr);align-items:center;gap:4px 10px;padding:12px;display:grid}.ai-status span{color:#f0c870;background:#f0b74224;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.ai-status strong{color:#eef6f8;min-width:0;font-size:13px}.ai-status small{color:#8da3ad;grid-column:2;min-height:16px;font-size:12px}.ai-status[data-state=ready] span{color:#7df0b6;background:#3ed08421}.event-status{background:#0b151a;border-bottom:1px solid #87a8b52e;grid-template-columns:98px minmax(0,1fr);align-items:center;gap:4px 10px;padding:12px;display:grid}.event-status span{color:#f0c870;background:#f0b74224;border-radius:999px;justify-content:center;align-items:center;min-height:26px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.event-status strong{color:#eef6f8;min-width:0;font-size:13px}.event-status small{color:#8da3ad;grid-column:2;min-height:16px;font-size:12px}.event-status[data-state=ready] span{color:#7df0b6;background:#3ed08421}.event-timeline{gap:10px;display:grid}.event-item{background:#0b151a;border:1px solid #223039;border-radius:6px;grid-template-columns:30px minmax(0,1fr);gap:10px;min-width:0;padding:10px;display:grid}.event-marker{color:#a9d4ff;background:#7bb0e221;border-radius:999px;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.event-item[data-severity=warning] .event-marker{color:#f0c870;background:#f0b74224}.event-item[data-severity=critical] .event-marker{color:#faa;background:#ef5d5d24}.event-body{gap:7px;min-width:0;display:grid}.event-item-header{justify-content:space-between;align-items:center;gap:10px;min-width:0;display:flex}.event-item-header strong{color:#eef6f8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.event-item-header span,.event-actions span{color:#b6c7ce;background:#87a8b51a;border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.event-meta{color:#91a8b3;font-size:12px}.event-body p{color:#c5d6dc;margin:0;font-size:13px}.event-actions{flex-wrap:wrap;gap:6px;display:flex}.event-controls-inline{flex-wrap:wrap;gap:8px;display:flex}.ai-event-list{gap:12px;display:grid}.ai-event-card{background:#0b151a;border:1px solid #223039;border-left:4px solid #7bb0e2;border-radius:6px;grid-template-columns:220px minmax(0,1fr);gap:12px;min-width:0;padding:10px;display:grid}.ai-event-card[data-severity=warning]{border-left-color:#f0b742}.ai-event-card[data-severity=critical]{border-left-color:#ef5d5d}.ai-event-thumb{aspect-ratio:16/9;color:#728996;background:#020506;border:1px solid #87a8b529;border-radius:6px;place-items:center;font-size:13px;font-weight:700;display:grid;overflow:hidden}.ai-event-thumb img{object-fit:cover;width:100%;height:100%}.ai-event-body{align-content:start;gap:8px;min-width:0;display:grid}.ai-event-body strong{color:#eef6f8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;overflow:hidden}.ai-event-body p{color:#c5d6dc;margin:0;font-size:13px}.ai-event-meta{color:#91a8b3;font-size:12px}.ai-event-actions{flex-wrap:wrap;gap:8px;display:flex}.media-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.media-card{background:#0b151a;border:1px solid #223039;border-radius:6px;gap:8px;min-width:0;padding:10px;display:grid}.media-card strong{color:#eef6f8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:14px;overflow:hidden}.media-thumb{aspect-ratio:16/9;color:#728996;background:#020506;border:1px solid #87a8b529;border-radius:6px;place-items:center;font-size:13px;font-weight:700;display:grid;overflow:hidden}.media-thumb img{object-fit:cover;width:100%;height:100%}.media-meta{color:#91a8b3;font-size:12px}.media-tags{flex-wrap:wrap;gap:6px;min-height:24px;display:flex}.media-tags span{color:#a9d4ff;background:#7bb0e21c;border-radius:999px;align-items:center;min-height:22px;padding:0 8px;font-size:11px;font-weight:700;display:inline-flex}.recording-diagnostic{color:#8da3ad;margin-top:8px;font-size:12px}.recording-result{color:#d8e7ec;border-bottom:1px solid #87a8b529;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 72px 88px;align-items:center;gap:10px;min-height:40px;display:grid}.recording-result small{color:#91a8b3;font-size:12px}.recording-result.selected{background:#3ed08417}.recording-playback-stream{object-fit:contain;width:100%;min-width:0;max-width:100%;height:100%;min-height:0;max-height:100%;display:block}.focus-toolbar{background:#121b20;border-bottom:1px solid #223039;justify-content:space-between;align-items:center;gap:12px;min-height:58px;padding:10px 12px;display:flex}.focus-frame{--zoom:1;--pan-x:0px;--pan-y:0px;touch-action:none;background:#000;height:calc(100% - 58px);position:relative;overflow:hidden}.focus-frame.zoomed{cursor:grab}.focus-frame.panning{cursor:grabbing}.focus-stream{object-fit:contain;width:100%;height:100%;transform:translate(var(--pan-x), var(--pan-y)) scale(var(--zoom));transform-origin:50%;-webkit-user-select:none;user-select:none;will-change:transform}.focus-web-stream{pointer-events:none;background:#000;border:0}.focus-preview-web-stream,.focus-primary-web-stream{position:absolute;inset:0}.focus-preview-web-stream{z-index:1}.focus-primary-web-stream{z-index:2;opacity:0}.focus-primary-web-stream.ready{opacity:1}.focus-web-stream[hidden]{display:none}@media (width<=900px){.topbar,.focus-toolbar,.settings-toolbar{flex-direction:column;align-items:flex-start}.actions,.focus-actions,.settings-actions{flex-wrap:wrap;justify-content:space-between;width:100%}.status{justify-content:flex-start}.stream-meta{text-align:left;width:100%}.monitor{align-items:start;padding:8px}.focus-dialog{width:100vw;max-width:none;height:100vh;max-height:none}.settings-row{grid-template-columns:58px minmax(0,1fr)}.recording-controls,.recording-result,.recording-workspace{grid-template-columns:1fr}.recording-shell{height:auto;min-height:100vh;overflow:auto}.media-workspace,.ai-workspace,.event-workspace,.ai-event-card{grid-template-columns:1fr}.recording-search-panel{grid-template-rows:auto auto}.recording-page-player{min-height:48vh}.recording-status,.media-status,.ai-status,.event-status{grid-template-columns:1fr}.recording-status span,.media-status span,.ai-status span,.event-status span{justify-self:start}.recording-status small,.media-status small,.ai-status small,.event-status small{grid-column:auto}.health-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-toggle{grid-column:2;justify-content:flex-start}}html,body,#app{background:var(--app-bg);color:var(--text)}:root{background:var(--page-bg);color:var(--text)}body,.boot-shell,.login-shell{background:var(--app-bg)}.topbar,.settings-toolbar,.focus-toolbar{border-color:var(--border);background:var(--surface);color:var(--text)}.topbar{flex-wrap:wrap;align-items:flex-start}.brand-title{flex:320px;align-items:center;gap:10px;min-width:min(100%,280px);display:flex}.brand-copy{min-width:0}.brand-copy h1{overflow-wrap:normal;word-break:keep-all}.brand-mark{border:1px solid var(--border-strong);width:42px;height:42px;box-shadow:0 0 0 3px var(--brand-accent-soft);object-fit:cover;background:#fff;border-radius:10px;flex:none}.login-brand{align-items:center;gap:14px;display:flex}.login-brand .brand-mark{border-radius:14px;width:58px;height:58px}.login-panel-toolbar{justify-content:flex-end;display:flex}.theme-control{border:1px solid var(--border-strong);background:color-mix(in srgb, var(--button-bg) 88%, transparent);min-height:36px;color:var(--text-soft);border-radius:6px;align-items:center;gap:7px;padding:0 8px;font-size:12px;display:inline-flex}.theme-control-label{color:var(--muted);font-weight:700}.theme-select{min-height:28px;color:var(--text);font:inherit;background:0 0;border:0;font-weight:700}.theme-select:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}.actions{flex-wrap:wrap;flex:760px;justify-content:flex-end;min-width:min(100%,560px)}.actions .button,.actions .alert-pill{flex:none}.eyebrow,.subtitle,.stream-meta,.tile-channel,.media-meta,.recording-diagnostic,.settings-channel{color:var(--muted)}.status,.settings-toggle,.health-table,.login-form label,.focus-transport,.event-actions,.ai-event-actions,.media-kind,.event-meta,.ai-event-meta{color:var(--text-soft)}.button,.stage-exit{border-color:var(--border-strong);background:var(--button-bg);color:var(--text)}.button:hover,.stage-exit:hover{background:var(--button-hover)}.button.primary{border-color:var(--primary-border);background:var(--primary-bg)}.button.primary:hover{background:var(--primary-hover)}.login-form input,.settings-name,.recording-controls input,.recording-controls select,.media-controls input,.media-controls select,.ai-controls input,.ai-controls select,.event-controls input,.event-controls select,.event-action-note{border-color:var(--border-strong);background:var(--panel-muted);color:var(--text)}.stage,.focus-dialog,.settings-dialog,.health-dialog,.alert-dialog,.recording-page-player,.media-thumb,.ai-event-thumb,.event-media-thumb{border-color:var(--border);background:var(--video-bg);color:var(--text)}.stage,.recording-player-panel,.recording-search-panel,.media-search-panel,.media-results-panel,.ai-search-panel,.ai-results-panel,.event-search-panel,.event-results-panel{box-shadow:var(--shadow-soft)}.login-panel,.recording-search-panel,.recording-results-panel,.recording-player-panel,.media-search-panel,.media-results-panel,.ai-search-panel,.ai-results-panel,.event-search-panel,.event-note-panel,.event-results-panel,.alert-summary-panel,.alert-item,.ai-event-card,.event-card{border-color:var(--border);background:var(--panel);color:var(--text)}.recording-status,.media-status,.ai-status,.event-status,.health-summary div,.health-table th,.alert-list-empty,.media-empty,.event-empty,.ai-empty{background:var(--surface-muted);color:var(--text-soft)}.recording-status strong,.media-status strong,.ai-status strong,.event-status strong,.health-summary strong,.recording-result,.media-title,.event-title,.ai-event-title{color:var(--text)}.recording-status small,.media-status small,.ai-status small,.event-status small,.health-summary-label,.event-summary,.ai-event-summary{color:var(--muted-strong)}.settings-row,.health-table th,.health-table td,.recording-result,.media-card,.ai-event-card,.event-card,.event-action-item{border-color:color-mix(in srgb, var(--border) 72%, transparent)}.health-summary{border-color:var(--border);background:var(--border)}.focus-fullscreen-stage.focus-fullscreen-fallback,.focus-frame{background:var(--video-bg)}.focus-dialog:fullscreen{background:var(--video-bg)}.focus-fullscreen-stage:fullscreen{background:var(--video-bg)}.focus-fullscreen-stage .focus-toolbar{color:#eef6f8;background:#081014d6;border-color:#eef6f838}.focus-dialog:fullscreen .focus-toolbar{color:#eef6f8;background:#081014d6;border-color:#eef6f838}.loading{color:var(--text-soft);background:var(--overlay-bg)}.tile-state{border-color:color-mix(in srgb, var(--text) 20%, transparent);background:color-mix(in srgb, var(--app-bg) 72%, transparent);color:var(--text-soft)}.tile:hover,.tile:focus-visible{outline-color:var(--brand-accent);background:var(--brand-accent-soft)}.login-error,.settings-error{color:#f6b7b7}.settings-page-shell{background:var(--page-bg);min-height:100vh}.settings-page{grid-template-columns:190px minmax(0,1fr);align-items:start;gap:14px;width:min(1480px,100vw - 28px);margin:14px auto;display:grid}.settings-nav{border:1px solid var(--border);background:var(--surface);gap:6px;padding:10px;display:grid;position:sticky;top:82px}.settings-nav a{min-height:34px;color:var(--text-soft);border:1px solid #0000;align-items:center;padding:0 10px;font-size:13px;font-weight:800;text-decoration:none;display:flex}.settings-nav a:hover,.settings-nav a:focus-visible{border-color:var(--border-strong);background:var(--button-hover);color:var(--text);outline:none}.settings-content{gap:14px;min-width:0;display:grid}.settings-panel{border:1px solid var(--border);background:var(--surface)}.settings-panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:64px;padding:14px 16px;display:flex}.settings-state,.settings-message{color:var(--muted);font-size:13px}.settings-overview-grid,.settings-detail-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px 16px 16px;display:grid}.settings-overview-item,.settings-detail-item{border:1px solid var(--border);background:var(--panel);align-content:center;gap:6px;min-height:84px;padding:12px;display:grid}.settings-overview-item span,.settings-detail-item span,.settings-overview-item small{color:var(--muted);font-size:12px}.settings-overview-item strong,.settings-detail-item strong{color:var(--text);font-size:18px}.settings-camera-rows{gap:1px;padding:14px 16px 0;display:grid}.settings-camera-row{border:1px solid var(--border);background:var(--panel);grid-template-columns:80px minmax(180px,1fr) minmax(130px,180px) 92px;align-items:center;gap:10px;min-height:52px;padding:8px 10px;display:grid}.settings-camera-path{color:var(--muted);font-size:12px}.settings-viewer-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;gap:10px 16px;min-width:0;padding:14px 0;display:grid}.settings-viewer-row>strong,.settings-viewer-expiry{overflow-wrap:anywhere}.settings-viewer-expiry{color:var(--muted);grid-column:1/-1;font-size:13px}.settings-credential-form{grid-column:1/-1;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));align-items:end;gap:12px;min-width:0;display:grid}.settings-password-form{margin:16px}.settings-credential-field{gap:6px;min-width:0;font-size:13px;display:grid}.settings-credential-field input{box-sizing:border-box;border:1px solid var(--border);background:var(--panel);width:100%;min-width:0;min-height:42px;color:var(--text);font:inherit;border-radius:4px;padding:8px 10px}.settings-credential-field input:focus-visible{outline:2px solid var(--brand-accent);outline-offset:2px}.settings-credential-form>.button{white-space:normal;min-height:42px}.settings-credential-form>.settings-message,.settings-issued-secret .settings-message{overflow-wrap:anywhere;grid-column:1/-1;margin:0}.settings-issued-secret{border-top:1px solid var(--border);grid-column:1/-1;gap:10px;min-width:0;padding:12px 0;display:grid}.settings-issued-secret output{overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;font-family:monospace;display:block}.settings-secret-actions{flex-wrap:wrap;gap:8px;display:flex}:root[data-theme=light] .settings-credential-form .settings-message[data-kind=error],:root[data-theme=light] .settings-issued-secret .settings-message[data-kind=error]{color:#a32828}.settings-message{min-height:20px;margin:10px 16px 16px}.settings-message[data-kind=success]{color:#9af5c7}.settings-message[data-kind=error]{color:#ffb0b0}.settings-callout{border:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;gap:12px;margin:14px 16px 0;padding:12px;display:flex}.settings-callout strong{flex:none}.settings-callout span{min-width:0;color:var(--text-soft);font-size:13px;line-height:1.5}.settings-checklist,.settings-reference-list{gap:10px;padding:14px 16px 16px;display:grid}.settings-checklist span,.settings-reference-list article{border:1px solid var(--border);background:var(--panel);color:var(--text-soft);padding:12px;font-size:13px;line-height:1.55;display:block}.settings-reference-list{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-reference-list article{min-height:128px}.settings-reference-list strong{color:var(--text);margin-bottom:8px;font-size:14px;display:block}.settings-reference-list p{color:var(--text-soft);margin:0}@media (width<=900px){.brand-title{flex:0 auto;width:100%;min-width:0}.brand-mark{border-radius:9px;width:36px;height:36px}.theme-control{flex:none}.actions{flex:0 auto;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:flex-start;gap:8px;width:100%;min-width:0;display:grid}.actions .button,.actions .alert-pill{flex:0 auto;width:100%;min-width:0;padding-inline:10px}.actions .theme-control{width:100%;min-width:0}.actions .status{flex:0 auto;width:100%;min-width:0}.actions .stream-meta{flex:0 auto;grid-column:1/-1;width:100%;min-width:0}.monitor,.stage{max-width:calc(100vw - 16px)}.monitor{width:100%;overflow-x:hidden}.stage{width:calc(100vw - 16px)}.settings-page{grid-template-columns:1fr;width:calc(100vw - 16px)}.settings-nav{display:flex;position:static;overflow-x:auto}.settings-nav a{flex:none}.settings-overview-grid,.settings-detail-grid,.settings-reference-list{grid-template-columns:1fr}.settings-camera-row{grid-template-columns:70px minmax(0,1fr)}.settings-camera-path,.settings-camera-row .settings-toggle{grid-column:2}.settings-callout{flex-direction:column;align-items:flex-start}}@media (width<=700px){.shell{padding-bottom:calc(66px + env(safe-area-inset-bottom))}.desktop-nav{display:none!important}.mobile-tabbar{z-index:40;padding:6px 8px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:#121b20f0;background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -14px 36px #00000042}}@media (width<=480px){html,body,#app,.shell,.topbar{max-width:100vw;overflow-x:hidden}.topbar{padding-inline:14px}.actions{grid-template-columns:1fr}.actions .theme-control,.actions .status,.actions .button,.actions .alert-pill{justify-content:center}}.actions [hidden],.settings-page [hidden]{display:none!important}
