html{background:#0f172a;min-width:320px;min-height:100%}body{font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-width:320px;min-height:100vh;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}*{box-sizing:border-box}body{color:#e5e7eb;background:#0f172a;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.camera-app{width:min(100%,1920px);min-height:100vh;margin:0 auto;padding:40px clamp(12px,1.5vw,24px)}.camera-header{text-align:center;flex-direction:column;align-items:center;gap:24px;margin-bottom:32px;display:flex}.camera-eyebrow{color:#38bdf8;letter-spacing:.08em;margin:0 0 8px;font-size:14px;font-weight:800}.camera-header h1{color:#f8fafc;margin:0;font-size:clamp(32px,5vw,56px);line-height:1}.camera-header p{color:#94a3b8;max-width:720px;margin:18px auto 0;font-size:18px;line-height:1.6}.camera-status{border:1px solid #94a3b859;border-radius:999px;flex:none;padding:10px 14px;font-size:14px;font-weight:800}.camera-status-idle{color:#cbd5e1;background:#94a3b81f}.camera-status-loading{color:#bae6fd;background:#38bdf824}.camera-status-active{color:#86efac;background:#22c55e26}.camera-status-error{color:#fca5a5;background:#ef444426}.camera-card{background:#0f172adb;border:1px solid #94a3b83d;border-radius:24px;width:100%;max-width:none;margin:0 auto;padding:20px;box-shadow:0 24px 80px #00000040}.mode-selector{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.settings-button{align-items:center;gap:8px;display:inline-flex}.config-card{text-align:left;margin-bottom:24px}.config-help{color:#94a3b8;max-width:760px;margin:8px 0 0;line-height:1.5}.config-help strong{color:#e0f2fe}.camera-config-form{grid-template-columns:repeat(4,minmax(160px,1fr));gap:14px;display:grid}.camera-config-form label{color:#cbd5e1;gap:8px;font-size:13px;font-weight:900;display:grid}.camera-config-form input{color:#f8fafc;width:100%;min-height:46px;font:inherit;background:#02061785;border:1px solid #94a3b852;border-radius:14px;padding:0 14px;font-weight:700}.config-template-field{grid-column:span 2}.config-actions{grid-column:span 2;justify-content:flex-end;align-items:end;gap:12px;display:flex}.network-camera-form{grid-template-columns:minmax(180px,1fr) minmax(120px,180px) auto;gap:12px;margin-bottom:18px;display:grid}.network-camera-form input{color:#f8fafc;width:100%;min-height:46px;font:inherit;background:#02061785;border:1px solid #94a3b852;border-radius:14px;padding:0 14px;font-weight:700}.network-camera-form input::placeholder{color:#64748b}.network-camera-section-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.network-camera-section-header h2{color:#e2e8f0;margin:2px 0 0;font-size:18px}.camera-modal-backdrop{z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#020617bd;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.camera-add-modal{background:#0f172a;border:1px solid #38bdf847;border-radius:24px;width:min(100%,760px);max-height:min(820px,100vh - 48px);padding:24px;overflow-y:auto;box-shadow:0 28px 90px #0000007a}.camera-add-modal-header,.camera-scan-actions,.camera-add-modal-footer{justify-content:space-between;align-items:center;gap:16px;display:flex}.camera-add-modal-header h2,.manual-camera-section h3{color:#f8fafc;margin:3px 0 0}.camera-add-modal-header p:not(.camera-eyebrow),.manual-camera-section p,.camera-scan-actions span{color:#94a3b8;margin:8px 0 0;line-height:1.45}.camera-scan-actions{background:#02061766;border-radius:16px;grid-template-columns:auto minmax(0,1fr);align-items:center;margin-top:22px;padding:16px;display:grid}.camera-scan-actions span{white-space:nowrap;margin:0;font-size:14px;font-weight:700}.camera-scan-button{white-space:nowrap;justify-content:center;align-items:center;gap:9px;display:inline-flex}.camera-scan-spinner{border:2px solid #082f494d;border-top-color:#082f49;border-radius:50%;width:14px;height:14px;animation:.75s linear infinite camera-scan-spin}@keyframes camera-scan-spin{to{transform:rotate(360deg)}}.scanned-camera-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;display:grid}.scanned-camera-option{color:#cbd5e1;text-align:left;cursor:default;background:#02061766;border:1px solid #94a3b840;border-radius:16px;gap:4px;min-height:218px;padding:16px;display:grid}.scanned-camera-option strong{color:#f8fafc}.scanned-camera-option span,.scanned-camera-option small{color:#94a3b8;font-weight:700}.scanned-camera-option.is-selected{background:#0e749042;border-color:#38bdf8}.scanned-camera-select{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:4px;padding:0;display:grid}.scanned-camera-preview-frame{background:#020617;border:1px solid #94a3b83d;border-radius:10px;width:100%;height:112px;margin-bottom:8px;overflow:hidden}.scanned-camera-preview-frame>span{color:#64748b;place-items:center;width:100%;height:100%;font-size:11px;display:grid}.scanned-camera-preview{object-fit:cover;width:100%;height:100%;display:block}.scanned-camera-select:disabled,.scanned-camera-option:disabled{cursor:not-allowed;opacity:.48}.scanned-camera-name{color:#bae6fd;gap:6px;margin-top:12px;font-size:12px;font-weight:800;display:grid}.scanned-camera-name input{color:#f8fafc;width:100%;min-height:40px;font:inherit;background:#02061780;border:1px solid #38bdf85c;border-radius:10px;padding:0 12px;font-weight:700}.camera-add-modal-footer{justify-content:flex-end;margin-top:18px}.manual-camera-section{border-top:1px solid #94a3b82e;margin-top:24px;padding-top:22px}.manual-camera-section .network-camera-form{margin:14px 0 0}.network-camera-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.network-camera-card{background:#02061752;border:1px solid #94a3b838;border-radius:18px;min-width:0;padding:16px}.network-camera-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.network-camera-tools{align-items:center;gap:8px;display:flex}.network-camera-header h2{color:#f8fafc;margin:0;font-size:19px}.network-camera-header p{color:#94a3b8;margin:4px 0 0;font-size:14px;font-weight:800}.network-preview{aspect-ratio:16/9;background:#020617;border:1px solid #94a3b838;border-radius:14px;width:100%;position:relative;overflow:hidden}.network-preview-flash,.video-container-flash{animation:1.4s ease-out network-face-flash}.network-status{text-transform:capitalize;border-radius:999px;flex:none;padding:7px 10px;font-size:12px;font-weight:900}.network-status-idle{color:#cbd5e1;background:#94a3b81f}.network-status-ready{color:#bae6fd;background:#38bdf824}.network-status-active{color:#bbf7d0;background:#22c55e26}.network-status-error{color:#fecaca;background:#ef444426}.icon-button{color:#e5e7eb;cursor:pointer;background:#0f172ac7;border:1px solid #94a3b852;border-radius:999px;place-items:center;width:30px;height:30px;font-size:13px;font-weight:900;line-height:1;display:inline-grid}.icon-button:hover{color:#fecaca;border-color:#f871718c}.video-container{aspect-ratio:16/9;background:#020617;border:1px solid #94a3b838;border-radius:18px;width:100%;position:relative;overflow:hidden}.video-feed{object-fit:cover;width:100%;height:100%;display:block}.network-preview .video-feed,.video-container .video-feed{object-fit:contain}.video-placeholder{color:#64748b;background:radial-gradient(circle,#38bdf814,#0000 35%),#020617;place-items:center;font-weight:800;display:grid;position:absolute;inset:0}.face-box{pointer-events:none;border:3px solid #38bdf8;border-radius:12px;justify-content:flex-start;align-items:flex-start;min-width:44px;min-height:44px;transition:left .18s,top .18s,width .18s,height .18s;display:flex;position:absolute;box-shadow:0 0 0 1px #020617d9,0 0 24px #38bdf859}.face-box span{color:#e0f2fe;white-space:nowrap;background:#020617e0;border-radius:8px;margin:6px;padding:5px 8px;font-size:12px;font-weight:900}.face-box-analyzed{border-color:#22c55e;box-shadow:0 0 0 1px #020617d9,0 0 24px #22c55e59}@keyframes network-face-flash{0%,to{box-shadow:none;border-color:#94a3b838}18%,62%{border-color:#22c55ef2;box-shadow:0 0 0 3px #22c55e47,0 0 28px #22c55e73}}.camera-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:18px;display:flex}.network-actions{flex-wrap:nowrap;justify-content:center}.network-actions .primary-button,.network-actions .secondary-button{white-space:nowrap}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:14px;padding:12px 16px;font-weight:800;transition:transform .16s,opacity .16s}.primary-button{color:#082f49;background:#38bdf8}.secondary-button{color:#e5e7eb;background:#94a3b82e}.live-button-active{color:#bbf7d0;background:#22c55e33}.primary-button:hover,.secondary-button:hover{transform:translateY(-1px)}.primary-button:disabled,.secondary-button:disabled{cursor:not-allowed;opacity:.55;transform:none}.camera-error{color:#fecaca;background:#ef44441f;border:1px solid #ef444447;border-radius:14px;margin-top:16px;padding:12px 14px}.live-status{color:#bae6fd;background:#38bdf81a;border:1px solid #38bdf840;border-radius:14px;margin-top:16px;padding:12px 14px;font-weight:800}.analysis-card{text-align:left;background:#0f172adb;border:1px solid #94a3b83d;border-radius:24px;width:100%;max-width:none;margin:24px auto 0;padding:20px;box-shadow:0 24px 80px #0003}.analysis-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.analysis-header h2{color:#f8fafc;margin:0;font-size:24px;font-weight:800}.analysis-empty{color:#cbd5e1;text-align:center;background:#94a3b81f;border:1px solid #94a3b833;border-radius:14px;padding:18px;font-weight:700}.analysis-results{gap:16px;display:grid}.result-summary{background:#38bdf814;border:1px solid #38bdf833;border-radius:16px;align-items:center;gap:16px;padding:16px;display:flex}.result-count-block{background:#0284c733;border-radius:14px;place-items:center;min-width:96px;padding:12px;display:grid}.result-count{color:#f8fafc;font-size:34px;font-weight:900;line-height:1}.result-count-label{color:#bae6fd;font-size:13px;font-weight:800}.result-summary-copy strong{color:#f8fafc;margin-bottom:4px;font-size:17px;display:block}.result-summary-copy p{color:#a7b3c6;line-height:1.5}.results-table-wrapper{border:1px solid #94a3b83d;border-radius:16px;overflow-x:auto}.results-table{border-collapse:collapse;background:#0206176b;width:100%;min-width:720px}.results-table th,.results-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #94a3b82e;padding:14px 16px}.results-table th{color:#93c5fd;text-transform:uppercase;background:#0f172ae6;font-size:12px;font-weight:900}.results-table tbody tr:last-child td{border-bottom:0}.person-badge,.range-pill,.gender-pill{white-space:nowrap;border-radius:999px;align-items:center;min-height:30px;padding:6px 10px;font-size:13px;font-weight:900;display:inline-flex}.person-badge{color:#bae6fd;background:#38bdf829}.range-pill{color:#e9d5ff;background:#a855f724}.gender-pill{color:#bbf7d0;background:#22c55e24}.metric-value,.confidence-value{color:#f8fafc;font-weight:900}.muted-confidence{color:#cbd5e1}.hidden-canvas{display:none}@media (width<=1100px){.camera-config-form{grid-template-columns:repeat(2,minmax(0,1fr))}.config-template-field,.config-actions{grid-column:span 2}.network-camera-grid,.scanned-camera-list{grid-template-columns:1fr}.network-actions{flex-wrap:wrap}}@media (width<=800px){.camera-app{padding:18px}.camera-header{flex-direction:column}.camera-header h1{font-size:34px}.camera-header p{font-size:16px}.camera-card{padding:16px}.network-camera-form{grid-template-columns:1fr}.network-camera-section-header,.camera-add-modal-header,.camera-scan-actions{flex-direction:column;align-items:stretch}.camera-scan-actions{display:flex}.camera-scan-actions span{white-space:normal}.camera-modal-backdrop{align-items:end;padding:12px}.camera-add-modal{max-height:calc(100vh - 24px);padding:18px}.camera-config-form,.config-actions{grid-template-columns:1fr}.config-template-field,.config-actions{grid-column:span 1}.config-actions{flex-direction:column;align-items:stretch}.video-container{border-radius:16px}.camera-actions,.network-actions{flex-direction:column}.primary-button,.secondary-button{width:100%}.analysis-card{padding:16px}.analysis-header h2{font-size:21px}.result-summary{flex-direction:column;align-items:stretch}.result-count-block{min-width:0}.results-table-wrapper{border:0;border-radius:0;overflow:visible}.results-table{background:0 0;min-width:0}.results-table thead{display:none}.results-table,.results-table tbody,.results-table tr,.results-table td{width:100%;display:block}.results-table tbody{gap:14px;display:grid}.results-table tr{background:#0206176b;border:1px solid #94a3b83d;border-radius:16px;overflow:hidden}.results-table td{text-align:right;border-bottom:1px solid #94a3b824;justify-content:space-between;align-items:center;gap:16px;min-height:54px;padding:12px 14px;display:flex}.results-table td:before{content:attr(data-label);color:#93c5fd;text-align:left;text-transform:uppercase;flex:none;font-size:12px;font-weight:900}.results-table td:last-child{border-bottom:0}.person-badge,.range-pill,.gender-pill{text-align:center;justify-content:center;max-width:100%}.metric-value,.confidence-value{overflow-wrap:anywhere}}:root{--sidebar-width:272px;--sidebar-collapsed-width:84px;--sidebar-bg:#020617;--sidebar-border:#94a3b829;--sidebar-text:#e5e7eb;--sidebar-muted:#64748b;--brand-green:#38bdf8;--brand-green-soft:#38bdf824;--page-bg:#0f172a;--surface:#0f172adb;--text-primary:#f8fafc;--text-secondary:#94a3b8;--border-color:#94a3b83d;--dashboard-footer-height:76px;--dashboard-footer-border:#94a3b83d}body{background:var(--page-bg);min-width:320px;color:var(--text-primary);overflow:hidden}button{font:inherit}#root{width:100%;height:100dvh;overflow:hidden}.dashboard-shell{background:var(--page-bg);height:100%;overflow:hidden}.login-page{background:radial-gradient(circle at 12% 8%,#38bdf82e,#0000 31%),radial-gradient(circle at 88% 90%,#6366f124,#0000 29%),#020617;place-items:center;width:100%;min-height:100%;padding:24px;display:grid;overflow:auto}.login-panel{background:#0f172af0;border:1px solid #38bdf847;border-radius:26px;width:min(100%,450px);padding:clamp(28px,5vw,36px);box-shadow:0 28px 90px #0000006b}.login-brand{justify-content:center;align-items:center;gap:12px;display:flex}.login-brand-mark{flex:0 0 42px;width:42px;height:42px}.login-brand strong,.login-brand span{display:block}.login-brand strong{color:#f8fafc;font-size:18px}.login-brand span{color:#64748b;letter-spacing:.12em;text-transform:uppercase;margin-top:2px;font-size:10px;font-weight:800}.login-form{gap:18px;margin-top:30px;display:grid}.login-form label{color:#cbd5e1;gap:8px;font-size:13px;font-weight:800;display:grid}.login-form input{color:#f8fafc;background:#0206178f;border:1px solid #94a3b852;border-radius:13px;outline:none;width:100%;min-height:48px;padding:0 14px;transition:border-color .15s,box-shadow .15s}.login-form input:focus{border-color:var(--brand-green);box-shadow:0 0 0 3px #38bdf821}.login-password-field{display:block;position:relative}.login-password-field input{padding-right:46px}.login-password-toggle{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.login-password-toggle:hover,.login-password-toggle:focus-visible{color:#bae6fd;background:#38bdf81f;outline:none}.login-password-toggle svg{width:18px;height:18px}.login-submit{background:var(--brand-green);color:#082f49;cursor:pointer;border:0;border-radius:13px;justify-content:center;align-items:center;gap:9px;min-height:50px;font-weight:900;transition:filter .15s,transform .15s;display:inline-flex}.login-submit:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}.login-submit:disabled{cursor:wait;opacity:.7}.login-error,.login-config-notice{border-radius:13px;margin:0;padding:12px 14px;font-size:13px;font-weight:700;line-height:1.45}.login-error{color:#fca5a5;background:#7f1d1d3b;border:1px solid #f871714d}.login-config-notice{color:#fde68a;background:#78350f38;border:1px solid #fbbf2447;gap:9px;margin-top:30px;display:flex}.login-config-notice svg{flex:none;margin-top:1px;font-size:17px}.login-security-note{color:#64748b;text-align:center;margin:30px 0 0;font-size:12px;font-weight:700}.login-loading{color:#cbd5e1;align-items:center;gap:10px;font-weight:800;display:inline-flex}.login-loading-spinner{border:2px solid #38bdf83d;border-top-color:var(--brand-green);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite login-spinner}@keyframes login-spinner{to{transform:rotate(360deg)}}.sidebar{z-index:30;width:var(--sidebar-width);background:radial-gradient(circle at 0 0, #38bdf81a, transparent 32%), var(--sidebar-bg);border-right:1px solid var(--sidebar-border);color:var(--sidebar-text);flex-direction:column;transition:width .18s,transform .18s;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-brand{border-bottom:1px solid var(--sidebar-border);align-items:center;gap:13px;min-height:84px;padding:0 22px;display:flex}.brand-mark{object-fit:contain;flex:0 0 40px;width:40px;height:40px}.brand-copy,.sidebar-footer-copy,.user-copy,.nav-label,.nav-chevron{min-width:0;transition:opacity .12s}.brand-copy{gap:2px;display:grid}.brand-copy strong{color:#f8fafc;letter-spacing:-.02em;font-size:17px}.brand-copy span{color:var(--sidebar-muted);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.sidebar-close{color:var(--sidebar-muted);cursor:pointer;background:0 0;border:0;margin-left:auto;font-size:28px;display:none}.sidebar-nav{flex:1;padding:15px 14px 26px;overflow-y:auto}.sidebar-section-label{color:#475569;letter-spacing:.14em;text-transform:uppercase;margin:0 12px 12px;font-size:10px;font-weight:900}.nav-item,.nav-subitem{text-align:left;cursor:pointer;border:0;width:100%}.nav-item{color:#94a3b8;background:0 0;border-radius:13px;align-items:center;gap:13px;min-height:48px;margin-bottom:5px;padding:0 13px;font-size:14px;font-weight:750;transition:color .15s,background .15s,transform .15s;display:flex}.nav-item:hover{color:#f8fafc;background:#ffffff0e}.nav-item-active{background:var(--brand-green-soft);color:#bae6fd}.nav-item-active:hover{color:#e0f2fe;background:#38bdf82e}.nav-icon{flex:0 0 26px;place-items:center;width:26px;font-size:19px;line-height:1;display:grid}.nav-icon svg{width:17px;height:17px}.nav-chevron{color:#64748b;margin-left:auto;font-size:14px}.nav-submenu{border-left:1px solid #ffffff1a;gap:3px;margin:2px 0 9px 39px;padding-left:14px;display:grid}.nav-subitem{color:#64748b;background:0 0;border-radius:10px;align-items:center;gap:9px;min-height:38px;padding:0 11px;font-size:13px;font-weight:700;display:flex}.nav-subitem-icon{flex:0 0 16px;place-items:center;width:16px;display:grid}.nav-subitem-icon svg{width:15px;height:15px}.nav-subitem:hover,.nav-subitem-active{color:#e2e8f0;background:#ffffff0d}.nav-subitem-active{color:#bae6fd}.sidebar-footer{min-height:var(--dashboard-footer-height);flex:0 0 var(--dashboard-footer-height);border-top:1px solid var(--dashboard-footer-border);align-items:center;gap:12px;padding:0 25px;display:flex}.sidebar-status-dot{background:var(--brand-green);border-radius:50%;flex:0 0 9px;width:9px;height:9px;box-shadow:0 0 0 4px #38bdf81f}.sidebar-status-dot.is-development{background:#22c55e;box-shadow:0 0 0 4px #22c55e1f}.sidebar-footer-copy{gap:2px;display:grid}.sidebar-footer-copy strong{color:#cbd5e1;font-size:12px}.sidebar-footer-copy span{color:#64748b;font-size:11px}.dashboard-main{height:100%;min-height:0;margin-left:var(--sidebar-width);flex-direction:column;transition:margin-left .18s;display:flex;overflow:hidden}.topbar{z-index:20;border-bottom:1px solid var(--border-color);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172aeb;flex:0 0 84px;align-items:center;gap:18px;min-height:84px;padding:0 32px;display:flex}.menu-toggle{border:1px solid var(--border-color);color:#cbd5e1;cursor:pointer;background:#0206176b;border-radius:12px;place-items:center;width:40px;height:40px;font-size:18px;display:grid}.menu-toggle:hover{background:#38bdf81a;border-color:#38bdf86b}.menu-toggle-mobile{display:none}.topbar-title{gap:2px;display:grid}.topbar-title span{color:#64748b;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:800}.topbar-title strong{color:var(--text-primary);letter-spacing:-.02em;font-size:18px}.topbar-organization{color:#64748b;letter-spacing:.08em;text-transform:uppercase;gap:4px;min-width:210px;margin-left:auto;font-size:10px;font-weight:800;display:grid}.topbar-organization select{border:1px solid var(--border-color);min-height:38px;color:var(--text-primary);font:inherit;letter-spacing:normal;text-transform:none;background:#0b1324;border-radius:11px;padding:0 34px 0 12px;font-size:13px;font-weight:700}.topbar-organization select:focus{border-color:#38bdf8b3;outline:2px solid #38bdf829}.topbar-user{cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:11px;margin-left:auto;display:flex}.topbar-user:hover .user-avatar,.topbar-user:focus-visible .user-avatar{background:#38bdf838}.topbar-user:focus-visible{outline-offset:5px;border-radius:12px;outline:2px solid #38bdf8a6}.account-menu{position:relative}.account-menu-push-right{margin-left:auto}.account-menu-panel{z-index:30;background:#0b1224;border:1px solid #475569b3;border-radius:16px;min-width:250px;padding:8px;display:grid;position:absolute;top:calc(100% + 13px);right:0;overflow:hidden;box-shadow:0 20px 45px #02061775}.account-menu-identity{gap:3px;padding:10px 12px 13px;display:grid}.account-menu-identity strong{color:#f8fafc;font-size:13px}.account-menu-identity span{color:#64748b;font-size:12px}.account-menu-item{color:#cbd5e1;width:100%;min-height:40px;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:0 11px;font-size:13px;font-weight:700;display:flex}.account-menu-item svg{color:#7dd3fc;width:17px;height:17px}.account-menu-item small{color:#64748b;margin-left:auto;font-size:10px;font-weight:700}.account-menu-item:hover:not(:disabled),.account-menu-item:focus-visible:not(:disabled){color:#e0f2fe;background:#38bdf81a;outline:none}.account-menu-item:disabled{color:#64748b;cursor:not-allowed}.account-menu-item:disabled svg{color:#475569}.account-menu-divider{background:#4755698c;height:1px;margin:7px 4px}.account-menu-signout{color:#fca5a5}.account-menu-signout:hover,.account-menu-signout:focus-visible{color:#fecaca;background:#f871711a}.users-page{gap:24px;padding:34px 42px 42px;display:grid}.users-heading,.users-card-heading,.users-layout{gap:22px;display:flex}.users-heading{justify-content:space-between;align-items:center}.users-heading>div:first-child,.users-card-heading>div{gap:7px;display:grid}.users-heading span,.users-card-heading span{color:var(--brand-green);letter-spacing:.16em;text-transform:uppercase;font-size:11px;font-weight:900}.users-heading h1,.users-card-heading h2{color:var(--text-primary);margin:0}.users-heading h1{letter-spacing:-.05em;font-size:clamp(32px,4vw,44px)}.users-heading p,.users-create-card>p{color:#94a3b8;margin:0}.users-heading-icon{color:#7dd3fc;background:#38bdf81a;border:1px solid #38bdf857;border-radius:16px;place-items:center;width:52px;height:52px;font-size:25px;display:grid}.users-layout{align-items:start}.users-create-card,.users-list-card{background:linear-gradient(135deg,#0f172af5,#112036e0);border:1px solid #273449;border-radius:22px;box-shadow:0 18px 42px #02061738}.users-create-card{flex:0 0 380px;gap:14px;width:min(100%,380px);padding:24px;display:grid}.users-card-heading{justify-content:space-between;align-items:center}.users-card-heading h2{letter-spacing:-.04em;font-size:22px}.users-card-heading>svg,.users-card-heading>strong{color:#7dd3fc;font-size:24px}.users-card-heading>strong{background:#38bdf81f;border-radius:10px;place-items:center;min-width:36px;height:36px;font-size:15px;display:grid}.users-create-card label{color:#a7b6cf;gap:7px;font-size:12px;font-weight:800;display:grid}.users-organization-selector{color:#a7b6cf;gap:7px;width:min(100%,390px);margin-top:20px;font-size:12px;font-weight:800;display:grid}.users-create-card input,.users-create-card select,.users-organization-selector select{box-sizing:border-box;color:#e2e8f0;width:100%;min-height:42px;font:inherit;background:#071225;border:1px solid #334155;border-radius:10px;outline:none;padding:0 12px}.users-create-card input:focus,.users-create-card select:focus,.users-organization-selector select:focus{border-color:#38bdf8;box-shadow:0 0 0 3px #38bdf81f}.users-feedback{margin:0;font-size:13px;font-weight:700}.users-feedback.is-error{color:#fca5a5}.users-feedback.is-success{color:#86efac}.users-submit{color:#08213a;cursor:pointer;min-height:44px;font:inherit;background:#38bdf8;border:0;border-radius:11px;justify-content:center;align-items:center;gap:9px;font-weight:900;display:inline-flex}.users-submit:disabled{cursor:wait;opacity:.65}.users-list-card{flex:1;min-width:0;padding:24px}.users-table-wrap{overflow-x:auto}.users-table{border-collapse:collapse;width:100%;min-width:590px;margin-top:20px}.users-table th,.users-table td{text-align:left;border-bottom:1px solid #334155b8;padding:14px 12px}.users-table th{color:#71809a;letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:900}.users-table td{color:#cbd5e1;font-size:13px}.users-table td:first-child strong{color:#f1f5f9}.users-table td:first-child span{color:#64748b;font-size:11px}.users-role,.users-status{color:#cbd5e1;background:#64748b29;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;display:inline-flex}.users-status.is-active{color:#86efac;background:#22c55e24}.users-state{min-height:230px}@media (width<=980px){.users-page{padding:28px 24px 34px}.users-layout{flex-direction:column}.users-create-card{flex-basis:auto;width:100%}.users-list-card{box-sizing:border-box;width:100%}}.user-avatar{color:#bae6fd;background:#38bdf824;border-radius:12px;place-items:center;width:40px;height:40px;font-size:12px;font-weight:900;display:grid}.user-copy{gap:1px;display:grid}.user-copy strong{color:#e5e7eb;font-size:13px}.user-copy span{color:#64748b;font-size:11px}.page-content{scrollbar-gutter:stable;overscroll-behavior:contain;scrollbar-color:#334155 transparent;flex:1;min-height:0;padding:32px;overflow-y:auto}.placeholder-page{place-items:center;min-height:100%;display:grid}.home-page{width:min(100%,1440px);margin:0 auto}.home-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.home-eyebrow,.placeholder-page span{color:#38bdf8;letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:900}.home-heading h1,.placeholder-page h1{color:var(--text-primary);letter-spacing:-.04em;margin:8px 0 7px;font-size:clamp(30px,4vw,44px);line-height:1.08}.home-heading p,.placeholder-page p{color:var(--text-secondary);margin:0;font-size:14px}.home-updated{border:1px solid var(--border-color);color:#94a3b8;white-space:nowrap;background:#02061747;border-radius:999px;align-items:center;gap:9px;min-height:36px;padding:0 13px;font-size:12px;font-weight:700;display:flex}.updated-dot{background:#38bdf8;border-radius:50%;flex:0 0 7px;width:7px;height:7px;box-shadow:0 0 0 4px #38bdf81f}.home-filters{border:1px solid var(--border-color);background:#0f172a9e;border-radius:18px;flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:22px;padding:18px;display:flex}.filter-field{gap:7px;min-width:210px;display:grid}.filter-group{align-content:start;gap:7px;display:grid}.filter-field span{color:#94a3b8;letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:850}.filter-field select,.filter-field input{color:#e5e7eb;width:100%;min-height:44px;font:inherit;cursor:pointer;background-color:#02061794;border:1px solid #94a3b847;border-radius:12px;outline:none;padding:0 38px 0 13px;font-size:13px;font-weight:700}.filter-field select,.users-create-card select,.users-organization-selector select,.configuration-card-heading select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.7'/%3E%3C/svg%3E");background-position:right 18px center;background-repeat:no-repeat;background-size:12px 8px}.filter-field select,.configuration-card-heading select{padding-right:42px}.users-create-card select{padding-right:38px}.users-organization-selector select{padding:0 42px 0 13px}.filter-field select:focus,.filter-field input:focus{border-color:#38bdf8b8;box-shadow:0 0 0 3px #38bdf81f}.filter-field input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;padding-right:13px}.filter-field select:disabled{cursor:wait;opacity:.65}.filter-error{color:#fca5a5;align-items:center;gap:9px;font-size:11px;font-weight:700;display:flex}.filter-error button{color:#7dd3fc;font:inherit;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;text-decoration:underline}.filter-custom-range{flex-wrap:wrap;gap:14px;display:flex}.filter-date{min-width:170px}.date-range-error{color:#fca5a5;width:100%;font-size:11px;font-weight:700}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.summary-card{border:1px solid var(--border-color);background:radial-gradient(circle at 100% 0,#38bdf813,#0000 42%),#0f172ab8;border-radius:20px;min-width:0;min-height:190px;padding:21px;box-shadow:0 18px 48px #00000021}.summary-card-header{color:#94a3b8;align-items:center;gap:10px;min-height:34px;font-size:12px;font-weight:750;line-height:1.3;display:flex}.summary-icon{color:#7dd3fc;background:#38bdf81a;border:1px solid #38bdf82e;border-radius:10px;flex:0 0 34px;place-items:center;width:34px;height:34px;font-size:17px;display:grid}.summary-value{color:#f8fafc;letter-spacing:-.04em;text-overflow:ellipsis;white-space:nowrap;margin:25px 0 13px;font-size:clamp(24px,2.5vw,34px);line-height:1;display:block;overflow:hidden}.summary-detail{color:#64748b;flex-wrap:wrap;align-items:center;gap:7px;font-size:11px;font-weight:650;display:flex}.summary-change{border-radius:999px;padding:4px 7px;font-size:10px;font-weight:900}.summary-change-positive{color:#86efac;background:#22c55e1f}.summary-change-negative{color:#fca5a5;background:#f871711f}.summary-change-neutral{color:#cbd5e1;background:#94a3b81f}.dashboard-state{border:1px solid var(--border-color);color:#64748b;text-align:center;background:#0f172a9e;border-radius:20px;place-content:center;justify-items:center;gap:8px;min-height:190px;padding:28px;display:grid}.dashboard-state strong{color:#e2e8f0;font-size:16px}.dashboard-state-spinner{border:3px solid #38bdf833;border-top-color:#38bdf8;border-radius:50%;width:26px;height:26px;margin-bottom:2px;animation:.8s linear infinite login-spinner}.dashboard-state span{font-size:13px}.dashboard-state button{color:#bae6fd;font:inherit;cursor:pointer;background:#38bdf81f;border:1px solid #38bdf847;border-radius:10px;margin-top:8px;padding:9px 14px;font-size:12px;font-weight:800}.traffic-chart-card{border:1px solid var(--border-color);background:radial-gradient(circle at 100% 0,#38bdf80f,#0000 38%),#0f172ab8;border-radius:20px;margin-top:18px;padding:22px;box-shadow:0 18px 48px #00000021}.chart-heading{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:16px;display:flex}.chart-eyebrow{color:#38bdf8;letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:900}.chart-heading h2{color:#f8fafc;letter-spacing:-.025em;margin:7px 0 5px;font-size:20px}.chart-heading p{color:#64748b;margin:0;font-size:12px}.chart-legend{color:#94a3b8;flex-wrap:wrap;justify-content:flex-end;gap:14px;padding-top:6px;font-size:11px;font-weight:700;display:flex}.chart-legend span{align-items:center;gap:7px;display:flex}.chart-legend i{border-radius:999px;width:18px;height:3px}.legend-current{background:#38bdf8}.legend-previous{background:#64748b}.traffic-chart-scroll{scrollbar-color:#334155 transparent;width:100%;overflow-x:auto}.traffic-chart{width:100%;min-width:680px;height:auto;display:block;overflow:visible}.chart-grid-line{stroke:#94a3b821;stroke-width:1px}.chart-axis-label{fill:#64748b;font-size:10px;font-weight:650}.chart-axis-label-y{text-anchor:end}.chart-axis-label-x{text-anchor:middle}.traffic-area{fill:url(#traffic-area-gradient)}.traffic-line{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.traffic-line-current{stroke:#38bdf8;stroke-width:3px}.traffic-line-previous{stroke:#64748b;stroke-dasharray:7 7;stroke-width:2px}.traffic-point{fill:#0f172a;stroke:#7dd3fc;stroke-width:2px;vector-effect:non-scaling-stroke}.profile-charts-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:18px;display:grid}.summary-grid-secondary{margin-top:18px}.profile-chart-card{border:1px solid var(--border-color);background:radial-gradient(circle at 100% 0,#38bdf80e,#0000 40%),#0f172ab8;border-radius:20px;min-width:0;padding:22px;box-shadow:0 18px 48px #00000021}.profile-chart-heading>span{color:#38bdf8;letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:900}.profile-chart-heading h2{color:#f8fafc;letter-spacing:-.025em;margin:7px 0 5px;font-size:20px}.profile-chart-heading p{color:#64748b;margin:0;font-size:12px}.gender-chart-content{grid-template-columns:minmax(160px,.8fr) minmax(170px,1fr);align-items:center;gap:20px;margin-top:18px;display:grid}.donut-chart{width:min(100%,210px);margin:0 auto;position:relative}.donut-chart svg{width:100%;display:block;transform:rotate(-90deg)}.donut-track,.donut-segment{fill:none;stroke-width:18px}.donut-track{stroke:#94a3b81a}.donut-segment{transition:opacity .15s}.donut-segment:hover{opacity:.78}.donut-total{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.donut-total strong{color:#f8fafc;letter-spacing:-.04em;font-size:25px}.donut-total span{color:#64748b;font-size:10px;font-weight:750}.profile-legend{gap:13px;display:grid}.profile-legend-item{grid-template-columns:9px minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.profile-legend-item i{border-radius:50%;width:9px;height:9px}.profile-legend-item span{color:#cbd5e1;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:750;overflow:hidden}.profile-legend-item strong{color:#f8fafc;font-size:12px}.profile-legend-item small{color:#64748b;grid-column:2/-1;font-size:10px}.age-chart{gap:14px;margin-top:24px;display:grid}.age-bar-row{grid-template-columns:92px minmax(80px,1fr) 48px;align-items:center;gap:10px;display:grid}.age-bar-label{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:750;overflow:hidden}.age-bar-track{background:#94a3b81a;border-radius:999px;height:9px;overflow:hidden}.age-bar-fill{border-radius:inherit;background:linear-gradient(90deg,#0284c7,#38bdf8);min-width:2px;height:100%}.age-bar-row strong{color:#e2e8f0;text-align:right;font-size:11px}.detail-page{width:min(100%,1440px);margin:0 auto}.detail-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.detail-heading>div>span,.history-card-heading span{color:#38bdf8;letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:900}.detail-heading h1{color:var(--text-primary);letter-spacing:-.04em;margin:8px 0 7px;font-size:clamp(30px,4vw,44px);line-height:1.08}.detail-heading p{color:var(--text-secondary);margin:0;font-size:14px}.detail-test-status{flex-shrink:0}.detail-record-count{border:1px solid var(--border-color);color:#cbd5e1;text-align:center;background:#02061747;border-radius:999px;min-width:78px;padding:10px 13px;font-size:12px;font-weight:800}.detail-filters{border:1px solid var(--border-color);background:#0f172a9e;border-radius:18px;flex-wrap:wrap;align-items:flex-start;gap:14px;margin-bottom:22px;padding:18px;display:flex}.detail-filter-error{color:#fca5a5;width:100%;font-size:11px;font-weight:700}.detail-toolbar{justify-content:space-between;align-items:center;gap:16px;margin:-4px 0 18px;display:flex}.detail-quick-ranges{flex-wrap:wrap;gap:8px;display:flex}.detail-quick-ranges button,.detail-export-button{box-sizing:border-box;color:#94a3b8;min-height:36px;font:inherit;cursor:pointer;background:#02061747;border:1px solid #94a3b83d;border-radius:10px;padding:0 12px;font-size:11px;font-weight:800}.detail-quick-ranges button{justify-content:center;align-items:center;width:122px;display:inline-flex}.detail-quick-ranges button:hover,.detail-quick-ranges button.is-active,.detail-export-button:hover:not(:disabled){color:#bae6fd;background:#38bdf81f;border-color:#38bdf85c}.detail-export-button{color:#bae6fd;border-color:#38bdf857}.detail-export-button:disabled{cursor:wait;opacity:.55}.history-card{border:1px solid var(--border-color);background:radial-gradient(circle at 100% 0,#38bdf80e,#0000 35%),#0f172ab8;border-radius:20px;overflow:hidden;box-shadow:0 18px 48px #00000021}.history-card-heading{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-end;gap:20px;padding:22px;display:flex}.history-card-heading h2{color:#f8fafc;letter-spacing:-.025em;margin:7px 0 0;font-size:20px}.history-card-heading small{color:#64748b;font-size:11px}.history-data-notice{color:#94a3b8;background:#38bdf80f;border-top:1px solid #94a3b81f;margin:0;padding:12px 22px;font-size:12px}.history-table-scroll{scrollbar-color:#334155 transparent;width:100%;overflow-x:auto}.history-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:920px}.history-column-date,.history-column-people{width:14%}.history-column-change{width:13%}.history-column-peak{width:15%}.history-column-gender,.history-column-age{width:22%}.history-table thead{background:#0206173d}.history-table th,.history-table td{text-align:left;vertical-align:middle;border-bottom:1px solid #94a3b81f;padding:16px 18px}.history-table th{color:#64748b;letter-spacing:.08em;text-transform:uppercase;background:0 0;font-size:10px;font-weight:900}.history-table tbody tr{transition:background .15s}.history-table tbody tr:hover{background:#38bdf809}.history-table tbody tr:last-child td{border-bottom:0}.history-table td strong{color:#cbd5e1;font-size:12px;display:block}.history-table td .history-people{color:#f8fafc;font-size:16px}.history-table td small{color:#64748b;margin-top:4px;font-size:10px;display:block}.history-change-empty{color:#64748b;font-size:10px;font-weight:750}.configuration-page,.cameras-page{width:min(100%,1440px);margin:0 auto}.cameras-page-embedded{width:100%}.stores-page{width:min(100%,1440px);margin:0 auto}.stores-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.stores-loading-state{color:#94a3b8;text-align:center;place-content:center;justify-items:center;gap:10px;min-height:200px;display:grid}.stores-loading-state strong{color:#cbd5e1;font-size:15px}.stores-heading-actions{align-items:center;gap:10px;display:flex}.stores-search{color:#64748b;background:#02061747;border:1px solid #94a3b83d;border-radius:10px;align-items:center;gap:8px;min-width:220px;min-height:36px;padding:0 11px;display:flex}.stores-search:focus-within{border-color:#38bdf880;box-shadow:0 0 0 3px #38bdf81a}.stores-search svg{flex:0 0 16px;width:16px;height:16px}.stores-search input{color:#e2e8f0;width:100%;font:inherit;background:0 0;border:0;outline:0;font-size:12px;font-weight:700}.stores-search input::placeholder{color:#64748b}.stores-search-empty{color:#94a3b8;text-align:center;border:1px dashed #94a3b847;border-radius:18px;gap:6px;padding:28px;font-size:13px;font-weight:700;display:grid}.stores-search-empty strong{color:#cbd5e1}.store-card{border:1px solid var(--border-color);background:#0f172ab8;border-radius:20px;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;padding:20px;display:grid}.store-card-select{appearance:none;width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:border-color .16s,background .16s,transform .16s}.store-card-select:hover{background:#0f172aeb;border-color:#38bdf880;transform:translateY(-1px)}.store-card-select:focus-visible{outline-offset:3px;outline:3px solid #38bdf859}.store-card-icon{color:#38bdf8;letter-spacing:.04em;background:#38bdf824;border-radius:13px;place-items:center;width:42px;height:42px;font-size:17px;font-weight:900;display:grid}.store-card h2,.store-summary-card h2{color:#f8fafc;margin:0;font-size:18px}.store-card p,.store-summary-card p{color:#94a3b8;margin:5px 0 0}.store-card-actions{align-self:center;gap:5px;margin-right:-4px}.store-card-actions .registered-camera-icon-button{border-radius:8px;width:28px;height:28px}.store-card-actions .registered-camera-icon-button svg{width:15px;height:15px}.store-back-button{color:#38bdf8;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:800}.store-workspace-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin:20px 0 24px;display:flex}.store-workspace-heading span,.store-summary-card>span{color:#38bdf8;letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:900}.store-workspace-heading h1{color:#f8fafc;margin:8px 0 0;font-size:32px}.store-workspace-heading p{color:#64748b;margin:4px 0 0}.store-service-status{color:#bbf7d0;align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.store-service-status.is-pending{color:#fcd34d}.store-service-status.is-pending i{background:#f59e0b}.store-service-status.is-offline{color:#fca5a5}.store-service-status.is-offline i{background:#f87171}.store-workspace-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.store-workspace-title-row{align-items:center;gap:12px;display:flex}.store-workspace-title-row h1{margin:0}.store-workspace-title-row .store-card-actions{transform:translateY(3px)}.store-service-status i{background:#22c55e;border-radius:50%;width:8px;height:8px}.store-sections{gap:8px;margin-bottom:24px;display:flex}.store-sections button{color:#94a3b8;font:inherit;cursor:pointer;background:#02061747;border:1px solid #94a3b83d;border-radius:10px;padding:10px 14px;font-size:12px;font-weight:800}.store-sections button.is-active{color:#bae6fd;background:#38bdf81f;border-color:#38bdf86b}.store-summary-card{border:1px solid var(--border-color);background:#0f172ab8;border-radius:20px;padding:28px}.store-add-modal{background:#0f172a;border:1px solid #38bdf847;border-radius:22px;gap:14px;width:min(100%,440px);padding:28px;display:grid;box-shadow:0 28px 90px #0000007a}.store-add-modal h2{color:#f8fafc;margin:0}.store-add-modal p{color:#94a3b8;margin:0}.store-add-modal label{color:#cbd5e1;gap:7px;font-size:12px;font-weight:800;display:grid}.store-add-modal input{color:#f8fafc;min-height:42px;font:inherit;background:#02061780;border:1px solid #94a3b852;border-radius:10px;padding:0 12px}.store-add-error{color:#fca5a5;font-size:12px;font-weight:700}.store-summary-card h2{margin-top:8px}.home-page-embedded .home-heading,.home-page-embedded .home-filters{display:none}.store-summary-toolbar{margin:0 0 22px}.store-summary-date-panel{border:1px solid var(--border-color);background:#0f172a9e;border-radius:18px;flex-wrap:wrap;gap:14px;margin:0 0 18px;padding:18px;display:flex}.detail-page-embedded .detail-heading{display:none}.cameras-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.cameras-heading>div>span{color:#38bdf8;letter-spacing:.16em;text-transform:uppercase;font-size:11px;font-weight:900}.cameras-heading h1{color:#f8fafc;letter-spacing:-.035em;margin:8px 0;font-size:32px}.cameras-heading p{color:var(--text-secondary);margin:0}.cameras-empty-state{text-align:center;background:#0f172a8f;border:1px dashed #38bdf852;border-radius:24px;justify-items:center;padding:72px 24px;display:grid}.cameras-empty-icon,.registered-camera-icon{color:#38bdf8;background:#38bdf824;border-radius:16px;place-items:center;width:48px;height:48px;font-size:22px;display:grid}.cameras-empty-state h2{color:#f8fafc;margin:18px 0 8px;font-size:22px}.cameras-empty-state p{max-width:460px;color:var(--text-secondary);margin:0 0 22px}.registered-cameras-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.registered-camera-card{border:1px solid var(--border-color);background:#0f172ab8;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px;display:grid}.registered-camera-actions{align-items:center;gap:6px;display:flex}.camera-collection-switch{cursor:pointer;background:0 0;border:0;align-items:center;margin-top:10px;padding:0;display:inline-flex}.camera-collection-switch i{background:#334155bd;border:1px solid #94a3b84d;border-radius:999px;width:30px;height:16px;padding:3px;transition:background .16s,border-color .16s}.camera-collection-switch i:after{content:"";background:#e2e8f0;border-radius:50%;width:10px;height:10px;transition:transform .16s;display:block}.camera-collection-switch:hover i{border-color:#38bdf8b8}.camera-collection-switch:focus-visible{outline-offset:4px;border-radius:999px;outline:2px solid #38bdf8cc}.camera-collection-switch.is-enabled i{background:#15803d;border-color:#4ade80b8}.camera-collection-switch.is-enabled i:after{transform:translate(12px)}.camera-central-status{color:#a9dbf3;background:#2189be1f;border:1px solid #43bef642;border-radius:999px;width:fit-content;margin-top:10px;padding:5px 9px;font-size:.72rem;font-weight:800;display:inline-flex}.camera-central-thumbnail{aspect-ratio:16/9;object-fit:cover;background:#071225;border:1px solid #43bef640;border-radius:12px;width:100%}.camera-central-collection{align-items:center;gap:.75rem;margin-top:.55rem;display:flex}.camera-central-collection .camera-central-status{margin-top:0}.camera-central-collection .camera-collection-switch:disabled{cursor:wait;opacity:.6}.registered-camera-card.is-central{grid-template-columns:minmax(0,1fr);align-items:start;position:relative}.camera-card-remove{z-index:2;color:#fca5a5;cursor:pointer;background:#0f172ae0;border:1px solid #f871714d;border-radius:50%;place-items:center;width:30px;height:30px;display:grid;position:absolute;top:10px;right:10px}.camera-card-remove:hover{color:#fff;background:#7f1d1db3}.camera-card-remove svg{width:18px;height:18px}.camera-signal-row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.camera-signal-status{border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:800}.camera-signal-status.is-online{color:#86efac;background:#22c55e24}.camera-signal-status.is-error{color:#fca5a5;background:#ef444424}.camera-signal-status.is-pending{color:#cbd5e1;background:#94a3b821}.camera-validate-button{color:#bae6fd;font:inherit;cursor:pointer;background:#38bdf814;border:1px solid #38bdf847;border-radius:10px;align-items:center;gap:6px;margin-top:9px;padding:7px 10px;font-size:.74rem;font-weight:800;display:inline-flex}.camera-validate-button:disabled{cursor:wait;opacity:.62}.camera-validate-button svg{width:16px;height:16px}.registered-camera-icon-button{color:#bae6fd;width:32px;height:32px;font:inherit;cursor:pointer;background:#38bdf814;border:1px solid #38bdf847;border-radius:9px;place-items:center;font-size:15px;font-weight:800;display:grid;position:relative}.registered-camera-icon-button:after{z-index:3;color:#e2e8f0;content:attr(data-tooltip);opacity:0;pointer-events:none;white-space:nowrap;background:#020617;border-radius:7px;padding:6px 8px;font-size:10px;font-weight:800;transition:opacity .14s,transform .14s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px);box-shadow:0 8px 18px #00000047}.registered-camera-icon-button:hover:after,.registered-camera-icon-button:focus-visible:after{opacity:1;transform:translate(-50%)}.registered-camera-icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px;height:17px}.registered-camera-delete-button{color:#fecaca;background:#f8717114;border-color:#f8717147}.camera-confirm-modal{background:#0f172a;border:1px solid #f871714d;border-radius:22px;width:min(100%,460px);padding:28px;box-shadow:0 28px 90px #0000007a}.camera-confirm-modal h2{color:#f8fafc;margin:0}.camera-confirm-modal p{color:#94a3b8;margin:12px 0 0;line-height:1.5}.camera-confirm-modal strong{color:#e2e8f0}.camera-confirm-actions{justify-content:flex-end;gap:10px;margin-top:24px;display:flex}.camera-delete-confirm-button{color:#fff;font:inherit;cursor:pointer;background:#ef4444;border:0;border-radius:14px;padding:12px 16px;font-weight:800}.camera-preview-modal{background:#0f172a;border:1px solid #38bdf847;border-radius:24px;width:min(100%,920px);max-height:min(820px,100vh - 48px);padding:24px;overflow-y:auto;box-shadow:0 28px 90px #0000007a}.camera-preview-frame{color:#94a3b8;background:#020617;border:1px solid #94a3b838;border-radius:18px;place-items:center;min-height:360px;margin-top:20px;font-weight:800;display:grid;overflow:hidden}.camera-preview-frame img{object-fit:contain;width:100%;max-height:620px;display:block}.camera-preview-demo,.camera-preview-error{color:#94a3b8;text-align:center;justify-items:center;gap:10px;max-width:440px;display:grid}.camera-preview-demo svg{color:#38bdf8;width:58px;height:58px}.camera-preview-demo strong,.camera-preview-error strong{color:#e2e8f0;font-size:16px}.camera-preview-demo span,.camera-preview-error span{font-size:13px;line-height:1.5}.camera-preview-error{color:#fca5a5;text-align:center;max-width:540px;padding:24px}.registered-camera-card h2{color:#e2e8f0;margin:0;font-size:16px}.registered-camera-name,.camera-rename-form{align-items:center;gap:8px;display:flex}.registered-camera-name button,.camera-rename-form button{color:#38bdf8;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:11px;font-weight:800}.camera-rename-form{flex-wrap:wrap}.camera-rename-form input{color:#f8fafc;width:100%;min-width:0;min-height:34px;font:inherit;background:#0206176b;border:1px solid #38bdf861;border-radius:9px;padding:0 10px;font-size:13px;font-weight:700}.registered-camera-card p{color:#94a3b8;margin:4px 0 0;font-size:13px}.configuration-heading{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;display:flex}.configuration-heading>div>span,.configuration-card-heading span{color:#38bdf8;letter-spacing:.14em;text-transform:uppercase;font-size:11px;font-weight:900}.configuration-heading h1{color:var(--text-primary);letter-spacing:-.04em;margin:8px 0 7px;font-size:clamp(30px,4vw,44px);line-height:1.08}.configuration-heading p{color:var(--text-secondary);margin:0;font-size:14px}.configuration-status{border:1px solid var(--border-color);color:#94a3b8;white-space:nowrap;background:#02061747;border-radius:999px;align-items:center;gap:9px;padding:10px 13px;font-size:12px;font-weight:750;display:flex}.configuration-status i{background:#64748b;border-radius:50%;width:8px;height:8px}.configuration-status.is-online i{background:#38bdf8;box-shadow:0 0 0 4px #38bdf81f}.configuration-message{color:#bae6fd;background:#38bdf814;border:1px solid #38bdf838;border-radius:12px;margin-bottom:18px;padding:12px 14px;font-size:12px;font-weight:750}.configuration-card{border:1px solid var(--border-color);background:radial-gradient(circle at 100% 0,#38bdf80e,#0000 40%),#0f172ab8;border-radius:20px;padding:22px;box-shadow:0 18px 48px #00000021}.configuration-runtime-card{width:100%}.agent-installation-card{max-width:760px}.agent-enrollment-result{gap:13px;margin-top:22px;display:grid}.agent-enrollment-result>strong{color:#bae6fd;font-size:14px}.agent-enrollment-result>p{color:#94a3b8;margin:0;font-size:12px;line-height:1.55}.agent-enrollment-result code{color:#e2e8f0}.agent-enrollment-result textarea{resize:vertical;color:#e5e7eb;background-color:#02061794;border:1px solid #38bdf857;border-radius:12px;width:100%;min-height:84px;padding:12px 13px;font:12px/1.5 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.agent-enrollment-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.configuration-card-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.configuration-card-heading h2{color:#f8fafc;letter-spacing:-.025em;margin:7px 0 0;font-size:20px}.configuration-card-heading select{color:#e5e7eb;min-width:170px;min-height:40px;font:inherit;background-color:#02061794;border:1px solid #94a3b847;border-radius:10px;padding:0 42px 0 12px;font-size:12px;font-weight:700}.configuration-card-heading small{color:#64748b;padding-top:8px;font-size:11px;font-weight:750}.configuration-form{gap:14px;margin-top:22px;display:grid}.configuration-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.configuration-field{gap:7px;display:grid}.configuration-field>span{color:#94a3b8;letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:850}.configuration-field input{color:#e5e7eb;width:100%;min-height:44px;font:inherit;background-color:#02061794;border:1px solid #94a3b847;border-radius:12px;outline:none;padding:0 13px;font-size:13px;font-weight:700}.configuration-field input:focus,.configuration-card-heading select:focus{border-color:#38bdf8b8;box-shadow:0 0 0 3px #38bdf81f}.configuration-checkbox{color:#cbd5e1;align-items:center;gap:9px;font-size:12px;font-weight:700;display:flex}.configuration-checkbox input{accent-color:#38bdf8}.configuration-note{color:#64748b;margin:-2px 0 0;font-size:11px;line-height:1.45}.system-coming-soon{color:#94a3b8;border:1px dashed #94a3b84d;border-radius:14px;gap:6px;margin-top:22px;padding:16px;font-size:13px;display:grid}.system-coming-soon strong{color:#bae6fd;font-size:12px}.configuration-form-error{color:#fca5a5;font-size:11px;font-weight:700}.configuration-form-success{color:#86efac;font-size:11px;font-weight:750}.configuration-submit{color:#bae6fd;width:fit-content;min-height:40px;font:inherit;cursor:pointer;background:#38bdf81f;border:1px solid #38bdf857;border-radius:10px;padding:0 14px;font-size:12px;font-weight:850}.configuration-submit:hover:not(:disabled){background:#38bdf833}.configuration-submit:disabled{cursor:wait;opacity:.65}.configuration-camera-card{margin-top:18px}.configuration-empty{color:#64748b;margin:22px 0 0;font-size:13px}.placeholder-page{text-align:center}.placeholder-page h1{font-size:clamp(32px,5vw,48px)}.page-content-tests{padding:0}.page-content-tests .camera-app{width:100%;min-height:calc(100vh - 84px - var(--dashboard-footer-height));padding-top:32px}.app-footer{min-height:var(--dashboard-footer-height);flex:0 0 var(--dashboard-footer-height);border-top:1px solid var(--dashboard-footer-border);color:#94a3b8;text-align:center;background:#1e293bb8;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:18px 28px;font-size:11px;display:flex}.app-footer strong{font-weight:750}.dashboard-shell-collapsed .sidebar{width:var(--sidebar-collapsed-width)}.dashboard-shell-collapsed .dashboard-main{margin-left:var(--sidebar-collapsed-width)}.dashboard-shell-collapsed .sidebar-brand,.dashboard-shell-collapsed .sidebar-footer{justify-content:center;padding-inline:0}.dashboard-shell-collapsed .brand-copy,.dashboard-shell-collapsed .sidebar-footer-copy,.dashboard-shell-collapsed .nav-label,.dashboard-shell-collapsed .nav-chevron,.dashboard-shell-collapsed .sidebar-section-label{display:none}.dashboard-shell-collapsed .nav-item{justify-content:center;padding-inline:0}.dashboard-shell-collapsed .nav-submenu{display:none}@media (width<=840px){.sidebar{width:min(86vw,292px);transform:translate(-101%);box-shadow:18px 0 50px #00000057}.dashboard-shell-collapsed .sidebar{width:min(86vw,292px)}.dashboard-shell-collapsed .sidebar-brand{justify-content:flex-start;padding:0 22px}.dashboard-shell-collapsed .sidebar-footer{justify-content:flex-start;padding:0 25px}.dashboard-shell-collapsed .brand-copy,.dashboard-shell-collapsed .sidebar-footer-copy{display:grid}.dashboard-shell-collapsed .nav-label,.dashboard-shell-collapsed .nav-chevron,.dashboard-shell-collapsed .sidebar-section-label{display:initial}.dashboard-shell-collapsed .nav-item{justify-content:flex-start;padding:0 13px}.dashboard-shell-collapsed .nav-submenu{display:grid}.sidebar-mobile-open{transform:translate(0)}.sidebar-close{display:block}.sidebar-backdrop{z-index:25;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#020617ad;border:0;position:fixed;inset:0}.dashboard-main,.dashboard-shell-collapsed .dashboard-main{margin-left:0}.menu-toggle-desktop{display:none}.menu-toggle-mobile{display:grid}.topbar{flex-basis:72px;min-height:72px;padding:0 18px}.page-content{padding:20px}.placeholder-page{min-height:100%}.home-heading,.detail-heading,.configuration-heading,.cameras-heading{flex-direction:column;align-items:flex-start}.stores-heading-actions{width:100%}.stores-search{flex:1}.configuration-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-charts-grid{grid-template-columns:1fr}.page-content-tests{padding:0}.user-copy{display:none}.topbar-organization{min-width:170px}}@media (width<=480px){:root{--dashboard-footer-height:84px}.topbar{gap:12px}.topbar-user,.topbar-title{display:none}.topbar-organization{flex:1;min-width:0;margin-left:0}.app-footer{padding:18px}.home-heading{margin-bottom:22px}.home-heading h1{font-size:31px}.home-updated{white-space:normal;text-align:center;justify-content:center;width:100%}.home-filters,.detail-filters{padding:15px;display:grid}.detail-toolbar{flex-direction:column;align-items:flex-start}.filter-custom-range{display:grid}.filter-field{min-width:0}.summary-grid{grid-template-columns:1fr}.summary-card{min-height:170px}.summary-value{font-size:30px}.traffic-chart-card{padding:18px 14px}.chart-heading{flex-direction:column;gap:12px}.chart-legend{justify-content:flex-start;padding-top:0}.profile-chart-card{padding:18px}.gender-chart-content{grid-template-columns:1fr}.donut-chart{width:min(72vw,220px)}.age-bar-row{grid-template-columns:84px minmax(70px,1fr) 44px}.history-card-heading{flex-direction:column;align-items:flex-start;padding:18px}.history-table th,.history-table td{padding:14px}.configuration-card{padding:18px}.configuration-card-heading{flex-direction:column;align-items:flex-start}.configuration-card-heading select{width:100%}.configuration-form-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
