/* Scene UI shares the solar theme applied before first paint and by previews.
   Load after component sheets to preserve each airport's component layouts. */
:root{
 color-scheme:light;
 --text:#253544;--muted:#526779;--accent:#245f91;--bg:#f2f6fa;--border:#c7d3df;
 --panel:#f8fafdf5;--panel-solid:#f8fafd;--panel-shadow:#10223820;
 --hover:#245f9110;--selected:#245f911a;--field:#eaf0f6;--on-accent:#ffffff;
 --disclosure:#344e65;--teal:#1f696c;--commuter:#12638a;--express:#79418b;
 --arrival:#765a2c;--boarding:#346549;--warning:#86591c;
 --select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23344e65' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
:root.night{
 color-scheme:dark;
 --text:#eef2f7;--muted:#a4b2c2;--accent:#b9d9f6;--bg:#101a2b;--border:#3d4c60;
 --panel:#172333f5;--panel-solid:#172333;--panel-shadow:#060e1940;
 --hover:#b9d9f612;--selected:#b9d9f624;--field:#24364a;--on-accent:#22384e;
 --disclosure:#ffffff;--teal:#a8dfdf;--commuter:#9fdcf4;--express:#e2b5ed;
 --arrival:#d4c9b4;--boarding:#c5d3c9;--warning:#f0ca89;
 --select-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
html,body{background:var(--bg)}
.glass,.bottom-bar.operations-bar,.boarding-announcement,#toast{
 background:var(--panel);border-color:var(--border);box-shadow:0 8px 35px var(--panel-shadow);
}
.airport-back{color:var(--text)}
.airport-back small,.search input::placeholder{color:var(--muted)}
.airport-back:hover{background:var(--field);color:var(--accent)}
.airport-back:focus-visible{outline-color:var(--accent)}
.search-dialog{background:var(--panel-solid)}
.search-dialog::backdrop{background:var(--bg)}
dialog::backdrop{background:#101d2c80}
.search-results button:hover,.search-dialog .search-results button:hover,
.scene-tools button:hover,.scene-tools button.active,.operation-row:hover,
.metro-station-row:hover,.metro-train-row:hover,#operations-toggle:hover,
.flight-detail .detail-close:hover,.flight-detail .detail-collapse:hover{background:var(--hover)}
.layer-panel label,.operation-empty,.boarding-announcement #announcement-text{color:var(--text)}
.operations-disclaimer{color:var(--muted)}
.segmented,.detail .identity-note,.metro-platform-plan{background:var(--field)}
.segmented button.active,.playback .play-button,.detail-actions .primary{background:var(--accent);color:var(--on-accent)}
.detail-actions button,#stop-follow,.metro-options button,.airline-tail-badge,
.flight-row .airline-dot{background:var(--hover)}
.detail-actions .primary{background:var(--accent)}
.detail-tag,.runway-chip{border-color:var(--border)}
.operation-icon{color:var(--accent);border-color:var(--border);background:var(--hover)}
.arrival-icon{color:var(--arrival)}.boarding-icon{color:var(--boarding)}
.boarding-audio-controls button.active,.operation-row.announcing strong,.stand-state{color:var(--accent)}
.boarding-audio-controls button.active{background:var(--hover);border-color:var(--accent)}
.boarding-audio-controls select{background-color:var(--field)}
.operation-row.announcing,.flight-row.selected,.boarding-row.selected,
.terminal-nav button.active{background:var(--selected)}
.operation-events{scrollbar-color:var(--muted) transparent}
.dot{box-shadow:0 0 8px var(--selected)}.dot.offline{background:var(--warning)}
.glass .chevron,.glass .detail-collapse,.glass #operations-toggle{
 color:var(--disclosure);-webkit-text-fill-color:var(--disclosure);
}
.glass .chevron svg,.glass .detail-collapse svg,.glass #operations-toggle svg{
 color:var(--disclosure);stroke:var(--disclosure);
}
.glass summary::before{border-color:var(--disclosure)}
.metro-quality,.metro-station-row>b,.metro-destination{color:var(--teal)}
.metro-options input{accent-color:var(--teal)}
.metro-kind.commuter,.metro-plan-platform.commuter,.metro-plan-track>b.commuter{color:var(--commuter)}
.metro-kind.express,.metro-plan-platform.express,.metro-plan-track>b.express{color:var(--express)}
.metro-plan-platform{border-color:var(--border);background:var(--hover)}
.metro-plan-track{border-bottom-color:var(--border)}
.metro-plan-track>b{background:var(--selected)}
/* Status labels remain legible over the daytime terrain. */
:root:not(.night) .map-label.gate,:root:not(.night) .map-label.parking,
:root:not(.night) .map-label.parked{background:#e5eef7f5;color:#254d70;border-color:#8aa9c5}
:root:not(.night) .map-label.parking b{color:var(--accent)}
:root:not(.night) .map-label.flight.inferred-arrival{background:#fff1dff5;color:var(--warning);border-color:#af8549}
:root:not(.night) .map-label.flight.last-observed{background:#edf0f3f5;color:#58636e;border-color:#8a96a2}
:root:not(.night) .map-label.metro-station,:root:not(.night) .map-label.metro-train{
 background:#e1f2f4f5;color:#1f595e;border-color:#65979d;
}
:root:not(.night) .map-label.metro-station b{color:var(--teal)}
:root:not(.night) .map-label.metro-train.express{background:#f4e6f8f5;color:var(--express);border-color:#ab81b8}
/* Loading has no backdrop yet, so use the solid phase colour. */
#loading{background:var(--bg)}
#loading strong{color:var(--text)}#loading span{color:var(--muted)}
.loading-symbol{color:var(--accent)}
.loading-line{background:var(--border)}.loading-line i{background:var(--accent)}
