@import"https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";:root{font-family:Manrope,sans-serif;color:#111827;background:#f4f7fb;--panel-bg: #ffffff;--panel-border: #d8e2ef;--ink-muted: #64748b;--accent: #0b3a67;--accent-soft: #e4effb;--danger: #9f1239;--success: #0f766e}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;min-height:100vh;background:radial-gradient(circle at 6% 4%,#dbeafe,#dbeafe00 38%),radial-gradient(circle at 94% 0%,#fef3c7,#fef3c700 30%),#f4f7fb}.app-shell{width:100%;min-height:100vh;padding:1rem;display:grid;grid-template-columns:260px minmax(0,1fr);gap:.95rem}.app-sidebar{position:sticky;top:1rem;height:calc(100vh - 2rem);min-height:0;border:1px solid var(--panel-border);border-radius:16px;background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:.8rem;display:flex;flex-direction:column;justify-content:space-between;gap:.9rem}.app-sidebar-top{min-height:0;display:grid;align-content:start;gap:.85rem;overflow:auto;padding-right:.08rem}.app-brand{display:grid;gap:.2rem;padding:.15rem .15rem .45rem;border-bottom:1px solid #dbe6f2}.app-brand h1{margin:0;font-size:1.15rem}.app-brand p{margin:0;font-size:.83rem}.sidebar-group{display:grid;gap:.34rem}.sidebar-group-title{margin:0;padding:0 .2rem;color:#64748b;font-size:.76rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.sidebar-link{width:100%;text-align:left;border:1px solid #d6e3f1;background:#f8fbff;border-radius:10px;padding:.5rem .62rem;font-size:.87rem;font-weight:700}.sidebar-link.active{background:#e8f2ff;color:#0b3a67;border-color:#9cbde0}.sidebar-link.active:hover:not(:disabled){background:#dcecff;border-color:#85abd4}.app-sidebar-bottom{display:grid;gap:.55rem;padding-top:.55rem;border-top:1px solid #dbe6f2}.session-card{border:1px solid #dbe6f2;border-radius:10px;background:#f8fbff;padding:.5rem;display:grid;gap:.2rem}.session-email,.session-role{margin:0}.session-role{color:#475569;font-size:.82rem}.sidebar-logout{width:100%}.app-main{min-width:0;min-height:0;display:grid;gap:.8rem}.app-main.with-workspace-switcher{grid-template-rows:auto minmax(0,1fr)}.workspace-switcher{border:1px solid var(--panel-border);border-radius:14px;background:#ffffffeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.55rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.65rem}.workspace-switcher-meta{display:grid;gap:.12rem}.workspace-switcher-title{margin:0;color:#64748b;font-size:.76rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}.workspace-switcher-value{margin:0;color:#0f172a;font-size:.86rem;font-weight:700}.workspace-switcher-actions{display:inline-flex;align-items:center;gap:.4rem}.workspace-switch-button{border-radius:999px;padding:.34rem .64rem}.workspace-switch-button.active{border-color:#8fb1d4;background:#e8f2ff;color:#0b3a67}.dashboard-shell .app-main{height:calc(100vh - 2rem)}.dashboard-shell .app-main main{min-height:0;overflow:hidden}main{max-width:none;margin:0;padding:0;display:grid;gap:.8rem;width:100%}h1{margin:0;font-size:1.2rem}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;padding:.85rem .9rem;border:1px solid var(--panel-border);border-radius:14px;background:#ffffffe6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.toolbar-actions{display:flex;align-items:center;gap:.55rem}label{display:inline-flex;align-items:center;gap:.45rem;font-size:.9rem}select,button,input:not([type=checkbox]){border:1px solid #c4d3e5;background:#fff;color:#0f172a;border-radius:8px;padding:.48rem .62rem;font-weight:600;transition:all .16s ease}button{cursor:pointer}button:hover:not(:disabled){border-color:#86a7c8;background:#f7fbff}button:disabled{opacity:.6;cursor:not-allowed}.ui-btn{font-weight:700}.ui-btn-selectable{border-color:#c7d8ea;background:#f4f8fd;color:#133455}.ui-btn-selectable:hover:not(:disabled){border-color:#93b2d0;background:#deebf8}.ui-btn-selected{border-color:#082b4a;background:#0b3a67;color:#fff}.ui-btn-selected:hover:not(:disabled){border-color:#0a2440;background:#0a2f54}.ui-btn-primary{border-color:#0b3a67;background:#0b3a67;color:#fff}.ui-btn-primary:hover:not(:disabled){border-color:#124d87;background:#124d87}.ui-btn-danger{border-color:#fca5a5;color:#991b1b;background:#fff1f2}.ui-btn-danger:hover:not(:disabled){border-color:#f87171;background:#ffe4e6}.admin-layout{display:grid;grid-template-columns:minmax(460px,.95fr) minmax(500px,1.25fr);gap:.9rem}.admin-layout.no-preview{grid-template-columns:minmax(460px,860px)}.admin-workspace{display:grid;gap:.9rem;min-height:0}.admin-cameras-list-layout{grid-template-columns:minmax(0,1fr)}.admin-editor-layout{grid-template-columns:minmax(620px,1.25fr) minmax(440px,.95fr);align-items:start}.admin-settings-layout{grid-template-columns:minmax(0,1fr)}.camera-table-expanded{max-height:none}.camera-batch-bar{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.55rem}.camera-batch-bar h2{margin:0;font-size:.96rem}.camera-batch-actions{display:flex;flex-wrap:wrap;gap:.4rem}.camera-detail-panel{min-width:0;display:grid;gap:.9rem;align-content:start}.editor-stream-panel{min-height:0}.editor-empty-panel{min-height:320px;display:grid;place-items:center}.stream-inline-actions{margin-top:.55rem;display:flex;flex-wrap:wrap;gap:.45rem}.camera-table,.stream-panel{border:1px solid var(--panel-border);border-radius:14px;background:var(--panel-bg);padding:.7rem;box-shadow:0 10px 24px #0c2a4e14}.camera-table{overflow:auto;max-height:560px;min-height:0;align-self:start}.stream-panel{min-height:420px}.activation-toggle{min-width:86px;justify-content:center}.activation-toggle.is-active{border-color:#16a34a;background:#f0fdf4;color:#166534}.activation-toggle.is-active:hover:not(:disabled){border-color:#15803d;background:#dcfce7}.studio-panel{display:grid;grid-template-rows:auto auto;gap:.9rem}.studio-panel.admin-section-cameras{grid-template-rows:minmax(0,1fr)}.model-panel{border:1px solid var(--panel-border);border-radius:14px;background:#fff;box-shadow:0 10px 24px #0c2a4e14;padding:.8rem;display:grid;gap:.65rem}.model-card{border:1px solid #dbe6f2;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbff);padding:.7rem;display:grid;gap:.35rem}.model-card h2{margin:0;font-size:.96rem;color:#0b3a67}.model-card p{margin:0}.model-card ul{margin:0;padding-left:1.05rem;display:grid;gap:.2rem}.detection-settings-card .mono{margin:0}.settings-editor{display:grid;gap:.55rem}.settings-model-field,.settings-threshold-field{display:grid;gap:.35rem;align-items:start}.settings-threshold-inputs{display:grid;grid-template-columns:minmax(200px,1fr) 120px;gap:.55rem;align-items:center}.settings-threshold-inputs input[type=range]{width:100%;margin:0}.settings-class-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:.35rem;border:1px solid #dbe6f2;border-radius:10px;padding:.5rem;max-height:230px;overflow:auto;background:#f8fbff}.settings-class-option{display:inline-flex;align-items:center;gap:.38rem;border:1px solid #dbe6f2;border-radius:8px;background:#fff;padding:.3rem .4rem;font-size:.82rem}.settings-class-option input[type=checkbox]{margin:0}.tracking-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.summary-card,.tracking-panel{border:1px solid var(--panel-border);border-radius:12px;background:#fff;padding:.8rem}.summary-card h2{margin:0;font-size:.95rem}.summary-card p{margin:.45rem 0 0}table{width:100%;border-collapse:collapse}th,td{text-align:left;border-bottom:1px solid #e2e8f0;padding:.55rem .4rem;font-size:.88rem;vertical-align:middle}th{position:sticky;top:0;background:#f9fbff;z-index:1}tr.is-selected{background:#e4effb}.mono{font-family:IBM Plex Mono,monospace;font-size:.8rem;color:#334155}.switch{display:inline-flex;align-items:center}.switch input[type=checkbox]{width:16px;height:16px;margin:0}.stream-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.6rem;gap:.7rem}.stream-head strong{color:#0b2f52}.stream-stage{position:relative;width:100%;aspect-ratio:16 / 9;border:1px solid #c6d4e4;border-radius:10px;overflow:hidden;background:linear-gradient(140deg,#0b3a6733,#0b3a6700),#081120;cursor:crosshair}.stream-stage.tool-line{outline:2px solid rgba(25,113,194,.22)}.stream-stage.tool-zone{outline:2px solid rgba(234,88,12,.28)}.stream-stage.tool-passive{outline:none;cursor:default}.stream-panel .stream-stage img{width:100%;height:100%;object-fit:contain;display:block;border:0;border-radius:0;background:#0b1221}.stream-status{position:absolute;left:.6rem;right:.6rem;bottom:.6rem;padding:.38rem .52rem;border-radius:8px;border:1px solid rgba(191,219,254,.75);background:#eff6ffeb;color:#1e3a8a;font-size:.8rem;font-weight:600;line-height:1.3;pointer-events:none;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.stream-status.is-error{border-color:#fca5a5d9;background:#fef2f2ed;color:#991b1b}.stream-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none}.saved-line,.draft-line{fill:none;stroke-width:5;stroke-linecap:round}.saved-line{stroke:#2563ebf2}.ghost-line{opacity:.42}.draft-line{stroke:#f59e0bfa;stroke-dasharray:20 10}.direction-line,.direction-head{fill:none;stroke:#dc2626f5;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.ghost-direction{stroke:#94a3b8d1;stroke-width:3}.direction-label{fill:#b91c1c;font-size:26px;font-weight:700;paint-order:stroke;stroke:#fffffff0;stroke-width:4;text-anchor:middle;dominant-baseline:middle}.saved-zone,.draft-zone{stroke-width:3}.saved-zone{fill:#14b8a633;stroke:#0d9488f2}.ghost-zone{opacity:.4}.draft-zone{fill:#fb923c33;stroke:#ea580cf2;stroke-dasharray:16 8}.zone-outline{fill:none;stroke:#475569d9;stroke-width:2;stroke-dasharray:8 6}.saved-point,.draft-point{stroke-width:3}.saved-point{fill:#f8fafc;stroke:#1e40aff2}.draft-point{fill:#fff7ed;stroke:#c2410cf2}.geometry-panel{border:1px solid var(--panel-border);border-radius:14px;background:#fff;padding:.8rem;display:grid;gap:.8rem;box-shadow:0 10px 24px #0c2a4e14}.geometry-header{display:flex;align-items:center;justify-content:space-between;gap:.7rem}.geometry-header h2{margin:0;font-size:1rem}.geometry-tools{display:inline-flex;gap:.35rem;border:1px solid #cfe0f2;border-radius:999px;padding:.22rem;background:#f5f9ff}.geometry-tools button{border-radius:999px;border-color:transparent;min-width:120px;font-weight:700}.geometry-tools button.active{background:var(--accent);color:#fff;border-color:#0b3a67}.geometry-mode-status{margin:0;font-size:.88rem;color:#475569}.editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.editor-header h2{margin:0;font-size:1.05rem}.editor-header p{margin:.2rem 0 0}.editor-split{display:grid;gap:.7rem}.editor-block{border:1px solid #dbe6f2;border-radius:12px;background:#fbfdff;padding:.7rem;display:grid;gap:.55rem}.editor-block.create-block{border-left:4px solid #16a34a}.editor-block.edit-block{border-left:4px solid #1d4ed8}.editor-block.is-active{box-shadow:0 0 0 2px #0b3a671f;background:#fff}.editor-block-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem}.editor-block-head-actions{display:inline-flex;align-items:center;gap:.4rem}.editor-block-head h3{margin:0;font-size:.98rem;color:#0b3a67}.editor-block-hint{margin:0;color:#475569;font-size:.84rem}.editor-mode-gate{border:1px solid #dbe6f2;border-radius:12px;background:#fbfdff;padding:.8rem;display:grid;gap:.6rem}.editor-mode-gate h3{margin:0;font-size:.98rem;color:#0b3a67}.editor-mode-gate-actions{display:flex;flex-wrap:wrap;gap:.45rem}.geometry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}.geometry-grid-advanced .geometry-card{align-content:start}.geometry-card{border:1px solid #dbe6f2;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbff);padding:.7rem;display:grid;gap:.55rem}.geometry-card h3{margin:0;font-size:.95rem;color:#0b3a67}.geometry-card-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.geometry-list{display:grid;gap:.35rem;max-height:160px;overflow:auto;padding-right:.15rem}.geometry-list-item{display:flex;align-items:center;justify-content:space-between;gap:.4rem;text-align:left;font-weight:600}.geometry-list-item.active{border-color:#2c77c7;background:#e9f3ff}.editor-accordion-list{display:grid;gap:.45rem}.editor-accordion-item{border:1px solid #d8e4f0;border-radius:10px;background:#f8fbff}.editor-accordion-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding:.5rem .6rem;font-weight:700;color:#123556}.editor-accordion-item summary::-webkit-details-marker{display:none}.editor-accordion-item summary:hover{background:#eaf3fe}.editor-accordion-item.active{border-color:#0b3a67;background:#dcecff}.editor-accordion-item.active summary{color:#0a2f54}.geometry-card p{margin:0}.line-direction-control{display:grid;gap:.35rem}.geometry-field{display:grid;gap:.35rem;align-items:initial}.geometry-field input{width:100%}.geometry-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:.45rem;overflow-x:auto}.geometry-actions>*{flex:0 0 auto}.user-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem}.kpi-card{border:1px solid var(--panel-border);border-radius:14px;background:linear-gradient(180deg,#fff,#f7fbff);padding:.85rem;box-shadow:0 10px 24px #0c2a4e14}.kpi-card h2{margin:0;font-size:.95rem;color:#0b3a67}.kpi-value{margin:.5rem 0 0;font-size:1.4rem;font-weight:700}.kpi-hint{margin:.4rem 0 0;color:var(--ink-muted);font-size:.86rem}.user-dashboard-layout{display:grid;grid-template-columns:minmax(620px,1.45fr) minmax(320px,.85fr);gap:.9rem}.summary-board,.event-feed{border:1px solid var(--panel-border);border-radius:14px;background:#fff;padding:.8rem;box-shadow:0 10px 24px #0c2a4e14}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.65rem;margin-bottom:.6rem}.panel-head h2{margin:0;font-size:1rem}.panel-head p{margin:0;font-size:.85rem}.summary-table-wrap{overflow:auto}.progress-split{margin-top:.35rem;height:8px;width:100%;border-radius:999px;overflow:hidden;display:flex;border:1px solid #d2dbe8;background:#f3f7fc}.progress-forward{background:#1d4ed8}.progress-backward{background:#f59e0b}.progress-enter{background:#0f766e}.progress-exit{background:#dc2626}.event-list{list-style:none;margin:0;padding:0;display:grid;gap:.5rem;max-height:620px;overflow:auto}.event-item{border:1px solid #dbe6f2;border-radius:10px;padding:.55rem;display:grid;gap:.4rem;background:#fbfdff}.event-main{display:flex;align-items:center;gap:.45rem}.event-badge{display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;font-weight:700;border-radius:999px;padding:.16rem .5rem;border:1px solid #cddcf0}.event-badge.line{background:#eff6ff;color:#1d4ed8}.event-badge.zone{background:#ecfeff;color:#0f766e}.event-meta{display:flex;flex-wrap:wrap;gap:.4rem .7rem;font-size:.82rem;color:var(--ink-muted)}.stream-panel img{width:100%;aspect-ratio:16 / 9;object-fit:cover;border:1px solid #dbe3ee;border-radius:8px;background:#0f172a}.toast-viewport{position:fixed;top:1rem;right:1rem;z-index:1200;width:min(380px,calc(100vw - 2rem));display:grid;gap:.55rem;pointer-events:none}.toast-item{pointer-events:auto;display:grid;grid-template-columns:1fr auto;align-items:start;gap:.6rem;border-radius:12px;padding:.68rem .78rem;border:1px solid #dbe3ee;box-shadow:0 10px 22px #0f172a2e;animation:toast-slide-in .2s ease-out both}.toast-item p{margin:0;font-size:.84rem;line-height:1.3}.toast-item button{border:0;background:transparent;color:inherit;padding:.1rem .2rem;min-width:auto;line-height:1;font-size:1rem;opacity:.75}.toast-item button:hover{opacity:1}.toast-error{border-color:#fecaca;background:#fff1f2;color:#9f1239}.toast-info{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.toast-success{border-color:#99f6e4;background:#f0fdfa;color:#0f766e}@keyframes toast-slide-in{0%{opacity:0;transform:translate3d(24px,0,0)}to{opacity:1;transform:translateZ(0)}}.muted{color:var(--ink-muted)}.auth-layout{min-height:100vh;display:grid;place-items:center;padding:1rem}.auth-card{width:min(420px,100%);border:1px solid #dbe3ee;border-radius:12px;background:#fff;padding:1rem;display:grid;gap:.8rem}.auth-card h1{margin:0}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.auth-tabs button.active{background:#0f172a;color:#fff}.auth-form{display:grid;gap:.65rem}.auth-form label{display:grid;gap:.35rem;font-size:.88rem}.dashboard-checkline{border:1px solid #dbe6f2;border-radius:8px;padding:.32rem .5rem;background:#f8fbff}.dashboard-checkline input[type=checkbox]{width:15px;height:15px;margin:0}.period-stepper{display:inline-flex;align-items:center;gap:.35rem}.period-stepper button{min-width:34px;padding:.32rem .45rem}.period-stepper input{width:82px;text-align:center}.dashboard-page{height:100%;min-height:0;overflow:hidden;display:flex;flex-direction:column}.dashboard-toolbar{gap:.58rem;padding:.46rem .58rem;display:flex;flex-direction:column;align-items:stretch;flex:0 0 auto;position:relative;z-index:40}.dashboard-toolbar-main{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.dashboard-toolbar-left{display:grid;gap:.16rem;min-width:220px;flex:1 1 auto}.dashboard-toolbar-left h1{font-size:1rem}.dashboard-toolbar-quick{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.35rem;position:relative}.dashboard-compact-chip{display:inline-flex;align-items:center;gap:.24rem;border:1px solid #dbe6f2;border-radius:999px;background:#f8fbff;padding:.2rem .45rem;font-size:.77rem;color:#0f172a;white-space:nowrap}.dashboard-compact-chip.dashboard-checkline{background:#eef6ff}.dashboard-toolbar-quick button.active{background:var(--accent);color:#fff;border-color:#0f3f72}.dashboard-dropdown{position:relative}.dashboard-dropdown summary{list-style:none}.dashboard-dropdown summary::-webkit-details-marker{display:none}.dashboard-dropdown-trigger{display:inline-flex;align-items:center;gap:.28rem;border:1px solid #dbe6f2;border-radius:999px;background:#f8fbff;padding:.2rem .48rem;font-size:.77rem;color:#0f172a;cursor:pointer;font-weight:600}.dashboard-dropdown[open] .dashboard-dropdown-trigger{border-color:#8fb1d4;background:#edf5ff}.dashboard-dropdown-menu{position:absolute;top:calc(100% + .34rem);right:0;min-width:250px;z-index:120;border:1px solid #d7e4f2;border-radius:12px;background:#fff;box-shadow:0 12px 24px #0f172a24;padding:.45rem;display:grid;gap:.38rem}.dashboard-dropdown-field{display:grid;gap:.3rem;align-items:start;font-size:.82rem}.dashboard-dropdown-field select{min-width:0;width:100%}.dashboard-dropdown-field-period .period-stepper{width:100%;justify-content:flex-start}.dashboard-period-presets{display:flex;flex-wrap:wrap;gap:.32rem}.dashboard-period-presets button{border-radius:999px;padding:.23rem .48rem;font-size:.76rem}.dashboard-camera-options{display:flex;flex-direction:column;flex-wrap:nowrap;max-height:260px;overflow-y:auto;overflow-x:hidden;gap:.34rem;padding-right:.12rem}.dashboard-camera-options button{width:100%;justify-content:flex-start;text-align:left}.dashboard-period-presets button.dashboard-camera-degraded{border-color:#f59e0b;background:#fffbeb;color:#92400e}.dashboard-period-presets button.dashboard-camera-unavailable{border-color:#cbd5e1;background:#f1f5f9;color:#64748b}.dashboard-content{min-height:0;flex:1 1 auto;display:grid;gap:.55rem;overflow:hidden}.dashboard-page.panel-view-stats .dashboard-content{overflow:visible;flex:0 0 auto;padding-right:0}.dashboard-page.panel-view-stats{overflow:auto;padding-right:.12rem}.dashboard-shell .app-main main.dashboard-page.panel-view-stats{overflow:auto}.dashboard-page.panel-view-stats .dashboard-content-single{grid-template-rows:auto;align-content:start}.dashboard-content-overview{grid-template-rows:minmax(0,2fr) minmax(0,1fr)}.dashboard-content-single{grid-template-rows:minmax(0,1fr)}.dashboard-primary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;min-height:0}.dashboard-primary-grid>.dashboard-panel-primary{min-height:0}.dashboard-single-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.55rem;min-height:0}.dashboard-secondary-grid{display:grid;grid-template-rows:minmax(0,1fr);gap:.55rem;min-height:0}.dashboard-panel{border:1px solid #dbe6f2;border-radius:14px;background:#fff;padding:.55rem;display:flex;flex-direction:column;gap:.45rem;min-height:0;box-shadow:0 10px 24px #0c2a4e14;position:relative;z-index:1}.dashboard-panel-primary,.dashboard-panel-single{min-height:0}.dashboard-panel-head{display:flex;justify-content:space-between;align-items:center;gap:.6rem}.dashboard-panel-head h2{margin:0;font-size:1rem;display:flex;align-items:center;gap:.35rem}.dashboard-panel-head-actions{display:inline-flex;align-items:center;gap:.4rem;position:relative}.dashboard-panel-head-right{display:flex;align-items:center;gap:.4rem}.panel-glyph{width:18px;height:18px;border-radius:6px;display:inline-block}.panel-glyph.track{background:#3b82f6}.panel-glyph.line{background:#06b6d4}.panel-glyph.zone{background:#10b981}.dashboard-list-filters{display:grid;gap:.32rem;border:1px solid #dde6f3;border-radius:10px;background:#f8fbff;padding:.38rem}.dashboard-filter-row{display:grid;gap:.26rem}.dashboard-filter-label{font-size:.76rem;font-weight:700;color:#334155}.dashboard-filter-buttons{display:flex;flex-wrap:wrap;gap:.3rem}.dashboard-filter-buttons .ui-btn{border-radius:999px;padding:.2rem .5rem;font-size:.72rem;line-height:1.2}.dashboard-filter-buttons-inline{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.08rem}.dashboard-filter-buttons-inline .ui-btn{white-space:nowrap}.dashboard-filter-buttons .ui-btn.dashboard-camera-degraded{border-color:#f59e0b;background:#fffbeb;color:#92400e}.dashboard-filter-buttons .ui-btn.dashboard-camera-unavailable{border-color:#cbd5e1;background:#f1f5f9;color:#64748b}.dashboard-panel-tabs{display:flex;flex-wrap:wrap;gap:.4rem;border:1px solid var(--panel-border);border-radius:12px;background:#fff;padding:.45rem;flex:0 0 auto}.dashboard-panel-tabs button{border-radius:999px}.dashboard-panel-tabs button.active{background:var(--accent);color:#fff}.dashboard-list-tabs{display:inline-flex;align-items:center;gap:.36rem;border:1px solid #cddded;border-radius:14px;background:linear-gradient(180deg,#fff,#f5f9ff);padding:.3rem;box-shadow:0 10px 24px #0c2a4e14}.dashboard-list-tabs button{border-radius:999px;font-weight:700;border-color:transparent;background:transparent;color:#27405d}.dashboard-list-tabs button.active{background:linear-gradient(135deg,#0b3a67,#145a9c);color:#fff;border-color:#0f3f72;box-shadow:0 6px 14px #092e5447}.dashboard-stats-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;align-content:start;gap:.7rem;min-height:0;overflow:auto;padding-right:.12rem}.dashboard-stats-grid>.dashboard-panel,.dashboard-stats-grid>.dashboard-kpi-matrix,.dashboard-stats-grid>.dashboard-trend-grid{min-height:max-content;height:auto}.dashboard-stats-grid .dashboard-panel-single{min-height:max-content}.stats-detail-panel .dashboard-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.56rem;flex-wrap:wrap}.stats-detail-head{display:flex;align-items:center;gap:.7rem;min-width:0;flex:1 1 440px}.stats-detail-head h2{margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-detail-head .muted{margin:.12rem 0 0;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-detail-back{border-radius:999px;border:1px solid #d3e2f1;background:#f5f9ff;color:#123d67;padding:.3rem .7rem;font-size:.76rem;font-weight:700}.stats-detail-back:hover:not(:disabled){background:#e4effd;border-color:#bdd0e6}.stats-detail-tabs{display:inline-flex;align-items:center;margin-left:auto;border-left:1px solid #d7e4f2;padding-left:.6rem;gap:.36rem}.stats-detail-tabs:before{content:"SECTIONS";color:#526a82;font-size:.68rem;font-weight:700;letter-spacing:.04em}.stats-detail-tabs button{border:1px solid #cfdeee;border-radius:999px;background:#f8fbff;color:#2a4968;font-size:.76rem;font-weight:700;padding:.35rem .85rem;min-width:104px}.stats-detail-tabs button.active{border-color:#12497d;background:#12497d;color:#fff}.stats-detail-content-grid{display:grid;gap:.56rem}.stats-tab-panel{border:1px solid #d8e4f2;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fbff);padding:.5rem;overflow:visible}.stats-tab-panel.lines{border-top:3px solid #2c78c4}.stats-tab-panel.zones{border-top:3px solid #1c8f67}.stats-insight-panel{overflow:hidden}.stats-ag-grid-wrap{border:1px solid #cfdeee;border-radius:12px;background:#fff;overflow:hidden}.stats-ag-grid-empty{min-height:120px;display:flex;align-items:center;justify-content:center}.stats-ag-grid{width:100%}.stats-ag-grid .ag-root-wrapper{border:0}.stats-ag-grid .ag-header{border-bottom:1px solid #dbe7f3;background:#f4f8fd}.stats-ag-grid .ag-header-cell{font-size:.75rem;color:#365473}.stats-ag-grid .ag-row{font-size:.78rem;color:#0f253d}.stats-ag-grid .ag-row:nth-child(odd){background:#f9fbff}.stats-ag-grid .ag-cell{display:flex;align-items:center}.stats-ag-grid .ag-cell.mono{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.stats-recharts-wrap{border:1px solid #cfdeee;border-radius:12px;background:linear-gradient(180deg,#fbfdff,#f3f8fe);padding:.3rem .28rem .14rem;overflow-x:auto;overflow-y:hidden}.stats-recharts-wrap-empty{display:flex;align-items:center;justify-content:center;min-height:140px}.stats-recharts-wrap .recharts-wrapper{min-width:0}.stats-recharts-wrap .recharts-default-tooltip{border:1px solid #d3e0ee!important;border-radius:8px;box-shadow:0 10px 18px #0f26422e}.stats-recharts-wrap .recharts-legend-item-text{color:#365473!important}.stats-zone-dual-legend{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.3rem .56rem;font-size:.72rem}.stats-zone-dual-legend .legend-passages,.stats-zone-dual-legend .legend-duration{display:inline-flex;align-items:center;gap:.22rem}.stats-zone-dual-legend .legend-passages:before,.stats-zone-dual-legend .legend-duration:before{content:"";width:10px;height:10px;border-radius:3px}.stats-zone-dual-legend .legend-passages:before{background:#2a76c1}.stats-zone-dual-legend .legend-duration:before{background:#18936a}.stats-camera-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem}.stats-camera-card{text-align:left;border-radius:14px;border:1px solid #d5e2ef;background:#fff;padding:.62rem;display:grid;gap:.56rem;box-shadow:0 8px 18px #16355914;position:relative}.stats-camera-card:before{content:none}.stats-camera-card:hover:not(:disabled){border-color:#9fc2e5;box-shadow:0 14px 26px #0f365d29;transform:translateY(-1px)}.stats-camera-card-top{display:flex;align-items:center;justify-content:space-between;gap:.42rem}.stats-camera-card-top.no-status{justify-content:flex-end}.stats-camera-card-ref{color:#2a557f;font-size:.72rem;border:1px solid #bfd6ec;background:#eaf4ff;border-radius:999px;padding:.1rem .45rem}.stats-camera-card-head{padding-bottom:.32rem;border-bottom:1px dashed #d4e3f2}.stats-camera-card-head strong{color:#143252;font-size:.92rem}.stats-camera-card-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.24rem}.stats-camera-card-kpis>div{border:1px solid #d9e6f4;border-radius:8px;padding:.28rem .34rem;background:#fff;display:grid;gap:.04rem}.stats-camera-card-kpis p{margin:0;color:#526a82;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.stats-camera-card-kpis strong{color:#0f172a;font-size:1.06rem;line-height:1.1}.stats-camera-card-kpis-business{grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem}.stats-camera-kpi-pill{border:1px solid #cdddec;border-radius:10px;padding:.36rem .42rem;background:#f3f8ff;display:grid;gap:.08rem}.stats-camera-kpi-pill p{margin:0;color:#49627e;font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.stats-camera-kpi-pill strong{margin:0;color:#0d2743;font-size:1.22rem;line-height:1.05}.stats-camera-kpi-pill.tone-mint{background:#e9f9f1;border-color:#ced}.stats-camera-kpi-pill.tone-blue{background:#eaf2ff;border-color:#cfe0fb}.stats-camera-kpi-pill.tone-peach{background:#fff3e8;border-color:#f6dcc3}.stats-camera-kpi-pill.tone-lavender{background:#f1ecff;border-color:#dbd1fb}.stats-camera-card-footer{display:flex;align-items:center;justify-content:space-between;gap:.42rem;color:#47617a;font-size:.72rem;border-top:1px solid #dde8f4;padding-top:.34rem}.stats-camera-card-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-camera-card-link{border-radius:999px;border:1px solid #a8c8e8;background:#dff0ff;color:#0f4272;font-weight:700;padding:.14rem .58rem}.dashboard-stats-hero{border:0;background:radial-gradient(circle at 8% 0%,rgba(255,255,255,.22),transparent 40%),radial-gradient(circle at 92% 100%,rgba(168,235,255,.24),transparent 44%),linear-gradient(130deg,#071d34,#0d3a66 56%,#16639e);color:#f8fbff;box-shadow:0 22px 42px #081f395c;overflow:hidden}.stats-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.8rem}.stats-kicker{margin:0;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;opacity:.86}.dashboard-stats-hero h2{margin:.1rem 0 0;font-size:clamp(1.15rem,1.7vw,1.5rem)}.stats-hero-subtitle{margin:.24rem 0 0;max-width:760px;font-size:.82rem;color:#e9f6ffe0}.stats-hero-chip{display:inline-flex;align-items:center;border-radius:999px;border:1px solid rgba(219,239,255,.42);background:#061a2e59;padding:.22rem .56rem;font-size:.76rem;white-space:nowrap}.dashboard-kpi-matrix{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.56rem}.stats-kpi-focus{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-metric-card{border:1px solid #d4e3f2;border-radius:14px;padding:.6rem;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 10px 20px #0c2a4e14;display:grid;gap:.12rem}.dashboard-metric-card p{margin:0;font-size:.76rem;color:#496383;font-weight:600}.dashboard-metric-card strong{font-size:1.3rem;color:#0f172a}.dashboard-metric-card span{color:#516981;font-size:.74rem}.dashboard-metric-card.tone-line{border-color:#c7ddf5;background:linear-gradient(165deg,#fff,#f1f7ff)}.dashboard-metric-card.tone-zone{border-color:#c7ebdf;background:linear-gradient(165deg,#fff,#effcf7)}.dashboard-metric-card.tone-live{border-color:#d6d7f5;background:linear-gradient(165deg,#fff,#f4f2ff)}.dashboard-metric-card.tone-quality{border-color:#f1dcbf;background:linear-gradient(165deg,#fff,#fff8ec)}.stats-filter-panel{display:grid;gap:.5rem;overflow:hidden}.stats-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.42rem}.stats-filter-grid label{display:grid;gap:.22rem;font-size:.78rem;color:#3f5979}.stats-filter-grid select{width:100%}.stats-filter-active{justify-content:space-between}.stats-filter-reset{border-radius:999px;padding:.22rem .62rem;font-size:.76rem;background:#f3f8ff;border:1px solid #cfdeef;color:#27405d}.dashboard-trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.56rem}.dashboard-trend-panel{overflow:visible}.stats-trend-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.42rem}.stats-trend-bar{display:grid;justify-items:center;gap:.2rem}.stats-trend-value{font-size:.72rem;color:#334155}.stats-trend-track{width:100%;height:94px;border-radius:10px;border:1px solid #dce8f5;background:linear-gradient(180deg,#f9fbff,#eef4fb);display:flex;align-items:flex-end;padding:.2rem}.stats-trend-fill{width:100%;border-radius:8px}.stats-trend-fill.line{background:linear-gradient(180deg,#67b4ff,#1e6dc2)}.stats-trend-fill.zone{background:linear-gradient(180deg,#73dcb9,#0f8f64)}.stats-trend-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.03em;color:#607992}.stats-explicit-legend{display:flex;justify-content:flex-end;gap:.62rem;font-size:.72rem;color:#607992}.stats-explicit-list{list-style:none;margin:0;padding:0;display:grid;gap:.44rem}.stats-explicit-item{display:grid;gap:.24rem}.stats-explicit-head{display:flex;justify-content:space-between;gap:.52rem;font-size:.8rem}.stats-explicit-head span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-explicit-bars{display:grid;gap:.18rem}.stats-explicit-track{height:8px;border-radius:999px;border:1px solid #d9e6f3;background:#f4f8fd;overflow:hidden}.stats-explicit-track span{display:block;height:100%;border-radius:inherit}.stats-explicit-track.day span{background:linear-gradient(90deg,#8bc4ff,#3b83d0)}.stats-explicit-track.week span{background:linear-gradient(90deg,#66ddb7,#0f8f64)}.stats-explicit-track.dwell{height:10px}.stats-explicit-track.dwell span{background:linear-gradient(90deg,#fbbf77,#e2840f)}.stats-explicit-values{display:flex;justify-content:flex-end;gap:.62rem;font-size:.72rem;color:#516981}.stats-dwell-list .stats-explicit-item{padding-bottom:.2rem;border-bottom:1px dashed #dbe7f4}.dashboard-insight-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.56rem}.stats-rank-list{list-style:none;margin:0;padding:0;display:grid;gap:.44rem}.stats-rank-list li{display:grid;gap:.2rem}.stats-rank-head{display:flex;align-items:center;justify-content:space-between;gap:.4rem;font-size:.8rem}.stats-rank-head span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stats-rank-meter{height:8px;border-radius:999px;border:1px solid #d9e6f3;background:#f4f8fd;overflow:hidden}.stats-rank-meter span{display:block;height:100%}.stats-rank-meter span.tone-line{background:linear-gradient(90deg,#7cb8ff,#1f6ab8)}.stats-rank-meter span.tone-zone{background:linear-gradient(90deg,#8ce3c6,#0f8d62)}.stats-table-panel table tbody tr:nth-child(odd){background:#f9fbff}.dashboard-panel-footer{display:flex;justify-content:flex-end}.dashboard-table-wrap{flex:1 1 auto;min-height:0;overflow:auto}.dashboard-table-wrap th,.dashboard-table-wrap td{padding:.4rem .28rem;font-size:.8rem}.dashboard-table-wrap th{white-space:nowrap}.dashboard-table-sort{width:100%;border:0;background:transparent;padding:0;display:inline-flex;align-items:center;justify-content:space-between;gap:.24rem;border-radius:6px;color:#1f2f45;font-weight:700;font-size:.75rem;text-align:left}.dashboard-table-sort:hover:not(:disabled){background:#edf5ff;border-color:transparent}.dashboard-table-sort.active{color:#0b3a67}.dashboard-inline-meta{display:inline-flex;align-items:baseline;gap:.38rem;white-space:nowrap}.dashboard-pagination{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.28rem;font-size:.75rem}.dashboard-pagination .mono{font-size:.72rem}.dashboard-pagination label{display:inline-flex;align-items:center;gap:.22rem;font-size:.75rem}.dashboard-pagination select,.dashboard-pagination button{padding:.22rem .4rem;font-size:.72rem}.event-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.14rem .5rem;border:1px solid #dbe6f2;font-size:.75rem;font-weight:700;white-space:nowrap}.event-chip.track-start{background:#ecfeff;color:#0f766e;border-color:#99f6e4}.event-chip.track-end{background:#eff6ff;color:#1d4ed8;border-color:#bfdbfe}.event-chip.line-forward{background:#f0f9ff;color:#0369a1;border-color:#bae6fd}.event-chip.line-backward{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.event-chip.zone-enter{background:#ecfdf5;color:#065f46;border-color:#a7f3d0}.event-chip.zone-exit{background:#fef2f2;color:#991b1b;border-color:#fecaca}.event-chip.neutral{background:#f8fafc;color:#475569;border-color:#dbe6f2}@media (max-width: 1080px){.app-shell{grid-template-columns:1fr;padding:.8rem}.app-sidebar{position:static;height:auto}.app-sidebar-top{overflow:visible}.sidebar-group{grid-template-columns:1fr;align-items:start}.app-sidebar-bottom{grid-template-columns:minmax(0,1fr) auto;align-items:end}.sidebar-logout{width:auto}.dashboard-shell .app-main{height:auto}.workspace-switcher{flex-direction:column;align-items:flex-start}.workspace-switcher-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.workspace-switch-button{width:100%}.admin-layout,.admin-cameras-list-layout,.admin-editor-layout,.admin-settings-layout{grid-template-columns:1fr}.toolbar{flex-direction:column;align-items:flex-start}.tracking-summary,.geometry-grid,.settings-threshold-inputs{grid-template-columns:1fr}.geometry-header,.editor-header{flex-direction:column;align-items:flex-start}.user-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.user-dashboard-layout{grid-template-columns:1fr}.dashboard-shell .toolbar{flex-direction:column;align-items:flex-start;overflow-x:hidden}.dashboard-toolbar-main{width:100%;flex-direction:column;align-items:flex-start}.dashboard-toolbar-quick{width:100%;justify-content:flex-start}.stats-filter-grid,.dashboard-kpi-matrix{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-trend-grid,.dashboard-insight-grid{grid-template-columns:1fr}.stats-camera-card-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-camera-card-kpis-business,.stats-camera-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.sidebar-group,.app-sidebar-bottom{grid-template-columns:1fr}.sidebar-logout{width:100%}.user-kpi-grid{grid-template-columns:1fr}.period-stepper input{width:64px}.dashboard-toolbar-left{min-width:0}.dashboard-toolbar-quick{width:100%;gap:.3rem}.dashboard-dropdown{width:100%}.workspace-switcher-actions{grid-template-columns:1fr}.dashboard-dropdown-trigger{width:100%;justify-content:space-between}.dashboard-dropdown-menu{left:0;right:auto;width:min(92vw,360px)}.stats-filter-grid,.dashboard-kpi-matrix{grid-template-columns:1fr}.stats-hero-top{flex-direction:column;align-items:flex-start}.dashboard-list-tabs{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-list-tabs button{width:100%}.stats-trend-track{height:78px}.stats-camera-card-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.stats-camera-card-kpis-business{grid-template-columns:1fr}.stats-camera-card-grid{grid-template-columns:minmax(0,1fr)}.stats-camera-card-footer{align-items:flex-start;flex-direction:column}.stats-detail-panel .dashboard-panel-head{flex-direction:column;align-items:stretch;justify-content:center}.stats-detail-tabs{margin-left:0;border-left:0;border-top:1px solid #d7e4f2;padding-left:0;padding-top:.4rem}.stats-detail-tabs:before{margin-right:.1rem}.dashboard-filter-buttons .ui-btn{max-width:100%}.dashboard-primary-grid{grid-template-columns:minmax(0,1fr)}.dashboard-content-overview{grid-template-rows:minmax(0,1fr) minmax(0,1fr)}}
