:root{--bg:#07111f;--panel:#0d1a2b;--panel2:#122238;--text:#edf5ff;--muted:#8da4bf;--border:#203750;--accent:#1558b0;--accent2:#f78a16;--danger:#ef4444;--ok:#22c55e;--warn:#f59e0b;--radius:18px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light]{--bg:#f4f7fb;--panel:#fff;--panel2:#eef3f8;--text:#102033;--muted:#64748b;--border:#d9e2ec;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.sidebar{border-right:1px solid var(--border);background:linear-gradient(180deg,var(--panel),#081522);height:100vh;padding:22px 16px;position:sticky;top:0}.brand{align-items:center;gap:12px;padding:8px 8px 22px;display:flex}.brand img{object-fit:contain;width:48px;height:48px}.brand strong{font-size:14px;display:block}.brand small{color:var(--muted)}.nav{gap:7px;display:grid}.nav a{color:var(--muted);border-radius:12px;align-items:center;gap:10px;padding:11px 12px;display:flex}.nav a:hover{background:var(--panel2);color:var(--text)}.main{min-width:0}.topbar{border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:5;justify-content:space-between;align-items:center;height:72px;padding:0 28px;display:flex;position:sticky;top:0}.content{max-width:1500px;margin:auto;padding:28px}.title{margin:0 0 6px;font-size:26px}.subtitle{color:var(--muted);margin:0}.cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:22px 0;display:grid}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:0 15px 40px #0002}.metric{font-size:28px;font-weight:750}.muted{color:var(--muted)}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.camera{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.camera-head{justify-content:space-between;align-items:center;padding:13px 15px;display:flex}.player{aspect-ratio:16/9;background:#02060b;place-items:center;display:grid;position:relative}.player video,.player iframe{object-fit:contain;border:0;width:100%;height:100%}.badge{background:var(--panel2);border:1px solid var(--border);border-radius:999px;padding:5px 9px;font-size:12px}.online{color:#86efac}.offline{color:#fca5a5}.unknown{color:#fcd34d}.table-wrap{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:auto}table{border-collapse:collapse;width:100%;min-width:720px}th,td{text-align:left;border-bottom:1px solid var(--border);vertical-align:middle;padding:13px 15px}th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.btn{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:11px;padding:10px 14px;font-weight:650}.btn.secondary{background:var(--panel2);border:1px solid var(--border);color:var(--text)}.btn.danger{background:#7f1d1d}.form{gap:14px;display:grid}.field{gap:6px;display:grid}.field label{color:var(--muted);font-size:13px}.field input,.field select{background:var(--panel2);border:1px solid var(--border);color:var(--text);border-radius:11px;padding:11px 12px}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.split{grid-template-columns:1fr 1fr;gap:18px;display:grid}.login-page{grid-template-columns:1.1fr .9fr;min-height:100vh;display:grid}.login-brand{background:radial-gradient(circle at 40% 35%,#1558b044,transparent 45%),var(--bg);place-items:center;display:grid}.login-brand img{width:70%;max-width:430px;height:auto}.login-box{place-items:center;padding:30px;display:grid}.login-card{background:var(--panel);border:1px solid var(--border);border-radius:24px;width:min(430px,100%);padding:28px}.logo-small{object-fit:contain;width:auto;height:64px;margin-bottom:14px}.progress{background:var(--panel2);border-radius:999px;height:8px;overflow:hidden}.progress>span{background:linear-gradient(90deg,var(--accent),var(--accent2));height:100%;display:block}.section{margin-top:26px}.empty{text-align:center;color:var(--muted);padding:30px}@media (max-width:1050px){.shell{grid-template-columns:82px 1fr}.brand div,.nav span{display:none}.brand img{width:42px}.cards,.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:700px){.shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--border);height:auto;position:static}.brand{padding-bottom:8px}.brand div{display:block}.nav{display:flex;overflow:auto}.nav span{display:inline}.topbar{padding:0 16px}.content{padding:18px}.cards,.grid,.split,.login-page{grid-template-columns:1fr}.login-brand{display:none}}.shell{grid-template-columns:270px minmax(0,1fr)!important;min-height:100vh!important;display:grid!important}.sidebar{z-index:20;height:100vh!important;display:block!important;position:sticky!important;top:0!important}.main{width:100%;min-width:0!important}@media (max-width:1050px) and (min-width:701px){.shell{grid-template-columns:82px minmax(0,1fr)!important}}@media (max-width:700px){.shell{display:block!important}.sidebar{height:auto!important;position:static!important}}.password-input-wrap{width:100%;position:relative}.password-input-wrap input{width:100%;padding-right:48px!important}.password-toggle{width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:9px;place-items:center;padding:0;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.password-toggle:hover{color:var(--text);background:color-mix(in srgb, var(--panel2) 82%, transparent)}.password-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.password-toggle svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.auth-link-row{justify-content:flex-end;align-items:center;margin-top:-3px;display:flex}.auth-link-row--left{justify-content:flex-start;margin-top:16px}.auth-link{color:#8dc8f5;font-size:13px;font-weight:600}.auth-link:hover{color:#c9e8ff;text-underline-offset:3px;text-decoration:underline}.auth-notice,.auth-error{border-radius:11px;margin:16px 0 0;padding:11px 13px;font-size:13px;line-height:1.5}.auth-notice{color:#bbf7d0;background:#16653424;border:1px solid #4ade8038}.auth-error{color:#fecaca;background:#7f1d1d29;border:1px solid #f8717138}.login-card .form>.btn{min-height:42px}.turnstile-wrap{justify-content:center;align-items:center;min-height:66px;display:flex;overflow:hidden}.auth-error{color:#fecaca;background:#7f1d1d2e;border:1px solid #f8717147;border-radius:14px;padding:13px 16px;line-height:1.5}.auth-notice{color:#a7f3d0;background:#065f462e;border:1px solid #34d39947;border-radius:14px;padding:13px 16px;line-height:1.5}.security-title-row,.security-card-head,.audit-pagination{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.security-cards,.security-metrics{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;display:grid}.metric-card{gap:8px;display:grid}.metric-card>span,.metric-card>small{color:var(--muted)}.metric-card>strong{font-size:34px;line-height:1}.security-pill{white-space:nowrap;border:1px solid var(--border);border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:12px;font-weight:700;display:inline-flex}.security-pill.good{color:#86efac;background:#16653433;border-color:#4ade804d}.security-pill.warn{color:#fde68a;background:#92400e33;border-color:#fbbf2447}.security-pill.danger{color:#fecaca;background:#7f1d1d33;border-color:#f871714d}.security-pill.neutral{color:var(--muted);background:var(--panel2)}.security-note{color:#bfdbfe;background:#1558b01f;border:1px solid #60a5fa40;border-radius:12px;padding:12px 14px;line-height:1.5}.security-user-list,.security-policy-list{gap:10px;display:grid}.security-user-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.security-user-row:last-child{border-bottom:0}.security-policy-list>div{align-items:center;gap:10px;display:flex}.security-dot{background:var(--muted);border-radius:50%;width:9px;height:9px;display:inline-block}.security-dot.good{background:#22c55e}.mfa-setup-card{width:min(520px,100%)}.mfa-qr-wrap{place-items:center;margin-top:20px;display:grid}.mfa-qr-wrap img{background:#fff;border-radius:18px;max-width:100%;height:auto;padding:10px;display:block}.mfa-secret-box{border:1px solid var(--border);background:var(--panel2);border-radius:13px;gap:7px;margin-top:18px;padding:14px;display:grid}.mfa-secret-box span{color:var(--muted);font-size:12px}.mfa-secret-box code{word-break:break-all;letter-spacing:.08em;font-size:14px}.recovery-grid{grid-template-columns:1fr 1fr;gap:9px;margin:16px 0;display:grid}.recovery-code{background:var(--panel2);border:1px solid var(--border);text-align:center;letter-spacing:.04em;border-radius:10px;padding:10px 12px;font-size:13px;display:block}.recovery-continue{justify-content:center;text-decoration:none;display:inline-flex}.audit-filter{grid-template-columns:repeat(3,minmax(150px,1fr));align-items:end;gap:14px;display:grid}.audit-filter-actions{align-self:end}.audit-badge{white-space:nowrap;text-overflow:ellipsis;border:1px solid var(--border);border-radius:999px;max-width:260px;padding:5px 9px;font-size:11px;font-weight:700;display:inline-flex;overflow:hidden}.audit-badge.good{color:#86efac;background:#16653429;border-color:#4ade8040}.audit-badge.warn{color:#fde68a;background:#92400e29;border-color:#fbbf2440}.audit-badge.danger{color:#fecaca;background:#7f1d1d29;border-color:#f8717140}.audit-badge.neutral{color:#bfdbfe;background:#1e40af1f;border-color:#60a5fa33}.disabled-link{pointer-events:none;opacity:.45}@media (max-width:900px){.audit-filter{grid-template-columns:1fr 1fr}.recovery-grid{grid-template-columns:1fr}}@media (max-width:600px){.audit-filter{grid-template-columns:1fr}.security-title-row,.security-card-head,.audit-pagination{align-items:stretch}.security-title-row>.row,.audit-pagination>.row{width:100%}.recovery-grid{grid-template-columns:1fr}}.shell{background:radial-gradient(circle at 72% -10%, #1558b01f, transparent 28%), var(--bg);grid-template-columns:286px minmax(0,1fr)!important}.sidebar{border-right-color:color-mix(in srgb, var(--border) 80%, transparent)!important;background:linear-gradient(#0d1a2bfc,#06111dfe)!important;padding:18px 14px!important}.brand{gap:11px!important;padding:5px 8px 20px!important}.brand-copy{min-width:0}.brand-title-row{align-items:center;gap:8px;display:flex}.brand-title-row strong{white-space:nowrap}.brand-version,.topbar-v2{color:#9bd1ff;letter-spacing:.08em;background:#1558b02e;border:1px solid #60a5fa47;border-radius:999px;justify-content:center;align-items:center;min-width:28px;height:20px;padding:0 7px;font-size:10px;font-weight:800;display:inline-flex}.nav{gap:5px!important}.nav-section-title{color:color-mix(in srgb, var(--muted) 76%, transparent);letter-spacing:.13em;text-transform:uppercase;padding:17px 12px 6px;font-size:10px;font-weight:800;line-height:1;display:block}.nav-link{border:1px solid #0000;min-height:43px;transition:background .15s,color .15s,border-color .15s;position:relative;color:var(--muted)!important;border-radius:12px!important;padding:10px 12px!important}.nav-link:hover{border-color:#7dadda1f;color:var(--text)!important;background:#ffffff09!important}.nav-link.active{border-color:#60a5fa40;color:#eff8ff!important;background:linear-gradient(90deg,#1558b033,#1558b014)!important}.nav-link.active:before{content:"";background:#55b4ff;border-radius:0 4px 4px 0;width:3px;position:absolute;top:9px;bottom:9px;left:-1px}.topbar{border-bottom-color:color-mix(in srgb, var(--border) 76%, transparent)!important;background:color-mix(in srgb, var(--bg) 82%, transparent)!important;height:76px!important;padding:0 30px!important}.topbar-title-row{align-items:center;gap:9px;display:flex}.topbar-title-row strong{letter-spacing:-.01em;font-size:14px}.topbar-subtitle{margin-top:3px;font-size:11px!important}.topbar-user{align-items:center;gap:10px;display:flex}.topbar-user-copy{text-align:right;min-width:0;display:grid}.topbar-user-copy strong{font-size:12px}.topbar-user-copy span{color:var(--muted);font-size:10px}.topbar-security-link{border:1px solid var(--border);color:#9cc9ed;background:color-mix(in srgb, var(--panel2) 75%, transparent);border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.topbar-security-link:hover{color:#e8f6ff;border-color:#60a5fa52}.topbar-logout{align-items:center;gap:7px;min-height:36px;display:inline-flex}.content{max-width:1700px!important;padding:30px 32px 46px!important}.v2-page-head,.live-v2-page-head{justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.v2-eyebrow,.live-v2-eyebrow{color:#6ebbf6;letter-spacing:.14em;margin-bottom:8px;font-size:10px;font-weight:800}.v2-section-title{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px;display:flex}.v2-section-title h2,.v2-card-title h2{margin:0;font-size:16px}.v2-section-title p{margin:4px 0 0;font-size:12px}.v2-card-title{align-items:center;gap:9px;display:flex}.v2-dashboard-cards{grid-template-columns:repeat(5,minmax(0,1fr))!important}.v2-metric-card{align-content:center;gap:6px;min-height:120px;display:grid;position:relative}.v2-metric-card>span:first-child{color:var(--muted);font-size:12px}.v2-metric-card>strong{letter-spacing:-.035em;font-size:30px}.v2-metric-card>svg,.v2-metric-dot{color:#6ebbf6;position:absolute;top:18px;right:18px}.v2-metric-dot{border-radius:50%;width:9px;height:9px}.online-dot{background:#22c55e;box-shadow:0 0 0 6px #22c55e14}.v2-metric-caption{color:var(--muted)!important;font-size:10px!important}.v2-dashboard-split{align-items:start;grid-template-columns:.9fr 1.1fr!important}.v2-location-summary-list,.v2-camera-status-list{display:grid}.v2-location-summary-row,.v2-camera-status-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;min-height:62px;display:flex}.v2-location-summary-row:last-child,.v2-camera-status-row:last-child{border-bottom:0}.v2-location-summary-row>div:first-child,.v2-camera-status-row>div:first-child{gap:4px;display:grid}.v2-location-summary-row strong,.v2-camera-status-row strong{font-size:13px}.v2-location-summary-row span,.v2-camera-status-row span{color:var(--muted);font-size:11px}.v2-location-summary-status,.v2-camera-status-meta{align-items:center;gap:10px;display:flex}.v2-location-summary-status .online{color:#86efac}.v2-location-summary-status .offline{color:#fca5a5}.v2-camera-status-meta small{min-width:46px;color:var(--muted);text-align:right}.v2-location-layout{align-items:stretch;grid-template-columns:minmax(300px,.7fr) minmax(320px,1.3fr)!important}.v2-location-create{align-content:start}.v2-location-overview{align-content:start;gap:18px;display:grid}.v2-mini-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.v2-mini-stats>div{border:1px solid var(--border);background:var(--panel2);border-radius:13px;gap:5px;padding:14px;display:grid}.v2-mini-stats span{color:var(--muted);font-size:11px}.v2-mini-stats strong{font-size:24px}.v2-location-grid,.v2-camera-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.v2-location-card,.v2-camera-admin-card{min-width:0}.v2-location-card-head,.v2-camera-admin-head{align-items:center;gap:10px;min-height:48px;display:flex}.v2-location-icon{color:#8cc9f8;background:#1558b01a;border:1px solid #60a5fa33;border-radius:11px;flex:none;place-items:center;width:36px;height:36px;display:grid}.v2-location-card-head>div:nth-child(2),.v2-camera-admin-head>div:nth-child(2){gap:3px;min-width:0;display:grid}.v2-location-card-head strong,.v2-camera-admin-head strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.v2-location-card-head span,.v2-camera-admin-head span{color:var(--muted);font-size:10px}.v2-camera-count{color:var(--muted);align-items:center;gap:5px;margin-left:auto;font-size:11px;display:inline-flex}.v2-camera-admin-head>.badge{margin-left:auto}@media (max-width:1250px){.v2-dashboard-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}.v2-location-grid,.v2-camera-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1050px) and (min-width:701px){.shell{grid-template-columns:88px minmax(0,1fr)!important}.brand-copy,.nav-label,.nav-section-title{display:none!important}.brand{justify-content:center}.nav-link{justify-content:center;padding:11px!important}.content{padding-left:24px!important;padding-right:24px!important}}@media (max-width:860px){.v2-dashboard-cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.v2-dashboard-split,.v2-location-layout{grid-template-columns:1fr!important}.v2-location-grid,.v2-camera-admin-grid{grid-template-columns:1fr}}@media (max-width:700px){.sidebar{padding:10px 12px!important}.brand{padding:3px 2px 9px!important}.nav{padding-bottom:3px;overflow-x:auto;gap:6px!important;display:flex!important}.nav-section-title{display:none!important}.nav-link{flex:none;min-height:40px}.nav-label{display:inline!important}.topbar{height:66px!important;padding:0 14px!important}.topbar-subtitle,.topbar-user-copy,.topbar-logout span{display:none}.content{padding:20px 14px 34px!important}.v2-dashboard-cards{grid-template-columns:1fr 1fr!important}.v2-metric-card{min-height:104px}.v2-metric-card>strong{font-size:25px}}.v2-global-banner{border-bottom:1px solid var(--border);background:#1558b024;padding:10px 24px;font-size:13px}.v2-global-banner.warning{background:#f59e0b24}.v2-global-banner.critical{background:#ef444429}@media print{.sidebar,.topbar,.row .btn,.v2-global-banner{display:none!important}.shell{display:block!important}.main{width:100%!important}.content{padding:0!important}}.v2-loading{gap:14px;padding:30px;display:grid}.v2-skeleton{background:linear-gradient(90deg,var(--panel),var(--panel2),var(--panel));background-size:220% 100%;border-radius:16px;height:110px;animation:1.4s infinite tdvShimmer}.v2-error-page{background:var(--bg);min-height:100vh;color:var(--text);place-items:center;padding:28px;display:grid}.v2-error-page>div{max-width:560px}.v2-error-page h1{margin:10px 0;font-size:38px}.v2-error-page p{color:var(--muted);margin-bottom:22px}@keyframes tdvShimmer{0%{background-position:200% 0}to{background-position:-20% 0}}@media (max-width:700px){.camera-grid{gap:10px!important}.camera{border-radius:14px!important}.player{min-height:220px!important}.v2-page-head{gap:12px!important}.title{font-size:26px!important}.sidebar{z-index:40!important;position:sticky!important;top:0!important}.nav{scrollbar-width:none}.nav::-webkit-scrollbar{display:none}}@media (orientation:landscape) and (max-height:600px){.topbar{height:52px!important}.content{padding-top:12px!important}.player{min-height:280px!important}}
