/* =====================================================================
   ALBAKOCARS — Espace client (styles autonomes, noir + or)
   ===================================================================== */
:root{
  --bitume:#0b0b0d; --carbone:#161619; --carbone-2:#1d1d21; --tole:#2a2a30; --tole-2:#3a3a42;
  --or:#cba14e; --or-clair:#e3c383; --or-sombre:#a8803a; --sport:#e2362b; --sport-clair:#ff5347;
  --craie:#f3efe6; --fumee:#97938b; --fumee-2:#6d6a64; --vert:#3fbf7f;
  --f-display:'Archivo Expanded','Archivo',system-ui,sans-serif;
  --f-titre:'Archivo',system-ui,sans-serif; --f-corps:'Inter',system-ui,-apple-system,sans-serif;
  --r-s:10px; --r-m:16px; --r-l:22px;
  --t:.22s cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--f-corps);background:var(--bitume);color:var(--craie);line-height:1.6;-webkit-font-smoothing:antialiased;min-height:100vh}
img{display:block;max-width:100%}
a{color:var(--or);text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer;background:none;border:none}
ul{list-style:none}
input,select,textarea{font:inherit;color:inherit;width:100%}
:focus-visible{outline:2px solid var(--or-clair);outline-offset:3px;border-radius:4px}
::selection{background:var(--or);color:var(--bitume)}

.es-boot{min-height:100vh;display:grid;place-items:center;gap:1rem;color:var(--fumee);font-size:.9rem}
.es-boot__spin,.es-spin{width:26px;height:26px;border:2px solid var(--tole);border-top-color:var(--or);border-radius:50%;animation:tourne .8s linear infinite;display:inline-block}
@keyframes tourne{to{transform:rotate(360deg)}}

/* ---------- Typo ---------- */
.es-eyebrow{font-family:var(--f-titre);font-weight:600;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--or)}
.es-h1{font-family:var(--f-display);font-weight:800;font-size:clamp(1.7rem,5vw,2.4rem);text-transform:uppercase;line-height:1;letter-spacing:-.01em}
.es-h2{font-family:var(--f-titre);font-weight:700;font-size:1.15rem}
.es-lede{color:var(--fumee);font-size:.95rem}

/* ---------- Boutons ---------- */
.es-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5ch;min-height:50px;padding:.9rem 1.5rem;background:var(--or);color:var(--bitume);font-family:var(--f-titre);font-weight:700;font-size:.95rem;border-radius:var(--r-m);transition:transform var(--t),box-shadow var(--t),background var(--t);text-align:center}
.es-btn:hover{transform:translateY(-2px);box-shadow:0 12px 26px -12px rgba(203,161,78,.6)}
.es-btn:active{transform:translateY(0)}
.es-btn--bloc{width:100%}
.es-btn--ghost{background:transparent;color:var(--craie);border:1px solid var(--tole-2)}
.es-btn--ghost:hover{border-color:var(--or);color:var(--or);box-shadow:none}
.es-btn--doux{background:var(--carbone-2);color:var(--craie);border:1px solid var(--tole);min-height:42px;padding:.5rem 1rem;font-size:.85rem}
.es-btn--doux:hover{border-color:var(--tole-2);box-shadow:none;transform:none}
.es-btn--danger{background:transparent;color:var(--sport-clair);border:1px solid rgba(226,54,43,.4);min-height:42px;padding:.5rem 1rem;font-size:.85rem}
.es-btn:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}

/* ---------- Authentification ---------- */
.es-auth{min-height:100vh;display:grid;place-items:center;padding:1.5rem}
.es-auth__glow{position:fixed;inset:-30% -10% auto -10%;height:60%;background:radial-gradient(60% 80% at 70% 10%,rgba(203,161,78,.14),transparent 60%);pointer-events:none}
.es-card{position:relative;width:min(440px,100%);background:var(--carbone);border:1px solid var(--tole);border-radius:var(--r-l);padding:clamp(1.5rem,5vw,2.2rem);text-align:center}
.es-card__logo{width:200px;height:auto;margin:0 auto 1.2rem}
.es-card .es-h1{margin-bottom:.4rem}
.es-card .es-lede{margin-bottom:1.5rem}

.es-form{display:grid;gap:1rem;text-align:left}
.es-champ{display:grid;gap:.4rem}
.es-champ label{font-family:var(--f-titre);font-weight:600;font-size:.82rem}
.es-champ input,.es-champ select,.es-champ textarea{background:var(--bitume);border:1px solid var(--tole);border-radius:var(--r-s);padding:.8rem .9rem;min-height:48px;transition:border-color var(--t)}
.es-champ textarea{min-height:70px;resize:vertical}
.es-champ input:focus,.es-champ select:focus,.es-champ textarea:focus{outline:none;border-color:var(--or)}
.es-champ input::placeholder{color:var(--fumee-2)}
.es-champ select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath fill='%2397938b' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.4rem}
.es-pass{position:relative}
.es-pass button{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);color:var(--fumee);font-size:.78rem;padding:.3rem}
.es-msg{border-radius:var(--r-s);padding:.75rem .9rem;font-size:.85rem;text-align:left}
.es-msg--erreur{background:rgba(226,54,43,.1);border:1px solid rgba(226,54,43,.35);color:var(--sport-clair)}
.es-msg--info{background:rgba(203,161,78,.1);border:1px solid rgba(203,161,78,.35);color:var(--or-clair)}
.es-msg--ok{background:rgba(63,191,127,.1);border:1px solid rgba(63,191,127,.35);color:var(--vert)}
.es-sep{margin:1.3rem 0 1rem;border-top:1px solid var(--tole);position:relative}
.es-link{color:var(--or);font-family:var(--f-titre);font-weight:600;font-size:.88rem;background:none}
.es-switch{margin-top:1.2rem;font-size:.88rem;color:var(--fumee)}

/* ---------- En-tête espace ---------- */
.es-head{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bitume) 85%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--tole)}
.es-head__in{width:min(1000px,100% - 2rem);margin-inline:auto;height:62px;display:flex;align-items:center;justify-content:space-between;gap:1rem}
.es-brand{display:inline-flex;align-items:center;gap:.55rem}
.es-brand img{width:30px;height:30px}
.es-brand b{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:1rem;letter-spacing:.02em}
.es-brand b i{color:var(--or);font-style:normal}
.es-head__act{display:flex;align-items:center;gap:.5rem}
.es-tag{font-family:var(--f-titre);font-weight:700;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .6rem;border-radius:100px;border:1px solid var(--or-sombre);color:var(--or)}
.es-logout{color:var(--fumee);font-size:.85rem;font-family:var(--f-titre);font-weight:600}
.es-logout:hover{color:var(--craie)}

/* ---------- Page ---------- */
.es-page{width:min(1000px,100% - 2rem);margin-inline:auto;padding-block:clamp(1.5rem,5vw,2.5rem)}
.es-page__tete{margin-bottom:1.8rem}
.es-page__tete .es-h1{margin-top:.3rem}
.es-grid{display:grid;gap:1.25rem}
@media(min-width:820px){.es-grid--2{grid-template-columns:1fr 1fr;align-items:start}}
.es-bloc{background:var(--carbone);border:1px solid var(--tole);border-radius:var(--r-l);padding:1.4rem}
.es-bloc__t{font-family:var(--f-titre);font-weight:700;font-size:1rem;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}

/* ---------- Carte de fidélité (dynamique) ---------- */
.es-carte{position:relative;aspect-ratio:1.586;border-radius:var(--r-l);padding:clamp(1.1rem,4vw,1.6rem);background:radial-gradient(120% 140% at 85% -10%,rgba(203,161,78,.22),transparent 45%),linear-gradient(155deg,#17171b,#0c0c0e 70%);border:1px solid var(--tole-2);display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;box-shadow:0 24px 60px -24px rgba(0,0,0,.9)}
.es-carte__haut{display:flex;justify-content:space-between;align-items:flex-start}
.es-carte__marque{font-family:var(--f-display);font-weight:800;text-transform:uppercase;letter-spacing:.03em;font-size:1rem}
.es-carte__marque i{color:var(--or);font-style:normal}
.es-carte__type{font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fumee);margin-top:.2rem}
.es-carte__puce{width:36px;height:27px;border-radius:6px;background:linear-gradient(135deg,var(--or-clair),var(--or-sombre))}
.es-carte__jauge{display:flex;gap:4px;margin:.3rem 0}
.es-carte__pas{flex:1;height:7px;border-radius:3px;background:rgba(255,255,255,.08)}
.es-carte__pas.est-plein{background:linear-gradient(90deg,var(--or),var(--or-clair))}
.es-carte__bas{display:flex;justify-content:space-between;align-items:flex-end}
.es-carte__offre b{font-family:var(--f-display);font-weight:800;font-size:1.4rem;color:var(--or);display:block;line-height:1}
.es-carte__offre span{font-size:.64rem;color:var(--fumee);letter-spacing:.05em}
.es-carte__compte{text-align:right}
.es-carte__compte b{font-family:var(--f-titre);font-weight:800;font-size:1.2rem}
.es-carte__compte span{display:block;font-size:.56rem;letter-spacing:.14em;text-transform:uppercase;color:var(--fumee-2)}
.es-fid-note{margin-top:1rem;font-size:.82rem;color:var(--fumee);text-align:center}
.es-fid-note b{color:var(--or)}

/* ---------- Historique / listes ---------- */
.es-loc{display:flex;align-items:center;gap:1rem;padding:.9rem 0;border-bottom:1px solid var(--carbone-2)}
.es-loc:last-child{border-bottom:0}
.es-loc__ic{width:38px;height:38px;flex:0 0 auto;border-radius:10px;background:var(--carbone-2);display:grid;place-items:center;color:var(--or)}
.es-loc__c{flex:1;min-width:0}
.es-loc__v{font-family:var(--f-titre);font-weight:700;font-size:.95rem}
.es-loc__d{font-size:.8rem;color:var(--fumee)}
.es-loc__meta{text-align:right;flex:0 0 auto}
.es-loc__prix{font-family:var(--f-titre);font-weight:700;font-variant-numeric:tabular-nums}
.es-badge{font-size:.62rem;font-family:var(--f-titre);font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:.22rem .55rem;border-radius:100px;white-space:nowrap}
.es-badge--confirmee{background:rgba(203,161,78,.15);color:var(--or-clair)}
.es-badge--terminee{background:rgba(63,191,127,.15);color:var(--vert)}
.es-badge--annulee{background:rgba(226,54,43,.12);color:var(--sport-clair)}

.es-vide{padding:2rem 1rem;text-align:center;color:var(--fumee-2);font-size:.9rem;border:1px dashed var(--tole);border-radius:var(--r-m)}
.es-soon{margin-top:1rem;font-size:.8rem;color:var(--fumee-2);display:flex;align-items:center;gap:.5rem}
.es-soon b{color:var(--fumee);font-weight:600}

/* ---------- Admin ---------- */
.es-tabs{display:flex;gap:.4rem;margin-bottom:1.5rem;flex-wrap:wrap}
.es-tab{font-family:var(--f-titre);font-weight:600;font-size:.85rem;padding:.5rem 1rem;border-radius:100px;border:1px solid var(--tole);color:var(--fumee)}
.es-tab.est-actif{background:var(--craie);color:var(--bitume);border-color:var(--craie)}
.es-client{display:flex;align-items:center;gap:.9rem;padding:.85rem 0;border-bottom:1px solid var(--carbone-2)}
.es-client:last-child{border-bottom:0}
.es-ava{width:38px;height:38px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;font-family:var(--f-titre);font-weight:800;font-size:.85rem;color:var(--bitume)}
.es-client__c{flex:1;min-width:0}
.es-client__n{font-family:var(--f-titre);font-weight:700;font-size:.92rem}
.es-client__m{font-size:.78rem;color:var(--fumee)}
.es-client__stat{text-align:right;font-size:.8rem;color:var(--fumee);flex:0 0 auto}
.es-client__stat b{color:var(--or);font-family:var(--f-titre)}
.es-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.5rem;justify-content:flex-end}
.es-lab{font-family:var(--f-titre);font-weight:600;font-size:.8rem;display:block;margin-bottom:.4rem}
.es-form--admin{display:grid;gap:.9rem}
.es-duo{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
@media(max-width:440px){.es-duo{grid-template-columns:1fr}}

/* ---------- Flotte (back-office) ---------- */
.es-veh{display:flex;align-items:center;gap:.9rem;padding:.7rem 0;border-bottom:1px solid var(--carbone-2)}
.es-veh:last-child{border-bottom:0}
.es-veh__thumb{width:64px;height:44px;flex:0 0 auto;border-radius:8px;object-fit:cover;background:var(--carbone-2);border:1px solid var(--tole)}
.es-veh__thumb--vide{display:grid;place-items:center;color:var(--fumee-2);font-size:1rem}
.es-veh__c{flex:1;min-width:0}
.es-veh__n{font-family:var(--f-titre);font-weight:700;font-size:.92rem}
.es-veh__m{font-size:.8rem;color:var(--fumee)}
.es-check input{accent-color:var(--or)}
