.date-picker-field{position:relative;display:grid;gap:.4rem;min-width:0}.toolbar>.date-picker-field{min-width:190px}.date-picker-label{color:#b7c4e1;font-size:.78rem;font-weight:650}.date-picker-trigger{display:flex;width:100%;min-height:43px;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem .8rem;border:1px solid #263352;border-radius:8px;background:#10182b;color:#7f8ba6;font-weight:500;text-align:left}.date-picker-trigger.selected{color:#edf2ff}.date-picker-trigger:hover{border-color:#40527b;filter:none}.date-picker-trigger:focus-visible{outline:2px solid #8299fb;outline-offset:2px}.date-picker-icon{display:grid;width:27px;height:27px;flex:0 0 auto;place-items:center;border-radius:7px;background:#1c2949;color:#9fb0ff;font-size:1rem}.date-picker-popover{position:absolute;z-index:40;top:calc(100% + .55rem);left:0;width:min(330px,calc(100vw - 2rem));padding:.85rem;border:1px solid #304267;border-radius:14px;background:#111a2e;box-shadow:0 22px 60px #000b;animation:date-picker-enter .16s ease both}.date-picker-nav,.date-picker-selects,.date-picker-footer{display:flex;align-items:center}.date-picker-nav{justify-content:space-between;gap:.45rem}.date-picker-selects{flex:1;justify-content:center;gap:.35rem}.date-picker-nav button{width:34px;height:34px;padding:0;border:1px solid #2b3b5d;background:#16213a;color:#dce5ff;font-size:1.35rem}.date-picker-selects select{min-width:0;padding:.45rem .5rem;border:1px solid #2b3b5d;border-radius:8px;background:#0f1729;color:#e8eeff;font:inherit;font-size:.78rem;font-weight:700}.date-picker-selects select:first-child{flex:1}.date-picker-weekdays,.date-picker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.25rem}.date-picker-weekdays{margin:.8rem 0 .35rem}.date-picker-weekdays span{color:#7886a5;font-size:.65rem;font-weight:750;text-align:center}.date-picker-days>span{min-height:34px}.date-picker-days button{min-width:0;height:34px;padding:0;border-radius:8px;background:transparent;color:#ccd6ee;font-size:.76rem;font-weight:650}.date-picker-days button:hover:not(:disabled){background:#22345d;filter:none}.date-picker-days button.active{background:#7c96ff;color:#071020;box-shadow:0 0 0 2px #7c96ff35}.date-picker-days button:disabled{opacity:.22}.date-picker-footer{justify-content:flex-end;gap:.45rem;margin-top:.75rem;padding-top:.65rem;border-top:1px solid #263653}.date-picker-footer button{padding:.38rem .65rem;background:transparent;color:#9fb0ff;font-size:.72rem}.date-picker-clear{margin-right:auto;color:#aeb9d4!important}html[data-theme=light] .date-picker-label{color:#475467}html[data-theme=light] .date-picker-trigger{border-color:#cbd5e1;background:#fff;color:#667085}html[data-theme=light] .date-picker-trigger.selected{color:#111827}html[data-theme=light] .date-picker-icon{background:#e7edff;color:#315ed5}html[data-theme=light] .date-picker-popover{border-color:#cbd5e1;background:#fff;box-shadow:0 22px 60px #24365d30}html[data-theme=light] .date-picker-nav button,html[data-theme=light] .date-picker-selects select{border-color:#d5ddea;background:#f5f7fb;color:#172033}html[data-theme=light] .date-picker-days button{color:#344054}html[data-theme=light] .date-picker-days button:hover:not(:disabled){background:#e8edff}html[data-theme=light] .date-picker-days button.active{background:#315ed5;color:#fff}html[data-theme=light] .date-picker-footer{border-color:#dbe2ef}@keyframes date-picker-enter{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:430px){.date-picker-popover{position:fixed;top:50%;left:50%;width:min(330px,calc(100vw - 1.5rem));transform:translate(-50%,-50%)}@keyframes date-picker-enter{0%{opacity:0;transform:translate(-50%,calc(-50% - 8px)) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}}.api-status{display:flex;min-width:142px;align-items:center;gap:.2rem;border:1px solid #253454}.api-status span{margin-right:.55rem}.api-status strong{margin-left:auto;color:#edf2ff;font-size:.75rem}.dot.bad{background:#ef718b;box-shadow:0 0 0 3px #ef718b1f}.dot.pending{background:#8d9ab7;animation:connection-pulse 1.1s ease-in-out infinite alternate}.service-state{display:inline-flex;width:fit-content;align-items:center;gap:.45rem;margin-top:1rem;padding:.58rem .8rem;border:1px solid #2c3b5c;border-radius:999px;background:#10192d;color:#aab7d2;font-size:.75rem;font-weight:650}.service-state.online{border-color:#27614f;background:#102a26;color:#9ce6cb}.service-state.offline{border-color:#704153;background:#2c1d29;color:#f0a9b8}.service-disabled form{opacity:.58}.service-disabled .file-picker{cursor:not-allowed}.file-picker[aria-disabled=true]{pointer-events:none}.user-row button:disabled{opacity:.38}html[data-theme=light] .api-status{border-color:#d5ddec}html[data-theme=light] .api-status strong{color:#172033}html[data-theme=light] .service-state{border-color:#d5ddec;background:#f5f7fb;color:#526079}html[data-theme=light] .service-state.online{border-color:#9edbc4;background:#ebfaf4;color:#17634c}html[data-theme=light] .service-state.offline{border-color:#e2b0bc;background:#fff1f4;color:#8a3448}@keyframes connection-pulse{0%{opacity:.45}to{opacity:1}}@media(max-width:680px),(max-aspect-ratio:3 / 4){.api-status{flex:1;min-width:0}.api-status span{margin-right:.25rem}}@media(max-width:520px){.header-tools .api-status{width:100%}}@media(prefers-reduced-motion:reduce){.dot.pending{animation:none}}.page-title-row{display:flex;align-items:center;gap:.75rem}.drawer-brand{display:none}.role-chip{margin-left:auto;padding:.18rem .4rem;border:1px solid #35415c;border-radius:999px;color:#9aa7c2;font-size:.56rem;font-style:normal;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.role-chip.admin{border-color:#4862a0;background:#1c2d59;color:#bdcaff}.card-grid.viewer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-theme=light] .role-chip{border-color:#cbd5e1;color:#667085}html[data-theme=light] .role-chip.admin{border-color:#9eb1e8;background:#e8edff;color:#24479b}.brand-logo{width:39px;height:39px;flex:0 0 auto;border-radius:11px;filter:drop-shadow(0 7px 13px #0005)}.demo-chip,.record-count{display:inline-flex;align-items:center;min-height:28px;padding:.3rem .65rem;border:1px solid #594d2b;border-radius:999px;background:#2c2617;color:#f3cc7a;font-size:.68rem;font-weight:750;white-space:nowrap}.record-count{border-color:#2c3c5e;background:#111b31;color:#aebbd6}.demo-banner{display:flex;align-items:center;gap:.65rem;margin:-1rem 0 1rem;padding:.72rem .9rem;border:1px solid #5f502c;border-radius:11px;background:linear-gradient(90deg,#2c2618,#201d16);color:#e9c97f;font-size:.76rem;line-height:1.4}.language-setting{padding:.3rem 0 1rem;border-top:1px solid #263653}.language-setting>strong,.language-setting>small{display:block}.language-setting>strong{margin-top:.9rem}.language-setting>small{margin-top:.25rem}.language-options{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.8rem}.language-option{display:flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid #2d3d60;background:#10182b;color:#b5c1dc}.language-option>span{font-size:.72rem}.language-option.active{border-color:#8299fb;background:#233363;color:#f2f5ff;box-shadow:0 0 0 2px #8299fb26}.demo-toggle{border-bottom:1px solid #263653}.quick-filter{display:inline-flex;max-width:100%;gap:.3rem;margin-bottom:1rem;padding:.3rem;border:1px solid #283858;border-radius:12px;background:#0d1527;overflow-x:auto}.quick-filter button{margin:0;padding:.52rem .78rem;background:transparent;color:#98a6c3;font-size:.75rem;white-space:nowrap}.quick-filter button.active{background:#263866;color:#f0f4ff;box-shadow:0 4px 12px #0003}.attendance-panel .toolbar{margin-bottom:.6rem}.search-field{position:relative}.search-field input{padding-right:2.3rem}.search-field button{position:absolute;right:.35rem;bottom:.25rem;width:30px;height:30px;padding:0;background:transparent;color:#8f9dbb}.refresh-button{padding:.55rem .75rem;font-size:.75rem}.panel-title.compact{align-items:center}.skeleton-list{display:grid;gap:.65rem;padding:.45rem 0}.skeleton-list span{display:block;height:46px;border-radius:9px;background:linear-gradient(90deg,#172239 20%,#21304d,#172239 64%);background-size:220% 100%;animation:skeleton-wave 1.35s ease-in-out infinite}.toast-viewport{position:fixed;z-index:60;right:1rem;bottom:1rem;display:grid;width:min(360px,calc(100vw - 2rem));gap:.6rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.7rem;padding:.8rem .9rem;border:1px solid #345071;border-radius:11px;background:#121d31f2;color:#dce6fa;box-shadow:0 14px 38px #0008;font-size:.78rem;line-height:1.4;animation:toast-enter .2s ease both}.toast i{display:grid;width:24px;height:24px;flex:0 0 auto;place-items:center;border-radius:50%;background:#274062;color:#bcd0f1;font-style:normal;font-weight:800}.toast.success{border-color:#27614f}.toast.success i{background:#174739;color:#8ce4c1}.toast.error{border-color:#704153}.toast.error i{background:#552737;color:#ffb6c5}html[data-theme=light] .demo-chip,html[data-theme=light] .demo-banner{border-color:#e4c978;background:#fff9e8;color:#785b13}html[data-theme=light] .record-count{border-color:#d5ddec;background:#f3f6fb;color:#526079}html[data-theme=light] .language-setting,html[data-theme=light] .demo-toggle{border-color:#dbe2ef}html[data-theme=light] .language-option{border-color:#cbd5e1;background:#fff;color:#344054}html[data-theme=light] .language-option.active{border-color:#315ed5;background:#e7edff;color:#173b91}html[data-theme=light] .quick-filter{border-color:#d5ddea;background:#f1f4fa}html[data-theme=light] .quick-filter button{color:#526079}html[data-theme=light] .quick-filter button.active{background:#fff;color:#173b91;box-shadow:0 4px 12px #2d42731c}html[data-theme=light] .skeleton-list span{background:linear-gradient(90deg,#edf1f7 20%,#dde5f1,#edf1f7 64%);background-size:220% 100%}html[data-theme=light] .toast{border-color:#c7d2e3;background:#fffffff5;color:#263248;box-shadow:0 14px 38px #24365d28}@keyframes skeleton-wave{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes toast-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1050px){.content>header{align-items:flex-start;flex-direction:column}.header-tools{width:100%;justify-content:flex-start;flex-wrap:wrap}}@media(max-width:680px),(max-aspect-ratio:3 / 4){.quick-filter{display:flex;width:100%}.quick-filter button{flex:1}.attendance-panel .toolbar{margin-top:.4rem}.record-count{align-self:flex-start}}@media(max-width:760px){.sidebar>.brand{min-width:0;gap:.65rem}.sidebar>.brand .brand-logo{width:34px;height:34px;border-radius:9px}.sidebar>.brand>div{min-width:0}.sidebar>.brand strong{overflow:hidden;color:#edf2ff;font-size:.86rem;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.sidebar>.brand small{margin-top:.18rem;color:#8290ad;font-size:.62rem;line-height:1.2}.sidebar-drawer{padding-top:1rem}.drawer-brand{display:flex;min-height:54px;align-items:center;gap:.7rem;padding:.25rem .55rem 1rem;border-bottom:1px solid #263653}.drawer-brand-logo{width:34px;height:34px;flex:0 0 auto;border-radius:10px;filter:drop-shadow(0 6px 12px #0004)}.drawer-brand strong,.drawer-brand small{display:block}.drawer-brand strong{color:#edf2ff;font-size:.86rem}.drawer-brand small{margin-top:.18rem;color:#8290ad;font-size:.62rem}.sidebar-drawer nav{margin-top:.25rem}html[data-theme=light] .drawer-brand{border-color:#dbe2ef}html[data-theme=light] .drawer-brand strong{color:#172033}html[data-theme=light] .drawer-brand small{color:#667085}}@media(max-width:430px){.sidebar .brand small{display:block}.page-title-row{width:100%;justify-content:space-between}.header-tools .api-status,.header-tools .camera-status{width:100%}.quick-filter button{padding:.5rem .6rem}.toast-viewport{right:.75rem;bottom:4.7rem;width:calc(100vw - 1.5rem)}}@media(prefers-reduced-motion:reduce){.skeleton-list span,.toast{animation:none}}.unknown-image-link{display:inline-grid;gap:.35rem;color:#9bafff;font-size:.74rem;text-decoration:none}.unknown-image-link img{width:72px;height:72px;border:1px solid #34476d;border-radius:10px;object-fit:cover;background:#090d18}.demo-face-crop{width:72px;height:72px;display:grid;place-items:center;border:1px dashed #4a5f8d;border-radius:10px;background:linear-gradient(145deg,#202d50,#111a2e);color:#9fb0ff}.demo-face-crop span{font-size:1.55rem;font-weight:800;line-height:1}.demo-face-crop small{color:#8190b2;font-size:.58rem;text-transform:uppercase}.unknown-actions{display:flex;min-width:220px;align-items:center;flex-wrap:wrap;gap:.55rem}.unknown-actions button{padding:.45rem .65rem;font-size:.72rem}html[data-theme=light] .unknown-image-link{color:#315ed5}html[data-theme=light] .unknown-image-link img{border-color:#cbd5e1;background:#f5f7fb}html[data-theme=light] .demo-face-crop{border-color:#9aabd0;background:linear-gradient(145deg,#edf2ff,#f8faff);color:#315ed5}.admin-table{min-width:980px}.admin-table td{vertical-align:middle}.admin-metrics{margin-bottom:1rem}.presence-state{display:inline-flex;align-items:center;white-space:nowrap;color:#9aa7c2}.presence-state .dot{margin-right:.4rem}.presence-state.online{color:#86e4c1}.admin-actions{display:flex;min-width:190px;align-items:center;flex-wrap:wrap;gap:.6rem}.admin-actions button{padding:.45rem .65rem;font-size:.72rem}html[data-theme=light] .presence-state{color:#667085}html[data-theme=light] .presence-state.online{color:#157052}html{width:100%;min-width:100%;min-height:100%;background-color:#090d18;overscroll-behavior:none}body,#root{width:100%;min-width:100%;min-height:100%}body{position:relative;min-height:100vh;min-height:100dvh;background-color:#090d18}#root{position:relative;isolation:isolate}#root:before{content:"";position:fixed;inset:-200vmax;z-index:-1;pointer-events:none;background-color:#090d18}html[data-theme=light],html[data-theme=light] body,html[data-theme=light] #root:before{background-color:#f4f7fc}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#e9efff;background:#090d18;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 82% -10%,#18285e 0,transparent 31%),#090d18;min-height:100vh}button,input{font:inherit}button{cursor:pointer;border:0;border-radius:10px;background:#7c96ff;color:#071020;font-weight:750;padding:.7rem 1rem}button:hover{filter:brightness(1.08)}button:disabled{opacity:.55;cursor:not-allowed}input{background:#10182b;border:1px solid #263352;border-radius:8px;color:#edf2ff;padding:.7rem;width:100%;margin-top:.4rem}.app-shell{display:flex;min-height:100vh}.sidebar{width:242px;padding:1.7rem 1rem;border-right:1px solid #1d2942;background:#0c1222cc;display:flex;flex-direction:column;gap:2rem}.brand{display:flex;gap:.8rem;align-items:center;padding:.35rem .6rem}.brand-mark{display:grid;place-items:center;color:#95a9ff;font-size:1.65rem}.brand strong,.brand small{display:block}.brand small,.muted,small{color:#8f9bb8;font-size:.78rem}.sidebar nav{display:grid;gap:.35rem}.nav{background:transparent;color:#aeb9d4;text-align:left;font-weight:600}.nav.active,.nav:hover{background:#1a2850;color:#eaf0ff}.account{margin-top:auto;border-top:1px solid #25304b;padding:1rem .6rem;display:grid;gap:.7rem;color:#99a5c0;font-size:.77rem;word-break:break-all}.text-button{padding:0;background:transparent;color:#aabaff;text-align:left}.content{width:min(1280px,calc(100% - 242px));padding:2.6rem clamp(1.1rem,4vw,4rem);margin:auto}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}h1,h2,p{margin-top:0}h1{font-size:clamp(1.7rem,3vw,2.4rem);margin-bottom:0}h2{font-size:1.05rem;margin-bottom:.35rem}.eyebrow{letter-spacing:.14em;color:#8299fb;font-size:.7rem;font-weight:800;margin-bottom:.45rem}.status,.pill{border-radius:999px;background:#111b31;padding:.5rem .75rem;color:#c0cbe3;font-size:.78rem;white-space:nowrap}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.45rem}.good{background:#57d8a5}.warn{background:#f5bb62}.notice{background:#4a2633;border:1px solid #a74e65;color:#ffdce3;padding:.75rem 1rem;border-radius:10px;margin-bottom:1rem;display:flex;justify-content:space-between}.notice button{padding:0;background:transparent;color:inherit}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.metric,.panel{background:linear-gradient(150deg,#131d35,#101727);border:1px solid #223150;border-radius:14px;box-shadow:0 16px 30px #0000001c}.metric{padding:1.2rem;display:grid;gap:.45rem;color:#aab5cf;font-size:.82rem}.metric strong{font-size:2rem;color:#edf2ff}.panel{padding:1.3rem}.panel-title,.toolbar{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1rem}.panel-title p,.enrollment p{color:#8d9ab7;font-size:.85rem;margin-bottom:0}.toolbar{align-items:end}.toolbar label,label{display:grid;color:#b7c4e1;font-size:.78rem;font-weight:650;gap:.15rem}.grow{flex:1}.secondary{background:#1a2849;color:#dce6ff}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:620px;font-size:.85rem}th{text-align:left;color:#8e9bbb;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:.7rem}td{border-top:1px solid #20304d;padding:.8rem .7rem;color:#cbd5ea}td strong,td small{display:block}.pill.success{background:#163e36;color:#89e8c4}.pill.warning{background:#49371c;color:#f7ce7d}.empty{text-align:center;padding:2rem;color:#8c9abb}.split{display:grid;grid-template-columns:minmax(280px,.8fr) 1.2fr;gap:1rem}.enrollment form{display:grid;gap:.9rem;margin-top:1.2rem}.user-list{display:grid;gap:.5rem}.user-row{display:flex;align-items:center;gap:.8rem;border-top:1px solid #20304d;padding:.75rem 0}.user-row strong,.user-row small{display:block}.avatar,.camera-icon{background:#2b3d71;color:#bfd0ff;width:2.3rem;height:2.3rem;border-radius:50%;display:grid;place-items:center;font-weight:800}.danger{color:#f59baa}.user-row .danger{margin-left:auto}.image-link{color:#9bafff}.device-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.device-top{display:flex;justify-content:space-between}.camera-icon{font-size:1.2rem}.device h2{margin-top:1.1rem}.device p,dt{color:#94a1bf;font-size:.82rem}.device dl{margin-bottom:0}.device dt{margin-top:.8rem}.device dd{margin:.2rem 0;color:#d8e1f4;font-size:.84rem}.login-shell{min-height:100vh;display:grid;place-items:center;padding:1rem}.login-card{width:min(430px,100%);background:#121c33;border:1px solid #28385b;padding:2rem;border-radius:18px;box-shadow:0 20px 70px #0008}.login-card form{display:grid;gap:1rem;margin-top:1.5rem}.login-card button{margin-top:.5rem}@media(max-width:800px){.sidebar{width:70px;padding:.8rem .35rem}.brand div,.nav{font-size:0}.brand{justify-content:center;padding:0}.brand-mark{font-size:1.5rem}.nav{height:42px}.nav.active:after,.nav:hover:after{content:"•";font-size:1.2rem}.account{display:none}.content{width:calc(100% - 70px);padding:1.5rem 1rem}.card-grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}header{align-items:flex-start;gap:.7rem;flex-direction:column}.toolbar{align-items:stretch;flex-wrap:wrap}.toolbar label{flex:1}}@media(max-width:460px){.card-grid{grid-template-columns:1fr}.content{padding:.9rem}.panel{padding:.85rem}}.auth-link{justify-self:center;color:#b9c6ff;text-align:center}.auth-link:hover{color:#eef2ff;filter:none}.signup-card{width:min(560px,100%);max-height:calc(100dvh - 2rem);overflow-y:auto}.auth-corner-tools{position:fixed;top:1rem;right:1rem;z-index:5;display:flex;align-items:stretch;gap:.55rem}.auth-settings-button{display:grid;width:46px;place-items:center;padding:0;border:1px solid #253454;background:#10182bd9;color:#aebdff;font-size:1.15rem;box-shadow:0 10px 24px #0000001f}.login-card h1+.muted{margin-top:.45rem}.auth-tabs{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;gap:.45rem;margin:1rem 0 1.4rem;padding:.3rem;border:1px solid #293858;border-radius:12px;background:#0d1527;overflow:hidden}.auth-tabs:before{position:absolute;z-index:0;top:.3rem;bottom:.3rem;left:.3rem;width:calc(50% - .3rem);border-radius:9px;background:#263866;box-shadow:0 5px 16px #0003;content:"";transition:transform .26s cubic-bezier(.2,.8,.2,1)}.auth-tabs[data-mode=sign-up]:before{transform:translate(100%)}.auth-tabs button{position:relative;z-index:1;margin:0;padding:.6rem;background:transparent;color:#9eabc8;transition:color .22s ease,transform .22s ease}.auth-tabs button.active{background:transparent;color:#f1f4ff;box-shadow:none;transform:translateY(-1px)}.auth-view{animation:auth-view-enter .3s cubic-bezier(.2,.8,.2,1) both}.signup-passwords{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.signup-help{line-height:1.45;text-align:center}.auth-notice{border:1px solid;border-radius:10px;padding:.8rem .9rem;font-size:.8rem;line-height:1.45}.auth-notice.success{border-color:#56e5b2;background:#1b594b;color:#d6fff1;box-shadow:0 0 24px #47d9a633}.auth-notice.error{border-color:#df6d86;background:#4a2633;color:#ffe4ea}.signing-in{animation:login-card-pulse .8s ease-in-out infinite alternate}.signing-label{display:inline-flex;align-items:center;justify-content:center;gap:.55rem}.login-spinner{width:1rem;height:1rem;border:2px solid #1b2853;border-top-color:transparent;border-radius:50%;animation:login-spin .7s linear infinite}@keyframes login-spin{to{transform:rotate(360deg)}}@keyframes login-card-pulse{0%{box-shadow:0 20px 70px #0008}to{box-shadow:0 20px 80px #6d86ff45}}@keyframes auth-view-enter{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}@media(prefers-reduced-motion:reduce){.signing-in,.login-spinner,.auth-view{animation:none}.auth-tabs:before,.auth-tabs button{transition:none}}@media(max-width:520px){.auth-corner-tools{position:absolute;top:.75rem;right:.75rem}.auth-corner-tools .live-clock{min-width:102px;width:auto;padding:.45rem .6rem;text-align:right}.auth-settings-button{width:42px}.login-shell{padding-top:5.5rem}.signup-card{max-height:none}.signup-passwords{grid-template-columns:1fr}}.header-tools{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}.live-clock{min-width:118px;padding:.55rem .75rem;border:1px solid #253454;border-radius:12px;background:#10182bd9;text-align:right;box-shadow:0 10px 24px #0000001f}.live-clock strong,.live-clock span{display:block}.live-clock strong{color:#eef2ff;font-size:.95rem}.live-clock span{margin-top:.1rem;color:#8f9bb8;font-size:.68rem}.sidebar-footer{margin-top:auto;display:grid;gap:.85rem}.sidebar-drawer{display:contents}.menu-button,.mobile-nav-backdrop{display:none}.sidebar-footer .account{margin-top:0}.sidebar-actions{display:flex;align-items:center;gap:.45rem}.sidebar-actions .user-chip{width:100%}.user-chip{display:inline-flex;min-width:0;align-items:center;gap:.45rem;padding:.6rem .65rem;border:1px solid #263653;border-radius:10px;color:#c4cee4;font-size:.76rem;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-chip>span{color:#57d8a5;font-size:.55rem}.settings-button{display:flex;align-items:center;gap:.65rem;width:100%;padding:.7rem .65rem;background:transparent;color:#aeb9d4;text-align:left}.settings-button:hover{background:#1a2850;color:#eaf0ff}.tab-stage{animation:tab-slide-in .22s cubic-bezier(.2,.8,.2,1) both}.nav{transition:background-color .18s ease,color .18s ease,transform .18s ease}.nav.active{transform:translate(3px)}@keyframes tab-slide-in{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}.settings-button span{color:#95a9ff;font-size:1.15rem}.floating-settings{position:fixed;z-index:18;right:max(1.15rem,env(safe-area-inset-right));bottom:max(1.15rem,env(safe-area-inset-bottom));width:48px;height:48px;display:grid;place-items:center;padding:0;border:1px solid #34466d;border-radius:14px;background:#17223c;color:#9fb0ff;box-shadow:0 12px 28px #0006;font-size:1.22rem;transition:transform .16s ease,background-color .16s ease}.floating-settings:hover{transform:translateY(-2px);background:#21315a}.floating-settings:focus-visible{outline:2px solid #8fa3ff;outline-offset:3px}.settings-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:1rem;background:#050814b8;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.settings-dialog{width:min(430px,100%);padding:1.35rem;border:1px solid #304267;border-radius:16px;background:linear-gradient(150deg,#151f39,#101727);box-shadow:0 26px 80px #000a}.settings-title{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.8rem}.settings-title h2{margin-bottom:0}.settings-close{padding:.1rem .45rem;background:transparent;color:#b9c4dd;font-size:1.4rem}.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0;border-top:1px solid #263653}.toggle-row span,.toggle-row strong,.toggle-row small{display:block}.toggle-row small{margin-top:.25rem}.toggle-row input{width:1.2rem;height:1.2rem;margin:0;accent-color:#8299fb}.settings-note{margin:.8rem 0 0;color:#8290ad;font-size:.74rem}@media(max-width:800px){.header-tools{width:100%;justify-content:space-between}.settings-button{justify-content:center;padding:.65rem 0;font-size:0}.settings-button span{font-size:1.25rem}}@media(max-width:520px){.header-tools{align-items:stretch;flex-direction:column}.live-clock{width:100%;text-align:left}}.theme-setting{padding:.3rem 0 1rem}.theme-setting>strong,.theme-setting>small{display:block}.theme-setting>small{margin-top:.25rem}.theme-options{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:.8rem}.theme-option{display:flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid #2d3d60;background:#10182b;color:#b5c1dc}.theme-option.active{border-color:#8299fb;background:#233363;color:#f2f5ff;box-shadow:0 0 0 2px #8299fb26}.settings-signout{width:100%;margin-top:.7rem;border:1px solid #784356;background:transparent;color:#f59baa}.overview-table table{min-width:0}.table-wrap{padding-bottom:.35rem;scrollbar-width:thin;scrollbar-color:#516388 #11192b}.table-wrap::-webkit-scrollbar{width:9px;height:9px}.table-wrap::-webkit-scrollbar-track{border-radius:999px;background:#11192b}.table-wrap::-webkit-scrollbar-thumb{border:2px solid #11192b;border-radius:999px;background:#516388}.table-wrap::-webkit-scrollbar-thumb:hover{background:#6f83ad}.table-wrap::-webkit-scrollbar-corner{background:transparent}.metric,.device,.user-row{contain:layout paint}.camera-status{min-width:178px;display:flex;align-items:center}.camera-status-label{margin-right:.75rem}.camera-count{margin-left:auto;color:#edf2ff;font-size:.9rem}.file-field{display:grid;gap:.45rem}.form-label{color:#b7c4e1;font-size:.78rem;font-weight:650}.file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-picker-row{display:flex;align-items:stretch;gap:.5rem}.file-picker{flex:1;min-width:0;display:flex;align-items:center;gap:.8rem;padding:.8rem;border:1px dashed #40527b;border-radius:11px;background:#10182b;cursor:pointer;transition:border-color .16s ease,background-color .16s ease}.file-picker:hover,.file-input:focus-visible+.file-picker-row .file-picker{border-color:#8299fb;background:#14203b}.file-icon{flex:0 0 auto;width:2.45rem;height:2.45rem;display:grid;place-items:center;border-radius:10px;background:#233363;color:#b9c7ff;font-size:1.35rem}.file-copy{min-width:0;display:grid;gap:.18rem}.file-copy strong,.file-copy small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-copy strong{color:#e7edff;font-size:.82rem}.file-action{margin-left:auto;color:#9fb0ff;font-size:.76rem;font-weight:750}.file-clear{width:3rem;padding:0;border:1px solid #3b4968;background:#151e32;color:#c6d0e5;font-size:1.2rem}html[data-theme=light]{color:#172033;background:#f4f7fc;color-scheme:light}html[data-theme=light] body{color:#172033;background:radial-gradient(circle at 82% -10%,#dce6ff 0,transparent 34%),#f4f7fc}html[data-theme=light] h1,html[data-theme=light] h2,html[data-theme=light] .metric strong,html[data-theme=light] td,html[data-theme=light] .device dd{color:#101828}html[data-theme=light] .sidebar{border-color:#d4dbea;background:#ffffffed;box-shadow:8px 0 28px #23345b0d}html[data-theme=light] .brand strong,html[data-theme=light] .account,html[data-theme=light] .settings-button,html[data-theme=light] .user-chip{color:#202a3d}html[data-theme=light] .user-chip{border-color:#d5ddea;background:#f8faff}html[data-theme=light] .brand small,html[data-theme=light] .muted,html[data-theme=light] small,html[data-theme=light] .panel-title p,html[data-theme=light] .enrollment p,html[data-theme=light] .device p,html[data-theme=light] dt,html[data-theme=light] .live-clock span{color:#667085}html[data-theme=light] .nav{color:#344054}html[data-theme=light] .nav.active,html[data-theme=light] .nav:hover,html[data-theme=light] .settings-button:hover{background:#e5ebff;color:#172554}html[data-theme=light] .account{border-color:#d8deea}html[data-theme=light] .metric,html[data-theme=light] .panel{border-color:#d5ddec;background:linear-gradient(150deg,#fff,#f8faff);box-shadow:0 16px 34px #24365d12}html[data-theme=light] .metric,html[data-theme=light] th,html[data-theme=light] .empty,html[data-theme=light] .toolbar label,html[data-theme=light] label{color:#475467}html[data-theme=light] td,html[data-theme=light] .user-row,html[data-theme=light] .toggle-row{border-color:#dbe2ef}html[data-theme=light] input{border-color:#cbd5e1;background:#fff;color:#111827}html[data-theme=light] .form-label{color:#475467}html[data-theme=light] .table-wrap{scrollbar-color:#9caccc #e8edf6}html[data-theme=light] .table-wrap::-webkit-scrollbar-track{background:#e8edf6}html[data-theme=light] .table-wrap::-webkit-scrollbar-thumb{border-color:#e8edf6;background:#9caccc}html[data-theme=light] .table-wrap::-webkit-scrollbar-thumb:hover{background:#7488ad}html[data-theme=light] .file-picker{border-color:#b9c5d8;background:#f8faff}html[data-theme=light] .file-picker:hover,html[data-theme=light] .file-input:focus-visible+.file-picker-row .file-picker{border-color:#315ed5;background:#eef3ff}html[data-theme=light] .file-icon{background:#e3eaff;color:#274da7}html[data-theme=light] .file-copy strong,html[data-theme=light] .camera-count{color:#172033}html[data-theme=light] .file-action{color:#315ed5}html[data-theme=light] .file-clear{border-color:#cbd5e1;background:#fff;color:#344054}html[data-theme=light] .secondary,html[data-theme=light] .status,html[data-theme=light] .pill{background:#e8edfa;color:#28364d}html[data-theme=light] .pill.success{background:#d9f7eb;color:#16634c}html[data-theme=light] .pill.warning{background:#fff1cf;color:#7a5212}html[data-theme=light] .live-clock{border-color:#d4dceb;background:#ffffffeb;box-shadow:0 10px 24px #26395f12}html[data-theme=light] .live-clock strong{color:#111827}html[data-theme=light] .settings-backdrop{background:#dbe3f0a8}html[data-theme=light] .settings-dialog{border-color:#cbd5e1;background:linear-gradient(150deg,#fff,#f6f8fc);box-shadow:0 26px 80px #24365d30}html[data-theme=light] .settings-close{color:#344054}html[data-theme=light] .floating-settings{border-color:#cbd5e1;background:#fff;color:#315ed5;box-shadow:0 12px 28px #24365d24}html[data-theme=light] .floating-settings:hover{background:#eaf0ff}html[data-theme=light] .theme-option{border-color:#cbd5e1;background:#fff;color:#344054}html[data-theme=light] .theme-option.active{border-color:#315ed5;background:#e7edff;color:#173b91}html[data-theme=light] .login-card{border-color:#cfd8e8;background:#fff;box-shadow:0 20px 70px #2b3e641f}html[data-theme=light] .auth-tabs{border-color:#d5ddea;background:#f1f4fa}html[data-theme=light] .auth-tabs button{color:#526079}html[data-theme=light] .auth-tabs button.active{background:transparent;color:#173b91;box-shadow:none}html[data-theme=light] .auth-tabs:before{background:#fff;box-shadow:0 5px 16px #2d42731c}html[data-theme=light] .auth-settings-button{border-color:#d4dceb;background:#ffffffeb;color:#315ed5;box-shadow:0 10px 24px #26395f12}html[data-theme=light] .auth-link,html[data-theme=light] .text-button,html[data-theme=light] .image-link{color:#315ed5}html[data-theme=light] .auth-notice.success{border-color:#33b98b;background:#daf8ed;color:#155c47}html[data-theme=light] .auth-notice.error,html[data-theme=light] .notice{border-color:#dc8294;background:#fff0f3;color:#842f43}@media(min-width:761px)and (max-width:800px){.sidebar{width:242px;padding:1.7rem 1rem}.sidebar .brand{justify-content:flex-start;padding:.35rem .6rem}.sidebar .brand div{display:block}.sidebar .nav{height:auto;padding:.7rem 1rem;font-size:.82rem}.sidebar .nav.active:after,.sidebar .nav:hover:after{content:none}.sidebar .account{display:grid}.sidebar .settings-button{width:100%;justify-content:flex-start;padding:.7rem .65rem;font-size:.78rem}.content{width:calc(100% - 242px);padding:1.5rem 1rem}}@media(max-width:760px){.app-shell{display:block}.sidebar{position:sticky;top:0;z-index:30;width:100%;min-height:64px;padding:.65rem .85rem;border-right:0;border-bottom:1px solid #1d2942;flex-direction:row;align-items:center;justify-content:space-between;gap:.8rem;background:#0c1222f7}.sidebar .brand{justify-content:flex-start;padding:0}.sidebar .brand div{display:block}.sidebar .brand small{display:block;font-size:.65rem}.menu-button{position:relative;z-index:33;width:44px;height:44px;display:grid;align-content:center;gap:5px;padding:0 11px;border:1px solid #314266;border-radius:13px;background:#15203a}.menu-button span{display:block;height:2px;border-radius:999px;background:#dce5ff;transition:transform .18s ease,opacity .18s ease}.menu-button[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}.menu-button[aria-expanded=true] span:nth-child(2){opacity:0}.menu-button[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.sidebar-drawer{position:fixed;z-index:32;top:0;bottom:0;left:0;width:min(84vw,320px);display:flex;flex-direction:column;gap:1rem;padding:5.2rem 1rem max(1rem,env(safe-area-inset-bottom));border-right:1px solid #263452;background:#0d1426;box-shadow:18px 0 46px #0008;transform:translate(-105%);visibility:hidden;transition:transform .22s cubic-bezier(.2,.8,.2,1),visibility .22s}.sidebar-drawer.open{transform:translate(0);visibility:visible}.sidebar-drawer nav{display:grid;gap:.35rem}.sidebar .nav{height:auto;padding:.8rem .9rem;border-radius:10px;font-size:.86rem;text-align:left}.sidebar .nav.active{transform:translate(3px)}.sidebar .nav.active:after,.sidebar .nav:hover:after{content:none}.sidebar-footer{margin-top:auto}.sidebar-actions{display:grid}.user-chip{width:100%;max-width:none}.sidebar-footer .account{display:grid}.mobile-nav-backdrop{position:fixed;z-index:29;inset:0;display:block;border-radius:0;background:#03060eb3;animation:nav-backdrop-in .18s ease both}.content{width:100%;padding:1.4rem clamp(.75rem,4vw,1.25rem) 5rem;margin:0}.settings-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}.card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}html[data-theme=light] .sidebar{background:#fffffff8}html[data-theme=light] .sidebar-drawer{border-color:#d7deeb;background:#fff;box-shadow:18px 0 46px #24365d24}html[data-theme=light] .menu-button{border-color:#cbd5e1;background:#eef3ff}html[data-theme=light] .menu-button span{background:#20345f}}@keyframes nav-backdrop-in{0%{opacity:0}to{opacity:1}}@media(max-width:680px),(max-aspect-ratio:3 / 4){.content>header{align-items:stretch;flex-direction:column}.header-tools{width:100%;align-items:center;flex-direction:row}.live-clock{width:auto;min-width:112px;flex:0 0 auto;text-align:left}.camera-status{flex:1;min-width:0}.card-grid{grid-template-columns:1fr}.metric{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center}.metric strong{grid-column:2;grid-row:1 / 3;padding-left:.75rem;text-align:right}.metric small{grid-column:1}.panel,.metric{border-radius:12px}.toolbar{align-items:stretch;flex-direction:column}.toolbar label,.toolbar button{width:100%}.overview-table table{font-size:.76rem}.overview-table th,.overview-table td{padding:.65rem .4rem}.settings-dialog{max-height:calc(100dvh - 2rem);overflow-y:auto}}@media(max-width:430px){.sidebar{min-height:60px;padding:.55rem .75rem}.brand-mark{font-size:1.25rem}.sidebar .brand strong{font-size:.9rem}.sidebar .brand small{display:none}.content{padding:1.1rem .75rem}.sidebar .nav{font-size:.84rem}.settings-dialog{padding:1rem}.user-chip{max-width:none;padding:.55rem}.header-tools{gap:.45rem}.live-clock{min-width:102px;padding:.5rem .58rem}.camera-status{padding:.55rem .6rem}.camera-status-label{margin-right:.4rem;font-size:.7rem}.camera-count{font-size:.8rem}.file-picker{gap:.6rem;padding:.7rem}.file-action{display:none}}@media(orientation:landscape)and (max-height:600px){.sidebar-drawer{padding-top:4.4rem;overflow-y:auto}}@media(prefers-reduced-motion:reduce){.tab-stage{animation:none}.nav,.sidebar-drawer,.menu-button span{transition:none}.mobile-nav-backdrop{animation:none}}
