:root { --deck-sidebar: 328px; }
.topbar { gap:var(--sp-5); padding:var(--sp-5) var(--sp-7); }
.brand h1 { font-size:var(--fs-num); }
.topstatus { gap:var(--sp-3); }
.viewtabs button,.topstatus>.btn { text-transform:none; letter-spacing:0; font-size:var(--fs-sm); min-height:40px; }
.ticker { display:none; }
#livePill { letter-spacing:.06em; }
.layout--airport { grid-template-columns:390px minmax(0,1fr); }
.airport-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--sp-6); }
.airport-heading h2 { border:0; margin:var(--sp-2) 0 0; padding:0; font-size:var(--fs-num); text-transform:none; letter-spacing:0; }
.airport-code { font-size:var(--fs-num); color:var(--text-dim); }
.airport-summary #dubStrip { font-size:var(--fs-sm); line-height:var(--lh-base); color:var(--text-dim); border-left:0; padding:var(--sp-3) 0; background:transparent; }
.airport-summary .status-head { flex-wrap:wrap; }
.airport-summary #dubSub { font-size:var(--fs-micro); }
.dub-stats { gap:var(--sp-3); }
.dub-stat { cursor:pointer; text-align:left; color:var(--text-dim); font:inherit; background:transparent; border:0; border-top:1px solid var(--line); border-radius:0; padding:var(--sp-5) 0; min-height:68px; }
.dub-stat b { font-size:var(--fs-num); }
.dub-stat[aria-pressed=true] { border-top-color:var(--accent); background:var(--bg-raise); }
.dub-stat:hover { background:var(--bg-raise); }
.board-controls input { min-height:42px; font-size:var(--fs-sm); }
#dubFilter button,#dubSort button { text-transform:none; letter-spacing:0; font-size:var(--fs-sm); min-height:38px; }
.filter-context { display:flex; gap:var(--sp-3); align-items:center; justify-content:space-between; font-size:var(--fs-sm); color:var(--muted); margin-bottom:var(--sp-3); }
.filter-context .btn { min-height:34px; flex-shrink:0; }
.board .row-flight { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:var(--sp-3); padding:var(--sp-5) var(--sp-3); }
.board .f-call { font-size:var(--fs-base); }
.board .f-sub { font-size:var(--fs-sm); text-transform:none; line-height:1.6; }
.board .f-mid { text-align:right; font-size:var(--fs-sm); }
.board .f-right { grid-column:1 / -1; display:flex; gap:var(--sp-3); justify-content:space-between; font-size:var(--fs-sm); border-top:1px solid var(--line); padding-top:var(--sp-2); }
.board .f-right b { font-size:var(--fs-sm); font-weight:400; }
.state-pill { letter-spacing:.04em; }
.map-view-switch { position:absolute; right:var(--sp-5); top:var(--sp-5); z-index:600; }
.map-view-switch .btn { background:var(--bg); min-height:44px; font-size:var(--fs-base); text-transform:none; letter-spacing:0; }
.dubmain { grid-template-rows:minmax(300px,1.2fr) minmax(220px,.8fr); }
.selected-card { overflow:auto; }
.selected-card:not(.is-empty) #dubSelHead { display:none; }
.selected-card:not(.is-empty)>h2 { margin-bottom:var(--sp-3); }
.selected-card.is-empty .flight-details { display:none; }
.flight-summary-heading { display:flex; gap:var(--sp-4); justify-content:space-between; align-items:start; }
.flight-summary h3 { margin:var(--sp-2) 0 0; font-size:var(--fs-num); color:var(--text); }
.flight-summary[data-phase=arr] [data-field=phase] { color:var(--accent); }
.flight-summary[data-phase=dep] [data-field=phase] { color:var(--live); }
.flight-fix { color:var(--muted); font-size:var(--fs-sm); text-align:right; }
.flight-type { color:var(--text-dim); margin:var(--sp-3) 0; font-size:var(--fs-base); }
.flight-route { margin:var(--sp-3) 0; color:var(--muted); font-size:var(--fs-sm); }
.flight-telemetry { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--sp-5); padding:var(--sp-5) 0; margin:var(--sp-5) 0; border-block:1px solid var(--line); }
.flight-telemetry span { display:block; font-size:var(--fs-sm); color:var(--muted); }
.flight-telemetry strong { display:block; margin-top:var(--sp-2); font-size:var(--fs-lg); font-weight:500; white-space:nowrap; }
.flight-selection-note { color:var(--muted); font:var(--fs-sm)/var(--lh-base) var(--font-prose); }
.flight-actions { display:flex; gap:var(--sp-3); flex-wrap:wrap; margin:var(--sp-5) 0; }
.flight-actions .btn { min-height:44px; text-transform:none; letter-spacing:0; font-size:var(--fs-sm); }
.flight-primary { background:var(--accent); color:var(--bg); border-color:var(--accent); font-weight:700; }
.flight-primary:disabled { background:transparent; color:var(--muted); border-color:var(--line); }
.flight-details { margin-top:var(--sp-5); border-top:1px solid var(--line); }
.flight-details summary { cursor:pointer; min-height:44px; padding:var(--sp-5) 0; color:var(--text-dim); font-size:var(--fs-sm); }
.layout--sky { grid-template-columns:var(--deck-sidebar) minmax(0,1fr); min-height:0; }
.sky-side { min-height:0; min-width:0; border:1px solid var(--line-strong); border-radius:var(--r); padding:var(--sp-6); overflow:auto; }
.sky-side-head { display:flex; align-items:center; justify-content:space-between; gap:var(--sp-5); }
.sky-side-head h2 { margin:var(--sp-3) 0; font-size:var(--fs-lg); }
.sky-side-head>strong { font-size:var(--fs-num); font-weight:500; }
.flightdeck-status { color:var(--muted); font-size:var(--fs-sm); line-height:1.6; margin:var(--sp-3) 0 var(--sp-5); }
[data-feed=live] .flightdeck-status { color:var(--live); }
.sky-side input,.sky-side select,.sky-setting select { min-height:44px; background:var(--bg-sunk); border:1px solid var(--line-strong); border-radius:var(--r); color:var(--text); padding:var(--sp-3); font:var(--fs-sm) var(--font-mono); min-width:0; }
#skySearch { width:100%; }
.sky-query-controls { display:flex; gap:var(--sp-3); margin-top:var(--sp-3); }
#skyPhase { flex:1; }
.sky-flight-list { max-height:320px; overflow:auto; border-block:1px solid var(--line); }
.sky-flight { display:block; width:100%; min-height:80px; background:transparent; border:0; border-bottom:1px solid var(--line); border-left:2px solid transparent; padding:var(--sp-5) var(--sp-3); color:var(--text); text-align:left; font:var(--fs-sm)/1.5 var(--font-mono); cursor:pointer; }
.sky-flight:hover,.sky-flight[aria-pressed=true] { background:var(--bg-raise); }
.sky-flight[aria-pressed=true] { border-left-color:var(--accent); }
.sky-flight-title { display:flex; justify-content:space-between; gap:var(--sp-3); align-items:baseline; }
.sky-flight-title strong { font-size:var(--fs-base); }
.sky-flight-title>span { color:var(--muted); font-size:var(--fs-sm); }
.sky-flight[data-phase=arr] .sky-flight-title>span { color:var(--accent); }
.sky-flight[data-phase=dep] .sky-flight-title>span { color:var(--live); }
.sky-flight-type,.sky-flight-data { display:block; color:var(--text-dim); margin-top:var(--sp-1); overflow-wrap:anywhere; }
.sky-flight-data { color:var(--muted); }
.sky-list-empty { font:var(--fs-base)/1.6 var(--font-prose); color:var(--muted); padding:var(--sp-5) 0; }
.sky-inspector { margin-top:var(--sp-6); }
.sky-inspector .flight-telemetry { grid-template-columns:repeat(2,minmax(0,1fr)); }
.sky-inspector .flight-fix { max-width:110px; }
.sky-dossier { position:static; width:auto; max-width:none; max-height:none; overflow:visible; border:0; padding:0; background:transparent; }
.flightdeck-caveat { font:var(--fs-sm)/1.6 var(--font-prose); color:var(--muted); border-top:1px solid var(--line); margin:var(--sp-5) 0 0; padding-top:var(--sp-5); }
.sky-stage { display:grid; grid-template-rows:minmax(300px,1fr) auto; min-width:0; min-height:0; gap:var(--sp-3); }
.sky-stage .skywrap { height:auto; min-height:300px; }
.sky-stage .sky3d { height:100%; min-height:0; }
.sky-tools { position:static; display:block; border:1px solid var(--line-strong); border-radius:var(--r); padding:var(--sp-5); max-height:42vh; overflow:auto; }
.sky-camera-controls { display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-3); }
.sky-tools .seg button,.sky-tools .btn { min-height:44px; font-size:var(--fs-sm); text-transform:none; letter-spacing:0; }
.sky-tools .seg { min-height:44px; }
.sky-settings { margin-top:var(--sp-3); border-top:1px solid var(--line); }
.sky-settings summary { cursor:pointer; min-height:44px; padding:var(--sp-5) 0; font-size:var(--fs-sm); color:var(--text-dim); }
.sky-settings-body { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-5); }
.sky-layer-controls { grid-column:1 / -1; display:flex; flex-wrap:wrap; gap:var(--sp-3); }
.sky-setting { display:flex; flex-direction:column; gap:var(--sp-2); font-size:var(--fs-sm); color:var(--text-dim); }
.sky-range { grid-column:1 / -1; margin:0; font-size:var(--fs-sm); letter-spacing:0; text-transform:none; flex-wrap:wrap; width:auto; justify-content:flex-start; }
.sky-range input { flex:1; min-height:44px; min-width:100px; }
.sky-range output { min-width:0; }
.sky-settings-body>p { grid-column:1 / -1; margin:0; font-family:var(--font-prose); }
.sky-control-note { display:flex; justify-content:space-between; gap:var(--sp-5); flex-wrap:wrap; font-size:var(--fs-sm); color:var(--muted); margin:var(--sp-3) 0 0; }
.sky-hud { top:var(--sp-5); left:var(--sp-5); max-width:calc(100% - 160px); }
.sky-hud__title { letter-spacing:.08em; }
.sky-hud__stat { max-width:100%; font-size:var(--fs-sm); line-height:1.5; white-space:normal; border:0; background:var(--bg); padding:var(--sp-3); }
.sky-live-dot { animation:none; }
[data-feed]:not([data-feed=live]) .sky-live-dot { background:var(--muted); }
.sky-orientation { position:absolute; top:var(--sp-5); right:var(--sp-5); z-index:4; display:flex; align-items:center; gap:var(--sp-5); background:var(--bg); padding:var(--sp-3); font-size:var(--fs-sm); color:var(--text-dim); pointer-events:none; }
#skyNorth { display:inline-block; min-width:34px; text-align:center; color:var(--text); }
.sky-legend { top:auto; right:auto; bottom:var(--sp-5); left:var(--sp-5); max-width:calc(100% - 24px); display:flex; flex-wrap:wrap; gap:var(--sp-5); background:var(--bg); border:0; padding:var(--sp-3); font-size:var(--fs-sm); text-transform:none; letter-spacing:0; pointer-events:none; }
.sky-legend #skyScaleNote { flex-basis:100%; font-size:var(--fs-sm); color:var(--muted); }
.sky-label { font-size:var(--fs-sm); letter-spacing:0; }
#layoutSky:fullscreen { height:100dvh; padding:var(--sp-5); background:var(--bg); }
@media(min-width:1101px) { .layout--airport .card--grow { min-height:360px; } }
@media(max-width:1100px) { .layout--airport { display:flex; } .layout--sky { --deck-sidebar:280px; } .sky-side { padding:var(--sp-5); } .sky-legend { gap:var(--sp-3); } .sky-orientation #skyCameraMode { display:none; } .sky-hud { max-width:calc(100% - 90px); } }
@media(max-width:760px) {
  .topbar { padding:var(--sp-5); }
  .topstatus { width:100%; justify-content:space-between; }
  .viewtabs { order:0; }
  #livePill { font-size:var(--fs-micro); }
  .brand .sub { white-space:normal; }
  .layout--sky { display:flex; flex-direction:column; height:auto; }
  .sky-stage { order:0; display:block; }
  .sky-stage .skywrap { height:55dvh; min-height:340px; }
  .sky-tools { margin-top:var(--sp-3); max-height:none; }
  .sky-side { order:1; overflow:visible; }
  .sky-flight-list { max-height:300px; }
  .sky-inspector .flight-telemetry { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .sky-camera-controls { gap:var(--sp-2); }
  #skyPreset { display:flex; width:100%; }
  #skyPreset button { flex:1; padding-inline:var(--sp-3); }
  .sky-control-note { display:none; }
  .sky-legend { font-size:var(--fs-sm); }
  .sky-hud__title { font-size:var(--fs-micro); }
  .sky-settings-body { grid-template-columns:minmax(0,1fr); }
  .sky-setting { grid-column:1 / -1; }
  .flight-telemetry { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .map-view-switch .btn { font-size:var(--fs-sm); }
  .selected-card { overflow:visible; }
  #layoutSky:fullscreen { overflow:auto; }
}
@media(pointer:coarse) { #dubFilter button,#dubSort button,.filter-context .btn,.topstatus>.btn,.viewtabs button { min-height:44px; } }

.sky-legend { flex-direction:row; align-items:center; width:max-content; }

.topbar .consent-banner { position:static; flex:1 0 100%; max-width:none; margin:0; border:0; border-top:1px solid var(--line); border-radius:0; padding:var(--sp-3) 0 0; background:var(--bg); align-items:center; }
.consent-banner__body { display:flex; gap:var(--sp-5); align-items:baseline; }
.consent-banner__label { margin:0; }
.consent-banner__copy { font-family:var(--font-prose); max-width:850px; }
.consent-banner__actions .btn { min-height:44px; text-transform:none; letter-spacing:0; }
@media(max-width:760px) { .consent-banner__body { display:block; } .consent-banner__label { display:none; } .consent-banner__copy { font-size:var(--fs-sm); } .topbar .consent-banner { flex-wrap:nowrap; } .consent-banner__actions { flex-direction:column; gap:var(--sp-1); } .sky-legend { gap:var(--sp-3); } }

.airport-heading h2 { color:var(--text); }
.airport-summary #dubSub { display:none; }
.airport-heading { margin-bottom:var(--sp-3); }
.airport-summary .dub-stat { min-height:58px; padding:var(--sp-3) 0; }
#dubFilter { flex-wrap:nowrap; }
#dubFilter button { padding-inline:var(--sp-2); flex:1; }
@media(max-width:760px) { .topstatus { display:grid; grid-template-columns:1fr auto auto; } .viewtabs { grid-column:1 / -1; } #livePill { min-width:0; letter-spacing:0; } .topstatus>.btn { font-size:var(--fs-sm); padding-inline:var(--sp-3); } }

.aircraft-illustration { display:block; width:46px; height:46px; flex:none; color:var(--text-dim); }
.aircraft-illustration svg { width:100%; height:100%; }
.flight-summary-heading>div { flex:1; min-width:0; }
.flight-summary-heading { flex-wrap:wrap; }
.board-aircraft-symbol { display:inline-block; width:22px; height:22px; vertical-align:middle; margin-right:var(--sp-3); color:var(--text-dim); }
.board-aircraft-symbol svg { width:100%; height:100%; }
.map-view-switch { display:flex; gap:var(--sp-3); }
.map-path-tools { position:absolute; top:64px; right:var(--sp-5); z-index:600; display:flex; flex-wrap:wrap; gap:var(--sp-3); align-items:center; max-width:370px; background:var(--bg); padding:var(--sp-3); border:1px solid var(--line-strong); border-radius:var(--r); }
.map-path-tools .btn { min-height:44px; text-transform:none; letter-spacing:0; font-size:var(--fs-sm); }
.map-path-tools .btn[aria-pressed=true] { border-color:var(--accent); color:var(--accent); }
#dubMotionNote { display:block; flex-basis:100%; color:var(--muted); font-size:var(--fs-sm); line-height:var(--lh-base); }
.dub-marker[data-position-kind=held] { opacity:0.65; }
@media(max-width:760px) { .map-view-switch { gap:var(--sp-2); } .map-path-tools { max-width:calc(100% - 64px); top:64px; } .map-view-switch .btn { padding-inline:var(--sp-3); } .sky-camera-controls #skySoloBtn { flex:1; } }
