:root{--bg: #0b0f14;--surface: #141b26;--surface-elevated: #1a2332;--sidebar-bg: #0a0e14;--border: #243044;--border-subtle: #1c2636;--text: #eef2f7;--muted: #8b9cb3;--accent: #3b82f6;--accent-hover: #2563eb;--accent-soft: rgba(59, 130, 246, .12);--danger: #ef4444;--success: #22c55e;--warning: #f59e0b;--sidebar-width: 260px;--topbar-height: 64px;--radius: 12px;--shadow: 0 8px 32px rgba(0, 0, 0, .35);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}*{box-sizing:border-box;margin:0;padding:0}body{min-height:100vh;overflow-x:hidden}.platform{display:flex;min-height:100vh;background:var(--bg)}.sidebar{position:fixed;inset:0 auto 0 0;z-index:200;width:var(--sidebar-width);height:100vh;height:100dvh;display:flex;flex-direction:column;min-height:0;background:var(--sidebar-bg);border-right:1px solid var(--border-subtle)}.sidebar-brand{display:flex;align-items:center;gap:.85rem;padding:1.35rem 1.25rem 1.25rem;border-bottom:1px solid var(--border-subtle);flex-shrink:0}.sidebar-logo{width:2.5rem;height:2.5rem;border-radius:10px;background:linear-gradient(135deg,var(--accent),#6366f1);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 4px 14px #3b82f659}.sidebar-logo svg{width:1.25rem;height:1.25rem;color:#fff}.sidebar-brand strong{display:block;font-size:.95rem;font-weight:700;letter-spacing:-.02em}.sidebar-brand span{display:block;font-size:.72rem;color:var(--muted);margin-top:.1rem}.sidebar-nav{flex:1;min-height:0;padding:1rem .5rem 1rem .75rem;display:flex;flex-direction:column;gap:.25rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth;scroll-padding-block:.65rem;scrollbar-width:thin;scrollbar-color:rgba(139,156,179,.22) transparent;-webkit-overflow-scrolling:touch}.sidebar-nav:hover{scrollbar-color:rgba(139,156,179,.48) transparent}.sidebar-nav:focus-within{scrollbar-color:rgba(139,156,179,.48) transparent}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{margin-block:.5rem;background:transparent;border-radius:999px}.sidebar-nav::-webkit-scrollbar-thumb{background:#8b9cb32e;border:2px solid transparent;background-clip:padding-box;border-radius:999px;transition:background .18s ease}.sidebar-nav:hover::-webkit-scrollbar-thumb,.sidebar-nav:focus-within::-webkit-scrollbar-thumb{background:#8b9cb36b;background-clip:padding-box}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#8b9cb39e;background-clip:padding-box}.sidebar-nav::-webkit-scrollbar-thumb:active{background:#3b82f68c;background-clip:padding-box}.sidebar-nav-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.7rem .85rem;border:none;border-radius:10px;background:transparent;color:var(--muted);font-size:.9rem;font-weight:500;text-align:left;cursor:pointer;transition:background .15s,color .15s}.sidebar-nav-item:hover{background:#ffffff0a;color:var(--text)}.sidebar-nav-item.active{background:var(--accent-soft);color:var(--accent)}.sidebar-nav-icon{width:1.25rem;height:1.25rem;flex-shrink:0;display:flex;align-items:center;justify-content:center}.sidebar-nav-icon svg{width:100%;height:100%}.sidebar-nav-label{flex:1}.sidebar-badge{min-width:1.35rem;height:1.35rem;padding:0 .4rem;border-radius:999px;background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.sidebar-footer{padding:1rem 1rem 1.25rem;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.75rem;flex-shrink:0}.sidebar-user{display:flex;align-items:center;gap:.65rem;min-width:0}.sidebar-avatar{width:2.25rem;height:2.25rem;border-radius:999px;background:var(--surface-elevated);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:700;color:var(--accent);flex-shrink:0}.sidebar-user-info{min-width:0;display:flex;flex-direction:column;gap:.1rem}.sidebar-user-email{font-size:.78rem;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.sidebar-logout{width:100%;justify-content:center}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;border:none;background:#0000008c;cursor:pointer}.platform-main{flex:1;margin-left:var(--sidebar-width);min-width:0;display:flex;flex-direction:column;min-height:100vh}.topbar{position:sticky;top:0;z-index:50;height:var(--topbar-height);display:flex;align-items:center;gap:1rem;padding:0 1.75rem;background:#0b0f14d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle)}.topbar-menu-btn{display:none;width:2.25rem;height:2.25rem;padding:0;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);align-items:center;justify-content:center;cursor:pointer}.topbar-menu-btn svg{width:1.15rem;height:1.15rem}.topbar-titles{flex:1;min-width:0}.topbar-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-shrink:0}.lang-switcher{position:relative}.lang-switcher-btn{display:inline-flex;align-items:center;gap:.4rem;height:2.25rem;padding:0 .65rem 0 .55rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.72rem;font-weight:700;letter-spacing:.06em;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.lang-switcher-btn:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.lang-switcher-btn svg{width:1.05rem;height:1.05rem;flex-shrink:0}.lang-switcher-code{min-width:1.25rem;text-align:center}.lang-switcher-menu{position:absolute;top:calc(100% + .35rem);right:0;z-index:120;min-width:9rem;margin:0;padding:.35rem;list-style:none;border-radius:10px;border:1px solid var(--border);background:var(--surface-elevated);box-shadow:var(--shadow)}.lang-switcher-option{display:block;width:100%;padding:.5rem .65rem;border:none;border-radius:7px;background:transparent;color:var(--text);font-size:.88rem;text-align:left;cursor:pointer;transition:background .15s,color .15s}.lang-switcher-option:hover{background:#ffffff0d}.lang-switcher-option.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.topbar-titles h1{font-size:1.15rem;font-weight:650;letter-spacing:-.02em;line-height:1.2}.topbar-titles p{font-size:.82rem;color:var(--muted);margin-top:.15rem}.platform-content{flex:1;padding:1.5rem 1.75rem 2rem;max-width:1680px}.panel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.form-field{display:flex;flex-direction:column;gap:.35rem;min-width:0}.form-field>span,.form-field-label{font-size:.78rem;color:var(--muted);font-weight:500}.form-control,.form-field input,.form-field select,.form-field textarea{width:100%;padding:.6rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:inherit;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.form-control:focus,.form-field input:focus,.form-field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-control:disabled,.form-field input:disabled,.form-field select:disabled{opacity:.55;cursor:not-allowed}.form-field input[type=date],.form-field input[type=time]{min-height:2.5rem;color-scheme:dark}.form-group-label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;margin-bottom:.35rem}.btn-primary{padding:.6rem 1.25rem;border:none;border-radius:8px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;font-size:.875rem;font-family:inherit;transition:opacity .15s,transform .1s}.btn-primary:hover:not(:disabled){opacity:.92}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.view-surveillance{display:flex;flex-direction:column;min-height:calc(100vh - var(--topbar-height) - 3.5rem)}.surveillance-stage{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.surveillance-stage .camera-feed--surveillance{flex:1;min-height:0;display:flex;flex-direction:column;border:none;border-radius:0;padding:.75rem 1rem 0;background:transparent}.surveillance-stage .camera-feed--surveillance .camera-stage,.surveillance-stage .camera-feed--surveillance .camera-grid{flex:1;min-height:240px;display:flex;flex-direction:column}.surveillance-stage .camera-feed--surveillance .camera-tile{flex:1;min-height:0;display:flex;flex-direction:column}.surveillance-stage .camera-feed--surveillance .camera-tile-frame{flex:1;min-height:200px}.surveillance-stage .camera-feed--surveillance .camera-frame-wrap{height:100%;min-height:200px}.surveillance-stage .camera-feed--surveillance .camera-frame-wrap img,.surveillance-stage .camera-feed--surveillance .camera-frame-wrap video{width:100%;height:100%;object-fit:contain}.surveillance-stage .stream-panel-collapsible{flex-shrink:0;margin-bottom:.5rem}.stream-panel-collapsible{border:1px solid var(--border);border-radius:8px;padding:0;background:var(--bg)}.stream-panel-summary{display:flex;align-items:center;gap:.65rem;padding:.55rem .85rem;cursor:pointer;list-style:none;font-size:.88rem;font-weight:500}.stream-panel-summary::-webkit-details-marker{display:none}.stream-panel-summary:before{content:"▸";font-size:.75rem;color:var(--muted);transition:transform .15s}.stream-panel-collapsible[open] .stream-panel-summary:before{transform:rotate(90deg)}.stream-panel-body{padding:0 .85rem .85rem}.stream-panel-head{display:flex;justify-content:flex-end;margin-bottom:.5rem}.stream-stop-all{margin-left:auto}.rule-composer-dock{flex-shrink:0;padding:.75rem 1rem 1rem;background:linear-gradient(to top,var(--surface) 85%,transparent);border-top:1px solid var(--border)}.rule-composer-box{max-width:920px;margin:0 auto;background:var(--bg);border:1px solid var(--border);border-radius:1.25rem;box-shadow:0 8px 32px #00000047;padding:.85rem 1rem .75rem}.rule-composer-input{width:100%;min-height:4.5rem;max-height:14rem;padding:.25rem .15rem .5rem;border:none;background:transparent;color:var(--text);font-family:inherit;font-size:1.05rem;line-height:1.5;resize:vertical;margin:0}.rule-composer-input:focus{outline:none}.rule-composer-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding-top:.35rem;border-top:1px solid var(--border)}.rule-composer-toolbar-left{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;flex:1;min-width:0}.rule-composer-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.15rem;height:2.15rem;padding:0;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.rule-composer-icon-btn svg{width:1.1rem;height:1.1rem}.rule-composer-icon-btn:hover{color:var(--text);background:var(--bg);border-color:var(--muted)}.rule-composer-icon-btn.active{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--border));background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.rule-composer-icon-btn.open{color:var(--text);background:var(--bg)}.rule-composer-popover-anchor{position:relative}.rule-composer-popover{position:absolute;bottom:calc(100% + .45rem);left:0;z-index:40;min-width:220px;max-width:min(320px,90vw);padding:.65rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px #00000059}.rule-composer-popover-wide{min-width:280px;max-width:min(360px,92vw)}.rule-composer-popover-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.35rem}.rule-composer-popover-title{margin:0 0 .5rem;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.rule-composer-popover-head .rule-composer-popover-title{margin-bottom:0}.rule-composer-popover-clear{font-size:.78rem}.rule-composer-popover-hint{margin:.35rem 0 0;font-size:.82rem}.rule-composer-popover-link{display:block;margin-top:.65rem;font-size:.82rem}.rule-composer-zone-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem;max-height:200px;overflow-y:auto}.rule-composer-zone-option{display:flex;align-items:center;gap:.5rem;width:100%;padding:.45rem .55rem;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);font-size:.88rem;text-align:left;cursor:pointer}.rule-composer-zone-option:hover{background:var(--bg);border-color:var(--border)}.rule-composer-zone-option.selected{background:color-mix(in srgb,var(--accent) 12%,var(--bg));border-color:color-mix(in srgb,var(--accent) 35%,var(--border));color:var(--accent)}.rule-composer-zone-option .zone-color-dot{flex-shrink:0}.schedule-editor-no-toggle{padding:0;margin:0;background:transparent;border:none}.schedule-editor-no-toggle .schedule-editor-fields{margin-top:0}.rule-composer-actions{display:flex;align-items:center;gap:.45rem;flex-shrink:0}.rule-composer-send{padding:.55rem 1.15rem;border-radius:999px;font-weight:600}.rule-composer-hint{text-align:center;margin:.45rem 0 0;font-size:.75rem}.rule-composer-error{max-width:920px;margin:.5rem auto 0;text-align:center}.rule-composer-rules{max-width:920px;margin:0 auto .65rem;font-size:.85rem}.rule-composer-rules summary{cursor:pointer;color:var(--muted);padding:.35rem 0;list-style:none}.rule-composer-rules summary::-webkit-details-marker{display:none}.rule-composer-panel{max-width:920px;margin:0 auto .75rem;padding:.85rem 1rem;background:var(--bg);border:1px solid var(--border);border-radius:12px;max-height:40vh;overflow-y:auto}.rule-composer-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.rule-composer-panel-head h3{font-size:.9rem;margin:0}.rules-list-compact li{padding:.5rem .65rem;margin-bottom:.35rem}.view-surveillance-side{position:sticky;top:calc(var(--topbar-height) + 1rem)}.view-zones{display:flex;flex-direction:column;min-height:calc(100vh - var(--topbar-height) - 3.5rem)}.view-zones .camera-feed--zones{display:flex;flex-direction:column;flex:1;min-height:0;gap:0;padding:0;border:none;background:transparent}.view-zones .camera-feed--zones .camera-header-zones{flex-shrink:0;padding:0 0 .65rem;background:transparent;border:none}.view-zones .camera-feed--zones .camera-stage{flex:1;min-height:min(52vh,520px);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:#000}.view-zones .camera-feed--zones .camera-tile--main{height:100%;border:none;border-radius:0}.view-zones .camera-feed--zones .zone-manager-bottom{flex-shrink:0;margin-top:1rem;margin-bottom:0;border-radius:var(--radius)}.view-alerts{display:flex;flex-direction:column;gap:1.25rem}.view-alerts-detail .alert-detail-panel{position:static}.settings-page{display:flex;flex-direction:column;gap:1.25rem;max-width:640px}.settings-section h2{font-size:1.05rem;margin-bottom:.35rem}.settings-list{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:10px;background:var(--bg);border:1px solid var(--border-subtle)}.settings-row-text{display:flex;flex-direction:column;gap:.2rem;min-width:0}.settings-row-text strong{font-size:.9rem}.settings-row-text span{font-size:.78rem;color:var(--muted)}.settings-toggle{width:2.75rem;height:1.5rem;border-radius:999px;border:1px solid var(--border);background:var(--surface-elevated);padding:.15rem;cursor:pointer;flex-shrink:0;transition:background .2s,border-color .2s}.settings-toggle.on{background:var(--accent);border-color:var(--accent)}.settings-toggle-knob{display:block;width:1.05rem;height:1.05rem;border-radius:999px;background:#fff;transition:transform .2s}.settings-toggle.on .settings-toggle-knob{transform:translate(1.25rem)}.settings-language-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.settings-lang-btn{padding:.5rem 1rem;border-radius:999px;border:1px solid var(--border);background:var(--bg);color:var(--muted);font-size:.88rem;font-weight:500;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.settings-lang-btn:hover{border-color:var(--accent);color:var(--text)}.settings-lang-btn.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.settings-dl{display:grid;gap:.75rem;margin-top:.75rem}.settings-dl div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem 0;border-bottom:1px solid var(--border-subtle)}.settings-dl dt{font-size:.85rem;color:var(--muted)}.settings-dl dd{font-size:.9rem;font-weight:500}.admin-embedded .admin-main{padding:0;max-width:none}@media (max-width: 1100px){.view-zones .camera-feed--zones .camera-stage{min-height:280px}}@media (max-width: 900px){.sidebar{transform:translate(-100%);transition:transform .25s ease;box-shadow:var(--shadow)}.platform.sidebar-open .sidebar{transform:translate(0)}.platform.sidebar-open .sidebar-backdrop{display:block}.platform-main{margin-left:0}.topbar-menu-btn{display:inline-flex}.platform-content{padding:1rem}}.app header{padding:1.5rem 2rem;border-bottom:1px solid var(--border);background:var(--surface)}.app header h1{font-size:1.5rem;font-weight:600}.app header p{color:var(--muted);font-size:.9rem;margin-top:.25rem}.header-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.header-user{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.9rem;flex-wrap:wrap}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:radial-gradient(ellipse 80% 60% at 20% 10%,rgba(59,130,246,.12),transparent),radial-gradient(ellipse 60% 50% at 80% 90%,rgba(99,102,241,.08),transparent),var(--bg)}.login-shell{width:100%;max-width:420px}.login-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:var(--shadow)}.login-card h1{font-size:1.5rem;margin-bottom:.25rem;background:linear-gradient(135deg,var(--text),var(--muted));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.login-sub{color:var(--muted);margin-bottom:1.5rem}.login-form{display:flex;flex-direction:column;gap:.75rem}.login-form label{font-size:.85rem;color:var(--muted)}.login-form input{padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.login-form button[type=submit]{margin-top:.5rem;padding:.65rem;border:none;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;font-weight:600}.login-form button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.login-email-display{font-weight:600;color:var(--accent)}.login-info{margin-top:1rem;color:var(--success);font-size:.9rem}.btn-link{background:none;border:none;color:var(--muted);cursor:pointer;text-decoration:underline;font-size:.85rem;padding:0}.auth-tabs{display:flex;gap:.5rem;margin-bottom:1.25rem}.auth-tabs button{flex:1;padding:.55rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--muted);cursor:pointer;font-weight:500}.auth-tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}section{display:flex;flex-direction:column;gap:1.5rem}.camera-feed,.rule-input,.alert-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.alert-detail-panel{position:sticky;top:calc(var(--topbar-height) + 1rem)}.alert-history-section{width:100%}.alert-history-panel h2{margin-bottom:0;display:flex;align-items:center;flex-wrap:wrap;gap:.35rem}.alert-history-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.alert-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:1.5rem;height:1.35rem;padding:0 .45rem;border-radius:999px;background:var(--border);color:var(--muted);font-size:.72rem;font-weight:600}.alert-filter-hint{font-size:.78rem;color:var(--muted);margin-top:.25rem}.alert-history-nav,.alert-detail-nav{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.alert-nav-btn{width:2rem;height:2rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s}.alert-nav-btn:hover:not(:disabled){border-color:var(--accent);background:#3b82f61f}.alert-nav-btn:disabled{opacity:.35;cursor:not-allowed}.alert-nav-counter{font-size:.8rem;color:var(--muted);min-width:3.5rem;text-align:center;font-variant-numeric:tabular-nums}.alert-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;align-items:center}.alert-filter-search{flex:1 1 180px;min-width:140px;padding:.5rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.85rem}.alert-filter-search:focus{outline:none;border-color:var(--accent)}.alert-filter-select{flex:0 1 auto;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.82rem;max-width:200px}.alert-filter-reset{flex-shrink:0}.alert-history-empty{padding:1.5rem 0}.alert-carousel{display:flex;align-items:stretch;gap:.5rem}.alert-carousel-track{flex:1;display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:.25rem .15rem .5rem;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.alert-carousel-track::-webkit-scrollbar{height:6px}.alert-carousel-track::-webkit-scrollbar-thumb{background:var(--border);border-radius:999px}.alert-carousel-arrow{flex-shrink:0;align-self:center;width:2.25rem;height:2.25rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:1.4rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000040;transition:border-color .15s,transform .1s}.alert-carousel-arrow:hover{border-color:var(--accent);transform:scale(1.05)}.alert-card{flex:0 0 240px;scroll-snap-align:center;display:flex;flex-direction:column;gap:.35rem;padding:.85rem;border-radius:10px;border:1px solid var(--border);background:var(--bg);cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s,transform .1s}.alert-card:hover{border-color:var(--accent);transform:translateY(-1px)}.alert-card.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 16px #3b82f626;background:#3b82f60f}.alert-card.new{border-color:var(--warning)}.alert-card-top{display:flex;align-items:center;gap:.4rem}.alert-card-id{font-size:.72rem;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums}.alert-card-new-dot{width:7px;height:7px;border-radius:999px;background:var(--warning)}.alert-card-title{font-size:.85rem;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.alert-card-date{font-size:.75rem;color:var(--text)}.alert-card-relative{font-size:.72rem;color:var(--muted)}.alert-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.alert-detail-head h2{margin-bottom:.35rem}.alert-detail-relative{color:var(--muted)}.alert-metadata-details{margin-top:.75rem}.alert-metadata-details summary{cursor:pointer;font-size:.85rem;color:var(--muted);-webkit-user-select:none;user-select:none}.alert-metadata-details summary:hover{color:var(--text)}.alert-detail-rule{font-size:.95rem;margin-bottom:.25rem}.alert-detail-time{font-size:.8rem;color:var(--muted);margin-bottom:.75rem}.alert-media-warn{font-size:.85rem;color:var(--warning);margin-bottom:.5rem}.email-tag.inline{margin-left:.5rem;vertical-align:middle}.camera-feed h2,.rule-input h2,.alert-panel h2{font-size:1.1rem;margin-bottom:.75rem}.camera-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.camera-header h2{margin-bottom:0}.status-badge{font-size:.75rem;padding:.25rem .6rem;border-radius:999px;background:var(--border)}.status-badge.ok{background:#22c55e33;color:var(--success)}.status-badge.err{background:#ef444433;color:var(--danger)}.status-badge.warn{background:#eab30833;color:var(--warning)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.camera-frame{border-radius:8px;overflow:hidden;background:#000;aspect-ratio:16 / 9}.camera-frame img{width:100%;height:100%;object-fit:contain;display:block}.stream-hint{font-size:.8rem;color:var(--muted);margin:0 0 .75rem}.stream-list-compact{margin-bottom:.75rem}.stream-list-compact .stream-item{padding:.5rem .65rem}.camera-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:1rem}.camera-stage{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.camera-stage-multi{min-height:280px}.camera-tile--main{flex:1;min-height:0;display:flex;flex-direction:column}.camera-tile--main .camera-tile-frame{flex:1;min-height:200px;aspect-ratio:unset}.camera-popups{position:absolute;right:.85rem;bottom:.85rem;display:flex;flex-direction:column-reverse;align-items:flex-end;gap:.65rem;z-index:25;pointer-events:none;max-width:calc(100% - 1.7rem)}.camera-popups .camera-tile--popup{pointer-events:auto}.camera-tile--popup{width:min(300px,38vw);box-shadow:0 16px 48px #0000008c;border:1px solid rgba(255,255,255,.12);animation:camera-popup-in .25s ease-out}.camera-tile--popup .camera-tile-head{padding:.35rem .5rem}.camera-tile--popup .camera-tile-title{font-size:.78rem;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.camera-tile-meta-compact{flex:0;font-size:.7rem}.camera-tile--popup .camera-tile-frame{aspect-ratio:16 / 9}@keyframes camera-popup-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.camera-grid-empty{grid-column:1 / -1;padding:2rem 1rem;text-align:center}.camera-tile{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:#000}.camera-tile-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.5rem .75rem;background:var(--bg);border-bottom:1px solid var(--border)}.camera-tile-title{font-size:.85rem;font-weight:600}.camera-tile-meta{font-size:.75rem;color:var(--muted);flex:1}.camera-tile-frame{aspect-ratio:16 / 9;display:flex;align-items:center;justify-content:center}.camera-tile-frame img{width:100%;height:100%;object-fit:contain;display:block}.camera-stream-video,.camera-stream-mjpeg{width:100%;height:100%;object-fit:contain;display:block;background:#000}.detection-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.det-box{fill:none;stroke-width:2}.det-box-person{stroke:#22c55e}.det-box-vehicle{stroke:#3b82f6}.det-box-object{stroke:#f59e0b}.det-label{fill:#fff;font-size:13px;font-family:system-ui,sans-serif;paint-order:stroke;stroke:#000000bf;stroke-width:3px}.camera-frame-wrap{position:relative;width:100%;height:100%}.zone-editor-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;pointer-events:none}.zone-editor-svg{width:100%;height:100%;pointer-events:none}.zone-editor-svg-active{pointer-events:auto;cursor:crosshair}.zone-editor-draft{fill:#3b82f633;stroke:var(--accent);stroke-width:2}.zone-editor-existing{fill:#22c55e1f;stroke-width:2}.zone-editor-existing-active{fill:#f59e0b2e;stroke-width:3}.zone-editor-handle{fill:var(--accent);stroke:#fff;stroke-width:1}.zone-editor-start-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:min(90%,320px);padding:.65rem .85rem;text-align:center;font-size:.9rem;color:#fff;background:#0f1419e0;border:1px dashed var(--accent);border-radius:8px;pointer-events:none}.zone-editor-toolbar{position:absolute;left:.5rem;bottom:.5rem;display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;background:#0f1419d9;border:1px solid var(--border);border-radius:6px;font-size:.75rem;pointer-events:auto}.zone-manager{margin-top:1rem;padding:1rem;background:var(--surface);border:1px solid var(--border);border-radius:8px}.zone-manager-bottom{display:flex;flex-direction:column;gap:.75rem}.zone-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.zone-toolbar-hint{flex:1 1 100%;margin:.25rem 0 0;font-size:.82rem}.zone-list-panel{display:flex;flex-direction:column;min-height:0}.zone-list-title{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;margin:0 0 .65rem}.zone-list-count{font-size:.75rem;font-weight:500;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:.1rem .45rem}.zone-list-panel .zone-list{max-height:240px;overflow-y:auto;margin-top:0}.zone-manager-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.zone-manager-head h2{font-size:1rem}.zone-list{list-style:none;margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.zone-save-form{display:flex;flex-direction:column;gap:.5rem}.zone-save-form input{width:100%;padding:.5rem .65rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.zone-save-actions{display:flex;flex-wrap:wrap;gap:.5rem}.zone-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.6rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:6px}.zone-list-info{display:flex;align-items:center;gap:.6rem}.zone-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.zone-list-actions{display:flex;gap:.35rem;flex-shrink:0}.rule-zone-panel{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}.rule-zone-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.rule-zone-field select{padding:.45rem .55rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.rule-zone-checkbox{grid-column:1 / -1;display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--muted)}.rule-zone-panel-simple{grid-template-columns:1fr}.link-btn{background:none;border:none;padding:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.link-btn:hover{opacity:.85}.rule-zone-link{font-size:.85rem;margin-top:.25rem}.camera-placeholder{display:flex;align-items:center;justify-content:center;height:100%;color:var(--muted);font-size:.9rem;padding:1rem;text-align:center}.camera-warning{background:#eab30826;border:1px solid rgba(234,179,8,.45);color:#fbbf24;font-size:.85rem;padding:.6rem .75rem;margin-bottom:.5rem;border-radius:6px;line-height:1.4}.camera-source-picker{margin-bottom:.75rem;display:flex;flex-direction:column;gap:.5rem}.camera-source-label{font-size:.85rem;color:var(--muted)}.camera-source-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.camera-source-row select{flex:1 1 220px;min-width:180px;padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:inherit}.camera-source-url{width:100%;padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:inherit;font-size:.9rem}.camera-source-hint{margin-bottom:0}.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text);padding:.55rem .9rem;font-size:.85rem}.btn-secondary:hover:not(:disabled){background:#3b82f61f;border-color:var(--accent)}.camera-source-divider{display:flex;align-items:center;gap:.75rem;color:var(--muted);font-size:.8rem;margin:.25rem 0}.camera-source-divider:before,.camera-source-divider:after{content:"";flex:1;height:1px;background:var(--border)}.stream-panel{margin-bottom:.75rem;padding:1rem;border-radius:10px;border:1px solid var(--border);background:var(--bg)}.stream-panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.stream-panel-head h3{font-size:.95rem;font-weight:600}.btn-sm{padding:.4rem .85rem;font-size:.82rem}.stream-scanning,.stream-empty{color:var(--muted);font-size:.85rem;margin-bottom:.5rem}.stream-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.stream-item{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .75rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);transition:border-color .15s}.stream-item.live{border-color:var(--success);background:#22c55e14}.stream-item-browser{border-style:dashed}.stream-item-hint{font-size:.75rem;color:var(--muted)}.btn-accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn-accent:hover:not(:disabled){filter:brightness(1.08)}.stream-item-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}.stream-item-label{font-size:.9rem;font-weight:500}.stream-item-meta{font-size:.75rem;color:var(--muted)}.stream-item-warn{font-size:.75rem;color:var(--warning)}.stream-item-actions{flex-shrink:0}.stream-registered-block{padding:.75rem 0;border-top:1px solid var(--border);margin-top:.5rem}.stream-registered-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.5rem}.stream-item-registered.live{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.stream-rtsp-block{padding-top:.75rem;border-top:1px solid var(--border)}.stream-rtsp-row{display:flex;gap:.5rem;align-items:center}.stream-rtsp-row .camera-source-url{flex:1;margin:0}.hint{color:var(--muted);font-size:.85rem;margin-bottom:.75rem}.rule-input textarea{width:100%;padding:.75rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;font-family:inherit;margin-bottom:.75rem}button{padding:.6rem 1.2rem;border-radius:8px;border:none;background:var(--accent);color:#fff;font-weight:500;cursor:pointer;transition:background .15s}button:hover:not(:disabled){background:var(--accent-hover)}button:disabled{opacity:.5;cursor:not-allowed}.btn-danger{background:transparent;border:1px solid var(--danger);color:var(--danger);padding:.4rem .8rem;font-size:.85rem}.btn-danger:hover{background:#ef444426}.error{color:var(--danger);font-size:.85rem;margin-top:.5rem}.rules-list,.alerts-list{list-style:none;margin-top:1rem}.rules-list li,.alerts-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:.75rem;border-radius:8px;border:1px solid var(--border);margin-bottom:.5rem}.alerts-list li{cursor:pointer;transition:border-color .15s}.alerts-list li:hover,.alerts-list li.selected{border-color:var(--accent)}.alerts-list li.new{border-color:var(--warning);background:#f59e0b14}.rule-meta{display:block;font-size:.75rem;color:var(--muted);margin-top:.25rem}.rule-original{font-size:.85rem;color:var(--muted);margin-top:.35rem;font-style:italic}.empty{color:var(--muted);justify-content:center!important;font-size:.9rem}.badge-new{background:var(--warning);color:#000;font-size:.7rem;padding:.15rem .5rem;border-radius:999px;margin-left:.5rem}.email-tag{font-size:.7rem;color:var(--success);white-space:nowrap}.alert-detail-panel .snapshot{width:100%;border-radius:8px;margin-bottom:.75rem}.alert-detail-panel .alert-video{width:100%;border-radius:8px;margin-bottom:.75rem;background:#000}.alert-detail-panel .metadata{font-size:.75rem;background:var(--bg);padding:.75rem;border-radius:8px;overflow-x:auto;color:var(--muted);max-height:120px}.rule-count-summary{color:var(--accent, #6ea8fe)}.rule-purpose-badge{display:inline-block;margin-left:.35rem;padding:.1rem .4rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;vertical-align:middle}.rule-purpose-badge.count{background:#2ea0432e;color:#3fb950}.rule-purpose-badge.alert{background:#d299222e;color:#d29922}.audit-log-panel{margin-top:1rem}.audit-log-head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.audit-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px}.audit-table{width:100%;border-collapse:collapse;font-size:.875rem}.audit-table th,.audit-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid var(--border);vertical-align:top}.audit-table th{background:var(--surface-2, rgba(255, 255, 255, .04));font-weight:600;white-space:nowrap}.audit-details-cell{display:flex;flex-direction:column;gap:.15rem;max-width:220px}.audit-row-denied{opacity:.85}.audit-load-more{margin-top:.75rem}.audit-log-count{margin-bottom:.5rem}.admin-main{padding:0;max-width:1200px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem;margin-bottom:2rem}.admin-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem;display:flex;flex-direction:column;gap:.25rem}.admin-stat-value{font-size:1.75rem;font-weight:600;color:var(--accent)}.admin-stat-label{font-size:.85rem;color:var(--muted)}.admin-users-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.admin-users h2{font-size:1.1rem;font-weight:600}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;background:var(--surface)}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th,.admin-table td{padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--border)}.admin-table th{color:var(--muted);font-weight:500;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}.admin-table tbody tr:last-child td{border-bottom:none}.admin-row-inactive{opacity:.55}.admin-you{color:var(--accent);font-size:.85rem}.admin-toggle input{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.admin-toggle input:disabled{cursor:not-allowed;opacity:.5}.rule-form-actions{display:flex;gap:.5rem;flex-wrap:wrap}.rule-spec-panel{margin-top:1rem;padding:1rem;background:var(--bg);border:1px solid var(--border);border-radius:10px}.rule-spec-panel h3{font-size:.95rem;margin-bottom:.5rem}.rule-spec-editor{width:100%;font-family:ui-monospace,Cascadia Code,monospace;font-size:.78rem;padding:.75rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);resize:vertical}.rule-schedule-panel{margin:.75rem 0;padding:.75rem;border:1px dashed var(--border);border-radius:8px}.rule-schedule-days{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0}.schedule-day-btn{padding:.35rem .55rem;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:.75rem;cursor:pointer}.schedule-day-btn.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.rule-schedule-row{display:flex;gap:.75rem;flex-wrap:wrap;margin:.5rem 0}.rule-schedule-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.8rem;color:var(--muted)}.rule-draw-actions{display:flex;gap:.5rem;flex-wrap:wrap}.rule-list-actions{display:flex;flex-direction:column;gap:.35rem;flex-shrink:0}.badge-inactive{margin-left:.5rem;font-size:.68rem;padding:.1rem .45rem;border-radius:999px;background:var(--border);color:var(--muted)}.badge-fp{background:#ef444433;color:var(--danger);font-size:.7rem;padding:.15rem .5rem;border-radius:999px;margin-left:.5rem}.alert-feedback-actions{display:flex;gap:.5rem;margin-bottom:.75rem;flex-wrap:wrap}.zone-editor-line,.zone-editor-draft-line{stroke:var(--warning);stroke-width:3}.zone-editor-draft-line{stroke:var(--accent);opacity:.85}.calendar-page{display:flex;flex-direction:column;gap:1.25rem}.calendar-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:1.25rem;align-items:start}.calendar-rules-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.calendar-rules-head h2{font-size:1rem;margin:0}.calendar-rules-count{font-size:.75rem;color:var(--muted);background:var(--bg);padding:.2rem .5rem;border-radius:999px}.calendar-rule-list{list-style:none;display:flex;flex-direction:column;gap:.5rem;max-height:70vh;overflow-y:auto}.calendar-rule-item{width:100%;text-align:left;padding:.75rem;border-radius:10px;border:1px solid var(--border);background:var(--bg);cursor:pointer;transition:border-color .15s,background .15s}.calendar-rule-item:hover{border-color:var(--accent)}.calendar-rule-item.selected{border-color:var(--accent);background:var(--accent-soft)}.calendar-rule-title{display:block;font-size:.88rem;font-weight:600;margin-bottom:.25rem}.calendar-rule-meta{display:block;font-size:.72rem;color:var(--muted);line-height:1.35}.calendar-rule-status{display:flex;gap:.35rem;margin-top:.4rem;flex-wrap:wrap}.status-dot{font-size:.68rem;padding:.12rem .45rem;border-radius:999px;background:var(--border);color:var(--muted)}.status-dot.live{background:#22c55e2e;color:var(--success)}.status-dot.off{background:#8b9cb326;color:var(--muted)}.calendar-main{display:flex;flex-direction:column;gap:1.25rem;min-width:0}.calendar-editor-head{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.calendar-editor-head h2{font-size:1.05rem;margin-bottom:.25rem}.status-pill{font-size:.78rem;padding:.35rem .75rem;border-radius:999px;font-weight:600}.status-pill.on{background:#22c55e26;color:var(--success)}.status-pill.off{background:#8b9cb326;color:var(--muted)}.calendar-presets{margin-bottom:1rem}.calendar-preset-btns{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.35rem}.schedule-field-label{font-size:.78rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.schedule-editor{padding:1rem;background:var(--bg);border:1px solid var(--border-subtle);border-radius:10px}.schedule-editor-compact{padding:.75rem;margin-top:.75rem}.schedule-enable-row{display:flex;align-items:center;gap:.5rem;font-size:.9rem;cursor:pointer}.schedule-editor-fields{margin-top:1rem;display:flex;flex-direction:column;gap:.85rem}.schedule-field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.schedule-field select,.schedule-field textarea{padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-family:inherit}.schedule-days-row,.schedule-checkboxes{display:flex;flex-direction:column;gap:.35rem}.calendar-save-row{display:flex;align-items:center;gap:1rem;margin-top:1rem;flex-wrap:wrap}.calendar-hint{margin-top:.35rem}.weekly-grid-wrap h3{font-size:.95rem;margin-bottom:.75rem}.weekly-grid{display:flex;flex-direction:column;gap:1px;overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--border)}.weekly-grid-head,.weekly-grid-row{display:grid;grid-template-columns:44px repeat(7,minmax(28px,1fr));gap:1px}.weekly-grid-corner,.weekly-grid-day-head,.weekly-grid-hour,.weekly-grid-cell{background:var(--surface);min-height:18px}.weekly-grid-day-head{font-size:.68rem;font-weight:600;text-align:center;padding:.35rem .15rem;color:var(--muted)}.weekly-grid-hour{font-size:.62rem;color:var(--muted);display:flex;align-items:center;justify-content:flex-end;padding-right:.35rem}.weekly-grid-cell{min-height:14px;background:#ef444414}.weekly-grid-cell.active{background:#22c55e59}.calendar-holidays-overview h3{font-size:.95rem;margin-bottom:.75rem}.calendar-holiday-tags{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.calendar-holiday-tags li{font-size:.78rem;padding:.25rem .55rem;border-radius:6px;background:var(--bg);border:1px solid var(--border);font-variant-numeric:tabular-nums}@media (max-width: 900px){.calendar-layout{grid-template-columns:1fr}.calendar-rule-list{max-height:none}}.archive-page{display:flex;flex-direction:column;gap:1rem}.archive-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:.75rem 0}.archive-period-group{display:flex;flex-wrap:wrap;gap:.5rem}.archive-plan-hint{margin:0}.archive-results-period{font-weight:400;color:var(--text-muted, #888);font-size:.9em}.rule-composer-select{max-width:10rem;min-width:7rem;font-size:.85rem;padding:.35rem .5rem}.org-relay-panel{display:flex;flex-direction:column;gap:.75rem}.org-relay-list{margin:0}.org-relay-row{display:grid;grid-template-columns:9rem 1fr;gap:.5rem;margin-bottom:.5rem}.org-relay-row dt{font-weight:600}.org-relay-row dd{margin:0;word-break:break-all}.org-relay-row code{font-size:.85rem}.org-relay-toggle{display:flex;align-items:center;gap:.5rem;margin:.5rem 0}.org-relay-card .org-card-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.archive-videos-toggle{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.archive-filters{margin:.75rem 0;padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--surface-2, rgba(255, 255, 255, .02))}.archive-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem}.archive-filters-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.archive-filters-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.audit-logs-page{display:flex;flex-direction:column;gap:1rem}.audit-org-picker{margin-bottom:.75rem;max-width:20rem}.audit-org-picker label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.audit-filters{margin-top:.75rem}.audit-filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem}.audit-filters-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.audit-filters-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.archive-clip{max-width:min(100%,420px);max-height:240px;border-radius:8px;background:#111}.counting-page{display:flex;flex-direction:column;gap:1rem}.counting-filters{display:flex;flex-direction:column;gap:1rem;margin-top:.75rem}.counting-filter-group{display:flex;flex-direction:column;gap:.5rem}.counting-period-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:.75rem}.counting-filters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.75rem;align-items:end}.counting-filters-actions{display:flex;align-items:flex-end;padding-bottom:.1rem}@media (max-width: 640px){.counting-period-row{grid-template-columns:1fr}}.counting-kpis{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem}.counting-kpi{display:flex;flex-direction:column;min-width:5rem}.counting-kpi-value{font-size:1.75rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--accent)}.counting-kpi-label{font-size:.78rem;color:var(--muted)}.counting-table{width:100%;margin-top:1rem;border-collapse:collapse;font-size:.875rem}.counting-table th,.counting-table td{text-align:left;padding:.4rem .5rem;border-bottom:1px solid var(--border)}.counting-hourly{list-style:none;display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.counting-hourly li{display:grid;grid-template-columns:8.5rem 1fr auto;gap:.5rem;align-items:center;font-size:.82rem}.counting-bar-track{height:.5rem;background:var(--border);border-radius:4px;overflow:hidden}.counting-bar-fill{height:100%;background:var(--accent);border-radius:4px;min-width:2px}.counting-hour-value{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.counting-error p{color:var(--danger, #e55);margin:0}.archive-search-form{display:flex;gap:.5rem;margin-top:.75rem}.archive-search-form input{flex:1}.archive-list{list-style:none;display:flex;flex-direction:column;gap:.65rem;margin-top:.75rem}.archive-list li,.archive-list-item{padding:.75rem;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.archive-list-item{display:flex;gap:.85rem;align-items:flex-start}.archive-item-body{flex:1;min-width:0}.archive-clip{width:120px;height:68px;object-fit:cover;border-radius:6px;border:1px solid var(--border);flex-shrink:0;background:#000}.archive-clip-loading{font-size:.75rem;flex-shrink:0}.archive-item-head{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}.archive-score{font-size:.75rem;color:var(--accent);font-variant-numeric:tabular-nums}.archive-meta{display:block;font-size:.78rem;color:var(--muted);margin-top:.35rem}.simulation-panel{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.simulation-panel-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.simulation-panel h3{font-size:.95rem;margin:0}.simulation-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin:.75rem 0}.simulation-stats dt{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.simulation-stats dd{font-size:1.25rem;font-weight:600;margin:.15rem 0 0}.simulation-warning{font-size:.85rem;color:#f59e0b;margin-bottom:.5rem}.simulation-samples{list-style:none;font-size:.82rem}.simulation-samples li{display:flex;justify-content:space-between;gap:.5rem;padding:.35rem 0;border-top:1px solid var(--border)}.simulation-samples time{color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.settings-webhook-form{display:flex;gap:.5rem;margin-top:.75rem}.settings-webhook-form input{flex:1}.success-hint{color:var(--accent);margin-top:.5rem}.settings-escalation-form{display:grid;gap:.75rem;margin-top:1rem}.settings-escalation-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}.settings-escalation-form input{padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.95rem}.live-wall-page{display:flex;flex-direction:column;gap:.75rem;min-height:calc(100vh - var(--topbar-height) - 4rem)}.live-wall-page.live-wall-fullscreen{min-height:100vh;padding:1rem;background:#000}.live-wall-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.live-wall-grid{display:grid;gap:.65rem;flex:1;min-height:400px}.live-wall-tile{display:flex;flex-direction:column;border:2px solid var(--border);border-radius:10px;overflow:hidden;background:#000;min-height:180px}.live-wall-tile-alert{border-color:#ef4444;box-shadow:0 0 0 2px #ef444459}.live-wall-tile-head{display:flex;align-items:center;gap:.5rem;padding:.4rem .65rem;background:#000000bf;font-size:.78rem}.live-wall-meta{margin-left:auto;color:var(--muted)}.live-wall-alert-badge{background:#ef4444;color:#fff;font-size:.65rem;font-weight:700;padding:.15rem .4rem;border-radius:4px;letter-spacing:.04em}.live-wall-frame{flex:1;display:flex;align-items:center;justify-content:center;min-height:0}.live-wall-frame img{width:100%;height:100%;object-fit:contain}.live-wall-empty{flex:1;display:flex;align-items:center;justify-content:center}.org-page{display:flex;flex-direction:column;gap:1.25rem;max-width:920px}.org-page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem}.org-page-intro{margin:0;max-width:640px}.org-switcher{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem}.org-switcher select{padding:.45rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--text);min-width:220px}.org-card{padding:1rem 1.1rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.org-card-muted{opacity:.95}.org-card h3{margin:0 0 .85rem;font-size:1rem}.org-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.org-card-head h2{margin:0;font-size:1.15rem}.org-stats-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:.75rem;font-size:.88rem;color:var(--muted)}.org-tree{display:flex;flex-direction:column;gap:.65rem}.org-site-block{border:1px solid var(--border);border-radius:10px;background:var(--bg);overflow:hidden}.org-site-summary{display:flex;align-items:center;gap:.65rem;padding:.65rem .85rem;cursor:pointer;list-style:none}.org-site-summary::-webkit-details-marker{display:none}.org-site-count{margin-left:auto;font-size:.78rem;color:var(--muted)}.org-camera-list{list-style:none;margin:0;padding:0 .85rem .85rem;display:flex;flex-direction:column;gap:.5rem}.org-camera-item,.org-member-item{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.65rem .75rem;border:1px solid var(--border-subtle);border-radius:8px;background:var(--surface)}.org-item-actions{display:flex;gap:.35rem;flex-wrap:wrap}.org-inline-form{display:flex;flex-direction:column;gap:.5rem;padding:0 .85rem .85rem}.org-inline-form form{display:flex;flex-direction:column;gap:.45rem}.org-inline-form input{padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.org-inline-actions{display:flex;gap:.45rem;flex-wrap:wrap}.org-add-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.85rem;align-items:center}.org-add-row input,.org-add-row select{flex:1 1 180px;padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.org-member-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.org-role-select{padding:.35rem .5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:.85rem}.org-role-badge{font-size:.82rem;color:var(--muted);background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:.15rem .55rem}.billing-page{display:flex;flex-direction:column;gap:1.25rem;max-width:980px}.billing-current .billing-price-block{text-align:right}.billing-price{display:block;font-size:1.35rem;font-weight:700}.billing-trial-hint{margin:.5rem 0 0}.billing-usage-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-top:1rem}.billing-usage-item{padding:.65rem .75rem;border-radius:10px;border:1px solid var(--border);background:var(--bg)}.billing-usage-item.over{border-color:var(--danger, #ef4444)}.billing-usage-label{display:block;font-size:.78rem;color:var(--muted);margin-bottom:.2rem}.billing-limit-warning{margin:.75rem 0 0;font-size:.88rem}.billing-plans-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.85rem}.billing-plan-card{display:flex;flex-direction:column;gap:.5rem;padding:.85rem;border-radius:12px;border:1px solid var(--border);background:var(--bg)}.billing-plan-card.current{border-color:var(--accent, #3b82f6);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent, #3b82f6) 35%,transparent)}.billing-plan-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.billing-plan-head h4{margin:0;font-size:1rem}.billing-plan-badge{font-size:.72rem;padding:.12rem .45rem;border-radius:999px;background:color-mix(in srgb,var(--accent, #3b82f6) 15%,transparent);color:var(--accent, #3b82f6)}.billing-plan-price{margin:0;font-size:1.05rem;font-weight:600}.billing-plan-price span{font-size:.82rem;font-weight:400;color:var(--muted)}.billing-plan-features{margin:0;padding-left:1.1rem;font-size:.85rem;color:var(--muted);flex:1}.billing-plan-cta{width:100%;margin-top:auto}.billing-status-pill{display:inline-block;font-size:.78rem;padding:.12rem .5rem;border-radius:999px;border:1px solid var(--border)}.billing-status-ok{color:#16a34a;border-color:color-mix(in srgb,#16a34a 40%,var(--border))}.billing-status-warn{color:#ca8a04;border-color:color-mix(in srgb,#ca8a04 40%,var(--border))}.billing-status-bad{color:#dc2626;border-color:color-mix(in srgb,#dc2626 40%,var(--border))}.billing-contact-form{display:grid;gap:.75rem;max-width:420px}.billing-contact-form label{display:flex;flex-direction:column;gap:.35rem;font-size:.88rem}.billing-contact-form input{padding:.5rem .65rem;border-radius:8px;border:1px solid var(--border);background:var(--bg);color:var(--text)}.billing-contact-actions{display:flex;align-items:center;gap:.75rem}.billing-saved{margin:0;color:#16a34a}.billing-payment-placeholder{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem}.billing-invoices-table-wrap{overflow-x:auto}.billing-invoices-table{width:100%;border-collapse:collapse;font-size:.88rem}.billing-invoices-table th,.billing-invoices-table td{padding:.55rem .65rem;text-align:left;border-bottom:1px solid var(--border)}.billing-invoices-table th{color:var(--muted);font-weight:500;font-size:.8rem}
