:root{color-scheme:dark;--bg-primary:#070b0f;--bg-secondary:#0b1116;--surface:#101820;--surface-raised:#131e27;--surface-hover:#17252f;--border:#23333e;--border-strong:#34505d;--text-primary:#edf5f7;--text-secondary:#8296a2;--accent:#35dac6;--accent-soft:#103b38;--fire:#ff554d;--fire-soft:#421b1c;--smoke:#f1b84b;--smoke-soft:#3b2e17;--warning:#f2a93b;--success:#42d4a0;--danger:#ff554d;--disabled:#77838b;--shadow:0 16px 40px rgba(0,0,0,.28)}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 15%,var(--accent-soft),transparent 34%),var(--bg-primary)}.login-card{width:min(430px,100%);padding:34px;border:1px solid var(--border-strong);background:var(--surface);box-shadow:var(--shadow)}.login-brand{display:flex;align-items:center;gap:11px;margin-bottom:38px;font-size:12px;font-weight:800;letter-spacing:.12em}.login-brand small{display:block;color:var(--accent);font-size:7px}.login-card h1{margin:8px 0;font-size:34px;letter-spacing:-.04em}.login-card form{display:grid;gap:16px;margin-top:28px}.login-card label{display:grid;gap:7px;color:var(--text-secondary);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.login-card input{min-height:46px;padding:10px 12px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary)}.login-card .form-message{margin:0;min-height:16px}.login-card button{min-height:46px}.login-foot{margin:28px 0 0;padding-top:18px;border-top:1px solid var(--border);color:var(--text-secondary);font-size:9px;text-align:center;text-transform:uppercase;letter-spacing:.09em}
:root[data-theme="light"]{color-scheme:light;--bg-primary:#eaf0f2;--bg-secondary:#f4f7f8;--surface:#fff;--surface-raised:#f7fafb;--surface-hover:#edf5f5;--border:#cad7dc;--border-strong:#9fb4bc;--text-primary:#102027;--text-secondary:#58707a;--accent:#087f76;--accent-soft:#d7efec;--fire:#c9322d;--fire-soft:#fae1df;--smoke:#9a6500;--smoke-soft:#f8ecd2;--warning:#9a6500;--success:#087b5c;--danger:#c9322d;--disabled:#6d797e;--shadow:0 12px 30px rgba(26,52,62,.12)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg-primary);color:var(--text-primary);font:14px/1.5 Inter,"Segoe UI",Arial,sans-serif}button,input,select{font:inherit}button{border:1px solid var(--border-strong);background:var(--surface-raised);color:var(--text-primary);min-height:38px;padding:8px 13px;cursor:pointer;text-transform:uppercase;font-size:11px;font-weight:750;letter-spacing:.06em}button:hover:not(:disabled){border-color:var(--accent);background:var(--surface-hover)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button:disabled{opacity:.55;cursor:not-allowed}.button--primary{background:var(--accent);border-color:var(--accent);color:#041b19}.topbar{height:58px;position:sticky;top:0;z-index:20;display:flex;align-items:center;padding:0 max(18px,calc((100vw - 1440px)/2));gap:36px;background:color-mix(in srgb,var(--bg-secondary) 94%,transparent);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px;color:var(--text-primary);text-decoration:none;font-size:11px;font-weight:800;letter-spacing:.13em;white-space:nowrap}.brand small{display:block;color:var(--accent);font-size:7px}.brand__mark{display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--accent);color:var(--accent);font-size:9px}.nav{display:flex;gap:24px}.nav a{color:var(--text-secondary);text-decoration:none;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.nav a:hover{color:var(--accent)}.topbar__tools{margin-left:auto;display:flex;align-items:center;gap:16px}.service{display:flex;align-items:center;gap:7px;color:var(--text-secondary);font-size:9px;font-weight:700;letter-spacing:.07em}.dot{width:7px;height:7px;border-radius:50%}.dot--online{background:var(--success);box-shadow:0 0 8px var(--success)}.dot--offline{background:var(--danger);box-shadow:0 0 8px var(--danger)}.icon-button{min-height:32px;padding:5px 9px}.workspace{max-width:1440px;margin:auto;padding:40px 24px 64px}.hero,.section-title,.monitor__head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.hero{margin-bottom:25px}.hero h1{font-size:clamp(28px,4vw,46px);letter-spacing:-.04em;margin:2px 0}.subtitle,.section-title p,.muted{color:var(--text-secondary);margin:4px 0}.eyebrow{margin:0;color:var(--accent)!important;font-size:9px!important;letter-spacing:.18em;font-weight:800;text-transform:uppercase}.hero__actions{display:flex;gap:8px}.metrics{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-bottom:14px}.metrics article,.panel{background:var(--surface);border:1px solid var(--border)}.metrics article{padding:17px 18px;border-top:2px solid var(--border-strong)}.metrics span,.metrics small,.health-grid span{display:block;text-transform:uppercase;color:var(--text-secondary);font-size:9px;letter-spacing:.12em}.metrics strong{display:block;margin:7px 0;font:700 30px/1 "Roboto Mono",Consolas,monospace}.metric--fire{border-top-color:var(--fire)!important}.metric--fire strong{color:var(--fire)}.metric--smoke{border-top-color:var(--smoke)!important}.metric--smoke strong{color:var(--smoke)}.metric--alert{border-top-color:var(--danger)!important}.health-panel{padding:18px 20px;margin-bottom:46px}.section-title h2,.monitor h2,.modal h2{margin:2px 0;font-size:21px}.health-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:17px}.health-grid div{background:var(--surface-raised);border-left:2px solid var(--border-strong);padding:10px 12px}.health-grid strong{font-size:12px}.badge{display:inline-flex;align-items:center;padding:5px 8px;border:1px solid currentColor;font-size:9px;font-weight:800;letter-spacing:.08em}.badge--ok,.badge--live{color:var(--success);background:color-mix(in srgb,var(--success) 10%,transparent)}.badge--danger{color:var(--fire);background:var(--fire-soft)}.badge--warn{color:var(--smoke);background:var(--smoke-soft)}.badge--muted{color:var(--disabled)}.section-block{margin-bottom:46px}.section-block>.section-title{margin-bottom:16px}.camera-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.camera-card{min-width:0;background:var(--surface);border:1px solid var(--border);transition:.18s}.camera-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow)}.camera-card__preview{position:relative;aspect-ratio:16/9;background:#020405;overflow:hidden}.camera-card__preview img{width:100%;height:100%;object-fit:cover}.camera-card__preview .badge{position:absolute;top:10px;right:10px}.camera-card__body{padding:13px}.camera-card__head{display:flex;justify-content:space-between;gap:12px}.camera-card h3{margin:0;font-size:15px}.camera-card h3 small{display:block;margin-top:3px;color:var(--text-secondary);font:9px/1.2 "Roboto Mono",monospace}.safety-state{margin:14px 0 11px;padding:9px;border-left:3px solid var(--success);background:color-mix(in srgb,var(--success) 7%,transparent);font-size:11px;font-weight:800}.safety-state--fire{border-color:var(--fire);color:var(--fire);background:var(--fire-soft)}.safety-state--smoke{border-color:var(--smoke);color:var(--smoke);background:var(--smoke-soft)}.safety-state--offline{border-color:var(--danger);color:var(--danger)}.camera-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;color:var(--text-secondary);font-size:9px}.camera-meta b{display:block;color:var(--text-primary);font-size:10px}.camera-card__actions{display:flex;gap:6px;margin-top:12px}.camera-card__actions button{flex:1}.monitor{margin-bottom:46px}.monitor__head{padding:17px 18px;border-bottom:1px solid var(--border)}.monitor__head>div:last-child{display:flex;gap:8px}.monitor__layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(260px,.8fr)}.live-view{min-width:0;background:#020405}.live-view__bar,.live-view__tools{min-height:42px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#91a5ae;font:9px "Roboto Mono",monospace}.live-view img{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;background:#000}.side-stack{border-left:1px solid var(--border);background:var(--surface)}.side-stack article{padding:17px;border-bottom:1px solid var(--border)}.side-stack dl{display:grid;grid-template-columns:1fr 1fr;margin:12px 0 0;font-size:10px}.side-stack dt{color:var(--text-secondary)}.side-stack dd{text-align:right;margin:0}.detection-state{display:block;margin-top:8px;font-size:18px}.activity-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px}.activity-grid .section-title{padding:16px;border-bottom:1px solid var(--border)}.event-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;padding:13px 16px;border-bottom:1px solid var(--border);align-items:center}.event-icon{display:grid;place-items:center;width:34px;height:34px;background:var(--surface-raised);color:var(--accent);font-weight:800}.event-icon--fire{color:var(--fire);background:var(--fire-soft)}.event-icon--smoke{color:var(--smoke);background:var(--smoke-soft)}.event-row strong,.event-row small{display:block}.event-row small{color:var(--text-secondary);font-size:10px}.event-row__actions{display:flex;gap:5px}.empty-state,.notice{padding:28px;color:var(--text-secondary);text-align:center}.modal{width:min(520px,calc(100% - 30px));padding:0;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow)}.modal::backdrop{background:rgba(1,5,8,.76);backdrop-filter:blur(3px)}.modal form{padding:0}.modal__head,.modal__actions{display:flex;align-items:center;justify-content:space-between;padding:17px 20px;border-bottom:1px solid var(--border)}.modal label{display:grid;gap:6px;margin:14px 20px;color:var(--text-secondary);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.modal input,.modal select{width:100%;min-height:42px;padding:9px 11px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary)}.form-help,.form-message{margin:12px 20px;color:var(--text-secondary);font-size:10px}.form-message{color:var(--warning);min-height:15px}.modal__actions{justify-content:flex-end;gap:8px;border-top:1px solid var(--border);border-bottom:0}.notice{text-align:left}.notice strong{color:var(--warning)}
@media(max-width:1000px){.nav,.service:nth-child(2){display:none}.metrics{grid-template-columns:repeat(3,1fr)}.camera-grid{grid-template-columns:repeat(2,1fr)}.activity-grid{grid-template-columns:1fr}.monitor__layout{grid-template-columns:1fr}.side-stack{border-left:0;border-top:1px solid var(--border)}}
@media(max-width:640px){.workspace{padding:24px 14px}.topbar{padding:0 12px}.brand>span:last-child,.service{display:none}.hero,.section-title{align-items:flex-start;flex-direction:column}.hero__actions{width:100%}.hero__actions button{flex:1}.metrics{grid-template-columns:repeat(2,1fr)}.health-grid,.camera-grid{grid-template-columns:1fr}.camera-meta{grid-template-columns:repeat(2,1fr)}.monitor__head{align-items:flex-start;flex-direction:column}.event-row{grid-template-columns:auto 1fr}.event-row__actions{grid-column:1/-1}}

/* Dedicated camera subdashboard */
.camera-page{max-width:1600px}.camera-page__heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}.camera-page__heading h1{margin:3px 0;font-size:clamp(28px,4vw,44px);letter-spacing:-.04em}.camera-page__heading-actions{display:flex;align-items:center;gap:8px}.back-link{display:inline-block;margin-bottom:18px;color:var(--text-secondary);font-size:10px;text-decoration:none;text-transform:uppercase;letter-spacing:.09em}.back-link:hover{color:var(--accent)}.camera-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.camera-kpis article{padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-top:2px solid var(--border-strong)}.camera-kpis span{display:block;color:var(--text-secondary);font-size:9px;text-transform:uppercase;letter-spacing:.12em}.camera-kpis strong{display:block;margin-top:7px;font:700 15px "Roboto Mono",Consolas,monospace}.camera-console{display:grid;grid-template-columns:minmax(0,2.7fr) minmax(280px,.8fr);margin-bottom:18px}.camera-console__main{min-width:0;background:#020405}.camera-console__side{border-left:1px solid var(--border)}.camera-video{position:relative;display:grid;place-items:center;aspect-ratio:16/9;overflow:hidden;background:#000}.camera-video img{display:block;width:100%;height:100%;object-fit:contain}.camera-video__state{position:absolute;inset:auto 20px 20px;padding:10px;border:1px solid var(--danger);background:rgba(8,10,12,.88);color:#fff;font:700 10px "Roboto Mono",monospace;letter-spacing:.08em}.technical-line{margin-top:14px;color:var(--text-secondary);font:9px "Roboto Mono",monospace}.camera-activity{margin-top:0}
@media(max-width:1000px){.camera-console{grid-template-columns:1fr}.camera-console__side{border-left:0;border-top:1px solid var(--border)}.camera-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.camera-page__heading{align-items:flex-start;flex-direction:column}.camera-page__heading-actions{width:100%;justify-content:space-between}.camera-kpis{grid-template-columns:1fr}.camera-console{border-left:0;border-right:0}.live-view__bar{align-items:flex-start;flex-direction:column}.live-view__tools{align-items:flex-start;flex-direction:column}}

/* Phase 11.2 camera management */
.metric--leak{border-top-color:#30b8e6!important}.metric--leak strong{color:#30b8e6}.metrics{grid-template-columns:repeat(6,1fr)}
.camera-card__actions{display:grid;grid-template-columns:repeat(2,1fr)}.camera-card__actions button{min-width:0;padding-inline:6px}.button--danger{color:#fff!important;background:var(--danger)!important;border-color:var(--danger)!important}.eyebrow--danger{color:var(--danger)!important}.modal--wide{width:min(820px,calc(100% - 30px));max-height:calc(100vh - 30px);overflow:auto}.settings-status{display:grid;grid-template-columns:.6fr 2fr .8fr;gap:1px;background:var(--border);border-bottom:1px solid var(--border)}.settings-status span{min-width:0;padding:10px 14px;background:var(--surface-raised);color:var(--text-secondary);font-size:8px;letter-spacing:.1em}.settings-status b{display:block;overflow:hidden;margin-top:3px;color:var(--text-primary);font:10px "Roboto Mono",monospace;text-overflow:ellipsis;white-space:nowrap}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 16px;padding:18px 20px}.modal .settings-grid label{margin:0}.settings-grid__wide{grid-column:1/-1}.modal label small{color:var(--text-secondary);font-size:9px;text-transform:none;letter-spacing:0}.modal input[readonly]{color:var(--text-secondary);background:color-mix(in srgb,var(--bg-secondary) 70%,var(--disabled))}.settings-notice{margin:0 20px;padding:11px;border-left:2px solid var(--warning);background:var(--smoke-soft);color:var(--text-secondary);font-size:10px}.delete-confirmation{padding:20px}.delete-confirmation strong,.delete-confirmation span{display:block}.delete-confirmation strong{font-size:20px}.delete-confirmation span{color:var(--text-secondary);font:11px "Roboto Mono",monospace}
@media(max-width:640px){.settings-grid,.settings-status{grid-template-columns:1fr}.settings-grid__wide{grid-column:auto}.modal--wide{max-height:calc(100vh - 12px)}}
.snapshot-panel{margin-bottom:18px}.snapshot-panel .section-title{padding:16px;border-bottom:1px solid var(--border)}.snapshot-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px}.snapshot-card{min-width:0;border:1px solid var(--border);background:var(--surface-raised)}.snapshot-card img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;background:#000}.snapshot-card div{padding:9px}.snapshot-card strong,.snapshot-card small{display:block}.snapshot-card strong{font-size:10px}.snapshot-card small{color:var(--text-secondary);font-size:9px}@media(max-width:900px){.snapshot-gallery{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){.snapshot-gallery{grid-template-columns:1fr}}.automatic-snapshot{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.automatic-snapshot span,.automatic-snapshot small{display:block;color:var(--text-secondary);font-size:8px;letter-spacing:.1em}.automatic-snapshot img{display:block;width:100%;margin:7px 0;aspect-ratio:16/9;object-fit:cover;border:1px solid var(--border);background:#000}.access-form{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;padding:16px 20px;border-bottom:1px solid var(--border);align-items:end}.modal .access-form label{margin:0}.access-form button{margin-bottom:0}@media(max-width:700px){.access-form{grid-template-columns:1fr}}.camera-video canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;cursor:crosshair;touch-action:none}.zone-actions{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.alarm-snapshot-card{padding:0;color:var(--text-primary);text-align:left;cursor:zoom-in}.alarm-snapshot-card:hover{border-color:var(--accent);transform:translateY(-1px)}.automatic-snapshot img{cursor:zoom-in}.camera-activity{display:block}.alarm-snapshot-modal{width:min(1200px,calc(100% - 28px));max-height:calc(100vh - 28px);padding:0;border:1px solid var(--border-strong);background:#020405;color:var(--text-primary)}.alarm-snapshot-modal::backdrop{background:rgba(0,0,0,.9)}.alarm-snapshot-modal__head,.alarm-snapshot-modal__meta{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border)}.alarm-snapshot-modal__head h2{margin:2px 0}.alarm-snapshot-modal__frame{display:grid;place-items:center;min-height:280px;background:#000}.alarm-snapshot-modal__frame:fullscreen{background:#000}.alarm-snapshot-modal__frame img{display:block;max-width:100%;max-height:calc(100vh - 160px);object-fit:contain}.alarm-snapshot-modal__frame:fullscreen img{width:100%;height:100%;max-height:100vh}.alarm-snapshot-modal__meta{justify-content:flex-start;flex-wrap:wrap;border-top:1px solid var(--border);border-bottom:0}.alarm-snapshot-modal__meta span{color:var(--text-secondary);font:10px "Roboto Mono",monospace}.alarm-snapshot-modal__meta button{margin-left:auto}@media(max-width:640px){.alarm-snapshot-modal__meta button{width:100%;margin-left:0}}
