/* NAVYRO Flotte — compléments au style de NAVYRO CRM (crm.css). Couleurs claires ici ; leurs reprises pour le style
   noir sont dans flotte-noir.css. */

.petit{font-size:12px}
.chargement{padding:40px;color:var(--muted)}

/* ---------- connexion ---------- */
.gate-logo{display:block;max-width:180px;max-height:70px;width:auto;height:auto;margin:0 auto 6px;object-fit:contain}
.case-souvenir{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer}
.case-souvenir input{width:16px;height:16px;margin:0}
.gate-style{display:flex;justify-content:center;margin-top:4px}
.champ-oeil-dedans{position:relative}
.champ-oeil-dedans input{padding-right:42px}
.oeil-bouton{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:transparent;cursor:pointer;font-size:16px;padding:4px 6px;border-radius:8px;color:var(--muted)}
.oeil-bouton[aria-pressed="true"]{background:rgba(44,111,175,.12);color:var(--brand2)}

/* ---------- notifications ---------- */
#toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:1000}
.toast{background:#173a63;color:#fff;padding:11px 16px;border-radius:12px;box-shadow:0 10px 30px rgba(16,43,70,.25);font-size:14px;max-width:380px;animation:toastIn .25s ease-out}
.toast-erreur{background:#a92d35}
.toast.sortie{opacity:0;transform:translateY(8px);transition:.4s}
@keyframes toastIn{from{opacity:0;transform:translateY(10px)}}

/* ---------- barre latérale ---------- */
.nav a .nav-lot{margin-left:auto;font-size:10px;font-weight:700;letter-spacing:.04em;padding:2px 6px;border-radius:999px;background:rgba(255,255,255,.12);color:#c7d6ea}
.nav a .nav-droit{margin-left:6px;font-size:10px;opacity:.6}

/* ---------- tableau de bord ---------- */
.section-tete{display:flex;align-items:center;gap:10px;margin:18px 0 12px;font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.section-tete::after{content:"";flex:1;height:1px;background:var(--line)}
.tb-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.metric .value.zero{color:var(--muted)}
.metric .lot{display:inline-block;margin-top:6px;font-size:11px;padding:3px 8px;border-radius:999px;background:#eef4fb;color:var(--brand2);font-weight:700}
.tb-depenses{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap}
.a-venir{max-width:640px;margin:26px auto 0;text-align:center;padding:34px 26px}
.a-venir .grand{font-size:44px;margin-bottom:10px}
.a-venir h2{margin:0 0 8px;font-size:20px}
.a-venir .lot{display:inline-block;margin-top:12px;font-size:12px;padding:5px 12px;border-radius:999px;background:#eef4fb;color:var(--brand2);font-weight:700}

/* ---------- mon compte ---------- */
.compte-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;max-width:900px}
.card-titre{margin:4px 0 12px;font-size:16px}
.compte-grille .field{margin-bottom:12px}
.compte-grille .gate-erreur,.compte-grille .gate-info{margin-bottom:10px}
.champs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0}
.champs > div{min-width:0}
.champs .large{grid-column:1/-1}
.champs dt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700}
.champs dd{margin:2px 0 0;font-size:14px;overflow-wrap:anywhere}
.droits-liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px}
.droits-liste li{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:6px 10px;border:1px solid var(--line);border-radius:10px}

/* ---------- paramètres ---------- */
.onglets-param .onglet{text-decoration:none;font-size:13px;padding:8px 14px}
.onglets-param .nb{opacity:.7;font-weight:500;margin-left:4px}
.param-actions{margin-bottom:12px;justify-content:space-between}
.table-param td{vertical-align:middle}
.table-param td.actions-cellule{white-space:nowrap;text-align:right}
.bandeau-info{display:inline-block;background:#fff7e9;border:1px solid #f5d7a7;color:#7b5619;border-radius:12px;padding:8px 12px;font-size:13px;margin-bottom:12px}
.ligne-inactive td{opacity:.55}
.case-ligne{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink);cursor:pointer;margin:4px 0}
.case-ligne input{width:17px;height:17px;margin:0;flex:none}
.fenetre .form-grid .field{margin:0}
.fenetre .form-section:first-child{margin-top:0}
.form-grid > .large{grid-column:1/-1}
.field .aide{font-size:11px;color:var(--muted);margin-top:4px}

/* Profils et droits : une ligne par profil, une colonne par menu, un choix par case. */
.table-droits th.menu{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;text-align:left;padding:8px 4px;font-size:12px}
.table-droits th.menu span{display:inline-block}
.table-droits td.profil-nom{min-width:170px}
.table-droits td.profil-nom .muted{display:block;font-size:11px;margin-top:2px}
.table-droits td.droit{padding:3px 3px;text-align:center}
.table-droits select.droit{border:1px solid var(--line);border-radius:8px;padding:5px 4px;font:inherit;font-size:12px;background:#fff;color:var(--ink);min-width:90px}
.table-droits select.droit.d-aucun{color:var(--muted)}
.table-droits select.droit.d-lecture{border-color:#8fb7df;background:#edf4fb;color:#1f4f82}
.table-droits select.droit.d-ecriture{border-color:#7fcfa8;background:#e9f7f0;color:#117653}
.table-droits select.droit:disabled{opacity:.75;cursor:default}
.legende-droits{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin:10px 0 0}
.legende-droits span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1px solid var(--line)}
.legende-droits .l-lecture::before{background:#edf4fb;border-color:#8fb7df}
.legende-droits .l-ecriture::before{background:#e9f7f0;border-color:#7fcfa8}

/* Réglages */
.reglages-grille{max-width:620px}
.reglages-grille .field{margin-bottom:14px}

/* ---------- véhicules (lot 1) ---------- */
.metric-lien{text-decoration:none;color:inherit;display:block;cursor:pointer;transition:transform .12s,box-shadow .12s}
.metric-lien:hover{transform:translateY(-2px);box-shadow:0 0 0 2px var(--brand2)}
.immat{font-family:ui-monospace,Consolas,"Courier New",monospace;font-weight:700;letter-spacing:.05em;white-space:nowrap}
.badge.statut-vert{background:#e9f7f0;color:#117653}
.badge.statut-bleu{background:#edf4fb;color:#2c6faf}
.badge.statut-cyan{background:#e3f6fa;color:#0e7490}
.badge.statut-orange{background:#fff5e4;color:#aa6b12}
.badge.statut-rouge{background:#feecee;color:#aa3941}
.badge.statut-gris{background:#f0f3f7;color:#5b6678}
.compteurs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.compteur{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font:inherit;font-size:12px;color:var(--ink);cursor:pointer;display:inline-flex;gap:6px;align-items:center}
.compteur b{font-size:13px}
.compteur.actif{border-color:var(--brand2);box-shadow:0 0 0 2px rgba(44,111,175,.18)}
.compteur.statut-vert b{color:#117653}.compteur.statut-bleu b{color:#2c6faf}.compteur.statut-cyan b{color:#0e7490}
.compteur.statut-orange b{color:#aa6b12}.compteur.statut-rouge b{color:#aa3941}.compteur.statut-gris b{color:#5b6678}
.filtres .case-ligne{align-self:center}
.table .immat{font-size:13px}
.veh-tete{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;margin-bottom:14px}
.veh-photo{width:168px;height:120px;border-radius:12px;overflow:hidden;background:#eef3fb;display:grid;place-items:center;flex:none;border:1px solid var(--line)}
.veh-photo img{width:100%;height:100%;object-fit:cover;display:block}
.veh-photo-vide{font-size:46px;color:#9fb0c6}
.veh-resume{flex:1;min-width:240px;display:flex;flex-direction:column;gap:10px}
.veh-immat{font-family:ui-monospace,Consolas,"Courier New",monospace;font-size:26px;font-weight:800;letter-spacing:.08em;background:#fff;border:2px solid #1e293b;border-radius:8px;padding:2px 12px;display:inline-block;align-self:flex-start;color:#0f172a}
.veh-badges{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.veh-chiffres{gap:8px 14px}
.veh-chiffres dd b{font-size:16px}
.veh-grille{max-width:none}
.veh-grille .card.large{grid-column:1/-1}
.texte-long{white-space:pre-line;margin:0;font-size:14px;line-height:1.5}
.title .lien{display:inline-block;margin-bottom:4px;font-weight:600}
.onglets-param .nb{opacity:.7;font-weight:500;margin-left:4px}
/* documents */
.depot{display:grid;grid-template-columns:2fr 1fr 1.2fr 1fr auto;gap:10px;align-items:end;margin-bottom:14px}
.depot .field{margin:0}
.depot .gate-erreur{grid-column:1/-1;margin:0}
.depot input[type=file]{padding:7px}
.docs-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.doc{display:flex;flex-direction:column;gap:6px;padding:12px}
.doc-apercu{display:grid;place-items:center;height:130px;border-radius:10px;overflow:hidden;background:#f3f6fa;border:1px solid var(--line)}
.doc-apercu img{width:100%;height:100%;object-fit:cover;display:block}
.doc-icone{font-size:44px}
.doc-nom{font-weight:700;font-size:13px;overflow-wrap:anywhere}
.doc-desc{font-size:13px}
.doc-meta{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12px}
.doc-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto}
.doc-historique{margin-top:14px}
.doc-historique summary{cursor:pointer}
/* chronologie */
.chrono-filtre{max-width:260px}
.frise.chrono{margin-top:10px}
.frise.chrono .frise-pas{padding:8px 0 10px}
.chrono-tete{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.chrono-date{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.chrono-titre{font-weight:700;font-size:14px;margin-top:2px}
.chrono-detail{white-space:pre-line;font-size:13px;margin-top:2px}
.frise-pas.chrono-statut::before{background:#aa6b12}
.frise-pas.chrono-document::before{background:#0e7490}
.frise-pas.chrono-accident::before{background:#aa3941}
.frise-pas.chrono-creation::before{background:#117653}
.pill.evt-accident{background:#feecee;color:#aa3941}
.pill.evt-statut{background:#fff5e4;color:#aa6b12}
.pill.evt-document{background:#e3f6fa;color:#0e7490}
.pill.evt-creation{background:#e9f7f0;color:#117653}

/* ---------- conducteurs, affectations, états des lieux (lot 2) ---------- */
.veh-conducteurs{font-size:13px}
.cases-permis{display:flex;flex-wrap:wrap;gap:4px 14px}
.cases-permis .case-ligne{margin:2px 0}
.affectation-close td{opacity:.65}
.affectation-a-venir td{background:#f7fbff}
.btn.small.edl-brouillon{border-color:#f5d7a7;background:#fff7e9;color:#7b5619}
.pile .card{margin:0}
.edl-etat{display:grid;grid-template-columns:200px 1fr;gap:12px;align-items:end;margin-bottom:10px}
.edl-etat .field{margin:0}
input[type=range]{width:100%;accent-color:var(--brand2);height:32px}
.depot-photo{grid-template-columns:2fr 2fr auto}
.signatures{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:12px}
.signature-titre{font-size:13px;margin-bottom:6px}
.signature-pad{display:block;width:100%;aspect-ratio:3/1;border:2px dashed #90b8df;border-radius:12px;background:#fff;touch-action:none;cursor:crosshair}
.signature .btn{margin-top:6px}
.obligatoire{color:var(--red);font-weight:700;font-size:12px}
.bandeau-info{display:block}

/* ---------- kilométrage et carburant (lot 3) ---------- */
.km-synthese{margin-bottom:14px}
.km-synthese .metric .value{font-size:22px}
.km-dernier{font-size:18px;font-weight:800;padding:8px 0}
.courbe-km{display:block;width:100%;height:auto;max-height:200px;color:var(--ink);margin:4px 0 6px}
.releve-force td{background:#fff5f6}
.alertes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.alerte{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:#fff}
.alerte-orange{border-color:#f5d7a7;background:#fff7e9}
.alerte-rouge{border-color:#efc7ca;background:#feecee}
.alerte-icone{font-size:22px;line-height:1}
.alerte-texte{font-size:13px;margin-top:3px}
.badge.b-gris{background:#f0f3f7;color:#5b6678}

/* ---------- maintenance et notifications (lot 4) ---------- */
.sidebar-boutons{display:flex;align-items:center;gap:6px}
.cloche{position:relative;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.08);color:#fff;border-radius:10px;width:38px;height:38px;cursor:pointer;font-size:17px;line-height:1}
.cloche:hover{background:rgba(255,255,255,.16)}
.cloche-nombre{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#d33f49;color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;border:2px solid #0f2a4a}
.fenetre-notifications{width:min(560px,calc(100vw - 32px))}
.fenetre-notifications .fenetre-tete .actions{gap:6px}
.notifications{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.notification{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}
.notification.non-lue{border-left:4px solid var(--brand2);background:#f3f8fd}
.notification-texte{font-size:14px;color:var(--ink);text-decoration:none}
a.notification-texte:hover{text-decoration:underline}
.docs-liste{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}
.depot-iv{grid-template-columns:2fr 1fr auto;margin:6px 0 0}
.card-titre .nb{opacity:.6;font-weight:500;font-size:13px;margin-left:4px}
.param-actions h2{margin:0}

/* ---------- dépenses et échéances (lot 5) ---------- */
.repartition{display:flex;flex-direction:column;gap:6px;margin:10px 0 14px}
.repartition-ligne{display:grid;grid-template-columns:200px 1fr 170px;gap:10px;align-items:center;font-size:13px}
.repartition-barre{display:block;height:12px;border-radius:6px;background:#eef3fb;overflow:hidden}
.repartition-plein{display:block;height:100%;border-radius:6px;background:var(--brand2);width:0;transition:width .3s}
.groupe-acquisition{background:#334155}.groupe-location{background:#5b21b6}.groupe-assurance{background:#0e7490}.groupe-energie{background:#b45309}
.groupe-entretien{background:#047857}.groupe-reparations{background:#9f1239}.groupe-autres{background:#64748b}
.repartition-valeur{text-align:right;font-variant-numeric:tabular-nums}
.table.tco td.num,.table.tco th.num{font-size:12px}
.echeance-retard td{background:#fff5f6}
.bandeau-ok{background:#e9f7f0;border-color:#9fd9bd;color:#117653}
.table.preferences td.num input{width:18px;height:18px}
.table.preferences td.num{text-align:center}

/* ---------- statistiques, éditions, journal, RGPD (lot 6) ---------- */
.g-s0{--c:#2c6faf}.g-s1{--c:#0e7490}.g-s2{--c:#b45309}.g-s3{--c:#047857}.g-s4{--c:#7c3aed}.g-s5{--c:#be123c}.g-s6{--c:#64748b}.g-s7{--c:#a16207}
.groupe-acquisition{--c:#334155}.groupe-location{--c:#5b21b6}.groupe-assurance{--c:#0e7490}.groupe-energie{--c:#b45309}
.groupe-entretien{--c:#047857}.groupe-reparations{--c:#9f1239}.groupe-autres{--c:#64748b}
.g-pastille{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c,#2c6faf);margin-right:6px;vertical-align:-1px;flex:none}
.stats-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;margin-bottom:14px}
.stats-grille .card{margin:0;min-width:0}
.stats-grille .card.large{grid-column:1/-1}
.g-anneau{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.g-anneau svg{width:130px;height:130px;flex:none}
.anneau-fond{fill:none;stroke:#eef3fb;stroke-width:16}
.anneau-arc{fill:none;stroke:var(--c,#2c6faf);stroke-width:16}
.anneau-total{text-anchor:middle;font-size:20px;font-weight:800;fill:var(--ink)}
.anneau-sous{text-anchor:middle;font-size:10px;fill:var(--muted)}
.g-legende{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:13px;flex:1;min-width:160px}
.g-legende li{display:grid;grid-template-columns:auto 1fr auto 44px;gap:6px;align-items:center}
.g-legende li .muted{text-align:right;font-size:12px}
.g-legende-ligne{flex-direction:row;flex-wrap:wrap;gap:6px 14px;margin-top:6px}
.g-legende-ligne li{display:flex;align-items:center}
.g-leg-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-barres{display:flex;flex-direction:column;gap:6px;margin:4px 0 8px}
.g-barre-ligne{display:grid;grid-template-columns:minmax(0,170px) 1fr minmax(70px,auto);gap:10px;align-items:center;font-size:13px}
.g-barre-nom{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-barre-piste{display:block;height:12px;border-radius:6px;background:#eef3fb;overflow:hidden}
.g-barre-plein{display:block;height:100%;border-radius:6px;background:var(--c,#2c6faf);width:0;transition:width .3s}
.g-barre-valeur{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.g-colonnes{display:block;width:100%;height:auto;max-height:240px}
.g-colonnes rect{fill:var(--c,#2c6faf)}
.g-axe{font-size:10px;fill:var(--muted);text-anchor:middle}
.g-axe.g-max{text-anchor:start}
.g-ligne{stroke:var(--line);stroke-width:1}
.evol{display:inline-block;font-size:12px;font-weight:700;padding:1px 7px;border-radius:999px;background:#f0f3f7;color:#5b6678;white-space:nowrap}
.evol-hausse{background:#edf4fb;color:#2c6faf}.evol-baisse{background:#f0f3f7;color:#5b6678}
.evol-cout.evol-hausse{background:#feecee;color:#aa3941}.evol-cout.evol-baisse{background:#e9f7f0;color:#117653}
.metric .sub{font-size:12px;color:var(--muted);margin-top:4px}
.tb-liste{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:13px}
.tb-liste li{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}
.tb-liste li:last-child{border-bottom:0}
.tb-liste li > span{min-width:0;overflow:hidden;text-overflow:ellipsis}
.tb-liste b{white-space:nowrap;font-variant-numeric:tabular-nums}
.texte-rouge{color:#aa3941}.texte-orange{color:#aa6b12}
.filtres-periode{padding-bottom:0}
.filtres-periode .filtres{margin-bottom:12px}
th.tri{cursor:pointer;user-select:none}
th.tri:hover,th.tri:focus-visible{color:var(--brand2)}
th.tri[data-sens="asc"]::after{content:" ▲";font-size:10px}
th.tri[data-sens="desc"]::after{content:" ▼";font-size:10px}
.editions{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.edition{margin:0;display:flex;flex-direction:column}
.edition .card-titre{display:flex;align-items:center;gap:10px}
.edition-numero{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:8px;background:#edf4fb;color:#2c6faf;font-size:12px;font-weight:800;flex:none}
.edition-filtres{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;margin-bottom:10px}
.edition-filtres .field{margin:0}
.edition .actions{margin-top:auto}
.edition-indisponible{opacity:.7}
.btn.desactive{opacity:.45;pointer-events:none}
.texte-rgpd{line-height:1.55;font-size:14px}
.texte-rgpd h2{font-size:20px;margin:4px 0 10px}
.texte-rgpd h3{font-size:15px;margin:16px 0 6px;color:var(--brand2)}
.texte-rgpd ul{margin:4px 0 8px;padding-left:20px}
.texte-rgpd p{margin:6px 0}
.rgpd-grille,.journal-grille{max-width:none;margin-top:14px}
.rgpd-grille .card.large,.journal-grille .card.large{grid-column:1/-1}
.apercu-rgpd{margin:10px 0}
.apercu-rgpd summary{cursor:pointer;font-weight:600}
.apercu-rgpd .texte-rgpd{border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-top:8px;max-height:420px;overflow:auto}
#formRgpd textarea{width:100%;font:inherit;font-size:13px;line-height:1.5;border:1px solid var(--line);border-radius:10px;padding:10px;resize:vertical}

/* ---------- listes déroulantes (Paramètres › Listes, 09/11/2026) ---------- */
.liste-ajout{display:flex;gap:10px;margin:0 0 12px;max-width:620px}
.liste-ajout input{flex:1;min-width:0}

/* ---------- aide, formation, manuel, bulles (09/11/2026, « comme le CRM ») ---------- */
.btn.btn-aide{font-weight:700}
.aide-volet{position:fixed;top:0;right:0;bottom:0;width:min(440px,100vw);z-index:900;display:flex;flex-direction:column;background:var(--panel,#fff);
  border-left:1px solid var(--line);box-shadow:-12px 0 32px rgba(16,43,70,.18);color:var(--ink)}
.aide-volet-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:16px 18px 10px;border-bottom:1px solid var(--line)}
.aide-volet-tete h2{margin:2px 0 0;font-size:18px}
.aide-volet-recherche{padding:10px 18px}
.aide-volet-recherche input{width:100%}
.aide-volet-corps{overflow:auto;padding:4px 18px 24px;flex:1}
.aide-etiquette{font-size:11px;text-transform:uppercase;letter-spacing:.06em;font-weight:800;color:var(--muted)}
.aide-section{margin:0 0 26px;line-height:1.55;font-size:14px}
.aide-section h2{font-size:19px;margin:0 0 8px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.aide-duree{font-size:12px;font-weight:600;color:var(--muted)}
.aide-sert{font-size:15px}
.aide-etapes{padding-left:22px;margin:8px 0}
.aide-etapes li{margin:6px 0}
.aide-retenir{background:#edf4fb;border-radius:10px;padding:10px 12px}
.aide-bloque{margin-top:10px}
.aide-bloque details{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-top:6px}
.aide-bloque summary{cursor:pointer;font-weight:600}
.aide-bloque details p{margin:6px 0 0}
.aide-liens{margin-top:18px;font-weight:600}
.aide-reponse{background:#e9f7f0;border:1px solid #9fd9bd;border-radius:12px;padding:10px 12px;margin:8px 0 12px;line-height:1.5}
.aide-question{font-weight:700;margin:4px 0}
.aide-autre{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:6px 0}
.aide-autre summary{cursor:pointer;font-weight:600}
.aide-resultats{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:10px}
.aide-resultats li{display:flex;flex-direction:column;gap:2px}
.aide-resultats a{text-decoration:none}
.aide-resultats a:hover b{text-decoration:underline}
.aide-source{font-size:11px;font-weight:700;color:var(--muted)}
.aide-figure{margin:12px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#f3f6fa;max-width:900px}
.aide-figure img{display:block;width:100%;height:auto}
.aide-figure figcaption{font-size:12px;color:var(--muted);padding:6px 10px}
.aide-page{display:grid;grid-template-columns:280px minmax(0,1fr);gap:16px;align-items:start}
.aide-sommaire{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;margin:0}
.aide-sommaire ol{padding-left:20px;margin:10px 0 0;line-height:1.7;font-size:14px}
.aide-recherche-page input{width:100%}
.aide-support{margin:0;min-width:0}
.aide-chapitre{margin-bottom:28px}
.aide-chapitre > h2{font-size:21px;border-bottom:2px solid var(--line);padding-bottom:6px}
.aide-manuel-section{margin:14px 0 18px;line-height:1.55;font-size:14px}
.aide-manuel-section h3{font-size:16px;margin:0 0 6px}
.aide-cible{animation:aideCible 1.6s ease-out}
@keyframes aideCible{0%{background:#fff7e9}100%{background:transparent}}
.bulle-aide{position:fixed;z-index:1001;pointer-events:none;max-width:min(320px,calc(100vw - 16px));background:#173a63;color:#fff;
  font-size:13px;line-height:1.45;padding:8px 11px;border-radius:10px;box-shadow:0 8px 24px rgba(16,43,70,.25)}
html[data-sans-bulles] .bulle-aide{display:none!important}
@media print{
  .sidebar,.topbar .actions,.aide-sommaire,.aide-volet,.bulle-aide,#toasts{display:none!important}
  .aide-page{display:block}
  .aide-support{box-shadow:none;border:0}
  .aide-section,.aide-manuel-section{break-inside:avoid-page}
  .aide-figure{break-inside:avoid}
}

/* ---------- téléphone ---------- */
@media (max-width:767px){
  .aide-page{grid-template-columns:1fr}
  .aide-sommaire{position:static;max-height:none}
  .aide-volet{width:100vw}
  .stats-grille{grid-template-columns:1fr}
  .editions{grid-template-columns:1fr}
  .edition-filtres{grid-template-columns:1fr}
  .g-barre-ligne{grid-template-columns:minmax(0,110px) 1fr auto;gap:6px}
  .g-anneau{flex-direction:column;align-items:center;justify-content:center}   /* légende sous l’anneau (recette du 10/11/2026) */
  .g-legende{min-width:0;width:100%}
  .depot{grid-template-columns:1fr}
  .edl-etat{grid-template-columns:1fr}
  .signatures{grid-template-columns:1fr}
  .km-synthese .metric .value{font-size:18px}
  .depot-iv{grid-template-columns:1fr}
  .repartition-ligne{grid-template-columns:1fr;gap:3px}
  .repartition-valeur{text-align:left}
  .depot .depot-bouton label{display:none}
  .veh-immat{font-size:20px}
  .veh-photo{width:100%;height:160px}
  .docs-grille{grid-template-columns:1fr 1fr}
  .table-cartes .immat{font-size:14px}
  .tb-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .metric .value{font-size:24px}
  .gate-panel{padding:26px 22px}
  .form-grid{grid-template-columns:1fr}
  .champs{grid-template-columns:1fr}
  .table-param td.actions-cellule{white-space:normal}
  .table-param td.actions-cellule .btn{margin:2px 0}
  .table-droits select.droit{min-width:80px}
  /* une simple confirmation reste une petite fenêtre, pas un plein écran (mobile.css) */
  .fenetre-message{width:calc(100vw - 32px);height:fit-content;max-height:80dvh;margin:auto;border-radius:18px}
  .fenetre-message form{height:auto}
}

/* Paramètres › Import (09/11/2026) */
.import-choix{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1.4fr) auto;gap:12px;align-items:end}
.import-boutons{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.import-choix .import-boutons{margin-top:0}
.import-options{display:grid;gap:12px;margin-top:14px;max-width:720px}
.import-table select,.import-table input{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff;color:var(--ink);font:inherit;font-size:13px}
.import-cache>*{visibility:hidden}
.import-sous-titre{font-size:14px;margin:16px 0 6px}
.import-apercu{max-height:260px;overflow:auto}
.import-apercu td,.import-apercu th{white-space:nowrap;font-size:12px}
.import-feuille{max-width:360px;margin-bottom:8px}
.obligatoire{color:#aa3941;font-weight:700}
@media (max-width:760px){.import-choix{grid-template-columns:1fr}.table-cartes td.import-cache{display:none}
  .table-cartes td.import-champ>div{text-align:right}}

/* ---------- mise en page commune (10/11/2026, « rien n'est aligné ») ---------- */
/* Rangées de chiffres : colonnes équilibrées par mise_en_page.js ; libellé, chiffre et détail sur les mêmes lignes d'une
   carte à l'autre (sous-grille), quel que soit le nombre de lignes du libellé. */
.tb-grille{row-gap:14px;column-gap:14px;align-items:stretch}
.tb-grille>.metric{display:grid;grid-row:span 3;grid-template-rows:subgrid;row-gap:0;align-content:start;margin:0}
.tb-grille>.metric>.label{align-self:start}
.tb-grille>.metric>.value{align-self:end;margin-top:6px;white-space:nowrap}
.tb-grille>.metric>.sub,.tb-grille>.metric>.lot{align-self:start}
/* Icône en tête des titres : en couleur, hors du dégradé du titre */
.title h1 .titre-icone{display:inline-block;-webkit-text-fill-color:initial;color:initial;background:none;text-transform:none;
  letter-spacing:0;margin-right:.15em;font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif}
/* Tableaux : nombres avec leur unité, badges et immatriculations jamais coupés */
.table td.num,.table th.num{white-space:nowrap}
.table .badge,.table .pill,.sans-coupure{white-space:nowrap}
/* Boutons d'une ligne : côte à côte, espacés */
@media (min-width:761px){
  .table td.actions-cellule{white-space:nowrap;text-align:right}
  .table td.actions-cellule>*+*{margin-left:6px}
}
/* Fiches (véhicule, conducteur, état des lieux) : les cartes occupent toute la largeur, deux par rangée */
@media (min-width:761px){.veh-grille{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* Tableau de bord : les prochaines échéances sur toute la largeur, en deux colonnes */
.stats-grille .tb-large{grid-column:1/-1}
.tb-large .tb-liste{columns:2 380px;column-gap:32px}
.tb-large .tb-liste li{break-inside:avoid}
/* Téléphone : boutons d'en-tête rangés en grille régulière, filtres l'un sous l'autre (plus de texte coupé) */
@media (max-width:760px){
  .topbar .actions{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
  .topbar .actions .btn{width:100%;justify-content:center;text-align:center}
}
@media (max-width:560px){.filtres{grid-template-columns:1fr}.filtres .search{grid-column:auto}}
/* Paquet de boutons d'une ligne trop large pour tenir sur une ligne (pleins) : deux par ligne, alignés à droite */
.actions-paquet{display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end;width:148px;margin-left:auto}
.table td.actions-cellule .actions-paquet{white-space:normal}
@media (max-width:760px){.actions-paquet{width:auto;justify-content:flex-start}}
