/* Style « cockpit » : se charge après style.css et redéfinit les couleurs et les composants.
   Code couleur aviation : cyan = valeur, vert = OK, ambre = attention, magenta = actif / route, rouge = alarme.
   Thèmes : html[data-skin="night"] (écrans sombres) et html[data-skin="day"] (panneaux clairs). */
:root,html[data-skin="night"]{
  --bg:#0B0D12; --panel:rgba(16,19,24,.86); --panel2:#1C2027; --ink:#E8ECEF; --muted:#9BA3AE; --line:#262C34; --fill:rgba(255,255,255,.07);
  --cyan:#36D6E7; --cyan-bg:rgba(54,214,231,.14); --amber:#F2B33D; --amber-bg:rgba(242,179,61,.14); --ok:#3DDC84; --ok-bg:rgba(61,220,132,.14);
  --bad:#E5484D; --bad-bg:rgba(229,72,77,.15); --blue:#C026D3; --mag:#D946EF; --mag-ink:#F0ABFC; --glass:rgba(14,17,22,.9);
  --screen:#04070A; --screen-line:#1A2228; --bezel:#1A1D22; --bezel-line:#30353D; --key-a:#2E333B; --key-b:#1A1E24; --key-line:#3A4049; --key-ink:#C9D0D8;
  --font:Manrope,"Segoe UI",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace; --display:Archivo,Manrope,sans-serif;
  color-scheme:dark;
}
html[data-skin="day"]{
  --bg:#E9EEF3; --panel:rgba(255,255,255,.88); --panel2:#F3F5F8; --ink:#101820; --muted:#55606D; --line:#D5DCE3; --fill:rgba(16,24,32,.06);
  --cyan:#0B7F8E; --cyan-bg:rgba(11,127,142,.12); --amber:#A86400; --amber-bg:rgba(242,179,61,.18); --ok:#1F8A4C; --ok-bg:rgba(61,220,132,.16);
  --bad:#C62828; --bad-bg:rgba(229,72,77,.12); --blue:#A21CAF; --mag:#A21CAF; --mag-ink:#86198F; --glass:rgba(255,255,255,.92);
  --screen:#04070A; --screen-line:#1A2228; --bezel:#2A2F36; --bezel-line:#454B54; --key-a:#3A4049; --key-b:#262B32; --key-line:#4A515B; --key-ink:#F2F4F6;
  color-scheme:light;
}
body{background:transparent!important;font-family:var(--font)}
body::before{display:none!important}
#root{position:relative;z-index:1}
h1,h2,.large{font-family:var(--display);letter-spacing:-.01em}
.eyebrow,.lead.mono,.mono{font-family:var(--mono)}
.eyebrow{letter-spacing:.16em;text-transform:uppercase;font-size:.72rem;color:var(--muted)}
.lead{color:var(--muted)}
html[data-skin="day"] .lead,html[data-skin="day"] h1.large{text-shadow:none}

/* panneaux : écrans de bord translucides */
.card,.panel,.group,.deck{background:var(--panel);border:1px solid var(--line);border-radius:16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.group>.gh h3,.card>h3,.card h3{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);font-weight:600}
.sechead{font-family:var(--mono);font-size:.78rem!important;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)!important}

/* touches : magenta pour l'action principale, touches de panneau pour le reste */
.btn{background:linear-gradient(180deg,#C026D3,#A21CAF);color:#fff;border:1px solid var(--mag);border-radius:12px;font-weight:700;box-shadow:0 6px 18px rgba(192,38,211,.28)!important}
.btn.ghost,.btn.tint{background:linear-gradient(180deg,var(--key-a),var(--key-b));color:var(--key-ink);border:1px solid var(--key-line);box-shadow:inset 0 1px 0 rgba(255,255,255,.07)!important;font-family:var(--mono);font-size:.85rem;letter-spacing:.06em}
.btn.warn{background:var(--bad-bg);color:var(--bad);border-color:var(--bad);box-shadow:none!important}
.chip{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;border-radius:5px!important;background:transparent!important;border:1px solid var(--line)!important;color:var(--ink)!important}
.chip[aria-pressed="true"]{border-color:var(--cyan)!important;color:var(--cyan)!important;background:var(--cyan-bg)!important}
.seg,.tabs{background:transparent!important;gap:6px;padding:0!important}
.seg button,.tabs button{position:relative;background:linear-gradient(180deg,var(--key-a),var(--key-b))!important;border:1px solid var(--key-line)!important;border-radius:8px!important;color:var(--key-ink)!important;font-family:var(--mono);font-size:.78rem;letter-spacing:.06em;padding-top:12px!important}
.seg button::before,.tabs button::before{content:"";position:absolute;top:4px;left:36%;right:36%;height:2px;border-radius:1px;background:#30353D}
.seg button[aria-pressed="true"],.tabs button[aria-current="true"]{color:#fff!important;border-color:#5A606A!important}
.seg button[aria-pressed="true"]::before,.tabs button[aria-current="true"]::before{background:var(--mag);box-shadow:0 0 6px var(--mag)}
.pill{font-family:var(--mono);border-radius:3px;border:1px solid currentColor;background:transparent!important}

/* barre d'onglets : panneau de boutons poussoirs */
.tabbar{background:linear-gradient(180deg,#23272E,#15181D)!important;border:1px solid #3A4049!important;border-radius:16px;left:8px!important;right:8px!important;bottom:calc(10px + env(safe-area-inset-bottom,0px))!important;padding:6px!important;gap:5px;box-shadow:0 6px 18px rgba(0,0,0,.45)}
.tabbar button{position:relative;max-width:none!important;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(180deg,#262A31,#1A1D22)!important;border:1px solid #2C3138!important;border-radius:8px!important;color:#8C96A0!important;font-family:var(--mono);font-size:.5rem!important;letter-spacing:.02em;text-transform:uppercase;padding:10px 0 5px!important}
.tabbar button::before{content:"";position:absolute;top:4px;left:32%;right:32%;height:3px;border-radius:2px;background:#30353D}
.tabbar button[aria-current="true"]{color:#fff!important;border-color:#4A505A!important;background:linear-gradient(180deg,#343A43,#22262D)!important}
.tabbar button[aria-current="true"]::before{background:var(--mag);box-shadow:0 0 8px var(--mag)}
.tabbar svg{width:21px!important;height:21px!important}
@media (min-width:1000px){
  .tabbar{left:24px!important;right:auto!important;top:24px!important;bottom:24px!important;width:230px;border-radius:22px;padding:18px 12px!important;gap:8px}
  .tabbar::before{color:#F2F3F5!important;font-family:var(--display)}
  .tabbar button{font-size:.78rem!important;padding:14px 16px 14px 22px!important;flex:none}
  .tabbar button::before{top:14px;bottom:14px;left:8px;right:auto;width:3px;height:auto}
}

/* navigation secondaire */
.navbar{background:var(--glass)!important;border-bottom:1px solid var(--line)!important}
.navbar h1{font-family:var(--mono);font-size:.9rem!important;letter-spacing:.08em;text-transform:uppercase}
.navlink{color:var(--mag-ink)!important;font-family:var(--mono);font-size:.85rem!important;letter-spacing:.06em}

/* QCM : écran principal */
.qhead{font-family:var(--mono);font-size:.78rem!important;letter-spacing:.06em;color:var(--cyan)!important}
.qtext{font-family:var(--display);font-weight:800!important}
.choice{background:rgba(4,7,10,.55)!important;border:1px solid var(--line)!important;border-radius:10px!important}
html[data-skin="day"] .choice{background:rgba(255,255,255,.75)!important}
.choice .l{border-radius:4px!important;background:transparent!important;border:1px solid var(--muted);font-family:var(--mono);color:var(--ink)!important}
.choice.sel{border-color:var(--cyan)!important;background:var(--cyan-bg)!important} .choice.sel .l{border-color:var(--cyan);color:var(--cyan)!important}
.choice.ok{border-color:var(--ok)!important;background:var(--ok-bg)!important} .choice.ok .l{border-color:var(--ok);color:var(--ok)!important}
.choice.bad{border-color:var(--bad)!important;background:var(--bad-bg)!important} .choice.bad .l{border-color:var(--bad);color:var(--bad)!important}
.fb,.expl{border-radius:10px!important;border:1px solid var(--line);background:rgba(4,7,10,.6)!important}
html[data-skin="day"] .fb,html[data-skin="day"] .expl{background:rgba(255,255,255,.85)!important}
.fb b,.expl b{font-family:var(--mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}
.fb.ok b{color:var(--ok)} .fb.bad b{color:var(--amber)!important}
.expl b{color:var(--amber)}
.timer{font-family:var(--mono)}

/* profil d'approche (progression d'une série) */
.appr{border-radius:12px;background:rgba(4,7,10,.78);border:1px solid var(--screen-line);padding:8px 10px 4px;margin:4px 0 10px;font-family:var(--mono)}
.appr .h{display:flex;justify-content:space-between;font-size:.62rem;letter-spacing:.08em}
.appr .h span:first-child{color:#36D6E7} .appr .h span:last-child{color:#3DDC84}
.appr svg{display:block;width:100%;height:64px}

/* écrans de bord (accueil, progrès) */
.bezel{border-radius:20px;padding:9px 9px 7px;background:var(--bezel);border:1px solid var(--bezel-line);margin-bottom:14px}
.bezel .bz-t{display:flex;justify-content:space-between;align-items:center;padding:0 6px 7px;font-family:var(--display);font-weight:800;font-size:.66rem;letter-spacing:.18em;color:#8C96A0}
.bezel .bz-t i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#3DDC84;margin-left:5px}
.screen{background:var(--screen);border:1px solid var(--screen-line);border-radius:11px;padding:12px;font-family:var(--mono);color:#E8ECEF;display:flex;flex-direction:column;gap:10px}
.screen .hd{display:flex;justify-content:space-between;font-size:.66rem;letter-spacing:.06em;color:#E8ECEF}
.screen .hd span:first-child{color:#36D6E7}
.screen .sep{height:1px;background:#1C272D}
.keys{display:grid;gap:6px;padding:7px 2px 0}
.key{position:relative;height:36px;border-radius:8px;background:linear-gradient(180deg,#2A2E35,#1B1E23);border:1px solid #30353D;color:#B7C0C8;font-family:var(--mono);font-size:.62rem;font-weight:600;letter-spacing:.08em;display:flex;align-items:center;justify-content:center;padding-top:4px}
.key::before{content:"";position:absolute;top:4px;left:35%;right:35%;height:2px;border-radius:1px;background:#30353D}
.eis{display:grid;grid-template-columns:72px minmax(0,1fr) 56px;align-items:center;gap:9px;font-size:.68rem}
.eis .tr{position:relative;height:16px}
.eis .bd{position:absolute;left:0;right:0;top:6px;height:4px;display:flex;gap:2px}
.eis .bd i{display:block}
.eis .pt{position:absolute;top:0;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid #fff;margin-left:-5px}
.eis .rd{border:1px solid #E8ECEF;border-radius:3px;padding:1px 5px;text-align:right;font-size:.8rem;font-weight:600;color:#36D6E7}
.fpl{display:grid;grid-template-columns:10px 34px minmax(0,1fr) 40px 50px;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;font-size:.74rem;width:100%;background:none;border:0;color:#E8ECEF;text-align:left}
.fpl .nm{font-family:var(--font);color:#9AA6AF;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fpl.act{background:#2A0F2E;outline:1px solid #D946EF} .fpl.act .nm,.fpl.act b{color:#F0ABFC}
.metar{border-radius:12px;background:rgba(5,8,10,.88);border:1px solid #1F3A2C;padding:9px 12px;font-family:var(--mono);font-size:.72rem;line-height:1.55;color:#5CF2A1;text-align:left;width:100%}
.metar .mt{display:flex;justify-content:space-between;font-size:.6rem;letter-spacing:.12em;color:#2F8F5E}
.metar .hi{color:#F5A524}
.direct{display:flex;align-items:center;gap:14px;width:100%;padding:13px 15px;border-radius:18px;background:#0A0710;border:2px solid #D946EF;color:#fff;text-align:left;margin-bottom:16px}
.direct .dk{width:48px;height:48px;flex:none;border-radius:12px;background:#C026D3;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:1.05rem}
.direct small{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;color:#F0ABFC}
.direct b{display:block;font-family:var(--display);font-size:1.15rem}
.direct span.s{display:block;font-size:.8rem;color:#D9D2E0}
.direct .ete{margin-left:auto;font-family:var(--mono);font-size:.7rem;color:#F0ABFC;text-align:right}
.pkeys{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:16px}
.pkey{display:flex;flex-direction:column;align-items:center;gap:7px;background:none;border:0;color:var(--ink);font-family:var(--mono);font-size:.6rem;font-weight:600;letter-spacing:.04em;text-align:center}
.pkey .kb{position:relative;width:60px;height:56px;border-radius:10px;background:linear-gradient(180deg,#2E333B,#1A1E24);border:1px solid #3A4049;box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 3px 8px rgba(0,0,0,.35);display:grid;place-items:center}
.pkey .kb svg{width:23px;height:23px;stroke:#36D6E7;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pkey .bdg{position:absolute;top:-7px;right:-7px;padding:1px 5px;border-radius:3px;background:#F2B33D;color:#111;font-size:.6rem;border:1px solid #111}
.pkey:disabled{opacity:.45}
.fmsrow{display:grid;grid-template-columns:minmax(0,1fr) 12px;gap:8px;align-items:center;padding:9px 4px;border:0;border-bottom:1px solid #1C272D;background:none;width:100%;text-align:left;color:#E8ECEF;font-family:var(--mono)}
.fmsrow:last-child{border-bottom:0}
.fmsrow b{display:block;font-size:.76rem;color:#36D6E7;letter-spacing:.04em}
.fmsrow span{display:block;font-family:var(--font);font-size:.8rem;color:#C3CBD2;margin-top:2px}
.fmsrow em{font-style:normal;font-size:.55rem;padding:1px 5px;margin-left:6px;border:1px solid #3DDC84;color:#3DDC84;border-radius:2px;vertical-align:middle}
.trend{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;align-items:end;height:80px;border-bottom:1px solid #2A343B;background-image:repeating-linear-gradient(0deg,transparent 0 19px,#10181D 19px 20px)}
.trend i{display:block;margin:0 auto;width:70%;max-width:22px;border-radius:2px 2px 0 0;background:#3DDC84}
.trend i.td{background:#D946EF}
.trendl{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;font-size:.6rem;color:#7E8A93;text-align:center}
.hhead2{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:calc(6px + env(safe-area-inset-top,0px)) 0 0}
.hhead2 .dt{font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;color:var(--hero-sub,#C9D0D8);font-weight:600}
.hhead2 .hi{font-family:var(--display);font-weight:800;font-size:1.45rem;color:#F2F3F5;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.hhead2 .av{width:44px;height:44px;border-radius:22px;background:rgba(20,23,29,.75);border:1px solid #3A4049;color:#fff;font-weight:700;display:grid;place-items:center}
.hhead2 .av svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}
.home-cols{display:block}
@media (min-width:1000px){.home-cols{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;align-items:start}}

/* galons */
.galons svg{display:block;width:100%;height:132px}
.gsteps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;text-align:center;font-size:.56rem;color:#8C96A0}
.gsteps i{display:block;width:26px;height:3px;margin:2px auto;background:#2A2F36} .gsteps i.on{background:#D4A537}
.gsteps .me{color:#E8ECEF}
@keyframes gshine{0%{transform:translateX(-140px) skewX(-20deg)}60%,100%{transform:translateX(380px) skewX(-20deg)}}
.galons .sh{animation:gshine 4.5s ease-in-out infinite}

/* flashcards façon QRH */
.fface{border-radius:16px!important}
.ffront{background:#F3EBD3!important;color:#1B1B1B!important;border:1px solid #C9BB8E}
.ffront::before{content:"";position:absolute;top:0;left:0;right:0;height:34px;border-radius:16px 16px 0 0;background:#B91C1C}
.ffront .fdeck{color:#fff!important;opacity:1!important;font-family:var(--mono);letter-spacing:.12em;top:10px!important;z-index:1}
.ffront .ftext{font-family:var(--display);font-weight:800;color:#1B1B1B}
.ffront .fhint{font-family:var(--mono);letter-spacing:.1em;color:#6B5E3A;opacity:1!important}
.fback{background:#F3EBD3!important;color:#1B1B1B!important;border:1px solid #C9BB8E!important}
.fback .fdeck{color:#B91C1C!important;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem!important}
.fback .fans{font-family:var(--font);color:#1B1B1B}
.fback .fhint2{font-family:var(--mono);color:#6B5E3A}

/* emblème de compagnie */
.emb{display:inline-block;width:44px;height:44px;border-radius:10px;overflow:hidden;flex:none;vertical-align:middle}

/* fiche Formules en style écran */
.formula{background:#04070A!important;color:#5CF2A1!important;border:1px solid #1A2228}

@media (prefers-reduced-motion:reduce){.galons .sh{animation:none}}

/* mode examinateur */
.relance{display:flex;flex-direction:column;gap:2px;margin:6px 0 2px;padding:9px 12px;border-radius:10px;border:1px solid #D946EF;background:rgba(42,15,46,.75);font-family:var(--mono)}
.relance b{font-size:.68rem;letter-spacing:.14em;color:#F0ABFC}
.relance span{font-family:var(--font);font-size:.82rem;color:#E8ECEF}
.relance-sum{font-family:var(--mono);font-size:.82rem;color:var(--mag-ink);margin:2px 0 6px}

/* ===== Module IFR ===== */
.ifr{display:flex;flex-direction:column;gap:12px;user-select:none;-webkit-user-select:none}
.ifr-brief{background:var(--screen);border:1px solid var(--bezel-line);border-radius:10px;padding:12px 14px;color:#E8ECEF;font-family:var(--mono)}
.ifr-clr{display:flex;flex-direction:column;gap:4px}
.ifr-clr b{font-size:.98rem;color:#36D6E7;font-weight:600;line-height:1.35}
.ifr-tag{font-size:.68rem;letter-spacing:.14em;color:#D946EF}
.ifr-sub{margin:6px 0 0;font-size:.8rem;color:#9BA3AE;line-height:1.4}
.ifr-prog{position:relative;margin-top:10px;height:22px;border:1px solid #1A2228;border-radius:4px;overflow:hidden;background:#0B1116}
.ifr-bar{position:absolute;inset:0 auto 0 0;width:0;background:rgba(61,220,132,.28);transition:width .2s}
.ifr-st{position:relative;display:block;text-align:center;font-size:.7rem;line-height:22px;letter-spacing:.1em;color:#F2B33D}
.ifr-st.on{color:#3DDC84}
.ifr-body{display:flex;flex-direction:column;gap:12px}
.ifr-left{position:relative}
.ifr-mapbox{position:relative;background:#04070A;border:1px solid var(--bezel-line);border-radius:10px;overflow:hidden;aspect-ratio:1/1;max-height:62vh;margin:0 auto;width:100%}
.ifr-map{display:block;width:100%;height:100%;touch-action:manipulation}
.ifr-grid{stroke:#0E1A20;stroke-width:1;vector-effect:non-scaling-stroke}
.ifr-ring{fill:none;stroke:#1C3540;stroke-width:1;stroke-dasharray:4 5;vector-effect:non-scaling-stroke}
.ifr-ringlab{fill:#3E5A66;font-family:var(--mono)}
.ifr-rose{stroke:#36D6E7;stroke-width:1;opacity:.7;vector-effect:non-scaling-stroke}
.ifr-roselab{fill:#36D6E7;opacity:.75;font-family:var(--mono);text-anchor:middle}
.ifr-vor{fill:none;stroke:#36D6E7;stroke-width:1.6;vector-effect:non-scaling-stroke}
.ifr-vordot{fill:#36D6E7}
.ifr-ndb{fill:#F2B33D}.ifr-ndbdot{fill:#F2B33D;opacity:.85}
.ifr-navlab{fill:#36D6E7;font-family:var(--mono);font-weight:600}
.ifr-navlab.amb{fill:#F2B33D}.ifr-navlab.dim{fill:#7A8794}
.ifr-rwy{fill:#C9D0D8}
.ifr-target{stroke:#D946EF;stroke-width:2;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}
.ifr-targetlab{fill:#F0ABFC;font-family:var(--mono);font-weight:700}
.ifr-trace{stroke:#3DDC84;opacity:.85;stroke-linejoin:round;stroke-linecap:round}
.ifr-ac{fill:#F5D90A;stroke:#000;stroke-width:.05}
.ifr-acvec{stroke:#F5D90A;stroke-width:1.2;opacity:.7;vector-effect:non-scaling-stroke}
.ifr-zoom{position:absolute;right:8px;top:8px;display:flex;flex-direction:column;gap:6px}
.ifr-zoom button{width:34px;height:34px;border-radius:6px;border:1px solid var(--key-line);background:linear-gradient(var(--key-a),var(--key-b));color:var(--key-ink);font:600 1.1rem var(--mono);cursor:pointer}
.ifr-maptag{position:absolute;left:10px;bottom:8px;font:.7rem var(--mono);color:#7A8794;pointer-events:none}
.ifr-result{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(4,7,10,.72);border-radius:10px;padding:16px}
.ifr-result[hidden]{display:none}
.ifr-res-in{background:var(--glass);border:1px solid var(--bezel-line);border-radius:12px;padding:18px;text-align:center;max-width:340px;color:var(--ink)}
.ifr-res-in .ifr-row{margin-top:14px;justify-content:center}
.ifr-stars{font-size:2.2rem;color:#F2B33D;letter-spacing:.1em;margin-bottom:4px}
.ifr-right{display:flex;flex-direction:column;gap:10px}
.ifr-insts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ifr-inst-w{background:var(--bezel);border:1px solid var(--bezel-line);border-radius:12px;padding:6px}
.ifr-inst{display:block;width:100%;height:auto}
.ifr-face{fill:#04070A;stroke:#30353D;stroke-width:2}
.ifr-tick{stroke:#E8ECEF;stroke-width:1.6}.ifr-tick.thin{stroke-width:1;opacity:.7}
.ifr-lab{fill:#E8ECEF;font:600 11px var(--mono);text-anchor:middle}
.ifr-lab.card{fill:#36D6E7;font-size:13px}
.ifr-bug{fill:#D946EF}
.ifr-crs,.ifr-cdi{stroke:#D946EF;stroke-width:5;stroke-linecap:round}
.ifr-crs-head,.ifr-tofrom{fill:#D946EF}
.ifr-dot{fill:none;stroke:#E8ECEF;stroke-width:1.5}
.ifr-plane{stroke:#F5D90A;stroke-width:3.5;stroke-linecap:round;fill:none}
.ifr-lubber{fill:#F5D90A}
.ifr-box{fill:#000;stroke:#E8ECEF;stroke-width:1}
.ifr-hdgtxt{fill:#3DDC84;font:600 13px var(--mono);text-anchor:middle;dominant-baseline:middle;transform:translateY(-14px)}
.ifr-cap{fill:#9BA3AE;font:600 10px var(--mono)}
.ifr-cap.r{text-anchor:end}.ifr-cap .c1{fill:#36D6E7}.ifr-cap .c2{fill:#F2B33D}
.ifr-n1{stroke:#36D6E7;stroke-width:3.2}.ifr-n1h{fill:#36D6E7}
.ifr-n2{stroke:#F2B33D;stroke-width:2.2}.ifr-n2h{fill:#F2B33D}
.ifr-hub{fill:#30353D}
.ifr-data{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--screen-line);border:1px solid var(--bezel-line);border-radius:8px;overflow:hidden}
.ifr-cell{background:var(--screen);padding:6px 4px;text-align:center;font-family:var(--mono)}
.ifr-cell span{display:block;font-size:.6rem;color:#9BA3AE;letter-spacing:.08em}
.ifr-cell b{display:block;font-size:.95rem;color:#36D6E7;font-weight:600}
.ifr-ctr{display:flex;flex-direction:column;gap:8px;background:var(--bezel);border:1px solid var(--bezel-line);border-radius:12px;padding:10px}
.ifr-row{display:flex;gap:8px;align-items:center}
.ifr-row>*{flex:1}
.ifr-key{min-height:40px;border-radius:7px;border:1px solid var(--key-line);background:linear-gradient(var(--key-a),var(--key-b));color:var(--key-ink);font:600 .8rem var(--mono);letter-spacing:.04em;cursor:pointer;padding:0 6px;touch-action:manipulation;-webkit-touch-callout:none}
.ifr-key:active,.ifr-key.on{box-shadow:inset 0 2px 6px rgba(0,0,0,.6);color:#3DDC84;border-color:#3DDC84}
.ifr-key.turn{min-height:48px}
.ifr-key.mode{flex:.6}
.ifr-key.sm{min-height:34px;flex:none;width:44px;font-size:.72rem}
.ifr-knob{display:flex;align-items:center;gap:6px}
.ifr-kl{font:600 .66rem var(--mono);color:#9BA3AE;width:62px;letter-spacing:.06em}
.ifr-kv{flex:1;text-align:center;font:600 1.05rem var(--mono);color:#D946EF;background:#04070A;border:1px solid #1A2228;border-radius:5px;padding:5px 0}
.ifr-row.sys .ifr-key{min-height:36px}
.ifr-hint{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:.85rem}
.ifr-hint summary{cursor:pointer;font-weight:600}
.ifr-hint ol{margin:8px 0 0;padding-left:18px;line-height:1.45;color:var(--muted)}
@media (min-width:900px){
  .ifr-body{flex-direction:row;align-items:flex-start}
  .ifr-left{flex:1.25;min-width:0}
  .ifr-right{flex:1;min-width:320px;max-width:440px}
  .ifr-mapbox{max-height:calc(100vh - 220px);width:auto}
}

/* IFR v2 : vent, attente, arc DME, chrono */
.ifr-cell.chrono{border:0;font:inherit;color:inherit;cursor:pointer;font-family:var(--mono)}
.ifr-cell.chrono b{color:#F2B33D}
.ifr-cell.chrono.on b{color:#3DDC84}
.ifr-trk{fill:#3DDC84}
.ifr-cap.trk{fill:#3DDC84}
.ifr-arc{stroke:#D946EF;stroke-width:2.4;vector-effect:non-scaling-stroke;stroke-linecap:round}
.ifr-target.dim{stroke:#7A8794;stroke-dasharray:4 5}
.ifr-targetlab.dim{fill:#9BA3AE}
.ifr-hold{stroke:#D946EF;stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.ifr-holdarrow{fill:#D946EF}
.ifr-sector{stroke:#F2B33D;stroke-width:1.2;stroke-dasharray:6 6;opacity:.75;vector-effect:non-scaling-stroke}
.ifr-sectorlab{fill:#7A8794;font-family:var(--mono);font-weight:600;letter-spacing:.05em}
.ifr-sectorlab.on{fill:#F2B33D}
.ifr-wind{position:absolute;left:8px;top:8px;display:flex;align-items:center;gap:6px;background:rgba(4,7,10,.82);border:1px solid #1A2228;border-radius:6px;padding:4px 8px;font:.72rem var(--mono);color:#E8ECEF;pointer-events:none}
.ifr-wind[hidden]{display:none}
.ifr-wl{color:#9BA3AE;letter-spacing:.1em;font-size:.62rem}
.ifr-wind b{color:#36D6E7;font-weight:600}
.ifr-warrow{width:18px;height:18px}
.ifr-warrow path{stroke:#36D6E7;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round}
.ifr-st.warn{color:#E5484D}
.ifr-choose{margin-top:10px;display:flex;flex-direction:column;gap:8px}
.ifr-q{font-size:.75rem;letter-spacing:.12em;color:#F2B33D}
.ifr-fb{margin-top:10px;padding:8px 10px;border-radius:6px;font-size:.78rem;line-height:1.45;display:flex;flex-direction:column;gap:3px;font-family:var(--font)}
.ifr-fb b{font-family:var(--mono);font-size:.82rem}
.ifr-fb.ok{background:rgba(61,220,132,.1);border:1px solid rgba(61,220,132,.35)}
.ifr-fb.ok b{color:#3DDC84}
.ifr-fb.ko{background:rgba(229,72,77,.1);border:1px solid rgba(229,72,77,.4)}
.ifr-fb.ko b{color:#E5484D}
.ifr-fb span{color:#C9D0D8}
.ifr-check{list-style:none;margin:10px 0 0;padding:0;text-align:left;font-size:.82rem;line-height:1.45;display:flex;flex-direction:column;gap:4px}
.ifr-check .ok{color:var(--ok)}.ifr-check .ko{color:var(--bad)}

/* Séance personnalisée : réglages avancés repliés */
details.adv{margin-top:14px;border-top:1px solid var(--line);padding-top:4px}
details.adv>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;min-height:48px}
details.adv>summary::-webkit-details-marker{display:none}
details.adv>summary>span:first-child{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}
details.adv>summary b{font-weight:700}
details.adv .chev{width:20px;height:20px;color:var(--muted);transition:transform .2s}
details.adv .chev svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}
details.adv[open] .chev{transform:rotate(180deg)}

/* IFR : approche ILS */
.ifr-gsdia{fill:#D946EF}
.ifr-gsmid{stroke:#E8ECEF;stroke-width:1.5}
.ifr-gp{fill:#36D6E7}
.ifr-profbox{margin-top:10px;background:#04070A;border:1px solid var(--bezel-line);border-radius:10px;padding:8px 10px 10px}
.ifr-profbox[hidden]{display:none}
.ifr-proflab{display:flex;gap:12px;flex-wrap:wrap;font:600 .62rem var(--mono);letter-spacing:.08em;color:#9BA3AE;margin-bottom:6px}
.ifr-proflab .g{color:#D946EF}.ifr-proflab .p{color:#7A8794}.ifr-proflab .d{color:#F2B33D}
.ifr-prof{display:block;width:100%;height:110px}
.ifr-prof-plat{stroke:#3E5A66;stroke-width:1;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}
.ifr-prof-da{stroke:#F2B33D;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}
.ifr-prof-gs{stroke:#D946EF;stroke-width:2;vector-effect:non-scaling-stroke}
.ifr-prof-tr{stroke:#3DDC84;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.ifr-prof-ac{stroke:#F5D90A;stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}

/* Séance chronométrée : 3 boutons qui tiennent toujours dans la carte */
.qgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.btn.qbtn{min-width:0;flex-direction:column;gap:2px;padding:10px 4px;line-height:1.15;white-space:normal}
.btn.qbtn .qt{display:block;font-size:1rem;font-weight:700;letter-spacing:.02em}
.btn.qbtn .qs{display:block;font-size:.66rem;font-weight:500;letter-spacing:0;opacity:.8;overflow-wrap:anywhere}

/* Textes posés sur un ciel de jour ou d'aube : lisibles quelle que soit la météo */
html[data-sky="day"] main > p.lead,html[data-sky="day"] main > p,html[data-sky="dawn"] main > p.lead,html[data-sky="dusk"] main > p.lead{color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.55),0 0 2px rgba(0,0,0,.4)}

/* ===== Page de présentation publique ===== */
.lp{max-width:1080px;margin:0 auto;padding:0 18px calc(30px + env(safe-area-inset-bottom,0px));color:#E8ECEF}
@media (min-width:860px){
}

/* ===== Offres, abonnement, pages légales ===== */
.legal-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 14px;margin:14px 0 4px}
.legal-links .navlink{color:var(--muted);font-size:.8rem}
.sheet .legal{max-height:72vh;overflow:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px}
.sheet .legal section{margin-bottom:14px}
.sheet .legal h3{font-size:.95rem;margin:0 0 6px}
.sheet .legal p{font-size:.86rem;line-height:1.5;margin:0 0 6px;color:var(--ink)}
.offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.offer{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:14px;border:1px solid var(--line);background:var(--fill)}
.offer.main{border:1.5px solid var(--mag)}
.otag{font:600 .64rem var(--mono);letter-spacing:.12em;color:var(--cyan)}
.offer.main .otag{color:var(--mag-ink)}
.oprice b{font:800 1.5rem var(--display)}
.oprice span{color:var(--muted);font-size:.78rem;font-weight:600}
.offer p{margin:0;flex:1}
.consent{display:flex;gap:10px;align-items:flex-start;margin:14px 0 8px;font-size:.84rem;line-height:1.45;cursor:pointer}
.consent input{width:20px;height:20px;flex:none;margin-top:1px;accent-color:#C026D3}
.eyebrow-m{display:block;font:600 .66rem var(--mono);letter-spacing:.14em;color:var(--cyan);margin-bottom:6px}
.planbar{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;margin:0 0 12px;padding:10px 14px;border-radius:10px;border:1px solid rgba(242,179,61,.45);background:rgba(4,7,10,.88);color:#F2B33D;font:600 .7rem var(--mono);letter-spacing:.08em;cursor:pointer}
.planbar b{color:#F0ABFC;font-weight:700}
.icode{font:700 2rem var(--mono);letter-spacing:.3em;color:var(--cyan);margin:4px 0 8px}
.meta.warnc{color:var(--amber)}
.paywall{max-width:560px}
@media (max-width:420px){.offers{grid-template-columns:1fr}}

/* Filtres (chips) et textes d'aide lisibles sur tous les décors, en thème clair comme sombre */
.chip{background:var(--panel)!important;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.chip[aria-pressed="true"]{background:linear-gradient(var(--cyan-bg),var(--cyan-bg)),var(--panel)!important}
html[data-sky="day"] main p.lead,html[data-sky="dawn"] main p.lead,html[data-sky="dusk"] main p.lead{color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.55),0 0 2px rgba(0,0,0,.4)}
html[data-skin="day"]:not([data-sky="day"]):not([data-sky="dawn"]) main p.lead{color:#E8ECEF;text-shadow:0 1px 4px rgba(0,0,0,.6)}

/* Approches classiques VOR DME / NDB */
.ifr-faf{fill:none;stroke:#D946EF;stroke-width:2;vector-effect:non-scaling-stroke}
.ifr-targetlab.amb{fill:#F2B33D}
.ifr-prof-faf{stroke:#D946EF;stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}
.ifr-prof-mapt{stroke:#F2B33D;stroke-width:1.4;vector-effect:non-scaling-stroke}

/* ===== Tests psychotechniques ===== */
.psy{display:flex;flex-direction:column;gap:12px;max-width:720px;margin:0 auto}
.psy-cat{display:block;font:700 .66rem var(--mono);letter-spacing:.14em;color:var(--cyan);margin-bottom:6px}
.psy-intro h2{margin:0 0 10px}
.psy-rules{margin:0 0 16px;padding-left:20px;display:grid;gap:6px;color:var(--ink)}
.psy-head{position:sticky;top:calc(56px + env(safe-area-inset-top,0px));z-index:3;background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.psy-hrow{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;font:600 .8rem var(--mono);color:var(--muted)}
.psy-hrow span:last-child{text-align:right}
.psy-time{font:700 1.15rem var(--mono);color:var(--cyan);text-align:center}
.psy-bar{height:3px;background:var(--fill);border-radius:2px;margin-top:6px;overflow:hidden}
.psy-bar i{display:block;height:100%;background:var(--cyan);transition:width .1s linear}
.psy-stage{display:flex;flex-direction:column;gap:12px}
.psy-center{align-items:center;text-align:center}
.psy-fb{min-height:1.4em;margin:0;font:600 .95rem var(--mono)}
.psy-lines{margin:8px 0 0;padding-left:18px;display:grid;gap:4px}
.psy-res .score{margin:6px 0}
/* barrage */
.psy-mrow{display:flex;align-items:center;justify-content:center;gap:12px}
.psy-model{padding:4px 14px;border:1.5px solid var(--mag);border-radius:8px;background:var(--fill)}
.psy-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.psy-cell{appearance:none;border:1px solid var(--line);background:var(--panel2);color:var(--ink);border-radius:6px;padding:2px 0 4px;cursor:pointer;touch-action:manipulation;min-width:0}
.psy-cell.on{background:var(--cyan-bg);border-color:var(--cyan);box-shadow:inset 0 0 0 1px var(--cyan)}
.psy-g{display:flex;flex-direction:column;align-items:center;line-height:1;font-family:var(--mono)}
.psy-g i{font-style:normal;font-size:.8rem;letter-spacing:.05em;height:.9rem;color:var(--ink)}
.psy-g b{font-size:1.35rem;font-weight:600}
/* vigilance */
.psy-light{width:min(56vw,210px);aspect-ratio:1;border-radius:50%;border:6px solid var(--bezel-line);background:radial-gradient(circle at 40% 35%,#2a3038,#0d1014);box-shadow:inset 0 0 30px rgba(0,0,0,.6);cursor:pointer;touch-action:manipulation;margin:8px 0}
.psy-light.g{background:radial-gradient(circle at 40% 35%,#9dffc6,#1fbf68 55%,#0b6a37);box-shadow:0 0 40px rgba(61,220,132,.7)}
.psy-light.r{background:radial-gradient(circle at 40% 35%,#ffb0b2,#e5484d 55%,#7d1418);box-shadow:0 0 40px rgba(229,72,77,.7)}
/* empan */
.psy-digit{font:700 4.2rem var(--mono);color:var(--cyan);min-height:5rem;display:flex;align-items:center;justify-content:center;transition:opacity .1s}
.psy-digit.ask{color:var(--muted)}
.psy-form{width:100%;max-width:360px;gap:8px}
.psy-input{flex:1;min-width:0;font:600 1.4rem var(--mono);text-align:center;letter-spacing:.12em}
.psy-input.sm{font-size:1.05rem;letter-spacing:.06em}
/* clairance */
.psy-clr{font:600 1.15rem/1.55 var(--mono);color:var(--ink);background:#04070A;color:#7CF3FF;border:1px solid var(--bezel-line);border-radius:10px;padding:14px 16px;margin:0}
.psy-clr.dim{font-size:.85rem;color:#9BA3AE}
.psy-fields{display:grid;gap:8px}
.psy-field{display:grid;grid-template-columns:7.5em 1fr 2.6em;align-items:center;gap:8px;font-size:.9rem}
.psy-field em{font-style:normal;color:var(--muted);font-size:.8rem}
/* rotation */
.psy-rotrow{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.psy-mod{display:flex;flex-direction:column;align-items:center;gap:4px}
.psy-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
@media (min-width:640px){.psy-rotrow{grid-template-columns:minmax(0,1fr) minmax(0,2fr);align-items:center}.psy-opts{grid-template-columns:repeat(2,minmax(0,1fr))}}
.psy-shape{display:block;width:100%;max-width:170px;aspect-ratio:1;margin:0 auto}
.psy-shape.model{width:min(160px,42vw);max-width:none}
.psy-sq{fill:rgba(54,214,231,.22);stroke:#36D6E7;stroke-width:.08}
.psy-shape.model .psy-sq{fill:rgba(217,70,239,.22);stroke:#D946EF}
.psy-dot{fill:#F2B33D}
.psy-opt{appearance:none;background:var(--panel2);border:1.5px solid var(--line);border-radius:10px;padding:6px;cursor:pointer;touch-action:manipulation;min-width:0}
.psy-opt.ok,.psy-q.ok{border-color:var(--ok)!important;box-shadow:0 0 0 2px var(--ok-bg)}
.psy-opt.ko,.psy-q.ko{border-color:var(--bad)!important;box-shadow:0 0 0 2px var(--bad-bg)}
/* orientation */
.psy-ask{margin:0;font-weight:700}
.psy-map{width:min(78vw,300px);aspect-ratio:1}
.psy-map-bg{fill:#04070A;stroke:var(--bezel-line);stroke-width:2}
.psy-map-ring{fill:none;stroke:#1A2228;stroke-width:1}
.psy-map-n{fill:#9BA3AE;font:700 11px var(--mono);text-anchor:middle}
.psy-map-nt{fill:#9BA3AE}
.psy-ac{fill:#F5D90A;stroke:#000;stroke-width:.6}
.psy-acv{stroke:#F5D90A;stroke-width:2;stroke-dasharray:4 3}
.psy-acv-h{fill:#F5D90A}
.psy-lm{fill:#D946EF}
.psy-lake{fill:#1d6fa5;stroke:#36D6E7;stroke-width:1}
.psy-qgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;max-width:420px}
.psy-q{min-width:0;white-space:normal}

/* ===== PFD des approches ===== */
.ifr-pfdbox{background:var(--bezel);border:1px solid var(--bezel-line);border-radius:12px;padding:6px;margin-bottom:12px}
.ifr-pfdbox[hidden]{display:none}
.pfd{display:block;width:100%;max-height:52vh;margin:0 auto;font-family:var(--mono)}
.pfd-bg{fill:#04070A}
.pfd-fmabar{fill:#0B0F14}
.pfd-sep{stroke:#2A3038;stroke-width:1}
.pfd-fma{fill:#3DDC84;font-weight:700;letter-spacing:.06em}
.pfd-fma.w{fill:#E8ECEF}
.pfd-sky{fill:#1D6FB8}
.pfd-gnd{fill:#7A4A22}
.pfd-hz{stroke:#fff;stroke-width:1.5}
.pfd-ladder{stroke:#fff;stroke-width:1.2}
.pfd-lad-t{fill:#fff;font-weight:600}
.pfd-sky-ptr{fill:#F5D90A}
.pfd-bank{stroke:#fff;stroke-width:1.3}
.pfd-bank-zero{fill:none;stroke:#fff;stroke-width:1.2}
.pfd-wing{fill:none;stroke:#F5D90A;stroke-width:4;stroke-linejoin:round}
.pfd-dotc{fill:#000;stroke:#F5D90A;stroke-width:1.5}
.pfd-dot{fill:none;stroke:#fff;stroke-width:1.3}
.pfd-mid{stroke:#F5D90A;stroke-width:2}
.pfd-dia{fill:#D946EF;stroke:#F0ABFC;stroke-width:.8}
.pfd-tape{fill:#2A3038;opacity:.85}
.pfd-tick{stroke:#E8ECEF;stroke-width:1.2}
.pfd-tape-t{fill:#E8ECEF;font-weight:600}
.pfd-box{fill:#000;stroke:#F5D90A;stroke-width:1.3}
.pfd-box-t{fill:#3DDC84;font-weight:700}
.pfd-minbug{fill:#F2B33D}
.pfd-min-t{fill:#F2B33D;font-weight:700}
.pfd-tgt{fill:#36D6E7}
.pfd-gndtape{fill:#7A4A22;opacity:.8}
.pfd-vs-n{stroke:#3DDC84;stroke-width:2.2;stroke-linecap:round}
.pfd-vs-t{fill:#3DDC84;font-weight:700}
.pfd-hbug{fill:#D946EF}
.pfd-lubber{fill:#F5D90A}
.pfd-minimums{fill:#F2B33D;font-weight:800;letter-spacing:.08em}
.pfd-mins{fill:#F2B33D;font-weight:700}
.pfd-dme{fill:#E8ECEF;font-weight:600}
/* bilan des approches */
.ifr-result.debrief{position:static;inset:auto;background:none;padding:0;margin-bottom:12px;display:block}
.ifr-result.debrief[hidden]{display:none}
.ifr-result.debrief .ifr-res-in{max-width:none;text-align:left}
.ifr-result.debrief .ifr-stars,.ifr-result.debrief .ifr-res-in>b,.ifr-result.debrief .ifr-res-in>.ifr-sub{text-align:center;display:block}
.dbf-box{margin-top:14px;background:#04070A;border:1px solid var(--bezel-line);border-radius:10px;padding:10px 10px 6px}
.dbf-lab{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin:2px 2px 4px;font-family:var(--mono)}
.dbf-lab b{font-size:.68rem;letter-spacing:.12em;color:#36D6E7}
.dbf-lab span{font-size:.66rem;color:#9BA3AE}
.dbf{display:block;width:100%;height:auto;margin-bottom:8px;font-family:var(--mono)}
.dbf-grid{stroke:#1A2228;stroke-width:1}
.dbf-ax{fill:#7A8794}
.dbf-min{stroke:#F2B33D;stroke-width:1;stroke-dasharray:3 3}
.dbf-min-t{fill:#F2B33D;font-weight:700}
.dbf-faf{stroke:#D946EF;stroke-width:1;stroke-dasharray:2 3}
.dbf-faf-t{fill:#D946EF;font-weight:700}
.dbf-ideal{stroke:#D946EF;stroke-width:1.6}
.dbf-trace{stroke:#F5D90A;stroke-width:1.8;stroke-linejoin:round}
.dbf-band{fill:rgba(61,220,132,.10)}
/* suivi psychotechnique (Progrès) */
.psy-prow{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.psy-prow:last-of-type{border-bottom:0}
.psy-pmain{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.psy-spark{flex:0 0 120px;height:34px}
.psy-spark svg{width:100%;height:100%;display:block}
.psy-spark polyline{stroke:var(--cyan);stroke-width:1.8;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.psy-spark circle{fill:var(--mag)}
.psy-trend{font:600 .72rem var(--mono);color:var(--muted)}
.psy-trend.up{color:var(--ok)}.psy-trend.down{color:var(--bad)}.psy-trend.flat{color:var(--amber)}

/* ===== IFR sur téléphone : ce qu'on regarde et ce qu'on touche, côte à côte ===== */
@media (max-width:899px){
  .ifr-body{gap:10px}
  .ifr-left,.ifr-right{display:contents}
  .ifr-result{order:0;position:static;inset:auto;background:none;padding:0;display:block}
  .ifr-result[hidden]{display:none}
  .ifr-result .ifr-res-in{max-width:none;margin:0 auto}
  .ifr-mapbox{order:1}
  .ifr-insts{order:2}
  .ifr-ctr{order:3}
  .ifr-data{order:4}
  .ifr-hint{order:6}
  /* approches : PFD, puis commandes, puis HSI/RMI ; la carte passe après */
  .ifr.vert .ifr-pfdbox{order:1;margin-bottom:0}
  .ifr.vert .ifr-ctr{order:2}
  .ifr.vert .ifr-insts{order:3}
  .ifr.vert .ifr-data{order:4}
  .ifr.vert .ifr-mapbox{order:5;max-height:46vh}
  .pfd{max-height:none}
  /* consigne repliée sur 2 lignes, un toucher pour tout lire */
  .ifr-brief{padding:10px 12px;cursor:pointer}
  .ifr-brief .ifr-clr b{font-size:.92rem}
  .ifr-brief:not(.open) .ifr-sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .ifr-brief:not(.open) .ifr-sub::after{content:""}
  .ifr-ctr{padding:8px;gap:6px}
  .ifr-ctr .ifr-key.sm{min-height:34px;padding:0 4px}
  .ifr-insts{gap:8px}
}
@media (max-width:899px){
  /* approches : V/S et cap en premier, l'OBS (déjà réglé) en dernier */
  .ifr.vert .ifr-ctr .k-vs{order:-3}
  .ifr.vert .ifr-ctr .k-bug{order:-2}
  .ifr.vert .ifr-ctr .k-turn{order:-1}
  .ifr.vert .ifr-ctr .k-obs{order:1}
  .ifr.vert .ifr-ctr .sys{order:2}
}
@media (max-width:899px) and (max-height:760px){
  .ifr.vert .pfd{max-height:210px}
  .ifr-brief .ifr-clr b{font-size:.85rem}
}

/* Page de présentation v2 */
/* bienvenue */
.wl .wl-row{display:flex;gap:12px;align-items:flex-start}
.wl .wl-row>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
.wl .wl-row .ic{flex:none}
.danger-zone{border-color:rgba(229,72,77,.35)!important}

/* ===== Carnet de vol ===== */
.lb{display:flex;flex-direction:column;gap:12px}
.lb-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--screen-line);border:1px solid var(--bezel-line);border-radius:12px;overflow:hidden}
@media (min-width:760px){.lb-stats{grid-template-columns:repeat(6,minmax(0,1fr))}}
.lb-stat{background:var(--screen);padding:12px 8px;text-align:center;display:flex;flex-direction:column;gap:3px}
.lb-stat b{font:700 1.25rem var(--mono);color:#36D6E7}
.lb-stat span{font:600 .62rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#9BA3AE}
.lb-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.lb-actions .btn{min-width:0}
.lb-exps{display:flex;flex-direction:column;gap:6px}
.lb-exp{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border-radius:8px;background:var(--fill);font-size:.88rem;border-left:3px solid var(--ok)}
.lb-exp b{font:600 .8rem var(--mono);white-space:nowrap}
.lb-exp.warn{border-left-color:var(--amber)}.lb-exp.warn b{color:var(--amber)}
.lb-exp.ko{border-left-color:var(--bad)}.lb-exp.ko b{color:var(--bad)}
.lb-exp.ok b{color:var(--ok)}
.lb-row .lb-date{font:700 .85rem var(--mono);color:var(--cyan);min-width:3.2em}
.lb-row .lb-t{font:700 .95rem var(--mono)}
.lb-form{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.lb-f{display:flex;flex-direction:column;gap:4px;min-width:0}
.lb-f>span{font-size:.8rem;font-weight:600;color:var(--muted)}
.lb-f>em{font-style:normal;font-size:.72rem;color:var(--muted)}
.lb-f input,.lb-f textarea{width:100%;min-width:0}
.lb-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lb-2c{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.lb .seg{flex-wrap:wrap}
.note.warn{background:var(--amber-bg);color:var(--amber);border:1px solid rgba(242,179,61,.35);border-radius:10px;padding:10px 12px;font-size:.88rem}
input[type=date],input[type=number]{width:100%;background:var(--fill);border:1px solid var(--line);color:var(--ink);border-radius:12px;padding:12px 14px;font-size:1rem;font-family:inherit;min-height:46px}
html[data-skin="night"] input[type=date],html:not([data-skin]) input[type=date]{color-scheme:dark}
html[data-skin="day"] input[type=date]{color-scheme:light}
.lp{width:100%;box-sizing:border-box}
html,body{overflow-x:clip}

/* Page de présentation : toujours en panneaux sombres (lisible quel que soit le thème du téléphone),
   textes posés sur le ciel ombrés pour rester lisibles en plein jour */
/* plein jour : un voile sombre derrière les textes posés sur le ciel */

/* ===== Tests psychotechniques, deuxième série (pz-) ===== */
.pz-center{align-items:center;text-align:center}
.pz-opts{display:grid;gap:8px;width:100%}
.pz-opts.n4{grid-template-columns:repeat(2,minmax(0,1fr))}
.pz-opts.n5,.pz-opts.n6{grid-template-columns:repeat(3,minmax(0,1fr))}
.pz-opts.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (min-width:700px){.pz-opts.n4{grid-template-columns:repeat(4,minmax(0,1fr))}.pz-opts.n5{grid-template-columns:repeat(5,minmax(0,1fr))}.pz-opts.n6{grid-template-columns:repeat(6,minmax(0,1fr))}}
.pz-opt{display:grid;place-items:center;min-height:52px;color:var(--ink);font:700 1rem var(--mono)}
.pz-opt svg{width:100%;max-width:110px;height:auto}
/* cadrans */
.pz-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;width:100%;max-width:560px;background:#0B0F14;border:1px solid var(--bezel-line);border-radius:12px;padding:8px}
.pz-dial{width:100%;height:auto}
.pz-dial-bg{fill:#14181E;stroke:#3A4049;stroke-width:2}
.pz-tick{stroke:#C9D0D8;stroke-width:1}.pz-tick.M{stroke:#fff;stroke-width:2}
.pz-dial-n{fill:#E8ECEF;font:700 10px var(--mono)}
.pz-dial-u{fill:#9BA3AE;font:600 7px var(--mono)}
.pz-dial-l{fill:#36D6E7;font:700 7.5px var(--mono);letter-spacing:.06em}
.pz-needle{stroke:#F5D90A;stroke-width:3;stroke-linecap:round}
.pz-needle.off{stroke:#E5484D}
.pz-hub{fill:#E8ECEF}
/* vigilance circulaire */
.pz-ring{width:min(78vw,320px);height:auto}
.pz-rdot{fill:none;stroke:#2A3038;stroke-width:1.5}
.pz-rdot.on{fill:#fff;stroke:#fff}
.pz-hit{min-width:200px}
/* cercles */
.pz-rule{margin:0;font-weight:700;max-width:520px}
.pz-circles{appearance:none;border:0;width:100%;max-width:520px;aspect-ratio:2.2;background:#000;border-radius:14px;display:flex;align-items:center;justify-content:space-around;cursor:pointer;touch-action:manipulation;position:relative}
.pz-circ{width:28%;aspect-ratio:1;border-radius:50%;background:transparent;display:block}
.pz-circ.r{background:#E5484D}.pz-circ.y{background:#F5D90A}.pz-circ.g{background:#3DDC84}.pz-circ.b{background:#3B82F6}
.pz-note{position:absolute;top:8px;left:50%;transform:translateX(-50%);font-size:1.6rem;color:#fff;opacity:0}
.pz-note.on{opacity:1}
/* pilote automatique */
.pz-clr{background:#04070A;border:1px solid var(--bezel-line);border-radius:10px;padding:10px 12px}
.pz-clrv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;font-family:var(--mono)}
.pz-clrv span{display:flex;flex-direction:column;align-items:center}
.pz-clrv em{font-style:normal;font-size:.68rem;color:#9BA3AE}.pz-clrv b{color:#3DDC84;font-size:1.05rem}
.pz-apwrap{display:flex;flex-direction:column;gap:10px;align-items:center}
.pz-lrow{display:flex;gap:10px;justify-content:center}
.pz-light{appearance:none;width:46px;height:46px;border-radius:10px;border:2px solid #30353D;background:#14181E;cursor:pointer;touch-action:manipulation;color:#9BA3AE;font:700 .8rem var(--mono)}
.pz-light.big{width:auto;min-width:46px;height:40px}
.pz-light.amb{background:#F2B33D;border-color:#F2B33D;box-shadow:0 0 18px rgba(242,179,61,.7)}
.pz-light.red{background:#E5484D;border-color:#E5484D;box-shadow:0 0 18px rgba(229,72,77,.7);color:#fff;animation:pzblink .5s steps(2) infinite}
@keyframes pzblink{50%{opacity:.45}}
.pz-ap{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;max-width:440px;background:#5B6068;border-radius:10px;padding:8px}
.pz-aprow{appearance:none;display:flex;flex-direction:column;align-items:center;gap:2px;background:#0B0F14;border:2px solid transparent;border-radius:8px;padding:8px 4px;color:#E8ECEF;font-family:var(--mono);cursor:pointer;touch-action:manipulation}
.pz-aprow span{font-size:.7rem;color:#9BA3AE}.pz-aprow b{font-size:1.25rem;color:#3DDC84}.pz-aprow em{font-style:normal;font-size:.62rem;color:#7A8794}
.pz-aprow.diff b{color:#F2B33D}
/* FMS */
.pz-fms{background:#5B6068;border-radius:12px;padding:10px;width:100%;max-width:420px}
.pz-fmst{display:block;font:700 .7rem var(--mono);color:#E8ECEF;letter-spacing:.08em;margin-bottom:8px}
.pz-fmsr{display:grid;grid-template-columns:1fr auto 5.5em;gap:8px;align-items:center;background:#000;color:#fff;padding:8px 12px;font:600 1rem var(--font)}
.pz-fmsr:first-of-type{border-radius:6px 6px 0 0}.pz-fmsr:last-child{border-radius:0 0 6px 6px}
.pz-fmsr em{font-style:normal;color:#36D6E7;font-family:var(--mono)}.pz-fmsr b{text-align:right;font-family:var(--mono)}
/* mémoire visuelle */
.pz-vgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:2px solid #E8ECEF;width:100%;max-width:440px;background:#fff}
.pz-vcell{aspect-ratio:1;display:grid;place-items:center;border:1px solid #101820;color:#101820;font:800 clamp(1.1rem,6vw,1.8rem) var(--font)}
.pz-vcell.q{background:#FFF7D6}
.pz-vsym{width:62%;height:auto}
.pz-opt .pz-vsym{width:44px}
/* radar */
.pz-radar{width:min(86vw,420px);height:auto;background:#000;border-radius:10px;touch-action:manipulation;cursor:crosshair}
.pz-rg{stroke:#0F8A3A;stroke-width:1}
.pz-rl{fill:#22C55E;font:800 12px var(--mono)}
.pz-rme{fill:#fff}
.pz-rok{fill:rgba(61,220,132,.55)}.pz-rko{fill:rgba(229,72,77,.55)}
.pz-rcap{margin:0;min-height:1.6em;font:800 1.3rem var(--mono);color:#E8ECEF}
.pz-rcap.on{color:#22C55E}
/* cubes */
.pz-cuberow{display:grid;grid-template-columns:1fr;gap:12px}
@media (min-width:700px){.pz-cuberow{grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);align-items:center}}
.pz-net{width:100%;max-width:260px;height:auto;margin:0 auto;display:block}
.pz-cube{width:100%;max-width:120px;height:auto}
.pz-cf{fill:#F3F5F8;stroke:#101820;stroke-width:.03}
.pz-cf.t{fill:#FFFFFF}.pz-cf.l{fill:#E3E8EE}.pz-cf.r{fill:#CDD5DE}
.pz-cs{fill:none;stroke:#101820;stroke-width:.07;stroke-linecap:round}.pz-cs.f{fill:#101820;stroke:none}
/* poursuite, multitâche */
.pz-cv{width:100%;max-width:520px;display:block;border-radius:10px;touch-action:none;background:#04070A}
.pz-pad{position:relative;width:100%;max-width:520px;height:110px;border-radius:14px;background:repeating-linear-gradient(90deg,#14181E 0 18px,#181D24 18px 36px);border:1px solid var(--bezel-line);touch-action:none;display:grid;place-items:center;user-select:none;-webkit-user-select:none}
.pz-pad i{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#5B6068,#2A3038);border:2px solid #F5D90A;box-shadow:0 4px 12px rgba(0,0,0,.5);transition:transform .05s}
.pz-pad span{position:absolute;bottom:6px;font:600 .66rem var(--mono);color:#7A8794;letter-spacing:.06em}
.pz-coord{width:min(86vw,380px);height:auto}
.pz-arc{fill:none;stroke:#3A4049;stroke-width:10;stroke-linecap:round}
.pz-arcok{fill:none;stroke:#3DDC84;stroke-width:10}
.pz-tube{fill:#14181E;stroke:#3A4049;stroke-width:2}
.pz-tubeok{fill:rgba(61,220,132,.25)}
.pz-ball{fill:#36D6E7}.pz-ball.off{fill:#E5484D}
.pz-mtop{display:flex;gap:10px;align-items:stretch;flex-wrap:wrap}
.pz-lgrid{display:grid;grid-template-columns:repeat(2,auto);gap:6px}
.pz-mq{flex:1;min-width:180px;background:#04070A;border:1px solid var(--bezel-line);border-radius:10px;padding:8px;display:flex;flex-direction:column;gap:6px;align-items:center;font-family:var(--mono)}
.pz-mq b{font-size:1.2rem;color:#E8ECEF}
.pz-mqo{display:flex;gap:6px}
.pz-mqo .btn.ok{border-color:var(--ok)!important}.pz-mqo .btn.ko{border-color:var(--bad)!important}
/* vérification de codes */
.pz-check{display:flex;flex-direction:column;gap:6px}
.pz-crow{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;background:var(--fill);border:1px solid transparent}
.pz-crow code{font:600 1.05rem var(--mono);letter-spacing:.08em;color:var(--ink)}
.pz-crow.ok{border-color:var(--ok)}.pz-crow.ko{border-color:var(--bad)}
.pz-cb{display:flex;gap:6px}.pz-cb .btn{min-width:46px}
/* figures de raisonnement */
.pz-fig{width:100%;max-width:96px;height:auto}
.pz-fbox{fill:#fff;stroke:#C9D0D8;stroke-width:1}
.pz-sh{fill:none;stroke:#101820;stroke-width:2.2;stroke-linejoin:round}.pz-sh.f{fill:#101820}
.pz-farrow{fill:#C026D3}.pz-fdot{fill:#101820}
.pz-seq,.pz-ana{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap}
.pz-seq .pz-fig,.pz-ana .pz-fig{width:64px}
.pz-ana>span{font:800 1.2rem var(--mono);color:var(--muted)}
.pz-ana .pz-sep{margin:0 6px}
.pz-qbox{width:64px;height:64px;display:grid;place-items:center;border:2px dashed var(--mag);border-radius:8px;font:800 1.6rem var(--mono);color:var(--mag-ink)}
.pz-qbox.tall{height:110px;width:40px}
.pz-mat{display:grid;grid-template-columns:repeat(3,72px);gap:4px;justify-content:center}
.pz-mat .pz-fig{width:72px}.pz-mat .pz-qbox{width:72px;height:72px}
/* addition de symboles */
.pz-key{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:var(--glass);border:1px solid var(--line);border-radius:12px;padding:8px}
.pz-key span{display:flex;gap:6px;justify-content:center;align-items:center;font-family:var(--mono)}
.pz-key b{font-size:1.3rem;color:var(--ink)}.pz-key em{font-style:normal;color:var(--cyan);font-weight:700}
.pz-sum{font:700 1.6rem var(--mono);margin:6px 0;color:var(--ink)}
/* opérateurs */
.pz-opshead{display:flex;flex-direction:column;gap:10px;align-items:center}
.pz-chain{display:flex;gap:10px;align-items:center;justify-content:center;background:#fff;border-radius:10px;padding:8px 12px}
.pz-col{width:34px;height:auto}
.pz-op{font:800 1.1rem var(--mono);color:#C026D3;background:#F3E8FF;border-radius:6px;padding:4px 8px}
.pz-chain .pz-qbox{color:#A21CAF}
.pz-legend{display:flex;flex-direction:column;gap:4px;font-size:.84rem;color:var(--muted);text-align:left;width:100%}
.pz-legend b{color:var(--mag-ink);font-family:var(--mono);margin-right:4px}
.pz-opt .pz-col{width:30px}
/* comparaison aux autres candidats */
.psy-cmp{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);text-align:left}
.psy-verdict{margin:4px 0 8px;font-weight:800}
.psy-hist{display:block;width:100%;max-width:440px;height:auto;margin:4px auto 6px}
.psy-hband{fill:rgba(54,214,231,.12)}
.psy-hbar{fill:#3A4652}
.psy-hmed{stroke:#9BA3AE;stroke-width:1.5;stroke-dasharray:3 3}
.psy-hme{stroke:#D946EF;stroke-width:3}
.psy-hmedot{fill:#D946EF}
.psy-hlab{fill:var(--muted);font:600 9px var(--mono)}
.psy-spark .band{fill:rgba(155,163,174,.18)}
.psy-spark .med{stroke:rgba(155,163,174,.5);stroke-width:1;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}
.psy-tags{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.psy-pos{font:700 .72rem var(--mono);padding:2px 8px;border-radius:999px;background:var(--fill)}
.psy-pos.hi{color:var(--ok);background:var(--ok-bg)}.psy-pos.mid{color:var(--cyan);background:var(--cyan-bg)}.psy-pos.lo{color:var(--amber);background:var(--amber-bg)}
