
@font-face{font-family:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("../polices/plus-jakarta-sans-latin.7660bd9909fb.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:"Plus Jakarta Sans";font-style:normal;font-weight:200 800;font-display:swap;
  src:url("../polices/plus-jakarta-sans-latin-ext.341687eeeb6a.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

:root{
  --police:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:ui-monospace,"Cascadia Mono",Consolas,monospace;
  --accent:#FF5A1F;--contraste-accent:#fff;
  --encre:#0B0E12;
  --vert:#16A34A;--bleu:#2563EB;--ambre:#D97706;--rouge:#DC2626;--violet:#7C3AED;
  --fond:#F1F3F6;--surface:#fff;--surface-2:#F7F8FA;--survol:#F3F5F8;
  --bordure:#E2E6EB;--bordure-forte:#C9D0D8;--texte:#12161C;--gris:#5B6672;
  --vert-texte:#15803D;--bleu-texte:#1D4ED8;--ambre-texte:#B45309;--rouge-texte:#B91C1C;--violet-texte:#6D28D9;
  --ombre:0 1px 2px rgba(16,24,32,.06),0 8px 24px rgba(16,24,32,.06);
  --h-top:60px;--l-nav:236px;
}
:root[data-theme="dark"]{
  --fond:#0C0F13;--surface:#151A20;--surface-2:#1A2028;--survol:#1E252E;
  --bordure:#252D37;--bordure-forte:#36414D;--texte:#E7EBF0;--gris:#8E9AA8;
  --vert:#22C55E;--bleu:#3B82F6;--ambre:#F59E0B;--rouge:#EF4444;--violet:#8B5CF6;
  --vert-texte:#4ADE80;--bleu-texte:#7DB2FF;--ambre-texte:#FBBF24;--rouge-texte:#F87171;--violet-texte:#B79CFF;
  --ombre:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.25);
}
:root[data-nav="reduit"]{--l-nav:66px}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--police);background:var(--fond);color:var(--texte);line-height:1.5;
     font-feature-settings:"tnum" 1;min-height:100vh}
a{color:inherit}
.ic{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;
    stroke-linejoin:round;flex:0 0 auto}

header.haut{background:var(--encre);color:#fff;position:sticky;top:0;z-index:1000;
  background-image:linear-gradient(135deg,rgba(255,255,255,.025) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.025) 50%,rgba(255,255,255,.025) 75%,transparent 75%);
  background-size:6px 6px}
header.haut::after{content:"";display:block;height:8px;background:
  linear-gradient(var(--accent),var(--accent)) top/100% 1px no-repeat,
  repeating-linear-gradient(90deg,rgba(255,255,255,.75) 0 26px,transparent 26px 52px) center/100% 2px no-repeat,
  #1A1F26}
.topbar{display:flex;align-items:center;gap:14px;padding:0 18px;height:var(--h-top)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff;font-weight:800;
  letter-spacing:-.02em;font-size:1.1rem;white-space:nowrap}
.logo .embleme{width:34px;height:34px;border-radius:10px;background:var(--accent);color:var(--contraste-accent);
  display:grid;place-items:center;box-shadow:inset 0 -3px 0 rgba(0,0,0,.18)}
.logo .embleme .ic{width:22px;height:22px;stroke-width:2.1}
.logo b{color:var(--accent)}
.logo img{height:30px;width:auto;max-width:180px;object-fit:contain;border-radius:7px;background:#fff;padding:3px 7px;box-sizing:content-box}
.logo .agence{font-weight:600;font-size:.85rem;opacity:.65;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.bouton-icone{background:none;border:none;cursor:pointer;padding:8px;border-radius:9px;display:inline-flex;color:rgba(255,255,255,.8)}
.bouton-icone:hover{background:rgba(255,255,255,.1);color:#fff}
.recherche{display:flex;align-items:center;gap:8px;border-radius:10px;padding:0 13px;height:40px;margin-left:auto;
  background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)}
.recherche:focus-within{border-color:var(--accent)}
.recherche .ic{width:16px;height:16px;color:rgba(255,255,255,.6)}
.recherche input{background:none;border:none;outline:none;color:#fff;font:inherit;font-size:.88rem;width:260px}
.recherche input::placeholder{color:rgba(255,255,255,.5)}
.utilisateur{display:flex;align-items:center;gap:9px;font-size:.82rem;color:rgba(255,255,255,.7);white-space:nowrap}
.utilisateur form{display:inline}
.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:.75rem;
  background:#262D36;color:#fff;border:2px solid var(--accent)}
.lien-deco{background:none;border:none;cursor:pointer;color:rgba(255,255,255,.75);font:inherit;font-size:.8rem;text-decoration:underline}
.burger{display:none}

.corps{display:flex;align-items:flex-start}
.lateral{width:var(--l-nav);flex:0 0 auto;background:#10141A;color:#D9DEE5;border-right:1px solid #1E242C;
  position:sticky;top:calc(var(--h-top) + 8px);height:calc(100vh - var(--h-top) - 8px);overflow:auto;
  padding:16px 10px;display:flex;flex-direction:column;transition:width .18s}
.groupe{margin-bottom:14px}
.groupe-titre{font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:#6F7B89;font-weight:800;padding:0 12px;margin-bottom:6px}
.lateral a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:10px;text-decoration:none;
  font-size:.9rem;font-weight:500;white-space:nowrap;margin-bottom:2px;position:relative}
.lateral a:hover{background:rgba(255,255,255,.05)}
.lateral a.actif{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 18%,transparent),rgba(255,255,255,.03));color:#fff;font-weight:700}
.lateral a.actif::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}
.lateral a.actif .ic{color:var(--accent)}
:root[data-nav="reduit"] .lateral .lib,:root[data-nav="reduit"] .encart{display:none}
:root[data-nav="reduit"] .lateral a{justify-content:center;padding:11px 0}
:root[data-nav="reduit"] .groupe-titre{font-size:0;height:1px;padding:0;margin:12px 10px;background:#262D36}
.encart{margin-top:auto;padding:14px;border-radius:14px;background:#181D24;border:1px solid #262D36;color:#fff;font-size:.8rem}
.encart b{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:4px}
.encart .essai-barre{height:5px;border-radius:5px;background:rgba(255,255,255,.12);margin:8px 0 4px;overflow:hidden}
.encart .essai-barre span{display:block;height:100%;background:var(--accent)}

main{flex:1;min-width:0;max-width:1240px;margin:0 auto;padding:28px 32px 70px}
h1{font-size:1.5rem;font-weight:800;letter-spacing:-.025em}
h2{font-size:1.02rem;font-weight:800;letter-spacing:-.01em;margin-bottom:12px}
.entete-page{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:22px}
.entete-page .sous{color:var(--gris);font-size:.9rem;margin-top:2px}
.surtitre{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:var(--accent)}
.actions{display:flex;gap:8px;flex-wrap:wrap}
.carte{background:var(--surface);border:1px solid var(--bordure);border-radius:16px;padding:22px;box-shadow:var(--ombre)}
.carte + .carte{margin-top:18px}
.grille > .carte + .carte{margin-top:0}
.carte-titre{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.carte-titre h2{margin:0;display:flex;align-items:center;gap:9px}
.carte-titre h2 .ic{color:var(--accent)}
.grille{display:grid;gap:18px}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g-2-1{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
.mt{margin-top:18px}
.aide{font-size:.8rem;color:var(--gris)}
.mono{font-family:var(--mono)}
.droite{text-align:right}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--accent);color:var(--contraste-accent);
  border:1px solid transparent;border-radius:11px;padding:10px 17px;font:inherit;font-weight:700;font-size:.9rem;
  cursor:pointer;text-decoration:none;line-height:1.25;transition:filter .15s,border-color .15s,transform .05s}
.btn:hover{filter:brightness(1.08)}
.btn:active{transform:translateY(1px)}
.btn .ic{width:17px;height:17px}
.btn.secondaire{background:var(--surface);color:var(--texte);border-color:var(--bordure-forte);font-weight:600}
.btn.secondaire:hover{filter:none;border-color:var(--texte)}
.btn.danger{background:transparent;color:var(--rouge-texte);border-color:var(--rouge)}
.btn.whatsapp{background:#25D366;color:#06301A}
.actions-membre .boutons{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.actions-membre .btn{white-space:nowrap}
.mdp-provisoire{margin-bottom:18px;border-color:var(--accent)}
.etat-descriptif{display:grid;gap:14px}
.ed-dessin{background:#fff;border:1px solid var(--bordure);border-radius:14px;padding:10px;
  --sil-fond:#fff;--sil-trait:#1B2229;--sil-vitre:#AEBBC7;--sil-pneu:#3B434C;--sil-jante:#E9EDF1;--sil-texte:#5B6672;
  --sil-croix:#C62828}
.ed-dessin .aide{color:#5B6672;text-align:center;margin-top:4px}
.ed-dessin svg{width:100%;height:auto;display:block}
.ed-dessin svg{cursor:crosshair;user-select:none}
.ed-dessin .croix{cursor:grab;touch-action:none}
.ed-dessin .croix .halo{fill:transparent;stroke:none}
.ed-dessin .croix.choisie .halo{fill:rgba(198,40,40,.14);stroke:#C62828;stroke-width:2;stroke-dasharray:4 3}
.ed-barre{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px;color:#1B2229}
.ed-total{margin-right:auto;font-size:.88rem}
.ed-barre .btn.secondaire{background:#fff;color:#1B2229;border:1px solid #C9D0D8}
.ed-barre .btn.secondaire:disabled{opacity:.45}
.ed-zones{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));align-items:start}
.ed-zones fieldset{border:1px solid var(--bordure);border-radius:12px;padding:8px 12px;margin:0}
.ed-zones legend{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gris);padding:0 4px}
.ed-ligne{display:grid;grid-template-columns:1fr auto auto auto;gap:6px;align-items:center;font-size:.85rem;padding:3px 0}
.ed-ligne .ed-n{min-width:1.6em;text-align:center;font-weight:800;color:var(--gris)}
.ed-ligne.actif .ed-n{color:#C62828}
.ed-ligne.actif .ed-lib{font-weight:700}
.ed-bouton{width:30px;height:30px;border-radius:8px;border:1px solid var(--bordure-forte);background:var(--surface);
  color:var(--texte);font-weight:800;cursor:pointer;line-height:1}
.ed-bouton:hover{border-color:#C62828}
.mdp-provisoire .gros{font-size:1.5rem;font-weight:700;letter-spacing:.06em;margin:8px 0;user-select:all}
.btn.petit{padding:6px 11px;font-size:.8rem;border-radius:9px}
.btn.large{width:100%}
form.inline{display:inline}

.kpi{background:var(--surface);border:1px solid var(--bordure);border-radius:16px;padding:18px 20px;box-shadow:var(--ombre);
  position:relative;overflow:hidden;text-decoration:none;display:block}
.kpi .libelle{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);display:flex;align-items:center;gap:7px}
.kpi .libelle .ic{width:15px;height:15px}
.kpi .valeur{font-size:2rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-top:6px}
.kpi .valeur small{font-size:.9rem;font-weight:600;color:var(--gris);letter-spacing:0}
.kpi .pied{font-size:.8rem;color:var(--gris);margin-top:4px}
.kpi::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--couleur,var(--bordure))}
.kpi.vert{--couleur:var(--vert)}.kpi.bleu{--couleur:var(--bleu)}.kpi.ambre{--couleur:var(--ambre)}.kpi.rouge{--couleur:var(--rouge)}.kpi.accent{--couleur:var(--accent)}
a.kpi:hover{border-color:var(--bordure-forte)}

.cadran{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.cadran svg{width:220px;max-width:100%;height:auto;overflow:visible}
.cadran .piste{stroke:var(--bordure);stroke-width:14;fill:none;stroke-linecap:round}
.cadran .zone-rouge{stroke:var(--rouge);stroke-width:14;fill:none;opacity:.35;stroke-linecap:round}
.cadran .aiguille-arc{stroke:var(--accent);stroke-width:14;fill:none;stroke-linecap:round;transition:stroke-dasharray .8s}
.cadran .graduation{stroke:var(--gris);stroke-width:2}
.cadran .pct{font-size:2.6rem;font-weight:800;letter-spacing:-.04em;fill:var(--texte)}
.cadran .pct-lib{font-size:.6rem;font-weight:800;letter-spacing:.16em;fill:var(--gris);text-transform:uppercase}
.repartition{display:flex;gap:6px;width:100%;margin-top:14px;height:10px;border-radius:10px;overflow:hidden;background:var(--bordure)}
.repartition span{display:block;height:100%}
.legende{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:12px;font-size:.8rem;color:var(--gris);justify-content:center}
.legende i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:6px;vertical-align:0}

.plaque{align-self:flex-start;display:inline-flex;align-items:stretch;border:1.5px solid #1A1A1A;border-radius:5px;background:#fff;color:#111;
  font-family:var(--mono);font-weight:800;font-size:.82rem;letter-spacing:.06em;line-height:1;overflow:hidden;white-space:nowrap;
  box-shadow:0 1px 0 rgba(0,0,0,.25)}
.plaque-eu{background:#0B3C9C;color:#fff;font-family:var(--police);font-size:.62rem;font-weight:800;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-end;padding:2px 4px 3px;gap:1px;min-width:15px}
.plaque-eu .etoiles{color:#FFD500;font-size:.5rem;line-height:1}
.plaque-num{padding:5px 8px 4px}
.plaque.grande{font-size:1.25rem;border-width:2px;border-radius:7px}
.plaque.grande .plaque-eu{font-size:.8rem;min-width:22px;padding:4px 5px 5px}
.plaque.grande .plaque-num{padding:8px 14px 7px}
.plaque-vide{padding:5px 8px;color:#888;font-size:.66rem;border-style:dashed}
.saisie-plaque{font-family:var(--mono)!important;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

.odometre{display:inline-flex;align-items:center;gap:2px;font-family:var(--mono);font-weight:700;font-size:.86rem}
.odometre .rouleau{display:inline-block;min-width:1.15em;text-align:center;padding:3px 0;border-radius:3px;color:#F2F2F2;
  background:linear-gradient(#1D232B,#0B0E12 50%,#1D232B)}
.odometre .rouleau.zero{color:#5B6570}
.odometre .unite{margin-left:5px;font-family:var(--police);font-size:.7rem;color:var(--gris);font-weight:700}

.jauge{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;--j:var(--vert)}
.jauge.moyen{--j:var(--ambre)}.jauge.bas{--j:var(--rouge)}
.jauge .ic{width:15px;height:15px;color:var(--gris)}
.jauge-piste{position:relative;width:86px;height:9px;border-radius:3px;background:var(--bordure);overflow:hidden}
.jauge-niveau{display:block;height:100%;background:var(--j)}
.jauge-piste::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 calc(12.5% - 2px),var(--surface) calc(12.5% - 2px) 12.5%)}
.jauge-val{min-width:2.6em;color:var(--gris)}
.jauge.compacte .jauge-piste{width:56px}
.curseur-jauge{accent-color:var(--accent);padding:0!important;border:none!important;height:28px}

.voyant{display:inline-flex;align-items:center;gap:7px;font-size:.8rem;font-weight:700;white-space:nowrap}
.voyant i{width:9px;height:9px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 22%,transparent),0 0 10px var(--c)}
.voyant.vert{--c:var(--vert);color:var(--vert-texte)}.voyant.bleu{--c:var(--bleu);color:var(--bleu-texte)}
.voyant.ambre{--c:var(--ambre);color:var(--ambre-texte)}.voyant.gris{--c:var(--gris);color:var(--gris)}
.badge{font-family:var(--police);vertical-align:middle;display:inline-block;white-space:nowrap;padding:3px 10px;border-radius:999px;font-size:.74rem;font-weight:700;
  background:var(--survol);color:var(--gris);border:1px solid var(--bordure)}
.badge.vert{background:color-mix(in srgb,var(--vert) 14%,var(--surface));color:var(--vert-texte);border-color:transparent}
.badge.bleu{background:color-mix(in srgb,var(--bleu) 14%,var(--surface));color:var(--bleu-texte);border-color:transparent}
.badge.ambre{background:color-mix(in srgb,var(--ambre) 16%,var(--surface));color:var(--ambre-texte);border-color:transparent}
.badge.rouge{background:color-mix(in srgb,var(--rouge) 15%,var(--surface));color:var(--rouge-texte);border-color:transparent}
.badge.violet{background:color-mix(in srgb,var(--violet) 15%,var(--surface));color:var(--violet-texte);border-color:transparent}

.tableau{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.88rem}
th{text-align:left;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:var(--gris);
   padding:10px 12px;border-bottom:1px solid var(--bordure);white-space:nowrap}
td .plaque,td .aide{vertical-align:middle}
td{padding:11px 12px;border-bottom:1px solid var(--bordure);vertical-align:middle}
tr:last-child td{border-bottom:none}
tbody tr:hover td{background:var(--survol)}
td a.fort,a.fort{font-weight:700;text-decoration:none}
td a.fort:hover{color:var(--accent)}
.liste-mvt{list-style:none}
.liste-mvt li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px dashed var(--bordure)}
.liste-mvt li:last-child{border-bottom:none}
.liste-mvt .heure{font-family:var(--mono);font-weight:800;font-size:.85rem;min-width:46px}
.liste-mvt .quoi{flex:1;min-width:0}
.liste-mvt .quoi a{font-weight:700;text-decoration:none}
.liste-mvt .quoi small{display:block;color:var(--gris);font-size:.78rem}
.vide{color:var(--gris);font-size:.88rem;padding:10px 0}
.etat-vide{text-align:center;padding:44px 20px}
.etat-vide .ic{width:40px;height:40px;color:var(--gris);margin-bottom:12px;stroke-width:1.5}
.etat-vide h3{font-size:1.05rem;margin-bottom:6px}
.etat-vide p{color:var(--gris);font-size:.9rem;max-width:440px;margin:0 auto 18px}

.pastilles{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.pastilles a{padding:7px 13px;border-radius:999px;border:1px solid var(--bordure);background:var(--surface);
  text-decoration:none;font-size:.82rem;font-weight:600;white-space:nowrap}
.pastilles a b{color:var(--gris);font-weight:700;margin-left:4px}
.pastilles a.actif{background:var(--texte);color:var(--fond);border-color:var(--texte)}
.pastilles a.actif b{color:inherit;opacity:.7}

.parking{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.auto{background:var(--surface);border:1px solid var(--bordure);border-radius:16px;overflow:hidden;text-decoration:none;
  display:flex;flex-direction:column;box-shadow:var(--ombre);transition:transform .15s,border-color .15s}
.auto:hover{transform:translateY(-2px);border-color:var(--bordure-forte)}
.auto-visuel{position:relative;height:118px;display:grid;place-items:center;
  background:radial-gradient(120% 90% at 50% 120%,color-mix(in srgb,var(--accent) 22%,transparent),transparent 60%),var(--surface-2);
  border-bottom:1px solid var(--bordure)}
.auto-visuel svg{width:190px;height:auto;color:var(--texte)}
.auto-visuel .sol{position:absolute;left:12%;right:12%;bottom:22px;height:6px;border-radius:50%;background:rgba(0,0,0,.18);filter:blur(3px)}
.auto-visuel .coin-haut{position:absolute;top:10px;left:12px;right:12px;display:flex;justify-content:space-between;align-items:center}
.auto-corps{padding:14px 16px 16px;display:flex;flex-direction:column;gap:10px;flex:1}
.auto-nom{font-weight:800;font-size:1rem;letter-spacing:-.01em}
.auto-nom small{display:block;font-weight:500;font-size:.78rem;color:var(--gris)}
.auto-ligne{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.auto-prix{font-weight:800;font-size:1.05rem}
.auto-prix small{font-weight:600;font-size:.75rem;color:var(--gris)}
.puces{display:flex;gap:6px;flex-wrap:wrap}
.puce{font-size:.7rem;font-weight:700;padding:3px 8px;border-radius:6px;background:var(--survol);color:var(--gris);border:1px solid var(--bordure)}

.fiche-tete{display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.fiche-tete .auto-visuel{width:260px;height:150px;border-radius:14px;border:1px solid var(--bordure)}
.donnees{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px 18px}
.donnee .lib{font-size:.66rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase;color:var(--gris)}
.donnee .val{font-weight:700;margin-top:2px}
dl.lignes{display:grid;grid-template-columns:auto 1fr;gap:9px 18px;font-size:.9rem}
dl.lignes dt{color:var(--gris)}
dl.lignes dd{font-weight:600}

.trajet{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:stretch}
.trajet .route{justify-content:center}
.trajet .etape{background:var(--surface-2);border:1px solid var(--bordure);border-radius:14px;padding:14px 16px}
.trajet .etape .quand{font-size:1.05rem;font-weight:800}
.trajet .route{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--gris);font-size:.78rem;font-weight:700}
.trajet .route::before{content:"";width:90px;height:4px;border-radius:4px;
  background:repeating-linear-gradient(90deg,var(--accent) 0 12px,transparent 12px 20px)}

.repartition-packs{display:flex;gap:4px;margin-top:16px}
.repartition-packs span{flex:1;text-align:center;font-size:.7rem;font-weight:800;padding:6px 2px;border-radius:6px;background:var(--survol);color:var(--gris);white-space:nowrap}
.repartition-packs span.actif{background:var(--accent);color:var(--contraste-accent)}

.planning{overflow-x:auto;border:1px solid var(--bordure);border-radius:16px;background:var(--surface);box-shadow:var(--ombre)}
.pl-grille{display:grid;grid-template-columns:220px repeat(14,minmax(54px,1fr));min-width:980px}
.pl-entete{position:sticky;top:0;background:var(--surface-2);font-size:.7rem;font-weight:800;text-align:center;padding:8px 2px;
  border-bottom:1px solid var(--bordure);color:var(--gris);text-transform:uppercase;letter-spacing:.06em}
.pl-entete b{display:block;font-size:1rem;color:var(--texte);letter-spacing:0}
.pl-entete.we{background:color-mix(in srgb,var(--survol) 70%,var(--surface-2))}
.pl-entete.auj{color:var(--accent)}.pl-entete.auj b{color:var(--accent)}
.pl-vehicule{padding:9px 12px;border-bottom:1px solid var(--bordure);border-right:1px solid var(--bordure);display:flex;flex-direction:column;
  gap:4px;font-size:.82rem;position:sticky;left:0;background:var(--surface);z-index:2;text-decoration:none}
.pl-vehicule b{font-size:.86rem}
.pl-vehicule .plaque{align-self:flex-start}
.pl-ligne{grid-column:2 / -1;display:grid;grid-template-columns:repeat(28,1fr);border-bottom:1px solid var(--bordure);position:relative;
  min-height:58px;align-items:center;
  background-image:linear-gradient(90deg,var(--bordure) 1px,transparent 1px);background-size:calc(100% / 14) 100%}
.pl-barre{grid-row:1;margin:0 3px;padding:6px 9px;border-radius:9px;font-size:.74rem;font-weight:700;color:#fff;overflow:hidden;white-space:nowrap;
  text-overflow:ellipsis;text-decoration:none;background:var(--bleu);box-shadow:0 2px 6px rgba(0,0,0,.18);z-index:1}
.pl-barre small{display:block;font-weight:500;opacity:.85}
.pl-barre.reservee{background:var(--violet)}
.pl-barre.terminee{background:color-mix(in srgb,var(--gris) 60%,var(--surface));color:var(--texte)}
.pl-barre.retard{background:repeating-linear-gradient(135deg,var(--rouge) 0 10px,color-mix(in srgb,var(--rouge) 80%,#000) 10px 20px)}
.pl-ligne.maintenance{background-color:color-mix(in srgb,var(--ambre) 9%,transparent)}
.pl-auj{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);z-index:0;opacity:.8}

form .champ{margin-bottom:14px}
form label{display:block;font-weight:700;font-size:.82rem;margin-bottom:5px}
form input,form select,form textarea{width:100%;padding:10px 13px;border:1px solid var(--bordure-forte);border-radius:10px;
  font:inherit;font-size:.93rem;background:var(--surface);color:var(--texte)}
form input[type=checkbox]{width:auto}
form input[type=color]{height:44px;padding:4px}
form input:focus,form select:focus,form textarea:focus{outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}
.champs .large{grid-column:1 / -1}
.erreur,.errorlist{color:var(--rouge-texte);font-size:.8rem;list-style:none;margin-top:4px}
.section-form{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);
  margin:8px 0 12px;padding-top:12px;border-top:1px dashed var(--bordure);grid-column:1 / -1}
.valeur-curseur{font-family:var(--mono);font-weight:800;margin-left:8px;color:var(--accent)}

.toasts{position:fixed;top:calc(var(--h-top) + 14px);right:16px;z-index:1100;display:flex;flex-direction:column;gap:10px;max-width:min(380px,calc(100vw - 32px))}
.toast{background:var(--surface);border:1px solid var(--bordure);border-left:4px solid var(--bleu);border-radius:12px;box-shadow:var(--ombre);
  padding:13px 15px;font-size:.9rem;display:flex;gap:10px;align-items:flex-start;animation:entree .22s ease}
.toast.success{border-left-color:var(--vert)}.toast.error{border-left-color:var(--rouge)}
.toast button{margin-left:auto;background:none;border:none;color:var(--gris);cursor:pointer;font-size:1.1rem;line-height:1}
html.anim main > *,html.anim .boite{opacity:0}
@keyframes entree{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}

.alerte-ligne{display:flex;gap:11px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--bordure);font-size:.86rem}
.alerte-ligne:last-child{border-bottom:none}
.alerte-ligne .ic{color:var(--ambre)}
.alerte-ligne.depasse .ic{color:var(--rouge)}
.alerte-ligne a{text-decoration:none;font-weight:700}

.voile{display:none;position:fixed;inset:var(--h-top) 0 0 0;background:rgba(5,8,12,.5);z-index:890}
.voile.ouvert{display:block}
.nav-bas,.fab{display:none}

.page-simple{min-height:100vh;display:grid;place-items:center;padding:24px 16px;background:var(--encre);color:#fff;position:relative;overflow:hidden}
.page-simple::before{content:"";position:absolute;inset:auto -10% -40% -10%;height:70%;
  background:radial-gradient(60% 60% at 50% 100%,color-mix(in srgb,var(--accent) 35%,transparent),transparent 70%)}
.page-simple::after{content:"";position:absolute;left:50%;bottom:0;width:6px;height:45%;transform:translateX(-50%) perspective(300px) rotateX(60deg);
  transform-origin:bottom;background:repeating-linear-gradient(transparent 0 26px,rgba(255,255,255,.45) 26px 52px)}
.boite{position:relative;z-index:1;width:100%;max-width:440px;background:var(--surface);color:var(--texte);border-radius:20px;padding:30px 28px;
  box-shadow:0 30px 80px rgba(0,0,0,.45)}
.boite.large{max-width:680px}
.boite .logo{color:var(--texte);margin-bottom:20px}
.boite h1{margin-bottom:6px}
.boite .sous{color:var(--gris);font-size:.9rem;margin-bottom:20px}

@media(max-width:1100px){.g-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){
  .g-2,.g-3,.g-2-1,.champs{grid-template-columns:minmax(0,1fr)}
  .topbar{gap:8px;padding:0 12px}
  .logo .agence,.logo .texte,.utilisateur .nom-utilisateur,.reduire{display:none}
  .recherche{margin-left:0;flex:1;min-width:0}.recherche input{width:100%;min-width:0}
  .lateral{position:fixed;left:0;top:calc(var(--h-top) + 8px);z-index:900;width:250px;height:calc(100vh - var(--h-top) - 67px);
    transform:translateX(-100%);transition:transform .2s;box-shadow:0 10px 30px rgba(0,0,0,.3)}
  .lateral.ouvert{transform:none}
  :root[data-nav="reduit"] .lateral .lib{display:inline}
  :root[data-nav="reduit"] .lateral a{justify-content:flex-start;padding:10px 12px}
  main{padding:20px 16px 100px}
  .carte{padding:18px 16px}
  .nav-bas{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:950;background:var(--surface);
    border-top:1px solid var(--bordure);height:calc(64px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}
  .nav-bas a,.nav-bas button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.66rem;font-weight:700;
    color:var(--gris);text-decoration:none;background:none;border:none;font-family:inherit;cursor:pointer}
  .nav-bas .ic{width:22px;height:22px}
  .nav-bas .actif{color:var(--accent)}
  .fab{display:grid;place-items:center;position:fixed;right:16px;bottom:calc(80px + env(safe-area-inset-bottom));z-index:940;width:58px;height:58px;
    border-radius:18px;background:var(--accent);color:var(--contraste-accent);box-shadow:0 10px 24px rgba(0,0,0,.35)}
  .fab .ic{width:26px;height:26px;stroke-width:2.4}
  .trajet{grid-template-columns:1fr}.trajet .route::before{width:4px;height:30px;
    background:repeating-linear-gradient(180deg,var(--accent) 0 8px,transparent 8px 14px)}
  .fiche-tete .auto-visuel{width:100%}
  .masquer-mobile{display:none}
}



.cadran-instr{text-align:center;color:#E7EBF0}
.cadran-instr svg{width:100%;max-width:230px;height:auto;display:block;margin:0 auto}
.c-piste{fill:none;stroke:rgba(255,255,255,.08);stroke-width:10;stroke-linecap:round}
.c-rouge{fill:none;stroke:var(--rouge);stroke-width:10;opacity:.55}
.c-rempli{fill:none;stroke:var(--accent);stroke-width:10;stroke-linecap:round;filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 60%,transparent))}
.c-trait{stroke:rgba(255,255,255,.28);stroke-width:1.5}
.c-trait.majeur{stroke:rgba(255,255,255,.7);stroke-width:2.4}
.c-aiguille{stroke:#FF3B30;stroke-width:3.2;stroke-linecap:round;filter:drop-shadow(0 0 4px rgba(255,59,48,.7))}
.c-moyeu{fill:#1A1F26;stroke:#FF3B30;stroke-width:2.5}
.c-valeur{font-size:30px;font-weight:800;fill:#fff;letter-spacing:-.03em}
.c-unite{font-size:14px;font-weight:700;fill:#8E9AA8}
.c-libelle{font-size:9.5px;font-weight:800;letter-spacing:.16em;fill:#8E9AA8;text-transform:uppercase}
.c-sous{font-size:.78rem;color:#8E9AA8;margin-top:-4px}
.cadran-instr.alerte .c-rempli{stroke:var(--rouge)}

.combine{background:radial-gradient(90% 120% at 50% 110%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 60%),
  radial-gradient(60% 80% at 50% 0%,rgba(255,255,255,.05),transparent 70%),#0E1217;
  border:1px solid #232A33;border-radius:22px;padding:22px 22px 18px;color:#E7EBF0;box-shadow:var(--ombre),inset 0 1px 0 rgba(255,255,255,.04)}
.combine-cadrans{display:grid;grid-template-columns:1fr 1.25fr 1fr;align-items:end;gap:8px}
.combine-cadrans .principal svg{max-width:300px}
.combine-bas{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px;padding-top:14px;border-top:1px solid #232A33}
.temoin{display:flex;gap:11px;align-items:center;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid #232A33;
  text-decoration:none;color:#E7EBF0;transition:background .15s}
a.temoin:hover{background:rgba(255,255,255,.07)}
.temoin .ic{width:22px;height:22px;color:var(--t,#8E9AA8);filter:drop-shadow(0 0 5px var(--t,transparent))}
.temoin b{display:block;font-size:1.25rem;line-height:1.1;font-weight:800}
.temoin small{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:#8E9AA8;font-weight:800}
.temoin.vert{--t:var(--vert)}.temoin.bleu{--t:var(--bleu)}.temoin.ambre{--t:var(--ambre)}.temoin.rouge{--t:var(--rouge)}
.temoin.eteint .ic{color:#4A535E;filter:none}

.frise{list-style:none;position:relative}
.frise li{display:grid;grid-template-columns:50px 22px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;position:relative}
.frise .h{font-family:var(--mono);font-weight:800;font-size:.84rem;text-align:right}
.frise .pastille{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--p);color:#fff;position:relative;z-index:1;
  box-shadow:0 0 0 4px var(--surface)}
.frise .pastille .ic{width:12px;height:12px;stroke-width:2.6}
.frise li.depart{--p:var(--violet)}.frise li.retour{--p:var(--bleu)}.frise li.retard{--p:var(--rouge)}
.frise::before{content:"";position:absolute;left:70px;top:18px;bottom:18px;width:2px;
  background:repeating-linear-gradient(180deg,var(--bordure-forte) 0 6px,transparent 6px 11px)}
.frise .qui a{font-weight:700;text-decoration:none}
.frise .qui small{display:block;color:var(--gris);font-size:.78rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.voyants{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.voyant-alerte{display:flex;gap:11px;align-items:flex-start;padding:12px;border-radius:12px;border:1px solid var(--bordure);background:var(--surface-2);text-decoration:none}
.voyant-alerte:hover{border-color:var(--bordure-forte)}
.voyant-alerte .ic{width:22px;height:22px;flex:0 0 auto;color:var(--ambre)}
.voyant-alerte.depasse{border-color:color-mix(in srgb,var(--rouge) 45%,var(--bordure))}
.voyant-alerte.depasse .ic{color:var(--rouge)}
.voyant-alerte b{display:block;font-size:.88rem}
.voyant-alerte span{font-size:.78rem;color:var(--gris)}

.filtre-cat{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.filtre-cat button{padding:6px 11px;border-radius:999px;border:1px solid var(--bordure);background:var(--surface);color:var(--texte);
  font:inherit;font-size:.78rem;font-weight:700;cursor:pointer}
.filtre-cat button.actif{background:var(--texte);color:var(--fond);border-color:var(--texte)}
.choix-vehicules{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:10px;max-height:440px;overflow-y:auto;overflow-x:hidden;padding:3px}
.choix-vehicules label{position:relative;display:flex;flex-direction:column;gap:6px;border:1.5px solid var(--bordure);border-radius:14px;
  padding:10px 12px 12px;cursor:pointer;background:var(--surface);margin:0;font-weight:500;transition:border-color .15s,box-shadow .15s}
.choix-vehicules label:hover{border-color:var(--bordure-forte)}
.choix-vehicules input{position:absolute;opacity:0;pointer-events:none}
.choix-vehicules label:has(input:checked){border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
.choix-vehicules label:has(input:checked)::after{content:"✓";position:absolute;top:8px;right:10px;width:22px;height:22px;border-radius:50%;
  background:var(--accent);color:var(--contraste-accent);display:grid;place-items:center;font-weight:800;font-size:.8rem}
.choix-vehicules svg{height:46px;width:auto;align-self:center}
.choix-vehicules .l1{display:flex;justify-content:space-between;gap:6px;font-size:.85rem}
.choix-vehicules .l1 b{font-weight:800}
.choix-vehicules .occupe{font-size:.7rem;color:var(--ambre-texte);font-weight:700}
.choix-vehicules label.indisponible{order:1;opacity:.6;border-style:dashed}
.choix-vehicules label.indisponible:has(input:checked){opacity:1;border-color:var(--rouge);border-style:solid}
.choix-vehicules .conflit{font-size:.72rem;color:var(--rouge);font-weight:700;line-height:1.3}
.choix-vehicules .lien-libre{display:block;margin-top:4px;background:none;border:none;padding:0;color:var(--accent);
  font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.alerte-conflit{margin-top:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--rouge);color:var(--rouge);
  font-size:.82rem;font-weight:600;line-height:1.4}
.choix-vehicules label.masque{display:none}

.scans{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:18px}
.scan{border:1.5px dashed var(--bordure-forte);border-radius:16px;padding:16px;background:var(--surface-2);display:flex;flex-direction:column;gap:10px}
.scan h3{font-size:.95rem;display:flex;align-items:center;gap:8px}
.scan h3 .ic{color:var(--accent)}
.scan .choix-doc{display:flex;gap:6px}
.scan .choix-doc button{flex:1;padding:7px;border-radius:9px;border:1px solid var(--bordure-forte);background:var(--surface);color:var(--texte);
  font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}
.scan .choix-doc button.actif{background:var(--texte);color:var(--fond);border-color:var(--texte)}
.scan .declencheur{display:flex;align-items:center;justify-content:center;gap:9px;padding:16px;border-radius:12px;background:var(--surface);
  border:1px solid var(--bordure);cursor:pointer;font-weight:700;font-size:.9rem;min-height:74px;text-align:center}
.scan .declencheur:hover{border-color:var(--accent)}
.scan .declencheur img{max-height:110px;max-width:100%;border-radius:8px}
.scan .etat{font-size:.8rem;min-height:1.2em}
.scan .etat.ok{color:var(--vert-texte)}.scan .etat.ko{color:var(--rouge-texte)}
.scan .etat.avert{color:var(--ambre-texte);font-weight:600}
.conserver-scans{display:flex!important;gap:10px;align-items:flex-start;padding:12px 14px;margin-bottom:16px;border-radius:12px;
  border:1px solid color-mix(in srgb,var(--vert) 45%,var(--bordure));background:color-mix(in srgb,var(--vert) 7%,var(--surface));font-weight:500!important}
.conserver-scans[hidden]{display:none!important}
.conserver-scans input{width:auto!important;margin-top:3px;accent-color:var(--vert)}
.dossier{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.piece-dossier{display:flex;gap:11px;align-items:center;padding:12px;border:1px solid var(--bordure);border-radius:12px;background:var(--surface-2)}
.piece-dossier .ic{width:26px;height:26px;color:var(--rouge-texte);flex:0 0 auto}
.piece-dossier .info{flex:1;min-width:0}
.piece-dossier .info b{display:block;font-size:.88rem}
.piece-dossier .info span{font-size:.74rem;color:var(--gris)}
.piece-dossier form{display:inline}
.piece-dossier .supprimer{background:none;border:none;color:var(--gris);cursor:pointer;font-size:1.1rem;padding:2px 6px;border-radius:6px}
.piece-dossier .supprimer:hover{color:var(--rouge-texte);background:var(--survol)}
.ajout-dossier{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:14px;padding-top:14px;border-top:1px dashed var(--bordure)}
.ajout-dossier > div{flex:1 1 150px}
.ajout-dossier label{font-size:.78rem}
.scan.en-cours .declencheur{opacity:.6;pointer-events:none}
.champ.rempli-scan input,.champ.rempli-scan select{border-color:var(--vert);background:color-mix(in srgb,var(--vert) 8%,var(--surface))}

.silhouette-teinte path:first-child{stroke:color-mix(in srgb,var(--texte) 38%,transparent);stroke-width:1.2;opacity:1}

@media(max-width:1100px){.combine-cadrans{grid-template-columns:1fr 1fr}.combine-cadrans .principal{grid-column:1 / -1;order:-1}
  .combine-bas{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .scans{grid-template-columns:1fr}
  .combine{padding:16px 12px 14px}
  .tableau-cartes table,.tableau-cartes tbody,.tableau-cartes tr,.tableau-cartes td{display:block;width:100%}
  .tableau-cartes thead{display:none}
  .tableau-cartes tr{border:1px solid var(--bordure);border-radius:14px;padding:6px 4px;margin-bottom:10px;background:var(--surface)}
  .tableau-cartes td{border:none;padding:5px 12px;display:flex;justify-content:space-between;gap:12px;align-items:center;text-align:right}
  .tableau-cartes td[data-lib]::before{content:attr(data-lib);font-size:.66rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);text-align:left}
  .tableau-cartes td:empty{display:none}
  .tableau-cartes.carte{background:none;border:none;box-shadow:none;padding:0}
  .tableau-cartes tbody tr:hover td{background:none}
  .tableau-cartes td.actions-membre{justify-content:flex-end;flex-wrap:wrap;padding-top:8px}
}


.recherche{cursor:text}
.raccourci-k,.palette kbd{font-family:var(--mono);font-size:.68rem;font-weight:700;padding:2px 6px;border-radius:6px;
  border:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.65);background:rgba(255,255,255,.06);white-space:nowrap}
body.pal-ouverte{overflow:hidden}
.palette{position:fixed;inset:0;z-index:2000;background:rgba(5,8,12,.62);backdrop-filter:blur(4px);
  display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.palette[hidden]{display:none}
.pal-boite{width:100%;max-width:680px;background:#12171D;color:#E7EBF0;border:1px solid #2A323C;border-radius:18px;
  box-shadow:0 30px 90px rgba(0,0,0,.55),0 0 0 1px rgba(255,255,255,.02);overflow:hidden;animation:pal-entree .16s ease-out}
@keyframes pal-entree{from{opacity:0;transform:translateY(-8px) scale(.985)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.pal-boite{animation:none}}
.pal-tete{display:flex;align-items:center;gap:12px;height:62px;padding:0 14px 0 20px;border-bottom:1px solid #222A33;
  background:linear-gradient(var(--accent),var(--accent)) bottom left/100% 1px no-repeat}
.pal-tete > .ic{width:20px;height:20px;color:#8E9AA8}
.pal-champ{flex:1;min-width:0;background:none;border:none;outline:none;color:#fff;font:inherit;font-size:1.05rem;letter-spacing:-.01em}
.pal-champ::placeholder{color:#6F7B89}
.pal-effacer{background:none;border:none;color:#8E9AA8;font:inherit;font-size:.85rem;cursor:pointer;padding:4px 8px}
.pal-effacer:hover{color:#fff}
.pal-fermer{background:none;border:none;cursor:pointer;padding:4px}
.pal-filtres{display:flex;gap:4px;padding:10px 16px 4px}
.pal-filtres[hidden]{display:none}
.pal-filtres button{border:none;background:none;color:#8E9AA8;font:inherit;font-size:.82rem;font-weight:600;padding:6px 13px;border-radius:999px;cursor:pointer}
.pal-filtres button:hover{color:#fff}
.pal-filtres button.actif{background:#222A33;color:#fff}
.pal-liste{max-height:min(420px,56vh);overflow-y:auto;padding:6px 8px 10px}
.pal-groupe{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#6F7B89;padding:12px 12px 6px}
.pal-item{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:12px;text-decoration:none;color:inherit;min-height:50px;position:relative}
.pal-item.actif{background:#1D242D}
.pal-item.actif::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:3px;background:var(--accent)}
.pal-ic{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:#1A2028;border:1px solid #262E38;flex:0 0 auto}
.pal-ic .ic{width:17px;height:17px;color:#AEB8C4}
.pal-item.actif .pal-ic .ic{color:var(--accent)}
.pal-texte{flex:1;min-width:0}
.pal-titre,.pal-extrait{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pal-titre{font-weight:600;font-size:.92rem}
.pal-extrait{font-size:.78rem;color:#8E9AA8;margin-top:1px}
.pal-item mark{background:none;color:#fff;font-weight:800;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px}
.pal-date{font-size:.78rem;color:#8E9AA8;font-family:var(--mono)}
.pal-vide{padding:28px 16px;text-align:center;color:#8E9AA8;font-size:.9rem}
.pal-pied{display:flex;gap:18px;padding:10px 18px;border-top:1px solid #222A33;font-size:.74rem;color:#6F7B89}
.pal-pied kbd{margin-right:3px}
@media(max-width:900px){.palette{padding:10px}.pal-pied,.raccourci-k{display:none}.pal-liste{max-height:62vh}}

:root{--g-accent:#E8501A;--g-passe:#7C8794;--g-grille:#E7EAEE;--g-axe:#6B7480}
:root[data-theme="dark"]{--g-accent:#FF5A1F;--g-passe:#5B6B7D;--g-grille:#232A33;--g-axe:#8E9AA8}
.graph{margin:0}
.graph svg{width:100%;height:auto;display:block;overflow:visible}
.g-grille{stroke:var(--g-grille);stroke-width:1}
.g-base{stroke:var(--bordure-forte);stroke-width:1}
.g-axe{fill:var(--g-axe);font-size:11px;font-family:var(--police)}
.g-valeur{fill:var(--texte);font-size:12px;font-weight:800;font-family:var(--police)}
.g-colonne{fill:var(--g-passe);transition:filter .15s}
.g-colonne.courant{fill:var(--g-accent)}
.g-zone{fill:transparent}
.g-cible{outline:none;cursor:default}
.g-cible.survol .g-colonne,.g-cible:focus .g-colonne{filter:brightness(1.18)}
.g-cible:focus-visible .g-zone{stroke:var(--accent);stroke-width:1.5}
.g-ligne{fill:none;stroke:var(--g-accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.g-aire{fill:var(--g-accent);opacity:.1}
.g-point{fill:var(--g-accent);stroke:var(--surface);stroke-width:2}
.g-reticule{stroke:var(--g-axe);stroke-width:1}
.g-bulle{position:absolute;z-index:3000;pointer-events:none;background:var(--surface);color:var(--texte);border:1px solid var(--bordure);
  border-radius:10px;box-shadow:var(--ombre);padding:7px 11px;display:flex;flex-direction:column;gap:1px;font-size:.78rem;white-space:nowrap}
.g-bulle b{font-size:.95rem}
.g-bulle span{color:var(--gris)}
.g-tableau{margin-top:8px;font-size:.8rem}
.g-tableau summary{cursor:pointer;color:var(--gris);font-weight:600;width:max-content}
.g-tableau table{margin-top:8px;font-size:.8rem}
.g-tableau td,.g-tableau th{padding:5px 8px}
.g-classement{list-style:none;display:flex;flex-direction:column;gap:4px}
.g-ligne-classement{display:grid;grid-template-columns:22px minmax(0,1.4fr) minmax(0,1fr) auto;gap:12px;align-items:center;
  padding:9px 8px;border-radius:10px;text-decoration:none}
.g-ligne-classement:hover{background:var(--survol)}
.g-rang{font-family:var(--mono);font-weight:800;color:var(--gris);text-align:center}
.g-nom{display:flex;flex-direction:column;gap:3px;min-width:0}
.g-nom b{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-nom .plaque{align-self:flex-start;font-size:.66rem}
.g-piste{height:10px;border-radius:5px;background:var(--g-grille);overflow:hidden}
.g-piste span{display:block;height:100%;border-radius:0 4px 4px 0;background:var(--g-accent)}
.g-montant{text-align:right;font-weight:800;font-size:.9rem;white-space:nowrap}
.g-montant small{display:block;font-weight:500;font-size:.72rem;color:var(--gris)}

.tuiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.tuile{background:var(--surface);border:1px solid var(--bordure);border-radius:16px;padding:16px 18px;box-shadow:var(--ombre);
  display:flex;flex-direction:column;gap:4px;min-width:0}
.tuile .t-lib{font-size:.78rem;font-weight:700;color:var(--gris)}
.tuile .t-ligne{display:flex;align-items:flex-end;justify-content:space-between;gap:10px}
.tuile .t-val{font-size:1.75rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;white-space:nowrap}
.tuile .t-val small{font-size:.9rem;font-weight:600;color:var(--gris)}
.tuile .t-var{font-size:.78rem;font-weight:700;color:var(--gris)}
.t-var .hausse{color:var(--vert-texte)}.t-var .baisse{color:var(--rouge-texte)}
.etincelle path{fill:none;stroke:var(--g-passe);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.etincelle circle{fill:var(--g-accent);stroke:var(--surface);stroke-width:2}
.panneau-titre{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.panneau-titre h2{margin:0}
.panneau-titre .aide{font-size:.8rem}
@media(max-width:1100px){.tuiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.tuiles{grid-template-columns:1fr 1fr}.tuile .t-val{font-size:1.35rem}.etincelle{display:none}
  .g-ligne-classement{grid-template-columns:18px minmax(0,1fr) auto}.g-piste{display:none}}

.outils{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:14px}
.outils .champ-recherche{position:relative;flex:1 1 240px;max-width:360px}
.outils .champ-recherche .ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--gris)}
.outils input[type=search],.outils select{width:100%;padding:9px 12px;border:1px solid var(--bordure-forte);border-radius:10px;
  background:var(--surface);color:var(--texte);font:inherit;font-size:.88rem}
.outils input[type=search]{padding-left:36px}
.apercu-logo{display:flex;align-items:center;gap:14px;margin-bottom:14px;padding:12px 14px;border:1px solid var(--bordure);
  border-radius:12px;background:#fff}
.apercu-logo .aide{color:#5B6672}
.apercu-logo img{max-height:64px;max-width:320px;object-fit:contain}
.filtre-dates{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.filtre-dates label{font-size:.8rem;color:var(--gris);font-weight:600;margin:0;white-space:nowrap}
.filtre-dates input[type=date]{width:auto;padding:8px 10px;border:1px solid var(--bordure-forte);border-radius:10px;
  background:var(--surface);color:var(--texte);font:inherit;font-size:.85rem}
.bandeau-dispo{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;
  margin-bottom:16px;border-color:var(--accent)}
.bandeau-dispo .boutons{display:flex;gap:6px;flex-wrap:wrap}
.dispo-date{display:grid;gap:10px}
.dispo-date-champs{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.dispo-date-champs label{display:grid;gap:4px;font-size:.75rem;font-weight:700;color:var(--gris);margin:0}
.dispo-date-champs label:last-child{grid-column:1/-1}
.dispo-date .btn{justify-self:start}
.dispo-raccourcis{display:grid;gap:6px;margin:14px 0 8px}
.dispo-raccourcis a{display:flex;gap:12px;align-items:center;padding:8px 12px;border:1px solid var(--bordure);border-radius:12px;
  text-decoration:none;color:var(--texte)}
.dispo-raccourcis a:hover{border-color:var(--accent)}
.dispo-raccourcis b{font-size:1.3rem;color:var(--accent);min-width:2ch;text-align:right}
.dispo-raccourcis span{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex:1;font-size:.85rem;font-weight:700}
.dispo-raccourcis small{font-weight:500;color:var(--gris)}
.dispo-public h1{margin-bottom:4px}
.dispo-liste{display:grid;gap:12px;margin-top:16px}
.dispo-carte{display:grid;grid-template-columns:150px 1fr;border:1px solid var(--bordure);border-radius:16px;overflow:hidden;
  background:var(--surface)}
.dispo-carte .auto-visuel{height:100%;min-height:110px}
.dispo-corps{padding:12px 14px;display:grid;gap:8px;align-content:start}
.dispo-corps .btn{justify-self:start}
@media (max-width:520px){.dispo-carte{grid-template-columns:1fr}.dispo-carte .auto-visuel{height:120px}}
.outils select{width:auto}
.resume{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.resume div{background:var(--surface);border:1px solid var(--bordure);border-radius:14px;padding:12px 16px}
.resume b{display:block;font-size:1.45rem;font-weight:800;letter-spacing:-.03em}
.resume span{font-size:.76rem;color:var(--gris);font-weight:600}
.pagination{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:16px;flex-wrap:wrap}
.occupation-carte{display:flex;flex-direction:column;gap:5px}
.occupation-carte .ligne{display:flex;justify-content:space-between;font-size:.74rem;color:var(--gris);font-weight:600}
.occupation-carte .piste{height:6px;border-radius:3px;background:var(--g-grille);overflow:hidden}
.occupation-carte .piste span{display:block;height:100%;background:var(--g-accent);border-radius:0 3px 3px 0}
.prochain{font-size:.76rem;color:var(--gris);display:flex;gap:6px;align-items:center}
.prochain .ic{width:14px;height:14px}
.badge-fidele{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;font-weight:800;padding:2px 8px;border-radius:999px;
  background:color-mix(in srgb,var(--ambre) 18%,var(--surface));color:var(--ambre-texte);margin-left:6px;vertical-align:middle}
.total-selection{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:.86rem;color:var(--gris);margin:-4px 0 12px}
.total-selection b{color:var(--texte)}
@media(max-width:900px){.resume{grid-template-columns:1fr 1fr}.outils .champ-recherche{max-width:none}}
td a.mono{white-space:nowrap}
@media(max-width:560px){.tuile{padding:12px 13px}.tuile .t-val{font-size:1.2rem;white-space:normal}.tuile .t-lib{font-size:.72rem}}

.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.pl-etats{display:flex;gap:6px;flex-wrap:wrap;border:none;padding:0;margin:0}
.pl-etat{display:inline-flex!important;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;border:1px solid var(--bordure);
  background:var(--surface);font-size:.82rem;font-weight:600!important;cursor:pointer;margin:0!important;color:var(--gris);user-select:none}
.pl-etat input{position:absolute;opacity:0;pointer-events:none}
.pl-etat i{width:10px;height:10px;border-radius:3px;background:var(--c);opacity:.35}
.pl-etat b{font-weight:800;font-size:.76rem}
.pl-etat.actif{color:var(--texte);border-color:var(--bordure-forte)}
.pl-etat.actif i{opacity:1}
.pl-etat:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.pl-etat.reservee{--c:var(--violet)}.pl-etat.en_cours{--c:var(--bleu)}.pl-etat.retard{--c:var(--rouge)}.pl-etat.terminee{--c:var(--gris)}
.pl-barre.attenue{opacity:.28}
.pl-barre.trouve{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}


@media(min-width:901px){
  :root[data-nav="reduit"]{--l-nav:96px}
  :root[data-nav="reduit"] .lateral{padding:14px 8px}
  :root[data-nav="reduit"] .lateral .lib{display:block}
  :root[data-nav="reduit"] .lateral a{flex-direction:column;justify-content:center;gap:5px;padding:10px 4px;min-height:64px;
    border-radius:14px;font-size:.68rem;font-weight:700;text-align:center;white-space:normal;line-height:1.15}
  :root[data-nav="reduit"] .lateral a .ic{width:23px;height:23px}
  :root[data-nav="reduit"] .lateral a.actif{background:#1D252F}
  :root[data-nav="reduit"] .lateral a.actif::before{left:-8px;top:14px;bottom:14px}
}

.comptoir{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}
.cta{display:flex;align-items:center;gap:18px;min-height:128px;padding:22px 26px;border-radius:22px;text-decoration:none;
  box-shadow:var(--ombre);transition:transform .12s,filter .15s;position:relative;overflow:hidden}
.cta:hover{transform:translateY(-2px);filter:brightness(1.05)}
.cta:active{transform:none}
.cta-ic{width:60px;height:60px;border-radius:18px;display:grid;place-items:center;flex:0 0 auto;background:rgba(255,255,255,.16)}
.cta-ic .ic{width:30px;height:30px;stroke-width:2}
.cta-texte{display:flex;flex-direction:column;gap:3px;min-width:0}
.cta-texte b{font-size:1.55rem;font-weight:800;letter-spacing:-.025em;line-height:1.1}
.cta-texte span{font-size:.92rem;opacity:.88}
.cta-n{margin-left:auto;font-size:3rem;font-weight:800;letter-spacing:-.05em;line-height:1;opacity:.95}
.cta.depart{background:var(--accent);color:var(--contraste-accent)}
.cta.retour{background:var(--encre);color:#fff;border:1px solid #232A33}
.cta.retour .cta-ic{background:rgba(255,255,255,.08)}
.cta.retour.alerte .cta-n{color:#FF8A80}
.cta.retour.alerte::after{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--rouge)}

a.tuile.lien{text-decoration:none;color:inherit;transition:border-color .15s}
a.tuile.lien:hover{border-color:var(--bordure-forte)}
.tuile .t-val.rouge{color:var(--rouge-texte)}
.titre-section{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);margin:30px 0 12px}

.g-3-2{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}
.pile{display:flex;flex-direction:column;gap:18px;min-width:0}
.pile > .carte + .carte{margin-top:0}

.mvts{list-style:none;display:flex;flex-direction:column;gap:10px}
.mvt{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px 12px 16px;
  border:1px solid var(--bordure);border-radius:16px;background:var(--surface-2)}
.mvt.retard{border-color:color-mix(in srgb,var(--rouge) 50%,var(--bordure));background:color-mix(in srgb,var(--rouge) 6%,var(--surface))}
.mvt-h{font-size:1.3rem;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.mvt-h small{display:block;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gris);font-weight:800}
.mvt.retard .mvt-h,.mvt.retard .mvt-h small{color:var(--rouge-texte)}
.mvt-qui{display:flex;flex-direction:column;gap:5px;min-width:0}
.mvt-qui a{font-weight:800;font-size:1rem;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mvt-qui a:hover{color:var(--accent)}
.mvt-qui small{display:flex;align-items:center;gap:8px;color:var(--gris);font-size:.8rem;flex-wrap:wrap}
.mvt-qui .plaque{font-size:.68rem}
.mvt .btn{min-height:46px;padding:10px 18px;border-radius:13px}

.dispo-cat{list-style:none;display:flex;flex-direction:column;gap:4px}
.dispo-cat a{display:flex;flex-direction:column;gap:7px;padding:8px;border-radius:10px;text-decoration:none}
.dispo-cat a:hover{background:var(--survol)}
.dc-lib{display:flex;justify-content:space-between;gap:10px;font-size:.88rem}
.dc-lib span{color:var(--gris);font-size:.8rem}
.dc-lib span b{color:var(--texte)}
.dc-barre{display:flex;gap:2px;height:10px;border-radius:5px;overflow:hidden;background:var(--g-grille)}
.dc-barre i{display:block;height:100%}
.dc-barre i:last-child{border-radius:0 4px 4px 0}
.dispo-cat .d,.dc-legende .d{background:var(--vert)}
.dispo-cat .l,.dc-legende .l{background:var(--bleu)}
.dispo-cat .a,.dc-legende .a{background:var(--ambre)}
.dc-legende{justify-content:flex-start;margin-top:10px}
.dc-legende span{display:inline-flex;align-items:center}
.voyants.une-colonne{grid-template-columns:minmax(0,1fr)}

.etapes-comptoir{display:flex;gap:8px;margin:-6px 0 18px;flex-wrap:wrap}
.etapes-comptoir a{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 7px;border-radius:999px;border:1px solid var(--bordure);
  background:var(--surface);text-decoration:none;font-size:.85rem;font-weight:700}
.etapes-comptoir b,.titre-etape span{width:24px;height:24px;border-radius:50%;display:inline-grid;place-items:center;font-size:.75rem;
  background:var(--texte);color:var(--fond);flex:0 0 auto}
.titre-etape{display:flex;align-items:center;gap:10px;font-size:1.1rem}
.controles{list-style:none;display:flex;flex-direction:column;gap:8px}
.controles li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid var(--bordure);background:var(--surface-2);font-size:.86rem}
.controles li > span{display:flex;flex-direction:column;gap:2px;min-width:0}
.controles li b{font-size:.92rem}
.controles li .ic{width:22px;height:22px;margin-top:1px;color:var(--gris)}
.controles li.ok .ic{color:var(--vert)}
.controles li.ko{border-color:color-mix(in srgb,var(--rouge) 45%,var(--bordure));background:color-mix(in srgb,var(--rouge) 6%,var(--surface))}
.controles li.ko .ic{color:var(--rouge)}
.btn.grand{min-height:56px;font-size:1.02rem;border-radius:15px;padding:12px 22px}
.btn.grand .ic{width:21px;height:21px}
.btn:disabled{opacity:.55;cursor:wait}
.colle{position:sticky;top:calc(var(--h-top) + 24px);align-self:start}
.colle .champs{grid-template-columns:minmax(0,1fr)}
.champ-unite{display:flex;align-items:center;border:1px solid var(--bordure-forte);border-radius:12px;background:var(--surface);padding-right:14px}
.champ-unite:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
form .champ-unite input{border:none;box-shadow:none!important;font-size:1.3rem;font-weight:800;padding:12px 14px;background:none}
.champ-unite span{color:var(--gris);font-weight:700}
.au-depart{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:12px;background:var(--surface-2);border:1px dashed var(--bordure-forte);margin-bottom:16px}

.edl-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.edl-case{display:flex;flex-direction:column;border:1px solid var(--bordure);border-radius:16px;background:var(--surface);overflow:hidden}
form .edl-photo{position:relative;display:grid;place-items:center;aspect-ratio:4 / 3;margin:0;cursor:pointer;
  background:var(--surface-2);border-bottom:1px solid var(--bordure);overflow:hidden}
.edl-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.edl-vide{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:.84rem;font-weight:700;color:var(--gris)}
.edl-vide .ic{width:30px;height:30px}
.edl-photo:hover .edl-vide{color:var(--accent)}
.edl-photo:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}
.edl-case:not(.prise) .edl-photo:has(input[data-attendu]){outline:2px dashed var(--bordure-forte);outline-offset:-8px}
.edl-case.prise .edl-photo{border-bottom-color:color-mix(in srgb,var(--vert) 55%,var(--bordure))}
.edl-pied{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 11px}
.edl-pied > span{display:flex;flex-direction:column;min-width:0}
.edl-pied b{font-size:.86rem}
.edl-etat{font-size:.72rem;color:var(--gris)}
.edl-case.prise .edl-etat{color:var(--vert-texte);font-weight:700}
form .edl-degat{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:.74rem;font-weight:700;color:var(--gris);
  padding:5px 8px;border-radius:8px;border:1px solid var(--bordure);cursor:pointer;white-space:nowrap}
form .edl-degat input{width:auto;accent-color:var(--rouge)}
.edl-degat:has(input:checked){color:var(--rouge-texte);border-color:var(--rouge);background:color-mix(in srgb,var(--rouge) 8%,var(--surface))}
.edl-avant{display:flex;align-items:center;gap:9px;padding:8px 11px;border-top:1px dashed var(--bordure);text-decoration:none;font-size:.74rem;color:var(--gris)}
.edl-avant img{width:54px;height:40px;object-fit:cover;border-radius:6px}
.edl-avant b{color:var(--rouge-texte)}
.edl-compte{margin-top:10px}

.edl-comparatif{display:flex;flex-direction:column}
.edl-ligne{display:grid;grid-template-columns:150px minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--bordure)}
.edl-ligne:last-child{border-bottom:none}
.edl-ligne.entete{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--gris);padding-top:0}
.edl-ligne > b{font-size:.88rem}
.edl-vignettes{display:flex;gap:8px;flex-wrap:wrap}
.edl-vignettes a{position:relative;display:block;border-radius:10px;overflow:hidden;border:2px solid transparent}
.edl-vignettes a.degat{border-color:var(--rouge)}
.edl-vignettes img{display:block;width:150px;height:112px;object-fit:cover}
.edl-vignettes a span{position:absolute;left:6px;bottom:6px;font-size:.66rem;font-weight:800;padding:2px 7px;border-radius:999px;background:var(--rouge);color:#fff}

@media(max-width:1100px){.g-3-2{grid-template-columns:minmax(0,1fr)}}
@media(max-width:900px){
  .comptoir{grid-template-columns:minmax(0,1fr);gap:10px}
  .cta{min-height:96px;padding:16px 18px;gap:14px;border-radius:18px}
  .cta-ic{width:48px;height:48px;border-radius:14px}.cta-ic .ic{width:25px;height:25px}
  .cta-texte b{font-size:1.2rem}.cta-n{font-size:2.2rem}
  .mvt{grid-template-columns:58px minmax(0,1fr);padding:12px}
  .mvt .btn{grid-column:1 / -1}
  .colle{position:static}
  .edl-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .edl-pied{flex-direction:column;align-items:flex-start}
  .edl-ligne{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .edl-ligne > b{grid-column:1 / -1}
  .edl-ligne.entete > span:first-child{display:none}
  .edl-vignettes img{width:100%;max-width:150px;height:auto;aspect-ratio:4 / 3}
}


@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;
  src:url("../polices/space-grotesk-latin.87c506d88b9f.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:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;
  src:url("../polices/space-grotesk-latin-ext.0bb2ef2eda4e.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}

:root{
  --police:"Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --accent:#3BE0D0;--contraste-accent:#04141A;
  --fond:#EDF1F6;--surface:#FFFFFF;--surface-2:#F5F7FA;--survol:#EEF2F7;
  --bordure:#DCE3EC;--bordure-forte:#C3CDD9;--texte:#0B1220;--gris:#556173;
  --verre:rgba(255,255,255,.78);--verre-bord:rgba(15,23,42,.08);
  --flou:none;
  --halo-1:rgba(20,168,155,.12);--halo-2:rgba(80,110,255,.10);
  --accent-texte:color-mix(in srgb,var(--accent) 52%,#04141A);
  --ombre:0 1px 2px rgba(15,23,42,.05),0 10px 30px rgba(15,23,42,.06);
  --g-accent:#0A7F8F;--g-passe:#A7B0BA;--g-grille:#E3E9F0;--g-axe:#5E6A7A;
}
:root[data-theme="dark"]{
  --fond:#060A12;--surface:#0E141F;--surface-2:#121A27;--survol:rgba(255,255,255,.06);
  --bordure:rgba(255,255,255,.08);--bordure-forte:rgba(255,255,255,.16);--texte:#E6F1FF;--gris:#8D9AB0;
  --verre:rgba(255,255,255,.04);--verre-bord:rgba(255,255,255,.08);
  --halo-1:rgba(59,224,208,.15);--halo-2:rgba(80,110,255,.13);
  --accent-texte:var(--accent);
  --vert:#34D399;--bleu:#6E8BFF;--ambre:#FFB648;--rouge:#FF6B7A;--violet:#A78BFA;
  --vert-texte:#5EEAB0;--bleu-texte:#9DB2FF;--ambre-texte:#FFC56E;--rouge-texte:#FF8A96;--violet-texte:#C4B1FF;
  --ombre:0 1px 0 rgba(255,255,255,.03) inset,0 20px 50px rgba(0,0,0,.35);
  --g-accent:#14A89B;--g-passe:#56657A;--g-grille:rgba(255,255,255,.07);--g-axe:#8D9AB0;
}

body{font-family:var(--police);letter-spacing:-.005em;
  background:radial-gradient(70% 55% at 88% -12%,var(--halo-1),transparent 60%),
             radial-gradient(55% 45% at -5% 105%,var(--halo-2),transparent 60%),var(--fond);
  background-repeat:no-repeat}
h1{font-weight:600;letter-spacing:-.035em;font-size:1.75rem}
h2{font-weight:600;letter-spacing:-.02em}
.surtitre{color:var(--accent-texte);letter-spacing:.12em}

header.haut{background:rgba(6,10,18,.96);background-image:none;-webkit-backdrop-filter:var(--flou);backdrop-filter:var(--flou);
  border-bottom:1px solid rgba(255,255,255,.06)}
:root{--accent-2:var(--accent)}
@supports (color:oklch(from red l c h)){:root{--accent-2:oklch(from var(--accent) calc(l - .1) c calc(h + 45))}}
header.haut::after{height:2px;background:linear-gradient(90deg,transparent,var(--accent) 30%,var(--accent-2) 70%,transparent);opacity:.7}
.logo .embleme{border-radius:12px;box-shadow:0 0 18px color-mix(in srgb,var(--accent) 55%,transparent)}
.recherche{border-radius:999px;background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.1)}
.avatar{background:#121A27}

.lateral{background:#070C15;border-right:1px solid rgba(255,255,255,.06);-webkit-backdrop-filter:var(--flou);backdrop-filter:var(--flou)}
.lateral a:hover{background:rgba(255,255,255,.05)}
.lateral a.actif,:root[data-nav="reduit"] .lateral a.actif{background:rgba(255,255,255,.07);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.lateral a.actif::before{background:var(--accent);box-shadow:0 0 10px var(--accent)}
.lateral a.actif .ic{color:var(--accent);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent) 70%,transparent))}

.carte,.tuile,.resume div,.kpi,.auto,.planning,.edl-case,.controles li,.voyant-alerte,.mvt,.trajet .etape,.piece-dossier{
  background:var(--verre);border-color:var(--verre-bord);-webkit-backdrop-filter:var(--flou);backdrop-filter:var(--flou)}
.carte{border-radius:24px}
.tuile,.kpi{border-radius:20px}
.resume div{border-radius:18px}
.auto{border-radius:20px}
.planning{border-radius:22px}
.pl-vehicule,.pl-entete{background:var(--surface)}
.btn{border-radius:12px;font-weight:600}
.btn:not(.secondaire):not(.danger):not(.whatsapp){box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 28%,transparent)}
.btn.secondaire{background:var(--verre);border-color:var(--bordure-forte)}
form input,form select,form textarea,.outils input[type=search],.outils select{background:var(--surface-2);border-color:var(--bordure-forte);border-radius:12px}
.pastilles a,.etapes-comptoir a,.pl-etat{background:var(--verre);border-color:var(--verre-bord)}
.pastilles a.actif{background:var(--accent);color:var(--contraste-accent);border-color:var(--accent)}
.pastilles a.actif b{color:inherit}
.carte-titre h2 .ic,.valeur-curseur,.section-form,.pl-entete.auj,.pl-entete.auj b,td a.fort:hover,.mvt-qui a:hover,.etat-vide .ic{color:var(--accent-texte)}
th{letter-spacing:.08em}
tbody tr:hover td{background:var(--survol)}
.odometre .rouleau{background:linear-gradient(#141C29,#060A12 50%,#141C29)}

.cta{border-radius:24px}
.cta.depart{background:var(--accent);background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--contraste-accent);
  box-shadow:0 18px 50px color-mix(in srgb,var(--accent) 26%,transparent)}
.cta.depart .cta-ic{background:rgba(255,255,255,.22)}
.cta.retour{background:var(--verre);color:var(--texte);border:1px solid var(--verre-bord);-webkit-backdrop-filter:var(--flou);backdrop-filter:var(--flou)}
.cta.retour .cta-ic{background:var(--survol)}
.cta.retour .cta-texte span{color:var(--gris);opacity:1}
.cta.retour.alerte::after{display:none}
.cta.retour.alerte .cta-n{color:var(--rouge-texte);text-shadow:0 0 22px color-mix(in srgb,var(--rouge) 55%,transparent)}
.cta-texte b{font-weight:700;letter-spacing:-.03em}
.cta-n{font-weight:700}

.tuile .t-val{font-weight:600;letter-spacing:-.04em}
.t-charge{height:6px;border-radius:6px;background:var(--g-grille);overflow:hidden;margin-top:6px}
.t-charge i{display:block;height:100%;border-radius:6px;background:var(--c,var(--accent));box-shadow:0 0 12px var(--c,var(--accent))}
.t-charge.bleu{--c:var(--bleu)}.t-charge.rouge{--c:var(--rouge)}.t-charge.ambre{--c:var(--ambre)}

:root[data-theme="dark"] .pl-barre:not(.terminee){color:#0B1220;box-shadow:0 4px 14px rgba(0,0,0,.35)}

.mvt{border-radius:18px}
.mvt.retard{background:color-mix(in srgb,var(--rouge) 9%,transparent);border-color:color-mix(in srgb,var(--rouge) 35%,transparent)}
.mvt-h{font-weight:600}

.batterie{display:flex;gap:3px;padding:3px;border-radius:8px;border:1px solid var(--bordure-forte)}
.batterie i{flex:1;height:14px;border-radius:3px;background:var(--g-grille)}
.batterie i.d{background:var(--accent);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 60%,transparent)}
.batterie i.l{background:color-mix(in srgb,var(--bleu) 55%,transparent)}
.batterie i.a{background:color-mix(in srgb,var(--ambre) 70%,transparent)}
.dc-legende .d{background:var(--accent)}
.dc-legende .l{background:color-mix(in srgb,var(--bleu) 55%,transparent)}
.dc-legende .a{background:color-mix(in srgb,var(--ambre) 70%,transparent)}

:root:not([data-theme="dark"]) .t-charge i,:root:not([data-theme="dark"]) .batterie i.d{box-shadow:none}
:root:not([data-theme="dark"]) .batterie i.d{background:var(--accent-texte)}
:root:not([data-theme="dark"]) .dc-legende .d{background:var(--accent-texte)}
:root:not([data-theme="dark"]) .cta.retour.alerte .cta-n{text-shadow:none}
@media (prefers-reduced-transparency:reduce){
  .carte,.tuile,.resume div,.kpi,.auto,.planning,.edl-case,.mvt,.cta.retour,header.haut,.lateral{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--surface)}
}

.mfa-etapes{display:flex;flex-direction:column;gap:16px;padding-left:20px;margin:6px 0 4px}
.mfa-etapes li{padding-left:4px}
.mfa-qr{margin:12px 0 8px;display:inline-block;padding:8px;background:#fff;border-radius:14px}
.mfa-qr svg{display:block;width:240px;height:240px;shape-rendering:crispEdges}
.mfa-cle{margin-top:6px;font-size:1rem;letter-spacing:.06em;word-break:break-all;color:var(--texte)}
.mfa-form{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:10px}
.mfa-form input[name=code_mfa]{max-width:190px;font-size:1.25rem;letter-spacing:.12em;text-align:center}
.mfa-form label{width:100%;margin:0}
.mfa-actions{display:flex;flex-direction:column;gap:16px;margin-top:16px;align-items:flex-start}
.mfa-ok{display:flex;gap:10px;align-items:center;padding:12px 14px;border-radius:12px;
  background:color-mix(in srgb,var(--vert) 12%,transparent);color:var(--texte)}
.mfa-ok .ic{color:var(--vert-texte)}
.mfa-alerte{padding:12px 14px;border-radius:12px;margin-bottom:16px;background:color-mix(in srgb,var(--ambre) 14%,transparent)}
.mfa-codes ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 24px;margin:14px 0 18px;padding-left:24px;font-size:1.05rem}
.case-confiance{display:flex!important;gap:8px;align-items:center;font-weight:500!important;margin:4px 0 16px!important}
.case-confiance input{width:auto!important}
.lien-retour{background:none;border:none;color:var(--gris);font:inherit;font-size:.86rem;text-decoration:underline;cursor:pointer}
@media print{.page-simple{background:#fff}.page-simple::before,.page-simple::after,.actions,.toasts{display:none}}

.console-nav{display:flex;gap:4px;margin-left:auto;overflow-x:auto}
.console-nav a{display:inline-flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;text-decoration:none;
  color:rgba(255,255,255,.72);font-size:.86rem;font-weight:600;white-space:nowrap}
.console-nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.console-nav a.actif{background:rgba(255,255,255,.09);color:#fff;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.console-nav a.actif .ic{color:var(--accent)}
.console-nav .ic{width:17px;height:17px}
.console-alertes{display:flex;flex-direction:column;gap:8px}
.console-sante{display:flex;flex-direction:column;gap:16px}
.console-sante > div{display:flex;flex-direction:column;gap:6px}
.console-derniers{list-style:none;display:flex;flex-direction:column}
.console-derniers li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--bordure)}
.console-derniers li:last-child{border-bottom:none}
.console-derniers a{display:flex;flex-direction:column;text-decoration:none;min-width:0}
@media(max-width:900px){.console-nav a{padding:8px 10px}.console-nav a:not(.actif) .ic{display:none}}
@media(max-width:600px){.console-nav{min-width:0;flex:1}.console-nav a{font-size:.78rem;padding:7px 9px}}

.auto-visuel{overflow:hidden}
.auto-visuel .photo-vehicule{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.auto-visuel:has(.photo-vehicule)::after{content:"";position:absolute;inset:0 0 auto;height:46px;pointer-events:none;
  background:linear-gradient(rgba(0,0,0,.42),transparent)}
.auto-visuel .coin-haut{z-index:1}
.logo-marque{display:grid;place-items:center;color:color-mix(in srgb,var(--texte) 78%,transparent)}
.auto-visuel .logo-marque svg{width:54px;height:54px}
.fiche-tete .auto-visuel .logo-marque svg,.boite .auto-visuel .logo-marque svg{width:72px;height:72px}
.logo-marque.monogramme{width:58px;height:58px;border-radius:50%;border:2px solid var(--bordure-forte);
  font-weight:800;font-size:1.15rem;letter-spacing:.04em;background:var(--surface)}
.visuel-fiche{display:flex;flex-direction:column;gap:8px}
.photo-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.photo-actions label{cursor:pointer}
.visuel-choix{position:relative;align-self:stretch;height:70px;border-radius:10px;overflow:hidden;display:grid;place-items:center;
  background:var(--surface-2)}
.visuel-choix .photo-vehicule{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.choix-vehicules .visuel-choix svg{height:34px;width:34px}
.visuel-choix .logo-marque.monogramme{width:40px;height:40px;font-size:.85rem}

.texte-legal{white-space:pre-line;line-height:1.65;font-size:.92rem}
.texte-legal.defilant{max-height:320px;overflow-y:auto;border:1px solid var(--bordure);border-radius:10px;padding:14px 16px;margin:8px 0}
.case-legale{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin:14px 0}
.case-legale input{width:auto;margin-top:4px}
.case-legale a,.liens-legaux a{color:var(--accent)}
.liens-legaux{margin-top:22px;text-align:center;font-size:.8rem;color:var(--gris)}
