@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-cyrillic-ext-400-normal-Cycyekte.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-400-normal-Dd5dApAy.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-cyrillic-400-normal-CKu2TFQr.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-400-normal-D9eUeF-O.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-greek-ext-400-normal-ByG7UNQ2.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-400-normal-ClCfNE6D.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-greek-400-normal-BFCFncbp.woff2) format("woff2"),url(/assets/fira-sans-greek-400-normal-DQ8sF22y.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-vietnamese-400-normal-ljDTQFsx.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-400-normal-DUVG35gE.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-ext-400-normal-BLG_mAEf.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-400-normal-BCUwhuGB.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fira-sans-latin-400-normal-a0AnQzuD.woff2) format("woff2"),url(/assets/fira-sans-latin-400-normal-66xCkunx.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-cyrillic-ext-500-normal-Dkk5LlrU.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-500-normal-Cixivk4R.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-cyrillic-500-normal-CXfldnQ8.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-500-normal-Daski1k2.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-greek-ext-500-normal-nq-cjB3m.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-500-normal-Bem4H9fH.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-greek-500-normal-Cy-TUuxE.woff2) format("woff2"),url(/assets/fira-sans-greek-500-normal-C9KT8sAy.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-vietnamese-500-normal-ChEXCnJy.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-500-normal-UV7M6ot_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-ext-500-normal-OO1QnNpY.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-500-normal-CFRf4jcC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-sans-latin-500-normal-Bvbxc8ch.woff2) format("woff2"),url(/assets/fira-sans-latin-500-normal-Bkfzcwmr.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-cyrillic-ext-600-normal-CE6oUZE1.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-600-normal-BKgjRriM.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-cyrillic-600-normal-JSBvCpTs.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-600-normal-CJ5P9t7t.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-greek-ext-600-normal-fS0evUH3.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-600-normal-DPxZoeHL.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-greek-600-normal-BlqpLOpF.woff2) format("woff2"),url(/assets/fira-sans-greek-600-normal-DfHu91YF.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-vietnamese-600-normal-Dh2KAvU8.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-600-normal-Bxjaclsw.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-ext-600-normal-DTQBTt1m.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-600-normal-DLMQsaV4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fira-sans-latin-600-normal-CXKlxLG9.woff2) format("woff2"),url(/assets/fira-sans-latin-600-normal-DtSgd811.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-cyrillic-ext-700-normal-BfO9TR-w.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-ext-700-normal-Gcpdxicj.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-cyrillic-700-normal-Bl-HczEO.woff2) format("woff2"),url(/assets/fira-sans-cyrillic-700-normal-KyW5QH4H.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-greek-ext-700-normal-C1m6bE4Q.woff2) format("woff2"),url(/assets/fira-sans-greek-ext-700-normal-C8J5qYMq.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-greek-700-normal-BVfcrbV7.woff2) format("woff2"),url(/assets/fira-sans-greek-700-normal-CJu31rC4.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-vietnamese-700-normal-j5oLGLJY.woff2) format("woff2"),url(/assets/fira-sans-vietnamese-700-normal-DFi88MGY.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-ext-700-normal-g2Yrd4J5.woff2) format("woff2"),url(/assets/fira-sans-latin-ext-700-normal-cfTxGFzJ.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/fira-sans-latin-700-normal-CRhwpWTq.woff2) format("woff2"),url(/assets/fira-sans-latin-700-normal-DgqLm3Fi.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-cyrillic-ext-500-normal-CYRspHgm.woff2) format("woff2"),url(/assets/fira-code-cyrillic-ext-500-normal-CwtLmSFD.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-cyrillic-500-normal-CX35h3Mg.woff2) format("woff2"),url(/assets/fira-code-cyrillic-500-normal-Bu7VCL72.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-greek-ext-500-normal-BO3iq16n.woff2) format("woff2"),url(/assets/fira-code-greek-ext-500-normal-CMiNLXER.woff) format("woff");unicode-range:U+1F00-1FFF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-greek-500-normal-CVO0IRNt.woff2) format("woff2"),url(/assets/fira-code-greek-500-normal-DEXIWiey.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/fira-code-symbols2-500-normal-DwsgbIjQ.woff) format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-latin-ext-500-normal-Crd9e_oI.woff2) format("woff2"),url(/assets/fira-code-latin-ext-500-normal-CaANqXjI.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fira Code;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fira-code-latin-500-normal-B6gioGu8.woff2) format("woff2"),url(/assets/fira-code-latin-500-normal-aMLC2AMm.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}.hidden{display:none!important}:root{--bg: #ebf0f7;--shell: #0a0f1e;--surface: #ffffff;--surface-muted: #f8fafc;--border: #e5e7eb;--border-strong: #cbd5e1;--text: #0f172a;--muted: #6b7280;--caption: #94a3b8;--accent: #4f46e5;--accent-hover: #6366f1;--accent-soft: rgba(79,70,229,.08);--green: #047857;--green-bg: #ecfdf5;--green-border: #a7f3d0;--red: #b91c1c;--red-bg: #fef2f2;--red-border: #fecaca;--amber: #b45309;--amber-bg: #fffbeb;--font-sans: "Fira Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;--mono: var(--font-mono);--font-weight: 400;--font-weight-strong: 600;--letter-spacing-ui: normal;--radius: 8px;--panel-w: 253px;--fp-picker-collapsed-w: 40px;--fp-picker-expanded-w: 132px;--fp-picker-w: var(--fp-picker-collapsed-w);--fp-font: 10px;--topbar-h: 52px}html,body{height:100%;font-family:var(--font-sans);font-weight:var(--font-weight);letter-spacing:var(--letter-spacing-ui);font-size:14px;background:var(--bg);color:var(--text);overflow:hidden}button,input,select,textarea,optgroup{font-family:inherit;letter-spacing:inherit}html,body{display:flex;flex-direction:column}#topbar{position:relative;z-index:100;flex:0 0 auto;min-height:var(--topbar-h);height:auto;background:var(--shell);border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:6px 12px}#logo{display:flex;align-items:center;gap:6px;font-weight:700;font-size:14px;letter-spacing:-.01em;color:#fff;white-space:nowrap;flex-shrink:0}#logo-title-wrap{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;min-width:0}#logo-brand,#logo-suffix{color:#fff;font-weight:700}#logo-suffix:empty{display:none}#logo .basemap-3d-btn{height:22px;min-width:34px;padding:0 7px;font-size:11px;line-height:1;letter-spacing:.03em;flex-shrink:0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#logo-img{width:24px;height:24px;flex-shrink:0}#stats,#vehicles{display:flex;flex-wrap:wrap;gap:4px;flex-shrink:1;min-width:0;font-size:11px;color:var(--caption);max-width:100%}#stat-total,#stat-vehicles-total{color:#fff;font-weight:600}.pill{padding:2px 6px;border-radius:99px;font-weight:600;font-size:10px;border:1px solid transparent;white-space:nowrap}.pill.green{background:var(--green-bg);color:var(--green);border-color:var(--green-border)}.pill.red{background:var(--red-bg);color:var(--red);border-color:var(--red-border)}.pill.amber{background:#fffbeb;color:#b45309;border-color:#fcd34d}.pill.muted{background:#ffffff14;color:#94a3b8;border-color:#ffffff1f}#stats #stat-offline.pill.red,#vehicles #stat-vehicles-offline.pill.red{font-size:12px;font-weight:700;padding:3px 9px;letter-spacing:.01em;background:#dc2626;color:#fff;border-color:#fecaca;box-shadow:0 0 0 1px #dc262659}#stats #stat-standby.pill.amber{font-size:11px;font-weight:600;padding:2px 7px}#filters{display:flex;gap:6px;flex:1 1 200px;min-width:0;align-items:center}#filters select,#filters input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:var(--radius);padding:4px 8px;font-size:12px;outline:none;transition:border-color .15s;min-width:0;max-width:100%}#filters select{flex:0 1 140px}#filters select:focus,#filters input:focus{border-color:var(--accent)}#search-wrap{position:relative;display:flex;align-items:center;flex:0 0 auto}#search-btn{background:#ffffff0f;color:#e2e8f0;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:5px 10px;cursor:pointer;font:inherit;font-size:13px;white-space:nowrap;line-height:1.2}#search-btn:hover{border-color:var(--accent-hover);color:#fff}#search-btn[aria-expanded=true],#search-btn.has-query{border-color:var(--accent);color:#fff}.basemap-3d-btn{flex:0 0 auto;height:32px;min-width:40px;padding:0 10px;border-radius:6px;border:1px solid #334155;background:#0f172a;color:#94a3b8;font:inherit;font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer}.basemap-3d-btn:hover{border-color:var(--accent-hover);color:#fff}.basemap-3d-btn.active{border-color:#38bdf8;color:#e0f2fe;background:#0c4a6e}#search-panel{position:absolute;top:calc(100% + 8px);left:0;z-index:220;width:min(320px,calc(100vw - 24px));max-height:min(70vh,400px);display:flex;flex-direction:column;background:#0f172a;border:1px solid #334155;border-radius:10px;box-shadow:0 12px 40px #0000008c;overflow:hidden}#search-panel.hidden{display:none}.search-panel-head{position:relative;display:flex;align-items:center;padding:10px 12px;border-bottom:1px solid #1f2937;flex-shrink:0}#filters #search,#search{width:100%;background:#111827;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:7px 28px 7px 10px;font:inherit;font-size:13px;min-width:0;max-width:none}#filters #search:focus,#search:focus{outline:none;border-color:var(--accent)}#search::placeholder{color:#94a3b8}#search::-webkit-search-cancel-button,#search::-webkit-search-decoration{-webkit-appearance:none;appearance:none}#search-clear{position:absolute;right:18px;background:none;border:none;color:#94a3b8;cursor:pointer;font-size:13px;line-height:1;padding:2px 4px;border-radius:4px;transition:color .15s}#search-clear:hover{color:#e2e8f0}#search-list{position:relative;top:auto;right:auto;width:100%;max-height:min(320px,50vh);overflow-y:auto;background:transparent;border:none;border-radius:0;box-shadow:none;list-style:none;z-index:auto;padding:4px 0}.sl-item{display:flex;flex-direction:column;gap:2px;padding:8px 12px;cursor:pointer;transition:background .1s;color:#e2e8f0}.sl-item:hover,.sl-item.active{background:#4f46e538}.sl-name{font-size:13px;color:#e2e8f0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sl-name mark{background:none;color:#a5b4fc;font-weight:700}.sl-meta{font-size:11px;color:#94a3b8}#map-wrap{position:relative;flex:1 1 auto;min-height:0;width:100%;display:flex}#map{flex:1;height:100%}#panels-layer{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}.float-panel{position:absolute;z-index:5;width:var(--panel-w);max-width:min(96vw,calc(var(--panel-w) + var(--fp-picker-w)));box-sizing:border-box;background:var(--surface);border:1px solid var(--border);border-radius:11px;box-shadow:0 8px 22px #0f172a38;display:flex;flex-direction:column;overflow:hidden;pointer-events:auto}.float-panel.fp-alarm-sos,.vw-tile.fp-alarm-sos{border:2px solid #dc2626;box-shadow:0 8px 22px #dc262647}.float-panel.fp-alarm-tamper,.vw-tile.fp-alarm-tamper{border:2px solid #7c3aed;box-shadow:0 8px 22px #7c3aed47}.float-panel.fp-alarm-sos-tamper{border:2px solid transparent;background:linear-gradient(var(--surface),var(--surface)) padding-box,linear-gradient(to bottom,#dc2626 50%,#7c3aed 50%) border-box;background-clip:padding-box,border-box;box-shadow:0 8px 22px #7c3aed38}.vw-tile.fp-alarm-sos-tamper{border:2px solid transparent;background:linear-gradient(#111827,#111827) padding-box,linear-gradient(to bottom,#dc2626 50%,#7c3aed 50%) border-box;background-clip:padding-box,border-box;box-shadow:0 8px 22px #7c3aed38}.float-panel.has-cameras{width:calc(var(--panel-w) + var(--fp-picker-w))}.float-panel.has-cameras.fp-cams-expanded{--fp-picker-w: var(--fp-picker-expanded-w)}.float-panel.has-cameras .fp-video{margin-right:var(--fp-picker-w)}.float-panel.fp-cams-compact{--fp-chip-pad-y: 2px;--fp-chip-ico: 12px;--fp-cams-gap: 2px}.fp-header{position:relative;z-index:6;display:flex;align-items:center;gap:1px;width:100%;box-sizing:border-box;padding:0 1px 0 3px;min-height:16px;border-bottom:1px solid var(--border);background:var(--surface-muted);flex-shrink:0;pointer-events:auto}.fp-select{display:flex;align-items:center;gap:2px;flex-shrink:0;font-size:var(--fp-font);font-weight:600;color:var(--muted);cursor:pointer;user-select:none}.fp-select input{accent-color:var(--accent);cursor:pointer;width:11px;height:11px}.fp-title-wrap{display:flex;align-items:center;gap:3px;overflow:hidden;flex:1;min-width:0}.fp-title{font-weight:600;font-size:var(--fp-font);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);text-decoration:none;min-width:0}.fp-title:hover:not(.fp-title-nolink){color:var(--accent);text-decoration:underline}.fp-title.fp-title-nolink{pointer-events:none;cursor:default;color:var(--text)}.dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;animation:pulse 2s infinite}.dot.green{background:var(--green)}.dot.red{background:var(--red);animation:none}.dot.amber{background:var(--amber)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.fp-close{position:relative;z-index:7;background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;line-height:1;padding:0;margin:0;flex-shrink:0;min-width:22px;min-height:22px;display:inline-flex;align-items:center;justify-content:center;pointer-events:auto;transition:color .15s}.fp-close:hover{color:var(--text)}.fp-body{position:relative;width:100%;min-width:0;background:#000;flex-shrink:0}.fp-video{position:relative;background:#000;width:var(--panel-w);max-width:100%;min-width:0;min-height:0;overflow:hidden;aspect-ratio:16 / 9}.fp-video-el,.fp-mjpeg,.fp-howen{width:100%;height:100%;max-width:100%;max-height:100%;min-width:0;min-height:0;display:block;object-fit:contain;border:0;background:#000}.fp-mjpeg{position:absolute;inset:0}.fp-howen-open{color:#e2e8f0;text-decoration:none;font-size:12px;padding:2px 6px}.fp-howen-open:hover{color:#fff}.fp-video-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:8px;text-align:center;font-size:11px;font-weight:500;background:#000000b8;color:#cbd5e1;z-index:1}.fp-video-msg.hidden{display:none}.fp-video-msg.type-info{color:#cbd5e1}.fp-video-msg.type-error{color:#fca5a5}.fp-video-msg.type-warn{color:#fde68a}.fp-controls{position:absolute;bottom:4px;right:4px;display:flex;gap:2px;opacity:0;transition:opacity .15s;z-index:2}.fp-video:hover .fp-controls{opacity:1}.fp-playback .fp-controls{display:none}.fp-playback-controls{display:flex;flex-direction:column;gap:4px;width:100%;box-sizing:border-box;padding:5px 6px 6px;background:#111827;color:#fff;font-size:10px;line-height:1.25;flex-shrink:0}.fp-playback-controls.hidden{display:none}.fp-playback-controls button{border:0;border-radius:4px;padding:4px 6px;background:#ffffff29;color:#fff;font:inherit;white-space:nowrap;cursor:pointer}.fp-playback-controls button:hover{background:#ffffff47}.fp-pb-head{display:flex;align-items:baseline;gap:5px;min-width:0}.fp-playback-mode{flex:none;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#ffffffb8}.fp-playback-time{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.fp-pb-actions{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.fp-pb-transport{display:flex;gap:1px;border-radius:4px;overflow:hidden}.fp-pb-transport button{border-radius:0}.fp-pb-transport button:first-child{border-radius:4px 0 0 4px}.fp-pb-transport button:last-child{border-radius:0 4px 4px 0}.fp-playback-toggle{min-width:52px}.fp-playback-speed{min-width:26px;font-variant-numeric:tabular-nums}.fp-live{margin-left:auto;background:var(--accent)!important}.fp-controls button,.fp-controls a{display:inline-flex;align-items:center;justify-content:center;background:#000000a6;border:none;color:#fff;border-radius:5px;padding:3px 5px;cursor:pointer;font-size:12px;line-height:1;transition:background .1s}.fp-controls button:hover{background:#000000e6}.fp-controls button svg,.fp-controls a svg{display:block;flex-shrink:0}.fp-quality,.vw-quality{display:inline-flex;gap:0;padding:0!important;overflow:hidden}.fp-quality .q-opt,.vw-quality .q-opt{padding:3px 5px;font-size:10px;font-weight:700;letter-spacing:.02em;opacity:.55;line-height:1.2}.fp-quality[data-quality=hd] .q-opt[data-q=hd],.fp-quality[data-quality=sd] .q-opt[data-q=sd],.vw-quality[data-quality=hd] .q-opt[data-q=hd],.vw-quality[data-quality=sd] .q-opt[data-q=sd]{opacity:1;background:#4f46e5d9}.fp-recording{display:block;width:100%;box-sizing:border-box;padding:2px 4px 3px;border-top:1px solid var(--border);color:inherit;text-decoration:none;cursor:default;background:var(--surface);flex-shrink:0}.fp-recording:hover{background:#4f46e50a}.fp-recording-edge:not(.fp-recording-inert){cursor:pointer}.fp-recording-inert:hover{background:var(--surface)}.fp-recording.hidden{display:none}.fp-rec-retry{border:0;padding:0;background:none;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.fp-rec-retry:hover{color:var(--fg)}.fp-video-msg .fp-rec-retry{color:#fff}.fp-video-msg .fp-rec-retry:hover{color:#d1d5db}.fp-edge-unsupported .fp-edge-bar{display:none}.fp-edge-unsupported .fp-rec-sub{color:var(--muted);white-space:normal}.fp-recording.fp-rec-collapsed{padding:1px 4px 2px}.fp-recording.fp-rec-collapsed .fp-rec-body,.fp-recording.fp-rec-collapsed .fp-rec-pct,.fp-recording.fp-rec-collapsed .fp-rec-title-extra,.fp-recording.fp-rec-collapsed .fp-rec-desde,.fp-recording.fp-recording-edge.fp-rec-collapsed{display:none}.fp-recording-edge{border-top-style:dashed}.fp-rec-head{display:flex;justify-content:space-between;align-items:center;gap:4px;min-height:22px;font-size:var(--fp-font);line-height:1.2;user-select:none}.fp-rec-head .meta-key{color:var(--muted);font-family:var(--font-sans);font-weight:var(--font-weight-strong);font-size:var(--fp-font);text-transform:none;letter-spacing:var(--letter-spacing-ui)}.fp-rec-head-right{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}.fp-rec-pct{display:none}.fp-rec-chevron{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:0;padding:0;flex-shrink:0;cursor:pointer;color:var(--text);opacity:.82;box-sizing:border-box;transition:transform .15s ease,opacity .15s ease}.fp-rec-chevron:hover,.fp-rec-chevron:focus-visible{opacity:1;outline:none}.fp-rec-chevron svg{display:block;width:12px;height:12px;overflow:visible;pointer-events:none}.fp-recording:not(.fp-rec-collapsed) .fp-rec-chevron{transform:rotate(180deg)}.fp-rec-body{margin-top:1px}.fp-rec-bar{display:flex;gap:0;height:5px;margin:1px 0;border-radius:2px;overflow:hidden}.fp-rec-bar .ub{flex:1 1 auto;min-width:0;border-radius:0;cursor:crosshair}.fp-rec-bar .ub[data-playable="1"]{cursor:pointer}.fp-rec-sub{display:flex;align-items:baseline;gap:4px;width:100%;box-sizing:border-box;font-size:var(--fp-font);color:var(--muted);line-height:1.2;min-height:1.2em;padding-right:0}.fp-rec-sub-label{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fp-edge-sub{display:block;padding-right:0}.fp-footer{display:flex;align-items:center;gap:2px;width:100%;box-sizing:border-box;padding:0 4px;min-height:16px;border-top:1px solid var(--border);background:var(--surface-muted);flex-shrink:0}.fp-mute{color:#111;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border);border-radius:4px;padding:0 3px;cursor:pointer;font-size:var(--fp-font);line-height:1;flex-shrink:0}.fp-mute.fp-sound-on{color:var(--accent);border-color:var(--accent)}.fp-mute svg{display:block;flex-shrink:0}.fp-footer-spacer{flex:1;min-width:0}.ptz-pill{flex-shrink:0;margin:0 2px;padding:0 6px;height:16px;line-height:14px;font-size:9px;font-weight:600;font-family:inherit;letter-spacing:.02em;border-radius:999px;border:1px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;white-space:nowrap}.ptz-pill:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.ptz-pill.ptz-controlling{background:var(--green-bg);border-color:var(--green-border);color:var(--green);cursor:pointer}.ptz-pill.ptz-controlling:hover{filter:brightness(.97)}.ptz-pill.ptz-blocked,.ptz-pill:disabled{opacity:.45;cursor:not-allowed;color:var(--muted);border-color:var(--border);background:transparent}.fp-intercom-pill.ptz-pill{margin-left:0}.fp-intercom-pill.ptz-pill.fp-intercom-active{background:var(--green-bg);border-color:var(--green-border);color:var(--green)}.fp-intercom-pill.ptz-pill.fp-intercom-active:hover:not(:disabled){filter:brightness(.97)}.fp-intercom-pill.ptz-pill.fp-intercom-calling{background:var(--amber-bg, #fef3c7);border-color:var(--amber-border, #f59e0b);color:var(--amber, #b45309)}.meta-key{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:600}#loading{position:fixed;inset:0;z-index:999;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}#loading-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#loading-text{color:var(--muted);font-size:14px}.maplibregl-map,.maplibregl-ctrl-group,.maplibregl-ctrl-attrib,.maplibregl-popup-content,.maplibregl-ctrl-scale{font-family:var(--font-sans)!important}.maplibregl-ctrl-attrib{font-size:10px!important}.hover-popup .maplibregl-popup-content{background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:6px 10px;box-shadow:0 4px 12px #0f172a24;pointer-events:none;max-width:220px}.hover-popup .maplibregl-popup-tip{border-top-color:var(--border)!important}.hp-name{display:block;font-size:12px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hp-grupo{display:block;font-size:11px;color:var(--muted);margin-top:2px}#userbar{margin-left:auto;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;flex:0 1 auto;min-width:0;max-width:100%}#userbar a{color:#fff;text-decoration:none;font-size:15px;line-height:1}#userbar a:hover{opacity:.75}#userbar a.admin-back{display:inline-flex;align-items:center;gap:6px;font-weight:600}.admin-back-ico{display:block;width:16px;height:16px;flex-shrink:0}.tb-ico{display:block;width:18px;height:18px}.user-menu{position:relative;display:flex;align-items:center}.tb-icon-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;margin:0;color:#fff;cursor:pointer;line-height:1;border-radius:4px}.tb-icon-btn:hover{opacity:.75}.tb-icon-btn[aria-expanded=true]{opacity:1;background:#ffffff1a}.user-menu-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:320;min-width:200px;max-width:min(280px,90vw);background:#0f172a;border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:6px 0;box-shadow:0 10px 28px #00000073}.user-menu-panel.hidden{display:none!important}.user-menu-name{padding:8px 14px 10px;color:#e2e8f0;font-size:13px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-menu-item{display:block;width:100%;text-align:left;background:none;border:none;color:#e2e8f0;padding:9px 14px;font:inherit;font-size:13px;cursor:pointer}.user-menu-item:hover{background:#ffffff14;color:#fff}#pw-modal{position:fixed;inset:0;z-index:400;background:#0f172a73;display:flex;align-items:flex-start;justify-content:center;padding:80px 16px}#pw-modal.hidden{display:none!important}#pw-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:360px;max-width:100%;box-shadow:0 16px 40px #0f172a40}#pw-modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);font-weight:700;font-size:15px}#pw-modal-head button{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted)}#pw-form{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px}#pw-form label{font-size:12px;color:var(--muted);text-align:left}#pw-form input{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}.pw-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.pw-actions button{font:inherit;font-size:13px;padding:7px 14px;border-radius:8px;cursor:pointer;border:1px solid var(--border);background:var(--surface-muted);color:var(--text)}.pw-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.pw-actions button.primary:hover{background:var(--accent-hover)}.pw-msg{font-size:12px;margin:0}.pw-msg.err{color:#b91c1c}.pw-msg.ok{color:#047857}#panels-clear{background:#ffffff0f;color:#e2e8f0;border:1px solid rgba(255,255,255,.16);border-radius:6px;padding:4px 8px;font:inherit;font-size:11px;cursor:pointer;white-space:nowrap}#panels-clear:hover{border-color:var(--accent-hover);color:#fff}#panels-clear.hidden{display:none}.auth-page{display:flex;align-items:center;justify-content:center}#login-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:32px;width:330px;display:flex;flex-direction:column;gap:12px;text-align:center;box-shadow:0 10px 30px #0f172a1a}#login-card img{width:56px;margin:0 auto}#login-card h1{font-size:19px;margin-bottom:8px;font-weight:700;letter-spacing:-.02em}#login-form{display:flex;flex-direction:column;gap:12px}#login-card input{background:var(--surface-muted);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;font-size:14px;font-family:inherit}#login-card input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4f46e524}#login-card button{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:10px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}#login-card button:hover{background:var(--accent-hover)}#login-error{color:var(--red);font-size:13px}#login-info{color:var(--muted);font-size:13px;background:var(--surface-2, #f3f4f6);border-radius:8px;padding:8px 10px;line-height:1.4}#sso-block{display:flex;flex-direction:column;gap:8px}.sso-sep{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin:4px 0 2px}.sso-sep:before,.sso-sep:after{content:"";flex:1;height:1px;background:var(--border)}.sso-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:10px;border:1px solid var(--border-strong);border-radius:var(--radius);background:#fff;color:#1f2937;font-size:14px;font-weight:600;text-decoration:none;cursor:pointer}.sso-btn:hover{background:#f3f4f6}.admin-page{overflow:auto}#admin-main{max-width:980px;margin:calc(var(--topbar-h) + 24px) auto 60px;padding:0 20px}#tabs{display:flex;gap:8px;margin-bottom:20px}.tab{background:var(--surface);color:var(--muted);border:1px solid var(--border);border-radius:var(--radius);padding:8px 16px;cursor:pointer;font-size:14px;font-family:inherit}.tab.active{color:var(--accent);border-color:var(--accent);background:var(--accent-soft);font-weight:600}.tab-body h2{font-size:16px;margin:18px 0 8px}.tab-body h3{font-size:14px;margin:16px 0 6px;color:var(--muted)}.hint{color:var(--muted);font-size:13px;margin:4px 0 10px}.hint a{color:var(--accent)}.form-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:10px 0}.form-row label{color:var(--muted);font-size:13px}.form-row input,.form-row select{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:7px 10px;font-size:13px;min-width:120px}.form-row input.narrow{min-width:70px;width:70px}.form-row input:focus,.form-row select:focus{outline:none;border-color:var(--accent)}.form-row button,#btn-template{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:7px 14px;font-size:13px;cursor:pointer;text-decoration:none}.form-row button:hover,#btn-template:hover{border-color:var(--accent)}.form-row button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.form-row button.primary:disabled{opacity:.4;cursor:not-allowed}#server-list{list-style:none;margin:8px 0}#server-list li{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border)}#server-list code{color:var(--text);font-family:var(--font-mono);font-size:12px}#server-list button{background:none;border:none;color:var(--red);cursor:pointer;font-size:13px}.result{background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin:10px 0;font-size:12px;white-space:pre-wrap;font-family:var(--font-mono)}#dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:36px;text-align:center;color:var(--muted);margin:14px 0;transition:border-color .15s}#dropzone.over{border-color:var(--accent);color:var(--text)}#dropzone button{background:none;border:none;color:var(--accent);cursor:pointer;font-size:14px;text-decoration:underline}.table-scroll{max-height:300px;overflow:auto;margin:8px 0}#admin-main table{border-collapse:collapse;width:100%;font-size:13px}#admin-main th,#admin-main td{border:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:middle;box-sizing:border-box}#admin-main th{background:var(--surface-muted);position:sticky;top:0;z-index:1}#admin-main td{background:var(--surface)}#users-table{border-collapse:separate;border-spacing:0;width:100%}#users-table th,#users-table td{border:1px solid var(--border);padding:6px 8px;text-align:left;vertical-align:middle;box-sizing:border-box}#users-table th+th,#users-table td+td{border-left-width:0}#users-table tbody tr+tr td{border-top-width:0}#users-table thead+tbody tr:first-child td{border-top-width:0}#users-table .user-name-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.user-del{background:none;border:none;color:var(--red);cursor:pointer;padding:0 2px;font-size:14px;line-height:1;user-select:none;flex-shrink:0}.user-del:hover{opacity:.85}.user-del.user-del-confirm{background:var(--red);color:#fff;border-radius:99px;padding:2px 10px;font-size:11px;font-weight:600;line-height:1.35;opacity:1;letter-spacing:.01em}.user-del.user-del-confirm:hover{opacity:.92;filter:brightness(1.05)}.role-sel{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:3px 6px}.pmi-acl-btn{background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:3px 8px;font-size:12px;cursor:pointer;color:var(--text)}.pmi-acl-btn:hover{border-color:var(--accent);color:var(--accent)}.pmi-acl-btn.pmi-acl-empty{color:var(--muted, #6b7280);border-style:dashed}.pmi-acl-modal{position:fixed;inset:0;z-index:400;background:#0a0f1e73;display:flex;align-items:center;justify-content:center;padding:16px}.pmi-acl-modal.hidden{display:none}.pmi-acl-card{background:var(--surface, #fff);border:1px solid var(--border);border-radius:10px;width:min(560px,100%);max-height:min(85vh,720px);display:flex;flex-direction:column;box-shadow:0 12px 40px #0000002e;padding:14px 16px 12px;gap:8px}.pmi-acl-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.pmi-acl-head h3{margin:0;font-size:16px}.pmi-acl-x{background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--muted, #6b7280);padding:0 4px}#pmi-acl-search{width:100%;box-sizing:border-box;padding:7px 10px;border:1px solid var(--border);border-radius:6px;font:inherit}.pmi-acl-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.pmi-acl-toolbar button{font-size:12px;padding:3px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg, #ebf0f7);cursor:pointer}.pmi-acl-list{overflow:auto;flex:1;min-height:220px;border:1px solid var(--border);border-radius:6px;padding:2px 0}.pmi-acl-group+.pmi-acl-group{border-top:1px solid var(--border)}.pmi-acl-row{display:flex;align-items:center;gap:6px;padding:5px 8px;font-size:13px}.pmi-acl-row:hover{background:#4f46e50f}.pmi-acl-toggle{background:none;border:none;cursor:pointer;width:22px;padding:0;color:var(--muted, #6b7280);font-size:12px;line-height:1;flex-shrink:0}.pmi-acl-pmi-check{display:flex;align-items:center;gap:8px;flex:1;cursor:pointer;min-width:0}.pmi-acl-grupo{flex:1;font-family:var(--mono, ui-monospace, monospace);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pmi-acl-cams{padding:0 8px 6px 30px;display:flex;flex-direction:column;gap:2px}.pmi-acl-cams.hidden{display:none}.pmi-acl-cam{display:flex;align-items:center;gap:8px;padding:3px 4px;cursor:pointer;font-size:12px;border-radius:4px}.pmi-acl-cam:hover{background:#4f46e50d}.pmi-acl-cam-name{font-family:var(--mono, ui-monospace, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pmi-acl-foot{margin-top:4px;justify-content:flex-end}#chat-fab{position:fixed;bottom:60px;left:22px;z-index:150;width:52px;height:52px;border-radius:14px;background:linear-gradient(160deg,#122033,#0a0f1e 70%);color:#5eead4;border:1px solid rgba(94,234,212,.35);font-size:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 10px 28px #0a0f1e73;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}#chat-fab:hover{transform:translateY(-1px);border-color:#5eead4b3;box-shadow:0 14px 32px #0a0f1e8c}#chat-fab svg{display:block}#chat-drawer{position:fixed;bottom:124px;left:22px;z-index:150;width:420px;max-width:calc(100vw - 44px);height:580px;max-height:calc(100vh - 160px);background:linear-gradient(180deg,#0f172a,#0a0f1e);color:#e2e8f0;border:1px solid rgba(148,163,184,.22);border-radius:14px;display:flex;flex-direction:column;box-shadow:0 18px 48px #0206178c;overflow:hidden}#chat-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(148,163,184,.16);background:#0f172ae6}.chat-header-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.chat-header-title{font-weight:600;font-size:13px;letter-spacing:.01em;color:#f8fafc}.chat-header-sub{font-size:11px;color:#94a3b8}.chat-header-actions{display:flex;gap:2px}#chat-header button{background:none;border:none;color:#94a3b8;font-size:15px;cursor:pointer;padding:4px 7px;border-radius:6px}#chat-header button:hover{color:#f8fafc;background:#94a3b81f}#chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:radial-gradient(ellipse at top left,rgba(45,212,191,.06),transparent 42%),transparent}.chat-msg{max-width:92%;padding:9px 12px;border-radius:10px;font-size:13px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.chat-msg.user{align-self:flex-end;background:#134e4a;color:#ecfdf5;border:1px solid rgba(45,212,191,.35)}.chat-msg.bot{align-self:flex-start;background:#1e293beb;border:1px solid rgba(148,163,184,.18);color:#e2e8f0}.chat-msg.chat-welcome{color:#cbd5e1}.chat-msg.error{border-color:#f87171;color:#fecaca}.chat-msg.typing{color:#94a3b8;font-style:italic}#chat-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 8px}.chat-chip{border:1px solid rgba(94,234,212,.28);background:#0f172ab3;color:#99f6e4;border-radius:999px;padding:4px 10px;font-size:11px;cursor:pointer;font-family:inherit}.chat-chip:hover{background:#2dd4bf1f;border-color:#5eead48c}#chat-form{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid rgba(148,163,184,.16);background:#02061773}#chat-input{flex:1;resize:none;background:#111827;color:#e2e8f0;border:1px solid rgba(148,163,184,.28);border-radius:10px;padding:9px 11px;font-size:13px;font-family:inherit;min-height:38px}#chat-input::placeholder{color:#64748b}#chat-input:focus{outline:none;border-color:#2dd4bf;box-shadow:0 0 0 2px #2dd4bf2e}#chat-send{background:#0f766e;color:#ecfdf5;border:1px solid #14b8a6;border-radius:10px;padding:0 14px;font-size:15px;cursor:pointer}#chat-send:hover{background:#0d9488}#chat-send:disabled{opacity:.4}.chat-card-wrap{align-self:stretch;max-width:100%}.chat-card{background:#0f172af2;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:11px 12px 10px;box-shadow:inset 0 1px #ffffff08}.chat-card-head{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.chat-card-head h4{margin:0;font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#94a3b8}.chat-card-sub{font-size:11px;color:#64748b}.chat-kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:10px}.chat-kpi{background:#0206178c;border:1px solid rgba(148,163,184,.14);border-radius:8px;padding:7px 6px;text-align:center}.chat-kpi strong{display:block;font-size:16px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums;color:#f8fafc}.chat-kpi span{display:block;margin-top:3px;font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.chat-kpi.tone-ok strong{color:#34d399}.chat-kpi.tone-warn strong{color:#fbbf24}.chat-kpi.tone-bad strong{color:#f87171}.chat-kpi.tone-neutral strong{color:#67e8f9}.chat-bars{display:flex;flex-direction:column;gap:7px;margin-bottom:8px}.chat-bar-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.6fr) auto;gap:6px;align-items:center}.chat-bar-label{font-size:11px;color:#cbd5e1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-bar-track{height:7px;border-radius:99px;background:#334155e6;overflow:hidden}.chat-bar-fill{height:100%;border-radius:inherit;background:#22d3ee;min-width:2px}.chat-bar-fill.tone-ok{background:#34d399}.chat-bar-fill.tone-warn{background:#fbbf24}.chat-bar-fill.tone-bad{background:#f87171}.chat-bar-fill.tone-neutral{background:#22d3ee}.chat-bar-detail{font-size:10px;color:#94a3b8;font-variant-numeric:tabular-nums;white-space:nowrap}.chat-table{width:100%;border-collapse:collapse;font-size:11px;margin-bottom:6px}.chat-table th,.chat-table td{padding:5px 4px;text-align:left;border-bottom:1px solid rgba(51,65,85,.8)}.chat-table th{color:#64748b;font-weight:600;font-size:10px;text-transform:uppercase;letter-spacing:.03em}.chat-table td{color:#e2e8f0;font-variant-numeric:tabular-nums}.chat-card-foot{margin:6px 0 0;font-size:10px;line-height:1.35;color:#64748b}@media(max-width:480px){.chat-kpi-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.chat-bar-row{grid-template-columns:1fr}.chat-bar-detail{justify-self:end}}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px 20px 16px;margin-bottom:18px;box-shadow:0 1px 2px #0f172a0d}.card>h2:first-child,.card>h3:first-child{margin-top:0}.tab-body h2{font-weight:700;letter-spacing:-.01em}.fp-mjpeg{width:100%;height:100%;display:block;object-fit:contain;position:absolute;inset:0}.fp-cameras{display:flex;flex-direction:column;gap:0;box-sizing:border-box;width:var(--fp-picker-w);position:absolute;top:0;right:0;bottom:0;overflow:visible;background:var(--surface-muted);border-left:1px solid var(--border);z-index:2}.fp-cameras.hidden{display:none}.fp-cams-head{display:flex;align-items:center;justify-content:center;flex-shrink:0;min-height:22px;border-bottom:1px solid var(--border);background:var(--surface)}.fp-cams-chevron{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:0;padding:0;flex-shrink:0;cursor:pointer;color:var(--text);opacity:.82;box-sizing:border-box;transform:rotate(-90deg);transition:transform .15s ease,opacity .15s ease}.fp-cams-chevron:hover,.fp-cams-chevron:focus-visible{opacity:1;outline:none}.fp-cams-chevron svg{display:block;width:12px;height:12px;overflow:visible;pointer-events:none}.float-panel.fp-cams-expanded .fp-cams-chevron{transform:rotate(90deg)}.fp-cams-list{display:flex;flex-direction:column;gap:var(--fp-cams-gap, 4px);padding:5px 6px;box-sizing:border-box;flex:1 1 auto;min-height:0;overflow:hidden}.cam-chip{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:var(--fp-chip-pad-y, 4px) 5px;font-size:var(--fp-font);font-weight:600;color:var(--text);cursor:pointer;font-family:inherit;white-space:nowrap;line-height:1.2;width:100%;max-width:100%;min-width:0;box-sizing:border-box;transition:border-color .12s,background .12s;overflow:visible;flex-shrink:0}.float-panel.fp-cams-expanded .cam-chip{flex-direction:row;justify-content:flex-start;white-space:nowrap}.cam-chip:hover{border-color:var(--accent-hover)}.cam-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.cam-chip-ico{display:block;width:var(--fp-chip-ico, 14px);height:var(--fp-chip-ico, 14px);flex-shrink:0;overflow:visible;pointer-events:none}.cam-chip-label{min-width:0;flex:1 1 auto;text-align:left;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:9px;letter-spacing:-.01em}.fp-cameras.fp-cams-collapsed .cam-chip-label{display:none}.chip-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0;box-sizing:border-box;position:absolute;top:2px;left:2px;z-index:1;pointer-events:none}.chip-dot.green{background:#22c55e}.chip-dot.red{background:#ef4444}.chip-dot.amber{background:#f59e0b}.chip-dot.gray{background:#9ca3af}#stats,#vehicles{display:flex;align-items:center;gap:8px;flex-shrink:0;font-size:12px;color:var(--caption);background:none;border:1px solid transparent;border-radius:var(--radius);padding:4px 8px;font-family:inherit}#stats{cursor:pointer}#stats:hover{border-color:#ffffff2e}#vehicles{cursor:default;user-select:none}#vehicles:not(.hidden){border-color:#2563eb59;background:#2563eb14}#cam-uptime{padding:12px 14px 4px;border-bottom:1px solid var(--border)}#uptime-head{display:flex;justify-content:space-between;align-items:baseline}#uptime-pct{font-weight:700;font-size:14px}#uptime-bar{display:flex;gap:0;height:26px;margin:8px 0 4px;border-radius:4px;overflow:hidden}#uptime-bar .ub{flex:1 1 auto;min-width:0;border-radius:0}#uptime-sub{font-size:11px;color:var(--muted)}#cam-recording{display:block;padding:4px 14px 1px;border-bottom:1px solid var(--border);color:inherit;text-decoration:none;cursor:pointer}#cam-recording:hover{background:#4f46e50a}#cam-recording.hidden{display:none}#rec-head{display:flex;justify-content:space-between;align-items:baseline;font-size:10px;line-height:1.1}#rec-pct{font-weight:700;font-size:10px}#rec-bar{display:flex;gap:0;height:9px;margin:2px 0 1px;border-radius:2px;overflow:hidden}#rec-bar .ub{flex:1 1 auto;min-width:0;border-radius:0}#rec-sub{font-size:8px;color:var(--muted);padding-bottom:1px;line-height:1}#intercom-box{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border)}#intercom-box .primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:7px 12px;font-weight:600;cursor:pointer;font-size:13px}#intercom-box .primary:hover{background:var(--accent-hover, #6366f1)}#btn-intercom-hangup{background:var(--red-bg);color:var(--red);border:1px solid var(--red-border);border-radius:var(--radius);padding:7px 12px;font-weight:600;cursor:pointer;font-size:13px}#intercom-msg{font-size:12px;color:var(--muted);flex:1 1 100%}#intercom-pill{cursor:default}#stats-modal{position:fixed;inset:0;z-index:300;background:#0f172a73;display:flex;align-items:flex-start;justify-content:center;padding:60px 16px}#stats-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:640px;max-width:100%;max-height:calc(100vh - 120px);overflow-y:auto;box-shadow:0 16px 40px #0f172a40}#stats-modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);font-weight:700;font-size:15px;position:sticky;top:0;background:var(--surface)}#stats-modal-head button{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted)}#stats-body{padding:16px 18px}#stats-body h3{font-size:13px;color:var(--muted);margin:18px 0 8px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-align:center}.stat-big{background:var(--surface-muted);border:1px solid var(--border);border-radius:10px;padding:16px 6px}.stat-num{font-size:26px;font-weight:700;letter-spacing:-.02em}.stat-labels{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;text-align:center;font-size:11px;color:var(--muted);margin-top:6px}#users-pending{border:1px solid var(--amber);background:#f59e0b14;border-radius:10px;padding:10px 12px;margin-bottom:12px}#users-pending h3{margin:0 0 8px;font-size:14px}.pending-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 0;border-top:1px solid var(--border)}.pending-row:first-of-type{border-top:none}.pending-row .pu-mail{font-weight:600}.pending-row .pu-src{color:var(--muted);font-size:12px}.pending-row select{margin-left:auto}.ustatus{font-size:11px;font-weight:700;padding:2px 7px;border-radius:99px}.ustatus.active{background:#22c55e26;color:#16a34a}.ustatus.rejected{background:#dc262624;color:var(--red)}.user-act{cursor:pointer}.stat-table{border-collapse:collapse;width:100%;font-size:12px}.stat-table th,.stat-table td{border:1px solid var(--border);padding:5px 8px;text-align:left}.stat-table th{background:var(--surface-muted);position:sticky;top:0}.stat-table code{font-family:var(--font-mono)}#stats-body .muted{color:var(--muted);font-size:12px}code.audit-detail{display:inline-block;max-width:420px;white-space:pre-wrap;word-break:break-word;font-size:11px;color:var(--muted)}#stats-range{margin-bottom:14px}.range-btns{display:flex;gap:6px}.range-btns button{background:var(--surface-muted);color:var(--muted);border:1px solid var(--border);border-radius:var(--radius);padding:6px 14px;font-size:13px;cursor:pointer;font-family:inherit}.range-btns button:hover{border-color:var(--accent-hover)}.range-btns button.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}#range-custom{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:13px;color:var(--muted)}#range-custom input[type=date]{background:var(--surface-muted);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:5px 8px;font-family:inherit;font-size:13px}#range-custom button.primary{background:var(--accent);color:#fff;border:none;border-radius:var(--radius);padding:6px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}#range-custom button.primary:hover{background:var(--accent-hover)}#alarm-bell{position:relative;background:none;border:none;cursor:pointer;line-height:1;padding:4px 6px;color:#fff;display:inline-flex;align-items:center;justify-content:center}#alarm-bell:hover{opacity:.75}#alarm-badge{position:absolute;top:-2px;right:-4px;background:#dc2626;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:99px;padding:0 4px;display:flex;align-items:center;justify-content:center}#alarm-badge.pulse{animation:pulse 1.2s infinite}#det-bell{position:relative;background:none;border:none;cursor:pointer;line-height:1;padding:4px 6px;color:#fff;display:inline-flex;align-items:center;justify-content:center}#det-bell:hover{opacity:.75}#det-badge{position:absolute;top:-2px;right:-4px;background:#2563eb;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:99px;padding:0 4px;display:flex;align-items:center;justify-content:center}#dl-bell{position:relative;background:none;border:none;cursor:pointer;line-height:1;padding:4px 6px;color:#fff;display:inline-flex;align-items:center;justify-content:center}#dl-bell:hover{opacity:.75}#dl-badge{position:absolute;top:-2px;right:-4px;background:#059669;color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:99px;padding:0 4px;display:flex;align-items:center;justify-content:center}#dl-drawer{position:fixed;top:var(--topbar-h);right:0;bottom:0;z-index:249;width:400px;max-width:100%;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:-8px 0 24px #0f172a1f}#dl-drawer.hidden{display:none!important}#dl-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);font-weight:700;gap:8px}#dl-head>div{display:flex;gap:6px;align-items:center}#dl-head button{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted)}#dl-head button:hover{color:var(--text)}#dl-hint{margin:0;padding:10px 14px;font-size:12px;line-height:1.35;border-bottom:1px solid var(--border)}#dl-popout{font-size:15px;line-height:1;padding:2px 4px}#dl-popped-hint{margin:0;padding:8px 14px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}#dl-popped-hint .linkish{background:none;border:none;color:var(--accent, #2563eb);font:inherit;font-size:12px;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}#dl-search-wrap{position:relative;display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface)}#dl-search{width:100%;background:var(--surface-muted, #111827);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 28px 7px 10px;font:inherit;font-size:13px;min-width:0}#dl-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #4f46e524}#dl-search::placeholder{color:var(--muted, #94a3b8)}#dl-search::-webkit-search-cancel-button,#dl-search::-webkit-search-decoration{-webkit-appearance:none;appearance:none}#dl-search-clear{position:absolute;right:18px;background:none;border:none;color:var(--muted, #94a3b8);cursor:pointer;font-size:14px;line-height:1;padding:2px 6px;border-radius:4px}#dl-search-clear:hover{color:var(--text);background:#0f172a0f}.dl-item-cam{font-size:12px;font-weight:600;margin-top:2px;line-height:1.3}body.downloads-page{background:var(--bg);min-height:100vh;font-family:var(--font-sans);color:var(--text)}body.downloads-page #dl-drawer{position:fixed;inset:0;width:100%;max-width:none;border:none;box-shadow:none;z-index:1}body.downloads-page #dl-head{background:var(--shell);color:#fff;padding:12px 14px}body.downloads-page #dl-head button{color:#ffffffd9}body.downloads-page #dl-head button:hover{color:#fff}body.downloads-page #dl-page-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:99px;background:#059669;color:#fff;font-size:11px;font-weight:700;vertical-align:middle}body.downloads-page #dl-hint{background:var(--surface)}#dl-list{flex:1;overflow:auto;padding:10px 12px;display:flex;flex-direction:column;gap:10px}.dl-empty{margin:12px 4px;font-size:13px}.dl-item{border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;background:var(--surface-muted, #f8fafc)}.dl-item.dl-ready{border-color:#86efac}.dl-item.dl-error{border-color:#fca5a5}.dl-item-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;font-size:13px}.dl-status{font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap}.dl-item.dl-exporting .dl-status,.dl-item.dl-queued .dl-status{color:#b45309}.dl-item.dl-ready .dl-status{color:#047857}.dl-item.dl-error .dl-status{color:#b91c1c}.dl-item-meta{font-size:11px;margin-top:4px;line-height:1.35}.dl-item-user{font-size:11px;margin-top:2px;line-height:1.35;word-break:break-all}.dl-item-err{font-size:11px;color:#b91c1c;margin-top:6px}.dl-progress{height:4px;background:#0f172a14;border-radius:99px;margin-top:8px;overflow:hidden}.dl-progress>div{height:100%;background:#059669;width:10%;transition:width .4s ease}.dl-item-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.dl-btn{font:inherit;font-size:12px;padding:4px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}.dl-btn:hover{background:#0f172a0a}.dl-btn.primary{background:#059669;border-color:#059669;color:#fff}.dl-btn.primary:hover{background:#047857}.dl-btn.danger{color:#b91c1c}body[data-right-rail=alarm] #det-drawer,body[data-right-rail=alarm] #dl-drawer,body[data-right-rail=det] #alarm-drawer,body[data-right-rail=det] #dl-drawer,body[data-right-rail=dl] #alarm-drawer,body[data-right-rail=dl] #det-drawer{display:none!important}.fp-dl-wrap{display:inline-flex;align-items:center;gap:4px;margin-left:4px}.fp-dl-dur{font:inherit;font-size:11px;padding:2px 4px;border-radius:4px;border:1px solid rgba(255,255,255,.25);background:#00000040;color:#fff;max-width:72px}.fp-dl-btn{font:inherit;font-size:11px;padding:3px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.28);background:#059669d9;color:#fff;cursor:pointer}.fp-dl-btn:hover{background:#047857f2}.fp-dl-btn:disabled{opacity:.5;cursor:wait}.fp-dl-range-toggle{flex:0 0 auto;display:inline;margin:0 -2px 0 auto;padding:0;border:0;border-radius:0;background:none;box-shadow:none;appearance:none;-webkit-appearance:none;color:inherit;font:inherit;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;text-align:right;cursor:pointer;user-select:none;width:auto;height:auto;min-width:0;min-height:0}.fp-dl-range-toggle:hover,.fp-dl-range-toggle:focus-visible{color:var(--text);background:none;outline:none}.fp-dl-range-toggle.active{color:#059669;background:none;font-weight:var(--font-weight-strong, 600)}.fp-dl-range-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:6px 8px;margin-top:6px;padding:6px 0 2px;border-top:1px dashed var(--border);font-size:11px;color:var(--muted)}.fp-dl-range-form.hidden{display:none}.fp-dl-range-field{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 140px}.fp-dl-range-field>span{font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--muted)}.fp-dl-range-field input[type=datetime-local]{width:100%;min-width:0;box-sizing:border-box;font:inherit;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:3px 5px}.fp-dl-range-actions{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto}.fp-dl-range-go{font:inherit;font-size:11px;padding:4px 8px;border-radius:4px;border:1px solid #059669;background:#059669;color:#fff;cursor:pointer}.fp-dl-range-go:hover{background:#047857}.fp-dl-range-go:disabled{opacity:.55;cursor:wait}.fp-dl-range-cancel{font:inherit;font-size:12px;line-height:1;padding:4px 6px;border:0;background:transparent;color:var(--muted);cursor:pointer}.fp-dl-range-cancel:hover{color:var(--text)}.fp-dl-range-msg{flex:1 1 100%;margin:0;font-size:10px;line-height:1.3}.fp-dl-range-msg.fp-dl-range-err{color:#b91c1c}.vw-rec .fp-dl-range-form{border-top-color:#1e293b;color:#94a3b8}.vw-rec .fp-dl-range-field>span{color:#94a3b8}.vw-rec .fp-dl-range-field input[type=datetime-local]{background:#0f172a;border-color:#334155;color:#e2e8f0;color-scheme:dark}.vw-rec .fp-dl-range-cancel{color:#94a3b8}.vw-rec .fp-dl-range-cancel:hover{color:#e2e8f0}#det-drawer{position:fixed;top:var(--topbar-h);right:0;bottom:0;z-index:249;width:400px;max-width:100%;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:-8px 0 24px #0f172a1f}#det-drawer.hidden{display:none!important}#alarm-drawer:not(.hidden)~#det-drawer:not(.hidden){display:none!important}#det-drawer:not(.hidden)~#alarm-drawer:not(.hidden){display:none!important}body[data-right-rail=alarm] #det-drawer,body[data-right-rail=det] #alarm-drawer{display:none!important}#det-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);font-weight:700;gap:8px}#det-head>div{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}#det-head select{background:var(--surface-muted);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:4px 6px;font-size:11px;font-family:inherit;max-width:108px}#det-head button{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted)}#det-head button:hover{color:var(--text)}#det-search-wrap{position:relative;display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface)}#det-search{width:100%;background:var(--surface-muted, #111827);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 28px 7px 10px;font:inherit;font-size:13px;min-width:0}#det-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #4f46e524}#det-search::placeholder{color:var(--muted, #94a3b8)}#det-search::-webkit-search-cancel-button,#det-search::-webkit-search-decoration{-webkit-appearance:none;appearance:none}#det-search-clear{position:absolute;right:18px;background:none;border:none;color:var(--muted, #94a3b8);cursor:pointer;font-size:14px;line-height:1;padding:2px 6px;border-radius:4px}#det-search-clear:hover{color:var(--text)}#det-search-clear.hidden{display:none}#det-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}#det-list .muted{color:var(--muted);font-size:13px}.det-card{border:1px solid var(--border);border-radius:8px;padding:10px;background:var(--surface-muted)}.det-card.pri-high{border-left:3px solid #dc2626}.det-card.pri-med{border-left:3px solid #f59e0b}.det-card.pri-low{border-left:3px solid #94a3b8}.det-top{display:flex;gap:8px;align-items:baseline}.det-pri{font-size:10px;font-weight:700;text-transform:uppercase;padding:1px 6px;border-radius:4px;background:#e2e8f0;color:#0f172a}.det-card.pri-high .det-pri{background:#fee2e2;color:#991b1b}.det-card.pri-med .det-pri{background:#fef3c7;color:#92400e}.det-title{font-weight:600;font-size:13px}.det-meta{font-size:11px;color:var(--muted);margin-top:2px}.det-actions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}.det-actions button,.det-actions .det-link{font-size:12px;padding:4px 8px;border-radius:4px;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-decoration:none}.det-actions button:hover,.det-actions .det-link:hover{border-color:var(--text)}#det-popout{font-size:15px;line-height:1;padding:2px 4px}#det-popped-hint{margin:0;padding:8px 14px;font-size:12px;color:var(--muted);background:var(--accent-soft);border-bottom:1px solid var(--border)}#det-popped-hint .linkish{background:none;border:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}body.detections-page{background:var(--bg);min-height:100vh;font-family:var(--font-sans);color:var(--text)}body.detections-page #det-drawer{position:fixed;inset:0;width:100%;max-width:none;border:none;box-shadow:none;z-index:1}body.detections-page #det-head{background:var(--shell);color:#fff;padding:12px 14px}body.detections-page #det-head select{background:#ffffff1a;color:#fff;border-color:#fff3}body.detections-page #det-head select option{color:var(--text);background:var(--surface)}body.detections-page #det-page-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:99px;background:#2563eb;color:#fff;font-size:11px;font-weight:700;vertical-align:middle}#alarm-drawer{position:fixed;top:var(--topbar-h);right:0;bottom:0;z-index:250;width:400px;max-width:100%;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;box-shadow:-8px 0 24px #0f172a1f}#alarm-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);font-weight:700}#alarm-head>div{display:flex;gap:8px;align-items:center}#alarm-head select{background:var(--surface-muted);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:12px;font-family:inherit}#alarm-head button{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted)}#alarm-head button:hover{color:var(--text)}#alarm-head #alarm-sound-toggle{display:inline-flex;align-items:center;justify-content:center;line-height:1;padding:2px 4px;color:#0f172a;opacity:.9}#alarm-head #alarm-sound-toggle .alarm-sound-ico{display:block;width:16px;height:16px;stroke:currentColor;fill:none}#alarm-head #alarm-sound-toggle.muted-sound{opacity:.45}#alarm-head #alarm-sound-toggle:hover{color:#020617}#alarm-popout{font-size:15px;line-height:1;padding:2px 4px}body.notifications-page #alarm-head #alarm-sound-toggle{color:#e2e8f0}body.notifications-page #alarm-head #alarm-sound-toggle:hover{color:#fff}#alarm-popped-hint{margin:0;padding:8px 14px;font-size:12px;color:var(--muted);background:var(--accent-soft);border-bottom:1px solid var(--border)}#alarm-popped-hint .linkish{background:none;border:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0;text-decoration:underline}#alarm-search-wrap{position:relative;display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border);flex-shrink:0;background:var(--surface)}#alarm-search{width:100%;background:var(--surface-muted, #111827);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 28px 7px 10px;font:inherit;font-size:13px;min-width:0}#alarm-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #4f46e524}#alarm-search::placeholder{color:var(--muted, #94a3b8)}#alarm-search::-webkit-search-cancel-button,#alarm-search::-webkit-search-decoration{-webkit-appearance:none;appearance:none}#alarm-search-clear{position:absolute;right:18px;background:none;border:none;color:var(--muted, #94a3b8);cursor:pointer;font-size:14px;line-height:1;padding:2px 6px;border-radius:4px}#alarm-search-clear:hover{color:var(--text)}#alarm-search-clear.hidden{display:none}body.notifications-page #alarm-search-wrap{background:var(--surface)}#alarm-list{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}#alarm-list .muted{color:var(--muted);font-size:13px}body.notifications-page{background:var(--bg);min-height:100vh;font-family:var(--font-sans);color:var(--text)}body.notifications-page #alarm-drawer{position:fixed;inset:0;width:100%;max-width:none;border:none;box-shadow:none;z-index:1}body.notifications-page #alarm-head{background:var(--shell);color:#fff;padding:12px 14px}body.notifications-page #alarm-head select{background:#ffffff1a;color:#fff;border-color:#fff3}body.notifications-page #alarm-head select option{color:var(--text);background:var(--surface)}body.notifications-page #notif-map-link{color:#c7d2fe;font-size:13px;font-weight:600;text-decoration:none;padding:4px 8px;border-radius:var(--radius)}body.notifications-page #notif-map-link:hover{background:#ffffff1a;color:#fff}body.notifications-page #notif-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:99px;background:#dc2626;color:#fff;font-size:11px;font-weight:700;vertical-align:middle}.alarm-card{border:1px solid var(--border);border-left:4px solid var(--red);border-radius:10px;padding:10px 12px;background:var(--surface)}.alarm-card.ack{border-left-color:var(--amber)}.alarm-card.resolved{border-left-color:var(--border-strong);opacity:.75}.alarm-card.flash{animation:alarm-flash 1.8s ease-out}@keyframes alarm-flash{0%{box-shadow:0 0 0 2px var(--red),0 0 12px var(--red);background:var(--red-bg)}to{box-shadow:none;background:var(--surface)}}.al-ticket{display:inline-block;margin-top:6px;font-size:12px;font-weight:600;color:var(--accent, #2563eb);text-decoration:none}.al-ticket:hover{text-decoration:underline}.al-ticket.err{color:var(--amber);font-weight:500;cursor:help}.al-top{display:flex;align-items:center;gap:8px}.al-title{font-weight:600;font-size:13px}.al-badge{font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px}.al-badge.active{background:var(--red-bg);color:var(--red)}.al-badge.ack{background:var(--amber-bg);color:var(--amber)}.al-badge.resolved{background:var(--surface-muted);color:var(--muted)}.al-meta{font-size:11px;color:var(--muted);margin:4px 0 8px}.al-actions{display:flex;flex-wrap:wrap;gap:3px;width:100%;align-items:stretch}.al-actions button{flex:1 1 auto;min-width:max-content;box-sizing:border-box;background:var(--surface-muted);border:1px solid var(--border);border-radius:var(--radius);padding:3px 5px;font-size:11px;line-height:1.25;white-space:nowrap;text-align:center;cursor:pointer;font-family:inherit;color:var(--text)}.al-actions button:hover{border-color:var(--accent-hover)}.al-actions button.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.al-actions button:disabled{opacity:.55;cursor:not-allowed}.al-log{margin-top:8px;border-top:1px dashed var(--border);padding-top:6px}.al-log-toggle{display:flex;align-items:center;gap:6px;width:100%;margin:0;padding:2px 0;border:0;background:transparent;cursor:pointer;font:inherit;font-size:12px;font-weight:600;color:var(--muted);text-align:left}.al-log-toggle:hover,.al-log-toggle:focus-visible{color:var(--text)}.al-log-chevron{display:block;flex-shrink:0;transition:transform .15s ease}.al-log:not(.al-log-collapsed) .al-log-chevron{transform:rotate(180deg)}.al-log-label{flex:1;min-width:0}.al-log-body{margin-top:4px}.al-log.al-log-collapsed .al-log-body{display:none}.al-act{font-size:11px;color:var(--muted);line-height:1.5}.al-act b{color:var(--text);font-weight:600}body.role-visor .admin-only{display:none!important}#impersonate-banner{display:flex;align-items:center;justify-content:center;gap:12px;flex:0 0 auto;padding:6px 14px;background:#92400e;color:#fffbeb;font-size:13px;font-weight:500;border-bottom:1px solid rgba(0,0,0,.15);z-index:99}#impersonate-banner strong{font-weight:700;color:#fff}#impersonate-banner .imp-stop{border:1px solid rgba(255,255,255,.45);background:#ffffff1f;color:#fff;border-radius:6px;padding:3px 12px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}#impersonate-banner .imp-stop:hover{background:#ffffff38}#impersonate-banner .imp-stop:disabled{opacity:.55;cursor:wait}.user-name{font-weight:600}.user-imp,.user-pw{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border-radius:6px;border:1px solid var(--border);background:var(--surface-muted);color:var(--muted);cursor:pointer;flex-shrink:0}.user-imp svg,.user-pw svg{display:block}.user-imp:hover,.user-pw:hover{border-color:var(--accent);color:var(--accent);background:#3b82f614}#admin-pw-modal{position:fixed;inset:0;z-index:400;background:#0f172a73;display:flex;align-items:flex-start;justify-content:center;padding:80px 16px}#admin-pw-modal.hidden{display:none!important}#admin-pw-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:360px;max-width:100%;box-shadow:0 16px 40px #0f172a40}#admin-pw-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border);font-weight:700;font-size:15px}#admin-pw-head button{background:none;border:none;font-size:16px;cursor:pointer;color:var(--muted)}#admin-pw-form{display:flex;flex-direction:column;gap:8px;padding:16px 18px 18px}#admin-pw-form label{font-size:12px;color:var(--muted);text-align:left}#admin-pw-form input{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}#admin-pw-user{margin:0 0 4px}body.panel-open #alarm-drawer{right:0}#sel-bar{display:flex;align-items:center;gap:4px;padding:2px 4px;border-radius:8px;background:#4f46e52e;border:1px solid rgba(129,140,248,.35);flex-shrink:0}#sel-bar.hidden{display:none}#sel-count{font-size:11px;font-weight:700;color:#e2e8f0;min-width:1.2em;text-align:center}#sel-videowall,#sel-clear{border:0;border-radius:5px;padding:3px 7px;font:inherit;font-size:11px;font-weight:700;cursor:pointer;line-height:1.2}#sel-videowall{background:var(--accent);color:#fff}#sel-videowall:hover{background:var(--accent-hover)}#sel-clear{background:transparent;color:#94a3b8;border:1px solid #334155}#sel-clear:hover{color:#e2e8f0}.videowall-page{display:flex;flex-direction:column;height:100%;overflow:hidden;background:#0b1220;color:#e2e8f0}#vw-top{flex-shrink:0;height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;background:var(--shell);border-bottom:1px solid rgba(255,255,255,.08)}#vw-brand{display:flex;align-items:center;gap:8px;font-size:14px}#vw-brand img{width:22px;height:22px}#vw-count.muted,.videowall-page .muted{color:#94a3b8}#vw-actions{display:flex;align-items:center;gap:10px}.vw-opt{display:flex;align-items:center;gap:6px;font-size:12px;color:#cbd5e1;cursor:pointer;user-select:none}#vw-refresh,#vw-fit,#vw-add{background:#ffffff0f;color:#e2e8f0;border:1px solid rgba(255,255,255,.16);border-radius:var(--radius);padding:5px 10px;cursor:pointer;font:inherit;font-size:13px}#vw-refresh:hover,#vw-fit:hover,#vw-add:hover{border-color:var(--accent-hover);color:#fff}#vw-fit[aria-pressed=true],#vw-add[aria-expanded=true]{border-color:var(--accent);background:#4f46e538;color:#fff}.vw-add-wrap{position:relative}#vw-add-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:50;width:min(420px,calc(100vw - 24px));max-height:min(70vh,560px);display:flex;flex-direction:column;background:#0f172a;border:1px solid #334155;border-radius:10px;box-shadow:0 12px 40px #0000008c;overflow:hidden}#vw-add-panel.hidden{display:none}.vw-add-head{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-bottom:1px solid #1f2937;flex-shrink:0}#vw-add-search{width:100%;background:#111827;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:7px 10px;font:inherit;font-size:13px}#vw-add-search:focus{outline:none;border-color:var(--accent)}#vw-add-meta{font-size:11px}#vw-add-list{flex:1;min-height:0;overflow:auto;padding:6px 0}.vw-add-empty{padding:16px;text-align:center;color:#94a3b8;font-size:13px}.vw-add-group{border-bottom:1px solid #1e293b}.vw-add-group:last-child{border-bottom:none}.vw-add-group-head{display:flex;align-items:center;gap:8px;padding:8px 12px 4px;cursor:pointer;user-select:none;font-size:12px;font-weight:600;color:#cbd5e1;background:#0b1220;position:sticky;top:0;z-index:1}.vw-add-pmi-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vw-add-pmi-count{font-weight:500;font-size:11px}.vw-add-cams{list-style:none;margin:0;padding:0 0 6px}.vw-add-cam{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;row-gap:1px;align-items:start;padding:5px 12px 5px 28px;cursor:pointer;font-size:12px}.vw-add-cam:hover{background:#ffffff0a}.vw-add-cam input{grid-row:1 / span 2;margin-top:2px}.vw-add-cam-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#e2e8f0}.vw-add-cam-meta{grid-column:2;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vw-add-foot{flex-shrink:0;display:flex;justify-content:flex-end;padding:8px 12px;border-top:1px solid #1f2937}#vw-add-close{background:transparent;color:#94a3b8;border:1px solid #334155;border-radius:6px;padding:4px 10px;font:inherit;font-size:12px;cursor:pointer}#vw-add-close:hover{color:#e2e8f0;border-color:#64748b}#vw-back{color:#a5b4fc;text-decoration:none;font-size:13px;font-weight:600}#vw-back:hover{color:#c7d2fe}#vw-grid{flex:1;min-height:0;display:grid;gap:6px;padding:8px;overflow:hidden;align-content:stretch;grid-auto-flow:row}#vw-grid.hidden{display:none}#vw-empty{margin:auto;padding:24px;text-align:center;color:#94a3b8;max-width:420px;line-height:1.5}.vw-tile{background:#111827;border:1px solid #1f2937;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}.vw-tile-head{flex-shrink:0;display:flex;flex-direction:column;gap:2px;padding:6px 8px;border-bottom:1px solid #1f2937;background:#0f172a}.vw-tile-head-row{display:flex;align-items:center;gap:6px;min-width:0}.vw-title-wrap{display:flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden}.vw-status-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;animation:pulse 2s infinite}.vw-status-dot.green{background:#22c55e}.vw-status-dot.amber{background:#f59e0b}.vw-status-dot.red{background:#ef4444;animation:none}.vw-tile-title{flex:1;min-width:0;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vw-close{flex-shrink:0;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin:0;border:1px solid #334155;border-radius:6px;background:#ffffff0f;color:#94a3b8;font:inherit;font-size:18px;line-height:1;cursor:pointer}.vw-close:hover{background:#ef444438;border-color:#f87171;color:#fecaca}.vw-tile-meta{font-size:11px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vw-video-wrap{position:relative;flex:1 1 auto;min-height:0;width:100%;background:#000;aspect-ratio:auto}.vw-video-wrap video,.vw-mjpeg{width:100%;height:100%;display:block;object-fit:contain}.videowall-page.vw-fit-cover .vw-video-wrap video,.videowall-page.vw-fit-cover .vw-mjpeg{object-fit:fill}.vw-controls{position:absolute;bottom:4px;right:4px;display:flex;gap:2px;opacity:0;transition:opacity .15s;z-index:2}.vw-video-wrap:hover .vw-controls{opacity:1}.vw-controls button{background:#000000a6;border:none;color:#fff;border-radius:5px;padding:3px 5px;cursor:pointer;font-size:12px;line-height:1;transition:background .1s}.vw-controls button:hover{background:#000000e6}.vw-msg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:12px;text-align:center;font-size:12px;font-weight:500;background:#000000b8;color:#cbd5e1}.vw-msg.type-error{color:#fca5a5}.vw-msg.type-warn{color:#fde68a}.vw-rec{position:relative;flex-shrink:0;padding:3px 6px 4px;background:#0b1220;border-top:1px solid #1e293b}.vw-rec .fp-dl-range-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);margin:0;color:#ffffffb3}.vw-rec .fp-dl-range-toggle:hover,.vw-rec .fp-dl-range-toggle.active{color:#86efac;background:none}.vw-rec-bar.fp-rec-bar{height:6px;margin:0;border-radius:2px;background:#1e293b;padding-right:18px;box-sizing:border-box}.vw-tile.vw-playback .vw-live{border-color:#22c55e;color:#86efac}.vw-tile.vw-playback .vw-controls{display:none}.vw-tile .fp-playback-controls{padding:4px 6px 5px;font-size:10px;background:#0b1220;border-top:1px solid #1e293b}.vw-tile .fp-playback-controls .fp-live{margin-left:auto}.vw-tile-foot{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:6px 8px;border-top:1px solid #1f2937}.vw-tile-foot .ptz-pill.ptz-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;margin:0;border-radius:6px;border:1px solid #334155;background:#ffffff0f;color:#94a3b8;line-height:1}.vw-tile-foot .ptz-pill.ptz-icon:hover:not(:disabled){border-color:#64748b;color:#e2e8f0;background:#ffffff1a}.vw-tile-foot .ptz-pill.ptz-icon.ptz-controlling{background:#04785759;border-color:#34d399;color:#6ee7b7;box-shadow:0 0 0 1px #34d39959,0 0 10px #34d39940}.vw-tile-foot .ptz-pill.ptz-icon.ptz-controlling:hover:not(:disabled){filter:brightness(1.08)}.vw-tile-foot .ptz-pill.ptz-icon.ptz-blocked,.vw-tile-foot .ptz-pill.ptz-icon:disabled{opacity:.4;box-shadow:none}.vw-tile-foot .ptz-pill.ptz-icon .ptz-dpad{display:block}.vw-tile-foot .vw-live,.vw-tile-foot .vw-fs,.vw-tile-foot .vw-retry{display:inline-flex;align-items:center;justify-content:center;background:#ffffff0f;color:#e2e8f0;border:1px solid #334155;border-radius:6px;padding:4px 8px;font:inherit;font-size:12px;line-height:1;cursor:pointer}.vw-tile-foot .vw-live svg,.vw-tile-foot .vw-fs svg,.vw-tile-foot .vw-retry svg,.vw-tile-foot .ptz-pill.ptz-icon svg{display:block;flex-shrink:0}.vw-tile-foot .vw-live:hover,.vw-tile-foot .vw-retry:hover{border-color:#64748b}.vw-play{margin-left:auto;color:#a5b4fc;text-decoration:none;font-size:12px;font-weight:600}.vw-play:hover{color:#c7d2fe}#uptime-tip{position:fixed;z-index:400;pointer-events:none;background:var(--shell);color:#fff;border-radius:6px;padding:6px 9px;font-size:11px;line-height:1.4;box-shadow:0 4px 14px #0f172a4d;white-space:nowrap}#uptime-tip b{font-weight:600}#uptime-tip .muted{color:#94a3b8;font-weight:400}#uptime-bar .ub{cursor:crosshair}#help-link,#admin-link{color:#fff;display:inline-flex;align-items:center;justify-content:center;padding:4px 6px}.chat-time{display:block;margin-top:4px;font-size:9px;opacity:.6;text-align:right}.alarm-video-page{display:flex;flex-direction:column;height:100%;min-height:100vh;overflow:hidden;background:#0b1220;color:#e2e8f0;font-family:var(--font-sans);margin:0}#av-top{flex-shrink:0;height:48px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;background:var(--shell, #0a0f1e);border-bottom:1px solid #1f2937}#av-brand{display:flex;align-items:center;gap:10px;min-width:0}#av-brand img{flex-shrink:0}#av-title{font-size:14px;white-space:nowrap}#av-meta{font-size:12px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#av-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.av-opt{display:flex;align-items:center;gap:6px;font-size:12px;color:#cbd5e1;cursor:pointer;user-select:none}#av-reload{background:transparent;border:1px solid #334155;color:#e2e8f0;border-radius:6px;width:32px;height:28px;cursor:pointer;font-size:14px}#av-reload:hover{border-color:#6366f1}#av-map{color:#c7d2fe;font-size:13px;font-weight:600;text-decoration:none;padding:4px 8px;border-radius:6px}#av-map:hover{background:#ffffff14;color:#fff}#av-grid{flex:1;min-height:0;display:grid;gap:6px;padding:8px;overflow:hidden;align-content:stretch}#av-grid.hidden{display:none}#av-empty{margin:auto;padding:24px;text-align:center;color:#94a3b8;max-width:420px;line-height:1.5}#av-empty.hidden{display:none}.av-tile{background:#111827;border:1px solid #1f2937;border-radius:10px;overflow:hidden;display:flex;flex-direction:column;min-height:0}.av-tile.primary{border-color:#4f46e5}.av-tile-head{flex-shrink:0;display:flex;align-items:center;gap:8px;padding:6px 10px;background:#0f172a;border-bottom:1px solid #1f2937;font-size:12px}.av-cam-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.av-cam-tipo{color:#94a3b8;font-size:11px;flex-shrink:0}.av-explore{margin-left:auto;flex-shrink:0;color:#a5b4fc;font-size:11px;font-weight:600;text-decoration:none}.av-explore:hover{text-decoration:underline}.av-tile-body{flex:1;min-height:0;position:relative;background:#000;display:flex;align-items:center;justify-content:center}.av-tile-body video{width:100%;height:100%;object-fit:contain;background:#000}.av-tile-body video.hidden,.av-status.hidden,.av-fail.hidden{display:none}.av-status{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:13px;padding:12px;text-align:center}.av-fail{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#94a3b8;font-size:13px;padding:12px;text-align:center}.av-fail a{color:#a5b4fc;font-weight:600;text-decoration:none}.av-fail a:hover{text-decoration:underline}.sv-zoom-hud button,.sv-zoom-hud .ptz-pill.ptz-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;box-sizing:border-box;width:32px;min-width:32px;max-width:32px;height:28px;min-height:28px;margin:0;padding:0!important;line-height:1!important;border-radius:6px}.sv-zoom-hud button svg,.sv-zoom-hud .ptz-pill.ptz-icon svg,.sv-zoom-hud .ptz-dpad,.sv-zoom-hud .sv-zoom-mute-ico,.sv-zoom-hud .sv-zoom-ico{display:block!important;width:14px!important;height:14px!important;margin:0!important;flex-shrink:0;pointer-events:none}.sv-zoom-hud .sv-zoom-mute,.sv-zoom-hud .sv-zoom-ptz-z,.sv-zoom-hud button[data-z],.sv-zoom-hud .ptz-pill.ptz-icon{font-size:0!important}.sv-zoom-hud .sv-zoom-ptz-z.hidden{display:none!important}.sv-zoom-hud .sv-zoom-ptz-z.sv-zoom-ptz-z-idle{opacity:.45}.sv-zoom-hud .sv-zoom-ptz-z.sv-zoom-ptz-z-armed{opacity:1;border-color:#34d39973}.sv-zoom-hud .sv-zoom-quality{width:auto!important;min-width:0!important;max-width:none!important;align-items:stretch!important;justify-content:center!important;padding:0!important;overflow:hidden;font-size:11px!important}.sv-zoom-hud .sv-zoom-quality .q-opt{display:inline-flex;align-items:center;justify-content:center;align-self:stretch;height:100%;line-height:1;padding:0 7px;box-sizing:border-box}.driver-popover.svmap-tour-popover{background:#0f172a;color:#e2e8f0;border:1px solid rgba(148,163,184,.35);border-radius:10px;box-shadow:0 12px 40px #0206178c;max-width:360px;font-family:Fira Sans,system-ui,sans-serif}.driver-popover.svmap-tour-popover .driver-popover-title{font-size:15px;font-weight:600;color:#fff}.driver-popover.svmap-tour-popover .driver-popover-description{font-size:13px;line-height:1.45;color:#cbd5e1}.driver-popover.svmap-tour-popover .driver-popover-description b{color:#f8fafc;font-weight:600}.driver-popover.svmap-tour-popover .driver-popover-progress-text{color:#94a3b8;font-size:12px}.driver-popover.svmap-tour-popover .driver-popover-prev-btn,.driver-popover.svmap-tour-popover .driver-popover-next-btn{border:1px solid rgba(148,163,184,.45);background:transparent;color:#e2e8f0;text-shadow:none;border-radius:6px;font-size:13px;padding:6px 12px}.driver-popover.svmap-tour-popover .driver-popover-next-btn{background:var(--accent);border-color:var(--accent);color:#fff}.driver-popover.svmap-tour-popover .driver-popover-next-btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.driver-popover.svmap-tour-popover .driver-popover-prev-btn:hover{border-color:#94a3b8;color:#fff}.driver-popover.svmap-tour-popover .driver-popover-close-btn{color:#94a3b8}.driver-popover.svmap-tour-popover .driver-popover-close-btn:hover{color:#fff}.driver-popover.svmap-tour-popover .driver-popover-arrow-side-left.driver-popover-arrow,.driver-popover.svmap-tour-popover .driver-popover-arrow-side-right.driver-popover-arrow,.driver-popover.svmap-tour-popover .driver-popover-arrow-side-top.driver-popover-arrow,.driver-popover.svmap-tour-popover .driver-popover-arrow-side-bottom.driver-popover-arrow{border-color:#0f172a}#intercom-incoming{position:fixed;top:56px;left:50%;transform:translate(-50%);z-index:400;min-width:280px;max-width:min(420px,92vw);background:#7f1d1d;color:#fff;border:1px solid #fecaca;border-radius:12px;box-shadow:0 12px 32px #7f1d1d73;padding:12px 14px;animation:ici-pulse 1.4s ease-in-out infinite}#intercom-incoming.hidden{display:none!important}@keyframes ici-pulse{0%,to{box-shadow:0 12px 32px #7f1d1d73}50%{box-shadow:0 12px 40px #dc2626b3}}.ici-body{display:flex;flex-direction:column;gap:6px;align-items:stretch}.ici-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;opacity:.85;font-weight:600}#ici-from{font-size:16px;font-weight:700}.ici-actions{display:flex;gap:8px;margin-top:6px}.ici-answer,.ici-reject{flex:1;border:none;border-radius:8px;padding:9px 12px;font-weight:700;font-size:13px;cursor:pointer}.ici-answer{background:#16a34a;color:#fff}.ici-answer:hover{background:#15803d}.ici-reject{background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.35)}.ici-reject:hover{background:#ffffff40}#intercom-pill.ringing{background:#fecaca!important;color:#7f1d1d!important;animation:ici-pill 1s ease-in-out infinite}@keyframes ici-pill{0%,to{opacity:1}50%{opacity:.55}}#dv-stage{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:0;padding:10px;background:#060a14}#dv-video{max-width:100%;max-height:100%;background:#000;border:1px solid #1f2937;border-radius:8px}#dv-status{margin:0;font-size:13px;color:#cbd5e1;text-align:center}.dv-retry{background:transparent;border:1px solid #334155;color:#e2e8f0;border-radius:6px;padding:3px 10px;margin-left:6px;cursor:pointer;font-size:12px}.dv-retry:hover{border-color:#64748b}#dv-bar{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:var(--shell, #0a0f1e);border-top:1px solid #1f2937;font-size:12px}#dv-transport{display:flex;gap:6px}#dv-transport button{background:transparent;border:1px solid #334155;color:#e2e8f0;border-radius:6px;padding:4px 10px;cursor:pointer;font-size:12px}#dv-transport button:hover{border-color:#64748b}
