/* Single design-system stylesheet. Rules: DESIGN-SYSTEM.md. */
:root{
  --color-bg:#0b1821;
  --color-surface:#10232d;
  --color-raised:#152d38;
  --color-line:#29424c;
  --color-text:#eef4f2;
  --color-muted:#a3b8bd;
  --color-accent:#93dcc8;
  --color-accent-ink:#102c28;
  --color-warning:#e8ce9e;
  --color-map-land:#20363e;
  --color-map-water:#0b1c26;
  --color-map-border:#50646c;
  --color-route:#8ed4c6;
  --color-hover:#213f49;
  --color-active:#294d55;
  --color-disabled:#152932;
  --color-disabled-text:#8fa6ac;
  --color-disabled-line:#2c444d;
  --color-positive-bg:#19362f;
  --color-positive-text:#b9e1cc;
  --color-positive-line:#496a63;
  --color-warning-bg:#352f23;
  --color-warning-text:#f1dbb0;
  --color-warning-line:#a18b5f;
  --color-info:#83abc3;
  --color-shadow-33:rgb(0 0 0 / 0.333);
  --color-shadow-13:rgb(0 0 0 / 0.133);
  --color-map-water-a85:rgb(11 28 38 / 0.851);
  --color-surface-a92:rgb(16 35 45 / 0.922);
  --color-shadow-20:rgb(0 0 0 / 0.200);
  --color-shadow-60:rgb(0 0 0 / 0.600);
  --color-shadow-27:rgb(0 0 0 / 0.267);
  --color-bg-a85:rgb(11 24 33 / 0.851);
  --color-bg-a4:rgb(11 24 33 / 0.039);
  --color-bg-a33:rgb(11 24 33 / 0.333);
  --color-bg-a91:rgb(11 24 33 / 0.910);
  --color-surface-a96:rgb(16 35 45 / 0.961);
  --color-bg-a0:rgb(11 24 33 / 0.000);
  --color-bg-a47:rgb(11 24 33 / 0.467);
  --color-bg-a96:rgb(11 24 33 / 0.961);
  --color-positive-text-a40:rgb(185 225 204 / 0.400);
  --color-shadow-47:rgb(0 0 0 / 0.467);
  --color-shadow-100:rgb(0 0 0 / 1.000);
  --color-map-water-a74:rgb(11 28 38 / 0.741);
  --color-surface-a93:rgb(16 35 45 / 0.933);
  --font-11:11px;
  --font-12:12px;
  --font-14:14px;
  --font-16:16px;
  --font-18:18px;
  --font-20:20px;
  --font-24:24px;
  --font-28:28px;
  --font-32:32px;
  --radius-4:4px;
  --radius-8:8px;
  --radius-12:12px;
  --radius-16:16px;
  --font-ui:'Wanted Sans',-apple-system,BlinkMacSystemFont,'Noto Sans KR',sans-serif;
  --line-body:1.5;
  --motion-fast:160ms;
  --panel-header-height:64px;
  --space-1:4px;
  --space-2:8px;
  --space-3:16px;
  --space-4:24px;
  --space-5:32px;
  --control-height:48px;
  --divider-width:1px;
  --panel-padding:var(--space-3);
  --page-edge:var(--space-4);
  --viewport-top:max(var(--page-edge),env(safe-area-inset-top));
  --viewport-bottom:max(var(--page-edge),env(safe-area-inset-bottom));
  --header-height:66px;
  --stats-height:60px;
  --hud-top:calc(var(--viewport-top) + var(--header-height) + var(--space-2));
  --workspace-top:calc(var(--hud-top) + var(--stats-height) + var(--space-2));
  --dock-height:74px;
  --ops-width:310px;
  --workspace-bottom:calc(var(--viewport-bottom) + var(--dock-height) + var(--space-3));
}
:root{color-scheme:dark;--bg:var(--color-bg);--surface:var(--color-surface);--raised:var(--color-raised);--line:var(--color-line);--text:var(--color-text);--muted:var(--color-muted);--accent:var(--color-accent);--accent-ink:var(--color-accent-ink);--gold:var(--color-warning);--map-land:var(--color-map-land);--map-water:var(--color-map-water);--map-border:var(--color-map-border);--route:var(--color-route)}
*{box-sizing:border-box}
html,body{margin:0;min-width:0;width:100%;height:100%;overflow:hidden}
body{background:var(--bg);color:var(--text);font:var(--font-14)/var(--line-body) var(--font-ui);-webkit-font-smoothing:antialiased}
button,input,select,summary{font:inherit}
button,summary{touch-action:manipulation}
button{min-height:var(--control-height);border:1px solid var(--line);border-radius:var(--radius-8);background:var(--raised);color:var(--text);cursor:pointer;transition:background var(--motion-fast),border-color var(--motion-fast)}
button:hover:not(:disabled){background:var(--color-hover);border-color:var(--color-positive-line)}
button:active:not(:disabled){background:var(--color-active)}
button:disabled{background:var(--color-disabled);border-color:var(--color-disabled-line);color:var(--color-disabled-text);cursor:default}
button.primary,.tabs button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}
button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2,p{margin:0}
h2{font-size:var(--font-16);line-height:1.4;font-weight:650}
small,.muted{font-size:var(--font-12);color:var(--muted)}
.good{color:var(--accent)}
[hidden]{display:none!important}
header{position:fixed;z-index:20;inset:var(--viewport-top) var(--page-edge) auto;min-height:var(--header-height);display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}
header>div:first-child{display:flex;align-items:center;min-width:0;min-height:var(--header-height);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-12);pointer-events:auto}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--color-positive-line);border-radius:var(--radius-8);color:var(--accent);background:var(--color-positive-bg)}
.brand-mark svg{width:23px;height:23px}
.brand-copy{display:grid}
header h1{font-size:var(--font-16);letter-spacing:1.7px;font-weight:800;line-height:1.3}
header h1 span{font-weight:450;color:var(--color-positive-text)}
header small{font-size:var(--font-12);letter-spacing:.6px;color:var(--muted)}
header>div:last-child{display:flex;align-items:center;min-width:0;min-height:var(--header-height);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-12);pointer-events:auto}
#company{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-positive-text);font-size:var(--font-14)}
.head-menu{position:relative}
.head-menu summary{display:flex;align-items:center;min-height:var(--control-height);border:1px solid var(--line);border-radius:var(--radius-8);cursor:pointer;list-style:none;font-size:var(--font-12)}
.head-menu summary::-webkit-details-marker{display:none}
.head-menu summary svg{width:16px;height:16px;pointer-events:none}
.head-menu>div{position:absolute;right:0;top:calc(100% + var(--space-2));width:220px;max-width:calc(100vw - 2 * var(--page-edge));display:grid;border:1px solid var(--line);border-radius:var(--radius-12);background:var(--surface);box-shadow:0 12px 32px var(--color-shadow-33)}
.wrap{position:fixed;z-index:3;inset:0;pointer-events:none}
.stats{position:absolute;top:var(--hud-top);min-height:var(--stats-height);display:flex;border:1px solid var(--line);border-radius:var(--radius-12);background:var(--surface);overflow-x:auto;pointer-events:auto;scrollbar-width:none}
.stats::-webkit-scrollbar{display:none}
.stats .card{flex:0 0 auto;min-width:106px;border-right:1px solid var(--line)}
.stats .card:last-child{border:0}
.stats small{display:block;font-size:var(--font-12);line-height:1.25}
.stats b{display:block;font-size:var(--font-18);font-weight:650;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums;letter-spacing:-.35px}
.stats .card:first-child b{color:var(--accent)}
#flightMap.map{position:fixed;z-index:0;inset:0;width:100vw;height:100dvh;background:var(--map-water)}
#flightMap .maplibregl-map{width:100%;height:100%}
#mapNotice{position:absolute;z-index:2;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);background:var(--map-water);font-size:var(--font-14)}
.map-caption{position:fixed;z-index:2;left:var(--page-edge);bottom:var(--viewport-bottom);display:grid;gap:var(--space-1);pointer-events:none;font-size:var(--font-12)}
.map-caption b{font-size:var(--font-12);font-weight:550;color:var(--color-positive-text)}
.map-caption small{color:var(--color-disabled-text);font-variant-numeric:tabular-nums}
.map-caption span{display:none}
.maplibregl-ctrl-top-right{top:var(--workspace-top)!important;right:var(--page-edge)!important}
#flightMap .maplibregl-ctrl-group{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-8);box-shadow:0 3px 12px var(--color-shadow-13);overflow:hidden}
#flightMap .maplibregl-ctrl-group button{min-height:var(--control-height);width:48px;border-color:var(--line);border-radius:0}
#flightMap .maplibregl-ctrl-icon{filter:invert(.9)}
#flightMap .maplibregl-ctrl-attrib{font-size:var(--font-12);background:var(--color-map-water-a85);color:var(--color-muted)}
#flightMap .maplibregl-ctrl-attrib a{color:var(--color-muted)}
.airport-dot{align-items:center;gap:7px;color:var(--color-text);border-radius:var(--radius-8);white-space:nowrap;font-size:var(--font-12);font-weight:600;line-height:1.2}
.airport-dot:before{content:'';width:5px;height:5px;border:1px solid var(--color-muted);border-radius:50%;background:var(--color-info)}
.airport-dot.is-hub{border-color:var(--color-route);color:var(--color-text)}
.airport-dot.is-hub:before{background:var(--gold);border-color:var(--gold)}
.airport-code{letter-spacing:.5px}
.airport-name{font-weight:400;color:var(--color-muted);font-size:var(--font-12)}
.plane-vector{filter:drop-shadow(0 2px 3px var(--color-shadow-60))}
.plane-vector svg{display:block;stroke-width:1.3}
.plane-vector.is-ground{opacity:.48}
.widget{position:absolute;top:var(--workspace-top);bottom:var(--workspace-bottom);width:min(380px,calc(100vw - 2 * var(--page-edge)));min-height:0;max-height:none;overflow-y:auto;overscroll-behavior:contain;pointer-events:auto;border:1px solid var(--color-active);border-radius:var(--radius-12);background:var(--surface);box-shadow:0 12px 36px var(--color-shadow-27);scrollbar-width:thin;scrollbar-color:var(--color-map-border) transparent}
.widget-head{position:sticky;z-index:2;top:0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--surface)}
.widget-head h2{font-size:var(--font-18);font-weight:650;letter-spacing:-.4px}
.widget-head button{display:grid;place-items:center;min-width:48px;border:0;background:transparent;color:var(--muted);border-radius:var(--radius-8)}
.widget-head button svg{width:18px;height:18px}
.panel-intro{color:var(--muted);font-size:var(--font-12);line-height:1.7;border-bottom:1px solid var(--line)}
.item{border-bottom:1px solid var(--line);background:transparent;border-radius:0;overflow-wrap:anywhere}
.item:last-child{border-bottom:0}
.line{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap}
.item>.line:first-child b{font-size:var(--font-16);font-weight:650}
.item small{line-height:1.4}
.item>button{font-size:var(--font-14)}
.section-label{font-size:var(--font-12);font-weight:650;color:var(--color-positive-text)}
.assignment label,#content>label{display:block;color:var(--muted);font-size:var(--font-12)}
select,input{min-height:var(--control-height);border:1px solid var(--color-map-border);border-radius:var(--radius-8);background:var(--color-map-water);color:var(--text);font-size:var(--font-14)}
select{width:100%}
.assignment button{width:100%}
.route-aircraft{display:grid;background:var(--color-positive-bg);border-left:2px solid var(--accent);border-radius:0 var(--radius-8) var(--radius-8) 0}
.route-aircraft b{font-size:var(--font-12);font-weight:650}
.route-aircraft small{font-size:var(--font-12);color:var(--color-muted)}
.aircraft-art{display:block;width:100%;height:auto;aspect-ratio:4/3;border:1px solid var(--color-active);border-radius:var(--radius-8);background:var(--color-disabled)}
.fleet-card>button{width:100%}
.airport-view{position:relative}
.airport-view img{display:block;width:100%;border:1px solid var(--color-active);border-radius:var(--radius-8)}
.airport-badge{position:absolute;left:8px;bottom:8px;border:1px solid var(--color-positive-line);border-radius:var(--radius-4);background:var(--color-surface);color:var(--color-positive-text);font-size:var(--font-12)}
.airport-view+p{font-size:var(--font-12)}
.ops-widget{width:var(--ops-width)}
.ops-widget section{border-bottom:1px solid var(--line)}
.ops-widget section:last-child{border:0}
.ops-widget section>h2{font-size:var(--font-14);color:var(--color-positive-text)}
.ops-widget .good{font-size:var(--font-14)}
#log{max-height:220px;overflow:auto;scrollbar-width:thin}
.arrival-callout b,.arrival-callout span{display:block}
.arrival-callout b{font-size:var(--font-14);font-weight:650}
.arrival-callout span{font-size:var(--font-12);color:var(--color-positive-text);line-height:1.5}
#flightMap .maplibregl-popup-content{width:280px;max-width:calc(100vw - 32px);min-width:0;padding:15px 45px 15px 15px;border:1px solid var(--color-positive-line);border-radius:var(--radius-8);background:var(--color-disabled);color:var(--text);box-shadow:0 10px 28px var(--color-shadow-33)}
#flightMap .maplibregl-popup-close-button{min-width:48px;min-height:var(--control-height);background:transparent;border:0;color:var(--color-positive-text)}
#flightMap .maplibregl-popup-anchor-bottom .maplibregl-popup-tip,#flightMap .maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip,#flightMap .maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{border-top-color:var(--color-disabled)}
#flightMap .maplibregl-popup-anchor-top .maplibregl-popup-tip,#flightMap .maplibregl-popup-anchor-top-left .maplibregl-popup-tip,#flightMap .maplibregl-popup-anchor-top-right .maplibregl-popup-tip{border-bottom-color:var(--color-disabled)}
#arrivalToast{position:fixed;z-index:8;right:var(--page-edge);top:var(--workspace-top);max-width:290px;padding:var(--space-3);border:1px solid var(--color-positive-line);border-radius:var(--radius-8);background:var(--color-disabled);pointer-events:none}
#arrivalToast:empty{display:none}
.saving-warning{position:fixed;z-index:9;left:var(--page-edge);bottom:var(--workspace-bottom);max-width:calc(100vw - 2 * var(--page-edge));padding:var(--space-3);border:1px solid var(--color-warning-line);border-radius:var(--radius-8);background:var(--color-warning-bg);color:var(--color-warning-text);font-size:var(--font-14)}
.saving-warning:empty{display:none}
.map-dock.tabs{position:fixed;z-index:7;bottom:var(--viewport-bottom);left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(460px,calc(100vw - 2 * var(--page-edge)));min-height:var(--dock-height);gap:var(--space-1);padding:var(--space-2);margin:0;border:1px solid var(--color-active);border-radius:var(--radius-12);background:var(--surface);box-shadow:0 6px 20px var(--color-shadow-20)}
.map-dock button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);min-height:56px;padding:var(--space-2) var(--space-1);border:0;border-radius:var(--radius-8);background:transparent;color:var(--color-muted);font-size:var(--font-12);line-height:1.2;white-space:nowrap}
.map-dock button svg{width:19px;height:19px;stroke:currentColor;stroke-width:1.6;fill:none;stroke-linecap:round;stroke-linejoin:round}
.map-dock button.on{background:var(--color-active);color:var(--color-positive-text)}
.map-dock button:hover:not(:disabled){background:var(--color-map-land)}
.map-dock button[aria-expanded=true]{background:var(--color-active);color:var(--color-positive-text)}
.map-dock button.on:hover{background:var(--color-active)}
.modal{position:fixed;z-index:60;inset:0;display:grid;place-items:center;background:var(--color-bg-a85);overflow-y:auto}
.modal>.card{width:min(100%,420px);max-height:calc(100dvh - var(--viewport-top) - var(--viewport-bottom));overflow:auto;border:1px solid var(--color-map-border);border-radius:var(--radius-12);background:var(--surface);box-shadow:0 20px 60px var(--color-shadow-33)}
.modal h2{font-size:var(--font-20)}
.modal label{font-size:var(--font-12);color:var(--muted)}
.modal input{display:block;width:100%;font-size:var(--font-16)}
.modal button{display:block;width:100%}
.rename-warn{border-left:2px solid var(--gold);background:var(--color-warning-bg);color:var(--color-warning-text)}
#splash{position:fixed;z-index:110;inset:0;display:flex;align-items:center;justify-content:flex-end;overflow:auto;padding:40px 6vw;background:var(--color-bg)}
#splash::before{content:'';position:absolute;inset:0;background:url('blueprint-splash.png') 42% center/cover no-repeat;opacity:.6}
#splash::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--color-bg-a4) 10%,var(--color-bg-a33) 45%,var(--color-bg-a91) 85%);pointer-events:none}
.splash-actions{max-height:calc(100dvh - 80px);overflow:auto;position:relative;z-index:1;flex-shrink:0;width:min(420px,100%);padding:32px;border:1px solid var(--color-map-border);border-radius:var(--radius-16);background:var(--color-surface-a96);box-shadow:0 18px 60px var(--color-shadow-27);text-align:left}
.splash-brand{font-size:var(--font-12);letter-spacing:2px;color:var(--accent);font-weight:700;margin-bottom:32px}
.splash-actions h2{font-size:var(--font-28);letter-spacing:-1px;line-height:1.3;margin-bottom:12px}
.splash-actions p{color:var(--muted);font-size:var(--font-14);line-height:1.7;margin-bottom:24px}
.splash-actions label{display:block;margin-bottom:8px;font-size:var(--font-12);color:var(--color-positive-text)}
.splash-actions input{display:block;width:100%;font-size:var(--font-16);margin-bottom:12px}
.splash-actions button{width:100%;min-height:52px}
.splash-actions small{display:block;text-align:center;font-size:var(--font-12);margin-top:16px;color:var(--color-disabled-text)}
#startStatus{color:var(--color-warning-text);font-size:var(--font-12)}
#startStatus:empty{display:none}
@media(max-width:700px){:root{--page-edge:var(--space-3)}
.brand-mark{width:32px;height:32px;border-radius:var(--radius-8)}
.brand-mark svg{width:21px;height:21px}
header h1{font-size:var(--font-12);letter-spacing:1px}
header small{font-size:var(--font-12);letter-spacing:0}
#company{max-width:75px;font-size:var(--font-12)}
.head-menu summary{min-width:48px;min-height:var(--control-height);justify-content:center}
.head-menu summary span{display:none}
.head-menu summary svg{width:18px;height:18px}
.stats{right:var(--page-edge);max-width:none;border-radius:var(--radius-8)}
.stats .card{min-width:85px}
.stats small{font-size:var(--font-12)}
.stats b{font-size:var(--font-16)}
.widget,.ops-widget{top:auto;width:auto;max-height:min(55dvh,calc(100dvh - var(--workspace-top) - var(--workspace-bottom)));border-radius:var(--radius-12)}
.widget-head h2{font-size:var(--font-16)}
.map-dock button{font-size:var(--font-12)}
.map-dock button svg{width:19px;height:19px}
.map-caption{bottom:var(--workspace-bottom)}
.map-caption b{font-size:var(--font-12)}
.map-caption small{font-size:var(--font-12)}
.map-caption span{display:none}
#arrivalToast{max-width:260px}
.airport-name{display:none}
.airport-dot{font-size:var(--font-12);padding:5px 7px;gap:5px}
.aircraft-art{height:auto}
#splash{padding:20px 16px max(20px,env(safe-area-inset-bottom));align-items:flex-end;justify-content:center}
#splash::before{background-position:47% center;opacity:.7}
#splash::after{background:linear-gradient(180deg,var(--color-bg-a0),var(--color-bg-a47) 40%,var(--color-bg-a96) 85%)}
.splash-actions{width:100%;max-width:420px;padding:24px;max-height:calc(100dvh - 40px);overflow:auto;border-radius:var(--radius-12)}
.splash-brand{margin-bottom:20px}
.splash-actions h2{font-size:var(--font-24)}
.splash-actions p{font-size:var(--font-14);margin-bottom:18px}}
@media(max-width:360px){#company{display:none}
.brand-mark{width:30px;height:30px}
.stats .card{min-width:82px}}
@media(max-height:500px){:root{--workspace-top:calc(var(--viewport-top) + var(--header-height) + var(--space-2))}
.stats{display:none}
.widget,.ops-widget{top:var(--workspace-top);max-height:none}
.map-caption{display:none}
#splash{align-items:flex-start}
.splash-actions{margin:0;max-height:calc(100dvh - 40px)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:701px){.widget.airport-mode{width:min(620px,calc(100vw - 2 * var(--page-edge)))}}
body:has(.airport-mode:not([hidden])) #arrivalToast,body:has(.airport-mode:not([hidden])) .maplibregl-popup{display:none}
.live-label{font-size:var(--font-12);color:var(--accent)}
.airport-scene{display:block;width:100%;height:clamp(170px,25dvh,240px);background:var(--color-disabled);border:1px solid var(--color-map-border);border-radius:var(--radius-8)}
.ap-label{font:var(--font-14) var(--font-ui);fill:var(--color-positive-text);letter-spacing:1px}
.ground-plane path{fill:var(--color-text);stroke:var(--color-muted);stroke-width:.5;filter:drop-shadow(0 0 5px var(--color-positive-text-a40))}
.ground-tag{font:var(--font-12) var(--font-ui);fill:var(--color-text);paint-order:stroke;stroke:var(--color-disabled);stroke-width:4px;stroke-linejoin:round}
.airport-roster{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.airport-flight{display:grid;border-left:2px solid var(--accent);background:var(--color-positive-bg);border-radius:0 var(--radius-4) var(--radius-4) 0}
.airport-flight b{font-size:var(--font-14);overflow-wrap:anywhere}
.airport-flight span,.airport-flight small{font-size:var(--font-12);color:var(--color-positive-text)}
.airport-roster>p{font-size:var(--font-12);line-height:1.6}
@media(min-width:701px){.widget.fleet-mode{width:min(560px,calc(100vw - 2 * var(--page-edge)))}}
@media(min-width:701px){body:has(#opsWidget:not([hidden])) #manageWidget{max-width:calc(100vw - 2 * var(--page-edge) - var(--ops-width) - var(--space-3))}}
.fleet-row{display:grid;grid-template-columns:148px minmax(0,1fr);align-items:start}
.fleet-visual{display:grid;place-items:center;align-self:start;aspect-ratio:4/3;max-height:132px;background:var(--color-disabled);border:1px solid var(--color-active);border-radius:var(--radius-8);overflow:hidden}
.fleet-visual .aircraft-art{width:100%;height:100%;max-width:none;border:0;border-radius:0}
.info-stack{display:grid;min-width:0;gap:var(--space-2)}
.fleet-info h2{font-size:var(--font-16);overflow-wrap:anywhere}
.fleet-identity{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1)}
.info-facts{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);font-size:var(--font-12);color:var(--color-positive-text)}
.info-facts>span{min-width:0;overflow-wrap:anywhere}
.fleet-info button{font-size:var(--font-14)}
.fleet-route{display:grid;border-top:1px solid var(--line)}
.fleet-route span{font-size:var(--font-12)}
.fleet-info small{font-size:var(--font-12)}
@media(max-width:700px){.fleet-row{grid-template-columns:104px minmax(0,1fr)}
.fleet-visual{max-height:100px}
.fleet-info button{font-size:var(--font-12)}}
.plane-vector{width:48px;height:48px;min-height:var(--control-height);padding:6px 10px;border:0;background:transparent!important;border-radius:50%;cursor:pointer}
.plane-vector:hover{outline:1px solid var(--color-accent)}
.plane-vector svg{width:28px;height:36px;pointer-events:none}
.flight-hero{display:grid;align-items:center}
.flight-hero h2{overflow-wrap:anywhere}
.flight-hero span{color:var(--muted)}
.flight-route{display:flex;align-items:center;justify-content:space-around;border-block:1px solid var(--line)}
.flight-route>div{display:grid;text-align:center}
.flight-route b{letter-spacing:2px}
.flight-route span{color:var(--muted)}
.flight-progress .line{font-size:var(--font-12)}
.flight-facts{display:grid;grid-template-columns:1fr 1fr;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-8);overflow:hidden}
.flight-facts>div{display:grid;background:var(--surface)}
.flight-caution{color:var(--gold)}
@media(max-width:700px){.flight-hero h2{font-size:var(--font-18)}
.flight-hero .aircraft-art{height:auto}
.flight-route b{font-size:var(--font-24)}}
.airport-weather{display:grid;border:1px solid var(--color-active);border-radius:var(--radius-8);background:var(--color-raised)}
.airport-weather>div{display:flex;justify-content:space-between;align-items:center}
.airport-weather span{font-size:var(--font-12);color:var(--color-positive-text)}
.airport-weather.is-adverse{border-color:var(--color-warning-line);background:var(--color-warning-bg)}
.weather-adverse{border-color:var(--color-warning-line)!important}
.weather-adverse:before{background:var(--color-warning)!important}
.flight-weather{display:grid;grid-template-columns:1fr 1fr}
.flight-weather .airport-weather>div{display:grid}
@media(max-width:700px){.flight-weather{grid-template-columns:1fr}}
.flight-mode #content>label{display:block;font-size:var(--font-12);color:var(--muted)}
.airport-dot{min-height:var(--control-height);cursor:pointer}
.airport-board{border-collapse:collapse;width:100%;table-layout:fixed;font-size:var(--font-12)}
.airport-board caption{text-align:left;font-size:var(--font-14);font-weight:700;letter-spacing:1px;color:var(--accent)}
.airport-board th{font-size:var(--font-12);color:var(--muted);font-weight:500;text-align:left;border-block:1px solid var(--line)}
.airport-board td{border-bottom:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}
.airport-board time{font-variant-numeric:tabular-nums}
.airport-board td small,.airport-board td b{display:block}
.airport-board td small{font-size:var(--font-12)}
.airport-board td button{display:block;text-align:left;width:100%;border:0;background:transparent;min-height:var(--control-height);font-size:var(--font-12);line-height:1.6;color:var(--text)}
.flight-finance{border-bottom:1px solid var(--line)}
.flight-finance h2{font-size:var(--font-16)}
.flight-finance dl>div{display:flex;justify-content:space-between;font-size:var(--font-12)}
.flight-finance dd{font-variant-numeric:tabular-nums;white-space:nowrap}
.flight-finance .finance-total{border-top:1px solid var(--color-positive-line);font-size:var(--font-16);font-weight:700}
.fleet-info>small{line-height:1.6}
.item>input{width:100%}
.flight-chips{display:flex;flex-wrap:wrap}
.flight-hero .flight-chips span{display:block;border:1px solid var(--color-positive-line);border-radius:var(--radius-8);background:var(--color-positive-bg);color:var(--color-text);line-height:1.5;overflow-wrap:anywhere}
.flight-hero .aircraft-art{height:auto!important;aspect-ratio:4/3!important;background:var(--color-disabled)}
.flight-hero .flight-chips .is-caution{background:var(--color-warning-bg);border-color:var(--color-warning-line);color:var(--color-warning-text)}
.airport-dot{position:relative;width:48px;height:48px;padding:0!important;background:transparent!important;border:0!important;box-shadow:none;display:block}
.airport-dot:before{display:none}
.airport-dot svg{position:absolute;bottom:0;left:12px;width:24px;height:32px;fill:var(--color-map-land);stroke:var(--color-route);stroke-width:1.4;filter:drop-shadow(0 2px 2px var(--color-shadow-47))}
.airport-dot svg circle{fill:var(--color-route);stroke:none}
.airport-dot.is-hub svg circle{fill:var(--color-warning)}
.airport-dot.weather-adverse svg{stroke:var(--color-warning)}
.airport-dot .airport-code{position:absolute;top:0;left:0;width:48px;text-align:center;font-size:var(--font-11);text-shadow:0 1px 3px var(--color-shadow-100);background:var(--color-map-water-a74);border-radius:var(--radius-4)}
.aircraft-map{width:48px;height:48px;z-index:2}
.aircraft-map .plane-vector{position:absolute;inset:0}
.plane-callout{position:absolute;left:42px;top:-14px;display:grid;text-align:left;border:1px solid var(--color-positive-line);border-radius:var(--radius-8);background:var(--color-surface-a93);box-shadow:0 3px 10px var(--color-shadow-27);color:var(--color-text);line-height:1.3}
.plane-callout b{font-size:var(--font-11);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plane-callout span,.plane-callout small{font-size:var(--font-11)}
.plane-callout small{color:var(--color-route)}
.plane-callout progress{width:100%;accent-color:var(--color-accent)}
.callout-left .plane-callout{left:auto;right:42px}
.aircraft-map.is-ground .plane-vector{opacity:.55}
.cabin-services{border-top:1px solid var(--line);display:grid}
.cabin-services summary{cursor:pointer;min-height:var(--control-height);font-size:var(--font-14)}
.cabin-services p{font-size:var(--font-12)}
.cabin-services button{width:100%}
@media(max-width:700px){.plane-callout{padding:6px;left:38px}
.callout-left .plane-callout{right:38px}}
.ui-icon{width:20px;height:20px;vertical-align:middle;flex-shrink:0}
.center-title{display:flex;align-items:center;justify-content:center;font-size:var(--font-18)}
.primary-action{display:block;width:100%;background:var(--color-hover);border-color:var(--color-disabled-text);text-align:center}
.order-total{display:grid;justify-content:center;text-align:center;border:1px solid var(--color-positive-line);border-radius:var(--radius-8);background:var(--color-positive-bg)}
.order-benefit{text-align:center;display:grid}
.order-benefit strong{color:var(--accent)}
.calculation-note{font-size:var(--font-12);color:var(--muted)}
.calculation-note summary{min-height:40px;cursor:pointer}
.cabin-services b{display:flex;align-items:center;font-size:var(--font-14)}
.cabin-services summary{color:var(--color-positive-text)}
.route-card>.line:first-child{display:grid;justify-content:center;text-align:center}
.route-card>.line:first-child b{font-size:var(--font-18)}
.route-card>p{font-size:var(--font-12);text-align:center}
.route-card>button{width:100%}
.plane-callout{width:138px;min-height:56px;height:56px;padding:6px 8px;gap:3px}
.plane-callout b,.plane-callout small{font-size:var(--font-11);white-space:nowrap}
.plane-callout progress{height:3px}
.flight-finance summary{display:flex;justify-content:space-between;align-items:center;min-height:var(--control-height);cursor:pointer;font-size:var(--font-14)}
.flight-hero{grid-template-columns:30% minmax(0,1fr)}
.flight-hero h2{font-size:var(--font-16)}
.flight-hero span{font-size:var(--font-12)}
.flight-hero .flight-chips span{font-size:var(--font-11)}
.flight-route b{font-size:var(--font-24)}
.flight-facts b{font-size:var(--font-12)}
@media(min-width:701px){.widget.flight-mode{width:360px}}
@media(max-width:700px){.plane-callout{width:128px}}
.aircraft-map.is-ai .plane-vector svg{fill:var(--color-route)}
.aircraft-map.is-ai .plane-callout{border-color:var(--color-positive-line)}
.aircraft-map.is-muted .plane-vector svg{fill:var(--color-map-border);stroke:var(--color-map-land)}
.aircraft-map.is-muted .plane-callout{opacity:.4;border-color:var(--color-map-border);filter:grayscale(1)}
.aircraft-map.is-focused .plane-vector{filter:drop-shadow(0 0 7px var(--color-positive-text))}
.aircraft-map.is-focused .plane-callout{border-color:var(--color-positive-text)}
#content{display:flow-root}
#content>.aircraft-art{height:160px;aspect-ratio:auto}
.order-total b{font-size:var(--font-24)}
.order-benefit strong{font-size:var(--font-24)}
.calculation-note p{line-height:1.6}
.flight-telemetry{border:1px solid var(--line);border-radius:var(--radius-8)}
.flight-telemetry svg{width:100%;display:block}
.telemetry-legend{display:flex;justify-content:center;font-size:var(--font-11)}
.telemetry-alt{color:var(--color-info)}
.telemetry-speed{color:var(--color-warning)}
.metric-grid{display:grid;grid-template-columns:1fr 1fr}
.metric-grid>div{background:var(--color-surface);border-radius:var(--radius-8);text-align:center}
.metric-grid small,.metric-grid b{display:block}
.brand-preview{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-8)}
.brand-preview img{width:48px;height:48px;object-fit:contain}
.cabin-grid{display:grid;grid-template-columns:1fr 1fr}
.cabin-grid label{font-size:var(--font-12);color:var(--muted)}
.cabin-grid input,.cabin-grid select{width:100%}
.mission-row{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.plane-vector svg{fill:currentColor}
.aircraft-map.is-muted .plane-vector{color:var(--color-map-border)!important}
.airport-board time{white-space:normal}
.aircraft-map.is-focused{z-index:5}
.fleet-info details{min-width:0}
.fleet-info details input{max-width:100%}
.market-share-row{border-bottom:1px solid var(--line)}
.market-share-row progress{width:100%;height:6px;accent-color:var(--color-route)}
.market-share-row small{display:block}
.fare-control{font-size:var(--font-12);color:var(--muted)}
.fare-control input{display:block;width:100%}
.plane-vector svg{stroke:currentColor}
.head-menu>div{max-height:70dvh;overflow:auto}
.fleet-visual svg g{stroke:var(--aircraft-color)}
.aircraft-map[data-pattern="stripe"] .plane-vector svg{stroke-dasharray:4 2}
.aircraft-map[data-pattern="tail"]:not(.is-ai):not(.is-muted) .plane-vector svg{fill:var(--color-positive-text)}
.aircraft-map[data-pattern="full"]:not(.is-muted) .plane-vector svg{fill:currentColor}
.procurement-preview{display:grid;grid-template-columns:44% minmax(0,1fr);align-items:center;border-bottom:1px solid var(--line)}
.procurement-preview .aircraft-art{height:auto;aspect-ratio:4/3}
.procurement-preview p{font-size:var(--font-12)}
.procurement-preview b{font-size:var(--font-16)}
.procurement-preview summary{font-size:var(--font-12);min-height:var(--control-height)}
.procurement-preview details p{grid-column:1/-1}
.procurement-preview details[open]{position:relative}
.flight-mode #content>details{display:block;border-bottom:1px solid var(--line)}
.flight-mode #content>details>summary{min-height:var(--control-height);display:flex;align-items:center;justify-content:flex-start;font-size:var(--font-14);cursor:pointer}
.flight-mode #content>details>summary::after{content:"⌄";color:var(--muted)}
.flight-mode #content>details[open]>summary::after{transform:rotate(180deg)}
.market-share-row progress::-webkit-progress-bar{background:var(--color-hover);border-radius:var(--radius-4)}
.market-share-row progress::-webkit-progress-value{background:var(--color-route);border-radius:var(--radius-4)}
.market-share-row.share-ai progress::-webkit-progress-value{background:var(--color-info)}
.market-share-row.share-player b{color:var(--color-positive-text)}
.market-share-row progress::-moz-progress-bar{background:var(--color-route)}
.fleet-settings{grid-column:1 / -1}
.fleet-settings>summary{min-height:var(--control-height);display:flex;align-items:center;cursor:pointer;font-size:var(--font-14);border-top:1px solid var(--line)}
.fleet-settings>summary::after{content:"⌄"}
.fleet-settings[open]>summary::after{transform:rotate(180deg)}
.fleet-settings>button{width:100%;min-height:var(--control-height)}
.fleet-settings .cabin-services{display:block}
@media(max-width:700px){.fleet-visual .aircraft-art>text{display:none}}
.fleet-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto}
.fleet-toolbar .primary-action{width:auto;min-height:var(--control-height);font-size:var(--font-14)}
.fleet-toolbar>button{min-height:var(--control-height);font-size:var(--font-14)}
#used-market{border-bottom:1px solid var(--line)}
#used-market>summary{min-height:var(--control-height);font-size:var(--font-12);cursor:pointer}
.flight-progress{display:grid}
.flight-progress progress{display:block;width:100%;height:6px;accent-color:var(--accent)}
.flight-status{font-size:var(--font-12);line-height:1.4;color:var(--muted)}
button, input, select{padding: var(--space-2) var(--space-3)}
header{padding: 0;gap: var(--space-3)}
header>div:first-child, header>div:last-child{padding: var(--space-2) var(--space-3);gap: var(--space-2)}
.brand-copy{gap: var(--space-1)}
.head-menu summary{padding: var(--space-2);gap: var(--space-2)}
.head-menu>div{padding: var(--space-3);gap: var(--space-2)}
.stats{left: var(--page-edge);max-width: calc(100vw - 2 * var(--page-edge));padding: var(--space-2) 0;gap: 0}
.stats .card{padding: 0 var(--space-3)}
.stats b{margin: var(--space-1) 0 0}
.widget{left: var(--page-edge);padding: 0 var(--panel-padding) var(--panel-padding)}
.ops-widget{left: auto;right: var(--page-edge)}
.widget-head{margin: 0 calc(-1 * var(--panel-padding));padding: var(--space-2) var(--panel-padding);gap: var(--space-2);min-height: var(--panel-header-height)}
.widget-head h2{margin: 0}
.widget-head button{padding: var(--space-2)}
#content{padding-top: var(--space-3)}
#content>:first-child{margin-block-start:0}
#content>:last-child{margin-block-end:0}
#content>.item:first-child{padding-top:0}
#content>.item:last-child{padding-bottom:0}
#content>label, .assignment label{display: block;margin: var(--space-3) 0 var(--space-2)}
#content>label:first-child{margin-top: 0}
#content>input, #content>select{margin: 0}
#content>button{margin-top: var(--space-3);min-height: var(--control-height)}
#content>h2, .center-title{margin: 0 0 var(--space-3);padding: 0;gap: var(--space-2)}
#content>h2:not(:first-child){margin-top: var(--space-4)}
.item{padding: var(--space-3) 0;margin: 0}
.item p, .item>input{margin: var(--space-2) 0}
.item>button{margin-top: var(--space-2)}
.item>h2{margin-bottom: var(--space-2)}
.line{margin: var(--space-2) 0;gap: var(--space-2)}
.item>.line:first-child{margin-top: 0}
.section-label{margin: var(--space-4) 0 var(--space-2)}
.panel-intro{padding: var(--space-3) 0}
.assignment{margin-top: var(--space-3)}
.assignment button{margin-top: var(--space-2)}
.route-aircraft{padding: var(--space-2) var(--space-3);margin-top: var(--space-2);gap: var(--space-1)}
.route-card>.line:first-child{gap: var(--space-2)}
.route-card>p{margin: var(--space-2) 0 var(--space-3)}
.aircraft-art{margin: var(--space-3) 0}
.fleet-row{padding: var(--space-3) 0;gap: var(--space-3)}
.fleet-visual .aircraft-art{margin: 0}
.fleet-info button{margin-top: var(--space-2);padding: var(--space-2)}
.fleet-route{padding-top: var(--space-2);gap: var(--space-1)}
.fleet-toolbar{margin: 0 0 var(--space-2);gap: var(--space-2)}
.fleet-toolbar .primary-action, .fleet-toolbar>button{margin: 0;padding: var(--space-2)}
.fleet-settings>summary{padding: var(--space-2) 0}
.fleet-settings>button{margin-top: var(--space-2)}
.procurement-preview{margin: var(--space-3) 0;padding-bottom: var(--space-3);gap: var(--space-3)}
.procurement-preview .aircraft-art{margin: 0}
.procurement-preview p{margin: var(--space-2) 0}
.procurement-preview .calculation-note{margin: 0;padding: 0}
.order-total{padding: var(--space-3);margin: var(--space-3) 0 0;gap: var(--space-2)}
.order-benefit{padding: var(--space-3) 0;margin: 0;gap: var(--space-2)}
.primary-action{margin: var(--space-3) 0}
#content details{margin: 0;padding: 0}
#content details>summary{min-height: var(--control-height);padding: var(--space-2) 0}
#content details[open]{padding-bottom: var(--space-3)}
#content details p{margin: var(--space-2) 0}
#content .calculation-note, #content .cabin-services{padding: 0;margin: 0;gap: var(--space-2)}
#content .cabin-services b{gap: var(--space-2)}
.flight-hero{padding: 0 0 var(--space-3);gap: var(--space-2)}
.flight-hero .aircraft-art{margin: 0}
.flight-hero h2{margin: var(--space-1) 0}
.flight-chips{gap: var(--space-1);margin-top: var(--space-2)}
.flight-hero .flight-chips span{padding: var(--space-1) var(--space-2)}
.flight-route{padding: var(--space-3) 0}
.flight-progress{gap: var(--space-2);padding: var(--space-3) 0}
.flight-progress progress, .flight-progress .line, .flight-status{margin: 0}
.flight-facts{gap: var(--divider-width);margin-bottom: var(--space-2)}
.flight-facts>div{padding: var(--space-2);gap: var(--space-2)}
.flight-telemetry{padding: var(--space-2);margin: var(--space-3) 0}
.telemetry-legend{gap: var(--space-3)}
.flight-mode #content>details>summary{margin: 0;padding: var(--space-2) 0;gap: var(--space-2)}
.flight-mode #content>details>summary b{margin-left: auto}
.flight-mode #content>details>summary::after{margin-left: auto}
.flight-mode #content>.line{margin: 0 0 var(--space-2)}
.flight-mode #content>.item{padding: var(--space-3) 0}
.flight-finance dl{margin: var(--space-2) 0}
.flight-finance dl>div{padding: var(--space-2) 0;gap: var(--space-2)}
.flight-finance dd{margin: 0}
.flight-finance .finance-total{margin-top: var(--space-2);padding-top: var(--space-3)}
.flight-weather{margin-top: var(--space-3);gap: var(--space-2)}
.airport-weather{padding: var(--space-3);margin: var(--space-3) 0;gap: var(--space-2)}
.airport-weather>div{gap: var(--space-2)}
.airport-view{margin-top: var(--space-3)}
.airport-view+p{margin: var(--space-2) 0 var(--space-3)}
.airport-live{margin: var(--space-3) 0}
.airport-roster{gap: var(--space-2);margin-top: var(--space-2)}
.airport-flight{padding: var(--space-2)}
.airport-boards{margin: var(--space-4) 0}
.airport-board{margin: var(--space-3) 0}
.airport-board caption{padding: var(--space-2) 0}
.airport-board th, .airport-board td{padding: var(--space-2) var(--space-1)}
.airport-board td small{margin-top: var(--space-1)}
.airport-board td button{padding: var(--space-2) 0}
.ops-widget section{padding: var(--space-4) 0}
.ops-widget section>h2{margin-bottom: var(--space-3)}
.ops-widget p{margin: var(--space-2) 0}
.ops-widget .item{padding: var(--space-2) 0}
.arrival-callout span{margin-top: var(--space-1)}
.metric-grid{gap: var(--space-2)}
.metric-grid>div{padding: var(--space-3)}
.metric-grid b{margin-top: var(--space-2)}
.brand-preview{padding: var(--space-3);gap: var(--space-3)}
.cabin-grid{gap: var(--space-3)}
.cabin-grid input, .cabin-grid select{margin-top: var(--space-2)}
.mission-row{padding: var(--space-3) 0;gap: var(--space-3)}
.market-share-row{padding: var(--space-3) 0}
.market-share-row small{margin-top: var(--space-2)}
.fare-control input{margin-top: var(--space-2)}
#used-market>summary{padding: var(--space-2) 0}
@media (max-width:700px){header{gap: var(--space-2)}
header>div:first-child, header>div:last-child{padding: var(--space-2);gap: var(--space-2)}
.stats{left: var(--page-edge);right: var(--page-edge);padding: var(--space-2) 0}
.stats .card{padding: 0 var(--space-3)}
.widget, .ops-widget{left: var(--page-edge);right: var(--page-edge);padding: 0 var(--panel-padding) var(--panel-padding)}
.fleet-row{gap: var(--space-2)}}
#mapNotice{padding: var(--space-5)}
.airport-badge{padding: var(--space-1) var(--space-2)}
.modal{padding: var(--viewport-top) var(--page-edge) var(--viewport-bottom)}
.modal>.card{padding: var(--space-4)}
@media(max-width:700px){.modal>.card{padding:var(--space-3)}}
.modal h2{margin-bottom: var(--space-3)}
.modal p{margin: var(--space-2) 0 var(--space-3)}
.modal input{margin: var(--space-2) 0 var(--space-3)}
.modal button{margin-top: var(--space-2);margin-right: var(--space-2)}
.rename-warn, #startStatus{margin-top: var(--space-2)}
.fleet-card>.line{margin-bottom: 0}
.fleet-settings>summary::after{margin-left: auto}
.airport-board .board-time{width:66px}
.airport-board .board-status{width:84px}
.brand-preview b{color:var(--aircraft-color,var(--color-accent))}

/* Shared paired fields: aircraft category/model and route endpoints. */
.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-block:var(--space-3)}
.field-pair>label{min-width:0;margin:0;display:flex;flex-direction:column;gap:var(--space-2)}
.field-pair select{width:100%;min-width:0;margin:0}
@media(max-width:360px){.field-pair{grid-template-columns:minmax(0,1fr)}}

.route-pricing{margin-block:var(--space-3);padding-block:var(--space-3);border-block:1px solid var(--color-line)}
.quote-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-block:var(--space-3);text-align:center}
.quote-metrics>div{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.quote-metrics b{font-size:var(--font-18);color:var(--color-accent);overflow-wrap:anywhere}

.route-pricing>label{display:block;font-size:var(--font-12);color:var(--color-muted);margin-bottom:var(--space-2)}
.route-pricing>input{display:block;width:100%;margin:0 0 var(--space-3)}

progress{display:block;width:100%}
/* Fixed map callouts keep their measured geometry; content spacing belongs inside widgets. */
#content progress{margin-block:var(--space-2)}

/* Disclosure heading > service card > secondary effect > status/action. */
.cabin-services>summary{font-size:var(--font-16);font-weight:650;color:var(--color-text)}
.cabin-services>summary>span{display:inline-flex;align-items:center;gap:var(--space-2)}
.cabin-services>summary>small{font-size:var(--font-12);font-weight:400;color:var(--color-muted);margin-left:var(--space-2)}
.section-help{font-size:var(--font-12);color:var(--color-muted);margin:0 0 var(--space-3)}
.service-list{display:grid;gap:var(--space-3);padding-bottom:var(--space-3)}
.service-card{padding:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-12);background:var(--color-raised);display:grid;gap:var(--space-2)}
.service-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);flex-wrap:wrap}
.service-heading b{font-size:var(--font-14);font-weight:650}
.service-card p{margin:0;color:var(--color-muted);font-size:var(--font-12);line-height:var(--line-body)}
.status-chip{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-2);border:1px solid var(--color-warning-line);border-radius:var(--radius-4);font-size:var(--font-12);color:var(--color-warning-text);background:var(--color-warning-bg);white-space:nowrap}
.status-chip.is-positive{color:var(--color-positive-text);background:var(--color-positive-bg);border-color:var(--color-positive-line)}
.status-chip.is-neutral{color:var(--color-muted);background:var(--color-surface);border-color:var(--color-line)}
.service-action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding-top:var(--space-2)}
.service-action small{display:flex;flex-direction:column;gap:var(--space-1);color:var(--color-muted)}
.service-action small b{color:var(--color-text);font-size:var(--font-14)}
.cabin-services .service-action button{width:auto;flex:1;min-width:120px}

.scope-license{display:block;color:var(--color-muted);font-size:var(--font-12);margin-block:var(--space-2)}
.order-submit{width:100%;margin-block:var(--space-3)}


.fleet-overview{padding:var(--space-3);margin-bottom:var(--space-3);border:1px solid var(--color-line);border-radius:var(--radius-12);background:var(--color-raised)}
.fleet-overview>b{display:block;font-size:var(--font-16);margin-bottom:var(--space-2)}
.fleet-overview>div{display:flex;gap:var(--space-3);flex-wrap:wrap;font-size:var(--font-12);color:var(--color-accent)}
.fleet-overview>small{display:block;margin-top:var(--space-2);font-size:var(--font-12);color:var(--color-muted)}
.cabin-services>summary{min-height:var(--control-height)}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* Shared airport search: Korean city, native airport name and stable code. */
.airport-picker{min-width:0;position:relative;display:flex;flex-direction:column;gap:var(--space-2)}
.airport-picker>label{margin:0}
.airport-picker input{width:100%;min-width:0;margin:0}
.airport-caption{color:var(--color-muted);font-size:var(--font-12);overflow-wrap:anywhere}
.airport-results{display:grid;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-8);background:var(--color-bg);max-height:280px;overflow:auto}
.airport-results button{display:grid;gap:var(--space-1);width:100%;text-align:left;padding:var(--space-2);min-height:var(--control-height)}
.airport-results button>span{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--font-14)}
.airport-results button strong{color:var(--color-accent);font-size:var(--font-12)}
.airport-results button small{color:var(--color-muted);font-size:var(--font-12);overflow-wrap:anywhere}

.rival-card>summary{min-height:var(--control-height);display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);cursor:pointer}
.rival-card>summary>span{font-size:var(--font-14);font-weight:650}
.rival-card>summary>small{color:var(--color-muted);font-size:var(--font-12);text-align:right}
.rival-card>button{width:100%;margin-top:var(--space-2)}
.rival-card .primary-action{width:100%;margin-block:var(--space-3)}

@media(max-width:700px){.field-pair:has(.airport-picker){grid-template-columns:minmax(0,1fr)}}

.splash-actions>select,#startRegionGroup>select{width:100%;margin-bottom:var(--space-3)}

/* Map chrome shares the workspace grid; solid player routes and dashed competitor routes. */
.map-network{position:fixed;z-index:2;top:var(--workspace-top);right:calc(var(--page-edge) + var(--control-height) + var(--space-3));display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);max-width:260px;padding:var(--space-2);border:1px solid var(--color-line);border-radius:var(--radius-12);background:var(--color-surface-a93)}
.network-keys{display:flex;flex-wrap:wrap;gap:var(--space-3);width:100%;font-size:var(--font-12);color:var(--color-muted)}
.network-key{display:inline-flex;align-items:center;gap:var(--space-2)}
.network-key::before{content:'';width:24px;border-top:2px solid var(--color-route)}
.network-key.rival::before{border-top-style:dashed;border-top-color:var(--color-info)}
.map-network button{flex:1;min-width:0;padding:var(--space-2);font-size:var(--font-12)}
.map-network button[aria-pressed=true]{color:var(--color-positive-text);border-color:var(--color-positive-line)}
.map-network .network-focus{color:var(--color-warning-text);border-color:var(--color-warning-line);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:700px){.map-network{left:var(--page-edge);max-width:none}}
@media(max-height:500px){.map-network{left:var(--page-edge);right:auto}
body:has(.widget:not([hidden])) .map-network{display:none}}
.route-card>.quote-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
.quote-metrics small .ui-icon{display:block;margin-inline:auto;margin-block-end:var(--space-1)}
.info-facts>span{display:inline-flex;align-items:center;gap:var(--space-1)}

input[type=file]{width:100%;max-width:100%;min-width:0}
