:root{
  --vert:#1f5c45;--vert-2:#2b7a5c;--vert-clair:#e6f0eb;--fond:#f4f5f2;--carte:#ffffff;--encre:#1d2a24;--encre-2:#4b5a52;--gris:#6b776f;
  --ligne:#dfe4df;--ambre:#a35f00;--ambre-clair:#fdf1dc;--rouge:#b3261e;--rouge-clair:#fbe9e7;--bleu:#1d5c99;--bleu-clair:#e5eef8;
  --ombre:0 1px 2px rgba(20,40,30,.06),0 4px 14px rgba(20,40,30,.06);--rayon:12px;
  --nav-h:64px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --vert:#5fbf95;--vert-2:#7fd1ab;--vert-clair:#173328;--fond:#101614;--carte:#18201d;--encre:#e8eeea;--encre-2:#b9c4bd;--gris:#8e9a93;
  --ligne:#2a3530;--ambre:#f0b45a;--ambre-clair:#33270f;--rouge:#f2877e;--rouge-clair:#3a1a17;--bleu:#8ab8ea;--bleu-clair:#15243a;
  --ombre:0 1px 2px rgba(0,0,0,.3);
}}
*{box-sizing:border-box}
html,body{margin:0;background:var(--fond);color:var(--encre);font:16px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-text-size-adjust:100%}
a{color:var(--vert)}
button,input,select,textarea{font:inherit;color:inherit}
.cache{display:none!important}

/* Mise en page : barre latérale sur grand écran, barre d'onglets en bas sur téléphone */
.app{display:flex;min-height:100vh}
.lat{width:236px;flex:none;background:var(--carte);border-right:1px solid var(--ligne);padding:18px 12px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:4px}
.marque{display:flex;align-items:center;gap:10px;padding:4px 10px 16px;font-weight:700}
.marque img{width:30px;height:30px;border-radius:8px}
.marque small{display:block;font-weight:500;color:var(--gris);font-size:12.5px}
.lat a.nav{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;text-decoration:none;color:var(--encre-2);font-weight:550}
.lat a.nav.on{background:var(--vert-clair);color:var(--vert)}
.lat a.nav svg,.bas a svg{width:20px;height:20px;flex:none}
.lat .pied{margin-top:auto;font-size:13px;color:var(--gris);padding:10px}
.lat .pied button{background:none;border:0;color:var(--vert);padding:0;cursor:pointer;font-size:13px}
.contenu{flex:1;min-width:0;padding:22px 28px 40px}
.bas{display:none}
@media (max-width:860px){
  .lat{display:none}
  .contenu{padding:14px 16px calc(var(--nav-h) + 28px)}
  .bas{display:flex;position:fixed;left:0;right:0;bottom:0;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);
    background:var(--carte);border-top:1px solid var(--ligne);z-index:20}
  .bas a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:11.5px;color:var(--gris);text-decoration:none;position:relative}
  .bas a.on{color:var(--vert);font-weight:650}
  .bas a .pastille{position:absolute;top:7px;left:calc(50% + 6px)}
}

/* En-tête de page */
.entete{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:2px 0 18px;flex-wrap:wrap}
.entete h1{font-size:23px;margin:0;line-height:1.2}
.entete .sous{color:var(--gris);font-size:14px;margin-top:3px}
.retour{display:inline-flex;align-items:center;gap:6px;color:var(--encre-2);text-decoration:none;font-size:14.5px;margin-bottom:10px}
.actions{display:flex;gap:8px;flex-wrap:wrap}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:11px 16px;font-weight:600;
  background:var(--vert);color:#fff;cursor:pointer;text-decoration:none;min-height:44px;line-height:1.2}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .btn:not(.sec):not(.dang){color:#0d1f17}}
.btn.sec{background:var(--carte);color:var(--encre);border-color:var(--ligne)}
.btn.dang{background:var(--rouge-clair);color:var(--rouge);border-color:transparent}
.btn.large{width:100%}
.btn.grand{font-size:17px;padding:15px 20px;min-height:54px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.btn svg{width:18px;height:18px}
.lien{background:none;border:0;color:var(--vert);cursor:pointer;padding:0;font-weight:600}

/* Cartes et listes */
.carte{background:var(--carte);border-radius:var(--rayon);box-shadow:var(--ombre);padding:18px 18px}
.carte+.carte{margin-top:14px}
.grille>.carte+.carte,.liste>.carte+.carte{margin-top:0}
.carte h2{font-size:16.5px;margin:0 0 12px}
.grille{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.g2,.g3{grid-template-columns:1fr}}
.chiffre{display:block;text-decoration:none;color:inherit}
.chiffre .n{font-size:30px;font-weight:700;line-height:1.1}
.chiffre .l{color:var(--encre-2);font-size:14px;margin-top:4px}
.chiffre.alerte .n{color:var(--ambre)}
.liste{display:flex;flex-direction:column;gap:10px}
.ligne{display:flex;align-items:center;gap:14px;background:var(--carte);border-radius:var(--rayon);box-shadow:var(--ombre);padding:14px 16px;text-decoration:none;color:inherit;cursor:pointer;border:1px solid transparent}
.ligne:hover{border-color:var(--ligne)}
.ligne .p{flex:1;min-width:0}
.ligne .t{font-weight:650;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ligne .s{color:var(--encre-2);font-size:14px;margin-top:2px;overflow-wrap:anywhere}
.ligne .d{text-align:right;font-size:13.5px;color:var(--gris);flex:none}
.ligne.choisie{border-color:var(--vert);box-shadow:0 0 0 2px var(--vert-clair)}
.plaque{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:700;letter-spacing:.5px;background:var(--fond);border:1px solid var(--ligne);border-radius:6px;padding:2px 7px;font-size:14px;white-space:nowrap}
.vide{text-align:center;color:var(--gris);padding:34px 16px}
.vide .t{font-weight:650;color:var(--encre-2);margin-bottom:6px}
.vide .btn{margin-top:14px}

/* Pastilles d'état */
.pill{display:inline-block;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:650;white-space:nowrap;background:var(--fond);color:var(--encre-2)}
.pill.ok{background:var(--vert-clair);color:var(--vert)}
.pill.att{background:var(--ambre-clair);color:var(--ambre)}
.pill.ko{background:var(--rouge-clair);color:var(--rouge)}
.pill.info{background:var(--bleu-clair);color:var(--bleu)}
.pastille{display:inline-flex;min-width:19px;height:19px;border-radius:10px;background:var(--rouge);color:#fff;font-size:11.5px;font-weight:700;align-items:center;justify-content:center;padding:0 5px}

/* Bandeaux */
.bandeau{border-radius:10px;padding:12px 14px;margin:0 0 14px;font-size:14.5px;display:flex;gap:10px;align-items:flex-start}
.bandeau.ok{background:var(--vert-clair);color:var(--vert)}
.bandeau.att{background:var(--ambre-clair);color:var(--ambre)}
.bandeau.ko{background:var(--rouge-clair);color:var(--rouge)}
.bandeau.info{background:var(--bleu-clair);color:var(--bleu)}
.bandeau b{display:block}

/* Onglets et recherche */
.onglets{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.onglets button{border:1px solid var(--ligne);background:var(--carte);border-radius:999px;padding:8px 15px;font-weight:600;color:var(--encre-2);cursor:pointer;min-height:40px}
.onglets button.on{background:var(--vert);border-color:var(--vert);color:#fff}
.recherche{position:relative;margin-bottom:14px}
.recherche input{width:100%;padding:12px 14px 12px 42px;border:1px solid var(--ligne);border-radius:10px;background:var(--carte);min-height:46px}
.recherche svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--gris)}

/* Formulaires */
.champ{display:flex;flex-direction:column;gap:5px;margin-bottom:13px}
.champ label{font-size:13.5px;font-weight:600;color:var(--encre-2)}
.champ input,.champ select,.champ textarea{border:1px solid var(--ligne);background:var(--carte);border-radius:9px;padding:11px 12px;min-height:46px;width:100%}
.champ textarea{min-height:84px;resize:vertical}
.champ input:focus,.champ select:focus,.champ textarea:focus,.recherche input:focus{outline:2px solid var(--vert-clair);border-color:var(--vert)}
.champ .aide{font-size:12.5px;color:var(--gris)}
.champ.lu input{background:var(--vert-clair)}
.ligne-champs{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.ligne-champs.l3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:620px){.ligne-champs,.ligne-champs.l3{grid-template-columns:1fr}}
.case{display:flex;gap:10px;align-items:flex-start;padding:10px 0;font-size:15px}
.case input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--vert)}
.curseur{display:flex;align-items:center;gap:12px}
.curseur input{flex:1;accent-color:var(--vert)}
.curseur output{font-weight:700;min-width:52px;text-align:right}

/* Étapes */
.etapes{display:flex;gap:6px;margin:0 0 16px}
.etapes span{flex:1;height:5px;border-radius:3px;background:var(--ligne)}
.etapes span.on{background:var(--vert)}
.etape-titre{font-size:13px;color:var(--gris);font-weight:600;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.pied-etape{display:flex;gap:10px;justify-content:space-between;margin-top:18px}
@media (max-width:620px){.pied-etape{position:sticky;bottom:calc(var(--nav-h) + 8px);background:var(--fond);padding:10px 0 2px}}

/* Photos */
.photos{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
.photo{position:relative;aspect-ratio:4/3;border:1.5px dashed var(--ligne);border-radius:10px;background:var(--carte);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;color:var(--encre-2);font-size:13.5px;font-weight:600;cursor:pointer;overflow:hidden;text-align:center;padding:6px}
.photo svg{width:26px;height:26px;color:var(--vert)}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.photo.faite{border-style:solid;border-color:var(--vert)}
.photo .leg{position:absolute;left:0;right:0;bottom:0;background:rgba(0,0,0,.55);color:#fff;font-size:12px;padding:4px 6px}
.photo input{display:none}
.vignettes{display:flex;gap:8px;flex-wrap:wrap}
.vignettes a{display:block;width:96px;height:72px;border-radius:8px;overflow:hidden;background:var(--fond)}
.vignettes img{width:100%;height:100%;object-fit:cover}

/* Dépôt de document */
.depot{border:2px dashed var(--ligne);border-radius:12px;padding:26px 16px;text-align:center;background:var(--carte);cursor:pointer;display:block}
.depot:hover{border-color:var(--vert)}
.depot svg{width:36px;height:36px;color:var(--vert)}
.depot .t{font-weight:650;margin-top:8px}
.depot .s{color:var(--gris);font-size:14px;margin-top:3px}
.depot input{display:none}

/* Signature */
.signature{border:1.5px solid var(--ligne);border-radius:10px;background:#fff;touch-action:none;width:100%;height:200px;display:block}
.sig-pied{display:flex;justify-content:space-between;font-size:13px;color:var(--gris);margin-top:6px}

/* Détail en paires */
.paires{display:grid;grid-template-columns:max-content 1fr;gap:7px 16px;font-size:15px}
.paires dt{color:var(--gris)}
.paires dd{margin:0;font-weight:550;overflow-wrap:anywhere}
@media (max-width:520px){.paires{grid-template-columns:1fr}.paires dd{margin-bottom:6px}}
.texte{text-align:justify;hyphens:auto;font-size:14.5px;color:var(--encre-2)}
.conditions{max-height:260px;overflow:auto;border:1px solid var(--ligne);border-radius:10px;padding:12px 14px;background:var(--fond)}
.conditions p{margin:0 0 9px}

/* Écran de connexion */
.connexion{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.connexion .carte{width:100%;max-width:420px;padding:28px 26px}
.connexion h1{font-size:22px;margin:12px 0 4px}
.connexion .sous{color:var(--gris);margin-bottom:20px}
.connexion img{width:44px;height:44px;border-radius:11px}

/* Divers */
.toast{position:fixed;left:50%;bottom:calc(var(--nav-h) + 20px);transform:translateX(-50%) translateY(20px);background:var(--encre);color:var(--fond);padding:12px 18px;
  border-radius:10px;font-weight:600;opacity:0;transition:.2s;z-index:60;max-width:calc(100% - 32px)}
.toast.vu{opacity:1;transform:translateX(-50%)}
.toast.ko{background:var(--rouge);color:#fff}
.chargement{display:flex;justify-content:center;padding:40px}
.roue{width:30px;height:30px;border:3px solid var(--ligne);border-top-color:var(--vert);border-radius:50%;animation:t .8s linear infinite}
@keyframes t{to{transform:rotate(360deg)}}
.squelette{height:70px;border-radius:var(--rayon);background:linear-gradient(90deg,var(--carte),var(--fond),var(--carte));background-size:200% 100%;animation:sq 1.2s infinite;margin-bottom:10px}
@keyframes sq{to{background-position:-200% 0}}
.voile{position:fixed;inset:0;background:rgba(10,20,15,.45);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.voile .carte{max-width:460px;width:100%}
.ocr{display:flex;gap:10px;align-items:center;color:var(--encre-2);font-weight:600;padding:12px 0}
.ocr .roue{width:22px;height:22px}
.compare{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}
@media (max-width:760px){.compare{grid-template-columns:1fr}}
.compare img{width:100%;border-radius:10px;border:1px solid var(--ligne);background:var(--fond)}
.sep{height:1px;background:var(--ligne);margin:14px 0}
.petit{font-size:13.5px;color:var(--gris)}
.droite{text-align:right}

/* Planning : frise par véhicule (reprise du planning moto LCD Elec / envie2rouler), positions à la minute */
.pl-barre{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;margin-bottom:14px}
.pl-barre .onglets{margin-bottom:0}
.pl-nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pl-nav .btn{min-height:40px;padding:8px 13px}
.pl-titre{font-weight:650;margin-left:6px}
.pl-page{display:flex;flex-direction:column;gap:18px}
.pl-cadre{padding:0;overflow:hidden}
.pl-defile{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pl-grille{--vw:190px;min-width:calc(var(--vw) + var(--n) * 92px)}
.pl-grille[style*="--n:15"]{min-width:calc(var(--vw) + 15 * 52px)}
.pl-grille[style*="--n:30"]{min-width:calc(var(--vw) + 30 * 32px)}
.pl-l{display:grid;grid-template-columns:var(--vw) minmax(0,1fr);border-bottom:1px solid var(--ligne);min-height:56px}
.pl-l:last-child{border-bottom:0}
.pl-tete{min-height:0;background:var(--fond)}
.pl-v{position:sticky;left:0;z-index:4;background:var(--carte);padding:8px 12px;display:flex;flex-direction:column;justify-content:center;gap:3px;text-decoration:none;color:inherit;border-right:1px solid var(--ligne);min-width:0}
.pl-tete .pl-v{background:var(--fond);font-size:12px;font-weight:650;color:var(--gris);text-transform:uppercase;letter-spacing:.04em}
.pl-v span{font-size:12.5px;color:var(--encre-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-v .plaque{align-self:flex-start}
.pl-v .pl-att{color:var(--ambre);font-weight:600}
.pl-jours{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr))}
.pl-jours div{text-align:center;padding:6px 0;border-left:1px solid var(--ligne);line-height:1.15}
.pl-jours small{display:block;font-size:10.5px;color:var(--gris);text-transform:uppercase}
.pl-jours b{font-size:13px}
.pl-jours .we{background:var(--carte)}
.pl-jours .auj{background:var(--vert);color:#fff}
.pl-jours .auj small{color:inherit;opacity:.85}
.pl-piste{position:relative;cursor:copy;min-height:56px}
.pl-fond{position:absolute;inset:0;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));pointer-events:none}
.pl-fond span{border-left:1px solid var(--ligne)}
.pl-fond .we{background:var(--fond)}
.pl-fond .auj{background:var(--vert-clair)}
.pl-now{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--rouge);z-index:3;pointer-events:none}
.pl-b{position:absolute;top:10px;bottom:10px;z-index:2;display:flex;align-items:center;padding:0 8px;border-radius:7px;font-size:12px;font-weight:650;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:inherit;text-align:left;line-height:1.2}
.pl-pastille{display:inline-block;width:16px;height:12px;border-radius:4px;border:1px solid transparent}
.b-resa{background:var(--bleu-clair);color:var(--bleu);border-color:var(--bleu)}
.b-pret{background:var(--vert);color:#fff}
.b-ouvert{background:linear-gradient(90deg,var(--vert) 70%,var(--vert-clair))}
.b-retard{background:var(--ambre-clair);color:var(--ambre);border-color:var(--ambre)}
.b-rendu{background:var(--ligne);color:var(--encre-2)}
.b-indispo{background:repeating-linear-gradient(135deg,var(--rouge-clair) 0 7px,var(--carte) 7px 14px);color:var(--rouge);border-color:var(--rouge)}
.b-np{background:var(--carte);color:var(--gris);border:1px dashed var(--gris)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .b-pret,:root:not([data-theme="light"]) .pl-jours .auj{color:#0d1f17}}
.pl-court{color:transparent!important;padding:0}
.pl-ext{position:absolute;top:50%;transform:translateY(-50%);z-index:3;font-size:12px;font-weight:650;color:var(--encre-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.pl-legende{display:flex;flex-wrap:wrap;gap:8px 18px;padding:12px 16px;border-top:1px solid var(--ligne);background:var(--fond);font-size:13px;color:var(--encre-2)}
.pl-legende span{display:inline-flex;align-items:center;gap:7px}
.pl-agenda h2{font-size:17px;margin:0 0 10px}
.pl-jour{margin-bottom:14px}
.pl-jour h3{font-size:14px;margin:0 0 8px;color:var(--encre-2);font-weight:650}
.pl-jour h3::first-letter,.pl-titre::first-letter{text-transform:uppercase}
.pl-heure{flex:none;width:46px;font-variant-numeric:tabular-nums;font-weight:650;color:var(--encre-2)}
.ligne.pl-pris{opacity:.62;cursor:not-allowed;box-shadow:none;border-color:var(--ligne)}
@media (min-width:1100px){.pl-page{flex-direction:column-reverse}}
@media (max-width:620px){.pl-grille{--vw:118px}.pl-v span{font-size:11.5px}.pl-v .plaque{font-size:12px}.pl-titre{width:100%;margin:4px 0 0}}

/* Dossier, facturation, réglages (14/11/2026) */
.h2-ico{width:20px;height:20px;vertical-align:-4px;margin-right:8px;color:var(--gris)}
.titre-ligne{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.titre-ligne h2{margin:0}
.titre-section{font-size:17px;margin:22px 0 10px}
.formules{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.formule{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:14px;border:1.5px solid var(--ligne);border-radius:12px;
  background:var(--carte);cursor:pointer;font:inherit;color:inherit;min-height:88px}
.formule b{font-size:15.5px}
.formule span{font-size:13px;color:var(--encre-2);font-weight:600}
.formule small{font-size:12.5px;color:var(--gris);line-height:1.35}
.formule.choisie{border-color:var(--vert);box-shadow:0 0 0 3px var(--vert-clair)}
.photo-or{cursor:pointer;margin-top:2px}
.choix{margin-bottom:6px}
.table-defile{overflow-x:auto;margin:0 -4px}
.facture{width:100%;border-collapse:collapse;font-size:14.5px}
.facture th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--gris);font-weight:650;padding:6px 4px;border-bottom:1px solid var(--ligne)}
.facture td{padding:10px 4px;border-bottom:1px solid var(--ligne);vertical-align:top}
.facture td small{display:block;color:var(--gris);font-size:12.5px;margin-top:2px}
.facture .mt{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.facture tr.offert td:not(:last-child){color:var(--gris);text-decoration:line-through}
.case.mini{padding:0;font-size:13px;gap:6px;align-items:center}
.case.mini input{width:18px;height:18px}
.tot{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 0 2px;font-size:15px}
.tot b{font-size:20px;font-variant-numeric:tabular-nums}
.estim{margin-top:12px;padding:12px 14px;border-radius:10px;background:var(--fond)}
.estim .tot{padding-top:0}
a.lien-bandeau{text-decoration:none;align-items:center}
a.lien-bandeau svg{width:22px;height:22px;flex:none}

/* Couleurs de marque Renault, d'après le guide des standards digitaux du réseau (11/2024) : le blanc domine, le noir
   porte l'action, le jaune #EFDF00 souligne avec modération ; gris #D9D9D6 / #BBBCBC / #888B8D, textes #3E3F40 / #656666,
   alerte #E91630, information #1E8FCE. Ni logo ni police de la marque : seulement ses couleurs. */
:root[data-marque="renault"]{
  --vert:#000000;--vert-2:#3E3F40;--vert-clair:#FBF4B0;--fond:#F2F2F2;--carte:#ffffff;--encre:#000000;--encre-2:#3E3F40;--gris:#656666;
  --ligne:#D9D9D6;--rouge:#E91630;--rouge-clair:#FDE8EB;--bleu:#1E8FCE;--bleu-clair:#E6F3FB;--accent:#EFDF00;
  --ombre:0 1px 2px rgba(0,0,0,.06),0 4px 14px rgba(0,0,0,.05);
}
@media (prefers-color-scheme:dark){:root[data-marque="renault"]:not([data-theme="light"]){
  --vert:#EFDF00;--vert-2:#F8EB4C;--vert-clair:#3A3608;--fond:#0B0B0B;--carte:#1A1A1A;--encre:#ffffff;--encre-2:#D9D9D6;--gris:#BBBCBC;
  --ligne:#3E3F40;--rouge:#FF5A6E;--rouge-clair:#3A1418;--bleu:#5FB3E6;--bleu-clair:#10283A;--accent:#EFDF00;--ombre:0 1px 2px rgba(0,0,0,.4);
}}
:root[data-marque="renault"] .lat{border-top:4px solid var(--accent)}
:root[data-marque="renault"] .lat a.nav.on{background:var(--accent);color:#000}
:root[data-marque="renault"] .etapes span.on,:root[data-marque="renault"] .pl-jours .auj{background:var(--accent);color:#000}
:root[data-marque="renault"] .pl-fond .auj{background:#FCF8D2}
@media (prefers-color-scheme:dark){:root[data-marque="renault"]:not([data-theme="light"]) .pl-fond .auj{background:#2A2706}}
:root[data-marque="renault"] .bas a.on{color:var(--encre)}
:root[data-marque="renault"] .bas a.on::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}
:root[data-marque="renault"] .btn:not(.sec):not(.dang):hover{background:var(--vert-2)}
:root[data-marque="renault"] .chiffre.alerte .n{color:var(--encre)}
:root[data-marque="renault"] .chiffre.alerte{box-shadow:inset 4px 0 0 var(--accent),var(--ombre)}
:root[data-marque="renault"] .b-pret{color:var(--carte)}
:root[data-marque="renault"] .champ input:focus,:root[data-marque="renault"] .champ select:focus,:root[data-marque="renault"] .champ textarea:focus,:root[data-marque="renault"] .recherche input:focus{outline:2px solid var(--accent);border-color:var(--encre)}
:root[data-marque="renault"] .formule.choisie{border-color:var(--encre);box-shadow:0 0 0 3px var(--accent)}
:root[data-marque="renault"] .ligne.choisie{border-color:var(--encre);box-shadow:0 0 0 2px var(--accent)}
:root[data-marque="renault"] a:not(.btn):not(.nav):not(.ligne):not(.chiffre):not(.lien-bandeau):not(.pl-b){color:var(--encre)}
:root[data-marque="renault"] a.btn.sec{color:var(--encre)}
:root[data-marque="renault"] .lien{color:var(--encre);text-decoration:underline;text-underline-offset:3px}

/* Options, accessoires, statistiques (14/11/2026) */
label.ligne.option{cursor:pointer;gap:12px}
label.ligne.option input{width:22px;height:22px;flex:none;accent-color:var(--vert)}
label.ligne.option:has(input:checked){border-color:var(--vert);box-shadow:0 0 0 2px var(--vert-clair)}
:root[data-marque="renault"] label.ligne.option:has(input:checked){border-color:var(--encre);box-shadow:0 0 0 2px var(--accent)}
.cases{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:0 16px}
.cases .case{padding:8px 0}
.acc-ligne .champ{margin-bottom:8px}
.barre-taux{display:inline-block;width:70px;height:7px;border-radius:4px;background:var(--ligne);vertical-align:middle;overflow:hidden;margin-right:6px}
.barre-taux i{display:block;height:100%;background:var(--vert)}
:root[data-marque="renault"] .barre-taux i{background:var(--accent)}
.titre-section.titre-ligne{margin:22px 0 10px}
.titre-section.titre-ligne h2{font-size:17px}

/* Page du client, sans compte (14/11/2026) */
.client{max-width:680px;margin:0 auto;padding:22px 16px 40px}
.client .carte{margin-bottom:14px}
.client-tete{margin:4px 0 18px}
.client-tete h1{font-size:24px;margin:4px 0 6px}
.client-tete .sous{color:var(--encre-2);font-size:15px}
.client-garage{font-weight:700;color:var(--gris);text-transform:uppercase;letter-spacing:.5px;font-size:13px}
:root[data-marque="renault"] .client-tete{border-left:5px solid var(--accent);padding-left:12px}
.client-pied{text-align:center;color:var(--gris);font-size:14px;margin-top:22px;line-height:1.6}
.photos-permis{margin-bottom:12px}
.lien-copie{display:flex;gap:8px}
.lien-copie input{flex:1;min-width:0}

/* Logo du garage (14/11/2026) : barre latérale, haut d'écran sur téléphone, connexion, page du client. */
.marque.avec-logo{flex-direction:column;align-items:flex-start;gap:6px;padding:2px 10px 16px}
.marque.avec-logo .logo-garage{width:100%;max-width:190px;height:auto;border-radius:0}
.tete-mobile{display:none}
@media (max-width:860px){
  .app{flex-direction:column}
  .tete-mobile{display:flex;align-items:center;justify-content:center;background:var(--carte);border-bottom:1px solid var(--ligne);padding:10px 16px}
  :root[data-marque="renault"] .tete-mobile{border-top:4px solid var(--accent)}
  .tete-mobile .logo-garage{height:44px;width:auto;max-width:70%}
}
.connexion .logo-connexion{width:220px;max-width:80%;height:auto;margin:0 auto 6px;display:block;border-radius:0}
.logo-client{display:block;height:56px;width:auto;max-width:70%;margin:0 0 10px}

/* Installer l'application (14/11/2026) */
.install-tete{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.install-tete img{width:64px;height:64px;border-radius:14px;box-shadow:var(--ombre)}
.install-tete b{display:block;font-size:18px}
.install-tete span{color:var(--gris);font-size:14px}
.etapes-install{margin:6px 0 14px;padding-left:22px;line-height:1.7}
.etapes-install svg{width:18px;height:18px;vertical-align:-3px}

/* Relecture d'interface du 14/11/2026 (GPT, Gemini), corrections retenues après vérification sur les écrans réels. */
/* Zones tactiles : 44 px au moins pour les liens et les cases « offert ». */
/* Liens isolés (« Voir le planning », « Annuler la réservation »…) : 44 px ; un lien dans une phrase ou une fiche reste en ligne. */
.lien,.lien-suite{min-height:44px;display:inline-flex;align-items:center}
.paires .lien,.bandeau .lien,.facture .lien,.petit .lien{min-height:0;display:inline}
.case.mini{min-height:44px;padding:0 4px;font-size:14px;gap:8px;cursor:pointer}
.case.mini input{width:22px;height:22px}
/* Lignes à reporter sur l'OR : en lignes lisibles sur téléphone (prestation et montant, payeur et « offert » dessous). */
@media (max-width:620px){
  .or-lignes thead{display:none}
  .or-lignes,.or-lignes tbody{display:block}
  .or-lignes tr{display:grid;grid-template-columns:1fr auto;gap:2px 14px;padding:12px 0;border-bottom:1px solid var(--ligne)}
  .or-lignes td{display:block;padding:0;border:0}
  .or-lignes td:nth-child(1){grid-column:1;grid-row:1;font-size:15.5px}
  .or-lignes td:nth-child(2){grid-column:1;grid-row:2;color:var(--gris);font-size:13.5px}
  .or-lignes td:nth-child(2):not(:empty)::before{content:"Payeur : "}
  .or-lignes td.mt{grid-column:2;grid-row:1;font-size:16.5px;font-weight:700}
  .or-lignes td:nth-child(4){grid-column:2;grid-row:2;justify-self:end}
}
/* Thème Renault : bandeaux et étiquettes dans la charte (blanc, noir, jaune), contraste du texte relevé. */
:root[data-marque="renault"]{--ambre:#000000;--ambre-clair:#FFF7B3}
:root[data-marque="renault"] .bandeau.att{box-shadow:inset 4px 0 0 var(--accent)}
:root[data-marque="renault"] .bandeau.info{background:#F2F2F2;color:#000;box-shadow:inset 4px 0 0 #000}
:root[data-marque="renault"] .pill.att{background:#FFF1A1;color:#000}
:root[data-marque="renault"] .champ input,:root[data-marque="renault"] .champ select,:root[data-marque="renault"] .champ textarea,:root[data-marque="renault"] .recherche input{border-color:#BBBCBC}
/* Pendant la remise et le retour, pas de barre du bas. */
@media (max-width:860px){
  body.tunnel .bas{display:none}
  body.tunnel .contenu{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
  body.tunnel .pied-etape{bottom:calc(8px + env(safe-area-inset-bottom))}
}

/* Conditions générales à l'étape de signature (14/11/2026) */
.conditions{max-height:340px;overflow-y:auto;border:1px solid var(--ligne);border-radius:10px;padding:10px 14px;background:var(--fond);margin-bottom:6px}
.conditions h3{font-size:13.5px;text-transform:uppercase;letter-spacing:.3px;margin:12px 0 4px}
.conditions p{font-size:13.5px;line-height:1.5;margin:0 0 8px;text-align:justify;hyphens:auto}
.sous-titre{font-size:14px;margin:18px 0 8px}
.alerte-aide{color:var(--rouge)}

/* Viseur des photos d'état des lieux, plein écran (14/11/2026) */
#ph_suite{margin-bottom:12px;width:100%}
body.viseur-ouvert{overflow:hidden}
.viseur{position:fixed;inset:0;z-index:100;background:#000;display:flex;flex-direction:column}
.viseur video{flex:1;width:100%;height:100%;object-fit:cover;min-height:0}
.viseur.flash::after{content:"";position:absolute;inset:0;background:#fff;opacity:.7}
.vs-haut{position:absolute;top:0;left:0;right:0;padding:calc(14px + env(safe-area-inset-top)) 18px 14px;background:linear-gradient(rgba(0,0,0,.65),transparent);color:#fff;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.vs-haut b{font-size:24px}
.vs-haut span{font-size:16px;opacity:.85}
.vs-haut small{flex-basis:100%;font-size:13px;opacity:.8}
.vs-bas{position:absolute;left:0;right:0;bottom:0;padding:16px 18px calc(18px + env(safe-area-inset-bottom));background:linear-gradient(transparent,rgba(0,0,0,.7));display:grid;grid-template-columns:1fr auto 1fr;align-items:center}
.vs-annuler{justify-self:start;background:none;border:0;color:#fff;font-size:16px;padding:12px 6px;min-height:44px}
.vs-declencheur{width:76px;height:76px;border-radius:50%;border:5px solid #fff;background:var(--accent,#EFDF00);box-shadow:0 0 0 3px rgba(0,0,0,.3)}
.vs-declencheur:active{transform:scale(.92)}
.vs-vignettes{justify-self:end;display:flex;gap:4px}
.vs-vignettes img{width:38px;height:38px;object-fit:cover;border-radius:6px;border:2px solid #fff}

/* Refus à la validation de la remise : panneau qui reste (14/11/2026) */
.carte.echec{border:1.5px solid var(--accent,#a35f00)}
.carte.echec .actions{flex-wrap:wrap}

/* Viseur du permis : cadre au format carte (85,6 × 54 mm) pour guider la prise (14/11/2026) */
#perm_suite,#c_perm{width:100%;margin-bottom:12px}
.viseur .vs-cadre{position:absolute;left:50%;top:50%;width:min(86vw,560px);aspect-ratio:85.6/54;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:14px;box-shadow:0 0 0 100vmax rgba(0,0,0,.45);pointer-events:none}
