.airport-grid{grid-template-columns:1fr 1fr}
.airport-field{position:relative;display:flex;flex-direction:column;gap:7px;min-width:0}
.airport-field:last-child{grid-column:1}.airport-field>small{min-height:1em;color:var(--muted)}
.airport-suggestions{position:absolute;z-index:20;top:76px;width:100%;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 30px #182d4b22;overflow:hidden}
.airport-suggestions button{display:flex;gap:15px;align-items:center;text-align:left;width:100%;background:white;color:inherit;border-radius:0;border-bottom:1px solid var(--line);font-weight:500}
.airport-suggestions button[aria-selected=true],.airport-suggestions button:hover,.airport-suggestions button:focus{background:#eaf2ff;outline:2px solid var(--blue);outline-offset:-2px}
.airport-suggestions small,.airport-name{display:block}.airport-suggestions p{padding:12px}
.alternate-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:10px}
.alternate-card{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f7f7f8;border:1px solid var(--line);color:inherit;text-align:left;font-weight:500}
.alternate-card>strong{white-space:nowrap}.alternate-card small{color:var(--muted);font-size:.75rem}.airport-name{margin:5px 0;font-size:.9rem}
.alternate-card.selected{background:#eaf2ff;border-color:#88b3f3}
#alternate-minimum{max-width:100px}.caption{font-size:.8rem}
.route-overview{display:flex;gap:12px;flex-wrap:wrap;background:#f1f5ff;border-radius:18px;padding:18px;margin:18px 0}
.route-overview>div{padding:10px 16px;border-radius:12px;background:white}.route-overview small{display:block;color:var(--muted)}
.map-legend{display:flex;gap:18px;flex-wrap:wrap}.map-legend i{display:inline-block;width:26px;height:4px;margin-right:6px}
#fir-suggestions{max-height:180px;overflow:auto;display:grid;grid-template-columns:1fr}#fir-suggestions button{text-align:left}
@media(max-width:600px){.airport-grid{grid-template-columns:1fr}.airport-field:last-child{grid-column:auto}.alternate-grid{grid-template-columns:1fr}}

/* Native PS+ workspace: VXRootView / VXSectionCard dimensions and palette. */
:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:14px;background:#fafafa;color:#292929;--blue:#1f6bd1;--muted:#808080;--line:#e7e7e7;--orange:#eb8f1f;--green:#2dbe53}
[hidden]{display:none!important}button{font-weight:500;padding:7px 12px;border-radius:7px}input,select,textarea{padding:9px 12px;border-radius:9px;background:#f6f6f6}label{font-weight:600;color:var(--muted);font-size:.92rem}h2{font-size:1.25rem;font-weight:650}h3{font-size:1.05rem}p{line-height:1.4}.mono{font-size:1rem}.teal{color:#0d9494}button.quiet{background:#ebebeb}hr{width:100%;border:0;border-top:1px solid var(--line);margin:18px 0}
#app{display:grid;grid-template-columns:218px minmax(0,1fr);grid-template-rows:auto auto 1fr;min-height:100vh;align-content:start}
#app>nav{grid-column:1;grid-row:1/4;position:sticky;top:0;height:100vh;min-height:560px;background:#0e1b2e;color:white;display:flex;flex-direction:column;gap:4px;margin:0;padding:25px 10px 14px}
nav .brand{display:flex;gap:12px;align-items:center;padding:0 12px 24px}.brand-mark{background:linear-gradient(135deg,#1f6bd1,#0d9494);width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-weight:900;font-size:18px}.brand strong{font-size:22px}.brand small{display:block;max-width:110px;margin-top:3px;font-size:11px;line-height:1.4;color:#ffffff94}
.nav-caption{font-size:10px;letter-spacing:1.3px;font-weight:bold;padding:0 12px;margin:0 0 8px;color:#ffffff6b}
#app nav button{padding:12px;text-align:left;color:white;font-size:13px;white-space:normal;background:transparent;border-radius:10px}#app nav button.active{background:#ffffff21;color:white}#app nav button[data-step=library]{margin-top:12px;border-top:1px solid #ffffff24;border-radius:0}
.sidebar-footer{margin-top:auto;padding:14px;background:#ffffff0e;border-radius:14px;font-size:11px;color:#ffffffad}.sidebar-footer p{color:inherit}
#app>header{grid-column:2;grid-row:1;padding:22px 28px;border:0;border-bottom:1px solid var(--line);margin:0;background:#fff;min-width:0}
#app>header h1{font-size:22px;line-height:1.2;margin:0;font-weight:650}#app>header .eyebrow{font-size:10px;margin:0 0 4px;letter-spacing:1.2px}#worker-state,#data-state{display:none}header .status{gap:16px}
#app>.operation-banner{grid-column:2;grid-row:2;padding:10px 28px;background:#f0f8f2;display:flex;gap:14px;align-items:center;justify-content:space-between;font-size:12px;overflow-wrap:anywhere}.operation-banner.has-error{background:#fff4ea}.operation-banner.has-error #banner-text{white-space:pre-line}
#app>.panel{grid-column:2;grid-row:3;align-self:start;background:transparent;border:0;box-shadow:none;border-radius:0;width:100%;max-width:1180px;padding:22px 28px 36px;margin:0 auto;min-width:0}
.section-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;margin:18px 0}.section-card>.eyebrow{margin-bottom:8px}.section-card>.subtitle{margin-top:-4px;margin-bottom:20px;font-size:13px}
.study-heading{display:flex;align-items:center;gap:14px;justify-content:space-between}.study-heading label{flex:1;font-size:0}.study-heading input{font-size:14px;font-weight:600;border:0;background:transparent;padding:0}.archive-notice{font-size:11px;color:var(--muted)}
.aircraft-row{display:flex;gap:18px;align-items:flex-start;margin-top:18px}.aircraft-row>label{min-width:250px}.aircraft-row details{margin:14px 0 0}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.section-card>label:has(#crew){max-width:180px}
details{border:0;margin:10px 0;padding:0}summary{font-weight:500;margin-bottom:8px}details>p{white-space:pre-wrap}details pre{max-height:360px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}#study-form .actions{justify-content:flex-end}#interactive-status,#interactive-error,#result-error{display:none}
.route-comparison{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:16px;align-items:start}.selected-route>h3{margin-top:0}.route-select{width:100%;display:flex;gap:12px;text-align:left;background:#f8f8f8;border:1px solid var(--line);border-radius:11px;padding:13px;color:inherit;font-size:12px}.route-select.selected{background:#1f6bd114;border-color:#1f6bd180}.route-select:disabled{opacity:1}.route-select:disabled{cursor:default}.selection-symbol{font-size:20px;color:var(--muted)}.selected .selection-symbol{color:var(--blue)}.route-copy{display:flex;flex-direction:column;gap:6px;color:var(--muted);min-width:0}.route-copy>.mono{color:#292929;font-weight:600;overflow-wrap:anywhere;line-height:1.3}.route-copy .fuel-label{font-weight:600}.route-choice>button.quiet{margin-top:8px}.route-choice details{font-size:11px;margin-bottom:18px}.cruise-target{font-size:12px;margin-bottom:18px}.route-overview{margin:16px 0}.route-overview .mono{font-size:14px}
.fir-picker{display:grid;grid-template-columns:auto minmax(150px,1fr);gap:12px;align-items:center;padding:14px}.fir-picker h2{margin:0;font-size:14px}.fir-picker>label{font-size:0}.fir-picker>label input{font-size:13px;background:#fff}.fir-picker details,.fir-picker #fir-suggestions{grid-column:2}.fir-picker #fir-suggestions:empty{display:none}
.routing-footer{display:flex;position:sticky;bottom:0;align-items:center;justify-content:space-between;padding:16px;background:#f8f8f8eb;border-top:1px solid var(--line);backdrop-filter:blur(12px);gap:12px}.routing-footer button{margin-left:auto}.route-comparison #route-map figure{margin:0}.route-comparison .route-svg{min-height:320px;border-radius:18px}.route-comparison .map-legend{font-size:11px}.route-comparison figure>p{font-size:12px}.route-comparison figcaption{font-size:10px}.route-comparison #compare-fuel{margin-top:10px}
#results>.section-title{display:none}#results>#progress{background:#1f6bd10d;border:0}#results>.checks{margin:18px 0}.conditions-card{border:1px solid var(--line);border-radius:12px;background:#1f6bd109;padding:14px;font-size:12px}.conditions-card .section-title{margin:0;align-items:baseline}.conditions-card h3{font-size:13px}.conditions-card .section-title>span{color:var(--muted);font-size:11px}.weather-row{display:flex;gap:10px;margin:8px 0;align-items:baseline}.weather-row>strong{min-width:100px}.conditions-card details{margin:9px 0}.conditions-card p{margin:6px 0}.payload-table table{width:100%;border-collapse:separate;border-spacing:0 24px;table-layout:fixed}.payload-table th{text-align:left;vertical-align:middle}.payload-table thead th{font-size:12px;color:var(--muted);font-weight:600}.payload-table td{vertical-align:top;padding-right:24px}.payload-table th:first-child{width:22%}.payload-table .metric{font-size:24px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}.payload-table td p{font-size:12px;margin:6px 0}.payload-table td p.mono{font-size:14px;color:#292929}.payload-table .retain{display:flex;flex-direction:row;gap:6px;color:inherit;font-weight:400;font-size:14px;align-items:center}.retain input{accent-color:var(--blue);width:16px;height:16px}.payload-table details{font-size:12px}.payload-table>p{font-size:12px}
@media(max-width:1020px){#app{grid-template-columns:190px minmax(0,1fr)}.route-comparison{grid-template-columns:1fr}.archive-notice{display:none}.aircraft-row{flex-wrap:wrap}.weather-row{flex-wrap:wrap}}
@media(max-width:680px){#app{display:block}#app>nav{position:static;height:auto;min-height:0;padding:10px;flex-direction:row;flex-wrap:wrap}nav .brand{padding:0 10px 10px;flex-basis:100%}.brand small{max-width:none}.nav-caption,.sidebar-footer{display:none}#app nav button[data-step=library]{margin:0;border:0;border-radius:10px}#app>header{padding:16px}#app>.panel{padding:16px}header .status{gap:4px}header .status button{font-size:11px;padding:7px}#app>header h1{font-size:18px}.section-card{padding:16px}.grid.four{grid-template-columns:1fr}.study-heading{flex-wrap:wrap}.study-heading label{min-width:160px}.conditions-card .section-title{flex-wrap:wrap}.payload-table{overflow-x:auto}.payload-table table{min-width:490px}.fir-picker{grid-template-columns:1fr}.fir-picker details,.fir-picker #fir-suggestions{grid-column:1}.aircraft-row>label{min-width:0;width:100%}.routing-footer{flex-wrap:wrap}}
