/* =====================================================================
   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)}

/* Tableau de bord (statistiques) */
.es-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .9rem; margin-bottom: 1.2rem; }
.es-stat { background: var(--carbone); border: 1px solid var(--tole); border-radius: var(--r-l); padding: 1.1rem 1.2rem; }
.es-stat span { display: block; color: var(--fumee); font-size: .78rem; margin-bottom: .35rem; }
.es-stat b { font-family: var(--f-titre); font-weight: 800; font-size: 1.5rem; color: var(--craie); }
.es-srow { display: grid; grid-template-columns: 1fr auto auto auto; gap: .6rem; align-items: center; padding: .65rem 0; border-bottom: 1px solid var(--carbone-2); font-size: .85rem; color: var(--fumee); }
.es-srow:last-child { border-bottom: 0; }
.es-srow--tete { color: var(--fumee-2); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.es-srow__v { color: var(--craie); font-weight: 600; }
.es-srow__ca { color: var(--or); font-weight: 700; text-align: right; min-width: 70px; }
.es-srow > span:not(.es-srow__v):not(.es-srow__ca) { text-align: right; min-width: 50px; }
.es-bars { display: flex; align-items: flex-end; gap: .35rem; height: 150px; padding-top: .5rem; }
.es-bar { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: flex-end; height: 100%; gap: .4rem; }
.es-bar__col { width: 100%; max-width: 26px; background: linear-gradient(180deg, var(--or), #9a7735); border-radius: 4px 4px 0 0; min-height: 3px; }
.es-bar span { font-size: .6rem; color: var(--fumee-2); }

/* Planning */
.es-plan__l { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem 0; border-bottom: 1px solid var(--carbone-2); font-size: .85rem; flex-wrap: wrap; }
.es-plan__l:last-child { border-bottom: 0; }
.es-plan__d { color: var(--craie); font-weight: 600; }
.es-plan__q { color: var(--fumee); }
.es-plan__l.est-encours { background: rgba(203,161,78,.07); margin: 0 -.5rem; padding: .6rem .5rem; border-radius: 8px; }
.es-plan__l.est-encours .es-plan__q { color: var(--or); font-weight: 600; }

/* Poste de pilotage (cockpit) */
.es-stat--or { border-color: rgba(203,161,78,.4); background: radial-gradient(120% 140% at 0% 0%, rgba(203,161,78,.12), transparent 60%), var(--carbone); }
.es-stat--or b { color: var(--or); }
.es-todo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 0; border-bottom: 1px solid var(--carbone-2); flex-wrap: wrap; }
.es-todo:last-child { border-bottom: 0; }
.es-todo__n { font-family: var(--f-titre); font-weight: 700; font-size: .95rem; color: var(--craie); }
.es-todo__m { font-size: .82rem; color: var(--fumee); margin-top: .15rem; }
.es-todo__a { display: flex; gap: .5rem; }
.es-veh--statut { width: 100%; text-align: left; cursor: pointer; }
.es-veh__fl { color: var(--fumee-2); margin-left: auto; }
.es-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; display: inline-block; }
.es-dot--libre { background: #3ea66b; box-shadow: 0 0 0 3px rgba(62,166,107,.15); }
.es-dot--loue { background: #d98a3a; box-shadow: 0 0 0 3px rgba(217,138,58,.15); }
.es-dot--reserve { background: var(--or); box-shadow: 0 0 0 3px rgba(203,161,78,.15); }

/* Bandeau flottant (retour toujours visible) */
.es-toast { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 9999; max-width: 90%; padding: .8rem 1.2rem; border-radius: 12px; font-size: .9rem; font-weight: 600; color: var(--craie); background: var(--carbone); border: 1px solid var(--tole); box-shadow: 0 12px 44px rgba(0,0,0,.55); opacity: 0; transition: opacity .25s; pointer-events: none; text-align: center; }
.es-toast--ok { border-color: rgba(62,166,107,.55); }
.es-toast--err { border-color: rgba(217,90,60,.65); color: #ffd9d0; }

/* Statut partiel (dot) */
.es-dot--partiel { background: #d98a3a; box-shadow: 0 0 0 3px rgba(217,138,58,.15); }

/* Calendrier de disponibilité */
.es-cal { margin-top: .3rem; }
.es-cal__tete { display: flex; align-items: center; justify-content: space-between; margin-bottom: .8rem; }
.es-cal__tete b { font-family: var(--f-titre); font-weight: 700; font-size: 1rem; text-transform: capitalize; }
.es-cal__nav { width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--tole); background: var(--carbone-2); color: var(--craie); font-size: 1.2rem; line-height: 1; cursor: pointer; }
.es-cal__nav:hover { border-color: var(--or); color: var(--or); }
.es-cal__jours { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 4px; }
.es-cal__jours span { text-align: center; font-size: .66rem; color: var(--fumee-2); text-transform: uppercase; letter-spacing: .05em; padding: .2rem 0; }
.es-cal__grille { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.es-cal__c { aspect-ratio: 1 / 1; display: grid; place-items: center; border-radius: 8px; font-size: .82rem; font-weight: 600; border: 1px solid transparent; }
.es-cal__c--vide { background: transparent; }
.es-cal__c--libre { background: var(--carbone-2); color: var(--fumee); border-color: var(--tole); }
.es-cal__c--partiel { background: rgba(217,138,58,.22); color: #f0b47a; border-color: rgba(217,138,58,.5); }
.es-cal__c--complet { background: rgba(200,60,50,.28); color: #ff9d92; border-color: rgba(200,60,50,.55); }
.es-cal__c.est-auj { outline: 2px solid var(--or); outline-offset: 1px; }
.es-cal__legende { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: .9rem; font-size: .76rem; color: var(--fumee); }
.es-cal__legende span { display: inline-flex; align-items: center; gap: .4rem; }
.es-pt { width: 11px; height: 11px; border-radius: 3px; display: inline-block; }
.es-pt--libre { background: var(--carbone-2); border: 1px solid var(--tole); }
.es-pt--partiel { background: rgba(217,138,58,.5); }
.es-pt--complet { background: rgba(200,60,50,.6); }

/* Bloc tarifs dans la fiche véhicule */
.es-tarifs { border: 1px solid var(--tole); border-radius: 12px; padding: .9rem; margin: .2rem 0 .3rem; background: var(--carbone-2); }
.es-tarifs__t { font-family: var(--f-titre); font-weight: 700; font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--or); margin-bottom: .7rem; }
.es-tarifs__aide { font-size: .72rem; color: var(--fumee-2); margin-top: .5rem; line-height: 1.4; }

/* Dossier de location — documents */
.es-doc-sec { margin-bottom: 1.1rem; }
.es-doc-sec__t { display: flex; align-items: center; justify-content: space-between; gap: 1rem; font-size: .82rem; font-weight: 600; color: var(--fumee); margin-bottom: .5rem; }
.es-doc-sec__t span { text-transform: uppercase; letter-spacing: .04em; font-size: .72rem; color: var(--fumee-2); }
.es-doc { display: flex; align-items: center; gap: .7rem; padding: .6rem .75rem; background: var(--carbone-2); border: 1px solid var(--tole); border-radius: 10px; margin-bottom: .5rem; }
.es-doc__ic { flex: none; width: 40px; height: 40px; border-radius: 8px; display: grid; place-items: center; font-family: var(--f-titre); font-weight: 700; font-size: .62rem; letter-spacing: .04em; }
.es-doc__ic--pdf { background: rgba(200,60,50,.18); color: #ff9d92; border: 1px solid rgba(200,60,50,.4); }
.es-doc__ic--img { background: rgba(62,120,180,.18); color: #8fc0f0; border: 1px solid rgba(62,120,180,.4); }
.es-doc__c { flex: 1 1 auto; min-width: 0; }
.es-doc__t { font-weight: 600; color: var(--craie); font-size: .9rem; }
.es-doc__m { font-size: .76rem; color: var(--fumee-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.es-doc__voir { flex: none; background: transparent; border: 1px solid var(--tole); color: var(--craie); border-radius: 8px; padding: .35rem .8rem; font-size: .8rem; font-weight: 600; cursor: pointer; }
.es-doc__voir:hover { border-color: var(--or); color: var(--or); }
.es-doc__x { flex: none; width: 30px; height: 30px; border-radius: 8px; border: 1px solid var(--tole); background: transparent; color: var(--fumee-2); font-size: 1.1rem; line-height: 1; cursor: pointer; }
.es-doc__x:hover { color: #ff9d92; border-color: rgba(200,60,50,.5); }
.es-doc__add { flex: none; cursor: pointer; font-size: .78rem; font-weight: 600; color: var(--or); border: 1px solid rgba(203,161,78,.4); border-radius: 8px; padding: .3rem .7rem; }
.es-doc__add:hover { background: rgba(203,161,78,.1); }
.es-doc__depose { margin-top: .8rem; cursor: pointer; text-align: center; }
.es-doc-vide { font-size: .82rem; color: var(--fumee-2); padding: .5rem .2rem; }
.es-doc-note { font-size: .74rem; color: var(--fumee-2); margin-top: .9rem; line-height: 1.45; }
.es-client__docs { flex: none; background: transparent; border: 1px solid var(--tole); color: var(--craie); border-radius: 8px; padding: .35rem .8rem; font-size: .8rem; font-weight: 600; cursor: pointer; }
.es-client__docs:hover { border-color: var(--or); color: var(--or); }

/* État des lieux — galerie photos */
.es-photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 8px; }
.es-photo { position: relative; aspect-ratio: 1/1; border-radius: 10px; overflow: hidden; border: 1px solid var(--tole); background: var(--carbone-2); }
.es-photo__img { width: 100%; height: 100%; object-fit: cover; cursor: zoom-in; display: block; }
.es-photo__ph { width: 100%; height: 100%; display: grid; place-items: center; color: var(--fumee-2); font-size: .8rem; }
.es-photo__x { position: absolute; top: 5px; right: 5px; width: 26px; height: 26px; border-radius: 50%; border: none; background: rgba(4,4,6,.7); color: #fff; font-size: 1rem; line-height: 1; cursor: pointer; display: grid; place-items: center; }
.es-photo__x:hover { background: rgba(200,60,50,.9); }
.es-loc__etat { background: transparent; border: 1px solid var(--tole); color: var(--craie); border-radius: 8px; padding: .4rem .8rem; font-size: .8rem; font-weight: 600; cursor: pointer; }
.es-loc__etat:hover { border-color: var(--or); color: var(--or); }

/* État des lieux regroupé dans le dossier client */
.es-etat-loc { border: 1px solid var(--tole); border-radius: 10px; padding: .8rem; margin-bottom: .8rem; background: var(--carbone-2); }
.es-etat-loc__t { display: flex; align-items: center; justify-content: space-between; gap: .8rem; margin-bottom: .6rem; }
.es-etat-loc__t span { font-size: .82rem; font-weight: 600; color: var(--craie); }

/* Case de consentement RGPD à l'inscription */
.es-consent { display: flex; align-items: flex-start; gap: .6rem; margin: .2rem 0 1.1rem; cursor: pointer; }
.es-consent input { margin-top: .2rem; width: 18px; height: 18px; flex: none; accent-color: var(--or); }
.es-consent span { font-size: .82rem; color: var(--fumee); line-height: 1.5; }
.es-consent a { color: var(--or); }
