:root{--bg:#0a0d12;--chrome:#11161e;--panel:#151b24;--panel-2:#1b222d;--panel-3:#222b37;--video:#04060a;--video-empty:#0b1015;--line:#242e3b;--line-soft:#1c242f;--ink:#dfe7f0;--ink-2:#b4c1d0;--muted:#7d8ca0;--faint:#5a697c;--accent:#2fa1d6;--accent-2:#1b7fb0;--accent-soft:#0f2e3e;--accent-ink:#7fcdef;--ok:#41b67c;--ok-soft:#0f2a1f;--warn:#dfa33c;--warn-soft:#2e2210;--crit:#e05a50;--crit-soft:#331714;--rec:#e0463c;--t-cont:#2c7fc2;--t-motion:#d9a03a;--t-alarm:#d8524a;--t-manual:#8c74c8;--t-none:#1a222c;font-family:IBM Plex Sans KR,system-ui,-apple-system,sans-serif}:root[data-theme=light]{--bg:#dfe4ea;--chrome:#fff;--panel:#f7f9fb;--panel-2:#edf1f5;--panel-3:#e2e8ef;--video:#0c1015;--video-empty:#151b22;--line:#d3dbe4;--line-soft:#e3e9ef;--ink:#141a22;--ink-2:#39434f;--muted:#5f6c7b;--faint:#8794a3;--accent:#1a72a3;--accent-2:#125879;--accent-soft:#ddeef7;--accent-ink:#0e5b85;--ok:#1e8a56;--ok-soft:#dcf0e6;--warn:#96620c;--warn-soft:#faeeda;--crit:#b93a31;--crit-soft:#fbe4e1;--t-none:#dbe2e9}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);height:100vh;overflow:hidden;font-size:13px;word-break:keep-all}button,input,select{font:inherit;color:inherit}button{border:0;background:none;cursor:pointer}.app{height:100vh;display:flex;flex-direction:column;background:var(--bg)}.live-video-only{background:#000}.page-hidden{display:none!important}.live-menu-toggle{position:fixed;right:12px;top:12px;z-index:100;min-width:58px;height:30px;padding:0 12px;border:1px solid rgba(127,205,239,.68);border-radius:5px;background:#080f16c2;color:#dfe7f0;font-size:12px;font-weight:700;box-shadow:0 4px 14px #00000059;opacity:.42;transition:opacity .15s,background .15s}.live-menu-toggle:hover,.live-menu-toggle:focus-visible,.live-menu-toggle.open{opacity:1;background:var(--accent-2);color:#fff}.live-menu-toggle.open{top:8px;right:8px}.menu-password-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;background:#000000b8}.menu-password-dialog{width:min(360px,calc(100vw - 32px));padding:20px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 18px 60px #0009}.menu-password-dialog h2{margin:0 0 8px;font-size:16px}.menu-password-dialog p{margin:0 0 14px;color:var(--muted)}.menu-password-dialog input{width:100%;height:38px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);padding:0 10px;font:18px IBM Plex Mono,monospace;letter-spacing:.2em}.menu-password-error{margin-top:9px;color:var(--crit);font-size:12px}.menu-password-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:16px}.live-video-only .pages,.live-video-only .page,.live-video-only .stage{height:100%;min-height:0}.live-video-only .video-grid{padding:0;gap:2px}.topbar{height:46px;display:flex;align-items:center;gap:14px;padding:0 12px;background:var(--chrome);border-bottom:1px solid var(--line);flex:none}.brand{height:100%;display:flex;align-items:center;gap:9px;padding-right:14px;border-right:1px solid var(--line)}.mark{width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--accent);border-radius:4px;color:var(--accent-ink);font:700 10px IBM Plex Mono,monospace}.name{font-weight:700;font-size:15px}.ver{font:10px IBM Plex Mono,monospace;color:var(--faint)}.sysmeta{display:flex;gap:16px;color:var(--muted);font:11px IBM Plex Mono,monospace;align-items:center}.sysmeta b{color:var(--ink-2);font-weight:500}.spacer{flex:1}.clock,.mono{font-family:IBM Plex Mono,monospace;font-variant-numeric:tabular-nums}.clock{font-size:13px}.led{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px;background:var(--faint)}.led.ok{background:var(--ok);box-shadow:0 0 5px var(--ok)}.led.warn{background:var(--warn)}.led.rec{background:var(--rec);animation:blink 1.6s infinite}@keyframes blink{0%,55%{opacity:1}75%,to{opacity:.25}}.iconbtn{width:28px;height:28px;border-radius:4px;display:grid;place-items:center;color:var(--muted)}.iconbtn:hover,.tab:hover,.tbtn:hover,.splitbtn:hover{background:var(--panel-2);color:var(--ink)}.alarm-popup-toggle{height:28px;display:flex;align-items:center;gap:6px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--muted);white-space:nowrap}.alarm-popup-toggle:hover{border-color:var(--accent);color:var(--ink)}.alarm-popup-toggle.on{border-color:var(--accent-2);background:var(--accent-soft);color:var(--accent-ink)}.alarm-popup-toggle>span{font-size:9px}.alarm-popup-toggle>b{font-size:11px;font-weight:600}.alarm-popup-toggle>i{min-width:17px;height:17px;display:grid;place-items:center;padding:0 4px;border-radius:9px;background:var(--crit);color:#fff;font:700 9px IBM Plex Mono,monospace;font-style:normal}.user{display:flex;align-items:center;gap:7px;padding-left:12px;border-left:1px solid var(--line)}.avatar{width:24px;height:24px;border-radius:4px;background:var(--accent-soft);color:var(--accent-ink);display:grid;place-items:center;font-size:11px;font-weight:600}.tabbar{height:38px;display:flex;background:var(--chrome);border-bottom:1px solid var(--line);padding:0 8px;gap:2px;flex:none}.tab{padding:0 15px;color:var(--muted);border-bottom:2px solid transparent;font-weight:500}.tab.on{color:var(--ink);border-bottom-color:var(--accent)}.advanced-controls{position:relative;flex:none}.advanced-controls>summary{height:26px;display:flex;align-items:center;padding:0 9px;border:1px solid var(--line);border-radius:4px;color:var(--muted);cursor:pointer;list-style:none}.advanced-controls>summary::-webkit-details-marker{display:none}.advanced-controls[open]>summary{border-color:var(--accent);color:var(--accent-ink)}.advanced-controls-popover{position:absolute;right:0;bottom:34px;z-index:35;width:230px;display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:9px;border:1px solid var(--line);border-radius:6px;background:var(--chrome);box-shadow:0 12px 30px #00000073}.advanced-controls-popover .role-select,.advanced-controls-popover .tbtn{width:100%;min-width:0}.advanced-controls-popover .ai-route{grid-column:1/-1}.wiper-strip{min-width:0;flex:1;display:flex;align-items:center;gap:7px;margin-left:5px;padding-left:8px;border-left:1px solid var(--line);overflow:hidden}.wiper-strip>b{flex:none;color:var(--muted);font:700 9px IBM Plex Mono,monospace;letter-spacing:.08em}.wiper-strip-items{min-width:0;display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:thin}.wiper-channel{height:28px;flex:none;display:flex;align-items:center;gap:4px;padding:0 5px;border:1px solid var(--line);border-radius:4px;background:var(--panel);font:9px IBM Plex Mono,monospace;color:var(--muted)}.wiper-channel strong{color:var(--ink-2);font-size:9.5px}.wiper-channel button{height:18px;padding:0 4px;border:1px solid var(--line);border-radius:3px;color:var(--muted);font-size:8px}.wiper-channel button:not(:disabled):hover{border-color:var(--accent);color:var(--accent-ink)}.wiper-channel button:disabled{opacity:.38;cursor:not-allowed}.wiper-channel label{display:flex;align-items:center;gap:2px;color:var(--faint);font-size:8px}.wiper-channel input{width:10px;height:10px;margin:0;accent-color:var(--accent)}.wiper-led{display:inline-block;width:7px;height:7px;flex:none;border-radius:50%;background:#626b78}.wiper-led.idle{background:var(--crit);box-shadow:0 0 4px #e05a50b3}.wiper-led.running{background:var(--ok);box-shadow:0 0 5px var(--ok)}.wiper-led.error{background:var(--warn);box-shadow:0 0 5px var(--warn)}.notice{height:28px;background:var(--warn-soft);color:var(--warn);border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 12px;font-size:12px;flex:none}.pages{flex:1;min-height:0}.page{height:100%;display:flex;min-height:0}.panel{background:var(--panel);display:flex;flex-direction:column;min-height:0}.panel-l{width:246px;border-right:1px solid var(--line);flex:none}.panel-r{width:320px;border-left:1px solid var(--line);flex:none}.panel-l.compact{width:220px}.playback-left{width:246px;display:flex;flex-direction:column;min-height:0;flex:none;background:var(--panel);border-right:1px solid var(--line)}.playback-left .panel-l{width:auto;flex:1;border-right:0}.playback-calendar{padding:9px 10px 8px;border-bottom:1px solid var(--line);background:var(--chrome);flex:none}.calendar-head{height:26px;display:flex;align-items:center;justify-content:space-between}.calendar-head b{font-size:12px;font-weight:600}.calendar-head button{width:26px;height:24px;border-radius:3px;color:var(--muted);font-size:18px}.calendar-head button:hover{background:var(--panel-2);color:var(--ink)}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-weekdays span{height:20px;display:grid;place-items:center;color:var(--faint);font:10px IBM Plex Mono,monospace}.calendar-days button{position:relative;height:25px;border-radius:3px;color:var(--ink-2);font:10.5px IBM Plex Mono,monospace}.calendar-days button:hover{background:var(--panel-2)}.calendar-days button.outside{color:var(--faint);opacity:.55}.calendar-days button.today{box-shadow:inset 0 0 0 1px var(--line)}.calendar-days button.selected{background:var(--accent-2);color:#fff;opacity:1}.calendar-days button i{position:absolute;left:50%;bottom:2px;width:3px;height:3px;border-radius:50%;background:var(--ok);transform:translate(-50%)}.calendar-foot{height:18px;display:flex;align-items:flex-end;gap:5px;color:var(--faint);font-size:10px}.calendar-foot i{width:6px;height:6px;border-radius:50%;background:var(--ok)}.phead{height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border-bottom:1px solid var(--line-soft);font:600 10.5px IBM Plex Mono,monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);flex:none}.searchbox{padding:8px 9px;border-bottom:1px solid var(--line-soft)}.searchbox input,.pagebar input,.pagebar select,.transport select{width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:5px 8px;font-size:12px}.tree{overflow:auto;padding:4px 0}.tgroup{padding:7px 10px 3px;color:var(--faint);font:600 10.5px IBM Plex Mono,monospace;display:flex;gap:7px}.tnode{width:100%;display:flex;align-items:center;gap:7px;padding:5px 10px 5px 16px;border-left:2px solid transparent;color:var(--ink-2);text-align:left}.tnode:hover{background:var(--panel-2)}.tnode.on{background:var(--accent-soft);border-left-color:var(--accent)}.tnode.off{opacity:.55}.ch{font:10.5px IBM Plex Mono,monospace;color:var(--faint);width:42px;flex:none}.nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag{font:9px IBM Plex Mono,monospace;color:var(--accent-ink);border:1px solid var(--accent-2);background:var(--accent-soft);border-radius:3px;padding:0 4px}.correction-menu{margin-top:6px;border-top:1px solid var(--line);background:var(--chrome)}.correction-title{padding-top:9px;color:var(--ink-2)}.correction-menu-item{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 10px 6px 16px;border-top:1px solid var(--line-soft);color:var(--ink-2)}.correction-menu-item>span{min-width:0;display:flex;flex-direction:column;gap:2px}.correction-menu-item b{font-size:11.5px}.correction-menu-item small{color:var(--faint);font-size:9.5px}.correction-menu-item input{accent-color:var(--ok)}.correction-algorithm{display:grid;grid-template-columns:54px minmax(0,1fr);align-items:center;gap:6px;padding:6px 10px 7px 16px;color:var(--muted);font-size:10px}.correction-algorithm select{min-width:0;height:25px;border:1px solid var(--line);border-radius:3px;background:var(--panel-2);padding:0 5px;font-size:10.5px}.correction-order{display:flex;flex-direction:column;gap:3px;padding:7px 10px 9px 16px;border-top:1px solid var(--line-soft);color:var(--faint);font:9.5px IBM Plex Mono,monospace;line-height:1.4}.correction-order em{color:var(--accent-ink);font-style:normal}.correction-title{width:100%;display:flex;align-items:center;justify-content:space-between;padding-right:9px;text-align:left}.correction-title b{color:var(--accent-ink);font-size:15px}.correction-content{display:grid;grid-template-columns:1fr 1fr}.correction-content .correction-menu-item{min-width:0;padding-left:8px}.correction-content .correction-algorithm{grid-template-columns:1fr;padding-left:8px}.correction-content .correction-order{grid-column:1/-1}.panel-l .searchbox{padding:4px 7px}.panel-l .searchbox input{height:24px;padding:3px 7px}.panel-l .tree{padding-top:1px}.panel-l .tgroup{padding:4px 8px 2px}.panel-l .tnode{padding:3px 8px 3px 12px}.panel-l .correction-menu{margin-top:3px}.panel-l .correction-title{padding-top:5px}.panel-l .correction-menu-item{min-height:31px;padding:3px 8px 3px 12px}.panel-l .correction-menu-item>span{gap:0}.panel-l .correction-menu-item small{font-size:9px;line-height:1.2}.panel-l .correction-algorithm{padding:3px 8px 4px 12px}.panel-l .correction-algorithm select{height:23px}.panel-l .correction-order{gap:1px;padding:4px 8px 5px 12px;line-height:1.25}.stage{position:relative;flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--video);overflow:hidden}.video-grid{flex:1;min-width:0;min-height:0;display:grid;gap:2px;padding:2px;overflow:hidden}.split-1{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.split-4{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.split-9{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.split-16{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.split-3{grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr))}.split-3 .tile:first-child{grid-row:1 / span 2}.split-6{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.split-6 .tile:first-child{grid-column:1 / span 2;grid-row:1 / span 2}.split-8{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.split-8 .tile:first-child{grid-column:1 / span 3;grid-row:1 / span 3}.comparison-source{border-color:#7fcdef40}.f1-fixed-layout{font:600 11px IBM Plex Mono,monospace;color:var(--accent-ink);white-space:nowrap}.comparison-pager{display:flex;align-items:center;gap:6px;color:var(--muted);font:10px IBM Plex Mono,monospace}.tile{position:relative;background:var(--video-empty);overflow:hidden;border:1px solid transparent;display:flex;align-items:center;justify-content:center;color:#e8eef5;text-align:left}.tile[draggable=true]{cursor:grab}.tile.dragging{opacity:.48;cursor:grabbing}.tile.drop-ready{border-color:#48bbff8c;background:#48bbff14}.tile.sel{z-index:1}.tile.sel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid #ffd84a;pointer-events:none;z-index:6}.tile.empty{color:#3b4655;font:11px IBM Plex Mono,monospace;letter-spacing:.1em}.scene{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(145deg,#111923,#05080d)}.scene span{position:absolute;background:#2fa1d629;border:1px solid rgba(127,205,239,.22)}.scene span:nth-child(1){left:8%;top:18%;width:34%;height:52%}.scene span:nth-child(2){right:10%;top:10%;width:32%;height:28%}.scene span:nth-child(3){right:18%;bottom:12%;width:45%;height:22%}.live-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;background:#000;pointer-events:none}.video-comparison{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;padding:2px;background:var(--video)}.comparison-tile{position:relative;min-width:0;min-height:0;overflow:hidden;background:#000;border:1px solid var(--line)}.comparison-tile.processed{border-color:var(--accent-2)}.tile.correction-active:before,.comparison-tile.correction-active:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid #35d07f;pointer-events:none;z-index:5}.tile.sel.correction-active:before{top:3px;right:3px;bottom:3px;left:3px}.comparison-label{position:absolute;left:8px;top:8px;z-index:2;padding:3px 8px;border-radius:3px;background:#000000ad;color:#fff;font:600 11px IBM Plex Mono,monospace;pointer-events:none}.osd{position:absolute;left:0;right:0;display:flex;justify-content:space-between;gap:8px;padding:5px 7px;font:10px IBM Plex Mono,monospace;text-shadow:0 1px 3px #000;pointer-events:none}.osd.top{top:0}.osd.bot{bottom:0;color:#93a3b5}.osd span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.osd b{color:#ff8078}.recstate{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;flex:none;color:#ff8078}.recstate.off{color:#7d8ca0}.tile.small .osd.bot{display:none}.tile.small .recstate{max-width:58px}.osd-states{display:inline-flex;align-items:center;justify-content:flex-end;gap:7px;flex:none}.wiper-osd{display:inline-flex;align-items:center;gap:3px;flex:none;color:#9ca8b7}.wiper-osd.idle{color:#ff8078}.wiper-osd.running{color:#5bdd91}.wiper-osd.error{color:#f4b74c}.tile.small .wiper-osd{font-size:8px}.tile.small .wiper-osd .wiper-led{width:6px;height:6px}.gridbar,.transport,.pagebar{height:34px;display:flex;align-items:center;gap:6px;padding:0 8px;background:var(--chrome);border-top:1px solid var(--line);flex:none}.pagebar{height:40px;border-top:0;border-bottom:1px solid var(--line);padding:0 12px}.pagebar h2{font-size:13.5px;margin:0}.pagebar input{width:260px}.pagebar select{width:auto}.maximize-hint{height:22px;display:flex;align-items:center;padding:0 8px;border:1px solid var(--accent-2);border-radius:3px;background:var(--accent-soft);color:var(--accent-ink);font:10.5px IBM Plex Mono,monospace;white-space:nowrap}.splitbtn{height:24px;min-width:28px;border-radius:3px;color:var(--muted)}.splitbtn.on,.tbtn.pri{background:var(--accent-2);color:#fff}.tbtn{height:24px;padding:0 9px;border:1px solid var(--line);background:var(--panel-2);border-radius:3px;color:var(--ink-2);font-size:12px}.barsep{width:1px;height:16px;background:var(--line);margin:0 5px}.split-menu-wrap{position:relative}.layout-trigger{display:flex;align-items:center;gap:5px;padding:0 8px}.layout-trigger span{font-size:11px}.split-menu{position:absolute;left:0;bottom:30px;z-index:30;width:218px;display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:5px;box-shadow:0 12px 30px #00000073}.split-menu button{min-height:54px;display:flex;align-items:center;gap:8px;padding:6px;border:1px solid transparent;border-radius:4px;color:var(--ink-2);text-align:left}.split-menu button:hover,.split-menu button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.layout-icon{width:34px;height:34px;display:grid;gap:2px;flex:none}.layout-icon i{display:block;min-width:0;min-height:0;border:1px solid currentColor;background:#2fa1d61f}.layout-1{grid-template-columns:1fr}.layout-4{grid-template-columns:repeat(2,1fr)}.layout-9{grid-template-columns:repeat(3,1fr)}.layout-16{grid-template-columns:repeat(4,1fr)}.layout-3{grid-template-columns:2fr 1fr;grid-template-rows:repeat(2,1fr)}.layout-3 i:first-child{grid-row:1 / span 2}.layout-6{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr)}.layout-6 i:first-child{grid-column:1 / span 2;grid-row:1 / span 2}.layout-8{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(4,1fr)}.layout-8 i:first-child{grid-column:1 / span 3;grid-row:1 / span 3}.split-shortcut-hint{color:var(--faint);font:10px IBM Plex Mono,monospace;white-space:nowrap}.role-select{height:24px;background:var(--panel-2);border:1px solid var(--line);border-radius:3px;color:var(--ink-2);font-size:12px;padding:0 7px}.ptz{padding:12px}.dpad{display:grid;grid-template-columns:repeat(3,42px);gap:4px;justify-content:center;margin-bottom:12px}.dpad button,.ptzrow button,.presets button{height:34px;border:1px solid var(--line);background:var(--panel-2);border-radius:4px;color:var(--ink-2)}.dpad button:hover,.ptzrow button:hover,.presets button:hover{border-color:var(--accent);color:var(--accent-ink)}.panel-r .ptz{padding:6px 8px;flex:1;overflow:auto}.panel-r .dpad{grid-template-columns:repeat(3,34px);gap:3px;margin-bottom:5px}.panel-r .dpad button{height:28px}.panel-r .ptz-home{width:108px;height:23px;margin:-1px auto 4px}.panel-r .ptzspeed{margin:3px 0}.panel-r .ptz-status{margin:4px 0;padding:4px 6px}.panel-r .ptz-status-head{margin-bottom:2px}.panel-r .ptz-coords .inforow{min-height:15px;padding:2px 4px}.panel-r .ptzrow{margin:3px 0}.panel-r .ptzrow button{height:23px}.panel-r .preset-tabs{margin-top:6px}.panel-r .preset-tabs button{height:26px}.panel-r .preset-tab-panel{padding-top:4px}.panel-r .preset-help{min-height:0;margin:0 0 4px;line-height:1.3}.panel-r .presets,.panel-r .preset-select-grid{margin-top:4px;gap:3px}.panel-r .presets button,.panel-r .preset-select-grid button{height:22px}.panel-r .preset-defaults{margin-top:5px;height:23px}.panel-r .preset-editor{margin-top:5px;padding-top:5px;gap:4px}.panel-r .preset-editor input{height:23px}.panel-r .preset-save-current{height:27px}.panel-r .info{padding:4px 6px}.panel-r .info .inforow{padding:3px 6px}.panel-group{border-top:1px solid var(--line-soft)}.panel-group-title{width:100%;height:27px;display:flex;align-items:center;justify-content:space-between;padding:0 7px;color:var(--ink-2);background:var(--chrome);font:600 10.5px IBM Plex Mono,monospace;text-align:left}.panel-group-title:hover{background:var(--panel-2)}.panel-group-title b{width:18px;color:var(--accent-ink);font-size:16px;text-align:center}.panel-group-body{padding:4px 2px 6px}.panel-group.closed .panel-group-title{color:var(--muted)}.panel-r>.panel-group{flex:none}.panel-r .ptz-coords{grid-template-columns:repeat(2,minmax(0,1fr));gap:3px}.panel-r .ptz-coords .inforow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px}.panel-r .ptz-coords .inforow b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.panel-info-grid .inforow{display:grid;grid-template-columns:1fr;gap:2px;min-width:0}.panel-info-grid .inforow b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.ptz-joystick{position:relative;width:122px;height:122px;margin:2px auto 3px;border-radius:50%;touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(circle at 38% 32%,#52606e 0,#2a333e 42%,#11171e 68%,#05080c);border:2px solid #667484;box-shadow:inset 0 8px 14px #ffffff14,inset 0 -12px 18px #0000008c,0 4px 12px #00000080}.ptz-joystick:before{content:"";position:absolute;top:17px;right:17px;bottom:17px;left:17px;border-radius:50%;border:1px solid rgba(255,255,255,.14);box-shadow:inset 0 0 18px #00000073}.ptz-joystick>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;color:#e23f36;font-size:17px;text-shadow:0 1px 3px #000}.ptz-joystick-knob{position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px;border-radius:50%;z-index:2;background:radial-gradient(circle at 35% 30%,#7b8998,#2a333d 65%,#111);border:1px solid #8995a2;box-shadow:0 5px 9px #0009;transition:transform .06s linear}.ptz-joystick.active{border-color:var(--accent);box-shadow:0 0 0 2px #2fa1d638,inset 0 -12px 18px #0000008c}.ptz-joystick.disabled{opacity:.42;cursor:not-allowed}.ptz-device-state{text-align:center;margin-bottom:4px;color:var(--faint);font:9px IBM Plex Mono,monospace}.panel-group{margin:4px 0;border:1px solid var(--line-soft);border-radius:4px;overflow:hidden}.panel-group-title{width:100%;height:26px;display:flex;align-items:center;justify-content:space-between;padding:0 7px;background:var(--panel-2);color:var(--ink-2);font:600 10.5px IBM Plex Mono,monospace;text-align:left}.panel-group-title b{color:var(--accent-ink);font-size:15px}.panel-group-body{padding:3px}.panel-group[data-panel-group=ptz-status] .ptz-coords{display:grid;grid-template-columns:1fr 1fr;gap:0 4px}.panel-group[data-panel-group=ptz-lens] .panel-group-body{display:grid;grid-template-columns:1fr 1fr;gap:2px 4px}.panel-group[data-panel-group=ptz-lens] .ptzrow{min-width:0}.panel-group[data-panel-group=ptz-lens] .ptzrow span{width:38px}.panel-group[data-panel-group=ptz-presets] .panel-group-body{padding:3px 5px 5px}.ptz-home{display:block;width:130px;margin:-4px auto 10px}.ptzrow{display:flex;align-items:center;gap:6px;margin:6px 0}.ptzrow span{width:48px;color:var(--muted);font:10.5px IBM Plex Mono,monospace}.ptzrow button{flex:1;height:26px}.presets{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:12px}.presets button{height:26px;font:10.5px IBM Plex Mono,monospace}.presets .set{background:var(--panel-3);color:var(--ink)}.preset-tabs{display:grid;grid-template-columns:1fr 1fr;margin-top:12px;border-bottom:1px solid var(--line)}.preset-tabs button{height:32px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font:11px IBM Plex Sans KR,system-ui,sans-serif}.preset-tabs button.active{border-bottom-color:var(--accent);color:var(--accent-ink);font-weight:700}.preset-tab-panel{padding-top:8px}.preset-help{min-height:30px;margin:0;color:var(--muted);font-size:10.5px;line-height:1.45}.preset-defaults{width:100%;margin-top:8px}.preset-select-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-top:8px}.preset-select-grid button{height:26px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink-2);font:10.5px IBM Plex Mono,monospace}.preset-select-grid button.active{border-color:var(--accent);background:var(--panel-3);color:var(--accent-ink)}.preset-save-current{grid-column:1 / -1;height:34px;border-color:var(--accent)!important;color:var(--accent-ink)!important;font-weight:700}.preset-token-field{grid-column:1 / -1}.wiper-row button.active:not(:disabled){border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.wiper-row button:disabled{opacity:.45;cursor:not-allowed}.wiper-channel em{font-style:normal;color:var(--faint);font-size:8px}.wiper-overlay-control{position:absolute;z-index:7;left:8px;top:32px;display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:3px 7px;border:1px solid rgba(255,255,255,.22);border-radius:4px;background:#040a10c7;color:#d8e0e8;font:700 9px IBM Plex Mono,monospace;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.wiper-overlay-control:hover{border-color:var(--accent);color:#fff}.wiper-overlay-control.running{border-color:var(--ok);color:#8bf0b8}.wiper-overlay-control.error{border-color:var(--warn);color:#ffd07a}.wiper-overlay-control[aria-disabled=true]{opacity:.55;cursor:not-allowed}.tile.small .wiper-overlay-control{top:27px;left:5px;min-height:19px;padding:2px 4px;font-size:7px}.comparison-tile .wiper-overlay-control{top:38px}.ptzspeed{display:grid;grid-template-columns:48px minmax(0,1fr) 38px;align-items:center;gap:6px;margin:6px 0;color:var(--muted);font:10.5px IBM Plex Mono,monospace}.ptzspeed input{width:100%}.ptzspeed b{text-align:right;color:var(--ink-2);font-weight:500}.ptz-status{margin:8px 0 10px;padding:8px;border:1px solid var(--line-soft);border-radius:4px;background:var(--panel-2)}.ptz-status-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px;color:var(--muted);font:10.5px IBM Plex Mono,monospace}.ptz-status-head .tbtn{height:24px;padding:0 8px}.ptz-coords{display:grid;gap:4px}.ptz-coords .inforow{min-height:18px}.ptz-coords .inforow span,.ptz-coords .inforow b{font-size:10.5px}.preset-editor{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);display:grid;grid-template-columns:72px 1fr;gap:7px}.preset-editor label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font:10px IBM Plex Mono,monospace;min-width:0}.preset-editor input{height:26px;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:3px 6px;color:var(--ink);font:12px IBM Plex Sans KR,system-ui,sans-serif}.preset-actions{grid-column:1 / -1;display:flex;gap:5px;flex-wrap:wrap}.info{padding:8px 10px}.inforow{display:flex;justify-content:space-between;gap:16px;padding:6px 10px;border-bottom:1px solid var(--line-soft);font-size:12px}.inforow span{color:var(--muted)}.inforow b{color:var(--ink-2);font:500 11px IBM Plex Mono,monospace;text-align:right}.playback-stage .tile{flex:1}.transport{height:38px}.transport button{width:30px;height:26px;border-radius:3px;color:var(--ink-2)}.transport button:hover{background:var(--panel-2)}.transport .big{color:var(--accent-ink)}.transport select{width:auto;height:24px}.transport input{height:24px;width:172px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:3px 7px;color:var(--ink);font-size:11px}.seekmeta{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10.5px}.playback-select-workspace{flex:1;min-width:0;overflow:auto;background:var(--chrome)}.playback-select-head{min-height:58px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.playback-select-head>div{display:flex;flex-direction:column;gap:3px}.playback-select-head b{font-size:15px}.playback-select-head span{color:var(--muted);font-size:11px}.playback-type-picker{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px;padding:12px 16px}.playback-type-picker button{min-height:62px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;padding:8px 12px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--muted);text-align:left}.playback-type-picker button:hover,.playback-type-picker button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.playback-type-picker button b{font-size:12px}.playback-type-picker button span{font-size:10.5px}.playback-selection-card{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(190px,1fr) minmax(140px,.7fr) auto;align-items:end;gap:12px;margin:0 16px 12px;padding:14px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.playback-selection-summary{display:flex;flex-direction:column;gap:4px}.playback-selection-summary span,.playback-selection-card label{color:var(--muted);font:10px IBM Plex Mono,monospace}.playback-selection-summary b{font-size:14px;color:var(--ink)}.playback-selection-summary small{color:var(--faint);font-size:10.5px}.playback-selection-card label{display:flex;flex-direction:column;gap:5px}.playback-selection-card input,.playback-selection-card select{height:32px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);padding:4px 8px;color:var(--ink)}.playback-launch-button{min-width:150px;height:32px}.playback-selection-tools{height:36px;display:flex;align-items:center;justify-content:flex-end;gap:7px;padding:0 16px;color:var(--muted);font-size:10.5px}.playback-selection-tools>span{margin-right:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playback-select-workspace>.timeline{margin:0 16px 12px;border:1px solid var(--line);border-radius:5px;overflow:hidden}.playback-export-tools{margin:0 16px 16px;border:1px solid var(--line);border-radius:5px;background:var(--panel);overflow:hidden}.playback-export-tools>summary{padding:9px 12px;color:var(--muted);font-size:11px;cursor:pointer}.playback-export-tools[open]>summary{border-bottom:1px solid var(--line)}.playback-channel-picker{min-height:0;flex:1}.playback-channel-help{padding:7px 10px;color:var(--muted);font-size:10.5px;border-bottom:1px solid var(--line-soft)}.playback-channel-row{min-height:30px;display:grid;grid-template-columns:18px 54px minmax(0,1fr);align-items:center;gap:4px;padding:4px 8px;color:var(--muted);cursor:pointer}.playback-channel-row:hover,.playback-channel-row.on{background:var(--accent-soft);color:var(--accent-ink)}.playback-channel-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playback-filter-row{display:flex;align-items:end;gap:9px;margin:0 16px 12px;padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:var(--panel)}.playback-filter-row label{display:flex;flex-direction:column;gap:4px;min-width:160px;color:var(--muted);font-size:10px}.playback-filter-row select{height:30px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);padding:3px 8px}.playback-preview-panel{margin:0 16px 12px;border:1px solid var(--line);border-radius:5px;background:var(--panel);overflow:hidden}.playback-preview-panel>header{height:34px;display:flex;align-items:center;justify-content:space-between;padding:0 11px;border-bottom:1px solid var(--line-soft)}.playback-preview-panel>header span{color:var(--muted);font-size:10.5px}.playback-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:7px;padding:8px;max-height:300px;overflow:auto}.playback-preview-grid article{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px;border:1px solid var(--line-soft);border-radius:4px;cursor:pointer}.playback-preview-grid article:hover,.playback-preview-grid article.on{border-color:var(--accent);background:var(--accent-soft)}.playback-preview-thumb{width:92px;height:54px;display:grid;place-items:center;background:#0a0d12;color:var(--faint);font:9px IBM Plex Mono,monospace;overflow:hidden}.playback-preview-thumb img{width:100%;height:100%;object-fit:cover}.playback-preview-grid article>div:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:3px}.playback-preview-grid article b,.playback-preview-grid article span,.playback-preview-grid article small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.playback-preview-grid article span,.playback-preview-grid article small{color:var(--muted);font-size:10px}.playback-preview-empty{padding:22px;text-align:center;color:var(--muted);font-size:11px}@media(max-width:1100px){.playback-selection-card{grid-template-columns:1fr 1fr}.playback-selection-summary{grid-column:1/-1}.playback-type-picker{grid-template-columns:1fr}}.timeline{height:162px;background:var(--panel);border-top:1px solid var(--line);flex:none}.tlbar{height:30px;display:flex;align-items:center;gap:12px;padding:0 10px;border-bottom:1px solid var(--line-soft);font:11px IBM Plex Mono,monospace;color:var(--muted)}.legend{display:flex;gap:8px;align-items:center}.legend i{width:9px;height:9px;border-radius:2px}.tlbody{display:flex;height:132px}.labels{width:160px;border-right:1px solid var(--line);flex:none}.labels div{height:33px;padding:8px 9px;border-bottom:1px solid var(--line-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tracks{flex:1}.lane{height:33px;position:relative;border-bottom:1px solid var(--line-soft);background:var(--t-none)}.seg{position:absolute;top:8px;height:16px;border-radius:2px}.table-page{flex:1;display:flex;flex-direction:column;min-width:0}.tablewrap{flex:1;overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{position:sticky;top:0;background:var(--panel-2);text-align:left;padding:8px 10px;color:var(--muted);font:10px IBM Plex Mono,monospace;letter-spacing:.07em;text-transform:uppercase;border-bottom:1px solid var(--line)}td{padding:7px 10px;border-bottom:1px solid var(--line-soft)}tr:hover,tbody tr.sel{background:var(--panel-2)}.chip{display:inline-flex;border:1px solid currentColor;border-radius:9px;padding:1px 6px;font:10px IBM Plex Mono,monospace}.chip.ok{color:var(--ok);background:var(--ok-soft)}.chip.warn{color:var(--warn);background:var(--warn-soft)}.chip.crit{color:var(--crit);background:var(--crit-soft)}.chip.mute{color:var(--faint);background:var(--panel-2)}.camera-form{display:grid;grid-template-columns:70px minmax(120px,1fr) minmax(130px,1fr) 100px minmax(100px,1fr) minmax(180px,1.4fr) 110px 120px 120px 80px;gap:7px;align-items:end;padding:9px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.camera-form.simplified{grid-template-columns:70px 120px minmax(150px,1fr) minmax(120px,1fr) minmax(140px,1fr) minmax(170px,1fr) auto}.onvif-discovery-bar{min-height:44px;display:flex;align-items:center;gap:7px;padding:7px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:none}.onvif-discovery-bar b{font-size:11px;color:var(--ink-2);white-space:nowrap}.onvif-discovery-bar select,.onvif-discovery-bar input{height:28px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:4px 7px;color:var(--ink);font-size:11px}.onvif-discovery-bar select{min-width:330px}.onvif-discovery-bar input{width:190px;font-family:IBM Plex Mono,monospace}.onvif-discovery-bar span{color:var(--muted);font:10px IBM Plex Mono,monospace}.camera-form label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font:10px IBM Plex Mono,monospace;min-width:0}.camera-form input,.camera-form select{height:26px;width:100%;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:4px 7px;color:var(--ink);font:12px IBM Plex Sans KR,system-ui,sans-serif}.camera-form .check{height:26px;flex-direction:row;align-items:center;gap:6px}.camera-form .check input{width:auto;height:auto}.camera-form button{height:26px}.camera-form .camera-save{grid-column:1/-1;justify-self:end;min-width:120px}.camera-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:7px}.camera-detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:24px;background:#000000b8}.camera-detail-dialog{width:min(980px,96vw);max-height:92vh;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:7px;background:var(--panel);box-shadow:0 20px 60px #0000008c}.camera-detail-head{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--line)}.camera-detail-head>div{display:flex;flex-direction:column;gap:2px}.camera-detail-head span{color:var(--muted);font-size:10px}.camera-detail-head button{font-size:24px;color:var(--muted)}.camera-detail-head .camera-detail-head-actions{flex-direction:row;align-items:center;gap:8px}.camera-detail-head .camera-detail-video-only{height:28px;padding:0 10px;font-size:11px;color:var(--accent-ink)}.camera-detail-grid{overflow:auto;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;padding:14px}.camera-detail-grid label{min-width:0;display:flex;flex-direction:column;gap:4px;color:var(--muted);font:10px IBM Plex Mono,monospace}.camera-detail-grid input,.camera-detail-grid select{height:29px;min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);padding:4px 7px;color:var(--ink)}.camera-detail-grid .wide-field{grid-column:span 2}.camera-detail-grid .detail-check{height:29px;flex-direction:row;align-items:center;gap:7px}.camera-detail-grid .detail-check input{width:auto;height:auto}.camera-detail-actions{display:flex;justify-content:flex-end;gap:7px;padding:10px 14px;border-top:1px solid var(--line)}.discovery{flex:none;max-height:260px;border-bottom:1px solid var(--line)}.rowactions{display:flex;gap:6px;flex-wrap:wrap}.tbtn.danger{color:var(--crit);border-color:var(--crit-soft)}.tbtn.danger:hover{background:var(--crit-soft);color:var(--crit)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.csv-dialog{width:min(900px,96vw)}.csv-dropzone{margin:14px;min-height:112px;border:2px dashed var(--line);border-radius:7px;background:var(--panel-2);color:var(--muted)}.csv-dropzone:hover{border-color:var(--accent);color:var(--accent-ink)}.csv-download-row{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:0 14px 10px}.csv-preview{overflow:auto;min-height:80px;max-height:46vh;margin:0 14px 14px;border:1px solid var(--line);border-radius:5px}.csv-errors{padding:8px 10px;background:var(--crit-soft);color:var(--crit)}.csv-errors p{margin:3px 0}.csv-preview-row{display:grid;grid-template-columns:120px 55px minmax(0,1fr);align-items:center;gap:8px;padding:7px 9px;border-bottom:1px solid var(--line-soft)}.csv-preview-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.group-dialog{width:min(620px,96vw)}.group-dialog>.tbtn{align-self:flex-start;margin:12px 14px}.group-list{overflow:auto;padding:0 14px 12px}.group-row{display:grid;grid-template-columns:minmax(0,1fr) 60px auto auto;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line-soft)}.group-row>span{color:var(--muted);text-align:right}.csv-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px}.csv-mode-card{display:flex;min-height:92px;flex-direction:column;align-items:flex-start;justify-content:center;gap:7px;padding:14px;border:1px solid var(--line);border-radius:7px;background:var(--panel-2);color:var(--text);text-align:left}.csv-mode-card:hover,.csv-mode-card.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.csv-mode-card span{color:var(--muted)}.csv-mode-help{padding:8px 14px 18px}@media(max-width:620px){.csv-mode-grid{grid-template-columns:1fr}}.bulkbar{height:34px;display:flex;align-items:center;gap:7px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line-soft);flex:none}.bulkbar select{height:24px;min-width:110px;background:var(--panel-2);border:1px solid var(--line);border-radius:3px;color:var(--ink-2);font-size:12px;padding:0 7px}.settings-page{background:var(--bg)}.settings-workspace{flex:1;min-width:0;min-height:0;display:flex}.settings-nav{width:184px;flex:none;display:flex;flex-direction:column;background:var(--chrome);border-right:1px solid var(--line)}.settings-nav>button{height:40px;display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;padding:0 12px;border-left:2px solid transparent;color:var(--muted);text-align:left}.settings-nav>button:hover{background:var(--panel);color:var(--ink)}.settings-nav>button.on{border-left-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink)}.settings-nav>button b{font-size:12px;font-weight:500}.settings-nav>button small{font:10px IBM Plex Mono,monospace}.settings-nav-foot{margin-top:auto;padding:12px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:7px;color:var(--muted);font-size:10.5px}.settings-nav-foot b{color:var(--ink-2);font:500 10.5px IBM Plex Mono,monospace}.settings-nav-foot i{grid-column:1/-1;height:4px;overflow:hidden;border-radius:2px;background:var(--panel-3)}.settings-nav-foot em{display:block;height:100%;background:var(--accent)}.device-summary{height:62px;display:grid;grid-template-columns:repeat(4,minmax(100px,1fr));gap:7px;padding:7px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:none}.device-summary button{display:flex;align-items:center;justify-content:space-between;padding:0 12px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--muted);text-align:left}.device-summary button:hover,.device-summary button.on{border-color:var(--accent);background:var(--accent-soft)}.device-summary button.on{box-shadow:inset 0 -2px 0 var(--accent)}.device-summary button span{font-size:11px}.device-summary button b{font:600 20px IBM Plex Mono,monospace;color:var(--ink)}.device-summary button.ok b{color:var(--ok)}.device-summary button.crit b{color:var(--crit)}.device-summary button.mute b{color:var(--faint)}.bulkbar input[type=search]{width:210px;height:24px;background:var(--panel-2);border:1px solid var(--line);border-radius:3px;padding:0 7px;color:var(--ink);font-size:11px}.device-result-count{min-width:32px;color:var(--muted);font:10.5px IBM Plex Mono,monospace}.device-identity{display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:8px;padding:12px 10px;border-bottom:1px solid var(--line)}.device-camera-icon{width:42px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:5px;background:var(--panel-2);color:var(--faint);font:700 9px IBM Plex Mono,monospace}.device-camera-icon.ok{border-color:var(--ok);color:var(--ok)}.device-camera-icon.crit{border-color:var(--crit);color:var(--crit)}.device-camera-icon.warn{border-color:var(--warn);color:var(--warn)}.device-identity>div:nth-child(2){min-width:0;display:flex;flex-direction:column;gap:3px}.device-identity b,.device-identity span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-identity>div span{color:var(--muted);font-size:10px}@media(max-width:1180px){.settings-nav{width:150px}.device-summary{grid-template-columns:repeat(2,1fr);height:108px}.bulkbar input[type=search]{width:150px}}.inline-fields{display:grid;grid-template-columns:minmax(74px,1fr) minmax(92px,1fr);gap:5px}.inline-fields input{height:24px;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:3px 6px;color:var(--ink);font-size:11px}.probe-preview{display:flex;flex-direction:column;gap:2px;min-width:190px}.probe-preview b{font-size:11px;color:var(--ink-2);font-weight:600}.probe-preview span{font:10.5px IBM Plex Mono,monospace;color:var(--muted);white-space:nowrap}.schedule-wrap{padding:14px;overflow:auto}.palette{display:flex;gap:6px;margin-bottom:14px}.pbtn{height:28px;display:flex;align-items:center;gap:6px;padding:0 11px;border:1px solid var(--line);background:var(--panel-2);border-radius:4px}.pbtn i{width:11px;height:11px;border-radius:2px}.pbtn.on{border-color:var(--accent);color:var(--accent-ink);background:var(--accent-soft)}.settings-form-card{margin:10px 12px 0;border:1px solid var(--line);border-radius:6px;background:var(--panel);flex:none;overflow:hidden}.settings-form-head{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 11px;border-bottom:1px solid var(--line-soft)}.settings-form-head>div{display:flex;flex-direction:column;gap:2px}.settings-form-head b{font-size:12px}.settings-form-head span{color:var(--muted);font-size:10.5px}.settings-form-grid{display:grid;gap:8px;padding:9px 11px}.recording-grid{grid-template-columns:1.1fr 1.4fr repeat(6,minmax(84px,1fr))}.event-grid{grid-template-columns:1.4fr 1.3fr .8fr repeat(2,.7fr) repeat(3,.8fr)}.settings-form-grid label{min-width:0;display:flex;flex-direction:column;gap:4px;color:var(--muted);font:10px IBM Plex Mono,monospace}.settings-form-grid input,.settings-form-grid select{width:100%;height:27px;min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);padding:3px 6px;font:11.5px IBM Plex Sans KR,system-ui,sans-serif}.settings-form-grid input:disabled{color:var(--faint)}.settings-form-grid label small{color:var(--faint);font-size:9px}.settings-form-grid .rule-toggle{height:45px;flex-direction:row;align-items:center;justify-content:center;gap:7px;margin-top:0;border:1px solid var(--line);border-radius:4px;background:var(--panel-2)}.settings-form-grid .rule-toggle input{width:auto;height:auto}.settings-form-actions{min-height:34px;display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:5px 11px;border-top:1px solid var(--line-soft);color:var(--muted);font-size:10.5px}.apply-feedback{display:inline-flex;align-items:center;min-height:22px;padding:0 8px;border:1px solid var(--line);border-radius:11px;color:var(--muted);font:10px IBM Plex Mono,monospace}.apply-feedback.saved{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.apply-feedback.saving{border-color:var(--accent);color:var(--accent-ink)}.apply-feedback.error{border-color:var(--crit);background:var(--crit-soft);color:var(--crit)}.schedule-wrap+.apply-feedback{margin:0 14px 10px;align-self:flex-end}.system-operation-card{margin-bottom:14px;overflow:hidden}.system-operation-grid{grid-template-columns:repeat(5,minmax(120px,1fr))}.system-operation-card .settings-form-actions>span:first-child{margin-right:auto}@media(max-width:1400px){.recording-grid,.event-grid{grid-template-columns:repeat(4,1fr)}.system-operation-grid{grid-template-columns:repeat(3,1fr)}}.schedule-grid{display:inline-block;border:1px solid var(--line);border-radius:4px;overflow:hidden}.sch-row{display:flex}.sch-day{width:56px;height:26px;display:grid;place-items:center;background:var(--panel-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line-soft);color:var(--ink-2)}.sch-cell{width:28px;height:26px;border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);display:grid;place-items:center;font:9px IBM Plex Mono,monospace;color:var(--faint)}.head .sch-cell,.head .sch-day{height:22px;background:var(--panel-2)}.mode-continuous{background:var(--t-cont)!important}.mode-motion{background:var(--t-motion)!important}.mode-alarm{background:var(--t-alarm)!important}.mode-manual{background:var(--t-manual)!important}.mode-none{background:var(--t-none)!important}.events-page{display:flex}.event-detail{width:290px;background:var(--panel);border-left:1px solid var(--line);flex:none}.thumb{aspect-ratio:16/9;background:var(--video-empty);display:grid;place-items:center;color:var(--faint);font:12px IBM Plex Mono,monospace;border-bottom:1px solid var(--line)}.wide{margin:12px;width:calc(100% - 24px);justify-content:center}.playback-popup-fallback{position:fixed;right:140px;top:53px;z-index:40;padding:7px 12px;border:1px solid var(--warn);border-radius:4px;background:var(--panel);color:var(--warn);text-decoration:none}.dashboard{display:block;overflow:auto;padding:14px}.settings-workspace.dashboard{display:block}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-bottom:14px}.kpi,.card{background:var(--panel);border:1px solid var(--line);border-radius:6px}.kpi{padding:12px 14px}.kpi .k{font:10px IBM Plex Mono,monospace;color:var(--muted);letter-spacing:.09em}.kpi .v{font:600 24px IBM Plex Mono,monospace;margin-top:6px}.kpi small{font-size:12px;color:var(--muted);margin-left:4px}.kpi .sub{font-size:11px;color:var(--muted);margin-top:5px}.two-col{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.card h3{margin:0;padding:9px 13px;font:11px IBM Plex Mono,monospace;color:var(--muted);letter-spacing:.09em;border-bottom:1px solid var(--line-soft)}.statusbar{height:26px;display:flex;align-items:center;gap:18px;padding:0 12px;background:var(--chrome);border-top:1px solid var(--line);color:var(--faint);font:10.5px IBM Plex Mono,monospace;flex:none}.warntext{color:var(--warn)}@media(max-width:1200px){.camera-form{grid-template-columns:70px 1fr 1fr 100px}.camera-form label:nth-of-type(5),.camera-form label:nth-of-type(6),.camera-form label:nth-of-type(7),.camera-form label:nth-of-type(8){grid-column:auto}}@media(max-width:900px){.panel-r{display:none}.panel-l,.playback-left{width:200px}.sysmeta span:nth-child(n+3),.user{display:none}.video-grid{grid-template-columns:repeat(2,1fr)}.split-1{grid-template-columns:1fr}.video-comparison{grid-template-columns:1fr;grid-template-rows:repeat(2,minmax(0,1fr))}.pagebar input{width:160px}.camera-form{grid-template-columns:1fr 1fr}.camera-form button{grid-column:span 2}}.default-comparison-grid{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr))}.toolbar-check{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:12px;white-space:nowrap}.event-detail{width:320px}.empty-row{text-align:center;color:var(--faint);height:54px}.event-detail .inforow b{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.alarm-popup{position:absolute;right:14px;top:92px;width:300px;z-index:20;background:var(--panel);border:1px solid var(--crit);box-shadow:0 12px 32px #00000061;border-radius:6px;overflow:hidden}.app.live-ptz-open .alarm-popup{right:334px}.alarm-title{height:30px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:var(--crit-soft);color:var(--crit);font:700 11px IBM Plex Mono,monospace;letter-spacing:.08em}.alarm-close-all{height:22px;padding:0 7px;border:1px solid rgba(224,90,80,.45);border-radius:3px;color:var(--crit);font-size:10px;letter-spacing:0}.alarm-close-all:hover{background:#e05a5024;border-color:var(--crit)}.alarm-body{display:flex;flex-direction:column;gap:4px;width:100%;padding:11px 12px;text-align:left;border-bottom:1px solid var(--line-soft)}.alarm-body b{font-size:13px;color:var(--ink)}.alarm-body span{font-size:12px;color:var(--muted)}.alarm-actions{display:flex;justify-content:flex-end;gap:6px;padding:8px;background:var(--chrome)}.acusearch-page{display:flex}.search-category-bar{height:58px;display:grid;grid-template-columns:repeat(5,minmax(108px,1fr));gap:6px;padding:7px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:none;overflow-x:auto}.search-category-bar button{min-width:108px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;padding:0 10px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--muted);text-align:left}.search-category-bar button:hover{border-color:var(--accent);color:var(--ink)}.search-category-bar button.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-ink);box-shadow:inset 0 -2px 0 var(--accent)}.search-category-bar b{font-size:12px}.search-category-bar span{font-size:10px;white-space:nowrap}.search-preset-strip{min-height:70px;display:grid;grid-template-columns:160px minmax(0,1fr) 370px auto;align-items:center;gap:10px;padding:8px 12px;background:var(--chrome);border-bottom:1px solid var(--line)}.preset-title{display:flex;flex-direction:column;gap:2px;min-width:0}.preset-title b{font-size:12px;color:var(--ink)}.preset-title span{font-size:10.5px;color:var(--muted)}.preset-list{display:flex;align-items:center;gap:6px;overflow:auto;min-width:0;padding-bottom:2px}.preset-empty{color:var(--faint);font-size:11px}.preset-chip{position:relative;min-width:124px;height:42px;padding:5px 22px 5px 8px;border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--ink-2);text-align:left;display:flex;flex-direction:column;gap:2px}.preset-chip:hover{border-color:var(--accent);background:var(--panel-2)}.preset-chip.acuseek{border-color:#41b67c59}.preset-chip b{max-width:108px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px}.preset-chip span{font:10px IBM Plex Mono,monospace;color:var(--muted);white-space:nowrap}.preset-chip i{position:absolute;right:5px;top:5px;width:14px;height:14px;border-radius:2px;display:grid;place-items:center;font-style:normal;color:var(--faint);font:11px IBM Plex Mono,monospace}.preset-chip i:hover{background:var(--crit-soft);color:var(--crit)}.preset-save{display:grid;grid-template-columns:minmax(100px,1fr) 104px 94px;gap:6px;min-width:0}.preset-save input{height:26px;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:4px 7px;color:var(--ink);font-size:12px}.acusearchbar{height:auto;min-height:40px;flex-wrap:wrap;padding:7px 12px}.acusearchbar input{width:210px}.acusearch-detail .inforow b{max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.acuseek-strip{min-height:116px;display:grid;grid-template-columns:230px minmax(0,1fr);align-items:stretch;gap:14px;padding:12px;background:var(--panel);border-bottom:1px solid var(--line)}.ksseek-step-title{display:flex;flex-direction:column;justify-content:center;gap:4px;min-width:0}.ksseek-step-title b{font-size:13px;color:var(--ink)}.ksseek-step-title span{font-size:10.5px;color:var(--muted)}.ksseek-query-controls{display:grid;gap:7px;min-width:0}.ksseek-filter-row,.ksseek-query-row,.ksseek-examples{display:flex;align-items:center;gap:7px}.ksseek-filter-row select{height:28px;min-width:170px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:3px 7px;color:var(--ink);font-size:11.5px}.ksseek-query-row input{flex:1;min-width:220px;height:32px;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:4px 9px;color:var(--ink);font-size:12px}.ksseek-query-row .tbtn{height:32px;min-width:68px}.ksseek-examples span{color:var(--faint);font-size:10px}.ksseek-examples button{padding:3px 8px;border:1px solid var(--line-soft);border-radius:12px;background:var(--chrome);color:var(--muted);font-size:10.5px}.ksseek-examples button:hover{border-color:var(--accent);color:var(--accent-ink)}.ksseek-index-status{min-height:58px;display:grid;grid-template-columns:230px minmax(0,1fr) auto;align-items:center;gap:14px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--chrome);font-size:11px}.ksseek-index-status>span{color:var(--muted)}.ksseek-result-thumb{width:112px;height:63px;padding:0;overflow:hidden;border:1px solid var(--line);border-radius:4px;background:var(--video-empty);color:var(--faint)}.ksseek-result-thumb img{display:block;width:100%;height:100%;object-fit:cover}.ksseek-result-thumb:hover:not(:disabled){border-color:var(--accent)}.ksseek-result-thumb:disabled{cursor:default;opacity:.65}.cell-note{max-width:220px;margin-top:3px;color:var(--faint);font:10.5px IBM Plex Mono,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.audit-page{display:flex}.audit-summary{width:300px}.audit-table .detail-cell{max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}.whep-panel{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:16px;background:linear-gradient(145deg,#08121a,#020508);color:var(--ink-2);text-align:center}.whep-panel b{font:600 13px IBM Plex Mono,monospace;color:var(--accent-ink)}.whep-panel .mono{max-width:92%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:10px}.reconnect-button{margin-top:4px;padding:6px 12px;border:1px solid #f5b942;border-radius:4px;background:#241b08;color:#ffd873;font:600 11px IBM Plex Mono,monospace;cursor:pointer}.reconnect-button:hover:not(:disabled){background:#3a2a08}.reconnect-button:disabled{opacity:.6;cursor:wait}.transport-badge{position:absolute;right:8px;bottom:25px;z-index:2;padding:3px 7px;border-radius:3px;background:#000000b8;color:#f5b942;font:600 10px IBM Plex Mono,monospace;pointer-events:none}.export-strip{height:30px;display:flex;align-items:center;gap:10px;padding:0 10px;background:var(--panel);border-top:1px solid var(--line-soft);color:var(--muted);font-size:11px;flex:none}.export-strip .mono{max-width:340px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-jobs{height:218px;background:var(--panel);border-top:1px solid var(--line);flex:none;display:flex;flex-direction:column}.export-head{height:30px;display:flex;align-items:center;gap:8px;padding:0 10px;border-bottom:1px solid var(--line-soft)}.export-head b{font-size:12px}.export-head .tbtn{margin-left:auto}.export-list{max-height:96px;overflow:auto}.export-row{width:100%;height:32px;display:grid;grid-template-columns:80px 130px 54px 142px 88px minmax(150px,1fr) 96px minmax(90px,.5fr);align-items:center;gap:8px;padding:0 10px;text-align:left;border-bottom:1px solid var(--line-soft);color:var(--ink-2);font-size:11px}.export-row:hover,.export-row.on{background:var(--panel-2)}.export-status{justify-content:center}.status-running{color:var(--accent-ink)}.status-done{color:var(--ok)}.status-failed{color:var(--danger)}.export-path,.export-error{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-error{color:var(--danger)}.export-empty{height:96px;display:flex;align-items:center;justify-content:center;color:var(--muted)}.export-actions{display:flex;align-items:center;gap:4px}.export-actions .tbtn{float:none;margin:0;text-decoration:none}.export-manifest{min-height:86px;border-top:1px solid var(--line-soft);background:var(--panel-2);overflow:hidden}.export-manifest-head{height:24px;display:flex;align-items:center;gap:8px;padding:0 10px;color:var(--muted);font-size:11px}.export-manifest pre{height:60px;margin:0;padding:7px 10px;overflow:auto;color:var(--ink-2);font:10.5px IBM Plex Mono,monospace;white-space:pre}.evidence-mini{display:flex;flex-direction:column;gap:2px;max-width:240px}.evidence-mini span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.evidence-thumb{display:flex;flex-direction:column;gap:6px;padding:12px;text-align:center}.evidence-thumb b{color:var(--accent-ink)}.evidence-thumb span{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font:10px IBM Plex Mono,monospace}.tbtn.tiny{height:20px;padding:0 6px;font-size:10px;float:right;margin-top:-3px}.card-title-row{display:flex;align-items:center;justify-content:space-between;gap:8px}.card-title-row h3{margin:0}.card-title-row .tbtn.tiny{float:none;margin-top:0;white-space:nowrap}.retention-card{min-width:0}.retention-grid{display:grid;grid-template-columns:repeat(3,minmax(86px,1fr));gap:7px;padding:10px 12px 6px}.retention-grid label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font:10px IBM Plex Mono,monospace;min-width:0}.retention-grid input,.retention-grid select{height:26px;min-width:0;background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:3px 6px;color:var(--ink);font:12px IBM Plex Sans KR,system-ui,sans-serif}.retention-actions{display:flex;justify-content:flex-end;gap:6px;padding:0 12px 9px;border-bottom:1px solid var(--line-soft)}.health-history-card,.health-alert-card{min-width:0}.health-history-list{max-height:224px;overflow:auto;padding:6px 10px}.health-sample{min-height:28px;display:grid;grid-template-columns:42px 54px 56px 64px 86px 58px minmax(62px,1fr) 56px;align-items:center;gap:6px;border-bottom:1px solid var(--line-soft);font-size:11px;color:var(--ink-2)}.health-sample.warn{background:var(--warn-soft)}.health-sample span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.health-alert-list{max-height:224px;overflow:auto;padding:8px 10px;display:grid;gap:8px}.health-alert{display:grid;grid-template-columns:72px minmax(90px,1fr);gap:4px 8px;border:1px solid var(--line-soft);border-radius:6px;padding:8px;background:var(--panel-2);font-size:11px}.health-alert b,.health-alert span,.health-alert small{min-width:0;overflow:hidden;text-overflow:ellipsis}.health-alert>span:not(.alert-severity),.health-alert small{grid-column:1/-1}.health-alert.warning{border-color:#f59e0b80;background:var(--warn-soft)}.health-alert.critical{border-color:#ef44448c;background:#ef44441a}.alert-severity{height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:var(--panel);font:10px IBM Plex Mono,monospace;text-transform:uppercase;color:var(--muted)}.health-alert.critical .alert-severity{color:var(--crit)}.health-alert.warning .alert-severity{color:var(--warn)}.oktext{color:var(--ok)}.emap-page{display:flex}.emap-page .table-page{min-width:0}.emap-detail{width:320px}.emap-wrap{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;min-height:520px;padding:12px;overflow:auto}.emap-canvas{position:relative;min-height:520px;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:linear-gradient(180deg,#4756702e,#12182252);background-size:cover;background-position:center;background-repeat:no-repeat}.emap-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-repeat:no-repeat;transition:transform .12s ease,background-position .12s ease;z-index:0}.emap-bg.fit-cover{background-size:cover}.emap-bg.fit-contain{background-size:contain}.emap-bg.fit-stretch{background-size:100% 100%}.emap-canvas.has-bg:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#080c125c;z-index:1}.emap-gridlines{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:12.5% 12.5%;opacity:.42;z-index:2}.emap-title{position:absolute;left:14px;top:12px;color:var(--faint);font-size:12px;letter-spacing:0;z-index:3;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.emap-canvas:after{content:"";position:absolute;left:12%;right:12%;top:46%;height:10%;border:1px solid rgba(126,146,178,.24);background:#7e92b214;z-index:1}.emap-fov-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:3;pointer-events:none}.emap-fov{fill:#48bbff24;stroke:#48bbff6b;stroke-width:.22;vector-effect:non-scaling-stroke}.emap-fov.on{fill:#48bbff3d;stroke:#48bbffc7}.emap-fov.alarm{fill:#ff5b5b38;stroke:#ff5b5bbd}.emap-marker{position:absolute;transform:translate(-50%,-50%);min-width:72px;height:34px;border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:700;box-shadow:0 8px 20px #00000040;z-index:4;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.emap-marker.dragging{cursor:grabbing;z-index:5;box-shadow:0 0 0 3px #48bbff38,0 12px 26px #00000057}.emap-marker.online{border-color:#47cf73cc}.emap-marker.offline,.emap-marker.error{border-color:#ff5b5bc7}.emap-marker.unknown{border-color:#ffb946b8}.emap-marker.on{outline:2px solid var(--accent)}.emap-marker.alarm{background:#8b2323eb;color:#fff}.emap-marker.alarm.sev-critical{border-color:var(--crit);box-shadow:0 0 0 2px #ff5b5b47,0 8px 20px #00000040}.emap-marker.alarm.sev-warning{border-color:var(--warn);background:#7e5614f0}.emap-marker.alarm.sev-info{border-color:var(--accent);background:#194c66f0}.emap-marker.hot{animation:emapPulse 1.2s infinite}@keyframes emapPulse{0%,to{filter:brightness(1);transform:translate(-50%,-50%) scale(1)}50%{filter:brightness(1.35);transform:translate(-50%,-50%) scale(1.06)}}.emap-marker b{min-width:18px;height:18px;border-radius:9px;background:var(--crit);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px}.emap-editor{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:12px;display:flex;flex-direction:column;gap:10px}.emap-editor label{display:flex;flex-direction:column;gap:5px;color:var(--muted);font-size:12px}.emap-editor input,.emap-editor select{height:32px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);padding:0 8px}.emap-map-form{display:flex;gap:6px}.emap-map-form input{min-width:0;flex:1}.mutedline{margin:0;color:var(--faint);font-size:11px;line-height:1.35}.emap-editor input[type=range]{padding:0}.emap-detail .event-message{border:1px solid var(--line);border-radius:6px;padding:8px;color:var(--muted);background:var(--panel-2)}.emap-detail .row-actions{display:flex;gap:6px;flex-wrap:wrap}.emap-detail .row-actions .tbtn{flex:1;min-width:120px}@media(max-width:1000px){.emap-wrap{grid-template-columns:1fr}.emap-detail{display:none}}.panel-r .ptz.ptz-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 4px;align-content:start;padding:4px 6px}.ptz-column{min-width:0;display:flex;flex-direction:column}.ptz-columns>.panel-group{grid-column:1/-1}.ptz-column .panel-group{margin:3px 0}.ptz-column .ptz-joystick{width:104px;height:104px}.ptz-column .ptz-joystick:before{top:14px;right:14px;bottom:14px;left:14px}.ptz-column .panel-group[data-panel-group=ptz-status] .ptz-coords,.ptz-column .panel-group[data-panel-group=ptz-lens] .panel-group-body{grid-template-columns:1fr}.ptz-column .ptz-home{width:100%;max-width:130px}.ptz-column .ptz-status{margin:2px 0;padding:3px 4px}.ptz-column .panel-info-grid{grid-template-columns:1fr}.ptz-column .ptzspeed{grid-template-columns:38px minmax(0,1fr) 32px}.panel-r .presets button,.panel-r .preset-select-grid button{height:21px}.panel-r .preset-help{font-size:10px}.panel-r .ptz-coords .inforow{min-height:14px;padding:1px 3px}.output-compatibility{margin:12px;overflow:hidden}.output-profile-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:9px;padding:12px}.output-profile-grid label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11px}.output-profile-grid label.wide{grid-column:span 2}.output-profile-grid input,.output-profile-grid select{height:30px;min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);padding:3px 7px}.output-profile-grid input:disabled,.output-profile-grid select:disabled{opacity:.62}.compatibility-levels{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 12px 10px}.compatibility-levels>div{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px;border:1px solid var(--line);border-radius:5px;background:var(--panel-2);font-size:11px}.compatibility-levels .ok b{color:var(--ok)}.compatibility-levels .pending b{color:var(--warn)}.compatibility-levels .unsupported b{color:var(--crit)}.compatibility-note{margin:0;padding:0 12px 10px;color:var(--muted);font-size:11px}.registration-values{margin:0 12px 10px;border:1px solid var(--line);border-radius:5px;overflow:hidden}.registration-values h3{margin:0;padding:8px 10px;border-bottom:1px solid var(--line);font-size:12px}.registration-values dl{margin:0}.registration-values dl div{display:grid;grid-template-columns:110px minmax(0,1fr);border-bottom:1px solid var(--line-soft)}.registration-values dl div:last-child{border-bottom:0}.registration-values dt,.registration-values dd{margin:0;padding:6px 9px;font-size:11px}.registration-values dt{color:var(--muted);background:var(--chrome)}.registration-values dd{overflow-wrap:anywhere;color:var(--ink-2)}.output-compatibility>.warntext{margin:0 12px 12px}@media(max-width:1100px){.output-profile-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}.compatibility-levels{grid-template-columns:1fr}}.processed-unavailable{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:linear-gradient(145deg,#151b22,#07090d);color:var(--warn);text-align:center}.processed-unavailable span{color:var(--muted);font-size:11px}.live-context-menu.submenu-left .context-submenu{left:auto;right:calc(100% - 2px)}.live-context-menu{position:fixed;z-index:500;width:220px;padding:5px;border:1px solid #536274;border-radius:5px;background:#151b24;color:#dfe7f0;box-shadow:0 14px 38px #0000009e;font-size:12px}.context-target{padding:7px 9px;border-bottom:1px solid #2b3542;color:#7fcdef;font:600 10px IBM Plex Mono,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.context-item,.context-action{position:relative;width:100%;height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 9px;color:#dfe7f0;text-align:left;border-radius:3px}.context-item:hover,.context-item:focus,.context-action:hover:not(:disabled){background:#1b7fb0;color:#fff;outline:none}.context-action:disabled{color:#5a697c;cursor:not-allowed}.context-submenu{position:absolute;left:calc(100% - 2px);top:-5px;display:none;width:210px;padding:5px;border:1px solid #536274;border-radius:5px;background:#151b24;box-shadow:0 12px 28px #0000008c}.has-submenu.open>.context-submenu{display:block}.context-submenu button{width:100%;height:30px;display:grid;grid-template-columns:20px minmax(0,1fr) auto;align-items:center;padding:0 8px;border-radius:3px;color:#dfe7f0;text-align:left}.context-submenu button:hover,.context-submenu button:focus{background:#1b7fb0;color:#fff}.context-submenu i{font-style:normal;color:#7fcdef}.context-submenu kbd{color:#7d8ca0;font:10px IBM Plex Mono,monospace}.default-comparison-grid.comparison-focused{grid-template-columns:1fr!important;grid-template-rows:1fr!important}.tile.disaster-alert:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:4px solid #e0252a;pointer-events:none;z-index:6;animation:disaster-blink 1s steps(2,start) infinite}.disaster-banner{position:absolute;left:0;right:0;top:26px;z-index:7;padding:3px 8px;background:#c8141ee0;color:#fff;font:700 12px sans-serif;text-align:center;pointer-events:none}@keyframes disaster-blink{50%{border-color:transparent}}fieldset[data-testid^=disaster-]{border:1px solid var(--line);border-radius:4px;padding:10px 12px;margin:8px 0;color:var(--ink)}fieldset[data-testid^=disaster-] legend{padding:0 6px;color:var(--ink-2)}fieldset[data-testid^=disaster-] input:not([type=checkbox]):not([type=file]),fieldset[data-testid^=disaster-] select{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:3px 7px;min-height:24px}fieldset[data-testid^=disaster-] button{background:var(--panel-2);color:var(--ink);border:1px solid var(--line);border-radius:3px;padding:4px 12px;cursor:pointer}fieldset[data-testid^=disaster-] button:hover:not(:disabled){border-color:var(--accent)}fieldset[data-testid^=disaster-] button:disabled{opacity:.5;cursor:not-allowed}fieldset[data-testid^=disaster-] table{border-collapse:collapse;width:100%}fieldset[data-testid^=disaster-] th,fieldset[data-testid^=disaster-] td{border-bottom:1px solid var(--line);padding:3px 8px;text-align:left}[data-testid=config-dropzone]{border-color:var(--line);color:var(--ink-2);border-radius:4px}fieldset[data-testid^=disaster-]{--f-ink:#f4f7fb;--f-bg:#1b222d;--f-line:#5d6b7d;--f-ph:#8b98a8;--f-dis-ink:#d3dce6;--f-dis-bg:#262f3b;color-scheme:dark}:root[data-theme=light] fieldset[data-testid^=disaster-]{--f-ink:#0b0f14;--f-bg:#fff;--f-line:#7d8a99;--f-ph:#6b7683;--f-dis-ink:#1f2933;--f-dis-bg:#e6ebf0;color-scheme:light}fieldset[data-testid^=disaster-] :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){color:var(--f-ink);-webkit-text-fill-color:var(--f-ink);background:var(--f-bg);border:1px solid var(--f-line);opacity:1;font-weight:500}fieldset[data-testid^=disaster-] :is(input,textarea)::placeholder{color:var(--f-ph);-webkit-text-fill-color:var(--f-ph);opacity:1;font-weight:400}fieldset[data-testid^=disaster-] select option{color:var(--f-ink);background:var(--f-bg)}fieldset[data-testid^=disaster-] :is(input,select,textarea):is(:disabled,[readonly]){color:var(--f-dis-ink);-webkit-text-fill-color:var(--f-dis-ink);background:var(--f-dis-bg);opacity:1;cursor:not-allowed}fieldset[data-testid^=disaster-] :is(input,select,textarea):not(:disabled):not([readonly]):focus{outline:2px solid var(--accent);outline-offset:1px}fieldset[data-testid^=disaster-] label,fieldset[data-testid^=disaster-] small{color:var(--ink-2)}.live-video-only .pages>.page:not(.live-page){display:none!important}.app:not(.live-video-only) .topbar{padding-right:104px}.alarm-actions{flex-wrap:wrap}.alarm-actions .tbtn{white-space:nowrap;flex:none}.event-center{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.event-center-tabs{height:42px;display:flex;align-items:flex-end;gap:2px;padding:0 12px;background:var(--chrome);border-bottom:1px solid var(--line);flex:none}.event-center-tabs button{height:36px;padding:0 18px;border-bottom:2px solid transparent;color:var(--muted)}.event-center-tabs button:hover{background:var(--panel-2);color:var(--ink)}.event-center-tabs button.on{border-bottom-color:var(--accent);color:var(--accent-ink);font-weight:700}.event-rule-tab{flex:1;min-height:0;overflow:auto}.event-search-panel{display:flex;align-items:end;gap:7px;flex-wrap:wrap;padding:9px 12px;background:var(--panel);border-bottom:1px solid var(--line);flex:none}.event-search-panel>label{display:flex;flex-direction:column;gap:4px;min-width:108px;color:var(--muted);font:10px IBM Plex Mono,monospace}.event-search-panel input,.event-search-panel select,.event-bulkbar select{height:28px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);padding:0 7px;color:var(--ink)}.event-search-actions{display:flex;align-items:center;gap:7px;padding-bottom:2px}.event-search-actions .toolbar-check{height:26px;flex-direction:row;font-family:IBM Plex Sans KR,system-ui,sans-serif}.event-bulkbar{min-height:38px;display:flex;align-items:center;gap:7px;padding:6px 12px;background:var(--chrome);border-bottom:1px solid var(--line);flex:none}.event-bulkbar>b{margin-right:8px;color:var(--ink-2);font:600 11px IBM Plex Mono,monospace}.event-bulkbar>span{color:var(--accent-ink);font-size:11px}.selection-link{padding:0;border:0;color:var(--accent-ink);text-decoration:underline;font:inherit}.event-bulk-result{display:flex;align-items:center;gap:12px;padding:7px 12px;background:#35d07f1c;border-bottom:1px solid var(--line);font-size:11px}.event-bulk-result.failed{background:#e05a501f}.event-bulk-result .tbtn{margin-left:auto}.tbtn.danger{border-color:#e05a508c;color:var(--crit)}.tbtn:disabled{opacity:.42;cursor:not-allowed}.event-result-table{flex:1;min-height:0;overflow:auto;-webkit-user-select:none;user-select:none}.event-result-table th:first-child,.event-result-table td:first-child{width:42px;text-align:center}.event-result-table th button{width:100%;color:inherit;text-align:left;font:inherit;letter-spacing:inherit;text-transform:inherit}.event-result-table tbody tr{touch-action:none}.event-result-table tbody tr.selected{background:var(--accent-soft)}.event-result-table tbody tr.drag-range{box-shadow:inset 3px 0 0 var(--accent);background:#2fa1d62e}.event-result-table td:nth-child(2){min-width:180px}.event-result-table td:nth-child(7){min-width:180px}.event-pagination{height:40px;display:flex;align-items:center;justify-content:center;gap:7px;background:var(--chrome);border-top:1px solid var(--line);flex:none}.event-pagination label{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px}.event-pagination select{height:26px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink)}.event-pagination span{min-width:92px;text-align:center;color:var(--muted);font:11px IBM Plex Mono,monospace}.event-result-table td:last-child{display:flex;gap:4px;min-width:116px}.event-operator-detail{flex:none;padding:10px 12px;background:var(--panel);border-top:1px solid var(--line);max-height:260px;overflow:auto}.event-detail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.event-detail-grid{display:grid;grid-template-columns:90px minmax(180px,1fr) 90px minmax(180px,1fr);gap:6px 10px;font-size:12px}.event-detail-grid>span{color:var(--muted)}.event-detail-grid b{overflow-wrap:anywhere}.event-workflow-form{display:grid;grid-template-columns:180px 220px minmax(300px,1fr) auto;gap:8px;align-items:end;margin-top:10px}.event-workflow-form label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11px}.event-workflow-form input,.event-workflow-form select,.event-workflow-form textarea{border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);padding:6px}.event-workflow-form textarea{height:54px;resize:vertical}.event-delete-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:#0000009e}.event-delete-dialog{width:min(620px,calc(100vw - 32px));padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 18px 60px #00000080}.event-delete-dialog h3{margin:0 0 14px;color:var(--ink)}.event-delete-dialog dl{display:grid;grid-template-columns:92px 1fr;gap:7px 12px;margin:0;font-size:12px}.event-delete-dialog dt{color:var(--muted)}.event-delete-dialog dd{margin:0;overflow-wrap:anywhere}.event-delete-dialog p{margin:14px 0;padding:10px;border:1px solid rgba(224,90,80,.35);background:#e05a5014;color:var(--ink-2);font-size:12px;line-height:1.55}.event-delete-dialog>div{display:flex;justify-content:flex-end;gap:8px}@media(max-width:1100px){.event-search-panel>label{min-width:96px}.event-bulkbar{overflow-x:auto}.event-bulkbar .spacer{display:none}}.operations-center{flex:1;min-width:0;overflow:auto;padding:0 14px 24px}.operations-center .operations-form{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:12px;background:var(--panel);border:1px solid var(--line);margin-bottom:14px}.operations-center .operations-form label{display:flex;flex-direction:column;gap:4px;min-width:160px;color:var(--muted);font-size:11px}.operations-center .operations-form input,.operations-center .operations-form select{height:30px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);padding:0 7px}.operations-center .operations-edit-title{align-self:center;color:var(--accent);font-size:13px}.operations-center .operations-enabled{min-width:100px}.operations-center table{width:100%;margin-bottom:18px;background:var(--panel);border:1px solid var(--line)}.operations-center th,.operations-center td{padding:8px;border-bottom:1px solid var(--line);text-align:left;font-size:12px}.operations-center tr.editing td{background:color-mix(in srgb,var(--accent) 10%,transparent)}.operations-center .operations-actions{display:flex;gap:6px;white-space:nowrap}.operations-center .operations-actions .tbtn{height:26px;padding:0 9px}.operations-center .operations-actions .danger{color:#ff8c8c;border-color:#7a3f45}.operations-center h3{margin:16px 0 8px}.report-cards{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px;margin:12px 0}.report-cards article{display:flex;flex-direction:column;gap:5px;padding:14px;background:var(--panel);border:1px solid var(--line)}.report-cards strong{font-size:22px;color:var(--accent)}.report-cards span,.operations-center .muted{color:var(--muted)}.output-method-buttons{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:8px;padding:12px 12px 0}.output-method-buttons button{min-height:38px;border:1px solid var(--line);border-radius:5px;background:var(--panel-2);color:var(--ink-2);font-weight:700;cursor:pointer}.output-method-buttons button.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 18%,var(--panel-2));color:var(--ink)}.output-profile-state{display:grid;justify-items:end;gap:2px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--ok) 45%,var(--line));border-radius:5px;background:color-mix(in srgb,var(--ok) 9%,var(--panel-2))}.output-profile-state span,.output-profile-apply span,.output-profile-apply small{color:var(--ink-2);font-size:12px}.output-profile-apply{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:10px 12px 0;padding:10px 12px;border:1px solid var(--line);border-radius:5px;background:var(--panel-2)}.output-profile-apply.pending{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 9%,var(--panel-2))}.output-profile-apply>div{display:grid;gap:2px}@media(max-width:700px){.output-method-buttons{grid-template-columns:1fr}.output-profile-state{justify-items:start}.output-profile-apply{align-items:stretch;flex-direction:column}}.playback-window{height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--ink)}.playback-window button,.playback-window input,.playback-window select{border:1px solid var(--line);border-radius:3px;background:var(--panel-2);color:var(--ink-2)}.playback-window button.on,.playback-window button.primary{background:var(--accent-2);color:#fff}.playback-window button:disabled{opacity:.4}.playback-window-head{height:46px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--chrome);border-bottom:1px solid var(--line)}.playback-window-head nav{display:flex;align-self:stretch;margin-left:22px}.playback-window-head nav button{min-width:110px;border-width:0 0 2px;background:transparent}.playback-window-head>button{height:28px;padding:0 10px}.playback-window .spacer{flex:1}.playback-window-body{min-height:0;flex:1;display:flex}.playback-window-left{width:240px;flex:none;padding:10px;background:var(--panel);border-right:1px solid var(--line);overflow:auto}.playback-window-left>input{width:100%;height:30px;padding:0 8px;margin-bottom:10px}.playback-window-left section{display:flex;flex-direction:column;gap:3px;margin-bottom:12px}.playback-window-left section>b{padding:5px;color:var(--muted)}.playback-window-left section button{text-align:left;padding:6px 8px}.playback-window-left label{display:flex;flex-direction:column;gap:5px;color:var(--muted)}.playback-window-left label input{height:30px;padding:0 6px}.playback-window-left>.primary{width:100%;height:32px;margin-top:8px}.recording-calendar{display:block!important;margin:10px 0!important}.recording-calendar header{display:flex;align-items:center;justify-content:space-between}.recording-calendar header button{min-height:24px}.recording-calendar-week,.recording-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.recording-calendar-week span{text-align:center;color:var(--faint);font-size:10px}.recording-calendar-grid button{min-width:0;min-height:24px;padding:0;border-color:transparent;color:var(--faint)}.recording-calendar-grid button.recorded{color:var(--ink);background:var(--panel-2)}.recording-calendar-grid button.recorded:after{content:"•";display:block;height:4px;line-height:2px;color:var(--accent)}.recording-calendar-grid button.selected{outline:1px solid var(--accent);color:var(--accent-ink)}.recording-calendar-grid button.outside{opacity:.45}.playback-window-center{min-width:0;flex:1;display:flex;flex-direction:column;background:var(--video)}.playback-gridbar,.playback-controls,.playback-timeline-head{height:36px;display:flex;align-items:center;gap:6px;padding:0 8px;background:var(--chrome);border-bottom:1px solid var(--line)}.recorded-video-stage{position:relative;min-height:0;flex:1}.recorded-video-grid{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;gap:2px;background:#000}.recorded-video-grid.playback-layout-1{grid-template-columns:1fr}.recorded-video-grid.playback-layout-4{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.recorded-video-grid.playback-layout-6{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.recorded-video-grid.playback-layout-8{grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.recorded-video-grid .recorded-video{min-width:0;min-height:0}.recorded-video-grid .recorded-video>b{position:absolute;right:7px;top:7px;padding:3px 6px;background:#000000b3;font-size:11px}.recorded-master-clock{position:absolute;left:8px;top:8px;z-index:3;padding:4px 7px;background:#000000b8;font:11px IBM Plex Mono,monospace}.playback-gridbar button{width:28px;height:24px}.recorded-video{position:relative;min-height:0;flex:1;display:grid;place-items:center;overflow:hidden;background:#000;color:var(--faint)}.recorded-video video{width:100%;height:100%;object-fit:contain}.recorded-video.zoom video{transform:scale(2);cursor:move}.recorded-video>span{position:absolute;left:8px;top:8px;padding:4px 7px;background:#000000b8;font:11px IBM Plex Mono,monospace}.playback-controls{border-top:1px solid var(--line);border-bottom:0}.playback-controls button{height:26px;padding:0 8px}.playback-controls select{height:26px}.playback-speed-label{margin-left:5px;color:var(--accent-ink);font-weight:700}.playback-timeline-head{height:32px;border-top:1px solid var(--line)}.playback-timeline-head button{height:23px;padding:0 7px}.playback-timeline-head span{margin-left:auto;color:var(--muted);font-size:11px}.playback-timeline{position:relative;height:74px;flex:none;background:repeating-linear-gradient(90deg,var(--panel),var(--panel) calc(10% - 1px),var(--line-soft) 10%)}.playback-timeline .segment{position:absolute;top:22px;height:28px;min-width:2px;border:0;background:var(--t-cont)}.playback-timeline .segment.motion{background:var(--t-motion)}.playback-timeline .segment.alarm{background:var(--t-alarm)}.playback-timeline-legend{height:24px;display:flex;align-items:center;gap:12px;padding:0 8px;background:var(--chrome);border-top:1px solid var(--line-soft);font-size:10px;color:var(--muted)}.playback-timeline-legend span:before{content:"";display:inline-block;width:13px;height:7px;margin-right:4px;border-radius:1px;background:var(--t-cont)}.playback-timeline-legend span.motion:before{background:var(--t-motion)}.playback-timeline-legend span.alarm:before{background:var(--t-alarm)}.playback-timeline-legend span.manual:before{background:var(--accent)}.playback-timeline-legend time{margin-left:auto;font-family:IBM Plex Mono,monospace}.playback-timeline.multi{height:auto;min-height:38px;max-height:150px;overflow:auto}.playback-timeline-row{position:relative;height:34px;border-bottom:1px solid var(--line-soft);padding-left:42px}.playback-timeline-row>b{position:absolute;left:4px;top:9px;color:var(--muted);font-size:10px}.playback-timeline.multi .segment{top:6px;height:22px}.playback-timeline.multi .segment.manual{background:var(--accent)}.playback-export-panel{clear:both;display:flex;flex-direction:column;gap:7px;padding-top:8px}.playback-export-panel h3{margin:0 0 4px}.playback-export-panel label{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:11px}.playback-export-panel input{height:28px;padding:0 5px}.playback-export-panel p{margin:0;color:var(--muted);font-size:10px}.playback-export-job{display:grid;grid-template-columns:1fr auto;gap:4px;padding:6px;border:1px solid var(--line);border-radius:3px}.playback-export-job a{grid-column:1/-1;color:var(--accent-ink)}.playback-export-job small{grid-column:1/-1;color:var(--crit)}.playback-window-right{width:280px;flex:none;padding:10px;background:var(--panel);border-left:1px solid var(--line)}.playback-window-right>button{float:right}.playback-window-right p{color:var(--muted);line-height:1.5}.playback-right-open{width:32px;writing-mode:vertical-rl}.playback-result-list{clear:both;display:flex;flex-direction:column;gap:5px;max-height:calc(100vh - 115px);overflow:auto;padding-top:8px}.playback-result-list>button{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;padding:6px;border:1px solid var(--line);border-radius:4px;background:var(--panel-2);color:var(--ink);text-align:left}.playback-result-list>button.on{border-color:var(--accent);background:var(--accent-soft)}.playback-result-list>button>span:last-child{display:flex;min-width:0;flex-direction:column;gap:3px}.playback-result-list time,.playback-result-list small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.playback-result-thumb{display:flex;width:96px;height:54px;align-items:center;justify-content:center;overflow:hidden;background:var(--video-empty);color:var(--faint);font-size:10px}.playback-result-thumb img{width:100%;height:100%;object-fit:cover}.playback-record-filter{clear:both;display:flex;align-items:center;gap:8px;margin:8px 0;color:var(--muted);font-size:11px}.playback-record-filter select{height:28px;flex:1}.playback-file-list{display:flex;flex-direction:column;gap:4px;max-height:40vh;overflow:auto}.playback-file-list>button{display:grid;grid-template-columns:42px 1fr;gap:2px 6px;padding:7px;text-align:left}.playback-file-list>button.on{border-color:var(--accent);background:var(--accent-soft)}.playback-file-list time{font-size:10px}.playback-file-list small{grid-column:2;color:var(--muted);font-size:10px}@media(max-width:1000px){.playback-window-left{width:190px}.playback-window-right{width:220px}.playback-controls button:nth-of-type(n+8){display:none}}.recorded-video-grid.has-max{grid-template-columns:1fr!important;grid-template-rows:1fr!important}.recorded-video.concealed{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none}.recorded-video .recorded-error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#0a0e14d1;color:#ffd9d9;text-align:center;padding:16px;z-index:3}.recorded-video .recorded-error button{padding:6px 14px;cursor:pointer}
