:root{font-family:Noto Sans SC,Microsoft YaHei UI,Microsoft YaHei,sans-serif;color:#263c33;background:#f7f9f7;font-synthesis:none;font-size:13px;--accent: #187b62;--accent-dark: #10664f;--muted: #819087;--line: #e6ebe7;--paper: #fff;--soft: #f0f5f1}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #73b49e;outline-offset:3px}input:focus,textarea:focus,select:focus{outline:2px solid #a7cbbb;outline-offset:1px}button{transition:background .16s,color .16s,border-color .16s}button:active:not(:disabled){transform:translateY(1px)}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p{margin:0}h2{font-size:16px;font-weight:600}h3{font-size:14px;font-weight:600}small{font-size:11px}.mono{font-family:Cascadia Code,Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:.01em}.app-shell{min-height:100dvh}.sidebar{width:224px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:32px 18px 0;background:#fcfdfb;border-right:1px solid var(--line);z-index:30}.brand{display:flex;gap:11px;align-items:center;width:fit-content;margin:0 12px 34px}.brand-symbol{display:grid;place-items:center;width:39px;height:42px;background:var(--accent);color:#fff;border-radius:11px 11px 11px 3px}.brand>span:last-child{font-size:25px;font-weight:650;letter-spacing:3px;line-height:1.15}.brand small{display:block;font-weight:400;font-size:10px;letter-spacing:1px;color:#7b8b82;margin-top:6px}.nav-label{font-size:10px;font-weight:500;color:#9aa69d;letter-spacing:1px;margin:0 14px 12px}.nav-label.second{margin-top:30px}nav{display:flex;flex-direction:column;gap:6px}nav button{height:45px;display:flex;align-items:center;gap:12px;border:0;border-radius:6px;background:transparent;padding:0 14px;color:#6e7c73;text-align:left}nav button.active{background:#e7f0e8;color:#216f53;font-weight:600}nav button:hover{background:#edf2ed}nav button>span:nth-child(2){flex:1}.nav-counter{font-size:10px;min-width:19px;height:19px;border-radius:5px;background:#d9e8db;display:grid;place-items:center;color:#498066;font-family:Consolas,monospace}.sidebar-bottom{margin-top:auto;padding:24px 2px 0}.environment{display:flex;gap:7px;align-items:center;font-size:11px}.environment>.badge{margin-left:auto;padding:3px 6px;font-size:9px}.dot{width:6px;height:6px;background:#4a9870;border-radius:50%;display:inline-block;flex-shrink:0}.dot.muted{background:#a6afa9}.sidebar-bottom>p{font-size:10px;color:#9aa69e;margin-top:8px}.user-row{display:flex;align-items:center;gap:9px;padding:19px 0;margin-top:17px;border-top:1px solid var(--line)}.user-row>span:nth-child(2){font-size:11px;flex:1;font-weight:500}.user-row small{display:block;color:#9aa39d;font-size:9px;margin-top:4px}.icon-button{border:0;background:transparent;color:#74847a;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:5px;flex-shrink:0}.icon-button:hover{background:#edf2ed;color:var(--accent)}.workspace-main{margin-left:224px}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 34px;border-bottom:1px solid var(--line);background:#fcfdfb;gap:16px}.breadcrumbs{display:flex;align-items:center;gap:14px;font-size:11px;color:#9aa49c}.breadcrumbs strong{font-size:11px;font-weight:500;color:#55675c}.breadcrumbs i{font-style:normal;color:#c4ccc5}.topbar-actions{display:flex;align-items:center;gap:21px}.mode-switch{display:flex;background:#eef2ed;padding:3px;border-radius:6px;gap:2px}.mode-switch button{background:transparent;border:0;padding:7px 13px;font-size:10px;color:#8b958e;border-radius:4px}.mode-switch button.selected{background:#fff;color:#3b7056;box-shadow:0 1px 4px #153e2010;font-weight:550}.notification-bell{position:relative}.notification-bell i{width:5px;height:5px;background:#c0a166;border-radius:100%;position:absolute;right:7px;top:5px;border:1px solid #fff}.top-avatar{padding-left:19px;border-left:1px solid var(--line)}.mobile-menu{display:none}.content{max-width:1600px;margin:auto;padding:22px 34px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:26px 0 28px}.eyebrow{font-family:Cascadia Code,Consolas,monospace;font-size:9px;color:#9aa89e;font-weight:500;letter-spacing:1.3px;display:block;margin-bottom:10px}.eyebrow>span{letter-spacing:.5px}.page-heading h1{font-size:27px;letter-spacing:-.4px;line-height:1.5;font-weight:600}.heading-period{color:#5d8e74}.page-heading p{font-size:11px;color:#8b988e;margin-top:8px}.button{border:1px solid #dce5dd;border-radius:5px;background:#fff;min-height:37px;padding:9px 15px;color:#536d5e;display:inline-flex;gap:9px;align-items:center;justify-content:center;white-space:nowrap;font-size:11px;font-weight:500}.button:hover:not(:disabled){background:#f1f5f1;border-color:#bacfc0}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.button.small{min-height:30px;padding:6px 10px;font-size:10px}.button.full{width:100%}.button.danger-fill{background:#ab5345;border-color:#ab5345;color:#fff}.text-button{border:0;background:none;display:inline-flex;align-items:center;gap:7px;color:#6e8c78;font-size:10px;padding:5px 0;white-space:nowrap}.text-button:hover{color:var(--accent-dark)}.text-button.danger{color:#ad7468}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:#fff;border:1px solid var(--line);border-radius:8px;margin-bottom:24px}.stat{padding:22px 24px 20px;position:relative}.stat+.stat:before{content:"";position:absolute;left:0;top:23px;bottom:23px;width:1px;background:var(--line)}.stat-top{display:flex;justify-content:space-between;align-items:center;color:#8b9b8e;font-size:11px}.stat-top svg{color:#9bb3a4}.stat>strong{font-family:Cascadia Code,Consolas,monospace;font-size:33px;font-weight:400;letter-spacing:-1px;display:block;margin:14px 0 9px;color:#304d3b}.stat>strong small{font-family:Noto Sans SC,Microsoft YaHei,sans-serif;color:#9ca89e;font-size:10px;font-weight:400;letter-spacing:0;margin-left:8px}.stat>p{font-size:9px;color:#9ca89d}.panel{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:22px 24px}.section-heading h2{font-size:13px;font-weight:600;letter-spacing:.2px}.section-heading p{font-size:10px;color:#9aa59c;margin-top:6px}.badge{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;line-height:1.5;background:#f0f3ef;color:#8b978b;padding:3px 7px;font-size:9px;border-radius:4px;white-space:nowrap;font-weight:400}.badge.green{background:#edf4ed;color:#56846a}.badge.amber{background:#f8f3e7;color:#ad996b}.badge.rose{background:#f7eeeb;color:#ac837d}.dashboard-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:22px}.scene-panel>.section-heading{padding-bottom:18px}.scene-panel>.spatial{margin:0 19px;border-radius:5px}.spatial{position:relative;width:100%;height:300px;overflow:hidden;background:#f0f5f1}.range-svg{width:100%;height:100%;display:block}.spatial-meta{position:absolute;top:14px;left:16px;right:16px;display:flex;align-items:center;justify-content:space-between;z-index:1;font-size:8px;color:#8aa090}.spatial-meta>span:first-child{display:flex;align-items:center;gap:6px}.spatial-meta .dot{width:4px;height:4px}.spatial-meta .mono{font-size:7px;letter-spacing:1px}.camera-origin{position:absolute;left:50%;bottom:10.7%;transform:translate(-50%);width:35px;height:30px;background:#366e53;color:#f3f7f2;display:grid;place-items:center;border-radius:5px}.person-marker{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;z-index:2}.person-dot{color:#478068;width:34px;height:34px;display:grid;place-items:center;background:#f4f9f4;border-radius:50%;outline:5px solid #4e947615;border:1px solid #b5d0bd}.person-label{background:#fff;padding:7px 10px;border:1px solid #dce8de;border-radius:5px;box-shadow:0 3px 10px #1c502a08;min-width:73px}.person-label strong{font-size:9px;font-weight:500;display:block;color:#52735b;white-space:nowrap}.person-label>span{font-size:10px;margin-top:4px;display:block;color:#397854;white-space:nowrap}.person-label i{font-family:Noto Sans SC,sans-serif;font-size:7px;font-style:normal;margin-left:6px;color:#90a893}.person-marker.outside .person-dot{color:#a6b1a7;background:#f2f4ef;outline-color:#bbc7b213;border-color:#cbd5c7}.person-marker.outside .person-label{background:#f4f6f1;border-style:dashed;box-shadow:none}.person-marker.outside strong,.person-marker.outside .person-label>span{color:#91a08f}.spatial-legend{position:absolute;bottom:11px;left:14px;right:14px;display:flex;gap:13px;align-items:center;font-size:7px;color:#8aa08d}.spatial-legend>span{display:flex;align-items:center;gap:4px}.spatial-legend small{font-size:7px;margin-left:auto;color:#a1afa1}.legend-dot{width:4px;height:4px;border-radius:50%;background:#7f9c86}.legend-dot.green{background:#649777}.legend-dot.gray{background:#b4bfae}.scene-bottom{display:flex;justify-content:space-between;align-items:center;padding:18px 24px}.scene-bottom>div{display:flex;align-items:center;gap:12px}.range-symbol{font-family:Consolas,monospace;font-size:25px;color:#6a997d;line-height:1}.range-symbol>span{font-size:11px;margin-left:2px}.scene-bottom strong{font-size:10px;font-weight:500;color:#647d69}.scene-bottom p{font-size:8px;color:#9caa9e;margin-top:4px}.recent-panel{display:flex;flex-direction:column}.recent-list{padding:0 23px}.recent-item{display:flex;align-items:center;gap:10px;text-align:left;width:100%;background:none;border:0;padding:18px 0;border-bottom:1px solid #eef1ec}.recent-item:last-child{border-bottom:0}.recent-item:hover strong{color:var(--accent)}.recent-item>div{flex:1;min-width:0}.recent-item strong{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500}.recent-item .badge{font-size:7px;padding:2px 5px}.recent-item p{font-size:9px;color:#98a194;margin-top:6px}.recent-item small{display:block;font-size:8px;color:#a8b0a4;margin-top:5px}.recent-time{font-family:Consolas,monospace;font-size:10px;color:#8f9d90;align-self:flex-start;margin-top:4px}.recent-time svg{display:block;margin:21px 0 0 auto;color:#b8c3b8}.gentle-note{margin:auto 23px 18px;padding:11px 10px;display:flex;align-items:center;gap:9px;background:#f7f9f4;color:#9ea88e;border:1px solid #f0f3e9;border-radius:5px;font-size:8px;line-height:1.7}.gentle-note svg{flex-shrink:0;color:#93a27f}.avatar{width:38px;height:38px;border-radius:11px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-weight:500;font-size:12px;overflow:hidden;color:#688d72;background:#e9f0e5}.avatar img{width:100%;height:100%;object-fit:cover}.avatar.blue{background:#e9f0f2;color:#7a949d}.avatar.rose{background:#f5eae6;color:#b39488}.avatar.sand{background:#f1ede1;color:#af9d7e}.avatar.sm{width:30px;height:30px;border-radius:9px;font-size:10px}.avatar.lg{width:47px;height:47px;border-radius:12px;font-size:14px}.avatar.xl{width:74px;height:74px;border-radius:16px;font-size:21px}.dashboard-lower{display:grid;grid-template-columns:1.6fr 1fr;gap:22px;margin-top:22px}.chart-total{font-family:Consolas,monospace;font-size:21px;color:#446b51}.chart-total small{font-family:Noto Sans SC,sans-serif;color:#a1ae9f;font-size:9px}.bar-chart{height:139px;display:flex;align-items:flex-end;gap:12px;padding:0 25px 32px;position:relative;margin-top:5px;background:repeating-linear-gradient(to top,transparent 0px,transparent 32px,#f2f4ee 32px,#f2f4ee 33px);background-clip:content-box}.bar-column{flex:1;position:relative;display:flex;justify-content:center;align-items:flex-end;min-width:0;height:100%}.bar{width:12px;border-radius:3px 3px 0 0;background:#e4ece0;display:block;min-height:3px}.bar.active{background:#80a88c}.bar-column small{position:absolute;bottom:-20px;font-family:Consolas,monospace;font-size:8px;color:#a8b2a3;white-space:nowrap}.quick-panel>.section-heading{padding-bottom:14px}.scenario-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 23px 16px}.scenario-choices button{display:flex;align-items:center;text-align:left;gap:8px;padding:11px 9px;border:1px solid #e9eee4;border-radius:5px;background:#fcfdf9;color:#8d9e88}.scenario-choices button.selected{border-color:#b5cdb6;background:#f2f7ee;color:#538361}.scenario-choices span{font-size:9px;white-space:nowrap}.scenario-choices small{font-size:7px;color:#a4b09c;display:block;margin-top:5px}.quick-panel>.button{width:calc(100% - 46px);margin:0 23px 20px;min-height:32px;font-size:10px}.page-footer{padding:30px 0 19px;display:flex;justify-content:space-between;font-size:8px;color:#b0b9ac;gap:16px}.loading{min-height:240px;display:flex;align-items:center;justify-content:center;gap:10px;color:#9ba99c;font-size:12px}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty{min-height:240px;padding:35px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:#a7b5a4;text-align:center}.empty strong{color:#7c917c;font-weight:500;font-size:13px}.empty p{font-size:10px;max-width:360px;line-height:1.9}.empty .button{margin-top:6px}.error-banner{display:flex;justify-content:space-between;background:#fff0ea;border:1px solid #e8c8b9;padding:12px 15px;font-size:11px;color:#aa6a51;margin-bottom:16px;border-radius:5px}.error-banner button{border:0;background:none;color:inherit;display:flex;align-items:center;gap:6px}.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 24px;border-bottom:1px solid var(--line);flex-wrap:wrap}.tabs{display:flex;gap:24px;align-items:center}.tabs button{border:0;background:none;font-size:11px;color:#9ba895;position:relative;padding:13px 0}.tabs button.active{color:#39724e;font-weight:500}.tabs button.active:after{content:"";position:absolute;bottom:-19px;left:0;right:0;height:2px;background:#4f8960}.search{position:relative;display:flex;align-items:center;gap:9px;min-width:225px;margin:0!important;border:1px solid var(--line);border-radius:5px;padding:0 11px;color:#9cab97;background:#fbfcf9}.search input{border:0!important;background:transparent!important;padding:9px 0!important;width:100%;font-size:10px;outline:none!important}.search input::placeholder{color:#a8b3a1}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:11px;white-space:nowrap}th{background:#fbfcf9;padding:15px 20px;font-size:10px;font-weight:400;color:#9ca993;border-bottom:1px solid #eef1e8}td{padding:19px 20px;border-bottom:1px solid #f0f3eb;color:#83917b}td:first-child,th:first-child{padding-left:24px}tbody tr{cursor:pointer}tbody tr:hover{background:#fafcf6}tbody tr:last-child td{border-bottom:0}.person-cell{display:flex;align-items:center;gap:11px}.person-cell strong{font-weight:500;color:#566f4e;font-size:11px}.person-cell small{display:block;font-size:8px;color:#a7b09d;margin-top:5px}.tag-list{display:flex;gap:5px}.table-footer{display:flex;justify-content:space-between;padding:16px 24px;font-size:9px;color:#a6b19c;border-top:1px solid var(--line);gap:15px}.date-range{display:flex;align-items:center;gap:10px;color:#a2ae98;font-size:9px}.date-range label{display:flex;flex-direction:row;align-items:center;gap:7px;margin:0}.date-range input{font-size:10px;padding:7px;width:137px}.notification-item{display:flex;text-align:left;align-items:center;gap:18px;width:100%;padding:26px 28px;background:#fcfdf8;border:0;border-bottom:1px solid var(--line);color:#5e7753}.notification-item.read{background:#fff}.notification-item:hover{background:#f7faf2}.notification-item>div{flex:1}.notification-item strong{font-weight:500;font-size:13px}.notification-item p{color:#98a58d;margin-top:9px;font-size:11px}.notification-item small{display:block;color:#aeb7a5;font-size:9px;margin-top:10px}.unread-dot{display:inline-block;width:5px;height:5px;background:#7b9b62;border-radius:50%;margin-left:10px;vertical-align:middle}.below-help{font-size:10px;color:#a0ad94;line-height:1.9;margin-top:20px}.live-layout{display:grid;grid-template-columns:1.8fr 1fr;gap:22px}.live-view>.spatial{height:385px}.live-view .section-heading{border-bottom:1px solid var(--line)}.live-controls{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 23px;font-size:10px;color:#98a98c}.live-controls>span{display:flex;gap:8px;align-items:center}.live-controls>div{display:flex;align-items:center;gap:16px}.camera-preview{background:#f1f5ef;position:relative;aspect-ratio:16/9;overflow:hidden}.camera-preview video{width:100%;height:100%;object-fit:contain}.preview-empty,.live-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:16px;color:#92a38a;text-align:center;padding:30px}.preview-empty h3,.live-placeholder h3{font-size:14px;font-weight:500}.preview-empty p,.live-placeholder p{font-size:10px;line-height:1.9;max-width:320px}.preview-empty .button{margin-top:10px}.live-placeholder{height:300px;background:#f6f8f2;margin:0 20px;border-radius:5px}.face-box{position:absolute;border:1px solid #cfb06c;pointer-events:none}.face-box.matched{border:2px solid #3baf7d}.face-box>span{position:absolute;left:-1px;bottom:100%;background:#566c4ce0;color:#fff;padding:5px;font-size:10px;white-space:nowrap}.detection-summary{display:grid;grid-template-columns:1fr 1fr 1fr;margin:0 22px 12px;padding:17px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.detection-summary>span{display:flex;flex-direction:column;align-items:center;color:#9ba88f;font-size:9px;gap:8px}.detection-summary strong{font-family:Consolas,monospace;font-size:23px;font-weight:400;color:#6e8f5c}.detection-summary strong small{font-size:10px}.track-list{padding:0 22px;max-height:380px;overflow:auto}.track-list>div:not(.empty){display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid #f0f3e9}.track-list>div>div{flex:1}.track-list strong{font-size:10px;font-weight:500;color:#758b65}.track-list small{display:block;font-size:9px;color:#a8b19b;margin-top:5px}.track-list .mono{font-size:10px;color:#9eac8e}.track-number{width:27px;height:28px;background:#f3f5ed;color:#a8b39b;display:grid;place-items:center;border-radius:4px;font-family:Consolas,monospace;font-size:9px}.track-number.green{background:#eaf2e3;color:#7b9a5f}.track-list .empty{padding:20px;min-height:220px}.simulation-panel{margin-top:22px;padding:22px 26px;display:flex;align-items:center;gap:20px}.simulation-panel>div{flex:1}.simulation-panel h2{font-size:13px}.simulation-panel p{font-size:10px;color:#a4af98;margin-top:7px}.simulation-panel select{width:220px;font-size:11px}.inline-error{background:#fff5ea;padding:12px 18px;color:#b48b53;font-size:10px;display:flex;align-items:center;gap:8px;line-height:1.8}.info-strip{margin-top:22px;padding:23px 25px;display:flex;align-items:center;gap:18px;background:#eff5e9;border:1px solid #e4ecd9;border-radius:6px;color:#819d68}.info-strip>div{flex:1}.info-strip strong{font-weight:500;font-size:12px}.info-strip p{font-size:10px;color:#96a786;margin-top:7px;line-height:1.9}.model-strip{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:24px}.model-strip>div{display:flex;align-items:center;gap:13px;background:#fdfefb;border:1px solid var(--line);padding:21px 22px;border-radius:7px}.model-strip>div>div{flex:1}.model-strip strong{font-size:12px;font-weight:500;color:#657c52}.model-strip small{display:block;margin-top:7px;color:#a5b195;font-size:9px}.model-icon{color:#91a47e}.camera-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.camera-card{padding:23px}.camera-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px}.device-icon{width:45px;height:44px;background:#f0f5e9;border-radius:9px;display:grid;place-items:center;color:#95ac78}.camera-card h2{font-size:15px;font-weight:500}.camera-card>p{font-size:10px;color:#a1ae8e;margin-top:9px;line-height:1.8}.camera-card dl{margin:25px 0}.camera-card dl>div{display:flex;justify-content:space-between;margin:16px 0;font-size:10px}.camera-card dt{color:#a7b097}.camera-card dd{margin:0;color:#84966b}.camera-card .button{font-size:10px}.calibration-guide{margin-top:24px}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:5px 25px 30px;gap:25px}.steps>div>span{display:block;font-family:Consolas,monospace;font-size:25px;color:#ccd7be;margin-bottom:18px}.steps h3{font-size:11px;font-weight:500;color:#748960}.steps p{font-size:9px;color:#a6b293;line-height:1.9;margin-top:10px}.settings-layout{display:grid;grid-template-columns:1.1fr 1fr;align-items:start;gap:24px}.settings-section{padding:0 25px 26px}.settings-section>.section-heading{padding-left:0;padding-right:0}.setting-check{margin-top:25px}.setting-check small{display:block;color:#a9b498;font-size:9px;line-height:1.9;margin-top:6px}.setting-note{display:flex;align-items:center;gap:13px;background:#f4f7ec;padding:14px 16px;margin:22px 0;color:#9cac85;border-radius:5px}.setting-note p{font-size:9px;line-height:1.9;flex:1}.setting-row{display:flex;gap:16px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.setting-row>div{flex:1}.setting-row strong{font-size:11px;font-weight:500;color:#7f915f}.setting-row p{font-size:9px;color:#a8b194;margin-top:8px;line-height:1.8}.settings-section>.button{margin-top:24px}.settings-section .setting-note+.button{margin-top:0}.preparation{padding:0 24px 20px}.preparation p{display:flex;align-items:center;gap:12px;color:#8d9f75;margin-bottom:17px;font-size:10px}.modal-backdrop{position:fixed;inset:0;z-index:60;background:#18312048;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:30px}.modal{width:510px;background:#fff;border-radius:10px;max-height:90dvh;overflow:auto;box-shadow:0 20px 90px #122c2525;outline:none}.modal.wide{width:850px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:22px 27px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:10}.modal-head h2{font-size:14px}.form-body{padding:24px 28px}label{font-size:10px;color:#80916a;font-weight:500;display:flex;flex-direction:column;gap:9px;margin-bottom:20px}input:not([type=checkbox]),textarea,select{border:1px solid #dfe7d5;border-radius:5px;padding:11px 12px;font-size:11px;color:#5b754e;background:#fdfefa;min-width:0;width:100%;font-weight:400;line-height:1.5}input:disabled,select:disabled{background:#f7f9f2;color:#a5b190}textarea{resize:vertical;line-height:1.9}input::placeholder{color:#b6bea9}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.two-cols>.span-2{grid-column:1/-1}.four-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;margin-top:20px}.checkbox-label{display:flex;flex-direction:row;align-items:flex-start;gap:9px;font-size:10px;font-weight:400;line-height:1.8;margin-bottom:15px;color:#8d9c74}.checkbox-label input{accent-color:var(--accent);width:14px;height:14px;flex-shrink:0;margin:2px 0 0}.form-help{color:#a6b292;font-size:9px;line-height:2;margin-bottom:22px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.field-error{color:#b2785f!important;font-size:10px;line-height:1.8}.profile-banner{padding:27px 29px 22px;display:flex;gap:18px;align-items:center}.profile-banner>div{flex:1}.profile-banner h2{font-size:20px;font-weight:500}.profile-banner p{font-size:11px;color:#a1ad8e;margin-top:8px}.profile-banner .mono{font-size:9px;color:#b7c0a6;display:block;margin-top:8px}.profile-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:0 29px 25px;border:1px solid var(--line);background:#fbfdf5;border-radius:6px}.profile-summary>span{display:flex;flex-direction:column;align-items:center;padding:16px;color:#a4b18a;font-size:9px;gap:8px}.profile-summary>span+span{border-left:1px solid var(--line)}.profile-summary strong{font-size:18px;font-weight:400;color:#6f8a52;font-family:Consolas,monospace}.profile-columns{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;padding:0 29px}.profile-form h3,.profile-history h3{margin-bottom:22px}.profile-form .two-cols{gap:0 12px}.profile-form input{padding:9px 10px}.profile-form .button{font-size:10px}.timeline{padding-left:8px}.timeline>div{border-left:1px solid #e1e9d6;padding:0 0 24px 18px;position:relative}.timeline>div:last-child{border-left-color:transparent}.timeline-dot{position:absolute;left:-4px;top:3px;width:7px;height:7px;border-radius:50%;background:#8aac65;outline:4px solid #f2f7e9}.timeline strong{font-size:10px;font-weight:400;font-family:Consolas,monospace;color:#879b65}.timeline p{color:#acb894;font-size:9px;margin-top:9px}.timeline small{display:block;font-size:8px;color:#b4be9f;margin-top:7px}.sample-section{padding:26px 29px}.sample-section h3{margin-bottom:16px}.sample-section h3 small{font-weight:400;font-size:9px;color:#b0bb98;margin-left:10px}.sample-list{display:flex;flex-direction:column;gap:8px}.sample-card{display:flex;align-items:center;gap:12px;background:#fbfdf6;border:1px solid #edf1e4;padding:11px 13px;border-radius:6px}.sample-card>img{width:40px;height:40px;object-fit:cover;border-radius:5px}.sample-card>div{flex:1}.sample-card strong{font-size:10px;font-weight:400;color:#8fa26e}.sample-card small{display:block;font-size:8px;color:#b1bc97;margin-top:6px}.profile-danger{border-top:1px solid var(--line);padding:18px 29px;display:flex;justify-content:space-between}.delete-confirm{display:flex;align-items:center;gap:13px;background:#fff7ee;padding:18px 27px;color:#b3926b}.delete-confirm>div{flex:1}.delete-confirm strong{font-size:11px;font-weight:500}.delete-confirm p{font-size:9px;margin-top:6px;color:#b5a082}.correction-box{background:#f9fbf2;padding:24px 29px}.correction-box>p{font-size:10px;color:#a4b18e;line-height:1.9;margin:12px 0 18px}.inline-form{display:flex;gap:10px;margin-bottom:18px}.inline-form select{flex:1}.correction-box h4{font-size:10px;font-weight:400;color:#98ab7a;margin:20px 0 14px}.correction-box .checkbox-label{font-size:9px}.calibration-workflow{padding:0 28px 25px;border-top:1px solid var(--line)}.calibration-workflow .section-heading{padding:24px 0}.upload-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px}.upload-button{position:relative;overflow:hidden;margin-bottom:0;font-weight:400;color:#819963}.upload-button input{position:absolute;opacity:0;inset:0;width:100%;cursor:pointer}.upload-button:has(input:disabled){opacity:.45;cursor:not-allowed}.calibration-report{display:grid;grid-template-columns:1fr 1fr 1fr;padding:17px;background:#f7faf0;border-radius:5px;gap:10px}.calibration-report span{display:block;font-size:9px;color:#adb997}.calibration-report strong{display:block;font-size:11px;color:#819b5c;font-weight:400;margin-top:10px}.report-box{padding:18px;background:#f9fcf1;border:1px solid #e8efda;border-radius:5px;margin-top:16px}.report-box>strong{font-size:11px;color:#91a470;font-weight:400}.report-box pre{font-size:9px;line-height:1.8;max-height:240px;overflow:auto;color:#9eae7f;white-space:pre-wrap;word-break:break-all;margin-bottom:0}.form-body h3{font-size:12px;margin:8px 0 0}.form-body h3 small{font-size:9px;color:#b2be97;font-weight:400}.toast{position:fixed;bottom:30px;left:calc(50% + 100px);transform:translate(-50%);display:flex;align-items:center;gap:11px;max-width:650px;background:#fefefa;border:1px solid #dce8cd;color:#719648;padding:16px 22px;border-radius:7px;box-shadow:0 8px 35px #183d1515;font-size:11px;z-index:100;line-height:1.8;animation:enter .2s ease-out}.toast svg{flex-shrink:0}.toast.error{background:#fff9ef;border-color:#eedbbd;color:#b59056}@keyframes enter{0%{opacity:0;bottom:22px}to{opacity:1;bottom:30px}}.login-page{min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr;background:#fff}.login-story{padding:50px 65px;background:#edf3e9;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;position:relative}.login-story>.brand{margin:0 0 50px}.login-story .eyebrow{font-size:8px;color:#91a784;letter-spacing:1.3px;margin-bottom:21px}.login-story h1{font-size:31px;font-weight:550;line-height:1.9;letter-spacing:-.5px;color:#466542}.login-story p{font-size:11px;line-height:2.2;color:#90a483;margin-top:18px}.login-scene{position:relative;height:235px;margin:20px -30px 0;display:flex;align-items:center;justify-content:center}.login-orbit{border:1px solid #cbdcc0;border-radius:50%;position:absolute;width:380px;height:160px;transform:rotate(-15deg)}.login-orbit.o2{width:500px;height:220px;border-color:#d9e5cd}.login-orbit.o3{width:640px;height:280px;border-color:#e1ead7}.welcome-card{position:relative;z-index:1;display:flex;gap:15px;align-items:center;background:#ffffffec;border:1px solid #dce9cd;padding:20px 24px;border-radius:9px;transform:rotate(-3deg);box-shadow:0 15px 40px #496c1d0b;color:#91ac6e}.welcome-card strong{font-size:12px;font-weight:500;color:#698b4d}.welcome-card>div{margin-right:20px}.welcome-card span:not(.avatar){display:block;font-size:9px;color:#b0bf96;margin-top:8px}.login-form-side{display:flex;align-items:center;justify-content:center;padding:50px}.login-form-side form{max-width:350px;width:100%}.login-form-side h2{font-size:23px;font-weight:550;color:#526f42;margin-top:15px}.login-form-side form>p{font-size:11px;color:#a0af8e;margin:14px 0 35px}.login-form-side label{font-size:11px;color:#839b68;margin-bottom:24px}.login-form-side input{padding:12px 13px;background:#fdfefb;border-color:#e0e9d5}.login-form-side .button{height:43px;margin-top:10px}.sidebar-shade{display:none}@media(min-width:1550px){.content{padding-top:28px}.page-heading{margin-top:32px;margin-bottom:32px}.stat{padding:26px 28px}.spatial{height:335px}.recent-item{padding:23px 0}.stat>strong{font-size:38px}.dashboard-grid,.dashboard-lower{gap:26px}.dashboard-lower{margin-top:26px}.scenario-choices button{padding:14px 11px}.bar-chart{height:155px}.section-heading{padding-top:25px;padding-bottom:25px}}@media(max-width:1200px){.sidebar{width:200px;padding-left:13px;padding-right:13px}.workspace-main{margin-left:200px}.content{padding-left:25px;padding-right:25px}.topbar{padding:0 25px}.dashboard-grid,.dashboard-lower{grid-template-columns:1.4fr 1fr;gap:16px}.stat{padding:20px 18px}.spatial{height:270px}.person-label{padding:6px;min-width:60px}.person-label strong{font-size:8px}.scene-bottom{padding:17px}.section-heading{padding:20px}.recent-list{padding:0 18px}.recent-item{gap:8px;padding:16px 0}.recent-item strong{font-size:11px;flex-wrap:wrap}.recent-item .badge{font-size:6px}.gentle-note{margin-left:16px;margin-right:16px}.scenario-choices{margin-left:18px;margin-right:18px;gap:6px}.scenario-choices button{gap:5px;padding:10px 6px}.scenario-choices small{font-size:6px}.scenario-choices svg{width:15px}.scenario-choices span{font-size:8px}.quick-panel>.button{margin-left:18px;margin-right:18px;width:calc(100% - 36px)}.scene-bottom p{font-size:7px}.camera-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.live-layout{grid-template-columns:1.7fr 1fr;gap:16px}.settings-layout{gap:18px}.settings-section{padding-left:20px;padding-right:20px}.simulation-panel{gap:13px;padding:22px}.simulation-panel select{width:185px}.login-story{padding:45px}.login-story h1{font-size:27px}}@media(max-width:1000px){.sidebar{width:180px;padding-left:10px;padding-right:10px}.workspace-main{margin-left:180px}.brand{margin-left:10px}.brand>span:last-child{font-size:22px}nav button{gap:9px;padding:0 11px;font-size:11px}.environment{font-size:9px}.sidebar-bottom>p{font-size:8px}.content{padding:20px}.topbar{padding:0 20px}.page-heading h1{font-size:23px}.page-heading p{font-size:10px}.dashboard-grid,.dashboard-lower{grid-template-columns:1fr}.scene-panel>.spatial{height:320px}.recent-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.recent-item:nth-last-child(2){border-bottom:0}.gentle-note{margin-top:10px}.recent-time svg{margin-top:18px}.quick-panel .scenario-choices{grid-template-columns:repeat(4,minmax(0,1fr))}.scenario-choices button{gap:8px;padding:12px}.scenario-choices span{font-size:9px}.scenario-choices small{font-size:7px}.stat>strong{font-size:29px}.stat>p{font-size:8px}.stat{padding:17px 14px}.stat-top{font-size:10px}.live-layout{grid-template-columns:1fr}.track-list{max-height:230px}.live-view>.spatial{height:350px}.settings-layout{grid-template-columns:1fr}.steps{gap:20px}.steps h3{font-size:10px}.steps p{font-size:8px}.model-strip{gap:16px}.model-strip>div{padding:17px;gap:10px;flex-wrap:wrap}.model-strip strong{font-size:10px}.model-strip small{font-size:8px}.model-strip .badge{margin-left:31px}.login-story{padding:35px}.login-story h1{font-size:23px}.login-form-side{padding:35px}.login-form-side h2{font-size:20px}}@media(max-width:760px){.sidebar{transform:translate(-100%);width:224px;transition:transform .2s}.sidebar.open{transform:translate(0)}.sidebar-shade{display:block;position:fixed;inset:0;background:#18312050;border:0;z-index:25}.workspace-main{margin-left:0}.mobile-menu{display:inline-flex}.topbar{height:65px;padding:0 16px;gap:5px}.breadcrumbs{gap:8px}.breadcrumbs>span,.breadcrumbs>i{display:none}.topbar-actions{gap:10px}.top-avatar{display:none}.content{padding:17px 16px 0}.mode-switch button{padding:7px 9px;font-size:9px}.page-heading{margin:22px 0;gap:14px;align-items:flex-start}.page-heading h1{font-size:23px}.page-heading>.button{font-size:9px;padding:8px 10px;gap:6px;min-height:33px;margin-top:19px}.page-heading>.button svg:last-child{display:none}.page-heading p{font-size:9px;line-height:1.9;max-width:240px}.eyebrow{font-size:8px;letter-spacing:1px}.stats-grid{grid-template-columns:1fr 1fr;gap:0}.stat:nth-child(3),.stat:nth-child(4){border-top:1px solid var(--line)}.stat:nth-child(3):before{display:none}.stat{padding:17px 18px}.stat>strong{font-size:30px}.stat-top{font-size:10px}.stat>p{font-size:8px}.scene-panel>.spatial{margin:0 12px;width:calc(100% - 24px);height:260px}.scene-panel>.section-heading{padding:17px}.section-heading h2{font-size:12px}.section-heading p{font-size:9px}.scene-bottom{padding:17px}.range-symbol{font-size:23px}.scene-bottom strong{font-size:9px}.scene-bottom p{font-size:7px}.recent-list{grid-template-columns:1fr;padding:0 18px}.recent-item:nth-last-child(2){border-bottom:1px solid #eef1ec}.recent-item strong{font-size:12px}.recent-item p{font-size:10px}.recent-item small{font-size:9px}.recent-item .badge{font-size:8px}.recent-time{font-size:11px}.recent-item{padding:16px 0}.recent-panel>.section-heading{padding:20px}.quick-panel .scenario-choices{grid-template-columns:1fr 1fr}.scenario-choices button{padding:13px 10px}.scenario-choices span{font-size:10px}.scenario-choices small{font-size:8px}.scenario-choices svg{width:20px}.quick-panel>.button{margin-bottom:20px}.spatial-meta{left:12px;right:12px;font-size:7px}.person-label strong{font-size:7px}.person-label>span{font-size:9px}.person-dot{width:29px;height:29px}.person-dot svg{width:26px}.person-marker{gap:5px}.person-label{padding:6px;min-width:55px}.person-label i{font-size:6px;margin-left:4px}.spatial-legend{font-size:6px;gap:9px;left:10px;right:10px}.spatial-legend small{font-size:6px}.camera-origin{width:28px;height:25px}.camera-origin svg{width:16px}.page-footer{font-size:7px;line-height:1.8}.page-footer span:last-child{text-align:right}.model-strip{grid-template-columns:1fr}.model-strip>div{flex-wrap:nowrap}.model-strip strong{font-size:12px}.model-strip small{font-size:9px}.model-strip .badge{margin-left:0}.camera-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr;gap:25px;padding:5px 22px 25px}.steps>div>span{font-size:23px;margin-bottom:13px}.steps h3{font-size:11px}.steps p{font-size:9px}.table-toolbar{padding:16px}.tabs{gap:20px}.tabs button.active:after{bottom:-17px}.search{min-width:100%;order:2}.search input{font-size:11px}.table-toolbar:has(.search) .tabs button.active:after{bottom:-10px}.date-range{flex-wrap:wrap}.date-range label{font-size:9px}.date-range input{width:126px}.table-footer{padding:14px 16px;font-size:8px;flex-wrap:wrap}.table-footer span{max-width:230px;text-align:right}.table-scroll th{font-size:9px;padding:14px 17px}.table-scroll td{font-size:10px;padding:16px 17px}.notifications-panel .table-toolbar{flex-wrap:nowrap}.notification-item{padding:21px 18px;gap:13px}.notification-item strong{font-size:12px}.notification-item p{font-size:10px;line-height:1.8}.notification-item small{font-size:8px}.notification-item>.avatar{width:38px;height:38px}.notification-item>svg{width:16px}.live-view>.spatial{height:275px}.live-controls{padding:15px;font-size:9px;gap:8px;flex-wrap:wrap}.live-controls>div{gap:10px}.simulation-panel{flex-wrap:wrap;padding:20px}.simulation-panel>div{flex-basis:100%;margin-bottom:5px}.simulation-panel select{flex:1;width:180px}.simulation-panel h2{font-size:12px}.simulation-panel p{font-size:9px}.info-strip{padding:18px;gap:12px;align-items:flex-start;flex-wrap:wrap}.info-strip>.button{margin-left:35px}.info-strip p{font-size:9px}.camera-preview .preview-empty{padding:20px;gap:12px}.preview-empty>svg{width:38px;height:38px}.preview-empty h3{font-size:12px}.preview-empty p{font-size:9px}.preview-empty .button{margin-top:0;font-size:10px}.modal-backdrop{padding:12px;align-items:center}.modal{max-height:94dvh;width:100%;border-radius:8px}.modal.wide{width:100%}.modal-head{padding:17px 20px}.form-body,.profile-banner{padding:22px 20px}.profile-banner .avatar.xl{width:58px;height:58px;font-size:18px;border-radius:13px}.profile-banner h2{font-size:17px}.profile-banner p{font-size:10px}.profile-summary{margin:0 20px 25px}.profile-columns{grid-template-columns:1fr;padding:0 20px}.profile-history{border-top:1px solid var(--line);padding-top:22px}.profile-history .timeline{max-height:240px;overflow:auto}.sample-section{padding:24px 20px}.profile-danger{padding:16px 20px}.correction-box{padding:20px}.delete-confirm{flex-wrap:wrap;padding:20px}.delete-confirm>.button{margin-left:34px}.upload-actions{grid-template-columns:1fr}.calibration-workflow{padding:0 20px 24px}.calibration-report,.four-cols{grid-template-columns:1fr 1fr}.form-body h3 small{display:block;line-height:1.8;margin-top:5px}.toast{bottom:20px;left:16px;right:16px;transform:none;font-size:10px;max-width:none;padding:13px 16px}.two-cols{gap:0 15px}.settings-section{padding:0 20px 23px}.login-page{grid-template-columns:1fr}.login-story{min-height:370px;padding:27px}.login-story>.brand{margin-bottom:27px}.login-story .eyebrow{font-size:6px;margin-bottom:12px}.login-story h1{font-size:25px;line-height:1.8}.login-story p{font-size:10px;margin-top:14px}.login-scene{height:90px;margin:0;position:absolute;right:-25px;bottom:39px;transform:scale(.6);transform-origin:right bottom;opacity:.7}.login-form-side{padding:38px 30px}.login-form-side form{max-width:400px}.login-form-side h2{font-size:23px}.login-form-side form>p{font-size:11px;margin-bottom:26px}}.scene-panel>.spatial{width:calc(100% - 38px)}.bar-chart{gap:6px}.bar{max-width:12px;width:100%}.page-heading p{font-size:12px;color:#7b897e}.section-heading h2{font-size:15px}.section-heading p{font-size:11px;color:#7d8c80}.stat-top{font-size:12px;color:#738478}.stat>p{font-size:10px;color:#829080}.badge{font-size:10px}.badge.green{color:#457457}.badge.amber{color:#8e7949}.recent-item strong{font-size:13px}.recent-item p{font-size:11px;color:#7d8c7c}.recent-item small{font-size:10px;color:#8b9886}.recent-time{font-size:11px;color:#7a8977}.recent-item .badge{font-size:8px}.gentle-note{font-size:9px;color:#829271}.scene-bottom strong{font-size:11px}.scene-bottom p{font-size:9px;color:#8a9a85}.button{font-size:12px}.text-button{font-size:11px}.scenario-choices span{font-size:10px}.scenario-choices small{font-size:9px;color:#8b9c7e}.scenario-choices button{padding:12px 10px}.person-label strong{font-size:10px}.person-label>span{font-size:11px}.person-label i{font-size:8px}.table-footer{font-size:10px;color:#89987e}table{font-size:12px}th{font-size:11px;color:#859679}td{color:#748768}.person-cell strong{font-size:12px}.person-cell small{font-size:9px;color:#91a181}.form-help,.below-help{font-size:10px;color:#849873}label{font-size:11px;color:#6d8657}input:not([type=checkbox]),textarea,select{font-size:12px}.checkbox-label{font-size:11px}.model-strip small{font-size:10px;color:#8a9d78}.camera-card>p{font-size:11px;color:#8e9f79}.camera-card dl>div{font-size:11px}.camera-card dt{color:#91a17b}.setting-row p{font-size:10px;color:#8f9f79}.notification-item p{color:#829775}.notification-item small{color:#92a17e}.preview-empty p,.live-placeholder p{font-size:11px;color:#829b72}.detection-summary>span{font-size:10px}.track-list strong{font-size:11px}.track-list small{font-size:10px;color:#91a17e}@media(max-width:760px){.scene-panel>.spatial{width:calc(100% - 24px)}.page-heading{flex-wrap:wrap}.page-heading>div{flex-basis:100%}.page-heading>.button{margin-top:0}.page-heading h1{font-size:22px}.page-heading p{max-width:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.spatial.crowded .person-marker{flex-direction:column;gap:3px;width:76px}.spatial.crowded .person-dot{width:23px;height:23px;outline-width:3px}.spatial.crowded .person-dot svg{width:21px;height:21px}.spatial.crowded .person-label{min-width:0;width:76px;text-align:center;padding:5px 3px}.spatial.crowded .person-label strong{font-size:9px;overflow:hidden;text-overflow:ellipsis}.spatial.crowded .person-label>span{font-size:10px;margin-top:3px}.spatial.crowded .person-label i{font-size:7px;margin-left:4px}@media(max-width:760px){.spatial.crowded .person-marker,.spatial.crowded .person-label{width:64px}.spatial.crowded .person-label strong{font-size:8px}.spatial.crowded .person-label>span{font-size:9px}.spatial.crowded .person-label i{display:none}}
