@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=Barlow:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#101214;--panel:#191c20;--line:#30343a;--ink:#f0f2ed;--muted:#a0a6ad;--orange:#ff713d;--green:#a4e294}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px Barlow,system-ui,sans-serif}button,input,select{font:inherit}button,a,input,select{outline-offset:4px}a{color:inherit;text-decoration:none}button{cursor:pointer;border:1px solid var(--line);border-radius:6px;background:#282c31;color:var(--ink);padding:12px 16px;font-weight:600}button:hover{border-color:var(--orange)}button:disabled{opacity:.5;cursor:wait}input,select{width:100%;padding:13px;border:1px solid #3a4046;border-radius:6px;background:#121518;color:var(--ink)}label{display:block;margin:20px 0 8px;font-weight:500}h1,h2,p{margin-top:0}h1{font-family:'Barlow Condensed',sans-serif;font-size:42px;font-weight:600;line-height:1.1;margin-bottom:12px}h2{font-size:22px;font-weight:600}header{min-height:88px;padding:20px 4%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.brand{display:flex;gap:13px;align-items:center;font-size:20px;letter-spacing:1px}.brand strong{color:var(--orange)}.brand small{display:block;font-size:9px;color:var(--muted);letter-spacing:3px;margin-top:5px}.brand-icon{display:inline-flex;align-items:center;justify-content:center;background:var(--orange);color:#151719;width:64px;height:64px;font:bold 43px 'Barlow Condensed',sans-serif;border-radius:12px;transform:skew(-6deg)}.brand-icon span{font-size:25px}.brand-icon.small{width:43px;height:43px;font-size:28px;border-radius:8px}nav{display:flex;gap:25px;align-items:center;font-size:13px}.quiet{background:transparent;border-color:transparent;padding:8px}.connection{color:var(--green);font-size:12px}.dashboard{max-width:1700px;margin:auto;padding:36px 4% 0}.page-title{display:flex;justify-content:space-between;gap:25px;margin-bottom:24px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:700;color:var(--orange);margin-bottom:15px}.muted{color:var(--muted);font-size:14px;line-height:1.6}.clock{padding-top:20px;text-align:right}.clock span{font-size:32px;font-variant-numeric:tabular-nums}.clock small{display:block;letter-spacing:2px;font-size:9px;color:var(--muted);margin-top:6px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px}.map-panel,.fleet,.history{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}.panel-header{min-height:58px;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 20px;border-bottom:1px solid var(--line);font-size:14px}.live-dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:10px}#map{height:590px;position:relative;background:#171d21;background-image:linear-gradient(#ffffff04 1px,transparent 1px),linear-gradient(90deg,#ffffff04 1px,transparent 1px);background-size:40px 40px}#track-svg{width:100%;height:100%}#empty-map{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;pointer-events:none}#empty-map p{color:var(--muted);line-height:1.7}.track-symbol{font-size:60px;color:var(--orange);margin-bottom:22px}.map-footer{display:flex;justify-content:space-between;gap:15px;padding:16px 20px;font-size:11px;color:var(--muted);border-top:1px solid var(--line)}.badge{padding:4px 8px;background:#30363a;border-radius:4px;font-size:12px}.vehicle{margin:0 18px;padding:20px 0;border-bottom:1px solid var(--line)}.vehicle:last-child{border:0}.vehicle-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.vehicle h3{font-size:15px;margin:0}.swatch{display:inline-block;width:8px;height:18px;border-radius:3px;margin-right:9px;vertical-align:middle}.state{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--green)}.state.stale{color:#b4b0a8}.metrics{display:flex;justify-content:space-between;align-items:end;margin-top:12px}.speed{font-size:34px;font-family:'Barlow Condensed',sans-serif;font-weight:600}.unit{font-size:11px;color:var(--muted);margin-left:5px}.age{font-size:11px;color:var(--muted);text-align:right;line-height:1.6}.history{margin-top:20px;padding:22px}.history h2{margin-bottom:8px}.button-row{display:flex;gap:5px;margin-top:12px}.button-row button{font-size:12px;padding:11px}.history .eyebrow{font-size:10px}.empty-list{padding:24px 20px;color:var(--muted);font-size:13px}.history #history-status{font-size:12px;margin:12px 0 0}.history input[type=range]{padding:12px 0}footer{padding:24px 0;display:flex;justify-content:space-between;gap:18px;font-size:10px;letter-spacing:1px;color:#92979c}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 75% 10%,#5f382329,transparent 55%),#101214}.login-card{width:min(440px,100%);padding:45px 35px}.login-card .brand-icon{margin-bottom:36px}.login-card h1{font-size:62px}.login-card .primary{display:flex;justify-content:space-between;width:100%;margin-top:25px;background:var(--orange);color:#131719;border:0;padding:16px}.footnote{font-size:11px;color:var(--muted);margin-top:30px;text-align:center}.error{padding:12px;background:#8129294d;border-radius:5px;color:#ffb4a5}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:1000px){.workspace{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.history{margin-top:0}#map{height:500px}}@media(max-width:600px){header{padding:15px 5%}nav{gap:8px}nav>a{display:none}.brand{font-size:16px}.brand small{letter-spacing:1px}h1{font-size:33px}.clock{display:none}.dashboard{padding-top:25px}aside{display:block}.history{margin-top:20px}#map{height:410px}.map-footer{font-size:9px}.connection{max-width:90px}footer{flex-direction:column}}
/* Live map and camera, with the existing track controls in a collapsible right sidebar. */
.workspace{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:18px}.live-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;min-width:0}.video-panel{min-width:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}.video-controls{padding:12px 16px}.video-controls label{font-size:12px;margin:0 0 7px;color:var(--muted)}.video-stage{background:#080a0b;min-height:340px;display:flex;flex-direction:column;justify-content:center;position:relative}.video-stage video{width:100%;max-height:480px;aspect-ratio:16/9;object-fit:contain}.video-stage p{padding:14px 20px;margin:0;color:var(--muted);font-size:13px}.track-sidebar{width:50px}.track-sidebar[open]{width:290px}.track-sidebar summary{cursor:pointer;border:1px solid var(--line);border-radius:8px;padding:16px;list-style:none;font-size:13px;font-weight:600;white-space:nowrap}.track-sidebar summary span{float:right;margin-left:12px}.track-sidebar:not([open]) summary{writing-mode:vertical-rl;padding:16px 12px}.track-sidebar aside{display:block;margin-top:15px}.track-sidebar .history{margin-top:20px}.live-columns #map{height:540px}.video-panel .map-footer{align-items:center}.video-panel .map-footer button{font-size:12px;padding:9px}.dashboard{max-width:2000px;padding-left:3%;padding-right:3%}@media(max-width:1300px){.track-sidebar[open]{width:260px}.live-columns{grid-template-columns:1fr}.live-columns #map{height:460px}.video-stage{min-height:240px}}@media(max-width:700px){.workspace{grid-template-columns:1fr}.track-sidebar,.track-sidebar[open]{width:100%}.track-sidebar:not([open]) summary{writing-mode:horizontal-tb}.live-columns #map{height:380px}.video-stage video{max-height:360px}}
[hidden]{display:none!important}#garage{height:540px;position:relative;background:#101214}#garage img,#garage video{display:block;width:100%;height:100%;object-fit:cover}#garage span{position:absolute;left:18px;bottom:18px;padding:10px 13px;border-radius:6px;background:#101214d9;color:#f0f2ed;font-weight:600;font-size:13px}@media(max-width:1300px){#garage{height:460px}}@media(max-width:700px){#garage{height:380px}}
#video-no-signal{display:block;width:100%;max-height:480px;aspect-ratio:4/3;object-fit:contain}
#video-diagnostics{padding-top:0!important;color:#c7ccd0!important;font-variant-numeric:tabular-nums;font-size:11px!important}
#archive-video-panel{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}#archive-video-panel .eyebrow{margin-bottom:10px}#archive-video{display:block;width:100%;max-height:210px;background:#080a0b;border-radius:6px}#archive-video-status{font-size:12px;margin:9px 0 0}

/* Small screens keep the live map and camera as the whole first view. */
.map-telemetry{display:none}
@media(max-width:700px){
  header{min-height:58px;padding:9px 14px}.brand{gap:9px;font-size:14px}.brand-icon.small{width:34px;height:34px;font-size:22px;border-radius:7px}.brand small{display:none}nav{gap:4px}.connection{max-width:105px;font-size:11px}.quiet{padding:7px 8px}
  .dashboard{padding:10px 10px 0}.page-title{display:none}.workspace{gap:10px}.live-columns{gap:10px}
  .map-panel,.video-panel{position:relative;border-radius:8px}.map-panel .panel-header,.video-panel .panel-header{position:absolute;z-index:500;inset:0 0 auto;height:0;min-height:0;padding:0;border:0;overflow:visible;background:transparent}.map-panel .panel-header>div,.map-panel .panel-header #fit,.video-panel .panel-header strong{display:none}.video-panel .panel-header .badge{position:absolute;right:8px;top:8px;padding:3px 6px;background:#101214cf;font-size:10px}
  .live-columns #map,#garage{height:min(31svh,220px)}#garage span{left:10px;bottom:10px;padding:7px 9px;font-size:11px}.map-footer{display:none}.map-telemetry{position:absolute;z-index:450;left:9px;bottom:9px;display:flex;align-items:baseline;gap:10px;padding:7px 10px;border-radius:6px;background:#101214df;box-shadow:0 2px 12px #0008}.map-telemetry span{font-size:12px;font-weight:600}.map-telemetry strong{font:600 27px/1 'Barlow Condensed',sans-serif}.map-telemetry small{font:11px Barlow,sans-serif;color:var(--muted)}
  .video-controls{position:absolute;z-index:500;right:8px;top:5px;padding:0;width:min(48%,180px)}.video-controls label{display:none}.video-controls select{padding:5px 7px;font-size:10px;background:#101214d9}.video-stage{height:min(31svh,220px);min-height:0}.video-stage video,#video-no-signal{width:100%;height:100%;max-height:none;aspect-ratio:auto}.video-stage p{position:absolute;left:8px;bottom:4px;max-width:calc(100% - 16px);padding:5px 7px;border-radius:4px;background:#101214d9;font-size:10px}.video-stage #video-diagnostics{display:none}.video-panel .map-footer{display:none}
  .track-sidebar,.track-sidebar[open]{width:100%}.track-sidebar summary{display:none}.track-sidebar aside{margin-top:0}.track-sidebar .fleet{display:none}.track-sidebar .history{margin:0;padding:10px;border-radius:8px}.history .button-row{margin-top:7px}.history select{padding:9px;font-size:13px}.history .button-row button{padding:8px 10px}.history #history-status{margin-top:7px}.history .muted{font-size:11px}.history #playback{margin-top:8px}footer{display:none}
}

/* Give the camera the mobile viewport; session controls begin after it. */
@media(max-width:700px){
  .live-columns #map,#garage{height:max(220px,calc(81svh - 56.25vw))}
  .video-panel .panel-header,.video-controls{display:none}
  .video-stage{height:auto;min-height:0;aspect-ratio:16/9}
  .video-stage video,#video-no-signal{height:100%;max-height:none;aspect-ratio:auto}
  #video-no-signal{object-fit:cover}
  .video-stage #video-status{display:none}
  .track-sidebar{margin-top:12px}
}
