/* ==========================================================================
   lf-app.css  -  Habillage « app » (style C), chantier d'harmonisation #317
   (décision de Pascal le 30/10/2026, maquette
   https://claude.ai/artifact/BStM2vsJ6DZPTSFFqLr5dA).

   PRINCIPE
   - Tout est rangé sous :root[data-lf-skin="app"] (posé par lf_ui_skin_attr()).
     Sans l'attribut, cette feuille ne fait RIEN : le site reste « ops ».
   - Chargée APRÈS les feuilles ops du gabarit. Les feuilles que des vues
     chargent elles-mêmes (lf-ops-dispatch.css...) arrivent plus tard : on les
     bat par SPÉCIFICITÉ (préfixe :root[...] = +0,2,0), jamais par l'ordre.
   - Même noms de tokens que lf-ops.css : les vues et les feuilles ops lisent
     --bg, --ink, --acc... et changent d'allure sans être touchées.

   THÈMES (ordre des blocs = ordre de priorité, ne pas le défaire)
   1. :root[skin=app]                         -> SOMBRE (défaut du site, et « dark »)
   2. :root[skin=app][data-lf-theme=light]    -> CLAIR choisi
   3. @media light + :root[skin=app]:not([data-lf-theme]) -> CLAIR en « auto »
   ⛔ Le bloc 3 est OBLIGATOIRE : lf-ops.css a son propre bloc « auto clair »
   à la même spécificité que le bloc 1 ; sans le 3, l'auto clair afficherait
   le sombre de cette feuille (chargée après).

   CONTRASTES : chaque couleur d'écriture mesurée >= 4.5 sur les 4 surfaces
   (bg, bg2, panel, panel2) ; chaque accent aussi sur SA teinte à 15 % (cas
   d'une pastille color-mix) ; chaque encre sur son remplissage. Script :
   scratchpad contrast_app.js (session 5be8c220) ; toute nouvelle valeur y passe.
   ========================================================================== */

@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("/assets/fonts/manrope/manrope-latin-var.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("/assets/fonts/manrope/manrope-latin-ext-var.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- 1. SOMBRE (défaut) ---------- */
:root[data-lf-skin="app"]{
  color-scheme:dark;
  /* Forme et typo (communes aux deux thèmes) */
  --f-ui:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  /* « LF Code » = Plex Mono (lf-app-fonts.css) : le nom « IBM Plex Mono » est
     redirigé vers Manrope en habillage app, le code garde sa chasse fixe ici. */
  --f-code:"LF Code",ui-monospace,"Cascadia Mono",Consolas,monospace;
  --r:14px;--r-md:10px;--r-sm:8px;--r-pill:999px;
  /* Étiquettes et titres de zone : les vues les lisent AVEC un repli ops,
     ex. text-transform:var(--tt-lbl,uppercase). Sans habillage app, le repli
     rend exactement l'ancien rendu ; avec, la casse redevient normale. */
  --tt-lbl:none;--ls-lbl:.01em;--zh-fs:1.15rem;--zh-c:var(--ink);--zh-bd:0;
  --ring-ok:var(--acc);   /* anneaux de jauge « bon » (économie) ; repli olive en ops */

  --bg:#0b1220;--bg2:#0f1729;--panel:#141e33;--panel2:#1a2640;
  --line:#24324d;--line2:#1b2740;
  --ink:#eef3fb;--txt:#c3cde0;--dim:#97a3ba;--faint:#8794ac;
  --acc:#34d399;--accText:#05261a;--amb:#fbbf24;--ambFill:#fbbf24;--ambInk:#1f1300;
  --dgr:#fb8c8c;--dgrFill:#dc2626;--dgrInk:#ffffff;
  --bullLine:#3d3522;--bullBg:#191a24;--bullTitle:#fcd34d;--bullTxt:#cdbf98;
  --lexDebutant:#34d399;--lexConfirme:#fb923c;--lexExpert:#f87171;--lexNeutre:#94a3b8;--lexInk:#0b1220;
  --cl-blue:#60a5fa;--cl-orange:#fb923c;--cl-purple:#b4a0fc;--cl-teal:#2dd4bf;--cl-lime:#a3e635;--cl-magenta:#f472b6;
  --medalGold:#fcd34d;--medalSilver:#cbd5e1;--medalBronze:#f0a35e;
  --sh:0 1px 2px rgba(0,0,0,.30),0 10px 30px rgba(0,0,0,.22);
  --sh-lift:0 2px 4px rgba(0,0,0,.35),0 16px 40px rgba(0,0,0,.30);
  --scrim:rgba(5,10,20,.62);
}
/* ---------- 2. CLAIR choisi ---------- */
:root[data-lf-skin="app"][data-lf-theme="light"]{
  color-scheme:light;
  --bg:#f3f5f9;--bg2:#e9edf4;--panel:#ffffff;--panel2:#f8fafc;
  --line:#d9e0eb;--line2:#e8ecf3;
  --ink:#0f1a2b;--txt:#36435a;--dim:#525f76;--faint:#5b6780;
  --acc:#11653a;--accText:#ffffff;--amb:#8a3c0c;--ambFill:#f59e0b;--ambInk:#1f1300;
  --dgr:#a51f14;--dgrFill:#c62828;--dgrInk:#ffffff;
  --bullLine:#ead9a8;--bullBg:#fdf8ea;--bullTitle:#6b3a0e;--bullTxt:#6f5822;
  --lexDebutant:#11653a;--lexConfirme:#b33c0b;--lexExpert:#b42318;--lexNeutre:#5b6780;--lexInk:#ffffff;
  --cl-blue:#1d4ed8;--cl-orange:#9a3412;--cl-purple:#6d28d9;--cl-teal:#0b5f59;--cl-lime:#405e0e;--cl-magenta:#a0144f;
  --medalGold:#7c4a0b;--medalSilver:#52525b;--medalBronze:#9a3412;
  --sh:0 1px 2px rgba(15,26,43,.06),0 8px 24px rgba(15,26,43,.07);
  --sh-lift:0 2px 4px rgba(15,26,43,.08),0 14px 34px rgba(15,26,43,.12);
  --scrim:rgba(15,26,43,.45);
}
/* ---------- 3. CLAIR en « auto » (suit le système) ---------- */
@media (prefers-color-scheme:light){
  :root[data-lf-skin="app"]:not([data-lf-theme]){
    color-scheme:light;
    --bg:#f3f5f9;--bg2:#e9edf4;--panel:#ffffff;--panel2:#f8fafc;
    --line:#d9e0eb;--line2:#e8ecf3;
    --ink:#0f1a2b;--txt:#36435a;--dim:#525f76;--faint:#5b6780;
    --acc:#11653a;--accText:#ffffff;--amb:#8a3c0c;--ambFill:#f59e0b;--ambInk:#1f1300;
    --dgr:#a51f14;--dgrFill:#c62828;--dgrInk:#ffffff;
    --bullLine:#ead9a8;--bullBg:#fdf8ea;--bullTitle:#6b3a0e;--bullTxt:#6f5822;
    --lexDebutant:#11653a;--lexConfirme:#b33c0b;--lexExpert:#b42318;--lexNeutre:#5b6780;--lexInk:#ffffff;
    --cl-blue:#1d4ed8;--cl-orange:#9a3412;--cl-purple:#6d28d9;--cl-teal:#0b5f59;--cl-lime:#405e0e;--cl-magenta:#a0144f;
    --medalGold:#7c4a0b;--medalSilver:#52525b;--medalBronze:#9a3412;
    --sh:0 1px 2px rgba(15,26,43,.06),0 8px 24px rgba(15,26,43,.07);
    --sh-lift:0 2px 4px rgba(15,26,43,.08),0 14px 34px rgba(15,26,43,.12);
    --scrim:rgba(15,26,43,.45);
  }
}

/* ---------- Surfaces qui restent SOMBRES dans les deux thèmes ----------
   Affiches photo, Time Attack, bannières : même liste que lf-ops.css, palette
   sombre « app ». ⛔ Le pont --lf-* est redéclaré ici pour la même raison que
   dans lf-ops.css : une propriété var(--x) se résout là où elle est DÉCLARÉE. */
:root[data-lf-skin="app"] .lf-on-dark,
:root[data-lf-skin="app"] body.lf-ops .pc-content .lf-hero,
:root[data-lf-skin="app"] .lf-ta-hero,:root[data-lf-skin="app"] .lf-ta-body,
:root[data-lf-skin="app"] .rf-hero,:root[data-lf-skin="app"] .hero-banner,:root[data-lf-skin="app"] .rp-shell,
:root[data-lf-skin="app"] .lf-spotlight{
  color-scheme:dark;color:var(--ink);
  --bg:#0b1220;--bg2:#0f1729;--panel:#141e33;--panel2:#1a2640;
  --ink:#f4f7fc;--txt:#d5dceb;--dim:#aab5ca;--faint:#97a3ba;
  --acc:#34d399;--accText:#05261a;--amb:#fbbf24;--ambFill:#fbbf24;--ambInk:#1f1300;
  --cl-blue:#60a5fa;--cl-orange:#fb923c;--cl-purple:#b4a0fc;--cl-teal:#2dd4bf;--cl-lime:#a3e635;
  --dgr:#fb8c8c;
  --line:rgba(255,255,255,.16);--line2:rgba(255,255,255,.09);
  --lf-text:var(--ink);--lf-text-secondary:var(--txt);--lf-muted:var(--dim);--lf-label:var(--faint);
  --lf-primary:var(--acc);--lf-gold:var(--amb);--lf-amber:var(--amb);
  --lf-gold-fill:var(--ambFill);--lf-gold-ink:var(--ambInk);
  --lf-surface:var(--panel);--lf-surface-2:var(--panel);--lf-surface-3:var(--bg2);
  --lf-separator:var(--line);--lf-border:var(--line);
  --lf-fids-muted:var(--dim);--lf-fids-border:var(--line2);--lf-fids-success:var(--acc);
}

/* ---------- Le « cuir » (contrats, banque, flotte, boutique) rentre dans la charte ----------
   lf-ops.css rebranche les tokens de .lf-dispatch sur une palette chaude FIXE.
   Ici on les rend au THÈME (inherit = valeur calculée du parent), papier compris :
   la page suit enfin le clair et le sombre comme toutes les autres. */
:root[data-lf-skin="app"] .lf-dispatch,
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet,
:root[data-lf-skin="app"] .lf-dispatch .dsp-card,
:root[data-lf-skin="app"] .lf-dispatch .dsp-report,
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-label,
:root[data-lf-skin="app"] .lf-dispatch .dsp-filters{
  --bg:inherit;--bg2:inherit;--panel:inherit;--panel2:inherit;--ink:inherit;--txt:inherit;--dim:inherit;--faint:inherit;
  --acc:inherit;--accText:inherit;--amb:inherit;--ambFill:inherit;--ambInk:inherit;--dgr:inherit;
  --cl-blue:inherit;--cl-orange:inherit;--cl-purple:inherit;--cl-teal:inherit;--cl-lime:inherit;
  --medalGold:inherit;--medalSilver:inherit;--medalBronze:inherit;--line:inherit;--line2:inherit;
  --lf-text:var(--ink);--lf-text-secondary:var(--txt);--lf-muted:var(--dim);--lf-label:var(--faint);
  --lf-primary:var(--acc);--lf-gold:var(--amb);--lf-amber:var(--amb);
  --lf-gold-fill:var(--ambFill);--lf-gold-ink:var(--ambInk);
  --lf-surface:var(--panel);--lf-surface-2:var(--panel);--lf-surface-3:var(--bg2);
  --lf-separator:var(--line);--lf-border:var(--line);
  --lf-fids-muted:var(--dim);--lf-fids-border:var(--line2);--lf-fids-success:var(--acc);
  /* Les noms --dsp-* restent lus par les styles locaux des vues : on les pose sur la charte. */
  --dsp-canvas:transparent;--dsp-panel:var(--panel);--dsp-side:var(--bg2);--dsp-border:var(--line2);
  --dsp-paper:var(--panel);--dsp-paper2:var(--panel);--dsp-paper3:var(--panel2);--dsp-paper-line:var(--line);
  --dsp-leather:var(--panel2);--dsp-leather2:var(--panel2);--dsp-leather3:var(--line);--dsp-cork:var(--bg2);
  --dsp-ink:var(--ink);--dsp-ink2:var(--txt);--dsp-ink3:var(--dim);--dsp-dim:var(--dim);
  --dsp-amber:var(--amb);--dsp-amber2:var(--amb);--dsp-amber3:var(--amb);
  --dsp-red:var(--dgr);--dsp-red2:var(--dgr);--dsp-olive:var(--acc);--dsp-olive2:var(--acc);
  --dsp-pin-red:var(--dgr);--dsp-pin-blue:var(--cl-blue);
}

/* =================== BASE =================== */
:root[data-lf-skin="app"] body.lf-ops,
:root[data-lf-skin="app"] .lf-ops{
  font-family:var(--f-ui);font-size:14px;line-height:1.55;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"tnum" 1;   /* chiffres alignés partout : heures, montants, RP */
}
:root[data-lf-skin="app"] body.lf-ops{
  --bs-body-font-family:var(--f-ui);--bs-body-font-size:.875rem;--bs-body-line-height:1.55;
  --bs-link-color-rgb:52,211,153;--bs-link-hover-color-rgb:52,211,153;
  --bs-primary-rgb:52,211,153;--bs-success-rgb:52,211,153;--bs-warning-rgb:251,191,36;--bs-danger-rgb:251,140,140;
}
:root[data-lf-skin="app"] body.lf-ops *{
  --bs-border-radius:var(--r-sm);--bs-border-radius-sm:6px;--bs-border-radius-lg:var(--r-md);
  --bs-border-radius-xl:var(--r);--bs-border-radius-xxl:var(--r);--bs-border-radius-pill:var(--r-pill);
}
:root[data-lf-skin="app"] body.lf-ops h1,:root[data-lf-skin="app"] body.lf-ops h2,
:root[data-lf-skin="app"] body.lf-ops h3,:root[data-lf-skin="app"] body.lf-ops h4,
:root[data-lf-skin="app"] body.lf-ops h5,:root[data-lf-skin="app"] body.lf-ops h6{
  font-family:var(--f-ui);font-weight:750;letter-spacing:-.015em;text-wrap:balance
}
:root[data-lf-skin="app"] body.lf-ops code,:root[data-lf-skin="app"] body.lf-ops pre,
:root[data-lf-skin="app"] body.lf-ops kbd{font-family:var(--f-code)}
:root[data-lf-skin="app"] body.lf-ops ::selection{background:color-mix(in srgb,var(--acc) 30%,transparent)}
:root[data-lf-skin="app"] body.lf-ops :focus-visible{outline:2px solid var(--acc);outline-offset:2px}
/* Les champs NATIFS (select, date, number...) suivent le thème grâce à
   color-scheme ; on leur donne en plus la forme de la charte. */
:root[data-lf-skin="app"] body.lf-ops select,
/* ⛔ Chaque :not() compte dans la spécificité : cette règle bat une règle de
   composant ordinaire. Un champ qui a sa propre mise en page (recherche avec
   loupe...) doit donc être EXCLU ici, pas seulement surchargé plus bas. */
:root[data-lf-skin="app"] body.lf-ops input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not(.lf-search__input),
:root[data-lf-skin="app"] body.lf-ops textarea{
  font-family:var(--f-ui);font-size:13.5px;color:var(--ink);background-color:var(--panel);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:7px 10px;min-height:36px;
  transition:border-color .15s,box-shadow .15s
}
:root[data-lf-skin="app"] body.lf-ops select:focus,
:root[data-lf-skin="app"] body.lf-ops input:focus,
:root[data-lf-skin="app"] body.lf-ops textarea:focus{
  outline:none;border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 22%,transparent)
}
/* La recherche garde son retrait à gauche (loupe) et à droite (Ctrl+K) */
:root[data-lf-skin="app"] body.lf-ops input.lf-search__input{padding:8px 70px 8px 36px;border-radius:var(--r-pill);background:var(--panel)}
:root[data-lf-skin="app"] body.lf-ops .lf-search__kbd{border-radius:6px;font-family:var(--f-ui)}
:root[data-lf-skin="app"] body.lf-ops .lf-search__dropdown{border-radius:var(--r-md);box-shadow:var(--sh-lift)}
:root[data-lf-skin="app"] body.lf-ops input::placeholder,
:root[data-lf-skin="app"] body.lf-ops textarea::placeholder{color:var(--faint)}
/* Un <button> nu (sans .btn) prend une forme de bouton secondaire */
:root[data-lf-skin="app"] body.lf-ops .pc-content button:not([class]),
:root[data-lf-skin="app"] body.lf-ops .pc-content input[type=submit]:not([class]){
  font:600 13px var(--f-ui);color:var(--ink);background:var(--panel2);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:7px 14px;cursor:pointer
}
:root[data-lf-skin="app"] body.lf-ops .pc-content button:not([class]):hover{border-color:var(--acc);color:var(--acc)}

/* Les vieilles règles « angles droits / pas d'ombre » de lf-ops-member.css
   (avec !important) sont neutralisées à plus forte spécificité. */
:root[data-lf-skin="app"] body.lf-ops [class*="rounded"]{border-radius:var(--r-sm)!important}
:root[data-lf-skin="app"] body.lf-ops .rounded-pill{border-radius:var(--r-pill)!important}
:root[data-lf-skin="app"] body.lf-ops .rounded-circle{border-radius:50%!important}
:root[data-lf-skin="app"] body.lf-ops .rounded-0{border-radius:0!important}

/* =================== CHROME : en-tête, menu, pied =================== */
:root[data-lf-skin="app"] body.lf-ops .lf-topbar{
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  -webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);
  border-bottom:1px solid var(--line2);font-family:var(--f-ui)
}
:root[data-lf-skin="app"] body.lf-ops .lf-brand-row{border-bottom:1px solid var(--line2)}
:root[data-lf-skin="app"] body.lf-ops .lf-ver-badge{border-radius:var(--r-pill);border:0;background:color-mix(in srgb,var(--acc) 14%,transparent);letter-spacing:.02em;font-size:11px;padding:3px 9px}
:root[data-lf-skin="app"] body.lf-ops .lf-icon-btn{border-radius:var(--r-sm);border-color:var(--line);background:var(--panel)}
:root[data-lf-skin="app"] body.lf-ops .lf-icon-btn:hover{border-color:var(--acc);color:var(--acc);background:var(--panel2)}
:root[data-lf-skin="app"] body.lf-ops .lf-tsw{border-radius:var(--r-pill);border:1px solid var(--line);background:var(--panel);padding:2px;gap:2px}
:root[data-lf-skin="app"] body.lf-ops .lf-tsw button{border-radius:var(--r-pill);font:600 11.5px var(--f-ui);letter-spacing:.02em;padding:4px 10px;text-transform:none}
:root[data-lf-skin="app"] body.lf-ops .lf-clock{font-family:var(--f-ui);font-weight:700;letter-spacing:.02em}
:root[data-lf-skin="app"] body.lf-ops .lf-clock .lf-blink{display:none}
:root[data-lf-skin="app"] body.lf-ops .navbar{background:transparent!important;border-top-color:var(--line2)!important}
:root[data-lf-skin="app"] body.lf-ops .navbar .nav-link{
  font:600 13.5px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--txt);
  padding:8px 12px;margin:6px 2px;border-radius:var(--r-sm)
}
:root[data-lf-skin="app"] body.lf-ops .navbar .nav-link:hover{background:var(--panel2);color:var(--ink)}
:root[data-lf-skin="app"] body.lf-ops .navbar .nav-link.active,
:root[data-lf-skin="app"] body.lf-ops .navbar .nav-link.show{background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--acc)}
:root[data-lf-skin="app"] body.lf-ops header.lf-topbar .dropdown-menu,
:root[data-lf-skin="app"] body.lf-ops .dropdown-menu{
  border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel);box-shadow:var(--sh-lift);padding:6px;font-size:13.5px
}
:root[data-lf-skin="app"] body.lf-ops .dropdown-item,
:root[data-lf-skin="app"] body.lf-ops header.lf-topbar .dropdown-item{border-radius:6px;padding:7px 10px;font-size:13.5px}
:root[data-lf-skin="app"] body.lf-ops .pc-content{padding:28px 32px 56px;max-width:1440px}
:root[data-lf-skin="app"] body.lf-ops .pc-footer{background:transparent;border-top:1px solid var(--line2);font-size:12.5px;letter-spacing:0}
:root[data-lf-skin="app"] body.lf-ops #env-banner{letter-spacing:.02em;font-size:12px}
/* Barre publique (front_top_ops) */
:root[data-lf-skin="app"] body.lf-ops > .lf-topbar{font-size:13px;letter-spacing:0;padding:12px 28px;gap:22px}
:root[data-lf-skin="app"] .lf-logo{font-family:var(--f-ui);font-weight:800;letter-spacing:.02em}
:root[data-lf-skin="app"] .lf-fnav{gap:4px}
:root[data-lf-skin="app"] .lf-fnav a{padding:6px 10px;border-radius:var(--r-sm);color:var(--txt);font-weight:600}
:root[data-lf-skin="app"] .lf-fnav a:hover{background:var(--panel2);opacity:1;color:var(--ink)}
:root[data-lf-skin="app"] .lf-fnav a.on{background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--acc)}
:root[data-lf-skin="app"] .lf-btn-line{border-radius:var(--r-sm);font-weight:700}
:root[data-lf-skin="app"] .lf-foot-links,:root[data-lf-skin="app"] .lf-foot{background:transparent;letter-spacing:0;font-size:12px}

/* =================== COMPOSANTS BOOTSTRAP =================== */
:root[data-lf-skin="app"] body.lf-ops .card{
  --bs-card-bg:var(--panel);--bs-card-border-color:var(--line2);--bs-card-cap-bg:transparent;
  --bs-card-border-radius:var(--r);--bs-card-inner-border-radius:calc(var(--r) - 1px);
  border-radius:var(--r);box-shadow:var(--sh)!important
}
:root[data-lf-skin="app"] body.lf-ops .card-header{
  font:700 14.5px var(--f-ui);letter-spacing:-.005em;text-transform:none;color:var(--ink);
  border-bottom:1px solid var(--line2);padding:14px 18px
}
:root[data-lf-skin="app"] body.lf-ops .card-body{padding:16px 18px}
:root[data-lf-skin="app"] body.lf-ops .card-footer{border-top:1px solid var(--line2);background:transparent}
:root[data-lf-skin="app"] body.lf-ops .btn{
  --bs-btn-border-radius:var(--r-sm);--bs-btn-font-size:13.5px;--bs-btn-padding-y:.5rem;--bs-btn-padding-x:1.05rem;
  font-family:var(--f-ui);font-weight:700;letter-spacing:0;text-transform:none;
  transition:filter .15s,background-color .15s,border-color .15s,color .15s,box-shadow .15s
}
:root[data-lf-skin="app"] body.lf-ops .btn-sm{--bs-btn-font-size:12.5px;--bs-btn-padding-y:.32rem;--bs-btn-padding-x:.75rem;--bs-btn-border-radius:6px}
:root[data-lf-skin="app"] body.lf-ops .btn-lg{--bs-btn-font-size:15px;--bs-btn-padding-y:.7rem;--bs-btn-padding-x:1.4rem;--bs-btn-border-radius:var(--r-md)}
:root[data-lf-skin="app"] body.lf-ops .btn-primary,:root[data-lf-skin="app"] body.lf-ops .btn-success{box-shadow:0 1px 2px rgba(0,0,0,.15)}
:root[data-lf-skin="app"] body.lf-ops .btn-secondary,:root[data-lf-skin="app"] body.lf-ops .btn-dark,:root[data-lf-skin="app"] body.lf-ops .btn-light{
  --bs-btn-bg:var(--panel2);--bs-btn-border-color:var(--line);--bs-btn-hover-bg:var(--bg2)
}
:root[data-lf-skin="app"] body.lf-ops [class*="btn-outline-"]{--bs-btn-bg:var(--panel)}
:root[data-lf-skin="app"] body.lf-ops .badge{
  border-radius:var(--r-pill);font:700 11px var(--f-ui);letter-spacing:.01em;padding:.32em .7em;text-transform:none
}
:root[data-lf-skin="app"] body.lf-ops .badge.bg-primary,:root[data-lf-skin="app"] body.lf-ops .badge.bg-success{background:color-mix(in srgb,var(--acc) 15%,transparent)!important;border-color:transparent}
:root[data-lf-skin="app"] body.lf-ops .badge.bg-warning{background:color-mix(in srgb,var(--amb) 16%,transparent)!important;border-color:transparent}
:root[data-lf-skin="app"] body.lf-ops .badge.bg-danger{background:color-mix(in srgb,var(--dgr) 15%,transparent)!important;border-color:transparent}
:root[data-lf-skin="app"] body.lf-ops .badge.bg-secondary,:root[data-lf-skin="app"] body.lf-ops .badge.bg-dark,
:root[data-lf-skin="app"] body.lf-ops .badge.bg-light,:root[data-lf-skin="app"] body.lf-ops .badge.bg-info{background:var(--bg2)!important;border-color:transparent;color:var(--txt)!important}
:root[data-lf-skin="app"] body.lf-ops .table{--bs-table-hover-bg:color-mix(in srgb,var(--acc) 6%,transparent);font-size:13.5px}
:root[data-lf-skin="app"] body.lf-ops .table thead th{
  font:700 12px var(--f-ui);letter-spacing:.01em;text-transform:none;color:var(--dim);background:transparent
}
:root[data-lf-skin="app"] body.lf-ops .table td,:root[data-lf-skin="app"] body.lf-ops .table th{padding:.65rem .85rem}
:root[data-lf-skin="app"] body.lf-ops .table-responsive{border-radius:var(--r-md)}
:root[data-lf-skin="app"] body.lf-ops .form-control,:root[data-lf-skin="app"] body.lf-ops .form-select{
  border-radius:var(--r-sm);background-color:var(--panel);font-family:var(--f-ui);font-size:13.5px
}
:root[data-lf-skin="app"] body.lf-ops .form-control:focus,:root[data-lf-skin="app"] body.lf-ops .form-select:focus{
  background-color:var(--panel);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 22%,transparent)
}
:root[data-lf-skin="app"] body.lf-ops .form-label{font:700 12.5px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--txt)}
:root[data-lf-skin="app"] body.lf-ops .form-check-input{border-radius:5px;background-color:var(--panel)}
:root[data-lf-skin="app"] body.lf-ops .form-switch .form-check-input{border-radius:2em}
:root[data-lf-skin="app"] body.lf-ops .input-group-text{border-radius:var(--r-sm);background:var(--bg2)}
:root[data-lf-skin="app"] body.lf-ops .modal-content{border-radius:var(--r);border-color:var(--line2);box-shadow:var(--sh-lift)}
:root[data-lf-skin="app"] body.lf-ops .modal-backdrop{--bs-backdrop-bg:#050a14;--bs-backdrop-opacity:.6}
:root[data-lf-skin="app"] body.lf-ops .offcanvas{border-left:1px solid var(--line2)!important;box-shadow:var(--sh-lift)}
:root[data-lf-skin="app"] body.lf-ops .btn-close{filter:none;opacity:.7}
:root[data-lf-skin="app"][data-bs-theme="dark"] body.lf-ops .btn-close{filter:invert(1) grayscale(1)}
:root[data-lf-skin="app"] body.lf-ops .nav-tabs{border-bottom:1px solid var(--line2);gap:4px}
:root[data-lf-skin="app"] body.lf-ops .nav-tabs .nav-link{
  font:600 13.5px var(--f-ui);letter-spacing:0;text-transform:none;border:0;border-bottom:2px solid transparent;
  border-radius:0;color:var(--dim);padding:9px 14px
}
:root[data-lf-skin="app"] body.lf-ops .nav-tabs .nav-link.active{background:transparent;color:var(--ink);border-bottom-color:var(--acc)}
:root[data-lf-skin="app"] body.lf-ops .nav-pills .nav-link{border-radius:var(--r-pill);font-weight:600}
:root[data-lf-skin="app"] body.lf-ops .alert{
  border-radius:var(--r-md);border:1px solid color-mix(in srgb,var(--line) 70%,transparent);border-left-width:4px;
  background:var(--panel);box-shadow:var(--sh);font-size:13.5px
}
:root[data-lf-skin="app"] body.lf-ops .alert-success,:root[data-lf-skin="app"] body.lf-ops .alert-info,
:root[data-lf-skin="app"] body.lf-ops .alert-primary{background:color-mix(in srgb,var(--acc) 7%,var(--panel))}
:root[data-lf-skin="app"] body.lf-ops .alert-warning{background:color-mix(in srgb,var(--amb) 8%,var(--panel))}
:root[data-lf-skin="app"] body.lf-ops .alert-danger{background:color-mix(in srgb,var(--dgr) 8%,var(--panel))}
:root[data-lf-skin="app"] body.lf-ops .progress{border-radius:var(--r-pill);height:8px}
:root[data-lf-skin="app"] body.lf-ops .progress-bar{border-radius:var(--r-pill)}
:root[data-lf-skin="app"] body.lf-ops .pagination{gap:4px}
:root[data-lf-skin="app"] body.lf-ops .page-link{border-radius:var(--r-sm)!important;font-weight:600}
:root[data-lf-skin="app"] body.lf-ops .list-group{border-radius:var(--r-md);overflow:hidden}
:root[data-lf-skin="app"] body.lf-ops .accordion{--bs-accordion-border-radius:var(--r-md);--bs-accordion-inner-border-radius:calc(var(--r-md) - 1px);--bs-accordion-btn-bg:var(--panel);--bs-accordion-active-bg:var(--panel2)}
:root[data-lf-skin="app"] body.lf-ops .tooltip{--bs-tooltip-border-radius:var(--r-sm);--bs-tooltip-bg:var(--ink);--bs-tooltip-color:var(--bg);font-family:var(--f-ui)}

/* =================== COMPOSANTS HISTORIQUES (stats-panel, fd-info, stats-kpi) ===================
   Les plus utilisés du site (300+ usages chacun) : les passer en carte suffit
   à harmoniser des dizaines de pages d'un coup. */
:root[data-lf-skin="app"] body.lf-ops .stats-panel{
  border:1px solid var(--line2);background:var(--panel);border-radius:var(--r)!important;box-shadow:var(--sh)!important;overflow:hidden
}
:root[data-lf-skin="app"] body.lf-ops .stats-panel-header{
  font:700 14.5px var(--f-ui);letter-spacing:-.005em;text-transform:none;color:var(--ink);
  padding:14px 18px;border-bottom:1px solid var(--line2);align-items:center
}
:root[data-lf-skin="app"] body.lf-ops .stats-panel-header a,
:root[data-lf-skin="app"] body.lf-ops .stats-panel-header .small{font-size:12.5px;font-weight:700;color:var(--acc)}
:root[data-lf-skin="app"] body.lf-ops .fd-info-row{padding:11px 18px;font-size:13.5px;border-bottom:1px solid var(--line2)}
:root[data-lf-skin="app"] body.lf-ops .fd-info-label{letter-spacing:0;font-weight:600;color:var(--dim)}
:root[data-lf-skin="app"] body.lf-ops .fd-info-value{color:var(--ink)}
:root[data-lf-skin="app"] body.lf-ops .stats-kpi-grid{
  gap:12px;border:0;background:transparent
}
:root[data-lf-skin="app"] body.lf-ops .stats-kpi{
  text-align:left;padding:14px 16px;border:1px solid var(--line2)!important;border-radius:var(--r-md);
  background:var(--panel);box-shadow:var(--sh)
}
:root[data-lf-skin="app"] body.lf-ops .stats-kpi-value{font:800 22px var(--f-ui);letter-spacing:-.02em;color:var(--ink)}
:root[data-lf-skin="app"] body.lf-ops .stats-kpi-label{font:600 12px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--dim)}
:root[data-lf-skin="app"] body.lf-ops .stats-empty{color:var(--dim);font-size:13.5px}
:root[data-lf-skin="app"] body.lf-ops .stats-table{font-size:13.5px}
:root[data-lf-skin="app"] body.lf-ops .stats-table thead th{font:700 12px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--dim)}
:root[data-lf-skin="app"] body.lf-ops .stats-bar-track{border-radius:var(--r-pill)}
:root[data-lf-skin="app"] body.lf-ops .stats-bar-fill{border-radius:var(--r-pill)}
:root[data-lf-skin="app"] body.lf-ops .stats-diff-dot{border-radius:50%;box-shadow:none}
:root[data-lf-skin="app"] body.lf-ops .fids-btn{
  border-radius:var(--r-sm);font:700 12.5px var(--f-ui);letter-spacing:0;text-transform:none;padding:6px 14px;
  background:var(--panel);border:1px solid var(--line)
}
:root[data-lf-skin="app"] body.lf-ops .fids-btn:hover{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 8%,var(--panel))}
:root[data-lf-skin="app"] body.lf-ops .fids-col-head{font-family:var(--f-ui);letter-spacing:0;text-transform:none;font-weight:700}
:root[data-lf-skin="app"] body.lf-ops .roster-rank-code{border-radius:var(--r-pill);border:0;letter-spacing:.02em;padding:.2em .6em}
:root[data-lf-skin="app"] body.lf-ops .lb-me-badge{border-radius:var(--r-pill);letter-spacing:.02em}
:root[data-lf-skin="app"] body.lf-ops .lf-system-alert{border-radius:var(--r-md)!important;border-left-width:4px;background:var(--panel);box-shadow:var(--sh);font-size:13.5px}
:root[data-lf-skin="app"] body.lf-ops .lfc-notice{border-radius:var(--r-md);background:var(--panel);border-color:var(--line2)}

/* Accès rapide du tableau de bord : tuiles séparées, plus de « trou » vert */
:root[data-lf-skin="app"] body.lf-ops .dash-quick-links{
  gap:8px;background:transparent;grid-template-columns:repeat(auto-fill,minmax(100px,1fr))
}
:root[data-lf-skin="app"] body.lf-ops .dash-quick-link{
  border:1px solid var(--line2);border-radius:var(--r-md);background:var(--panel);box-shadow:var(--sh);
  font:600 12.5px var(--f-ui);letter-spacing:0;color:var(--txt);padding:12px 6px;gap:6px;
  transition:transform .15s,border-color .15s,color .15s
}
:root[data-lf-skin="app"] body.lf-ops .dash-quick-link i{font-size:1.35rem;color:var(--acc)}
:root[data-lf-skin="app"] body.lf-ops .dash-quick-link:hover{border-color:var(--acc);color:var(--ink);transform:translateY(-1px);background:var(--panel)}
:root[data-lf-skin="app"] body.lf-ops .dash-quick-link .badge{font-size:10.5px}

/* Bannière photo des vues membres */
:root[data-lf-skin="app"] body.lf-ops .pc-content .lf-hero{border-radius:var(--r);border:0;box-shadow:var(--sh);padding:40px 40px}
:root[data-lf-skin="app"] body.lf-ops .pc-content .lf-hero::before{background:linear-gradient(90deg,rgba(8,14,28,.92),rgba(8,14,28,.6) 55%,rgba(8,14,28,.2))}
:root[data-lf-skin="app"] body.lf-ops .pc-content .lf-hero-title{font:800 30px var(--f-ui);letter-spacing:-.02em}
:root[data-lf-skin="app"] body.lf-ops .pc-content .lf-hero-sub{font-size:14px}

/* =================== COMPOSANTS lf-* (lf-ops.css) =================== */
:root[data-lf-skin="app"] .lf-kicker,:root[data-lf-skin="app"] .lf-eyebrow{
  font:700 12px var(--f-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--acc)
}
:root[data-lf-skin="app"] .lf-page-head{border-bottom:0;padding-bottom:4px}
:root[data-lf-skin="app"] .lf-page-title{font:800 32px var(--f-ui);letter-spacing:-.025em}
:root[data-lf-skin="app"] .lf-page-meta{letter-spacing:0;font-size:13px}
:root[data-lf-skin="app"] .lf-lede{font-size:14.5px;line-height:1.65;color:var(--txt)}
:root[data-lf-skin="app"] .lf-sec-h .t,:root[data-lf-skin="app"] .lf-group-h .t{font:750 17px var(--f-ui);letter-spacing:-.01em;text-transform:none}
:root[data-lf-skin="app"] .lf-sec-h .m,:root[data-lf-skin="app"] .lf-group-h .n{font-size:12.5px;letter-spacing:0}
:root[data-lf-skin="app"] .lf-group-h{border-bottom:0}
:root[data-lf-skin="app"] .lf-card,:root[data-lf-skin="app"] .lf-mcard,:root[data-lf-skin="app"] .lf-panel,
:root[data-lf-skin="app"] .lf-kv,:root[data-lf-skin="app"] .lf-tl,:root[data-lf-skin="app"] .lf-faq,
:root[data-lf-skin="app"] .lf-legs,:root[data-lf-skin="app"] .lf-fb,:root[data-lf-skin="app"] .lf-map-shell,
:root[data-lf-skin="app"] .lf-live,:root[data-lf-skin="app"] .lf-table-wrap,:root[data-lf-skin="app"] .lf-cta{
  border:1px solid var(--line2);border-radius:var(--r);background:var(--panel);box-shadow:var(--sh);overflow:hidden
}
:root[data-lf-skin="app"] .lf-live{border-color:color-mix(in srgb,var(--acc) 45%,var(--line2))}
:root[data-lf-skin="app"] .lf-card .img{border-radius:0}
:root[data-lf-skin="app"] a.lf-card{transition:transform .15s,border-color .15s,box-shadow .15s}
:root[data-lf-skin="app"] a.lf-card:hover{transform:translateY(-2px);box-shadow:var(--sh-lift);border-color:color-mix(in srgb,var(--acc) 50%,var(--line2))}
:root[data-lf-skin="app"] .lf-card .k,:root[data-lf-skin="app"] .lf-mcard .r,:root[data-lf-skin="app"] .lf-panel .h{
  font:700 12px var(--f-ui);letter-spacing:.02em;text-transform:none
}
:root[data-lf-skin="app"] .lf-card .t,:root[data-lf-skin="app"] .lf-mcard .t{font:750 16px var(--f-ui);letter-spacing:-.01em}
:root[data-lf-skin="app"] .lf-card .d,:root[data-lf-skin="app"] .lf-mcard .d,:root[data-lf-skin="app"] .lf-panel .b{font-size:13.5px;line-height:1.6}
:root[data-lf-skin="app"] .lf-card .meta{font-size:12.5px;letter-spacing:0}
:root[data-lf-skin="app"] .lf-card .corner{font-size:11.5px;letter-spacing:0}
:root[data-lf-skin="app"] .lf-badge,:root[data-lf-skin="app"] .lf-type,:root[data-lf-skin="app"] .lf-ops .badge,:root[data-lf-skin="app"] .lf-ops .lf-pill{
  border-radius:var(--r-pill);border:0;background:var(--bg2);font:700 11px var(--f-ui);letter-spacing:.01em;padding:3px 9px
}
:root[data-lf-skin="app"] .lf-badge.acc,:root[data-lf-skin="app"] .lf-type-mission,:root[data-lf-skin="app"] .lf-ops .text-bg-primary,:root[data-lf-skin="app"] .lf-ops .text-bg-success{background:color-mix(in srgb,var(--acc) 15%,transparent)}
:root[data-lf-skin="app"] .lf-badge.amb,:root[data-lf-skin="app"] .lf-type-tour,:root[data-lf-skin="app"] .lf-ops .text-bg-warning{background:color-mix(in srgb,var(--amb) 16%,transparent)}
:root[data-lf-skin="app"] .lf-ops .text-bg-danger{background:color-mix(in srgb,var(--dgr) 15%,transparent)}
:root[data-lf-skin="app"] .lf-table thead th{font:700 12px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--dim)}
:root[data-lf-skin="app"] .lf-table{font-size:13.5px}
:root[data-lf-skin="app"] .lf-table tbody td{padding:11px 14px}
:root[data-lf-skin="app"] .lf-stats{border:0;background:transparent;gap:12px}
:root[data-lf-skin="app"] .lf-stats.fit{border:0}
:root[data-lf-skin="app"] .lf-stat{border:1px solid var(--line2)!important;border-radius:var(--r-md);background:var(--panel);box-shadow:var(--sh)}
:root[data-lf-skin="app"] .lf-stat .v{font:800 26px var(--f-ui);letter-spacing:-.02em}
:root[data-lf-skin="app"] .lf-stat .l{font:600 12px var(--f-ui);letter-spacing:0;text-transform:none}
:root[data-lf-skin="app"] .lf-btns a,:root[data-lf-skin="app"] .lf-cta a{border-radius:var(--r-sm);letter-spacing:0;font-family:var(--f-ui)}
:root[data-lf-skin="app"] .lf-btns .alt,:root[data-lf-skin="app"] .lf-cta .alt{background:var(--panel)}
:root[data-lf-skin="app"] .lf-alert{border-radius:var(--r-md);border-left-width:4px;background:var(--panel);box-shadow:var(--sh);font-size:13.5px}
:root[data-lf-skin="app"] .lf-form label{font:700 12.5px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--txt)}
:root[data-lf-skin="app"] .lf-form input,:root[data-lf-skin="app"] .lf-form textarea,:root[data-lf-skin="app"] .lf-form select{border-radius:var(--r-sm);background:var(--panel)}
:root[data-lf-skin="app"] .lf-form button[type=submit]{border-radius:var(--r-sm);letter-spacing:0;font-family:var(--f-ui)}
:root[data-lf-skin="app"] .lf-filters select,:root[data-lf-skin="app"] .lf-map-bar select,
:root[data-lf-skin="app"] .lf-map-bar .bt,:root[data-lf-skin="app"] .lf-pager a,:root[data-lf-skin="app"] .lf-pager span{
  border-radius:var(--r-sm);font-family:var(--f-ui);letter-spacing:0;font-size:13px
}
:root[data-lf-skin="app"] .lf-faq summary::before{content:"+ "}
:root[data-lf-skin="app"] .lf-faq details[open] summary::before{content:"− "}
:root[data-lf-skin="app"] .lf-tl .mk{font-family:var(--f-code)}
:root[data-lf-skin="app"] .lf-progress{border-radius:var(--r-pill)}
:root[data-lf-skin="app"] .lf-progress-bar{border-radius:var(--r-pill)}
:root[data-lf-skin="app"] .lf-bull{border-radius:var(--r);box-shadow:var(--sh)}
:root[data-lf-skin="app"] .lf-bull .h{letter-spacing:.04em}
:root[data-lf-skin="app"] .lf-bull-btn{border-radius:6px}
:root[data-lf-skin="app"] .lf-ticker{letter-spacing:.02em}
:root[data-lf-skin="app"] .lf-banner{border-radius:var(--r);border:0}
:root[data-lf-skin="app"] .lf-award-tile{border-radius:var(--r-md);border-style:solid}
:root[data-lf-skin="app"] .lf-flight-card{border-radius:0}
:root[data-lf-skin="app"] #lf-map{border-radius:var(--r-md)}
:root[data-lf-skin="app"] .lf-livemap-sidebar{border-radius:var(--r-md)}

/* =================== BRIEFING « ÉCRAN CATHODIQUE » DES FICHES MISSION ===================
   Vert phosphore, balayage et scintillement : un îlot terminal. En app, c'est une
   carte de lecture ordinaire, police du texte, qui suit le clair et le sombre. */
:root[data-lf-skin="app"] .crt-bezel{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r)!important;box-shadow:var(--sh);padding:0;overflow:hidden}
:root[data-lf-skin="app"] .crt-label{font:700 14.5px var(--f-ui);letter-spacing:-.005em;text-transform:none;color:var(--ink);padding:14px 18px;margin:0;border-bottom:1px solid var(--line2)}
:root[data-lf-skin="app"] .crt-screen{background:transparent;border:0;border-radius:0!important}
:root[data-lf-skin="app"] .crt-screen::before,:root[data-lf-skin="app"] .crt-screen::after{display:none}
:root[data-lf-skin="app"] .crt-content{max-height:none;padding:16px 18px}
:root[data-lf-skin="app"] body.lf-ops .crt-screen pre{font:500 14px/1.65 var(--f-ui);color:var(--txt);text-shadow:none;white-space:pre-wrap}

/* =================== TABLEAUX FIDS (départs, historiques, mes vols, mes missions) =================== */
:root[data-lf-skin="app"] .fids-board{border:1px solid var(--line2);border-radius:var(--r);background:var(--panel);box-shadow:var(--sh)}
:root[data-lf-skin="app"] .fids-board::after{display:none}
:root[data-lf-skin="app"] .fids-header{background:var(--panel);border-bottom:1px solid var(--line2);padding:14px 18px}
:root[data-lf-skin="app"] .fids-header-title{font:750 16px var(--f-ui);letter-spacing:-.01em;text-transform:none;color:var(--ink)}
:root[data-lf-skin="app"] .fids-header-clock{font:700 14px var(--f-ui);letter-spacing:0;color:var(--acc);opacity:1}
:root[data-lf-skin="app"] .fids-columns{background:var(--panel2);border-bottom:1px solid var(--line2)}
:root[data-lf-skin="app"] .fids-col-head{font:700 12px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--dim)}
:root[data-lf-skin="app"] .fids-row{padding:11px 18px}
:root[data-lf-skin="app"] .fids-row:hover{background:color-mix(in srgb,var(--acc) 5%,transparent)}
:root[data-lf-skin="app"] .fids-status-open,:root[data-lf-skin="app"] .fids-status-suspended,
:root[data-lf-skin="app"] .fids-status-inflight,:root[data-lf-skin="app"] .fids-status-planned,
:root[data-lf-skin="app"] .fids-status-pending{letter-spacing:0;font-size:12.5px}
:root[data-lf-skin="app"] .fids-empty{letter-spacing:0;font-size:14px}
:root[data-lf-skin="app"] .fids-count{letter-spacing:0;font-size:12.5px;padding:12px 18px}
:root[data-lf-skin="app"] .lf-flap i{border-radius:4px;font-family:var(--f-ui);font-weight:800}
:root[data-lf-skin="app"] .lf-st{letter-spacing:0;font-size:12.5px}
:root[data-lf-skin="app"] .lf-st-dot{border-radius:50%}
:root[data-lf-skin="app"] .lf-st-progress{height:3px;border-radius:0 var(--r-pill) var(--r-pill) 0;opacity:.75}
:root[data-lf-skin="app"] .lf-icao-tag{border-radius:6px;letter-spacing:.04em}
:root[data-lf-skin="app"] .fids-diff-dot{border-radius:50%}
:root[data-lf-skin="app"] .fids-progress-bar-wrap,:root[data-lf-skin="app"] .fids-progress-bar-fill{border-radius:var(--r-pill)}

/* Barres de filtres / formulaires en ligne (pax-filters : départs, vols historiques) */
:root[data-lf-skin="app"] .pax-filters{border:1px solid var(--line2);border-radius:var(--r);background:var(--panel);box-shadow:var(--sh);padding:12px 16px;gap:8px 10px}
:root[data-lf-skin="app"] .pax-filters-check{letter-spacing:0;text-transform:none;font-size:13px;color:var(--txt)}
:root[data-lf-skin="app"] body.lf-ops .pc-content button.go,
:root[data-lf-skin="app"] body.lf-ops .pc-content input[type=submit].go{
  font:700 13.5px var(--f-ui);letter-spacing:0;text-transform:none;background:var(--acc);color:var(--accText);
  border:1px solid var(--acc);border-radius:var(--r-sm);padding:7px 16px;min-height:36px;cursor:pointer
}
:root[data-lf-skin="app"] body.lf-ops .pc-content button.go:hover{filter:brightness(1.08)}
/* Encarts repliables écrits en ligne dans les vues (details/summary) */
:root[data-lf-skin="app"] body.lf-ops .pc-content details[style]{border-radius:var(--r-md)!important;border-color:var(--line2)!important;background:var(--panel)!important;box-shadow:var(--sh)}

/* =================== LE « CUIR » DEVIENT LA CHARTE (contrats, banque, flotte, boutique) =================== */
:root[data-lf-skin="app"] .lf-dispatch{
  font-family:var(--f-ui);color:var(--txt);background:transparent;margin:0;padding:0;min-height:0
}
:root[data-lf-skin="app"] .lf-dispatch a{color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-cond{font-family:var(--f-ui);letter-spacing:.02em;text-transform:none;font-weight:700}
:root[data-lf-skin="app"] .lf-dispatch .dsp-mono{font-family:var(--f-ui);font-feature-settings:"tnum" 1}
:root[data-lf-skin="app"] .lf-dispatch .dsp-title{font:800 30px var(--f-ui);letter-spacing:-.02em;text-transform:none;color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-season{font:500 13.5px var(--f-ui);color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-balance,
:root[data-lf-skin="app"] .lf-dispatch .dsp-leather-panel,
:root[data-lf-skin="app"] .lf-dispatch .dsp-filters,
:root[data-lf-skin="app"] .lf-dispatch .dsp-ring-card,
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet,
:root[data-lf-skin="app"] .lf-dispatch .dsp-report{
  background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--sh);color:var(--txt)
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-balance .k,:root[data-lf-skin="app"] .lf-dispatch .dsp-ring-legend .k,
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-grid .k,:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-pay .k,
:root[data-lf-skin="app"] .lf-dispatch .dsp-report-cols .k{
  font:600 12px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--dim)
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-balance .v{font:800 22px var(--f-ui);color:var(--amb);letter-spacing:-.01em}
:root[data-lf-skin="app"] .lf-dispatch .dsp-balance .v em{color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-leather-panel .hd,
:root[data-lf-skin="app"] .lf-dispatch .dsp-report .hd{
  font:700 14.5px var(--f-ui);letter-spacing:-.005em;text-transform:none;color:var(--ink);
  border-bottom:1px solid var(--line2);padding:14px 18px;margin:0
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-report .hd{margin:-20px -24px 14px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-leather-panel .hd .n,:root[data-lf-skin="app"] .lf-dispatch .dsp-report .hd .n{font:500 12.5px var(--f-ui);color:var(--dim)}
/* Alertes */
:root[data-lf-skin="app"] .lf-dispatch .dsp-alert{
  border-radius:var(--r-md);font:500 13.5px var(--f-ui);background:var(--panel);border:1px solid var(--line2);
  border-left:4px solid var(--line);color:var(--txt);box-shadow:var(--sh)
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-alert--ok{border-left-color:var(--acc);background:color-mix(in srgb,var(--acc) 7%,var(--panel))}
:root[data-lf-skin="app"] .lf-dispatch .dsp-alert--warn{border-left-color:var(--dgr);background:color-mix(in srgb,var(--dgr) 7%,var(--panel))}
:root[data-lf-skin="app"] .lf-dispatch .dsp-alert--info{border-left-color:var(--amb);background:color-mix(in srgb,var(--amb) 7%,var(--panel))}
/* Filtres */
:root[data-lf-skin="app"] .lf-dispatch .dsp-filters{padding:12px 14px;gap:8px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-filters select,:root[data-lf-skin="app"] .lf-dispatch .dsp-filters input[type=text]{
  background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);font:500 13.5px var(--f-ui)
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-filters select:focus,:root[data-lf-skin="app"] .lf-dispatch .dsp-filters input:focus{outline:none;border-color:var(--acc)}
/* Boutons */
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn{
  background:var(--panel2);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-sm);
  font:700 13.5px var(--f-ui);letter-spacing:0;box-shadow:none
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn:hover{background:var(--bg2);border-color:var(--acc);color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn .cost{font:800 13.5px var(--f-ui);color:var(--amb)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn--amber{background:var(--acc);color:var(--accText);border-color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn--amber:hover{background:var(--acc);color:var(--accText);filter:brightness(1.08)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn--amber .cost{color:var(--accText)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn--danger{color:var(--dgr);border-color:color-mix(in srgb,var(--dgr) 55%,var(--line))}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn--danger:hover{background:color-mix(in srgb,var(--dgr) 10%,var(--panel))}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn--olive{color:var(--acc);border-color:color-mix(in srgb,var(--acc) 50%,var(--line))}
:root[data-lf-skin="app"] .lf-dispatch .dsp-btn--olive:hover{background:color-mix(in srgb,var(--acc) 10%,var(--panel));color:var(--acc)}
/* Le tableau de liège devient une grille de cartes ; les fiches ne penchent plus */
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork{
  background:transparent;border:0;border-image:none;box-shadow:none;padding:0
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-label{
  background:transparent;color:var(--ink);box-shadow:none;transform:none;padding:0;
  font:750 17px var(--f-ui);letter-spacing:-.01em;text-transform:none
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-grid{gap:14px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-card,
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-grid > .dsp-card{
  background:var(--panel);color:var(--txt);border:1px solid var(--line2);border-radius:var(--r);
  box-shadow:var(--sh);transform:none;animation:none;padding:16px 18px 14px
}
:root[data-lf-skin="app"] .lf-dispatch a.dsp-card,:root[data-lf-skin="app"] .lf-dispatch a.dsp-card:hover{color:var(--txt)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-grid > .dsp-card:not(.is-locked):hover,
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-grid > .dsp-card:not(.is-locked):focus-visible,
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-grid > .dsp-card.is-hl{
  transform:translateY(-2px);box-shadow:var(--sh-lift);border-color:color-mix(in srgb,var(--acc) 50%,var(--line2));animation:none
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-grid > .dsp-card::after{display:none}
:root[data-lf-skin="app"] .lf-dispatch .dsp-pin{display:none}
:root[data-lf-skin="app"] .lf-dispatch .dsp-card-route{font:800 18px var(--f-ui);color:var(--ink);letter-spacing:.01em}
:root[data-lf-skin="app"] .lf-dispatch .dsp-card-dist{font:600 12.5px var(--f-ui);letter-spacing:0;color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-card-desc{font:500 13.5px var(--f-ui);color:var(--txt)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-card-pay{font:800 16px var(--f-ui);color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-cork-grid .dsp-card-pay{background:none;padding:0;margin:0}
:root[data-lf-skin="app"] .lf-dispatch .dsp-card-pay em{color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-card-meta{
  font:600 12px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--dim);border-top:1px solid var(--line2)
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-card-meta .t{font-family:var(--f-ui);font-weight:700;color:var(--txt)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-badge{
  font:700 11px var(--f-ui);letter-spacing:.01em;text-transform:none;border-radius:var(--r-pill);
  background:var(--bg2);color:var(--txt);padding:3px 9px
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-badge--soon{background:color-mix(in srgb,var(--amb) 18%,transparent);color:var(--amb)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-badge--urgent{background:color-mix(in srgb,var(--dgr) 16%,transparent);color:var(--dgr)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-lock{background:color-mix(in srgb,var(--bg) 70%,transparent);border-radius:var(--r);backdrop-filter:blur(1px)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-lock span{
  transform:none;border-radius:var(--r-pill);background:var(--panel2);color:var(--ink);border:1px solid var(--line);
  font:700 12px var(--f-ui);letter-spacing:0;text-transform:none
}
/* Fiche contrat (ordre de mission) */
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet{padding:24px 26px 22px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-head{border-bottom:1px solid var(--line2)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-title{font:800 20px var(--f-ui);letter-spacing:-.01em;color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-code{font:500 13px var(--f-ui);color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-route .ap{color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-route .ap b{font:800 32px var(--f-ui);letter-spacing:.01em}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-route .ap .apn{font:600 13px var(--f-ui);color:var(--txt)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-route .ap i{font:600 11.5px var(--f-ui);letter-spacing:.02em;text-transform:none;color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-route .ap:hover b{color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-route .mid .d{font:600 12.5px var(--f-ui);color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-route .mid .line{border-top:2px dashed var(--line)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-grid{border-color:var(--line2);font-size:13.5px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-grid .v{font:500 13.5px var(--f-ui);color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-pay .prow{font:500 13.5px var(--f-ui);color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-pay .prow.mut{color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-pay .prow.risk{color:var(--dgr)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-pay .prow.total{border-top:1px solid var(--line);font:800 16px var(--f-ui);color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-note{
  background:var(--panel2);border-left:4px solid var(--amb);border-radius:0 var(--r-sm) var(--r-sm) 0;
  font:italic 500 13.5px var(--f-ui);color:var(--txt)
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-sheet-note .sig{font:600 12px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-stamp{
  border:2px solid var(--dgr);color:var(--dgr);font:800 15px var(--f-ui);letter-spacing:.08em;border-radius:var(--r-sm);
  background:color-mix(in srgb,var(--dgr) 8%,var(--panel));opacity:1
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-stamp--ok{border-color:var(--acc);color:var(--acc);background:color-mix(in srgb,var(--acc) 8%,var(--panel))}
/* Tableau de bord carrière */
:root[data-lf-skin="app"] .lf-dispatch .dsp-cards3{gap:14px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-ring-track{stroke:var(--line2)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-ring-val{stroke-linecap:round}
:root[data-lf-skin="app"] .lf-dispatch .dsp-ring-num{font:800 20px var(--f-ui);fill:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-ring-legend .v{font:700 15px var(--f-ui);color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-ring-legend .s{font:500 12.5px var(--f-ui);color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-solde .v{font:800 30px var(--f-ui);color:var(--ink);letter-spacing:-.02em}
:root[data-lf-skin="app"] .lf-dispatch .dsp-solde .v em{color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-solde .delta{font:600 13px var(--f-ui);color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-solde .delta.neg{color:var(--dgr)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-report{padding:20px 24px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-report-cols .v{font:800 20px var(--f-ui);color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-report-cols .v.neg{color:var(--dgr)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-report-cols .v.pos{color:var(--acc)}
/* Lignes et registres */
:root[data-lf-skin="app"] .lf-dispatch .dsp-row{font-family:var(--f-ui);border-bottom:1px solid var(--line2);padding:12px 18px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-row .route{font:800 15px var(--f-ui);color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-row .sub{color:var(--dim);font-size:12.5px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-row .pay{font:800 15px var(--f-ui);color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-row .pay .g{color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-leather-panel .dsp-row::before{background:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-leather-panel .dsp-row:hover{background:color-mix(in srgb,var(--acc) 5%,transparent)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table{font-family:var(--f-ui);font-size:13.5px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table thead th{
  font:700 12px var(--f-ui);letter-spacing:0;text-transform:none;color:var(--dim);background:var(--panel2);border-bottom:1px solid var(--line2)
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table tbody td{color:var(--txt);border-bottom:1px solid var(--line2);font-size:13.5px}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table tbody tr:hover td{background:color-mix(in srgb,var(--acc) 5%,transparent)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table td.num{font-family:var(--f-ui)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table .reg{font-family:var(--f-ui);color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table .amber{color:var(--amb)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table .pos{color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table .neg{color:var(--dgr)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table .muted{color:var(--dim)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table a{color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-table a:hover{color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-empty{font:500 13.5px var(--f-ui);color:var(--dim)}
/* Onglets et puces */
:root[data-lf-skin="app"] .lf-dispatch .dsp-tab,:root[data-lf-skin="app"] .lf-dispatch .dsp-chip{
  font:600 13px var(--f-ui);letter-spacing:0;border:1px solid var(--line);background:var(--panel);color:var(--txt);border-radius:var(--r-pill)
}
:root[data-lf-skin="app"] .lf-dispatch .dsp-tab:hover,:root[data-lf-skin="app"] .lf-dispatch .dsp-chip:hover{border-color:var(--acc);color:var(--ink)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-tab.is-on,:root[data-lf-skin="app"] .lf-dispatch .dsp-chip.is-on{background:var(--acc);color:var(--accText);border-color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-map{border-radius:0 0 var(--r) var(--r)}
:root[data-lf-skin="app"] .lf-dispatch .dsp-map .leaflet-tile{filter:none}
:root[data-lf-skin="app"] .lf-dispatch details summary{color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .lfc-notice{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r-md)}
:root[data-lf-skin="app"] .lf-dispatch .lfc-notice summary{color:var(--acc)}
:root[data-lf-skin="app"] .lf-dispatch .lfc-notice .body{color:var(--txt)}

@media (prefers-reduced-motion:reduce){
  :root[data-lf-skin="app"] .lf-ops *{transition:none!important}
}
@media (max-width:767.98px){
  :root[data-lf-skin="app"] body.lf-ops .pc-content{padding:18px 14px 40px}
}

/* =================== SITE PUBLIC : en-tête, pied, ACCUEIL (#317) ===================
   Maquette validée le 30/10 : https://claude.ai/artifact/2haqqoNheNFRVPkJWRPvPA
   Partiels : app/partials/public_nav_app.php, public_footer_app.php ;
   vue : app/views/public/home_app.php. Préfixe lfp- (public). */
:root[data-lf-skin="app"] .lfp{background:var(--bg);color:var(--txt);font-size:15px}
:root[data-lf-skin="app"] .lfp-wrap{max-width:1240px;margin:0 auto;padding:0 24px}
:root[data-lf-skin="app"] .lfp h1,:root[data-lf-skin="app"] .lfp h2,:root[data-lf-skin="app"] .lfp h3{color:var(--ink);text-wrap:balance;margin:0;font-family:var(--f-ui)}
/* Logo : version claire / sombre selon le thème (auto compris) */
:root[data-lf-skin="app"] .lfp-logo{height:34px;width:auto;display:block}
:root[data-lf-skin="app"] .lfp-logo-light{display:none}
:root[data-lf-skin="app"][data-lf-theme="light"] .lfp-logo-light{display:block}
:root[data-lf-skin="app"][data-lf-theme="light"] .lfp-logo-dark{display:none}
@media (prefers-color-scheme:light){
  :root[data-lf-skin="app"]:not([data-lf-theme]) .lfp-logo-light{display:block}
  :root[data-lf-skin="app"]:not([data-lf-theme]) .lfp-logo-dark{display:none}
}
/* Boutons publics */
:root[data-lf-skin="app"] .lfp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:700 14px var(--f-ui);border-radius:var(--r-sm);padding:10px 18px;border:1px solid transparent;cursor:pointer;white-space:nowrap;text-decoration:none;transition:filter .15s,border-color .15s,color .15s}
:root[data-lf-skin="app"] .lfp-btn--go{background:var(--acc);color:var(--accText);box-shadow:0 1px 2px rgba(0,0,0,.15)}
:root[data-lf-skin="app"] .lfp-btn--go:hover{filter:brightness(1.07);color:var(--accText);opacity:1}
:root[data-lf-skin="app"] .lfp-btn--alt{background:var(--panel);border-color:var(--line);color:var(--ink)}
:root[data-lf-skin="app"] .lfp-btn--alt:hover{border-color:var(--acc);color:var(--acc);opacity:1}
:root[data-lf-skin="app"] .lfp-btn--sm{font-size:13px;padding:7px 13px}
:root[data-lf-skin="app"] .lfp-btn--lg{font-size:15.5px;padding:13px 22px;border-radius:var(--r-md)}
/* En-tête */
:root[data-lf-skin="app"] .lfp-top{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid var(--line2)}
:root[data-lf-skin="app"] .lfp-top-in{display:flex;align-items:center;gap:18px;min-height:66px;flex-wrap:wrap}
:root[data-lf-skin="app"] .lfp-brand{display:inline-flex;align-items:center}
:root[data-lf-skin="app"] .lfp-nav{display:flex;gap:2px;flex-wrap:wrap}
:root[data-lf-skin="app"] .lfp-nav a{font:600 14px var(--f-ui);color:var(--txt);padding:7px 11px;border-radius:var(--r-sm);text-decoration:none}
:root[data-lf-skin="app"] .lfp-nav a:hover{background:var(--panel2);color:var(--ink);opacity:1}
:root[data-lf-skin="app"] .lfp-nav a.on{background:color-mix(in srgb,var(--acc) 14%,transparent);color:var(--acc)}
:root[data-lf-skin="app"] .lfp-live-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#e5484d;margin-right:6px;vertical-align:1px;box-shadow:0 0 0 3px color-mix(in srgb,#e5484d 25%,transparent)}
:root[data-lf-skin="app"] .lfp-tright{margin-left:auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
:root[data-lf-skin="app"] .lfp-seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-pill);padding:2px;background:var(--panel);margin:0}
:root[data-lf-skin="app"] .lfp-seg button{font:600 12px var(--f-ui);border:0;background:transparent;color:var(--dim);padding:4px 10px;border-radius:var(--r-pill);cursor:pointer;min-height:0}
:root[data-lf-skin="app"] .lfp-seg button[aria-pressed="true"]{background:var(--acc);color:var(--accText)}
:root[data-lf-skin="app"] .lfp-utc{font:700 13px var(--f-ui);color:var(--dim);white-space:nowrap}
/* Pied */
:root[data-lf-skin="app"] .lfp-foot{margin-top:56px;border-top:1px solid var(--line2);background:var(--panel)}
:root[data-lf-skin="app"] .lfp-foot-in{display:grid;grid-template-columns:1.3fr repeat(3,1fr);gap:24px;padding-top:32px;padding-bottom:26px}
:root[data-lf-skin="app"] .lfp-foot-h{font:700 14px var(--f-ui)!important;margin:0 0 10px!important}
:root[data-lf-skin="app"] .lfp-foot a{display:block;font-size:14px;color:var(--dim);padding:3px 0;text-decoration:none}
:root[data-lf-skin="app"] .lfp-foot a:hover{color:var(--acc);opacity:1}
:root[data-lf-skin="app"] .lfp-foot .lfp-brand{display:inline-flex;margin-bottom:10px}
:root[data-lf-skin="app"] .lfp-foot-blurb{font-size:14px;color:var(--dim);line-height:1.6;margin:0;max-width:40ch}
:root[data-lf-skin="app"] .lfp-legal{border-top:1px solid var(--line2);font-size:12.5px;color:var(--faint)}
:root[data-lf-skin="app"] .lfp-legal-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-top:14px;padding-bottom:14px}
:root[data-lf-skin="app"] .lfp-legal a{display:inline;color:var(--faint);padding:0}
/* Pages publiques autres que l'accueil */
:root[data-lf-skin="app"] .lfp main.lf-page{padding-top:32px}

/* Accueil : héros */
:root[data-lf-skin="app"] .lfp-hero{background:radial-gradient(70% 90% at 85% 10%,color-mix(in srgb,var(--acc) 12%,transparent),transparent 60%)}
:root[data-lf-skin="app"] .lfp-hero-in{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:44px;align-items:center;padding-top:56px;padding-bottom:44px}
:root[data-lf-skin="app"] .lfp-eyebrow{display:inline-flex;font-weight:700;font-size:13px;color:var(--acc);background:color-mix(in srgb,var(--acc) 10%,transparent);border-radius:var(--r-pill);padding:5px 12px}
:root[data-lf-skin="app"] .lfp-h1{font-size:clamp(44px,6.4vw,78px)!important;line-height:1.02;font-weight:800!important;letter-spacing:-.035em!important;margin:18px 0 16px!important}
:root[data-lf-skin="app"] .lfp-h1 span{color:var(--acc)}
:root[data-lf-skin="app"] .lfp-lede{font-size:18px;line-height:1.6;color:var(--txt);max-width:56ch;margin:0 0 26px}
:root[data-lf-skin="app"] .lfp-cta{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
:root[data-lf-skin="app"] .lfp-trust{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:22px;font-size:13.5px;color:var(--dim)}
:root[data-lf-skin="app"] .lfp-trust b{color:var(--ink)}
/* Réseau en direct (radar / globe) */
:root[data-lf-skin="app"] .lfp-net{background:var(--panel);border:1px solid var(--line2);border-radius:20px;box-shadow:var(--sh-lift);overflow:hidden}
:root[data-lf-skin="app"] .lfp-net-h{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line2)}
:root[data-lf-skin="app"] .lfp-net-h b{color:var(--ink);font-size:15px}
:root[data-lf-skin="app"] .lfp-pill-live{display:inline-flex;align-items:center;gap:7px;font-weight:700;font-size:12.5px;color:var(--acc);background:color-mix(in srgb,var(--acc) 12%,transparent);border-radius:var(--r-pill);padding:4px 10px}
:root[data-lf-skin="app"] .lfp-pill-live i{width:7px;height:7px;border-radius:50%;background:var(--acc);animation:lfp-pulse 1.6s ease-in-out infinite}
@keyframes lfp-pulse{0%,100%{opacity:1}50%{opacity:.35}}
:root[data-lf-skin="app"] .lfp-net-radar{display:grid;place-items:center;padding:22px 16px;background:var(--panel2)}
:root[data-lf-skin="app"] .lfp-net-radar .lf-radar{width:300px;height:300px;max-width:100%}
:root[data-lf-skin="app"] .lfp-net-radar .lf-radar .c0{background:var(--panel)}
:root[data-lf-skin="app"] .lfp-net-radar .lf-radar cap{display:none}
:root[data-lf-skin="app"] .lfp-net-list{display:grid;grid-template-columns:1fr 1fr}
:root[data-lf-skin="app"] .lfp-net-list > div{padding:10px 18px;border-top:1px solid var(--line2);font-size:13px;min-width:0}
:root[data-lf-skin="app"] .lfp-net-list > div:nth-child(odd){border-right:1px solid var(--line2)}
:root[data-lf-skin="app"] .lfp-net-list b{display:block;color:var(--ink);font-size:13.5px}
:root[data-lf-skin="app"] .lfp-net-list small{color:var(--dim);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-lf-skin="app"] .lfp-net-list .lfp-net-calm{grid-column:1/-1;border-right:0!important;color:var(--dim);text-align:center}
/* Ruban d'activité */
:root[data-lf-skin="app"] .lfp-ribbon{border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);background:var(--panel);overflow:hidden;white-space:nowrap}
:root[data-lf-skin="app"] .lfp-run{display:inline-block;padding:11px 0;animation:lftick 40s linear infinite;font-size:13.5px}
:root[data-lf-skin="app"] .lfp-run span span{margin:0 17px;color:var(--txt)}
:root[data-lf-skin="app"] .lfp-run b{color:var(--ink)}
:root[data-lf-skin="app"] .lfp-run em{font-style:normal;color:var(--acc);font-weight:700}
:root[data-lf-skin="app"] .lfp-run .m{color:var(--amb);font-weight:700}
/* Chiffres */
:root[data-lf-skin="app"] .lfp-stats{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin:34px 0 8px}
:root[data-lf-skin="app"] .lfp-stat{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r-md);box-shadow:var(--sh);padding:16px 18px}
:root[data-lf-skin="app"] .lfp-stat .v{font-weight:800;font-size:28px;letter-spacing:-.02em;color:var(--ink);line-height:1.1}
:root[data-lf-skin="app"] .lfp-stat .l{font-weight:600;font-size:13px;color:var(--dim);margin-top:2px}
/* Sections */
:root[data-lf-skin="app"] .lfp-blk{margin-top:44px}
:root[data-lf-skin="app"] .lfp-sh{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
:root[data-lf-skin="app"] .lfp-sh h2{font-size:22px!important;font-weight:800!important;letter-spacing:-.02em!important}
:root[data-lf-skin="app"] .lfp-sh a{font-weight:700;font-size:14px;color:var(--acc);text-decoration:none}
:root[data-lf-skin="app"] .lfp-sh-m{font-weight:700;font-size:14px;color:var(--dim)}
:root[data-lf-skin="app"] .lfp-card{background:var(--panel);border:1px solid var(--line2);border-radius:var(--r);box-shadow:var(--sh)}
:root[data-lf-skin="app"] .lfp-row2{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start}
/* Tableau des vols */
:root[data-lf-skin="app"] .lfp-board{overflow:hidden}
:root[data-lf-skin="app"] .lfp-board table{width:100%;border-collapse:collapse;font-size:14px}
:root[data-lf-skin="app"] .lfp-board th{font-weight:700;font-size:12.5px;color:var(--dim);text-align:left;padding:12px 16px;background:var(--panel2);border-bottom:1px solid var(--line2)}
:root[data-lf-skin="app"] .lfp-board td{padding:12px 16px;border-bottom:1px solid var(--line2);vertical-align:middle}
:root[data-lf-skin="app"] .lfp-board tr:hover td{background:color-mix(in srgb,var(--acc) 5%,transparent)}
:root[data-lf-skin="app"] .lfp-board .cs{font-weight:800;color:var(--ink)}
:root[data-lf-skin="app"] .lfp-board .rt{font-weight:700;color:var(--ink);white-space:nowrap}
:root[data-lf-skin="app"] .lfp-board .rt i{font-style:normal;color:var(--faint);margin:0 5px}
:root[data-lf-skin="app"] .lfp-board .ac{color:var(--dim);font-size:13px;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:root[data-lf-skin="app"] .lfp-board .tm{color:var(--dim);font-size:13px;text-align:right;white-space:nowrap}
:root[data-lf-skin="app"] .lfp-st{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:12.5px;border-radius:var(--r-pill);padding:3px 10px;white-space:nowrap}
:root[data-lf-skin="app"] .lfp-st--live{color:var(--acc);background:color-mix(in srgb,var(--acc) 13%,transparent)}
:root[data-lf-skin="app"] .lfp-st--land{color:var(--cl-blue);background:color-mix(in srgb,var(--cl-blue) 12%,transparent)}
:root[data-lf-skin="app"] .lfp-board-f{display:flex;gap:18px;padding:12px 16px;border-top:1px solid var(--line2);font-weight:700;font-size:14px}
:root[data-lf-skin="app"] .lfp-board-f a{color:var(--acc);text-decoration:none}
:root[data-lf-skin="app"] .lfp-board-f a + a{color:var(--dim)}
:root[data-lf-skin="app"] .lfp-empty{padding:28px 16px;margin:0;color:var(--dim);text-align:center}
/* Bulletin */
:root[data-lf-skin="app"] .lfp-bull{padding:20px 22px;border-top:3px solid var(--ambFill);position:relative}
:root[data-lf-skin="app"] .lfp-bull-k{font-weight:700;font-size:13px;color:var(--amb);margin-bottom:8px}
:root[data-lf-skin="app"] .lfp-bull h3{font-size:20px!important;font-weight:800!important;letter-spacing:-.015em;line-height:1.25;margin-bottom:10px!important}
:root[data-lf-skin="app"] .lfp-bull h3 a{color:inherit;text-decoration:none}
:root[data-lf-skin="app"] .lfp-bull p{margin:0;font-size:14.5px;line-height:1.65;color:var(--txt)}
:root[data-lf-skin="app"] .lfp-bull-links{display:flex;flex-wrap:wrap;gap:8px 16px;font-weight:700;font-size:14px;margin-top:12px}
:root[data-lf-skin="app"] .lfp-bull-links a{color:var(--acc);text-decoration:none}
:root[data-lf-skin="app"] .lfp-bull-links a.muted{color:var(--dim)}
:root[data-lf-skin="app"] .lfp-bull-nav{position:absolute;top:16px;right:16px;display:flex;align-items:center;gap:6px;font-weight:700;font-size:12.5px;color:var(--dim)}
:root[data-lf-skin="app"] .lfp-bull-nav button{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink);font:700 15px/1 var(--f-ui);cursor:pointer;padding:0}
:root[data-lf-skin="app"] .lfp-bull-nav button:hover{border-color:var(--amb);color:var(--amb)}
/* Missions du jour */
:root[data-lf-skin="app"] .lfp-mgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
:root[data-lf-skin="app"] .lfp-mc{padding:18px 20px;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:var(--txt);transition:transform .15s,box-shadow .15s,border-color .15s}
:root[data-lf-skin="app"] .lfp-mc:hover{transform:translateY(-2px);box-shadow:var(--sh-lift);border-color:color-mix(in srgb,var(--acc) 50%,var(--line2));opacity:1}
:root[data-lf-skin="app"] .lfp-mc-rt{font-weight:800;font-size:17px;color:var(--ink);letter-spacing:.01em}
:root[data-lf-skin="app"] .lfp-mc h3{font-size:16.5px!important;font-weight:750!important}
:root[data-lf-skin="app"] .lfp-mc p{margin:0;font-size:14px;color:var(--dim);line-height:1.6}
:root[data-lf-skin="app"] .lfp-go{margin-top:auto;font-weight:700;font-size:14px;color:var(--acc)}
/* Trois étapes + appel final */
:root[data-lf-skin="app"] .lfp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
:root[data-lf-skin="app"] .lfp-step{padding:22px}
:root[data-lf-skin="app"] .lfp-step .n{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;font-weight:800;font-size:15px;color:var(--acc);background:color-mix(in srgb,var(--acc) 13%,transparent);margin-bottom:12px}
:root[data-lf-skin="app"] .lfp-step h3{font-size:17px!important;font-weight:800!important;margin-bottom:6px!important}
:root[data-lf-skin="app"] .lfp-step p{margin:0;font-size:14.5px;line-height:1.6;color:var(--txt)}
:root[data-lf-skin="app"] .lfp-join{margin-top:18px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:24px 26px;background:linear-gradient(135deg,color-mix(in srgb,var(--acc) 12%,var(--panel)),var(--panel) 65%);border-color:color-mix(in srgb,var(--acc) 35%,var(--line2))}
:root[data-lf-skin="app"] .lfp-join b{display:block;font-size:20px;font-weight:800;color:var(--ink);letter-spacing:-.015em}
:root[data-lf-skin="app"] .lfp-join span{color:var(--txt)}
@media (max-width:1100px){:root[data-lf-skin="app"] .lfp-nav{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:8px}}
@media (max-width:1000px){
  :root[data-lf-skin="app"] .lfp-hero-in,:root[data-lf-skin="app"] .lfp-row2{grid-template-columns:1fr}
  :root[data-lf-skin="app"] .lfp-stats{grid-template-columns:repeat(3,1fr)}
  :root[data-lf-skin="app"] .lfp-mgrid,:root[data-lf-skin="app"] .lfp-steps{grid-template-columns:1fr}
  :root[data-lf-skin="app"] .lfp-foot-in{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  :root[data-lf-skin="app"] .lfp-stats{grid-template-columns:repeat(2,1fr)}
  :root[data-lf-skin="app"] .lfp-net-list{grid-template-columns:1fr}
  :root[data-lf-skin="app"] .lfp-net-list > div:nth-child(odd){border-right:0}
  :root[data-lf-skin="app"] .lfp-board .ac{display:none}
  :root[data-lf-skin="app"] .lfp-utc{display:none}
}
@media (prefers-reduced-motion:reduce){:root[data-lf-skin="app"] .lfp-run,:root[data-lf-skin="app"] .lfp-pill-live i{animation:none}}
/* L'en-tête public tient sur UNE ligne : plus large que le contenu, l'heure UTC
   s'efface d'abord quand la place manque, puis le menu passe dessous (< 1100). */
:root[data-lf-skin="app"] .lfp-top .lfp-wrap{max-width:1440px}
:root[data-lf-skin="app"] .lfp-top-in{flex-wrap:nowrap}
:root[data-lf-skin="app"] .lfp-nav{flex-wrap:nowrap;min-width:0}
:root[data-lf-skin="app"] .lfp-nav a{white-space:nowrap;padding:7px 9px}
:root[data-lf-skin="app"] .lfp-tright{flex-wrap:nowrap;flex-shrink:0}
@media (max-width:1480px){:root[data-lf-skin="app"] .lfp-utc{display:none}}
@media (max-width:1100px){:root[data-lf-skin="app"] .lfp-top-in{flex-wrap:wrap}}
