:root{
  --paper:#f5f1ea; --ink:#232019; --muted:#8a8172; --accent:#3c6e71; --line:#e3dccd;
  --fond:var(--paper); --texte:var(--ink); --faible:var(--muted); --ligne:var(--line);
  --marque:var(--accent); --sur-marque:#f2f8f8; --sur-accent:#f2f8f8;
  --accent-vif:#468386;
  --accent-faible:rgba(60,110,113,.09); --accent-ligne:rgba(60,110,113,.34);
  --surface:#ffffff; --doux:#4a544f;
  --ok:#3f7d4e; --ok-fond:#e9f2e9; --ok-ligne:#c6ddc6;
  --attente:#a8752e; --attente-fond:#f8eeda; --attente-ligne:#ecd6a6;
  --alerte:#ab4330; --alerte-fond:#fbe9e4; --alerte-ligne:#efc3b6;
  --ease:cubic-bezier(.2,.8,.3,1);
}

/* signature : fiche de bien avec bande d'occupation */
.grille-biens{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.carte-bien{background:var(--surface);border:1px solid var(--ligne);border-radius:6px;overflow:hidden}
.carte-bien .en-tete-bien{padding:14px 16px;border-bottom:1px solid var(--ligne)}
.carte-bien h3{font-size:14.5px}
.carte-bien .adresse{font-size:11.5px;color:var(--faible);margin-top:2px}
.bande-occupation{display:flex;gap:2px;padding:12px 16px}
.bande-occupation i{flex:1;height:20px;border-radius:2px;background:var(--fond);border:1px solid var(--ligne)}
.bande-occupation i.occupe{background:var(--accent);border-color:var(--accent)}
.bande-occupation i.arrivee{background:var(--ok-fond);border-color:var(--ok-ligne)}
.carte-bien .stats-bien{display:flex;justify-content:space-between;padding:0 16px 14px;font-size:12px;color:var(--doux)}
.carte-bien .stats-bien b{font-family:"Plex Sans",sans-serif;color:var(--texte)}

.tache-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--ligne);border-radius:6px;margin-bottom:8px;background:var(--surface)}
.tache-item.fait{opacity:.55}
.tache-icone{width:34px;height:34px;border-radius:6px;background:var(--accent-faible);color:var(--marque);display:flex;align-items:center;justify-content:center;flex:none}
.tache-item .detail{flex:1;min-width:0}
.tache-item .detail strong{font-size:13.5px;display:block}
.tache-item .detail span{font-size:11.5px;color:var(--faible)}

.check-item{display:flex;align-items:center;gap:11px;padding:11px 4px;border-bottom:1px solid var(--ligne);font-size:13.5px}
.check-item:last-child{border-bottom:0}
.check-item input{width:19px;height:19px;accent-color:var(--accent)}
.check-item.coche label{text-decoration:line-through;color:var(--faible)}

/* aperçu vivant — écran de connexion */
.av-faux-case{width:19px;height:19px;border-radius:4px;border:1.6px solid var(--ligne);background:var(--surface);flex:none;position:relative}
.av-faux-case::after{content:"";position:absolute;left:5px;top:4px;width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg);opacity:0}
.check-item.coche .av-faux-case{background:var(--accent);border-color:var(--accent)}
.check-item.coche .av-faux-case::after{opacity:1}
.av-hero-actif .av-coche-anim{animation:avCocherCase .5s .6s var(--ease) both}
.av-hero-actif .av-coche-anim::after{animation:avCocherCheck .5s .6s var(--ease) both}
@keyframes avCocherCase{0%{background:var(--surface);border-color:var(--ligne)}100%{background:var(--accent);border-color:var(--accent)}}
@keyframes avCocherCheck{0%{opacity:0}100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.av-hero-actif .av-coche-anim,.av-hero-actif .av-coche-anim::after{animation:none}.av-hero-actif .av-coche-anim{background:var(--accent);border-color:var(--accent)}.av-hero-actif .av-coche-anim::after{opacity:1}}
.av-legende{margin-top:16px;font-size:12px;color:var(--faible);text-align:center}
