/* =====================================================================
   Préparation des vols — style « opérations compagnie »
   Même langage visuel que l'appli Timing : bandeau marine, cartes blanches
   sur gris clair, jaune réservé à l'attention, rouge = retard, nuit marine.
   CSS maison, sans Bulma ni étape de build.
   Thème : html[data-theme="light"] = clair, sinon sombre (géré par le script thème).
   ===================================================================== */
:root{
  --bg:#F2F4F7; --surface:#FFFFFF; --surface-2:#F4F6F9; --surface-3:#E9EDF3;
  --line:#E4E8EF; --line-strong:#CBD2DE; --fg:#0B1E4F; --muted:#8A93A6; --faint:#B5BDCB;
  --accent:#0B1E4F; --accent-soft:rgba(11,30,79,.07); --accent-ink:#FFFFFF;
  --navy:#0B1E4F; --on-navy:#FFFFFF; --on-navy-dim:#9AA8CC; --yellow:#FFAD00;
  --ok:#1F9D57; --ok-soft:#E7F6EE; --warn:#C98300; --warn-soft:#FFF4D9; --crit:#D93636; --crit-soft:#FDECEC;
  --early:#2F6FDE; --early-soft:#E8EFFC;
  --tile-shadow:0 1px 2px rgba(11,30,79,.06),0 4px 14px rgba(11,30,79,.05);
  --scrim:rgba(11,30,79,.45); --shadow:0 18px 50px rgba(11,30,79,.18);
  --f-ui:"Manrope",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --r-sm:4px; --r:6px; --r-lg:8px;
  --pad-x:12px;
  color-scheme:light;
}
html:not([data-theme="light"]){
  --bg:#070C1A; --surface:#101831; --surface-2:#16203C; --surface-3:#1E2A4A;
  --line:#243256; --line-strong:#33446F; --fg:#F2F5FC; --muted:#93A0BE; --faint:#5F6D8F;
  --accent:#9DB2FF; --accent-soft:rgba(157,178,255,.12); --accent-ink:#070C1A;
  --navy:#0D1838; --yellow:#FFB81F;
  --ok:#40C97F; --ok-soft:rgba(64,201,127,.12); --warn:#FFB81F; --warn-soft:rgba(255,184,31,.14); --crit:#FF6464; --crit-soft:rgba(255,100,100,.14);
  --early:#9DB2FF; --early-soft:rgba(157,178,255,.14);
  --tile-shadow:none; --scrim:rgba(3,6,14,.6); --shadow:0 18px 50px rgba(0,0,0,.5);
  color-scheme:dark;
}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--fg);font-family:var(--f-ui);font-size:15px;line-height:1.4;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
h1,h2,h3,h4,p{margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0}
[hidden]{display:none!important}
svg.ico{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Champs ---------- */
.input,.textarea{
  display:block;width:100%;height:44px;padding:0 12px;border-radius:var(--r);
  border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);
  font-family:var(--f-ui);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;
  outline:0;transition:border-color .15s, box-shadow .15s;-webkit-appearance:none;appearance:none
}
.textarea{height:auto;min-height:96px;padding:10px 12px;resize:vertical;line-height:1.45;font-weight:500}
.input::placeholder,.textarea::placeholder{color:var(--faint);font-weight:500;font-size:14px}
.input:focus,.textarea:focus{border-color:var(--fg);box-shadow:0 0 0 3px var(--accent-soft)}
.input:disabled{background:var(--surface-2)}
input[type="date"].input{padding-right:8px;min-width:0}
input[type="date"].input::-webkit-date-and-time-value{text-align:left}
input[type="date"].input::-webkit-calendar-picker-indicator{opacity:.55}
html:not([data-theme="light"]) input[type="date"]::-webkit-calendar-picker-indicator{filter:none;opacity:.75}

/* Libellé au-dessus d'un champ */
.fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fld > span{font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.02em}

/* ---------- En-tête ---------- */
.pv-top{position:sticky;top:0;z-index:50;background:var(--surface)}
.pv-bar{display:flex;align-items:center;gap:10px;min-height:52px;padding:0 var(--pad-x);padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid var(--line)}
.pv-title{display:flex;align-items:center;gap:9px;font-weight:800;font-size:16px;letter-spacing:-.01em;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}
.pv-logo{width:30px;height:30px;border-radius:6px;background:var(--navy);color:#fff;display:grid;place-items:center;flex:none}
html:not([data-theme="light"]) .pv-logo{background:#22357A}
.pv-logo svg{width:17px;height:17px;fill:currentColor}

#topControls{display:flex;align-items:center;gap:6px;flex:none}
#topControls > button{
  display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 10px;border-radius:var(--r);
  border:1px solid var(--line);background:var(--surface);color:var(--fg);font-weight:700;font-size:12.5px;white-space:nowrap
}
#topControls > button:active{background:var(--surface-2)}
#topControls .emo{display:none}
#topControls .ico{width:16px;height:16px}
#logoutBtn{color:var(--muted)!important}
#logoutBtn span,#themeBadge{display:none}
@media (min-width:600px){ #logoutBtn span,#themeBadge{display:inline} }

/* Bandeau marine : heures LOCALE / ZULU */
.pv-band{display:flex;align-items:flex-end;gap:18px;background:var(--navy);color:var(--on-navy);padding:10px var(--pad-x) 12px}
.pv-band .clk{display:flex;flex-direction:column;gap:1px}
.pv-band .clk .k{font-size:10px;font-weight:700;letter-spacing:.06em;color:var(--on-navy-dim);text-transform:uppercase}
.pv-band .clk .v{font-size:24px;font-weight:300;line-height:1.05;font-variant-numeric:tabular-nums;letter-spacing:.01em}
.pv-band .clk.is-ref .k{color:var(--yellow)}
.pv-band .pv-date{margin-left:auto;text-align:right;font-size:12px;font-weight:600;color:var(--on-navy-dim);line-height:1.3}
.pv-band .pv-date b{display:block;color:var(--on-navy);font-weight:700;font-size:13px}

/* Onglets VOL 1 / VOL 2 (mobile + tablette) : soulignés jaune */
.vol-tabs{display:flex;gap:0;background:var(--surface);border-bottom:1px solid var(--line);padding:0 var(--pad-x)}
.vol-tab{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:9px 4px 8px;border-bottom:3px solid transparent;margin-bottom:-1px;text-align:left;min-width:0}
.vol-tab .vt-k{font-size:13px;font-weight:800;color:var(--muted);letter-spacing:.02em}
.vol-tab .vt-sub{font-size:12px;font-weight:600;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.vol-tab .vt-sub:empty::before{content:"Aucun vol choisi"}
.vol-tab.vol-tab-active{border-bottom-color:var(--yellow)}
.vol-tab.vol-tab-active .vt-k{color:var(--fg)}
.vol-tab.vol-tab-active .vt-sub{color:var(--muted)}
@media (min-width:1024px){ .vol-tabs{display:none} }

/* ---------- Mise en page ---------- */
.pv-main{max-width:1180px;margin:0 auto;padding:12px var(--pad-x) calc(28px + env(safe-area-inset-bottom,0px))}
.pv-cols{display:grid;grid-template-columns:1fr;gap:12px}
.pv-col{display:flex;flex-direction:column;gap:12px;min-width:0}
.pv-col.tab-hidden{display:none}
@media (min-width:1024px){
  :root{--pad-x:20px}
  .pv-cols{grid-template-columns:1fr 1fr;gap:16px}
  .pv-col.tab-hidden{display:flex}
  .pv-main{padding-top:18px}
}

/* ---------- Cartes ---------- */
.box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--tile-shadow);padding:14px}
.card-h{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.card-t{font-size:17px;font-weight:800;letter-spacing:-.01em}
.card-k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.vol-clear-btn{margin-left:auto;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border-radius:var(--r);border:1px solid var(--line);color:var(--muted);font-size:12.5px;font-weight:700}
.vol-clear-btn:active{color:var(--crit);border-color:var(--crit)}
.vol-clear-btn .ico{width:15px;height:15px}

/* Segment Départs / Arrivées */
.pv-flow{display:grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:var(--r);background:var(--surface-3);margin-bottom:10px}
.pv-flow button{height:36px;border-radius:4px;font-size:13.5px;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;gap:7px}
.pv-flow button .ico{width:16px;height:16px}
.pv-flow button.is-on{background:var(--surface);color:var(--fg);box-shadow:0 1px 3px rgba(11,30,79,.12)}
/* le sélecteur natif Départs/Arrivées est piloté par le segment */
#cvd_ak_flow_1,#cvd_ak_flow_2,.pv-flow-native{display:none!important}

/* ---------- Liste déroulante des vols (cvd) ---------- */
.cvd{position:relative}
.cvd-btn{
  width:100%;min-height:48px;display:flex;align-items:center;gap:10px;padding:0 12px;border-radius:var(--r);
  border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);text-align:left;font-weight:700;font-size:15px
}
.cvd-btn.open{border-color:var(--fg);box-shadow:0 0 0 3px var(--accent-soft)}
.cvd-val{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-variant-numeric:tabular-nums}
.cvd-val.placeholder{color:var(--muted);font-weight:600}
.cvd-arrow{flex:none;color:var(--muted);transition:transform .15s}
.cvd-btn.open .cvd-arrow{transform:rotate(180deg)}
.cvd-panel{
  position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:40;max-height:min(62vh,460px);overflow:auto;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:4px;
  overscroll-behavior:contain
}
.cvd-panel{padding:0}
.cvd-head,.cvd-opt{display:grid;grid-template-columns:50px 112px 48px 56px minmax(64px,1fr);gap:10px;align-items:center;padding:0 14px}
.cvd-head{position:sticky;top:0;z-index:1;height:30px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.cvd-opt{min-height:54px;padding-top:7px;padding-bottom:7px;cursor:pointer;border-bottom:1px solid var(--line)}
.cvd-opt:last-child{border-bottom:0}
.cvd-opt:active,.cvd-opt:hover{background:var(--surface-2)}
.cvd-opt.selected{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--yellow)}
.cvd-col-time{font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
.cvd-col-flt{min-width:0}
.cvd-col-flt b{display:block;font-size:15px;font-weight:800}
.cvd-col-flt small{display:block;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cvd-col-dest,.cvd-col-park{font-size:15px;font-weight:800}
.cvd-opt-right{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.cvd-opt-delay{font-size:12.5px;font-weight:800;color:var(--crit);font-variant-numeric:tabular-nums}
.cvd-opt-status{font-size:12px;font-weight:700;color:var(--muted);white-space:nowrap}
.cvd-opt-status.is-ok{color:var(--ok)}
.cvd-opt-status.is-ok::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ok);margin-right:5px;vertical-align:1px}
.cvd-opt-departed{opacity:.45}
@media (max-width:520px){
  .cvd-head,.cvd-opt{grid-template-columns:48px minmax(0,1fr) 44px 40px 54px;gap:8px;padding-left:10px;padding-right:10px}
}
/* liste générique (une seule étiquette, sans colonnes) */
.cvd-opt:not(:has(.cvd-col-time)){display:flex;min-height:44px}
.cvd-opt:not(:has(.cvd-col-time)) .cvd-opt-label{font-weight:700}
.cvd-empty{padding:16px;text-align:center;color:var(--muted);font-weight:600;font-size:14px}

.help{font-size:12px;font-weight:600;color:var(--muted);margin-top:6px}
.help:empty{display:none}

/* ---------- Choix du vol : segment + liste ---------- */
.pv-pick .pv-flow{margin-bottom:8px}
@media (min-width:1024px){
  .pv-pick{display:grid;grid-template-columns:210px 1fr;gap:8px;align-items:start}
  .pv-pick .pv-flow{margin-bottom:0;height:48px;box-sizing:border-box}
  .pv-pick .pv-flow button{height:100%}
  .pv-pick .cvd-panel{left:auto;right:0;min-width:100%;width:max-content;max-width:calc(100% + 218px)}
}

/* ---------- Blocs Arrivée / Départ / Avion ---------- */
.pv-grps{display:grid;grid-template-columns:1fr;gap:10px;margin-top:14px}
@media (min-width:560px){ .pv-grps{grid-template-columns:1fr 1fr} }
.grp{border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.grp-h{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:6px 12px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.grp-h h3{font-size:12px;font-weight:800;letter-spacing:.08em}
.grp-s{display:flex;align-items:center;gap:6px;min-width:0}
.pv-sched{font-size:12.5px;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.row{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-top:1px solid var(--line);cursor:text}
.grp-h + .row{border-top:0}
.row > span{flex:none;font-size:13.5px;font-weight:600;color:var(--muted)}
.row .input{flex:1;min-width:0;height:42px;border:0;background:transparent;padding:0;text-align:right;font-size:15px;font-weight:700;box-shadow:none!important;border-radius:0}
.row .input.is-big{font-size:17px;font-weight:800}
.row .input::placeholder{font-size:13px}
.row:focus-within{background:var(--accent-soft)}
.row input[type="date"].input{padding:0}
.row input[type="date"].input::-webkit-date-and-time-value{text-align:right}
.grp-av{display:grid;grid-template-columns:1fr;margin-top:10px}
@media (min-width:560px){
  .grp-av{grid-template-columns:.8fr 1fr 1fr}
  .grp-av .row{border-top:0;border-left:1px solid var(--line)}
  .grp-av .row:first-child{border-left:0}
}
.tags{display:flex;flex-wrap:wrap;gap:4px}
.tags:empty{display:none}
.tag{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:4px;font-size:11px;font-weight:800!important;white-space:nowrap;background:var(--surface-3);color:var(--muted);font-variant-numeric:tabular-nums}
.tag.is-danger{background:var(--crit-soft);color:var(--crit)}
.tag.is-warning{background:var(--warn-soft);color:var(--warn)}
.tag.is-info{background:var(--early-soft);color:var(--early)}
.tag.is-success{background:var(--ok-soft);color:var(--ok)}
.tag.is-light{background:var(--surface-3);color:var(--fg)}

/* ---------- Documents ---------- */
.doc-section-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.doc-grid-2{grid-template-columns:1fr 1fr}
@media (min-width:1024px){ .doc-grid{grid-template-columns:repeat(3,1fr)} .doc-grid-2{grid-template-columns:1fr 1fr} }
.btn-band{
  display:flex;align-items:center;gap:10px;min-height:52px;padding:8px 10px;border-radius:var(--r);
  border:1px solid var(--line);background:var(--surface-2);color:var(--fg);text-align:left;font-weight:700;font-size:14px;line-height:1.2;
  transition:background .12s, border-color .12s, transform .08s
}
.btn-band::before{
  content:"";flex:none;width:30px;height:30px;border-radius:5px;background:var(--navy) center/16px no-repeat;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V3h12v6'/%3E%3Crect x='3' y='9' width='18' height='8' rx='2'/%3E%3Cpath d='M7 14h10v7H7z'/%3E%3C/svg%3E")
}
/* pastilles d'origine : gris par défaut, bleu marine LIR Ryanair/Lauda, dégradé rose-bleu, vert Presta */
.btn-band::before{background-color:#6b7280}
.band-ryanair::before,.band-lauda::before{background-color:var(--navy)}
html:not([data-theme="light"]) .band-ryanair::before,html:not([data-theme="light"]) .band-lauda::before{background-color:#22357A}
.band-presta::before{background-color:#C6E0B4;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1E4F' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V3h12v6'/%3E%3Crect x='3' y='9' width='18' height='8' rx='2'/%3E%3Cpath d='M7 14h10v7H7z'/%3E%3C/svg%3E")}
.band-gradient::before{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V3h12v6'/%3E%3Crect x='3' y='9' width='18' height='8' rx='2'/%3E%3Cpath d='M7 14h10v7H7z'/%3E%3C/svg%3E") center/16px no-repeat,linear-gradient(180deg,#C3017E 0%,#0E058E 100%)}
.btn-band:hover{border-color:var(--line-strong)}
.btn-band:active{transform:scale(.98);background:var(--surface-3)}
.btn-band small{display:block;font-size:11.5px;font-weight:600;color:var(--muted);margin-top:1px}
.btn-band.is-busy{opacity:.6;pointer-events:none}

/* ---------- Fenêtres (pv-*) : feuille du bas sur mobile ---------- */
.pv-backdrop,#holdBackdrop,#akBackdrop{position:fixed;inset:0;background:var(--scrim)!important;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
#rzaModal,#siModal,#laudaModal,#bbcgModal,#menageModal,#prestaBaseModal,#holdModal{padding:16px!important}
.pv-card{width:100%;max-height:calc(100vh - 32px);display:flex;flex-direction:column;background:var(--surface);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;color:var(--fg)}
@media (max-width:640px){
  #rzaModal,#siModal,#laudaModal,#bbcgModal,#menageModal,#prestaBaseModal,#holdModal{align-items:flex-end!important;padding:0!important}
  .pv-card{max-width:none!important;border-radius:18px 18px 0 0;max-height:92vh;padding-bottom:env(safe-area-inset-bottom,0px);animation:pvUp .22s ease-out}
  .pv-card::before{content:"";display:block;width:40px;height:4px;border-radius:2px;background:var(--line-strong);margin:8px auto 0}
}
@keyframes pvUp{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.pv-header{display:flex;align-items:center;gap:10px;padding:16px 20px;background:var(--navy);color:#fff}
.pv-header-icon{display:none}
.pv-header-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.pv-header-title{font-size:19px;font-weight:800;letter-spacing:-.01em;color:#fff}
.pv-sub{font-size:13px;font-weight:600;color:var(--on-navy-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pv-sub:empty{display:none}
html:not([data-theme="light"]) .pv-header{background:#16245A}
.pv-body{display:flex;flex-direction:column;gap:16px;padding:16px 20px;overflow:auto}
.pv-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line);background:var(--surface-2)}
@media (max-width:640px){ .pv-card::before{position:absolute;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.35)} .pv-card{position:relative} }
.pv-label{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.pv-help{font-size:12.5px;color:var(--muted);margin-top:6px}
.pv-btn{height:46px;padding:0 18px;border-radius:var(--r);font-weight:800;font-size:15px;flex:1}
@media (min-width:641px){ .pv-btn{flex:none;min-width:120px} }
.pv-btn-primary{background:var(--navy);color:#fff}
html:not([data-theme="light"]) .pv-btn-primary{background:var(--accent);color:var(--accent-ink)}
.pv-btn-cancel{background:var(--surface-2);border:1px solid var(--line);color:var(--fg)}
.pv-btn:active{transform:translateY(1px)}
.pv-action-btn{display:flex;align-items:center;justify-content:center;gap:8px;min-height:64px;padding:10px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface-2);font-weight:800;font-size:15px}
.pv-action-btn:active{background:var(--surface-3)}

.pv-seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:3px;border-radius:var(--r);background:var(--surface-3)}
.pv-seg-btn{height:38px;border-radius:4px;font-weight:700;font-size:13.5px;color:var(--muted)}
.pv-seg-btn.is-active,.pv-seg-btn.menage-on,.menage-on{background:var(--surface)!important;color:var(--fg)!important;box-shadow:0 1px 3px rgba(11,30,79,.14)}
html:not([data-theme="light"]) .pv-seg-btn.is-active,html:not([data-theme="light"]) .menage-on{background:var(--accent)!important;color:var(--accent-ink)!important;box-shadow:none}
.pv-pousset-row,.pv-bingo-row{display:flex;align-items:center;gap:10px}
.pv-pousset-row{justify-content:space-between;flex-direction:row-reverse}
.pv-step{display:inline-flex;align-items:stretch;height:42px;border:1px solid var(--line-strong);border-radius:var(--r);overflow:hidden;background:var(--surface);flex:none}
.pv-step button{width:40px;background:var(--surface-2);font-size:19px;font-weight:700;color:var(--muted)}
.pv-step button:hover{color:var(--fg)}
.pv-step button:active{background:var(--surface-3)}
.pv-step .input{width:52px!important;max-width:none!important;height:100%;border:0;border-radius:0;text-align:center;font-size:17px;padding:0;box-shadow:none!important}
.pv-step:has(input:disabled){opacity:.35;pointer-events:none}
.pv-step .input:disabled{opacity:1!important;background:transparent}
.pv-chips{display:flex;flex-wrap:wrap;gap:6px}
.pv-chips button{min-width:48px;height:38px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r);font-weight:800;font-size:14px;background:var(--surface)}
.pv-chips button.is-on{background:var(--navy);color:#fff;border-color:var(--navy)}
html:not([data-theme="light"]) .pv-chips button.is-on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.pv-pousset-row .input,.pv-bingo-row .input{text-align:center;font-size:18px}
.pv-pousset-label{font-weight:600;font-size:14px}
.pv-bingo-sep{font-size:20px;font-weight:300;color:var(--muted)}
.pv-vol-cols{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pv-vol-col{display:flex;flex-direction:column;gap:8px}
.pv-vol-col-title{font-size:12px;font-weight:800;letter-spacing:.08em;color:var(--muted)}
.pv-inline-btn{height:34px;padding:0 12px;border-radius:var(--r);border:1px solid var(--line);font-weight:700;font-size:13px}

/* Interrupteurs */
.pv-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-lg);cursor:pointer;background:var(--surface)}
.pv-toggle-text{display:flex;flex-direction:column;gap:2px;min-width:0}
.pv-toggle-title{font-weight:800;font-size:14px}
.pv-toggle-sub{font-size:12.5px;color:var(--muted)}
.pv-switch{position:relative;flex:none;width:46px;height:28px}
.pv-switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;z-index:1}
.pv-switch-track{position:absolute;inset:0;border-radius:14px;background:var(--surface-3);border:1px solid var(--line-strong);transition:background .15s}
.pv-switch-track::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--muted);transition:transform .15s, background .15s}
.pv-switch input:checked + .pv-switch-track{background:var(--yellow);border-color:var(--yellow)}
.pv-switch input:checked + .pv-switch-track::after{transform:translateX(18px);background:#fff}

/* Hold Security Search */
.pv-hold-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-lg)}
.pv-hold-row b{font-size:14px;font-weight:800}
.pv-hold-row label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600;cursor:pointer}
.pv-hold-row input[type=checkbox]{width:22px;height:22px;accent-color:var(--navy)}
html:not([data-theme="light"]) .pv-hold-row input[type=checkbox]{accent-color:var(--accent)}

/* Popup AK (héritée, non utilisée par l'appli actuelle) */
#akPopover{position:fixed;inset:10px;z-index:4700;padding:12px;overflow:auto;background:var(--surface);border-radius:12px;border:1px solid var(--line);box-shadow:var(--shadow)}
#akPopover .ak-header{position:sticky;top:0;z-index:2;background:var(--surface);padding:10px 0;border-bottom:1px solid var(--line)}
#akBackdrop{z-index:4600}
.button{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 12px;border-radius:var(--r);border:1px solid var(--line);background:var(--surface-2);font-weight:700;font-size:13px}
.button.is-link{background:var(--navy);color:#fff;border-color:var(--navy)}

/* Avertissement de déconnexion automatique */
#inactivityWarning{font-family:var(--f-ui)!important;background:var(--crit)!important;border-radius:8px!important}

/* ---------- Écran de connexion (diaporama photos) ---------- */
.home-screen{display:flex;flex-direction:column;justify-content:space-between;position:fixed;inset:0;z-index:99999;overflow:hidden;background:#0B1E4F;color:#fff;font-family:var(--f-ui)}
.home-slide{position:absolute;inset:0;z-index:0;background-position:center;background-size:cover;background-repeat:no-repeat;opacity:0;transition:opacity 1.4s ease}
.home-slide.is-active{opacity:1}
.home-scrim{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(196deg,rgba(6,14,38,.55) 0%,rgba(6,14,38,.08) 22%,rgba(6,14,38,.12) 40%,rgba(8,20,56,.80) 72%,rgba(9,22,60,.985) 100%)}
.home-slideprogress{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:4;background:rgba(255,255,255,.12);display:none;pointer-events:none}
.home-slideprogress.on{display:block}
.hsp-fill{height:100%;width:0%;background:var(--yellow)}
.home-hero{position:relative;z-index:2;padding:max(30px,calc(env(safe-area-inset-top,0px) + 24px)) 26px 0;color:#fff}
.home-rule{width:40px;height:3px;border-radius:2px;background:#FFAD00;margin-bottom:16px}
.home-brand{font-size:1.7rem;font-weight:800;letter-spacing:.04em;line-height:1.12;color:#fff;text-shadow:0 2px 20px rgba(0,0,0,.45)}
.home-tagline{margin-top:12px;font-size:.66rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.home-date{margin-top:12px;font-size:.92rem;font-weight:600;color:rgba(255,255,255,.88);text-shadow:0 1px 10px rgba(0,0,0,.5)}
.home-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:18px;padding:0 16px max(30px,calc(env(safe-area-inset-bottom,0px) + 26px))}
.home-topclock{position:absolute;z-index:3;top:max(38px,calc(env(safe-area-inset-top,0px) + 30px));left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:12px}
.home-clock{display:flex;gap:24px;align-items:center}
.home-clock .clk{display:flex;flex-direction:column;align-items:center;gap:4px}
.home-clock .clk-t{font-size:1.9rem;font-weight:300;letter-spacing:.01em;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 1px 12px rgba(0,0,0,.45)}
.home-clock .clk-l{font-size:.6rem;font-weight:700;letter-spacing:.2em;color:#9AA8CC}
.home-clock .clk-sep{width:1px;height:42px;background:rgba(255,255,255,.24)}
.home-login{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;max-width:320px}
.home-login input{width:100%;height:52px;padding:0 16px;border-radius:var(--r);border:1px solid rgba(255,255,255,.26);background:rgba(255,255,255,.10);color:#fff;font-size:16px;text-align:center;outline:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.home-login input::placeholder{color:rgba(255,255,255,.6)}
.home-login input:focus{border-color:#FFAD00}
.home-login input:-webkit-autofill,.home-login input:-webkit-autofill:hover,.home-login input:-webkit-autofill:focus,.home-login input:-webkit-autofill:active{
  -webkit-text-fill-color:#fff;caret-color:#fff;-webkit-box-shadow:0 0 0 1000px rgba(255,255,255,.10) inset;box-shadow:0 0 0 1000px rgba(255,255,255,.10) inset;
  border:1px solid rgba(255,255,255,.26);border-radius:var(--r);text-align:center;transition:background-color 9999s ease-out 0s
}
.home-login #pwError{color:#FF8A8A;font-size:.82rem;font-weight:600}
.home-login #pwError:empty{display:none}
.home-login button{width:100%;height:52px;border-radius:var(--r);border:none;background:#fff;color:#0B1E4F;font-weight:800;font-size:16px;cursor:pointer}
.home-login button:active{transform:translateY(1px)}
.home-fact{margin-top:2px;max-width:min(60vw,460px);text-align:center;opacity:0;transition:opacity .5s ease}
.home-fact.show{opacity:1}
.home-fact .hf-label{display:block;font-size:.56rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:5px}
.home-fact .hf-text{display:block;font-size:.9rem;line-height:1.45;font-weight:500;color:rgba(255,255,255,.9);text-shadow:0 1px 10px rgba(0,0,0,.55)}
.home-weather{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%;max-width:100%}
.hw-hours{display:flex;gap:6px;overflow-x:auto;max-width:100%;padding:2px 2px 4px;-webkit-overflow-scrolling:touch;scrollbar-width:none;justify-content:safe center}
.hw-hours::-webkit-scrollbar{display:none}
.hw-h{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:46px;padding:7px;border-radius:var(--r);background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.16);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff}
.hw-h .hh-time{font-size:.64rem;opacity:.78;font-variant-numeric:tabular-nums}
.hw-h .hh-ic{font-size:1.05rem;line-height:1}
.hw-h .hh-t{font-size:.82rem;font-weight:700;font-variant-numeric:tabular-nums}
@media (max-width:820px){ .home-topclock{position:static;transform:none;margin:16px auto 0} }
.home-metar{position:absolute;z-index:3;top:max(34px,calc(env(safe-area-inset-top,0px) + 26px));right:14px;max-width:min(42vw,340px);text-align:right;color:rgba(255,255,255,.94);font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace;font-size:.8rem;line-height:1.45;word-break:break-word;background:rgba(11,30,79,.35);border:1px solid rgba(255,255,255,.16);border-radius:var(--r-lg);padding:10px 12px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.home-metar .hm-label{display:block;font-family:var(--f-ui);font-size:.6rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#9AA8CC;margin-bottom:3px}
.home-metar .hm-label-taf{margin-top:8px}
.home-metar .hm-raw{display:block}
@media (max-width:520px){ .home-metar{position:static;align-self:stretch;max-width:none;width:auto;margin:12px 14px 0;font-size:.74rem} }

@media (prefers-reduced-motion:reduce){ *{transition:none!important;animation:none!important} }

/* ---------- Zoom PC : 100 % rend comme l'ancien 110 % (Hugo) ---------- */
@media (min-width:1024px){
  html{zoom:1.1}
  body{min-height:calc(100vh / 1.1)}
  .pv-card{max-height:calc(100vh / 1.1 - 32px)}
  .cvd-panel{max-height:min(56vh,420px)}
}

/* ---------- Mode nuit « Nuit marine » (Hugo, choix A) ---------- */
html:not([data-theme="light"]) .pv-top,html:not([data-theme="light"]) .pv-bar{background:#0B1430}
html:not([data-theme="light"]) .pv-band{background:#0D1838;border-top:1px solid #1C2A52;border-bottom:1px solid #1C2A52}
html:not([data-theme="light"]) .box{box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 8px 24px rgba(0,0,0,.35)}
html:not([data-theme="light"]) .grp-h,html:not([data-theme="light"]) .btn-band{background:#16203C}
html:not([data-theme="light"]) .pv-flow{background:#0A1126}
html:not([data-theme="light"]) .pv-flow button.is-on{background:#24345E;color:#fff;box-shadow:none}
html:not([data-theme="light"]) .cvd-btn{background:#0C1430}
