:root{--bg:#071727;--panel:#0e2435;--panel2:#132d42;--line:rgba(184,220,230,.13);--txt:#e9f4fa;--muted:#93abba;--teal:#52e6c9;--blue:#60bbf7;--amber:#ffd282;--red:#f7a6aa}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--txt)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 10% 0,rgba(28,121,145,.16),transparent 34%),linear-gradient(160deg,#071727 15%,#0b1d2c 100%)}button,input{font:inherit}.shell{max-width:1440px;margin:0 auto;padding:27px 34px 24px}a{color:var(--teal)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:22px;padding-bottom:25px;border-bottom:1px solid var(--line)}.brand{font-weight:900;font-size:17px;letter-spacing:.08em;color:var(--teal)}.brand span{font-weight:650;color:#b5ced8;letter-spacing:.06em}.topbar p{margin:7px 0 0;font-size:13px;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pill{display:inline-block;border:1px solid;padding:7px 12px;border-radius:99px;font-size:12px;font-weight:700;white-space:nowrap}.pill-good{color:var(--teal);border-color:#277b74;background:rgba(54,202,166,.10)}.pill-warn{color:var(--amber);border-color:#8c6b3a;background:rgba(251,201,103,.09)}.pill-bad{color:var(--red);border-color:#7b414b;background:rgba(243,103,115,.12)}.pill-neutral{color:#b1cfdb;border-color:var(--line);background:rgba(255,255,255,.04)}.ghost{cursor:pointer;border:1px solid var(--line);border-radius:10px;padding:10px 14px;background:#162e41;color:var(--txt);text-decoration:none;font-size:13px;font-weight:650}.ghost:hover{background:#1e4258}.heading{display:flex;justify-content:space-between;align-items:flex-end;gap:25px;margin:31px 0 19px}.heading h1{font-size:clamp(25px,4vw,39px);line-height:1.1;letter-spacing:-.03em;margin:0 0 10px}.heading p{margin:0;color:var(--muted);font-size:13px}.heading p strong{font-weight:500}.timestamp{color:var(--muted);font-size:12px;white-space:nowrap}.warning{border:1px solid #805b30;background:rgba(239,163,56,.10);color:#ffdc9b;padding:13px 16px;border-radius:12px;margin:16px 0;font-size:13px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:18px}.metric{border:1px solid var(--line);border-radius:15px;background:linear-gradient(150deg,#143146,#0f2538);padding:18px 19px 17px;min-height:137px}.metric-label{font-size:13px;color:#bed2df;font-weight:650}.tip{display:inline-grid;place-items:center;border:1px solid #647f8d;border-radius:50%;width:16px;height:16px;font-size:10px;margin-left:4px;cursor:help}.metric-value{font-size:42px;font-weight:850;margin:11px 0 6px;line-height:1;letter-spacing:-.04em}.metric-note{font-size:12px;color:var(--muted)}.cameras{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:18px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:15px;overflow:hidden}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 19px}.panel-head h2{font-size:16px;letter-spacing:-.01em;margin:0 0 5px;font-weight:700}.small{color:var(--muted);font-size:12px;line-height:1.5}.snapshot{position:relative;background:#102f3d;aspect-ratio:1000/562;overflow:hidden}.snapshot img{width:100%;height:100%;object-fit:contain;display:block}.snap-caption{position:absolute;bottom:9px;right:10px;font-size:10px;background:#091b27e0;border-radius:7px;color:#cce1ea;padding:6px 8px}.camera-footer{padding:12px 19px 16px;font-size:13px;color:#b3cad6}.camera-footer strong{font-size:21px;color:#fff;padding-right:4px}.chart-panel{margin-bottom:18px}.chart-container{min-height:245px;position:relative;padding:0 16px 14px}.chart-container canvas{width:100%;height:268px;display:block}.chart-empty{color:var(--muted);text-align:center;margin-top:-175px;position:relative;pointer-events:none;font-size:13px}.chart-empty[hidden]{display:none}.table-wrap{overflow-x:auto;padding:0 17px 13px}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:11px;font-weight:650;letter-spacing:.02em}td,th{padding:12px 11px;border-bottom:1px solid var(--line)}td{color:#e2f2f8}tbody tr:last-child td{border-bottom:0}tbody td:nth-child(n+2){font-variant-numeric:tabular-nums}.tech{margin-bottom:16px}.tech #installState{padding:0 19px 16px}.code-line{border-top:1px solid var(--line);padding:13px 19px;color:#bcf0e5;font-size:12px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow-wrap:anywhere}.tech details{border-top:1px solid var(--line);padding:15px 19px;color:#c8d9e5}.tech summary{cursor:pointer;font-size:12px}.tech pre{font-size:11px;color:#a0c6cc;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.55;max-height:240px}.footnote{font-size:12px;line-height:1.7;color:var(--muted);margin:20px 0 28px}footer{color:#6d8b9c;font-size:12px;padding:18px 0 10px;border-top:1px solid var(--line)}.auth-page{display:grid;place-items:center;padding:25px}.auth-card{width:min(100%,480px);background:#112a3b;border:1px solid var(--line);border-radius:20px;padding:38px}.auth-card h1{font-size:30px;margin:28px 0 12px;line-height:1.15}.auth-card p{color:var(--muted);line-height:1.6;font-size:14px}.auth-card label{display:block;font-size:13px;font-weight:700;margin-top:24px}.auth-card input{display:block;width:100%;background:#071b2b;color:#f4fcff;border:1px solid #35586a;border-radius:10px;padding:13px;margin-top:9px;outline:none}.auth-card input:focus{border-color:var(--teal)}.primary{border:0;border-radius:10px;background:var(--teal);color:#04222a;padding:13px 20px;font-weight:800;cursor:pointer;width:100%;margin-top:25px}.error{border:1px solid #8c4148;background:rgba(195,60,70,.14);padding:10px;border-radius:9px;color:#ffd6d8!important}.tiny{font-size:12px!important;margin-top:20px}@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}}@media(max-width:750px){.shell{padding:18px 16px}.topbar,.heading{align-items:flex-start;flex-direction:column}.heading{gap:10px}.cameras{grid-template-columns:1fr}.stats{gap:9px}.metric{padding:15px 13px;min-height:133px}.metric-label{font-size:11px}.metric-value{font-size:35px}.metric-note{font-size:10px}.panel-head{padding:15px}.panel-head h2{font-size:14px}.logout{display:none}}
