/* 482 vOG monitor only: dense operations layout with touch-sized controls. */
:root{--ops-bg:#080f14;--ops-panel:#101c24;--ops-line:#2a414e;--ops-blue:#58c7ff;--ops-muted:#91a8b6}
body{padding:8px;background:var(--ops-bg)}
main{max-width:1920px}
.console-titlebar{padding:5px 10px;font-size:10px;letter-spacing:.08em;border-color:var(--ops-line)}
.vog-status{padding:10px;background:#0b141b;border-color:var(--ops-line);font:12px/1.4 Arial,sans-serif}
.monitor-heading{display:flex;align-items:baseline;justify-content:space-between;gap:6px 16px;flex-wrap:wrap;margin-bottom:10px}
.vog-status .monitor-heading h2{font:700 20px/1.2 Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase;margin:0}
.vog-status .monitor-heading .vog-status-intro{font:10px/1.4 Consolas,monospace;color:var(--ops-muted);margin:0;padding:0;border:0}
.map-layout-bar{margin:0 0 6px;font:10px/1.3 Consolas,monospace;letter-spacing:.08em}
.vog-status .vogQuickLinks .vogPortalStatus{gap:8px;min-height:0;font:12px/1.4 Consolas,monospace}
.vog-status .vogQuickLinks .vogPortalStatus [data-server]{min-height:0;padding:9px 11px;background:var(--ops-panel);border:1px solid var(--ops-line);border-top:2px solid #476a7b;justify-content:flex-start;align-content:flex-start;gap:4px 10px}
.vog-status .vogQuickLinks .vogPortalStatus [data-server].online{border-top-color:#67c9a3}
.vog-status .vogQuickLinks .vogPortalStatus .portal-body{gap:4px 10px;padding:0}
.vog-status .vogQuickLinks .vogPortalStatus .name{font:700 17px/1.2 Consolas,monospace;color:#e3f2fa}
.vog-status .vogQuickLinks .vogPortalStatus .state{font-size:10px;letter-spacing:.05em}
.vog-status .vogQuickLinks .vogPortalStatus .online .state{color:#81d9b2}
.vog-status .vogQuickLinks .vogPortalStatus .detail{font-size:10px;color:var(--ops-muted)}
.vog-status .vogQuickLinks .vogPortalStatus .portal-mission{font-size:11px;line-height:1.45;color:#d2e0e9;text-align:left;margin:2px 0}
.vog-status .vogQuickLinks .vogPortalStatus .portal-wx{font-size:10px;line-height:1.5;color:#a9bfcc;text-align:left}
.vog-status .vogQuickLinks .vogPortalStatus .portal-pilots{font-size:11px;line-height:1.4;text-align:left;padding-top:5px;margin-top:5px;border-top:1px solid var(--ops-line)}
.vog-status .vogQuickLinks .vogPortalStatus .portal-crew{flex:0;padding:3px 0;text-align:left;justify-content:flex-start;line-height:1.4;font-size:10px}
.vog-status .vogQuickLinks .vogPortalStatus .portal-pulse{display:none}
.vog-status .monitor-pilot-overview{margin:4px 0 0;padding:4px 0 0;gap:4px;font-size:10px;line-height:1.3}
.monitor-pilot-overview .pilot-metric{padding:2px 5px;background:#142731;border-color:#294450}
.monitor-restart{margin:4px 0 0;padding-top:4px;border-top:1px solid var(--ops-line);font:10px/1.5 Consolas,monospace;color:#b6c9d5}
.monitor-atis{font-size:10px}.monitor-atis summary{padding:3px 0;cursor:pointer}.monitor-atis p{margin:4px 0}
.monitor-map-view{padding:8px;background:#0d1921;border-color:var(--ops-line)}
.monitor-map-view[data-map-server=combined]{margin-top:8px}
.map-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;flex-wrap:wrap;margin-bottom:5px}
.monitor-map-view .map-panel-heading h3{font:700 11px/1.4 Consolas,monospace!important;letter-spacing:.09em;color:#b6d9e9!important;margin:0!important}
.map-health{margin:0;gap:4px;font-size:9px;line-height:1.3}
.map-health span{padding:2px 5px;background:#0b171e}
.map-controls{gap:5px 8px;margin-bottom:6px;align-items:center;font-size:10px}
.map-controls label{gap:4px;min-width:0}
.map-controls select,.vog-status button,.vog-status .vog-event-filters input,.vog-status .vog-event-filters select{min-height:30px;padding:4px 7px;border:1px solid #355263;background:#142732;font:11px/1.3 Arial,sans-serif;color:#dceaf2;max-width:100%}
.map-controls select{max-width:165px}.map-controls input[type=checkbox]{accent-color:var(--ops-blue)}
.map-layers{position:relative;font-size:10px}.map-layers summary{cursor:pointer;min-height:30px;padding:6px 9px;border:1px solid #355263;background:#142732;color:#dceaf2;box-sizing:border-box}
.map-layers[open]{flex-basis:100%}.map-layers[open] summary{width:fit-content;color:var(--ops-blue)}
.map-layer-options{display:flex;flex-wrap:wrap;gap:4px 14px;padding:5px 0}.map-layer-options label{min-height:28px}
.map-canvas{height:clamp(340px,48vh,600px);border:1px solid #273d49}
[data-map-server=combined] .map-canvas{height:clamp(400px,64vh,760px)}
.map-roster{margin-top:5px}.map-roster table{font:10px/1.4 Consolas,monospace}
.map-roster th,.map-roster td{padding:5px 6px;border-color:#263b48}.map-roster th{font-size:9px;color:#92b2c4;text-transform:uppercase;letter-spacing:.035em}
.map-roster p{font-size:11px;margin:5px 0;color:var(--ops-muted)}
.map-copy{margin-top:3px}.map-details{margin-top:2px;font-size:10px}.map-details summary{padding:4px 0}.map-feed-note{min-height:0;margin:4px 0}
.vog-status .vog-status-footer{margin-top:8px;gap:10px;font-size:10px}
.vog-status .vog-status-history{padding:9px;margin-top:9px;border-color:var(--ops-line);background:var(--ops-panel)}
.vog-status .vog-status-history h3{font:700 12px/1.3 Consolas,monospace;margin:0 0 5px;text-transform:uppercase;letter-spacing:.06em}
.vog-status .vog-event-filters{margin:6px 0;gap:5px}
.vog-status .monitor-activity{margin:5px 0;padding:4px 7px;font:10px/1.4 Consolas,monospace;border-left:2px solid var(--ops-blue);background:#142630;color:#b4d9e9!important}
.vog-status .vog-event-list{gap:4px;margin:6px 0;grid-template-columns:repeat(2,minmax(0,1fr))}
.vog-status .vog-event-list>li{padding:6px 9px;font:11px/1.4 Consolas,monospace;background:#0e1921;border-color:#263c49}
.vog-status .vog-event-list strong{font:600 12px/1.4 Arial,sans-serif;margin-bottom:2px}
.vog-status .vog-status-time{font-size:10px;line-height:1.4;margin:3px 0}
.flight-duration{font-size:10px;line-height:1.3;margin-top:3px;padding:2px 5px}
.vog-status summary:focus-visible,.vog-status button:focus-visible,.vog-status select:focus-visible{outline:2px solid var(--ops-blue);outline-offset:2px}
.vog-status .map-layers{padding:0;border:0}
.vog-status .map-details{padding-top:2px;border-top:1px solid var(--ops-line)}
.vog-status .monitor-restart{flex-basis:auto;margin:3px 0;padding-top:4px}
.vog-status .vogQuickLinks .vogPortalStatus .portal-pilots{margin:4px 0 0}
.vog-status .vogQuickLinks .vogPortalStatus .portal-crew{margin:0}
.vog-status .map-feed-note{margin:4px 0}
.vog-status .map-basemap-note{margin:4px 0}
@media(max-width:1100px){
 .map-roster table{min-width:0}.map-roster thead{display:none}.map-roster tbody{display:block}.map-roster tr{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--ops-line);padding:3px 0;gap:3px 6px}
 .map-roster td{display:block;min-width:0!important;max-width:none!important;border:0;padding:3px 0}.map-roster td::before{content:attr(data-label);display:block;font:9px/1.4 Arial,sans-serif;text-transform:uppercase;color:#87a7b9;margin-bottom:2px}
}
@media(max-width:700px){
 body{padding:4px}.vog-status{padding:6px}.console-titlebar{padding:5px 7px}.vog-status .monitor-heading h2{font-size:17px}.monitor-heading{margin-bottom:7px}
 .vog-status .vogQuickLinks .vogPortalStatus{grid-template-columns:minmax(0,1fr);gap:6px}
 .vog-status .vogQuickLinks .vogPortalStatus [data-server]{padding:8px;min-height:0}
 .vog-status .vogQuickLinks .vogPortalStatus .detail{flex-basis:auto;text-align:left}
 .monitor-map-view{padding:6px}.map-controls{gap:5px 8px}.map-controls label{font-size:10px}
 .map-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}
 .map-controls>label{display:flex;flex-direction:column;align-items:stretch;gap:2px}.map-controls>label select{max-width:100%;width:100%;min-width:0}
 .map-layers[open]{grid-column:1/-1}.map-layers summary{width:100%}
 .map-controls select{max-width:145px}.map-canvas,[data-map-server=combined] .map-canvas{height:380px;height:clamp(300px,48svh,460px)}
 .vog-status .vog-event-list{grid-template-columns:1fr}.vog-status .vog-status-history{padding:7px}.vog-status .vog-event-filters{gap:6px}
 .map-layers summary,.vog-status button,.map-controls select,.vog-status .vog-event-filters input,.vog-status .vog-event-filters select{min-height:36px}.map-layers summary{padding:9px}
 .map-layer-options{gap:3px 12px}.map-layer-options label{min-height:36px}
}
@media(pointer:coarse){.vog-status button,.map-controls select,.map-layers summary,.map-layer-options label{min-height:44px}.map-layers summary{padding-top:12px}}
