:root{--bg:#080b0d;--panel:#111619;--panel-2:#171d20;--line:#263034;--text:#f2f6f5;--muted:#8e9b9e;--signal:#d9ff43;--signal-dark:#a9cd1d;--danger:#ff665b;--radius:14px;--mono:'DejaVu Sans Mono','Liberation Mono',monospace;--sans:Inter,'DejaVu Sans',system-ui,sans-serif}
*{box-sizing:border-box}html{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px}body{margin:0;min-height:100vh;background:radial-gradient(circle at 82% -10%,rgba(217,255,67,.06),transparent 24%),var(--bg)}button,input,select{font:inherit}button,a{touch-action:manipulation}.app-shell{max-width:1520px;margin:auto;min-height:100vh}.topbar{height:78px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 34px}.brand{color:var(--text);text-decoration:none;display:flex;align-items:center;gap:12px;width:max-content}.brand>span:last-child{display:flex;align-items:baseline;letter-spacing:-.03em}.brand strong{font-size:1.02rem}.brand small{font-size:.7rem;letter-spacing:.17em;color:var(--signal);margin-left:5px}.brand-mark{width:31px;height:31px;border:1px solid #4e5a5d;border-radius:50%;display:grid;place-items:center;position:relative}.brand-mark:before,.brand-mark:after{content:"";position:absolute;background:var(--signal)}.brand-mark:before{width:13px;height:1px}.brand-mark:after{width:1px;height:13px}.brand-mark i{width:7px;height:7px;border:2px solid var(--signal);border-radius:50%}.topbar nav{height:100%;display:flex;gap:40px}.topbar nav a{color:var(--muted);text-decoration:none;display:flex;align-items:center;position:relative;font-weight:600;font-size:.9rem}.topbar nav a.active{color:var(--text)}.topbar nav a.active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--signal)}.topbar form{justify-self:end}.icon-button{border:0;background:transparent;color:var(--muted);padding:10px;cursor:pointer}.icon-button:hover{color:var(--signal)}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}main{padding:44px 34px 80px}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px}.page-heading h1{font-size:clamp(2.1rem,4vw,3.6rem);letter-spacing:-.055em;margin:.12em 0 0;line-height:1}.eyebrow{font-family:var(--mono);font-size:.69rem;letter-spacing:.18em;color:var(--signal);margin:0;font-weight:700}.system-state{display:flex;align-items:center;gap:10px}.system-state>i,.live-badge i{width:8px;height:8px;border-radius:50%;background:var(--signal);box-shadow:0 0 14px var(--signal)}.system-state span{display:flex;flex-direction:column}.system-state strong{font-size:.85rem}.system-state small{font-size:.75rem;color:var(--muted);margin-top:2px}.camera-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.camera-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.stream-frame{position:relative;aspect-ratio:16/8.7;background:#050606;overflow:hidden}.stream-frame>img{width:100%;height:100%;display:block;object-fit:cover}.stream-vignette{position:absolute;inset:0;box-shadow:inset 0 0 60px rgba(0,0,0,.4);pointer-events:none}.live-badge{position:absolute;left:16px;top:16px;display:flex;align-items:center;gap:7px;background:rgba(8,11,13,.75);backdrop-filter:blur(8px);padding:7px 9px;border-radius:6px;font-family:var(--mono);font-size:.66rem;letter-spacing:.12em}.live-badge i{width:6px;height:6px}.camera-index{position:absolute;right:16px;top:14px;font-family:var(--mono);font-size:.72rem;color:rgba(255,255,255,.62)}.stream-error{display:none;position:absolute;inset:0;place-items:center;color:var(--muted);font-size:.85rem}.stream-frame.broken img{display:none}.stream-frame.broken .stream-error{display:grid}.camera-card footer{display:flex;justify-content:space-between;align-items:center;padding:18px 20px}.camera-card h2{font-size:1.05rem;margin:0}.camera-card footer p{color:var(--muted);font:400 .68rem var(--mono);margin:4px 0 0}.camera-card footer a{font-size:.78rem;color:var(--muted);text-decoration:none}.camera-card footer a:hover{color:var(--signal)}.camera-card footer a span{color:var(--signal);margin-left:5px}.add-slot{min-height:190px;border-style:dashed;display:grid;place-items:center}.add-slot>div{display:flex;flex-direction:column;align-items:center;color:var(--muted)}.add-slot span{font-size:2rem;color:var(--signal);font-weight:200}.add-slot strong{font-size:.9rem;margin-top:8px}.add-slot small{font-size:.75rem;margin-top:4px}.history-heading{align-items:end}.history-heading>.muted{max-width:380px;text-align:right}.muted{color:var(--muted);line-height:1.55}.filter-panel{display:grid;grid-template-columns:1.25fr 1fr .7fr .7fr auto;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;margin-bottom:18px}.filter-panel label,.login-form label{font-size:.71rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:700}.filter-panel input,.filter-panel select,.login-form input{display:block;width:100%;margin-top:7px;border:1px solid #303b3f;border-radius:8px;background:#0b0f11;color:var(--text);padding:12px 13px;outline:none;color-scheme:dark}.filter-panel input:focus,.filter-panel select:focus,.login-form input:focus{border-color:var(--signal);box-shadow:0 0 0 3px rgba(217,255,67,.08)}.primary{border:0;border-radius:8px;background:var(--signal);color:#111507;font-weight:700;padding:0 21px;cursor:pointer;align-self:end;height:43px;display:flex;align-items:center;justify-content:center;gap:9px}.primary:hover{background:#e5ff7b}.primary svg{width:17px}.timeline-panel,.results{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-top:18px}.section-title{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.section-title h2{margin:5px 0 0;font-size:1.25rem}.section-title>span{color:var(--muted);font:400 .72rem var(--mono)}.timeline-scale{margin-left:140px;display:flex;justify-content:space-between;color:#667174;font:400 .62rem var(--mono);padding:0 0 7px}.timeline-row{display:grid;grid-template-columns:125px 1fr;gap:15px;align-items:center;margin:13px 0}.timeline-label{display:flex;flex-direction:column}.timeline-label strong{font-size:.84rem}.timeline-label small{font:400 .62rem var(--mono);color:var(--muted);margin-top:3px}.timeline-track{height:28px;background:#0a0e10;border-radius:5px;position:relative;outline:none;cursor:crosshair}.timeline-track:focus-visible{box-shadow:0 0 0 2px var(--signal)}.quarter{position:absolute;top:0;bottom:0;width:1px;background:#273034}.q1{left:25%}.q2{left:50%}.q3{left:75%}.event{position:absolute;top:6px;width:5px;height:16px;background:var(--signal);border-radius:2px;transform:translateX(-2px);z-index:2;box-shadow:0 0 7px rgba(217,255,67,.25)}.event:hover,.event:focus{transform:translateX(-3px) scale(1.35);z-index:4}.timeline-cursor{display:none;position:absolute;top:0;bottom:0;width:1px;background:rgba(255,255,255,.65);pointer-events:none;z-index:3}.timeline-tooltip{display:none;position:absolute;bottom:36px;transform:translateX(-50%);background:#f1f5f4;color:#101415;padding:6px 8px;border-radius:5px;font:700 .68rem var(--mono);white-space:nowrap;z-index:6}.timeline-track.hovering .timeline-cursor,.timeline-track.hovering .timeline-tooltip{display:block}.timeline-help{color:var(--muted);font-size:.76rem;margin:18px 0 0}.recording-list{border-top:1px solid var(--line)}.recording-row{width:100%;display:grid;grid-template-columns:42px 92px 1fr auto 24px;gap:16px;align-items:center;text-align:left;padding:13px 4px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text);cursor:pointer}.recording-row:hover{background:rgba(217,255,67,.035)}.play{width:34px;height:34px;border:1px solid #394447;border-radius:50%;display:grid;place-items:center;color:var(--signal)}.play svg{width:14px;fill:currentColor;stroke:none;margin-left:2px}.recording-time{font:700 .79rem var(--mono)}.recording-camera{display:flex;flex-direction:column}.recording-camera strong{font-size:.86rem}.recording-camera small{font:400 .65rem var(--mono);color:var(--muted);margin-top:3px}.recording-size{font:400 .68rem var(--mono);color:var(--muted)}.arrow{color:var(--signal)}.empty-state{text-align:center;padding:54px 20px;color:var(--muted)}.empty-state span{font-size:2.8rem;color:#3b4649}.empty-state h3{color:var(--text);margin:12px 0 5px}.empty-state p{margin:0}.video-dialog{width:min(900px,92vw);border:1px solid var(--line);border-radius:var(--radius);padding:0;background:#080b0d;color:var(--text)}.video-dialog::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}.dialog-head{height:54px;display:flex;align-items:center;justify-content:space-between;padding:0 18px}.dialog-head button{font-size:1.7rem;color:var(--muted);background:none;border:0;cursor:pointer}.video-dialog video{display:block;width:100%;max-height:72vh;background:#000}.login-page{overflow:hidden}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.2fr .8fr}.login-visual{position:relative;overflow:hidden;padding:9vh 7vw;display:flex;flex-direction:column;justify-content:flex-end;border-right:1px solid var(--line);background:radial-gradient(circle at 50% 48%,rgba(217,255,67,.08),transparent 34%)}.login-visual>p{font:700 .7rem var(--mono);letter-spacing:.2em;color:var(--signal);z-index:2}.login-visual h1{font-size:clamp(3rem,6vw,6rem);letter-spacing:-.065em;line-height:.92;margin:.15em 0 0;z-index:2}.radar{position:absolute;width:min(60vw,650px);aspect-ratio:1;left:50%;top:43%;transform:translate(-50%,-50%);border:1px solid #1e282a;border-radius:50%}.radar:before,.radar:after,.radar span{content:"";position:absolute;inset:16%;border:1px solid #1e282a;border-radius:50%}.radar:after{inset:33%}.radar span:nth-child(1){inset:50% 0 auto;width:100%;height:1px;border:0;border-radius:0;background:#1e282a}.radar span:nth-child(2){inset:0 auto auto 50%;width:1px;height:100%;border:0;border-radius:0;background:#1e282a}.radar span:nth-child(3){inset:50% auto auto 50%;width:42%;height:1px;border:0;border-radius:0;background:linear-gradient(90deg,var(--signal),transparent);transform-origin:left;transform:rotate(-38deg);box-shadow:0 -12px 40px rgba(217,255,67,.18)}.radar i{position:absolute;width:8px;height:8px;background:var(--signal);border-radius:50%;left:62%;top:36%;box-shadow:0 0 22px var(--signal)}.login-card{padding:10vh clamp(30px,7vw,105px);display:flex;flex-direction:column;justify-content:center;gap:46px}.brand.large .brand-mark{width:39px;height:39px}.brand.large strong{font-size:1.2rem}.login-card h2{font-size:2rem;letter-spacing:-.04em;margin:7px 0}.login-card .muted{font-size:.9rem;max-width:390px}.login-form{display:flex;flex-direction:column;gap:19px}.login-form input{padding:14px}.login-form .primary{margin-top:6px;width:100%;justify-content:space-between;padding:0 18px}.secure-note{color:#697477;font:400 .65rem var(--mono);text-align:center}.secure-note span{color:var(--signal);font-size:.55rem}.notice{border-left:2px solid var(--signal);background:rgba(217,255,67,.06);padding:11px 13px;font-size:.8rem}.notice.error{border-color:var(--danger);background:rgba(255,102,91,.07)}
@media(max-width:850px){.topbar{padding:0 18px;grid-template-columns:1fr auto auto;gap:15px}.topbar nav{gap:20px}.brand small{display:none}main{padding:30px 18px 60px}.camera-grid{grid-template-columns:1fr}.filter-panel{grid-template-columns:1fr 1fr}.filter-panel .primary{grid-column:1/-1}.history-heading>.muted{display:none}.login-shell{grid-template-columns:1fr}.login-visual{display:none}.login-card{padding:12vh 9vw}.timeline-row{grid-template-columns:95px 1fr}.timeline-scale{margin-left:110px}.recording-row{grid-template-columns:38px 78px 1fr 18px}.recording-size{display:none}}
@media(max-width:500px){.topbar{height:68px}.topbar nav{gap:14px}.topbar nav a{font-size:.8rem}.page-heading{align-items:flex-start}.system-state small{display:none}.filter-panel{grid-template-columns:1fr}.filter-panel .primary{grid-column:auto}.timeline-panel,.results{padding:18px 14px}.timeline-row{grid-template-columns:1fr;gap:6px}.timeline-label{flex-direction:row;justify-content:space-between}.timeline-scale{display:none}.recording-row{grid-template-columns:34px 70px 1fr 15px;gap:9px}.recording-camera small{max-width:120px;overflow:hidden;text-overflow:ellipsis}.camera-card footer a{font-size:0}.camera-card footer a span{font-size:1rem}}
@media(prefers-reduced-motion:no-preference){.event,.camera-card,.primary{transition:.18s ease}.camera-card:hover{border-color:#3b474a;transform:translateY(-1px)}}
