/* Aviator — extends applications.css; every colour follows the site theme. */
body[data-app=aviator]{--av-cl-tint:rgba(126,196,112,.22);--av-cl-line:rgba(66,140,58,.85);--av-cl-edge:#3f7a3a;--av-ch-tint:rgba(225,120,165,.16);--av-ch-line:rgba(190,70,120,.8);--av-ch-edge:#a8406f;--av-obs:#a33c86;--av-cloud:#5d6d82;--av-ground:#b49c74;--av-below:#eef1f5;--av-above:#6b7590;--av-fog:#3b82d4;--av-fog-line:rgba(37,99,190,.9)}
html[data-theme=dark] body[data-app=aviator]{--av-cl-tint:rgba(126,196,112,.16);--av-cl-line:rgba(150,220,140,.75);--av-cl-edge:#a6dd9a;--av-ch-tint:rgba(225,120,165,.14);--av-ch-line:rgba(240,150,190,.75);--av-ch-edge:#f0a2c6;--av-obs:#e07ac0;--av-cloud:#d9dee6;--av-ground:#5d4f37;--av-below:#dfe4ec;--av-above:#59627a;--av-fog:#8ab8f0;--av-fog-line:rgba(160,200,245,.9)}
body[data-app=aviator] [data-status=good]{--av-status:var(--green)}
body[data-app=aviator] [data-status=caution]{--av-status:var(--amber)}
body[data-app=aviator] [data-status=significant]{--av-status:var(--red)}
body[data-app=aviator] [data-status=nodata]{--av-status:var(--text3)}
/* the site-wide section{padding} is for landing pages, not working surfaces */
.av-head,.av-simple,.av-cards,.av-analysis,.av-outlook{padding:0}
.av-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* looks: chosen in the toolbar, kept in the wl_aviator_scheme cookie (scheme.mjs).
   Slate: cool blue-grey, headings in the sans-serif. Night amber: cockpit amber on near-black at night, warm cream by day. */
html[data-scheme=slate] body[data-app=aviator]{--serif:var(--sans);--bg:#f4f6f8;--bg2:#ffffff;--bg3:#e9edf1;--bg4:#dde3e9;--text:#15202b;--text2:#4a5968;--text3:#8291a0;--accent:#0f6e8c;--accent2:#0a5670;--accent-dim:rgba(15,110,140,.08);--accent-hover:#1a8aad;--line:rgba(21,32,43,.08);--line2:rgba(21,32,43,.12);--line3:rgba(21,32,43,.2);--glass:rgba(255,255,255,.88);--glass2:rgba(255,255,255,.96)}
html[data-theme=dark][data-scheme=slate] body[data-app=aviator]{--bg:#0f1519;--bg2:#161d23;--bg3:#1d262d;--bg4:#243039;--text:#e4ebf1;--text2:#9fb0bf;--text3:#64758a;--accent:#4fb9d6;--accent2:#2f9ab7;--accent-dim:rgba(79,185,214,.1);--accent-hover:#74cbe4;--on-accent:#06161c;--line:rgba(255,255,255,.06);--line2:rgba(255,255,255,.1);--line3:rgba(255,255,255,.16);--glass:rgba(15,21,25,.84);--glass2:rgba(18,25,30,.95)}
html[data-scheme=slate] body[data-app=aviator] .av-route-line,html[data-scheme=slate] body[data-app=aviator] .av-verdict p,html[data-scheme=slate] body[data-app=aviator] .av-rd-big b,html[data-scheme=slate] body[data-app=aviator] h1,html[data-scheme=slate] body[data-app=aviator] .control-title{font-weight:500;letter-spacing:-.01em}
html[data-scheme=amber] body[data-app=aviator]{--bg:#f9f4ea;--bg2:#fffcf5;--bg3:#f1e8d6;--bg4:#e7dcc5;--text:#2a2117;--text2:#6b5a44;--text3:#a08a6a;--accent:#b86a12;--accent2:#95540c;--accent-dim:rgba(184,106,18,.1);--accent-hover:#d07f1f;--line:rgba(60,40,10,.1);--line2:rgba(60,40,10,.15);--line3:rgba(60,40,10,.22);--glass:rgba(255,252,245,.88);--glass2:rgba(255,252,245,.96)}
html[data-theme=dark][data-scheme=amber] body[data-app=aviator]{--bg:#0d0b08;--bg2:#15110c;--bg3:#1d1710;--bg4:#262015;--text:#f2d9a6;--text2:#c3a26e;--text3:#7d6a48;--accent:#f0a93c;--accent2:#d48f23;--accent-dim:rgba(240,169,60,.1);--accent-hover:#ffbf5a;--on-accent:#1a1104;--green:#9ed07a;--red:#ff7a5c;--amber:#ffc46a;--line:rgba(240,169,60,.08);--line2:rgba(240,169,60,.14);--line3:rgba(240,169,60,.22);--glass:rgba(13,11,8,.84);--glass2:rgba(16,13,9,.95)}
.av-scheme{display:inline-flex;align-items:center;gap:8px;font:.78rem var(--sans);color:var(--text2)}
.av-scheme select{min-height:36px;padding:0 8px;border:1px solid var(--line3);border-radius:3px;background:var(--bg);color:var(--text);font:inherit}

/* controls: the Flight Plan column, a quarter wider than the applications' default */
body[data-app=aviator] .workspace{grid-template-columns:331px minmax(0,1fr)}
@media(max-width:1050px){body[data-app=aviator] .workspace{grid-template-columns:288px minmax(0,1fr)}}
@media(max-width:760px){body[data-app=aviator] .workspace{grid-template-columns:1fr}}
.av-form .control-title{margin-bottom:18px}
.av-row{display:flex;gap:8px;align-items:flex-end}
.av-row>.app-field{flex:1;min-width:0}
.av-swap{width:100%;justify-content:center;margin:-8px 0 18px}
.av-nudge{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:-10px 0 20px}
.av-nudge .btn{justify-content:center}
.av-seg{display:inline-flex;flex-wrap:wrap;border:1px solid var(--line3);border-radius:3px;overflow:hidden;background:var(--bg2)}
.av-seg button{min-height:44px;padding:8px 12px;background:transparent;color:var(--text2);border:0;border-right:1px solid var(--line2);font:500 .8rem var(--sans);cursor:pointer}
.av-seg button:last-child{border-right:0}
.av-seg button[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}
.av-form fieldset{border:0;margin:0 0 20px;padding:0;min-width:0}
.av-form legend{font-size:.875rem;color:var(--text2);margin-bottom:8px}
.av-form fieldset .av-seg{width:100%}
.av-form fieldset .av-seg button{flex:1 1 33%}
.av-form fieldset .app-field{margin:10px 0 0}
#draft-notice{font-size:.8rem;line-height:1.6;color:var(--text2);margin:-6px 0 16px}
#draft-notice:empty{display:none}
.av-sample-settings{border-top:1px solid var(--line2);margin-top:6px}

/* heading: the description runs the full width of the access bar below; the catalogue link sits top right */
body[data-app=aviator] .app-heading{display:block;position:relative}
body[data-app=aviator] .app-heading p{max-width:none}
body[data-app=aviator] .app-heading>a{position:absolute;right:0;top:0}
@media(max-width:760px){body[data-app=aviator] .app-heading>a{display:none}}

/* toolbar, route heading */
.av-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}
.av-units{font:.75rem var(--mono);color:var(--text2)}
.app-page .av-route-line{font:400 clamp(1.8rem,3.4vw,2.6rem)/1.12 var(--serif);margin:0;overflow-wrap:anywhere}
.av-arrow{color:var(--accent);margin:0 .15em}
.av-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}
.av-kb-meta{display:none}
.av-kb-bar{display:none;gap:10px;margin:12px 0}

/* status pill and provenance badge */
.av-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 8px;border-radius:2px;font:500 .68rem var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--av-status);background:color-mix(in srgb,var(--av-status) 13%,transparent)}
.av-pv{display:inline-block;font:600 .58rem/1 var(--mono);padding:2px 3px;border-radius:2px;margin-left:3px;vertical-align:2px;cursor:help;color:var(--text2);background:var(--bg3)}
.av-pv[data-pv=m]{color:var(--accent);background:var(--accent-dim)}
.av-pv[data-pv=d]{color:var(--syn-str);background:color-mix(in srgb,var(--syn-str) 12%,transparent)}
.av-pv[data-pv=i]{color:var(--syn-num);background:color-mix(in srgb,var(--syn-num) 12%,transparent)}
.av-pv[data-pv=o]{color:var(--av-obs);background:color-mix(in srgb,var(--av-obs) 12%,transparent)}
.av-pv[data-pv=t]{color:var(--syn-bool);background:color-mix(in srgb,var(--syn-bool) 12%,transparent)}
.av-synth{font:500 .62rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--amber);margin-right:2px}

/* simple view: verdict, three columns, checks */
.av-simple{margin-top:18px}
.av-verdict{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 20px;background:var(--bg2);border:1px solid var(--line2);border-left:5px solid var(--av-status);border-radius:3px}
.av-verdict p{font:400 clamp(1.2rem,2.2vw,1.5rem)/1.35 var(--serif);color:var(--text);margin:0;flex:1;min-width:200px}
.av-scols,.av-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}
.av-scol,.av-chk,.av-card,.av-stop{background:var(--bg2);border:1px solid var(--line2);border-radius:3px;min-width:0}
.av-scol{padding:16px 18px}
.av-scol .lbl,.av-stop .lbl{font:500 .68rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text2)}
.av-scol .nm{font:500 1.05rem/1.3 var(--sans);margin:4px 0 12px;display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline;overflow-wrap:anywhere}
.av-scol .src{margin-left:auto;font:400 .7rem var(--mono);color:var(--text2)}
.av-scol .src.obs{color:var(--av-obs)}
.av-scol .kv{display:grid;grid-template-columns:76px minmax(0,1fr);gap:7px 10px;align-items:baseline}
.av-scol dt{font:500 .66rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text2)}
.av-scol dd{font:400 1.15rem/1.25 var(--mono);letter-spacing:-.02em;color:var(--text);overflow-wrap:anywhere}
.av-scol dd small{font:400 .75rem var(--sans);color:var(--text2);letter-spacing:0}
.av-scol dd.now{font-size:.75rem;line-height:1.4}
.av-scol .src.taf{color:var(--text)}
body[data-app=aviator] dd.warn,body[data-app=aviator] td.warn,.av-rep .warn{color:var(--amber)}
body[data-app=aviator] dd.bad,body[data-app=aviator] td.bad{color:var(--red)}
.av-chk{border-top:3px solid var(--av-status);padding:14px 16px;font-size:.8rem}
.av-chk header,.av-card header{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.av-chk h3,.av-card h3{font:500 .7rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text2);margin:0}
.av-chk .kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 12px;align-items:baseline}
.av-chk dt{color:var(--text2)}
.av-chk dt small{color:var(--text3)}
.av-chk dd{text-align:right;font:400 .78rem var(--mono);color:var(--text)}
.av-chk .why{font-size:.75rem;line-height:1.55;color:var(--text2);margin-top:10px}
.av-fresh,.av-note,.av-datanote{font-size:.8rem;line-height:1.65;color:var(--text2);margin-top:12px}
.av-datanote .stale{color:var(--amber)}
.av-fresh b,.av-datanote b{color:var(--text);font-weight:500}
/* personal minima: a second verdict under the guidance verdict, then both ends' five checks */
.av-minima{margin-top:12px}
.av-minima-verdict{padding:12px 18px}
.av-minima-verdict p{font-size:clamp(1rem,1.8vw,1.2rem)}
.av-mn-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:10px}
.av-mn-end{background:var(--bg2);border:1px solid var(--line2);border-radius:3px;padding:10px 14px;min-width:0}
.av-mn-end h4{font:500 .68rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text2);margin:0 0 8px;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.av-mn-end .av-mn-af{text-transform:none;letter-spacing:0;font:400 .8rem var(--sans);color:var(--text);overflow-wrap:anywhere}
.av-mn-end .kv{display:grid;grid-template-columns:84px minmax(0,1fr);gap:4px 10px;align-items:baseline;margin:0}
.av-mn-end dt{font:500 .64rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text2)}
.av-mn-end dd{font:400 .95rem/1.25 var(--mono);letter-spacing:-.01em;color:var(--text);margin:0;overflow-wrap:anywhere}
.av-mn-end dd small{font:400 .72rem var(--sans);color:var(--text2);letter-spacing:0}
.av-mn-end dd.unknown{color:var(--text2)}
.av-mn-earliest{margin:10px 0 0;font-size:.9rem;line-height:1.5;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.av-mn-note{margin-top:8px}
/* the return leg under the outbound briefing */
.av-return{margin-top:28px;padding-top:18px;border-top:2px solid var(--line2)}
.av-return-line{font:500 1.15rem/1.35 var(--sans);margin:0 0 12px;overflow-wrap:anywhere}
.av-return .av-note{margin-top:12px}

/* full view: cards, strip */
.av-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.av-card{display:flex;flex-direction:column;gap:6px;border-top:3px solid var(--av-status);padding:16px 18px}
.av-headline{font:400 1.3rem/1.22 var(--serif);color:var(--text);margin:0}
.app-page .av-headline{color:var(--text)}
.av-lines,.av-obs{display:grid;gap:5px}
.av-line{display:flex;gap:8px;align-items:baseline;font-size:.78rem}
.av-line .k{flex:0 0 78px;color:var(--text2);font-size:.72rem}
.av-line .v{color:var(--text);font-family:var(--mono);font-size:.76rem;min-width:0;overflow-wrap:anywhere}
.av-line .v small{font-family:var(--sans);color:var(--text2)}
.av-obs{margin-top:4px;padding-top:8px;border-top:1px dashed var(--line3)}
.av-card details{margin-top:auto}
.app-page .av-card summary{min-height:36px;padding:8px 0 2px;font-size:.8rem}
.av-card ul{padding-left:18px;font-size:.78rem;line-height:1.55;color:var(--text2)}
.app-page .av-card .ok{font-size:.78rem;font-style:italic}
.av-full>.av-checks{margin-top:14px}
.av-strip{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);gap:10px;margin-top:22px}
.av-stop{padding:14px 16px}
.av-stop h3{font:500 1rem/1.3 var(--sans);margin:4px 0 8px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;overflow-wrap:anywhere}
.av-stop .t{margin-left:auto;font:.75rem var(--mono);color:var(--text2)}
.av-stop .kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;font-size:.78rem}
.av-stop dt{font:500 .64rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text2);padding-top:2px}
.av-stop dt.obs{color:var(--av-obs)}
.av-stop dd{font-family:var(--mono);font-size:.76rem;color:var(--text);overflow-wrap:anywhere}
.av-stop dd small{font-family:var(--sans);color:var(--text2)}
.av-link{align-self:center;color:var(--text3);font-size:1.3rem}

/* detailed analysis tabs */
.av-analysis{margin-top:34px}
.av-analysis>h2{font:400 1.85rem/1.2 var(--serif);margin:0 0 4px}
.av-analysis>p{font-size:.875rem}
.av-tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--line3);margin-top:14px}
.av-tabs [role=tab]{min-height:44px;padding:10px 14px;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--text2);font:500 .85rem var(--sans);cursor:pointer}
.av-tabs [role=tab]:hover{color:var(--text)}
.av-tabs [role=tab][aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}
.av-tabpanel{padding:20px 0 4px;min-width:0}
.av-tabpanel>.av-lead{font-size:.875rem;margin-bottom:12px;max-width:80ch}
.app-page .av-sub{font:500 .95rem/1.4 var(--sans);margin:22px 0 8px;color:var(--text)}
.av-tabpanel>.av-sub:first-child,.av-tabpanel>div:first-child>.av-rep:first-child{margin-top:0}
.av-table-wrap{overflow:auto;max-width:100%;border:1px solid var(--line2);background:var(--bg2);margin:8px 0}
.av-table-wrap table{width:100%;border-collapse:collapse;font-size:.75rem;white-space:nowrap}
.av-table-wrap th,.av-table-wrap td{padding:7px 10px;border-bottom:1px solid var(--line2);text-align:right;font-family:var(--mono);font-weight:400}
.av-table-wrap thead th{font:500 .68rem/1.3 var(--sans);color:var(--text2);white-space:normal;vertical-align:bottom}
.av-table-wrap th[scope=row],.av-table-wrap thead th:first-child{text-align:left;font-family:var(--sans);color:var(--text)}
.av-table-wrap td{color:var(--text2)}
.av-table-wrap tr.hl>*{background:var(--accent-dim);color:var(--text)}
.av-table-wrap tr.closed>*{color:var(--text3)}
.av-table-wrap tr:last-child>*{border-bottom:0}
.av-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.av-rep{margin:0 0 18px;font-size:.8rem}
.av-rep .h{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;color:var(--text2)}
.av-rep .h b{color:var(--text);font-weight:500}
.av-rep .st{font-size:.75rem}
.app-page .av-rep .dec{margin-top:6px;color:var(--text);line-height:1.6}
.av-raw{white-space:pre-wrap;overflow-wrap:anywhere;font:400 .75rem/1.6 var(--mono);background:var(--bg3);color:var(--text2);padding:8px 10px;border-radius:3px;margin-top:4px}
.app-page .av-rep .none{color:var(--text3);font-style:italic;margin-top:4px}
.av-tafg{overflow-x:auto;margin-top:8px}
.av-tafg table{border-collapse:separate;border-spacing:2px;font:.7rem var(--mono)}
.av-tafg th{color:var(--text2);font-weight:500;padding:2px 4px;white-space:nowrap;text-align:center}
.av-tafg tbody th{text-align:right;font-family:var(--sans)}
.av-tafg td{padding:5px 6px;border-radius:2px;text-align:center;white-space:nowrap;background:var(--bg3);min-width:48px;color:var(--text)}
.av-tafg td[data-band=good]{background:color-mix(in srgb,var(--green) 16%,var(--bg2))}
.av-tafg td[data-band=caution]{background:color-mix(in srgb,var(--amber) 26%,var(--bg2))}
.av-tafg td[data-band=significant]{background:color-mix(in srgb,var(--red) 26%,var(--bg2))}
.av-tafg td[data-band=nodata]{color:var(--text3)}
.av-tafg td.tempo{font-size:.64rem;color:var(--text2);background:repeating-linear-gradient(45deg,transparent 0 4px,color-mix(in srgb,var(--amber) 22%,transparent) 4px 6px)}
.av-tafg .mark{outline:2px solid var(--accent);outline-offset:-1px}
.av-tafg th.mark{color:var(--accent);outline:0}

/* cross section, tephigram, lookdown */
.av-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-bottom:12px}
.av-ctl label{font-size:.875rem;color:var(--text2)}
.av-ctl select{width:auto;min-height:44px}
/* The tephigram takes what the diagnostics leave: a fixed, readable column for them, never a sliver. */
.av-tp-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start;margin-top:22px}
.av-tp-grid .av-tp{max-width:640px}
.av-xs,.av-tp,.av-ld-stack{display:block;width:100%;height:auto;background:var(--bg2);border:1px solid var(--line2)}
.av-xs text,.av-tp text,.av-ld-stack text{font:10px var(--mono);fill:var(--text2)}
.av-tp text{font-size:11px}
.av-grid{stroke:var(--line2);stroke-width:1}
/* cloud after the Met Office cross-section chart: green low/medium, pink high, drawn outline */
.av-hatch.low rect{fill:var(--av-cl-tint)}.av-hatch.low line{stroke:var(--av-cl-line);stroke-width:1}
.av-hatch.high rect{fill:var(--av-ch-tint)}.av-hatch.high line{stroke:var(--av-ch-line);stroke-width:1}
.av-cl-edge{fill:none;stroke-width:3.2;stroke-linejoin:round}.av-cl-edge.low{stroke:var(--av-cl-edge)}.av-cl-edge.high{stroke:var(--av-ch-edge)}
.av-cl-paper{fill:var(--bg2)}
.av-legend i.av-sw{width:18px;height:11px;border:1.5px solid;border-radius:5px;vertical-align:-1px}
.av-sw.low{border-color:var(--av-cl-edge);background:repeating-linear-gradient(45deg,var(--av-cl-line) 0 1px,var(--av-cl-tint) 1px 4px)}
.av-sw.high{border-color:var(--av-ch-edge);background:repeating-linear-gradient(45deg,var(--av-ch-line) 0 1px,var(--av-ch-tint) 1px 4px)}
.av-standin{font-size:.78rem;color:var(--amber);margin-top:6px}
.av-xs-iso{fill:none;stroke:var(--red);stroke-width:.8;opacity:.5;stroke-dasharray:3 3}
.av-xs-iso.zero{stroke:var(--accent);stroke-width:2;opacity:1;stroke-dasharray:none}
.av-xs-ground{fill:var(--av-ground)}
.av-xs-fog{fill:url(#av-fog-grad);stroke:var(--av-fog-line);stroke-width:1;stroke-linejoin:round}
.av-xs-fog.clearing{opacity:.55;stroke-dasharray:3 3}
.av-fog-stop-top{stop-color:var(--av-fog);stop-opacity:.12}
.av-fog-stop-bottom{stop-color:var(--av-fog);stop-opacity:.7}
.av-legend i.av-sw.fog{background:linear-gradient(to bottom,rgba(59,130,212,.15),rgba(59,130,212,.7));border-color:var(--av-fog-line)}
path.av-barb{fill:var(--text);stroke:var(--text);stroke-width:1.1;stroke-linecap:round}
circle.av-barb{fill:none;stroke:var(--text);stroke-width:1.1}
.av-xs-lcl{fill:var(--green)}
.av-xs-cruise{stroke:var(--map-accent);stroke-width:2;stroke-dasharray:7 5}
.av-xs-pass{stroke:var(--text);stroke-width:1.2;stroke-dasharray:2 3}
.av-xs text.av-xs-label{fill:var(--text);font-weight:500}
/* journey: you, at the moment the slider chooses */
.av-xs-now line{stroke:var(--text);stroke-width:1.4;stroke-dasharray:2 3}
.av-xs-now circle{fill:var(--map-accent);stroke:var(--bg2);stroke-width:2}
.av-xs-moment{margin:12px 0 6px}
.av-xs-moment input{flex:1;min-width:200px;min-height:44px}
.av-xs-moment output{font:.85rem var(--mono);min-width:130px;text-align:right}
.app-page .av-xs-readout{font-size:.9rem;line-height:1.55;color:var(--text);margin:0 0 4px;max-width:92ch}
.av-legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.75rem;color:var(--text2);margin:8px 0 0;padding:0;list-style:none}
.av-legend i{display:inline-block;width:18px;height:0;border-top:2px solid;vertical-align:middle;margin-right:6px}
.av-tp-bar{fill:none;stroke:var(--text3);stroke-width:.6}.av-tp-bar.major{stroke-width:1.1}
.av-tp-iso{fill:none;stroke:var(--syn-num);stroke-width:.6;opacity:.55}.av-tp-iso.zero{stroke:var(--accent);opacity:1;stroke-width:1.6}
.av-tp-dry{fill:none;stroke:var(--syn-num);stroke-width:.6;opacity:.55}
.av-tp-sat{fill:none;stroke:var(--green);stroke-width:.7;stroke-dasharray:5 3;opacity:.7}
.av-tp-mix{fill:none;stroke:var(--amber);stroke-width:.7;stroke-dasharray:1.5 3;opacity:.8}
.av-tp-temp{fill:none;stroke:var(--red);stroke-width:2.6;stroke-linejoin:round}
.av-tp-dew{fill:none;stroke:var(--green);stroke-width:2.4;stroke-dasharray:7 4;stroke-linejoin:round}
.av-tp-parcel{fill:none;stroke:var(--text);stroke-width:1.5;stroke-dasharray:2 3}
.av-tp-buoyant{fill:var(--red);fill-opacity:.16}.av-tp-inhibited{fill:var(--accent);fill-opacity:.14}
.av-tp-cruise{fill:none;stroke:var(--map-accent);stroke-width:1.6;stroke-dasharray:7 5}
.av-tp-mark{fill:var(--bg2);stroke:var(--text);stroke-width:1.5}.av-tp-mark.fz{stroke:var(--accent)}.av-tp-mark.conv{stroke:var(--red)}
.av-tp text.av-tp-mk{fill:var(--text);font-weight:500}.av-tp text.av-tp-mk.cruise{fill:var(--map-accent)}
.av-tp text.av-tp-dl,.av-tp text.av-tp-tl{fill:var(--syn-num);font-size:9.5px}.av-tp text.av-tp-sl{fill:var(--green);font-size:9.5px}.av-tp text.av-tp-ml{fill:var(--amber);font-size:9px}
.av-tp text.av-tp-axis{font-size:10px;fill:var(--text2)}
.av-tp-cloud{fill:var(--av-cl-edge)}.av-tp-trop{fill:var(--text3);fill-opacity:.25}
.av-tp-frame{fill:none;stroke:var(--line3)}
.av-sw.buoyant{border-color:var(--red);background:color-mix(in srgb,var(--red) 16%,transparent)}.av-sw.inhibited{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.av-diag{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 14px;font-size:.8rem;margin-top:14px}
.av-diag dt{color:var(--text2)}
.av-diag dd{color:var(--text);overflow-wrap:anywhere}
.av-summary{padding-left:18px;font-size:.85rem;line-height:1.6;color:var(--text2);margin:12px 0}
.av-ld-alt{display:flex;align-items:center;gap:10px;flex:1;min-width:240px}
.av-ld-alt input{flex:1;min-height:28px}
.av-ld-alt output{font:.85rem var(--mono);min-width:80px;text-align:right}
.app-page .av-ld-view{font:400 1.2rem/1.4 var(--serif);color:var(--text);margin:6px 0 12px}
.av-ld-grid{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px;align-items:start}
.av-map .weather-map{height:clamp(300px,46vh,460px)}
.av-map .map-panel{min-height:300px}
/* Looking down on muted ground so white cloud stands out (the map reads these from its own element) */
#ld-map{--map-land:#76826a;--map-ocean:#3f5a6a;--map-line:#5e6a58;--map-ink:#eef1ea;--map-accent:#ff9a5a}
html[data-theme=dark] #ld-map{--map-land:#3d4838;--map-ocean:#1b2a35;--map-line:#55614f;--map-ink:#d7ddd2;--map-accent:#ffad73}
.av-ld-terrain{fill:var(--av-ground);opacity:.4}
.av-ld-bar{stroke:var(--line3);stroke-width:1}
.av-ld-bar.below{fill:var(--av-below)}
.av-ld-bar.above{fill:var(--av-above)}
.av-ld-bar.obs{stroke:var(--av-obs);stroke-width:1.6}
.av-ld-you{stroke:var(--map-accent);stroke-width:2}
.av-ld-stack text.av-ld-you-label{fill:var(--map-accent);font-weight:600}
.av-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:.78rem;color:var(--text2);margin-top:8px}
#panel-sat.is-loading,#panel-sat.is-loading .av-map,#panel-sat.is-loading .weather-map,#panel-sat.is-loading .btn{cursor:progress}
.av-sat-actions .btn[disabled]{opacity:.6}
.av-meta b{color:var(--text);font-weight:500}
.av-left td,.av-left thead th{text-align:left}
.av-hazards td:last-child{text-align:left;font-family:var(--sans);white-space:normal;min-width:16rem}

/* views: simple (default), full, kneeboard */
body[data-app=aviator]:not([data-aviator-view=full]) .av-full,body[data-aviator-view=full] .av-simple{display:none}
body[data-aviator-view=kneeboard] .av-kb-bar{display:flex}
body[data-aviator-view=kneeboard] .av-metrics{display:none}
body[data-aviator-view=kneeboard] .av-kb-meta{display:block;font:500 .85rem/1.5 var(--mono);margin-top:6px}
body[data-aviator-view=kneeboard] #results{--bg:#fff;--bg2:#fff;--bg3:#f1f1f1;--text:#111;--text2:#333;--text3:#666;--line:#999;--line2:#999;--line3:#111;--accent:#111;--accent-dim:#eee;--amber:#7a4f00;--red:#a8001c;--green:#111;--av-obs:#111;background:#fff;color:#111;padding:18px;border:1px solid #111}
body[data-aviator-view=kneeboard] .av-route-line{font:700 clamp(1.4rem,3vw,1.9rem)/1.2 var(--mono);letter-spacing:.01em}
body[data-aviator-view=kneeboard] .av-verdict{border:2px solid #111;border-left-width:10px}
body[data-aviator-view=kneeboard] .av-verdict p{font:600 1rem/1.4 var(--mono)}
body[data-aviator-view=kneeboard] .av-pill{color:#fff;background:#111}
body[data-aviator-view=kneeboard] .av-pill[data-status=caution]{background:#7a4f00}
body[data-aviator-view=kneeboard] .av-pill[data-status=significant]{background:#a8001c}
body[data-aviator-view=kneeboard] .av-scol,body[data-aviator-view=kneeboard] .av-chk{border:1.5px solid #111;border-radius:2px}
body[data-aviator-view=kneeboard] .av-mn-end{border:1.5px solid #111;border-radius:2px}
body[data-aviator-view=kneeboard] .av-mn-end dd.bad{font-weight:600;text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:#a8001c}
body[data-aviator-view=kneeboard] .av-return{border-top-color:#111}
body[data-aviator-view=kneeboard] .av-return-line{font:700 1.1rem/1.3 var(--mono)}
body[data-aviator-view=kneeboard] .av-chk{border-top-width:5px}
/* in every view: the airfield on its own line above what is measured there, the name wraps, the times keep their column */
.av-chk .av-chk-what{display:block}
.av-chk .kv{grid-template-columns:minmax(0,1fr) auto}
.av-chk dd{white-space:nowrap}
body[data-aviator-view=kneeboard] .av-scol .nm{border-bottom:1px solid #111;padding-bottom:6px}
body[data-aviator-view=kneeboard] .av-scol dd{font-weight:600;font-size:1.25rem}
body[data-aviator-view=kneeboard] .av-scol dd.warn{text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:#7a4f00}
body[data-aviator-view=kneeboard] .av-pv{color:#111;background:#eee}
body[data-aviator-view=kneeboard] .av-kb-bar .btn{color:#111;border-color:#111}

@media(max-width:1180px){.av-tp-grid{grid-template-columns:1fr}}
@media(max-width:900px){.av-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.av-metrics .metric{border-bottom:1px solid var(--line2)}.av-metrics .metric:nth-child(2n){border-right:0}.av-metrics .metric:nth-last-child(-n+2){border-bottom:0}.av-scols,.av-checks{grid-template-columns:1fr}.av-ld-grid{grid-template-columns:1fr}.av-ld-grid .av-ld-stack{max-width:320px}}
@media(max-width:760px){body[data-app=aviator] .app-controls{display:none;grid-template-columns:1fr}body[data-app=aviator] .app-controls.open{display:block}.av-strip{grid-template-columns:1fr}.av-link{display:none}.av-tabs [role=tab]{padding:10px}.av-route-line{font-size:1.7rem}}
@media(max-width:540px){.av-cards{grid-template-columns:1fr}.av-views{width:100%}.av-views button{flex:1}}

@media print{
  body[data-app=aviator]{background:#fff!important;color:#000!important;font-size:9pt}
  body[data-app=aviator]>*:not(main),body[data-app=aviator] main>*:not(#workspace),body[data-app=aviator] #workspace>*:not(#app-main),body[data-app=aviator] #app-main>*:not(#results){display:none!important}
  body[data-app=aviator] main{padding:0!important;margin:0!important;max-width:none!important}
  body[data-app=aviator] #workspace{display:block!important}
  body[data-app=aviator] #results{--bg:#fff;--bg2:#fff;--bg3:#f3f3f3;--text:#000;--text2:#222;--text3:#555;--line:#999;--line2:#999;--line3:#000;--accent:#000;--accent-dim:#eee;--av-obs:#000;padding:0;border:0}
  .av-kb-bar,.av-tabs,.av-ctl,.av-map,.av-ld-grid,.av-toolbar,.av-card details,.av-sat-actions{display:none!important}
  .av-card,.av-chk,.av-scol,.av-stop,.av-table-wrap tr{break-inside:avoid}
  .av-table-wrap{overflow:visible}
  .av-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  /* a kneeboard is one A5 sheet: keep the three columns and print the status colours */
  body[data-app=aviator] #results{print-color-adjust:exact;-webkit-print-color-adjust:exact}
  body[data-app=aviator] .av-scols,body[data-app=aviator] .av-checks{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:5px}
  body[data-app=aviator] .av-scol,body[data-app=aviator] .av-chk{padding:6px 8px;font-size:7pt}
  body[data-app=aviator] .av-scol .nm{font-size:9pt;margin:2px 0 5px}
  body[data-app=aviator] .av-scol .kv{grid-template-columns:auto minmax(0,1fr);gap:2px 6px}
  body[data-app=aviator] .av-scol dt{font-size:6pt}
  body[data-app=aviator] .av-scol dd{font-size:10.5pt}
  body[data-app=aviator] .av-scol dd small,body[data-app=aviator] .av-chk .why{font-size:6.5pt}
  body[data-app=aviator] .av-verdict{padding:5px 8px}
  body[data-app=aviator] .av-verdict p{font-size:9.5pt}
  body[data-app=aviator] .av-minima-verdict p{font-size:8pt}
  body[data-app=aviator] .av-mn-cols{gap:5px;margin-top:4px}
  body[data-app=aviator] .av-mn-end{padding:4px 8px;break-inside:avoid}
  body[data-app=aviator] .av-mn-end h4{font-size:6pt;margin-bottom:3px}
  body[data-app=aviator] .av-mn-end .kv{grid-template-columns:auto minmax(0,1fr);gap:1px 6px}
  body[data-app=aviator] .av-mn-end dt{font-size:6pt}
  body[data-app=aviator] .av-mn-end dd{font-size:8.5pt}
  body[data-app=aviator] .av-mn-end dd small,body[data-app=aviator] .av-mn-note,body[data-app=aviator] .av-mn-earliest{font-size:6.5pt}
  body[data-app=aviator] .av-mn-earliest .btn{display:none}
  body[data-app=aviator] .av-return{margin-top:10px;padding-top:6px;break-before:page}
  body[data-app=aviator] .av-return-line{font-size:11pt;margin-bottom:5px}
  body[data-app=aviator] .av-route-line{font-size:15pt}
  body[data-app=aviator] .av-kb-meta{font-size:7.5pt}
  body[data-app=aviator] .av-fresh{font-size:6.5pt;margin-top:4px}
  body[data-app=aviator] .av-chk dt,body[data-app=aviator] .av-chk dd{font-size:7pt}
  body[data-app=aviator] .av-chk h3,body[data-app=aviator] .av-pill{font-size:6pt}
  body[data-app=aviator] .av-pill{padding:2px 5px}
  body[data-app=aviator] .av-chk header{margin-bottom:3px}
  body[data-app=aviator] .av-chk .why{margin-top:4px}
}

/* runway & crosswind (the home page's live Aviator, in the briefing) */
/* a working section, not a landing-page one: no site-wide section padding */
.av-rwys{margin-top:6px;padding:0}
.av-rwys>.av-sub{margin-top:12px}
.av-rwys>.av-sub{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.av-rwy-limit{font:400 .78rem var(--mono);color:var(--text2);letter-spacing:0;text-transform:none}
.av-rwy-limit b{color:var(--text);font-weight:500}
.av-rwy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:10px}
.av-rwy{background:var(--bg2);border:1px solid var(--line2);border-top:3px solid var(--av-status);border-radius:3px;padding:14px 16px;min-width:0}
.av-rwy .lbl{font:500 .68rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text2)}
.av-rwy .nm{font:500 1.05rem/1.3 var(--sans);margin:4px 0 10px;overflow-wrap:anywhere}
.av-rwy-body{display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px;align-items:center}
.av-rd{width:150px;height:150px;display:block}
.rd-ring{fill:var(--bg);stroke:var(--line3)}
.rd-tick{stroke:var(--line3)}
.rd-tick.major{stroke:var(--text3)}
.rd-lab{font:13px var(--mono);fill:var(--text3)}
.rd-lab.n{fill:var(--text);font-weight:600}
.rd-rwy{fill:var(--bg3);stroke:var(--line3)}
.rd-centre{stroke:var(--text3);stroke-dasharray:5 5}
.rd-num{font:600 11px var(--mono);fill:var(--text3)}
.rd-num.on{fill:var(--accent)}
.rd-arrow{stroke:var(--accent);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;fill:none}
.rd-dot{fill:var(--accent)}
.av-rd-rwy{font:400 .8rem var(--mono);color:var(--text2)}
.av-rd-rwy b{font-size:1rem;color:var(--text);font-weight:500}
.av-rd-big{display:flex;align-items:baseline;gap:8px;margin:2px 0}
.av-rd-big b{font:300 3rem/1 var(--serif);color:var(--text);font-variant-numeric:tabular-nums}
.av-rd-big small{font:.7rem var(--mono);color:var(--text3);letter-spacing:.04em}
.av-rd-sub{font-size:.82rem;line-height:1.5;color:var(--text2);margin:0}
.av-rd-verdict{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;color:var(--text);margin:8px 0 0}
.av-rd-src{font:.7rem var(--mono);color:var(--text2);margin:8px 0 0}
.av-xc-wrap{margin-top:14px;background:var(--bg2);border:1px solid var(--line2);border-radius:3px;padding:12px 14px 6px}
.av-xc{display:block;width:100%;height:auto}
.xc-grid{stroke:var(--line)}
.xc-day{stroke:var(--line2)}
.xc-ylab,.xc-xlab,.xc-mklab{font:10px var(--mono);fill:var(--text3)}
.xc-xlab.day{fill:var(--text2);font-weight:600}
.xc-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.xc-line.dep{stroke:var(--text2);stroke-dasharray:6 4}
.xc-gust{fill:none;stroke:var(--text3);stroke-width:1.2;stroke-dasharray:2 3}
.xc-over{fill:var(--red)}
.xc-limit{stroke:var(--red);stroke-width:1.5;stroke-dasharray:6 5}
.xc-limlab{font:600 10px var(--mono);fill:var(--red)}
.xc-mark{stroke:var(--text);stroke-width:1.2}
.xc-mklab{fill:var(--text);font-weight:600}
.av-xw-help{margin:-12px 0 18px}
.av-minima-set .pair .app-field{margin:0 0 12px}
.av-minima-set .av-xw-help{margin:6px 0 0}
.av-return-ctl{margin:-8px 0 18px}
.av-check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:.875rem;color:var(--text2);cursor:pointer}
.av-check input{width:18px;height:18px;accent-color:var(--accent);margin:0;flex:none}
.av-return-ctl .pair{margin-top:4px}
.av-return-ctl .pair .app-field{margin-bottom:0}
@media(max-width:600px){.av-mn-cols{grid-template-columns:1fr}}
@media(max-width:900px){.av-rwy-grid{grid-template-columns:1fr}}
@media(max-width:540px){.av-rwy-body{grid-template-columns:120px minmax(0,1fr);gap:12px}.av-rd{width:120px;height:120px}}

/* wind map (the home page's live Aviator map, on this route) */
.av-windmap{--av-band:84px;position:relative;margin-top:14px;height:clamp(380px,50vh,520px);border:1px solid var(--line2);border-radius:3px;overflow:hidden;background:var(--av-sea,#d6e1ea)}
.av-wm{position:absolute;inset:0 0 var(--av-band) 0}
.av-wm-band{position:absolute;left:0;right:0;bottom:0;height:var(--av-band);z-index:3;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line2)}
.av-wm-xs{display:block;width:100%;height:100%}
.av-wm-xs text{font:9px var(--mono);fill:var(--text2)}
.av-wm-xs text.av-xs-label{fill:var(--text);font-weight:500}
.av-wm-ref{stroke:var(--text3);stroke-width:1;stroke-dasharray:4 4}
.av-wm-cruise{stroke:var(--map-accent);stroke-width:1.5;stroke-dasharray:6 4}
/* at the band's scale the ground is a thin line over a faint fill, and cloud outlines are light */
.av-wm-xs .av-xs-ground{fill-opacity:.3;stroke:var(--av-ground);stroke-width:1;stroke-linejoin:round}
.av-wm-xs .av-cl-edge{stroke-width:1.6}
.av-wm-open{position:absolute;inset:0;z-index:4;background:transparent;border:0;padding:0;cursor:pointer;border-radius:3px}
.av-wm-open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.av-wm-hint{position:absolute;right:12px;bottom:calc(var(--av-band) + 12px);padding:6px 11px;border-radius:99px;background:var(--text);color:var(--bg);font:.68rem var(--sans);opacity:0;transition:opacity .2s}
.av-wm-open:hover .av-wm-hint,.av-wm-open:focus-visible .av-wm-hint{opacity:1}
.av-wm-tag,.av-wm-legend{position:absolute;z-index:3;left:12px;padding:6px 11px;border-radius:99px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px var(--line2);font:.64rem var(--mono);letter-spacing:.04em;color:var(--text2);margin:0}
.av-wm-tag{top:12px;max-width:calc(100% - 24px)}
.av-wm-tag b{color:var(--text);font-weight:500}
.av-wm-legend{top:12px;left:auto;right:12px;display:flex;align-items:center;gap:8px;font-size:.6rem}
.av-wm-legend i{display:block;width:120px;height:6px;border-radius:3px}
.av-wm-note{position:absolute;z-index:5;right:12px;bottom:calc(var(--av-band) + 12px);max-width:min(360px,calc(100% - 24px));padding:8px 12px;border-radius:8px;background:var(--glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 0 1px var(--line2);font-size:.78rem;line-height:1.5;color:var(--text2)}
.av-wm-note .btn{margin-top:6px}
.av-wm-pin{width:16px;height:16px;margin:-8px 0 0 -8px}
.av-wm-pin i{display:block;width:16px;height:16px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px var(--bg2),0 0 0 4px var(--accent)}
.av-wm-pin span{position:absolute;left:24px;top:50%;transform:translateY(-50%);padding:5px 9px;border-radius:8px;background:var(--glass2);box-shadow:inset 0 0 0 1px var(--line2),0 4px 14px rgba(0,0,0,.12);font:.62rem/1.35 var(--mono);color:var(--text2);white-space:nowrap}
.av-wm-pin span b{display:block;color:var(--text);font-size:.7rem;font-weight:500}
.av-wm-pin--arr i{background:var(--bg2);box-shadow:0 0 0 3px var(--accent)}
.av-wm-pin--left span{left:auto;right:24px}
.av-wm-plane{margin:-13px 0 0 -13px;width:26px;height:26px;display:grid;place-items:center;color:var(--accent);filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}
.av-wm-plane svg{width:26px;height:26px;fill:var(--bg2)}
body[data-aviator-view=kneeboard] .av-windmap{display:none}
@media(max-width:760px){.av-windmap{--av-band:64px;height:clamp(300px,64vw,400px)}.av-wm-legend{display:none}}
@media print{.av-windmap{display:none!important}}

/* ---- flying days ahead ------------------------------------------------------------------ */
.av-outlook{margin-top:18px;padding:0}
.av-outlook h2{font:400 clamp(1.3rem,2.4vw,1.7rem)/1.2 var(--serif);margin:0 0 6px;color:var(--text)}
.av-outlook .av-lead{margin:0 0 14px}
.av-ol-days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:10px}
.av-ol-day{background:var(--bg2);border:1px solid var(--line2);border-top:4px solid var(--av-status);border-radius:3px;padding:12px 14px;min-width:0;display:flex;flex-direction:column;gap:8px}
.av-ol-day[data-departure=true]{box-shadow:inset 0 0 0 1px var(--accent,var(--text2))}
.app-page .av-ol-date{font:500 .7rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text2);margin:0;display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.av-ol-date small{font:400 .66rem var(--sans);letter-spacing:0;text-transform:none;color:var(--accent,var(--text))}
.av-ol-verdict{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.av-ol-share{font:400 .78rem var(--sans);color:var(--text2)}
.av-ol-hours{display:grid;grid-template-columns:repeat(24,1fr);gap:1px;height:12px;border:1px solid var(--line2);border-radius:2px;overflow:hidden;background:var(--bg)}
.av-ol-cell{display:block;min-width:0}
.av-ol-cell[data-cell=all],.av-ol-key .k-all::before{background:var(--green)}
.av-ol-cell[data-cell=some],.av-ol-key .k-some::before{background:var(--amber)}
.av-ol-cell[data-cell=none],.av-ol-key .k-none::before{background:var(--red)}
.av-ol-cell[data-cell=unk],.av-ol-key .k-unk::before{background:var(--text3);opacity:.5}
.av-ol-cell[data-cell=off],.av-ol-key .k-off::before{background:transparent}
.av-ol-votes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font:400 .78rem/1.35 var(--sans)}
.av-ol-votes li{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;min-width:0}
.av-ol-votes li::before{content:'';flex:none;width:8px;height:8px;border-radius:50%;margin-top:.35em;background:var(--text3)}
.av-ol-votes li[data-verdict=go]::before{background:var(--green)}
.av-ol-votes li[data-verdict=stop]::before{background:var(--red)}
.av-ol-vote{color:var(--text2);white-space:nowrap}
.av-ol-why{margin-left:auto;font-family:var(--mono);font-size:.74rem;text-align:right;overflow-wrap:anywhere;color:var(--text)}
.av-ol-why b{font-weight:500}
.av-ol-agreed{margin:auto 0 0;font-size:.82rem;line-height:1.4;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.av-ol-agreed .btn{min-height:32px;padding:4px 10px}
.av-ol-empty{color:var(--text2)}
.av-ol-key{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 0;font:400 .72rem var(--sans);color:var(--text2)}
.av-ol-key span{display:inline-flex;align-items:center;gap:5px}
.av-ol-key span::before{content:'';width:12px;height:8px;border:1px solid var(--line2);border-radius:1px}
.av-ol-judges{margin:8px 0 0;padding-left:18px;font:400 .8rem/1.5 var(--sans);color:var(--text2)}
.av-ol-note,.av-ol-method{margin-top:8px}
.av-ol-error{color:var(--text)}
body[data-aviator-view=kneeboard] .av-outlook,body[data-aviator-view=kneeboard] .av-glance{display:none}
@media (max-width:600px){.av-ol-days{grid-template-columns:repeat(2,minmax(0,1fr))}.av-ol-why{margin-left:0;text-align:left}}

/* ---- the flying days at a glance -------------------------------------------------------- */
.av-glance{margin:14px 0 0;padding:0}
.av-gl-days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.av-gl-days li{position:relative;min-width:0}
.av-gl-day{width:100%;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px 9px;border:1px solid var(--line2);border-radius:6px;background:var(--bg2);color:var(--text);cursor:pointer;font:inherit;min-height:44px;position:relative}
.av-gl-day:hover,.av-gl-day:focus-visible{border-color:var(--text2)}
.av-gl-day[data-departure=true]{box-shadow:inset 0 0 0 1px var(--accent)}
.gl-dw{font:600 .66rem var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--text2)}
.gl-dn{font:700 1.1rem var(--sans);line-height:1}
.av-glance{--av-on:#fff}html[data-theme=dark] .av-glance{--av-on:#111}
.gl-v{width:calc(100% - 8px);border-radius:4px;padding:3px 0;text-align:center;font:800 .6rem var(--sans);letter-spacing:.02em;text-transform:uppercase;color:var(--av-on);background:var(--text3)}
.v-yes .gl-v{background:var(--green)}.v-maybe .gl-v{background:var(--amber)}.v-no .gl-v{background:var(--red)}
.gl-q{display:flex;gap:2px}.gl-q i{width:7px;height:7px;border-radius:2px;display:block;background:var(--text3);opacity:.45}
.gl-q i.q-go{background:var(--green);opacity:1}.gl-q i.q-stop{background:var(--red);opacity:1}
.av-gl-tip{display:none;position:absolute;left:50%;top:calc(100% + 6px);transform:translateX(-50%);z-index:1000;width:230px;max-width:min(260px,80vw);text-align:left;background:var(--bg);color:var(--text);border:1px solid var(--line2);border-radius:4px;box-shadow:0 6px 20px rgba(0,0,0,.16);padding:10px 12px;font:400 .76rem/1.45 var(--sans);cursor:default;white-space:normal}
.av-gl-days li:first-child .av-gl-tip{left:0;transform:none}
.av-gl-days li:last-child .av-gl-tip{left:auto;right:0;transform:none}
.av-gl-day:hover .av-gl-tip,.av-gl-day:focus-visible .av-gl-tip{display:block}
.av-gl-tip b{display:block;margin-bottom:2px;font-weight:600}
.av-gl-tip .gl-share{display:block;color:var(--text2);margin-bottom:6px}
.av-gl-tip .gl-vote{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.av-gl-tip .gl-vote>span:first-child{color:var(--text2);white-space:nowrap}
.av-gl-tip .gl-vote>span:first-child::before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px;background:var(--text3);vertical-align:baseline}
.av-gl-tip .gl-vote[data-verdict=go]>span:first-child::before{background:var(--green)}
.av-gl-tip .gl-vote[data-verdict=stop]>span:first-child::before{background:var(--red)}
.av-gl-tip .gl-vote>span:last-child{font-family:var(--mono);font-size:.72rem;text-align:right;overflow-wrap:anywhere}
.av-gl-tip .gl-win{display:block;margin-top:6px;font-weight:600}
.av-gl-tip .gl-more{display:block;margin-top:6px;color:var(--text2);font-size:.7rem}
.av-gl-key{font-size:.74rem;color:var(--text2);margin:8px 0 0;line-height:1.6}
.k-yes,.k-maybe,.k-no{display:inline-block;padding:0 6px;border-radius:3px;color:var(--av-on);font-weight:600}
.k-yes{background:var(--green)}.k-maybe{background:var(--amber)}.k-no{background:var(--red)}
.av-ol-day:focus{outline:none}
.av-ol-day.av-ol-flash,.av-ol-day:focus-visible{outline:2.5px solid var(--text);outline-offset:2px}
@media (max-width:600px){.av-gl-days{grid-template-columns:repeat(4,minmax(0,1fr))}.av-gl-tip{display:none!important}}

/* aftercast: what the run said beside what each end observed (aviator-aftercast.mjs) */
.av-aftercast{padding:0;margin-top:18px}
.av-metric-fog{border-color:var(--amber)}
.av-fogmark{color:var(--amber);font-weight:600}
.av-mn-fog{display:block;color:var(--amber);font:400 .72rem var(--sans)}
.gl-fog{font:600 .58rem var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--amber)}
.av-gl-day[data-fog=true]{border-color:var(--amber)}
.gl-fogline{display:block;margin-top:4px;color:var(--amber)}
.av-ol-fog{margin:0;font-size:.82rem;line-height:1.45;color:var(--amber)}
.av-fog{margin-top:18px;padding:0}
.av-fog h2{font:400 clamp(1.3rem,2.4vw,1.7rem)/1.2 var(--serif);margin:0 0 6px;color:var(--text)}
.av-fog-end .kv{grid-template-columns:96px minmax(0,1fr)}
.av-fog-end dd.warn{color:var(--amber)}
.av-fog-end dd.bad{color:var(--red)}
.av-fog-end[data-fog=none] .av-note{margin:0}
.av-aftercast[hidden],.av-outlook[hidden]{display:none}
.av-aftercast h2{font:400 clamp(1.5rem,2.6vw,2rem)/1.15 var(--serif);margin:0 0 8px}
.av-ac-verdict p small{display:block;font:400 .85rem/1.5 var(--sans);color:var(--text2);margin-top:4px}
.av-ac-ends{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.av-ac-end{background:var(--bg2);border:1px solid var(--line2);border-radius:3px;padding:14px 16px;min-width:0}
.av-ac-end h3{font:500 1.05rem/1.3 var(--sans);margin:0 0 10px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;overflow-wrap:anywhere}
.av-ac-end h3 .lbl{font:500 .68rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text2)}
.av-ac-end h3 .src{margin-left:auto;font:400 .7rem var(--mono);color:var(--av-obs)}
.av-ac-table{width:100%;border-collapse:collapse;font-size:.85rem}
.av-ac-table th,.av-ac-table td{padding:6px 8px 6px 0;border-bottom:1px solid var(--line2);text-align:left;vertical-align:baseline;font-weight:400}
.av-ac-table thead th{font:500 .66rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text2)}
.av-ac-table th[scope=row]{font:500 .72rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--text2);width:26%}
.av-ac-table th[scope=row] small{font:400 .68rem var(--sans);text-transform:none;letter-spacing:0}
.av-ac-table td{font:400 1rem/1.25 var(--mono);letter-spacing:-.01em;color:var(--text);overflow-wrap:anywhere}
.av-ac-table td small{font:400 .72rem var(--sans);color:var(--text2);letter-spacing:0}
.av-ac-table td .unknown{color:var(--text2)}
.av-ac-table tbody tr:last-child>*{border-bottom:0}
.av-ac-delta{white-space:nowrap}
.av-ac-tag{display:inline-block;font:500 .6rem var(--mono);letter-spacing:.06em;text-transform:uppercase;padding:2px 5px;border-radius:2px;margin-left:4px;color:var(--text2);background:var(--bg3);vertical-align:1px}
.av-ac-table tr[data-status=worse] .av-ac-tag{color:var(--red);background:color-mix(in srgb,var(--red) 13%,transparent)}
.av-ac-table tr[data-status=better] .av-ac-tag{color:var(--green);background:color-mix(in srgb,var(--green) 13%,transparent)}
.av-ac-table tr[data-status=differs] .av-ac-tag{color:var(--amber);background:color-mix(in srgb,var(--amber) 13%,transparent)}
.av-ac-table tr[data-status=worse] td:nth-child(3){color:var(--red)}
.av-ac-minima{margin:10px 0 0;font-size:.85rem;line-height:1.5;display:flex;flex-wrap:wrap;gap:6px 18px}
.av-ac-mn b{font-weight:600}
.av-ac-mn[data-minima=outside] b{color:var(--red)}
.av-ac-mn[data-minima=within] b{color:var(--green)}
.av-ac-mn[data-minima=unknown] b{color:var(--text2)}
.av-ac-mn small{display:block;color:var(--text2)}
.av-ac-taf{margin:8px 0 0;font-size:.82rem;line-height:1.5;color:var(--text2)}
.av-ac-method{margin-top:12px}
.av-aftercast-ctl{margin-top:6px}
@media(max-width:900px){.av-ac-ends{grid-template-columns:1fr}}
@media(max-width:540px){.av-ac-table{table-layout:fixed}.av-ac-table th[scope=row]{width:24%}.av-ac-table td{font-size:.9rem}.av-ac-table th:nth-child(2),.av-ac-table th:nth-child(3){width:22%}.av-ac-tag{display:block;margin:2px 0 0;white-space:normal;line-height:1.3}.av-ac-table td:nth-child(2),.av-ac-table td:nth-child(3){overflow-wrap:normal;word-break:keep-all}}
body[data-aviator-view=kneeboard] .av-ac-end{border:1.5px solid #111;border-radius:2px}
@media print{body[data-app=aviator] .av-ac-end{break-inside:avoid}}
