:root{--blue:#004efd;--blue-hover:#003bd0;--blue-tint:#edf3ff;--blue-border:#adc5ff;--ink:#101623;--gray:#616979;--nav:#687080;--line:#e3e7ee;--field:#868fa0;--pale:#f5f7fb;--white:#fff;--online:#067647;--online-bg:#ecfdf3;--degraded:#b54708;--degraded-bg:#fffaeb;--offline:#b42318;--offline-bg:#fef3f2;--unknown:#5b667c;--unknown-bg:#f2f4f8;--chart-soft:#c9d8ff;--radius-card:10px;--radius-button:7px;--radius-field:5px;--radius-label:4px;--radius-tile:9px;--radius-sheet:16px;--shadow-overlay:0 20px 45px -28px #5771a0;--shadow-hover:0 7px 25px #004efd08;--font-sans:Arial, Helvetica, sans-serif;--font-mono:"DM Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--mineral-50:var(--pale);--mineral-100:var(--white);--mineral-200:var(--pale);--mineral-300:var(--line);--ink-950:var(--ink);--ink-800:var(--ink);--ink-600:var(--gray);--ink-500:var(--gray);--navy:var(--blue);--navy-2:var(--blue-hover);--teal:var(--blue);--teal-2:var(--blue-tint);--blue-2:var(--blue-tint);--green:var(--online);--green-bg:var(--online-bg);--amber:var(--degraded);--amber-bg:var(--degraded-bg);--red:var(--offline);--red-bg:var(--offline-bg);--gray-bg:var(--unknown-bg);--border:var(--line);--border-strong:var(--line);--shadow-sm:none;--shadow-md:var(--shadow-overlay);--radius-sm:var(--radius-button);--radius-md:var(--radius-card);--radius-lg:var(--radius-sheet);--radius-pill:var(--radius-label)}*{box-sizing:border-box}html,body{min-height:100%}body{color:var(--ink);background:var(--white);font:14px/1.5 var(--font-sans);-webkit-font-smoothing:antialiased;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible,.leaflet-marker-icon:focus-visible{outline:3px solid var(--blue);outline-offset:2px}h1,h2,h3{letter-spacing:-.045em;font-weight:600}a{color:inherit}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mono{font-family:var(--font-mono);letter-spacing:-.02em}.auth-screen{background:var(--mineral-50);grid-template-columns:minmax(420px,.86fr) minmax(540px,1.14fr);min-height:100vh;display:grid}.auth-intro{color:#f1f7f5;background:var(--navy);flex-direction:column;justify-content:space-between;padding:44px 56px 36px;display:flex;position:relative;overflow:hidden}.auth-intro:before{content:"";opacity:.23;background-image:linear-gradient(#7dd9c73b 1px,#0000 1px),linear-gradient(90deg,#7dd9c73b 1px,#0000 1px);background-size:48px 48px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(130deg,#000 0%,#0000 74%);mask-image:linear-gradient(130deg,#000 0%,#0000 74%)}.auth-intro:after{content:"";border:1px solid #12a48c61;border-radius:50%;width:430px;height:430px;position:absolute;bottom:-160px;right:-170px;box-shadow:0 0 0 38px #12a48c0d,0 0 0 76px #12a48c0a}.auth-intro>*{z-index:1;position:relative}.brand{letter-spacing:-.04em;align-items:center;gap:11px;font-size:17px;font-weight:800;text-decoration:none;display:inline-flex}.brand-mark{background:var(--teal);width:28px;height:28px;color:var(--navy);border:1px solid #ffffff57;border-radius:7px;place-items:center;font-weight:800;display:grid}.auth-copy{max-width:510px;margin-top:auto;margin-bottom:auto;padding:72px 0}.eyebrow{color:var(--teal);font:500 11px/1 var(--font-mono);letter-spacing:.12em;text-transform:uppercase}.auth-copy h1{letter-spacing:-.065em;max-width:500px;margin:20px 0 18px;font-size:clamp(40px,4.2vw,66px);line-height:1.02}.auth-copy p{color:#b9c9d4;max-width:420px;margin:0;font-size:16px;line-height:1.7}.auth-signal{color:#9db2c1;align-items:center;gap:10px;font-size:12px;display:flex}.auth-form-wrap{place-items:center;padding:40px;display:grid}.auth-card h2{color:var(--ink-950);letter-spacing:-.05em;margin:0 0 8px;font-size:28px}.auth-subtitle{color:var(--ink-600);margin:0 0 30px}.provider-stack{gap:10px;display:grid}.provider-btn,.primary-btn,.secondary-btn,.icon-btn{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--white);min-height:44px;color:var(--ink-800);font-weight:700;transition:border-color .18s,background .18s,transform .18s}.provider-btn:disabled,.primary-btn:disabled,.secondary-btn:disabled,.icon-btn:disabled{cursor:not-allowed;opacity:.55;transform:none}.provider-btn{justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.provider-btn:hover,.secondary-btn:hover{border-color:var(--blue);background:var(--blue-2)}.provider-icon{place-items:center;width:18px;height:18px;font-size:15px;font-weight:800;display:grid}.clerk-captcha:empty{display:none}.clerk-captcha:not(:empty){min-height:72px;margin-top:14px}.divider{color:var(--ink-500);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:14px;margin:24px 0 20px;font-size:11px;font-weight:700;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.field-label{color:var(--ink-800);margin-bottom:7px;font-size:12px;font-weight:700;display:block}.text-input,.select-input{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--white);width:100%;min-height:46px;color:var(--ink-950);outline:none;padding:0 13px}.primary-btn{border-color:var(--navy);background:var(--navy);color:#fff}.primary-btn:hover{background:var(--navy-2);transform:translateY(-1px)}.primary-btn svg,.secondary-btn svg,.detail-link svg{flex:0 0 15px;width:15px;height:15px}.full-btn{width:100%;margin-top:12px}.auth-message{min-height:22px;margin:12px 0 0;font-size:12px}.auth-message.error{color:var(--red)}.auth-message.success{color:var(--green)}.auth-legal{color:var(--ink-500);text-align:center;margin-top:28px;font-size:11px}.auth-legal a{color:var(--ink-600);text-underline-offset:3px;text-decoration:underline}.hidden{display:none!important}.organization-gate{background-color:var(--mineral-50);background-image:linear-gradient(#0d223809 1px,#0000 1px),linear-gradient(90deg,#0d223809 1px,#0000 1px);background-size:48px 48px;min-height:100vh;padding:28px clamp(20px,5vw,68px)}.organization-gate-header{justify-content:space-between;align-items:center;gap:20px;display:flex}.organization-gate-header .brand{color:var(--ink-950)}.organization-gate-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--white);width:min(100%,580px);box-shadow:var(--shadow-md);margin:clamp(70px,12vh,130px) auto 40px;padding:clamp(24px,4vw,42px)}.organization-gate-card h1{letter-spacing:-.055em;margin:13px 0 10px;font-size:clamp(28px,4vw,38px);line-height:1.12}.organization-gate-card>p{color:var(--ink-600);margin:0}.organization-choice-list{gap:8px;margin-top:26px;display:grid}.organization-choice,.organization-empty{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--mineral-50);min-height:64px;color:var(--ink-800);text-align:left;grid-template-columns:38px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:10px 13px;display:grid}.organization-choice{width:100%}.organization-choice:hover{border-color:var(--blue);background:var(--blue-2)}.organization-choice>svg{width:17px}.organization-choice strong,.organization-empty strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.organization-choice small,.organization-empty small{color:var(--ink-500);margin-top:2px;font-size:10px;display:block}.organization-empty{grid-template-columns:38px minmax(0,1fr);margin-top:26px}.organization-create{width:100%;min-height:46px;margin-top:14px}.organization-gate-message{min-height:21px;font-size:11px;color:var(--red)!important;margin-top:10px!important}.app-shell{grid-template-columns:244px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--navy);color:#dce9e7;flex-direction:column;min-height:100vh;padding:24px 14px 16px;display:flex}.sidebar .brand-mark{border-color:#0000;width:26px;height:26px}.organization-switcher-wrap{margin:36px 6px 26px;position:relative}.workspace-chip{border-radius:var(--radius-md);width:100%;color:inherit;text-align:left;background:#ffffff0d;border:1px solid #ffffff1f;align-items:center;gap:10px;margin:0;padding:11px 10px;display:flex}.workspace-chip:hover{background:#12a48c1f;border-color:#12a48c94}.org-logo{background:var(--teal);width:30px;height:30px;color:var(--navy);border-radius:7px;flex:0 0 30px;place-items:center;font-weight:800;display:grid}.workspace-chip strong{color:#fff;text-overflow:ellipsis;white-space:nowrap;max-width:130px;font-size:12px;display:block;overflow:hidden}.workspace-chip span{color:#94aab8;font-size:10px;display:block}.workspace-chip .org-logo{color:var(--navy);font-size:11px;display:grid}.chevron{color:#8aa0ae;margin-left:auto}.organization-menu{z-index:1600;border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--white);width:292px;color:var(--ink-800);box-shadow:var(--shadow-md);padding:7px;position:absolute;top:calc(100% + 8px);left:0;overflow:hidden}.organization-menu-head{border-bottom:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 9px 10px;display:flex}.organization-menu-head strong{font-size:11px}.organization-menu-head span{color:var(--ink-500);font:9px var(--font-mono)}.organization-menu-item{border-radius:var(--radius-sm);width:100%;min-height:52px;color:var(--ink-800);text-align:left;background:0 0;border:0;grid-template-columns:32px minmax(0,1fr) 20px;align-items:center;gap:9px;padding:7px 8px;display:grid}.organization-menu-item:hover,.organization-menu-item:focus-visible{background:var(--mineral-100)}.organization-menu-item .org-logo{flex-basis:32px;width:32px;height:32px}.organization-menu-item strong,.organization-menu-item small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.organization-menu-item strong{font-size:11px}.organization-menu-item small{color:var(--ink-500);margin-top:2px;font-size:9px}.active-check{color:var(--green);text-align:center;font-weight:800}.organization-menu-action{border:0;border-top:1px solid var(--border);width:100%;min-height:44px;color:var(--blue);text-align:left;background:0 0;align-items:center;gap:8px;padding:0 9px;font-size:10px;font-weight:800;display:flex}.organization-menu-action:hover{background:var(--blue-2)}.organization-menu-action svg{width:15px;height:15px}.nav-label{color:#7892a2;font:500 10px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin:0 11px 10px}.side-nav{gap:4px;display:grid}.nav-item{border-radius:var(--radius-sm);color:#b7c9d0;border:1px solid #0000;align-items:center;gap:12px;min-height:42px;padding:0 12px;font-size:13px;font-weight:700;text-decoration:none;display:flex}.nav-item:hover{color:#fff;background:#ffffff12}.nav-item.active{color:#ebfffb;background:#12a48c26;border-color:#12a48c3d}.nav-item svg{opacity:.9;width:17px;height:17px}.sidebar-footer{color:#8299a8;border-top:1px solid #ffffff1a;margin-top:auto;padding:16px 11px 0;font-size:11px}.sidebar-footer strong{color:#d3e2e3;margin-bottom:3px;font-size:12px;display:block}.main-area{min-width:0}.topbar{border-bottom:1px solid var(--border);background:#f7f9f7e6;justify-content:space-between;align-items:center;height:72px;padding:0 34px;display:flex}.breadcrumb strong{color:var(--ink-800)}.top-actions{align-items:center;gap:15px;display:flex}.refresh b{color:var(--green);font-weight:700}.role-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--white);min-height:26px;color:var(--ink-600);align-items:center;padding:0 9px;font-size:9px;font-weight:800;display:inline-flex}.icon-btn{width:40px;min-height:40px;color:var(--ink-600);background:0 0;border-color:#0000;place-items:center;padding:0;display:grid}.avatar{background:var(--navy);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-weight:800;display:grid}.clerk-user-button{place-items:center;width:38px;min-height:38px;display:grid}.ooh-clerk-card{border:1px solid var(--line)!important;border-radius:var(--radius-card)!important;box-shadow:var(--shadow-overlay)!important}.ooh-clerk-title{letter-spacing:-.04em!important}.ooh-clerk-primary{background:var(--blue)!important}.mobile-menu{display:none}.page{max-width:1680px;margin:0 auto;padding:30px 34px 44px}.page-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:26px;display:flex}.page-heading p{color:var(--ink-600);margin:7px 0 0}.heading-actions{align-items:center;gap:9px;display:flex}.secondary-btn{justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 14px;font-size:12px;display:inline-flex}.filter-btn{color:var(--ink-600)}.kpi-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:22px;display:grid}.kpi-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);min-width:0;box-shadow:var(--shadow-sm);padding:17px 18px 16px}.kpi-head{color:var(--ink-600);justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.kpi-icon{border-radius:7px;place-items:center;width:30px;height:30px;display:grid}.kpi-card:first-child .kpi-icon{background:var(--blue-2);color:var(--blue)}.kpi-card:nth-child(5) .kpi-icon{background:var(--teal-2);color:var(--teal)}.kpi-value{color:var(--ink-950);letter-spacing:-.06em;margin:11px 0 5px;font-size:28px;font-weight:800;display:block}.kpi-foot{color:var(--ink-500);align-items:center;gap:5px;font-size:10px;display:flex}.toolbar{align-items:center;gap:10px;margin-bottom:14px;display:flex}.search-wrap{flex:1;max-width:410px;position:relative}.search-wrap svg{width:16px;color:var(--ink-500);position:absolute;top:13px;left:13px}.toolbar-note{color:var(--ink-500);margin-left:auto;font-size:11px}.dashboard-grid{grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);align-items:start;gap:14px;display:grid}.section-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-sm)}.map-section{min-width:0;overflow:hidden}.section-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;min-height:63px;padding:0 18px;display:flex}.section-head h2{color:var(--ink-950);letter-spacing:-.03em;margin:0;font-size:14px}.section-head p{color:var(--ink-500);margin:3px 0 0;font-size:11px}.section-head-actions{align-items:center;gap:6px;display:flex}.map-wrap{background:#dce9e7;height:430px;position:relative}#map{z-index:1;width:100%;height:100%}.map-data-state{z-index:550;border-radius:var(--radius-md);width:min(300px,100% - 36px);box-shadow:var(--shadow-md);color:var(--ink-800);text-align:center;background:#fffffff2;border:1px solid #ffffffe6;justify-items:center;gap:7px;padding:20px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map-data-state strong,.state-card strong,.inventory-message strong{font-size:12px}.map-data-state small,.state-card small,.inventory-message small{color:var(--ink-500);font-size:10px;line-height:1.5}.map-data-state .secondary-btn,.state-card .secondary-btn,.inventory-message .secondary-btn{margin-top:5px}.loading-spinner{border:2px solid var(--mineral-300);border-top-color:var(--blue);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.map-legend{z-index:500;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);background:#ffffffeb;border:1px solid #fffc;gap:10px;padding:9px 11px;display:flex;position:absolute;bottom:15px;right:15px}.legend-item{color:var(--ink-600);align-items:center;gap:5px;font-size:10px;display:flex}.leaflet-control-zoom{box-shadow:var(--shadow-md)!important;border:0!important}.leaflet-control-zoom a{color:var(--ink-800)!important}.ooh-marker{place-items:center;display:grid}.ooh-marker span{display:block}.ooh-marker.unknown{background:var(--unknown)}.detail-section{min-width:0;overflow:hidden}.detail-panel{outline:none;min-height:430px;padding:20px;position:relative}.detail-placeholder{flex-direction:column;justify-content:center;align-items:flex-start;display:flex}.detail-placeholder p{max-width:310px;color:var(--ink-500);font-size:12px}.detail-kicker{justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px;display:flex}.status-badge{border-radius:var(--radius-pill);align-items:center;gap:6px;min-height:25px;padding:0 8px;font-size:10px;font-weight:800;display:inline-flex}.status-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.detail-panel h2{letter-spacing:-.05em;margin:0;font-size:21px;line-height:1.18}.detail-location{color:var(--ink-600);margin:5px 0 0;font-size:12px}.detail-meta{border-bottom:1px solid var(--border);color:var(--ink-500);flex-wrap:wrap;gap:8px 15px;margin:14px 0 19px;padding-bottom:15px;font-size:10px;display:flex}.detail-meta strong{color:var(--ink-800);font:500 10px var(--font-mono);margin-top:2px;display:block}.data-heading{justify-content:space-between;align-items:center;margin-bottom:11px;display:flex}.data-heading h3{color:var(--ink-800);margin:0;font-size:11px}.class-grid{grid-template-columns:repeat(5,1fr);gap:5px;margin-bottom:18px;display:grid}.class-count{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--mineral-50);text-align:center;padding:9px 6px}.class-count strong{color:var(--ink-950);letter-spacing:-.04em;font-size:15px;display:block}.class-count span{color:var(--ink-500);margin-top:2px;font-size:9px;display:block}.camera-list{gap:7px;margin-bottom:17px;display:grid}.camera-row{border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;display:flex}.camera-name{color:var(--ink-800);align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.camera-icon{color:var(--blue)}.camera-health{color:var(--ink-500);font:500 10px var(--font-mono)}.camera-telemetry{min-width:0;color:var(--ink-500);font:500 10px var(--font-mono);text-align:right;margin-left:auto}.camera-telemetry small{color:var(--ink-500);font:9px var(--font-sans);margin-top:2px;display:block}.detail-trend-empty{border:1px dashed var(--border-strong);border-radius:var(--radius-sm);min-height:58px;color:var(--ink-500);text-align:center;place-items:center;padding:12px;font-size:10px;display:grid}.detail-link{color:var(--blue);align-items:center;gap:5px;margin-top:15px;font-size:11px;font-weight:800;text-decoration:none;display:inline-flex}.detail-link:hover{text-underline-offset:3px;text-decoration:underline}.analytics-strip{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:14px;margin-top:14px;display:grid}.analytics-card{min-width:0;padding-bottom:16px}.analytics-card .section-head{min-height:58px}.chart-wrap{padding:16px 18px 0}.big-total{letter-spacing:-.06em;margin:0 0 2px;font-size:25px}.comparison{color:var(--green);font-size:11px;font-weight:800}.comparison span,.comparison.neutral{color:var(--ink-500);font-weight:500}.comparison.negative{color:var(--red)}.bar-chart{border-bottom:1px solid var(--border);align-items:flex-end;gap:10px;height:146px;padding:16px 5px 0;display:flex}.bar-col{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:6px;height:100%;display:flex}.bar{background:var(--teal);border-radius:4px 4px 0 0;width:100%;max-width:35px;min-height:7px}.bar.missing{border-top:1px dashed var(--border-strong);background:0 0;min-height:0}.class-breakdown{gap:13px;padding:20px 18px;display:grid}.breakdown-row{color:var(--ink-600);grid-template-columns:90px 1fr 43px;align-items:center;gap:8px;font-size:11px;display:grid}.progress{border-radius:var(--radius-pill);background:var(--mineral-200);height:7px;overflow:hidden}.progress i{border-radius:inherit;background:var(--teal);height:100%;display:block}.breakdown-row strong{color:var(--ink-800);text-align:right;font:500 10px var(--font-mono)}.state-card{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:220px;padding:28px;display:flex}.error-state strong{color:var(--red)}.skeleton-line{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--mineral-200) 25%, var(--mineral-100) 50%, var(--mineral-200) 75%);background-size:200% 100%;width:100%;height:12px;animation:1.2s ease-in-out infinite skeleton-shift;display:block;overflow:hidden}.skeleton-value{width:62%;height:30px;margin:12px 0 7px}.skeleton-foot{width:78%;height:9px}@keyframes skeleton-shift{to{background-position:-200% 0}}.inventory-section{margin-top:14px;overflow:hidden}.table-scroll{overflow-x:auto}.inventory-table{border-collapse:collapse;text-align:left;width:100%;min-width:720px}.inventory-table th{color:var(--ink-500);font:500 10px var(--font-mono);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;padding:12px 18px}.inventory-table td{border-top:1px solid var(--border);color:var(--ink-600);vertical-align:middle;padding:13px 18px;font-size:11px}.inventory-table tr{cursor:pointer}.billboard-name{color:var(--ink-800);align-items:center;gap:10px;font-weight:800;display:flex}.billboard-thumb{border:1px solid var(--border);background:var(--mineral-200);width:30px;height:30px;color:var(--ink-600);border-radius:5px;place-items:center;display:grid}.camera-count{color:var(--ink-800);font:500 11px var(--font-mono)}.inventory-card-list{display:none}.table-status{white-space:nowrap}.offline-text{color:var(--red)}.billboard-code{color:var(--ink-500);margin-top:2px;font-size:9px;display:block}.inventory-message{min-height:120px;color:var(--ink-800);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:18px;display:flex}.inventory-detail-grid{grid-template-columns:minmax(0,1fr) minmax(380px,440px);align-items:start;gap:14px;display:grid}.inventory-detail-grid .inventory-section{margin-top:0}.route-detail-section{position:sticky;top:14px}.route-inventory-section,.route-state-card{margin-top:14px}.table-primary{color:var(--ink-800);font-size:11px;display:block}.camera-table td,.performance-table td{white-space:nowrap}.camera-table td:nth-child(3),.performance-table td:nth-child(2){white-space:normal;min-width:220px}.performance-table tr{cursor:pointer}.performance-rank{border:1px solid var(--border);background:var(--mineral-50);width:30px;height:30px;color:var(--ink-600);font:600 11px var(--font-mono);border-radius:50%;flex:0 0 30px;place-items:center;display:grid}.kpi-text-value{text-overflow:ellipsis;white-space:nowrap;font-size:16px;line-height:1.25;overflow:hidden}.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.settings-card{min-height:260px;padding:26px}.settings-card h2{letter-spacing:-.05em;margin:12px 0 7px;font-size:23px}.settings-card p{max-width:560px;color:var(--ink-600)}.settings-action{min-height:42px;margin-top:18px;padding:0 15px}.permission-note{border-top:1px solid var(--border);margin-top:22px;padding-top:16px;font-size:11px}.settings-list{gap:0;margin:20px 0 0;display:grid}.settings-list div{border-top:1px solid var(--border);grid-template-columns:120px minmax(0,1fr);gap:16px;padding:12px 0;display:grid}.settings-list dt{color:var(--ink-500);font-size:11px}.settings-list dd{color:var(--ink-800);font:500 11px var(--font-mono);overflow-wrap:anywhere;margin:0}.camera-setup-guide{margin-top:14px;overflow:hidden}.setup-steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;display:grid}.setup-steps li{border-right:1px solid var(--border);grid-template-columns:34px minmax(0,1fr);gap:11px;min-width:0;padding:20px 18px;display:grid}.setup-steps li:last-child{border-right:0}.setup-steps li>span{border:1px solid var(--border-strong);background:var(--mineral-50);width:30px;height:30px;color:var(--teal);font:600 10px var(--font-mono);border-radius:50%;place-items:center;display:grid}.setup-steps strong{color:var(--ink-800);font-size:11px}.setup-steps p{color:var(--ink-500);margin:5px 0 0;font-size:10px;line-height:1.55}.setup-steps code,.setup-payload code{color:var(--blue);font-family:var(--font-mono)}.setup-payload{border-top:1px solid var(--border);background:var(--mineral-50);grid-template-columns:minmax(190px,.35fr) minmax(0,1fr);align-items:start;gap:20px;padding:18px;display:grid}.setup-payload strong{color:var(--ink-800);font-size:11px}.setup-payload p{color:var(--ink-500);margin:4px 0 0;font-size:10px}.setup-payload pre,.command-block pre{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--navy);color:#d8e6eb;max-width:100%;font:10px/1.6 var(--font-mono);white-space:pre;margin:0;padding:13px;overflow-x:auto}.setup-payload pre code,.command-block pre code{color:inherit}.camera-dialog{border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--white);width:min(680px,100% - 32px);max-height:min(820px,100vh - 40px);color:var(--ink-950);box-shadow:var(--shadow-md);padding:0;overflow-y:auto}.camera-dialog::backdrop{background:#0d223885}.camera-dialog form{margin:0}.dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:22px;padding:24px 26px 20px;display:flex}.dialog-head h2{letter-spacing:-.05em;margin:9px 0 5px;font-size:24px}.dialog-head p{max-width:520px;color:var(--ink-600);margin:0;font-size:11px}.dialog-head .icon-btn{flex:0 0 44px}#camera-registration-fields,.provisioning-result{padding:24px 26px 26px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-field>small{color:var(--ink-500);margin-top:6px;font-size:9px;line-height:1.45;display:block}.security-callout{border-left:3px solid var(--amber);background:var(--amber-bg);margin-top:18px;padding:14px 15px}.security-callout strong{color:var(--ink-800);font-size:11px}.security-callout p{color:var(--ink-600);margin:4px 0 0;font-size:10px;line-height:1.5}.form-message{min-height:20px;color:var(--ink-500);margin:13px 0 0;font-size:11px}.form-message.error{color:var(--red)}.form-message.success{color:var(--green)}.dialog-actions{justify-content:flex-end;gap:9px;margin-top:15px;display:flex}.success-banner{border-radius:var(--radius-sm);background:var(--green-bg);border:1px solid #b9dfd0;padding:15px}.success-banner strong{color:var(--green);font-size:12px}.success-banner p{color:var(--ink-600);margin:4px 0 0;font-size:10px}.credential-block{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--mineral-50);grid-template-columns:minmax(0,1fr) auto;gap:10px;margin-top:13px;padding:14px;display:grid}.credential-block span,.credential-block strong{display:block}.credential-block span{color:var(--ink-500);text-transform:uppercase;letter-spacing:.08em;font-size:9px}.credential-block strong{color:var(--ink-800);margin-top:2px;font-size:11px}.credential-block code{overflow-wrap:anywhere;color:var(--blue);font:10px/1.55 var(--font-mono);-webkit-user-select:all;user-select:all;grid-column:1/-1}.command-block{margin-top:13px}.command-block>div{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.command-block strong{color:var(--ink-800);font-size:11px}.brand{color:var(--ink);letter-spacing:-.03em;gap:10px;font-size:16px;font-weight:600}.brand-mark{border-radius:var(--radius-button);background:var(--blue-tint);width:34px;height:34px;color:var(--blue);border:0;place-items:center;display:grid}.brand-mark svg{width:19px;height:19px}.eyebrow{color:var(--blue);font:600 12px/1.2 var(--font-sans);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:10px;display:inline-flex}.eyebrow:before{content:"";background:currentColor;flex:0 0 20px;width:20px;height:2px}.app-shell{background:var(--white);grid-template-columns:248px minmax(0,1fr)}.sidebar{background:var(--white);color:var(--ink);border-right:1px solid var(--line);padding:24px 20px 20px}.sidebar .brand{color:var(--ink);padding:0}.sidebar .brand-mark{width:34px;height:34px}.organization-switcher-wrap{margin:24px 0 22px}.workspace-chip{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--white);color:var(--ink)}.workspace-chip:hover{border-color:var(--blue-border);background:var(--white)}.workspace-chip strong{color:var(--ink);font-size:14px;font-weight:600}.workspace-chip span{color:var(--gray);font-size:12px}.org-logo,.workspace-chip .org-logo{background:var(--blue);color:var(--white);border-radius:var(--radius-button);font-weight:600}.chevron{color:var(--gray)}.nav-label{color:var(--blue);font:600 12px var(--font-sans);letter-spacing:.1em;align-items:center;gap:8px;margin:0 0 10px;display:flex}.nav-label:before{content:"";background:currentColor;width:16px;height:2px}.side-nav{gap:2px}.nav-item{border-radius:var(--radius-button);min-height:44px;color:var(--nav);border:0;padding:0 12px 0 14px;font-size:14px;font-weight:500;text-decoration:none;position:relative}.nav-item:hover{background:var(--pale);color:var(--ink)}.nav-item.active{background:var(--pale);color:var(--ink);font-weight:600}.nav-item.active svg{color:var(--blue)}.nav-item.active:before{content:"";background:var(--blue);border-radius:2px;width:3px;position:absolute;top:11px;bottom:11px;left:0}.sidebar-footer{border-top:1px solid var(--line);color:var(--gray);padding:16px 0 0;font-size:12px}.sidebar-footer p{margin:10px 0 0}.sidebar-footer strong{color:var(--ink);font-size:13px;display:block}.apps-link{min-height:44px;color:var(--blue);align-items:center;gap:8px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.apps-link svg{width:16px;height:16px}.apps-link:hover{text-underline-offset:3px;text-decoration:underline}.topbar{border-bottom:1px solid var(--line);background:var(--white);height:64px;padding:0 32px}.breadcrumb{color:var(--gray);font-size:13px}.breadcrumb strong{color:var(--ink);font-weight:600}.role-chip{border-radius:var(--radius-label);background:var(--unknown-bg);min-height:24px;color:var(--unknown);border:0;padding:0 8px;font-size:12px;font-weight:600}.refresh{color:var(--gray);font-size:12px}.refresh b{color:var(--ink);font:500 13px var(--font-mono)}.topbar-brand{display:none}.icon-btn{border-radius:var(--radius-button);width:44px;min-height:44px;color:var(--gray)}.icon-btn:hover{border-color:var(--line);background:var(--pale)}.close-btn{width:44px;min-height:44px}.primary-btn,.secondary-btn,.provider-btn{border-radius:var(--radius-button);min-height:44px;padding:0 18px;font-size:14px;font-weight:600;transform:none}.primary-btn{border:1px solid var(--blue);background:var(--blue);color:var(--white)}.primary-btn:hover{border-color:var(--blue-hover);background:var(--blue-hover);transform:none}.secondary-btn,.provider-btn{border:1px solid var(--line);background:var(--white);color:var(--ink)}.secondary-btn:hover,.provider-btn:hover{background:var(--pale);border-color:#b6c1d4}.primary-btn svg,.secondary-btn svg{flex:0 0 16px;width:16px;height:16px}.text-input,.select-input{border:1px solid var(--field);border-radius:var(--radius-field);min-height:46px;color:var(--ink);font-size:14px}.text-input::placeholder{color:var(--gray)}.text-input:focus,.select-input:focus{border-color:var(--blue);box-shadow:0 0 0 3px #004efd26}.field-label{color:var(--ink);font-size:13px;font-weight:600}.page{padding:32px 32px 44px}.page-heading{margin-bottom:24px}.page-heading h1{letter-spacing:-.045em;margin:10px 0 0;font-size:34px}.page-heading p{color:var(--gray);margin:8px 0 0;font-size:17px}.heading-actions{gap:10px}.section-card,.kpi-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--white);box-shadow:none}.kpi-grid{gap:16px;margin-bottom:24px}.kpi-card{padding:18px}.kpi-head{color:var(--gray);font-size:14px;font-weight:400}.kpi-icon{border-radius:var(--radius-button);width:36px;height:36px}.kpi-icon svg{width:18px;height:18px}.kpi-card:first-child .kpi-icon,.kpi-card:nth-child(5) .kpi-icon{background:var(--blue-tint);color:var(--blue)}.kpi-card:nth-child(2) .kpi-icon{background:var(--online-bg);color:var(--online)}.kpi-card:nth-child(3) .kpi-icon{background:var(--degraded-bg);color:var(--degraded)}.kpi-card:nth-child(4) .kpi-icon{background:var(--offline-bg);color:var(--offline)}.camera-kpis .kpi-card:nth-child(5) .kpi-icon{background:var(--unknown-bg);color:var(--unknown)}.analytics-kpis .kpi-card .kpi-icon{background:var(--blue-tint);color:var(--blue)}.kpi-value{color:var(--ink);letter-spacing:-.045em;margin:14px 0 6px;font-size:30px;font-weight:600}.kpi-foot{color:var(--gray);font-size:12px}.trend-up{color:var(--online);font-weight:600}.trend-down{color:var(--offline);font-weight:600}.toolbar{gap:12px;margin-bottom:16px}.search-wrap svg{color:var(--gray);top:15px;left:14px}.search-wrap .text-input{padding-left:40px}.status-select{width:170px}.toolbar-note{color:var(--gray);font-size:12px}.section-head{border-bottom:1px solid var(--line);min-height:64px;padding:0 20px}.section-head h2{color:var(--ink);letter-spacing:-.02em;font-size:16px;font-weight:600}.section-head p{color:var(--gray);font-size:12px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 420px;gap:16px}.map-wrap{background:var(--pale);height:460px}.map-legend{border:1px solid var(--line);border-radius:var(--radius-button);background:var(--white);box-shadow:none;gap:14px;padding:8px 12px;bottom:16px;left:16px;right:auto}.legend-item{color:var(--gray);gap:6px;font-size:12px}.leaflet-control-zoom{overflow:hidden;border:1px solid var(--line)!important;border-radius:var(--radius-button)!important;box-shadow:none!important}.leaflet-control-zoom a{width:44px!important;height:44px!important;color:var(--ink)!important;font-size:20px!important;line-height:42px!important}.status-badge{border-radius:var(--radius-label);gap:6px;min-height:24px;padding:0 8px;font-size:12px;font-weight:600}.status-badge:before{content:none}.status-shape{background:currentColor;flex:0 0 8px;width:8px;height:8px;display:inline-block;position:relative}.status-shape.online{color:var(--online);border-radius:50%}.status-shape.unknown{box-shadow:inset 0 0 0 2px var(--unknown);color:var(--unknown);background:0 0;border-radius:50%}.status-shape.degraded{color:var(--degraded);transform:rotate(45deg)scale(.85)}.status-shape.offline{color:var(--offline);transform:rotate(45deg)scale(.85)}.status-shape.offline:after{content:"";background:var(--white);height:2px;position:absolute;top:3px;left:1px;right:1px;transform:rotate(-45deg)}.status-badge.online{color:var(--online);background:var(--online-bg)}.status-badge.degraded{color:var(--degraded);background:var(--degraded-bg)}.status-badge.offline{color:var(--offline);background:var(--offline-bg)}.status-badge.unknown{color:var(--unknown);background:var(--unknown-bg)}.ooh-marker{border:2.5px solid var(--white);border-radius:50%;width:28px;height:28px;box-shadow:0 2px 6px #10162340}.ooh-marker span{background:var(--white);border-radius:50%;width:8px;height:8px;transform:none}.ooh-marker.online{background:var(--online)}.ooh-marker.unknown{background:var(--white);box-shadow:inset 0 0 0 3px var(--unknown), 0 2px 6px #10162340}.ooh-marker.unknown span{background:var(--unknown)}.ooh-marker.degraded,.ooh-marker.offline{border-radius:4px;transform:rotate(45deg)scale(.82)}.ooh-marker.degraded{background:var(--degraded)}.ooh-marker.offline{background:var(--offline)}.ooh-marker.degraded span{border-radius:1px}.ooh-marker.offline span{border-radius:1px;width:12px;height:3px;transform:rotate(-45deg)}.ooh-marker.selected{border-color:var(--white);width:28px;height:28px;box-shadow:0 0 0 2px var(--blue), 0 0 0 8px #004efd1f, 0 3px 10px #10162347;transform:scale(1.25)}.ooh-marker.unknown.selected{box-shadow:inset 0 0 0 3px var(--unknown), 0 0 0 2px var(--blue), 0 0 0 8px #004efd1f, 0 3px 10px #10162347}.ooh-marker.degraded.selected,.ooh-marker.offline.selected{transform:rotate(45deg)scale(1.025)}.marker-cluster-small,.marker-cluster-medium,.marker-cluster-large{background:#004efd2e}.marker-cluster-small div,.marker-cluster-medium div,.marker-cluster-large div{background:var(--blue);color:var(--white);font:600 12px/38px var(--font-sans)}.detail-panel{min-height:460px;padding:20px 22px}.detail-kicker{margin-bottom:12px}.detail-panel h2{letter-spacing:-.03em;font-size:22px}.detail-location{color:var(--gray);font-size:13px}.detail-meta{border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--gray);gap:12px 16px;margin:16px 0;padding:14px 0;font-size:12px}.detail-meta strong{color:var(--ink);font:500 13px var(--font-mono)}.data-heading h3{color:var(--ink);letter-spacing:0;font-size:13px;font-weight:600}.data-heading span{color:var(--gray);font-size:12px}.class-count{border:1px solid var(--line);border-radius:var(--radius-button);background:var(--pale)}.class-count strong{color:var(--ink);font-size:16px}.class-count span{color:var(--gray);font-size:11px}.camera-row{border:1px solid var(--line);border-radius:var(--radius-button);background:var(--pale);padding:10px 12px}.camera-name{color:var(--ink);font:500 13px var(--font-mono)}.camera-telemetry,.camera-telemetry small{color:var(--gray);font-size:12px}.detail-link{min-height:44px;color:var(--blue);font-size:14px;font-weight:600}.bar-chart{border-bottom:1px solid var(--line);gap:10px;height:170px;padding:12px 0 0}.bar-col{gap:6px}.bar-value{color:var(--gray);font:400 12px var(--font-mono)}.bar{background:var(--chart-soft);border-radius:4px 4px 0 0;max-width:44px}.bar.today{background:var(--blue)}.bar.missing{border-top:1px dashed var(--field);background:0 0}.bar-label{color:var(--gray);font:12px var(--font-sans)}.detail-chart .bar-chart{height:120px}.progress{background:var(--pale);border-radius:var(--radius-label)}.progress i{background:var(--blue)}.big-total{letter-spacing:-.045em;font-size:30px;font-weight:600}.inventory-table th{background:var(--pale);color:var(--gray);font:600 12px var(--font-sans);letter-spacing:.06em;padding:10px 18px}.inventory-table td{border-top:1px solid var(--line);color:var(--ink);padding:12px 18px;font-size:14px}.inventory-table tbody tr:hover,.inventory-table tbody tr:focus-within{background:var(--pale)}.billboard-name{min-width:0;color:var(--ink);font-weight:600}.billboard-name>span:last-child,.table-primary{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:320px;display:block;overflow:hidden}.billboard-name small,.billboard-code{text-overflow:ellipsis;display:block;overflow:hidden}.inventory-card{transition:border-color .18s,box-shadow .18s}.inventory-card:hover,.inventory-card:focus-visible{border-color:var(--blue-border);box-shadow:var(--shadow-hover)}.inventory-table tbody tr:hover{box-shadow:inset 3px 0 0 var(--blue-border)}.billboard-thumb{border-radius:var(--radius-button);background:var(--blue-tint);color:var(--blue);border:0}.billboard-code,.state-card small,.map-data-state small,.inventory-message small{color:var(--gray);font-size:12px}.skeleton-line{background:linear-gradient(90deg, var(--pale) 25%, #eceff5 37%, var(--pale) 63%);background-size:400% 100%}.settings-card h2{letter-spacing:-.03em;font-size:22px}.setup-steps li>span{border-color:var(--line);background:var(--blue-tint);color:var(--blue);font-family:var(--font-mono)}.kpi-card .kpi-text-value{font-size:16px}.table-primary{font-size:14px}.auth-screen{background:var(--white);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.auth-intro{color:var(--ink);border-right:1px solid var(--line);background:linear-gradient(110deg,#fff 37%,#f4f7ff 100%);padding:44px 56px 40px}.auth-intro:before,.auth-intro:after{content:none}.auth-copy h1{color:var(--ink);letter-spacing:-.045em;margin:20px 0 18px;font-size:clamp(32px,4vw,46px);line-height:1.12}.auth-copy h1 em{color:var(--blue);font-style:normal}.auth-copy p{color:var(--gray);font-size:17px;line-height:1.65}.auth-facts{flex-wrap:wrap;gap:12px;margin:24px 0 0;padding:0;list-style:none;display:flex}.auth-facts li{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--white);padding:12px 16px}.auth-facts span{color:var(--gray);font-size:12px;display:block}.auth-facts strong{color:var(--ink);font-size:14px;font-weight:600}.auth-signal{color:var(--gray);align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.auth-signal svg{width:16px;height:16px;color:var(--blue)}.auth-card{width:min(100%,380px)}.auth-card h2{color:var(--ink);letter-spacing:-.04em;font-size:28px}.auth-subtitle,.auth-help{color:var(--gray)}.auth-help{margin:14px 0 0;font-size:12px}.provider-btn,.auth-card .primary-btn{min-height:52px}.divider{color:var(--gray);letter-spacing:.1em;font-size:12px;font-weight:600}.divider:before,.divider:after{background:var(--line)}.auth-legal{color:var(--gray);font-size:12px}.auth-legal a{color:var(--gray)}.organization-gate{background:0 0}.organization-gate-card{border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-overlay)}.organization-gate-card h1{color:var(--ink);letter-spacing:-.045em;font-size:clamp(28px,4vw,34px)}.organization-choice,.organization-empty{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--white);color:var(--ink)}.organization-choice:hover{border-color:var(--blue-border);background:var(--white);box-shadow:var(--shadow-hover)}.organization-menu{border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-overlay)}.organization-menu-item[aria-current=true]{background:var(--blue-tint)}.camera-dialog,.status-dialog{border:1px solid var(--line);border-radius:var(--radius-card);box-shadow:var(--shadow-overlay)}.camera-dialog::backdrop,.status-dialog::backdrop{background:#10162373}.status-dialog{width:min(560px,100% - 32px);padding:0}.status-definitions{margin:0;padding:8px 26px 4px}.status-definitions div{border-top:1px solid var(--line);grid-template-columns:120px minmax(0,1fr);gap:16px;padding:14px 0;display:grid}.status-definitions div:first-child{border-top:0}.status-definitions dd{color:var(--gray);margin:0;font-size:14px}.status-note{color:var(--gray);margin:0;padding:0 26px 24px;font-size:12px}.dialog-head h2{color:var(--ink);letter-spacing:-.04em;font-size:24px}.security-callout{border-left-color:var(--degraded);background:var(--degraded-bg)}.credential-block code{color:var(--blue)}.success-banner{background:var(--online-bg);border-color:#abefc6}.success-banner strong{color:var(--online)}.mobile-drawer-backdrop{display:none}@media (width<=1180px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding-left:14px;padding-right:14px}.nav-item.active:before{top:11px}.sidebar .brand{justify-content:center;padding:0}.sidebar .brand-label,.workspace-chip .org-copy,.workspace-chip .chevron,.nav-label,.nav-item span,.sidebar-footer{display:none}.organization-switcher-wrap{margin:36px 0 26px}.workspace-chip{background:0 0;border-color:#0000;justify-content:center;padding:8px}.organization-menu{left:58px}.nav-item{justify-content:center;padding:0}.topbar,.page{padding-left:24px;padding-right:24px}.kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-grid,.inventory-detail-grid{grid-template-columns:minmax(0,1fr)}.setup-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-steps li:nth-child(2){border-right:0}.setup-steps li:nth-child(-n+2){border-bottom:1px solid var(--border)}.detail-section{z-index:1000;width:min(440px,92vw);box-shadow:var(--shadow-overlay);border-radius:0;transition:transform .25s;position:fixed;top:0;bottom:0;right:0;transform:translate(105%)}.detail-section.open{transform:translate(0)}.detail-panel{min-height:100%;padding-top:30px;overflow-y:auto}.detail-section{overscroll-behavior:contain;overflow-y:auto}.heading-actions{flex-wrap:wrap}.heading-actions .button,.heading-actions button,.heading-actions a{white-space:nowrap}.mobile-drawer-backdrop{z-index:999;opacity:0;pointer-events:none;background:#10162352;transition:opacity .25s;display:block;position:fixed;inset:0}.mobile-drawer-backdrop.open{opacity:1;pointer-events:auto}}@media (width<=1023px){.auth-screen{display:block}.auth-intro{border-right:0;border-bottom:1px solid var(--line);min-height:0;padding:28px 24px}.auth-copy{padding:28px 0 8px}.auth-facts,.auth-signal{display:none}.auth-copy p{font-size:15px}.auth-form-wrap{place-items:start center;min-height:0;padding:36px 24px 48px}}@media (width<=720px){body{font-size:13px}.auth-screen,.app-shell{display:block}.sidebar{z-index:1200;width:250px;padding:24px 14px 16px;transition:transform .25s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:12px 0 30px #0d22382e}.sidebar.open{transform:translate(0)}.sidebar .brand{justify-content:flex-start;padding:0}.sidebar .brand-label,.workspace-chip .org-copy,.workspace-chip .chevron,.nav-label,.nav-item span,.sidebar-footer{display:block}.organization-gate{padding:20px 16px}.organization-gate-card{margin-top:60px}.organization-switcher-wrap{margin:36px 6px 26px}.workspace-chip{border-color:var(--line);background:var(--white);justify-content:flex-start;padding:11px 10px}.organization-menu{width:100%;left:0}.workspace-chip .chevron{display:block}.nav-item{justify-content:flex-start;padding:0 12px 0 14px}.mobile-drawer-backdrop{display:block}.topbar{justify-content:flex-start;gap:10px;height:62px;padding:0 16px}.topbar-brand{flex:1;min-width:0;display:flex}.topbar-brand .brand-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.top-actions{margin-left:auto}.refresh{display:none}.mobile-menu{display:grid}.breadcrumb{display:none}.refresh{font-size:10px}.role-chip{display:none}.top-actions{gap:7px}.top-actions .icon-btn:first-of-type{display:none}.page{padding:23px 16px 35px}.page-heading{margin-bottom:20px;display:block}.page-heading h1{font-size:28px}.heading-actions{flex-wrap:wrap;margin-top:16px}.kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi-grid>.kpi-card:nth-child(5){grid-column:1/-1}.kpi-card{padding:13px}.kpi-head{font-size:12px}.kpi-value{font-size:23px}.toolbar{flex-wrap:wrap}.search-wrap{flex-basis:100%;max-width:none}.status-select{flex:1;width:auto}.toolbar-note{margin-left:0}.map-wrap{height:340px}.section-head{min-height:59px;padding:0 14px}.map-legend{gap:7px;padding:7px;bottom:9px;left:9px;right:auto}.legend-item{font-size:12px}.detail-section{border-radius:var(--radius-sheet) var(--radius-sheet) 0 0;width:100%;height:min(75vh,560px);top:auto;transform:translateY(105%)}.detail-section.open{transform:translateY(0)}.detail-panel{min-height:0;padding:23px 18px 30px}.detail-panel:before{content:"";background:var(--field);border-radius:4px;width:42px;height:4px;margin:-8px auto 16px;display:block}.class-grid{gap:4px}.analytics-strip{grid-template-columns:1fr}.inventory-section{box-shadow:none;background:0 0;border:0}.inventory-section .section-head{border-bottom:0;padding:0 0 11px}.table-scroll{display:none}.inventory-card-list{grid-template-columns:minmax(0,1fr);gap:8px;display:grid}.inventory-card>div:first-child{min-width:0}.inventory-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--white);box-shadow:var(--shadow-sm);grid-template-columns:1fr auto;gap:10px;padding:13px;display:grid}.inventory-card .billboard-name{font-size:12px}.inventory-card-meta{color:var(--ink-500);flex-wrap:wrap;gap:8px 13px;margin-top:6px;font-size:12px;display:flex}.inventory-card-status{align-self:start}.settings-grid{grid-template-columns:1fr}.settings-card{min-height:0;padding:20px}.setup-steps{grid-template-columns:1fr}.setup-steps li,.setup-steps li:nth-child(2){border-right:0;border-bottom:1px solid var(--border)}.setup-steps li:last-child{border-bottom:0}.setup-payload{grid-template-columns:1fr}.camera-dialog{border-radius:var(--radius-lg) var(--radius-lg) 0 0;border-width:1px 0 0;width:100%;max-width:none;max-height:88vh;margin:auto 0 0}.dialog-head,#camera-registration-fields,.provisioning-result{padding-left:18px;padding-right:18px}.form-grid{grid-template-columns:1fr}.credential-block{grid-template-columns:minmax(0,1fr) auto}}@media (width<=380px){.page{padding-left:12px;padding-right:12px}.map-wrap{height:300px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
