:root{font-family:Segoe UI,system-ui,sans-serif;color:#23354a;background:#f5f7fb;font-synthesis:none;--accent:#087f79;--muted:#6b7c8f}*{box-sizing:border-box}body{margin:0}aside{position:fixed;inset:0 auto 0 0;width:238px;background:#102b32;color:#d3e7e7;padding:32px 22px}.brand{color:white;text-decoration:none;font-size:22px;font-weight:700;display:flex;gap:10px;align-items:center}.brand>span{font-size:19px}.accent{color:#69d5bd}.nav{margin-top:54px;padding:14px;border-radius:9px;font-size:14px}.active{background:#214148;color:#a4f1dd}.side-bottom{position:absolute;bottom:32px;line-height:2;font-size:13px}.side-bottom small{color:#8ea7ab;font-size:11px}.dot{display:inline-block;width:7px;height:7px;background:#69d5bd;border-radius:50%;margin-right:6px}main{margin-left:238px;padding:45px 40px;max-width:1900px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:32px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--accent)}h1{font-size:34px;letter-spacing:-1px;margin:9px 0}p{line-height:1.6}header p{color:var(--muted);margin:0;font-size:14px}h2{font-size:17px;margin:0}button,.button{font:inherit;font-weight:600;font-size:13px;border:0;border-radius:7px;padding:13px 18px;background:var(--accent);color:white;cursor:pointer;text-decoration:none;white-space:nowrap}button:hover,.button:hover{filter:brightness(.94)}button:disabled{opacity:.55;cursor:wait}.secondary{background:white;border:1px solid #dce4eb;color:#405367}.scan-panel,.inventory{background:#fff;border:1px solid #e0e6ed;border-radius:12px;box-shadow:0 3px 12px #17354e03}.scan-panel{padding:23px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.muted{color:var(--muted);font-size:12px}#scan-form{display:flex;gap:15px;align-items:end}label{display:flex;flex-direction:column;gap:8px;font-size:12px;font-weight:600}input,select,textarea{font:inherit;color:#30475b;background:white;border:1px solid #d6e0e7;border-radius:6px;padding:11px 12px;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #9ad9cf;outline-offset:2px}.range-label{flex:1}#adapter{max-width:250px}#scan-button{height:42px}.hint{font-size:11px;color:var(--muted);margin-top:12px;line-height:1.6}#message{font-size:13px;line-height:1.6;margin-top:12px}#message:empty{display:none}.error{color:#b74747}.success{color:#14776a}progress{width:100%;height:7px;accent-color:var(--accent);margin-top:20px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0}.stats article{border:1px solid #e0e6ed;border-radius:10px;padding:19px;background:white}.stats span{display:block;font-size:12px;color:#586b7d}.stats strong{display:block;font-size:32px;font-weight:650;margin:10px 0 4px}.stats small{font-size:10px;color:var(--muted)}.green{color:#178677}.amber{color:#b27916}.red{color:#c15c58}.inventory-heading{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 12px;gap:20px}.inventory-heading p{margin:7px 0}.inventory-heading input{font-size:12px;width:245px}.badge{background:#edf2f5;color:#6d7d8b;font-size:11px;border-radius:5px;padding:3px 7px;margin-left:5px}.filters{display:flex;align-items:center;gap:5px;padding:0 24px 18px}.filters button{font-size:12px;background:transparent;color:var(--muted);padding:8px 12px}.filters .selected{color:var(--accent);background:#e9f5f1}.offline-toggle{margin-left:auto;flex-direction:row;align-items:center;color:var(--muted);font-size:11px;font-weight:400}.offline-toggle input{accent-color:var(--accent)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:10px;letter-spacing:.4px;color:#7a8897;background:#f8fafc;padding:14px 20px;font-weight:600}td{padding:17px 20px;border-top:1px solid #edf0f4;font-size:12px;vertical-align:middle}td strong{display:block;font-size:13px;font-weight:600}.sub{display:block;font-size:10px;color:var(--muted);margin-top:5px}.mono{font-family:Consolas,monospace;font-size:12px}.pill{font-size:10px;padding:5px 9px;border-radius:20px;display:inline-block;white-space:nowrap}.pill.unknown{background:#fff5df;color:#996c13}.pill.trusted{background:#e6f6ee;color:#18725f}.pill.flagged{background:#fcebe8;color:#b54c43}.edit-button{background:#f1f5f7;color:#496575;padding:7px 11px;font-size:11px}.empty{text-align:center;padding:48px 20px;color:var(--muted)}.empty>div{font-size:38px;color:#84bdb3}.empty h3{font-size:16px;color:#3e5c6c}.empty p{font-size:12px}footer{margin-top:22px;font-size:11px;line-height:1.8;color:#7b8996;max-width:1100px}footer strong{color:#586c7a}dialog{border:1px solid #dce5e9;border-radius:13px;padding:25px;width:min(460px,94vw);color:#23354a;box-shadow:0 25px 80px #102b3240}dialog::backdrop{background:#102b3277}dialog label{margin:16px 0}dialog button[type=submit]{width:100%}.icon-button{background:#edf3f4;color:#45616d;padding:5px 9px}#edit-error{color:#b74747;font-size:12px}button:focus-visible,a:focus-visible{outline:3px solid #7fcac0;outline-offset:3px}[hidden]{display:none!important}@media(min-width:1600px){main{padding:55px 55px}}@media(max-width:1100px){aside{width:185px;padding:28px 15px}.brand>span{font-size:16px}main{margin-left:185px;padding:30px 24px}.stats{grid-template-columns:repeat(2,1fr)}#scan-form{flex-wrap:wrap}.range-label{min-width:220px}.inventory-heading{align-items:start;flex-direction:column}.filters{flex-wrap:wrap}.offline-toggle{margin-left:0}}@media(max-width:700px){aside{position:static;width:100%;padding:18px 20px}.nav,.side-bottom{display:none}main{margin-left:0;padding:25px 16px}header{align-items:start;flex-direction:column}h1{font-size:29px}.section-title{align-items:start;flex-direction:column}#scan-form{flex-direction:column;align-items:stretch}#adapter{max-width:none}.stats{gap:10px}.stats article{padding:14px}.stats span{font-size:11px}.stats small{font-size:10px}.inventory-heading{padding:20px 16px 12px}.filters{padding:0 16px 15px}.inventory-heading input{width:100%}th,td{padding:13px}footer{font-size:10px}}

.new-alerts{border:1px solid #e8b858;border-left:5px solid #ce8b18;background:#fff8e8;border-radius:10px;padding:22px;margin-bottom:24px}.new-alerts h2{color:#895b0b}.new-alerts>p{font-size:13px;color:#846528;margin:10px 0}.new-alerts small{display:block;font-size:11px;line-height:1.6;color:#846528;margin-top:14px}.alert-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid #eadab8}.alert-row strong{font-size:13px}.alert-actions{display:flex;gap:8px}.alert-actions button{padding:9px 12px;font-size:12px}@media(max-width:700px){.alert-row{align-items:start;flex-direction:column}.alert-actions{flex-wrap:wrap}}

.research-panel{background:#f2f8f7;border:1px solid #cfe2de;border-radius:8px;padding:15px;margin:18px 0}.research-panel .section-title{margin-bottom:8px}.research-panel h3{font-size:14px;margin:0}.research-panel #research-status{font-size:12px;line-height:1.5}.research-panel .hint{margin:8px 0}.finding{padding:9px 0;border-top:1px solid #d9e7e3;overflow-wrap:anywhere}.finding strong{font-size:12px}.finding p{font-size:12px;margin:4px 0}.research-panel .secondary{padding:7px 10px;font-size:11px}#edit-dialog{width:min(610px,94vw);max-height:90vh}#research-findings{max-height:260px;overflow:auto}.research-summary{color:#087f79}

aside .nav{display:block;width:100%;text-align:left;white-space:normal;margin-top:35px;color:#d3e7e7;background:transparent}aside .nav+ .nav{margin-top:8px}aside .nav.active{background:#214148;color:#a4f1dd}.traffic-controls{display:flex;gap:20px;margin:22px 0}.traffic-controls label:first-child{flex:1}#router-form{display:flex;flex-wrap:wrap;gap:12px;align-items:end}#router-form label{flex:1;min-width:130px}#router-form button{height:42px}#traffic-message{font-size:13px;line-height:1.6}#traffic-warnings{color:#996c13}.traffic-chart{padding:24px;margin-bottom:24px}.traffic-chart svg{width:100%;height:auto;display:block}.chart-legend{font-size:12px;display:flex;gap:18px}.chart-legend span:first-child{color:#07847c}.chart-legend span:last-child{color:#527bda}.traffic-stats strong{font-size:26px}.traffic-controls select{min-height:42px}@media(max-width:700px){aside .nav{display:inline-block;width:auto;margin:14px 0 0!important;padding:8px 12px}.traffic-controls{flex-direction:column}.traffic-chart{padding:16px}.chart-legend{font-size:10px;gap:10px}}
.camera-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:22px}.camera-card{min-width:0;background:white;border:1px solid #e0e6ed;border-radius:12px;padding:20px}.camera-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.camera-screen{aspect-ratio:16/10;background:#102b32;border-radius:9px;display:flex;align-items:center;justify-content:center;overflow:hidden;margin:16px 0;color:#d3e7e7}.camera-screen img{width:100%;height:100%;object-fit:contain}.camera-screen p{padding:22px;text-align:center;font-size:13px}.camera-screen:fullscreen{border-radius:0;aspect-ratio:auto;width:100vw;height:100vh;background:#000}.camera-form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.camera-form label{flex:1;min-width:135px}.camera-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.camera-actions button{font-size:11px;padding:10px}.camera-status{font-size:12px;min-height:20px;color:var(--muted)}@media(max-width:1000px){.camera-grid{grid-template-columns:1fr}}@media(max-width:700px){.camera-card{padding:15px}.camera-heading{align-items:start}.camera-form{flex-direction:column;align-items:stretch}.camera-form label{min-width:0}.camera-form button{width:100%}}
.camera-screen{position:relative}.camera-screen.camera-expanded{position:fixed;inset:0;z-index:1000;margin:0;width:100vw;height:100vh;border-radius:0;aspect-ratio:auto;background:#000}.camera-close{position:absolute;right:16px;top:16px;z-index:1;background:#102b32e6;border:1px solid #9cbab5;color:#fff}.camera-screen img{flex-shrink:0}
.camera-audio-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#e7f5f1;border:1px solid #c4e3da;border-radius:10px;padding:10px 16px;margin-bottom:18px}.camera-audio-status{margin:0;font-size:13px;color:#215c50}.camera-actions button[aria-pressed=true]{background:#087f79;color:white;border-color:#087f79}@media(max-width:700px){.camera-audio-bar{align-items:start;flex-direction:column}}

/* Night palette shared by every section, dialog and native form control. */
:root{color-scheme:dark;--page:#0c121b;--panel:#151f2c;--field:#101925;--border:#2b394b;--text:#e4ebf5;--muted:#a2b1c5;--accent:#6bdcc4;color:var(--text);background:var(--page)}
body{background:var(--page);color:var(--text)}aside{background:#0e2028;border-right:1px solid #20343f}.side-bottom small{color:#9bb3bf}aside .nav{color:#c3d3e0}aside .nav.active{background:#203e45;color:#a0f1dc}
.scan-panel,.inventory,.stats article,.camera-card{background:var(--panel);border-color:var(--border);box-shadow:0 5px 20px #00000012}input,select,textarea{color:var(--text);background:var(--field);border-color:var(--border)}input::placeholder,textarea::placeholder{color:#8d9eb4;opacity:1}input:focus,select:focus,textarea:focus{outline-color:#6bdcc4}input[type=checkbox]{accent-color:#6bdcc4}option{background:var(--field);color:var(--text)}
button,.button{background:#146e63;color:#f0fffa}button:hover,.button:hover{filter:brightness(1.12)}button:disabled{opacity:.55}.secondary,.edit-button,.icon-button{background:#202e3e;border-color:#35475b;color:#dce8f5}.filters button{background:transparent;color:var(--muted)}.filters .selected{background:#1c3d38;color:#9aecd5}.stats span{color:#b5c3d4}.badge{background:#263548;color:#bacadd}th{background:#111a26;color:#adbed2}td{border-color:#263449}tbody tr:hover{background:#1a2939}
.pill.unknown{background:#382e1b;color:#f1cd84}.pill.trusted{background:#183b32;color:#90e2bf}.pill.flagged{background:#40272e;color:#ffb1a6}.green,.success{color:#7edbbe}.amber,#traffic-warnings{color:#edc57b}.red,.error,#edit-error{color:#ffaaa5}.empty h3{color:#c9d7e6}.empty>div{color:#6bdcc4}footer{color:#9cacc0}footer strong{color:#c0cfdf}
dialog{background:var(--panel);border-color:#3a4d61;color:var(--text);box-shadow:0 25px 80px #0008}dialog::backdrop{background:#030810b8}.research-panel{background:#122c30;border-color:#2b5052}.finding{border-color:#2b5052}.research-summary{color:#80e2c9}.new-alerts{background:#2d261a;border-color:#82642b;border-left-color:#deb464}.new-alerts h2{color:#ffda96}.new-alerts>p,.new-alerts small{color:#dfc693}.alert-row{border-color:#59492b}
.camera-screen{background:#090f16;color:#bbcadc}.camera-audio-bar{background:#16302e;border-color:#2a514a}.camera-audio-status{color:#a0e5d1}.camera-actions button[aria-pressed=true]{background:#176e60;border-color:#58b9a2;color:#f0fffa}.chart-legend span:first-child{color:#6bdcc4}.chart-legend span:last-child{color:#85adff}.traffic-chart svg line{stroke:var(--border)}.traffic-chart svg text{fill:var(--muted)}
.camera-zoom{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:16px;font-size:12px}.camera-zoom>span{margin-right:auto;color:var(--muted)}.camera-zoom button{padding:8px 11px}.camera-zoomed{touch-action:none;cursor:grab}.camera-zoomed:active{cursor:grabbing}.camera-screen img{transform-origin:center;user-select:none}.camera-movement{display:flex;align-items:center;gap:18px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:16px 0;margin-bottom:18px}.camera-movement strong{font-size:12px}.camera-movement .hint{margin:7px 0 0;max-width:260px}.camera-direction-pad{display:grid;grid-template-columns:repeat(3,36px);grid-template-rows:repeat(3,34px);gap:5px;flex-shrink:0}.camera-direction-pad button{padding:0;font-size:19px}.direction-up{grid-area:1/2}.direction-left{grid-area:2/1}.direction-stop{grid-area:2/2}.direction-right{grid-area:2/3}.direction-down{grid-area:3/2}.camera-direction-pad button:disabled{opacity:.3;cursor:not-allowed}.camera-close{z-index:2}@media(max-width:420px){.camera-movement{gap:12px}.camera-direction-pad{grid-template-columns:repeat(3,32px);grid-template-rows:repeat(3,32px)}}
.camera-movement-group{margin-bottom:18px}.camera-movement-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;list-style:none;cursor:pointer;padding:11px 13px;border:1px solid var(--border);border-radius:7px;background:#202e3e;color:#dce8f5;font-size:12px;font-weight:600;user-select:none}.camera-movement-toggle::-webkit-details-marker{display:none}.camera-movement-toggle::after{content:'▾';color:var(--muted)}.camera-movement-group[open]>.camera-movement-toggle::after{content:'▴'}.camera-movement-toggle:hover{background:#283b4f}.camera-movement-toggle:focus-visible{outline:3px solid var(--accent);outline-offset:3px}.camera-movement-group>.camera-movement{margin:10px 0 0;border-top:0;padding-top:6px}
