:root{scrollbar-gutter:stable;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#eaf1fa;background:#090e17}*{box-sizing:border-box}body{margin:0}main{max-width:1600px;margin:auto;padding:28px}header{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.brand{font-size:12px;font-weight:750;letter-spacing:3px;color:#77ddbc}h1{margin:8px 0;font-size:28px;font-weight:650;letter-spacing:-.8px}.muted,footer{color:#94a3b8;font-size:14px;margin:6px 0}.actions{display:flex;gap:10px;align-items:center}button{background:#182436;border:1px solid #344458;color:#eaf1fa;border-radius:8px;padding:10px 14px;font:inherit;font-size:13px;cursor:pointer}button:hover{background:#23364b}button:focus-visible,input:focus-visible{outline:2px solid #77ddbc;outline-offset:3px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.tile{border:1px solid #283345;border-radius:12px;overflow:hidden;background:#111a28;min-width:0}.head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px}.name{font-size:14px;font-weight:650}.status{font-size:12px;color:#a1aec0;margin-top:3px}.status.live{color:#77ddbc}.screen{position:relative;aspect-ratio:16/9;background:#02050a;min-height:0}video{display:block;width:100%;height:100%;object-fit:contain}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:10px;background:#02050a99;pointer-events:none;color:#bcc9d9;font-size:14px}.overlay[hidden]{display:none}.spinner{width:22px;height:22px;border:2px solid #3a4c60;border-top-color:#77ddbc;border-radius:50%;animation:spin .9s linear infinite}.overlay.offline .spinner{display:none}@keyframes spin{to{transform:rotate(360deg)}}footer{font-size:12px;margin:18px 0 0}#viewer:fullscreen{width:100%;max-width:none;height:100%;padding:16px;background:#090e17;display:flex;flex-direction:column}#viewer:fullscreen header{margin-bottom:12px}#viewer:fullscreen h1{font-size:20px}#viewer:fullscreen .muted,#viewer:fullscreen footer{display:none}#viewer:fullscreen .grid{flex:1;min-height:0;grid-template-rows:repeat(2,minmax(0,1fr))}#viewer:fullscreen .tile{display:flex;flex-direction:column}#viewer:fullscreen .screen{flex:1;aspect-ratio:auto}.tile:fullscreen{display:flex;flex-direction:column;background:#090e17}.tile:fullscreen .screen{flex:1;aspect-ratio:auto}.login{min-height:100svh;display:grid;place-items:center;padding:24px}.login-card{width:100%;max-width:420px;background:#111a28;border:1px solid #283345;border-radius:18px;padding:36px}.login h1{font-size:25px;margin-top:20px}.login form{margin-top:28px}label{display:block;margin:18px 0 8px;font-size:13px}input{width:100%;padding:12px;border:1px solid #344458;border-radius:8px;background:#090e17;color:#eaf1fa;font:inherit}.primary{width:100%;background:#77ddbc;color:#082a22;border:0;font-weight:700;margin-top:12px}.primary:hover{background:#9be7d0}.error{color:#ffa69e;font-size:13px;margin-top:14px;min-height:18px}.fine{font-size:11px;color:#718198;margin:26px 0 0}@media(max-width:680px){main{padding:16px}header{align-items:flex-start;flex-direction:column}h1{font-size:24px}.grid{grid-template-columns:1fr}.actions{width:100%;justify-content:space-between}.head{padding:10px}#viewer:fullscreen .grid{grid-template-columns:repeat(2,minmax(0,1fr))}#viewer:fullscreen header{flex-direction:row}#viewer:fullscreen .brand{display:none}#viewer:fullscreen .head{flex-wrap:wrap;font-size:11px}#viewer:fullscreen .head button{padding:5px}#viewer:fullscreen .actions{width:auto}.login-card{padding:26px}}

.quality{font-size:11px;color:#94a3b8;margin-top:3px}

[hidden],.tile[hidden]{display:none!important}.grid.single{grid-template-columns:1fr;grid-template-rows:1fr!important}.actions{flex-wrap:wrap}select{background:#111a28;color:#eaf1fa;border:1px solid #344458;border-radius:8px;padding:9px;font:inherit;font-size:13px}.transport{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:12px;margin:12px 0}.transport input{width:auto;padding:8px;font-size:13px}#archive-time{width:100px}.timeline-row{display:grid;grid-template-columns:140px 1fr;gap:8px;align-items:center;font-size:12px}.timeline-row svg{display:block;min-width:0;width:100%;height:26px;background:#172235;cursor:crosshair}.timeline-row rect{fill:#3b9c7e}.timeline-row .cursor{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke}#archive-error{color:#ffb3a8;font-size:13px}#storage-panel{padding:20px;border:1px solid #344458;margin-top:16px}#storage-summary{font-size:13px;line-height:1.8}#quota-gb{max-width:180px;margin:0 10px 10px 0}#quota-confirm{color:#ffb3a8}.recording-retry{display:none;margin:6px}.playback-mode .recording-retry{display:block;align-self:flex-end}button[aria-pressed=true]{border-color:#77ddbc}#viewer:fullscreen #playback-controls{flex-shrink:0}#viewer:fullscreen .grid.single{grid-template-rows:1fr}#viewer:fullscreen #storage-panel{overflow:auto;max-height:35vh}@media(max-width:680px){.timeline-row{grid-template-columns:105px 1fr}.transport{gap:5px}.transport button{padding:7px}.actions{justify-content:flex-start}.transport span{font-size:11px}}

/* Shared APP navigation; the existing viewer remains the fullscreen root. */
.brand-logo{display:block;width:100%;height:auto;object-fit:contain}
.login-card .brand-logo{max-width:300px;margin:0 0 28px}
.app-shell{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:100svh}
.sidebar{position:sticky;top:0;height:100svh;padding:30px 16px 20px;background:#101828;border-right:1px solid #283345;display:flex;flex-direction:column;gap:32px}
.sidebar .brand-logo{margin:4px 0 12px}
.sidebar nav{display:grid;gap:8px}
.sidebar nav button{text-align:left;padding:13px 16px;background:transparent;border-color:transparent;font-size:14px}
.sidebar nav button:hover{background:#18273c}
.sidebar nav button[aria-current=page]{background:#193354;border-color:#275c98;color:#dcecff;box-shadow:inset 3px 0 #087bff}
.sidebar-footer{margin-top:auto}.sidebar-footer button{width:100%}
.app-shell #viewer{min-width:0;max-width:none;width:100%;margin:0;padding:20px 24px}
.app-shell header{margin-bottom:18px;gap:16px;flex-direction:row;align-items:center}
.view-heading{display:flex;align-items:center;gap:12px}
.view-heading h1{font-size:22px;letter-spacing:-.4px;margin:0}
.app-shell .actions{width:auto;justify-content:flex-end}
#storage-panel{margin:0;max-width:850px;border-radius:12px;background:#111a28}
#storage-panel h2{margin:0 0 20px;font-size:19px}
.mobile-menu{display:none}
.app-shell #viewer:fullscreen{padding:14px}
#viewer:fullscreen .mobile-menu{display:none}
#sidebar-backdrop{position:fixed;inset:0;z-index:19;background:#0009;border:0;border-radius:0}
@media(max-width:760px){
 .app-shell{display:block}
 .sidebar{position:fixed;left:0;top:0;width:220px;z-index:20;transform:translateX(-100%);visibility:hidden}
 .menu-open .sidebar{transform:translateX(0);visibility:visible}
 .mobile-menu{display:inline-block}
 .sidebar .brand-logo{margin:0}
 .sidebar{gap:20px}
 .app-shell #viewer{padding:14px 12px}
 .app-shell header{flex-wrap:wrap;gap:12px}
 .app-shell .actions{margin-left:auto;gap:6px}
 .app-shell .actions button{padding:9px}
 .view-heading h1{font-size:20px}
 .timeline-row{grid-template-columns:95px minmax(0,1fr)}
 #archive-date{max-width:145px}
 .transport{gap:6px}
}
