/* Chantier — carnet de chantier BTP.
   Concept : l'établi du chef d'équipe — fiche journalière agrafée, tampon de validation,
   réserves comme des étiquettes à lever. Style : industrial soft. */

/* signature : coin de fiche agrafé */
.entete{position:relative}
.entete::after{
  content:'';position:absolute;top:6px;right:16px;width:22px;height:22px;background:
    radial-gradient(circle at 30% 30%, #c9c2b2 0 2px, transparent 2.4px),
    radial-gradient(circle at 70% 70%, #c9c2b2 0 2px, transparent 2.4px);
  opacity:.7;pointer-events:none;
}

.jour-badge{
  display:inline-flex;align-items:center;gap:6px;background:var(--ink);color:var(--paper);font-size:12px;
  font-weight:700;padding:5px 10px;border-radius:var(--radius-s);
}
.meteo{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);font-weight:600}
.meteo svg{width:18px;height:18px;color:var(--accent)}

.resume-grille{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-m);padding:13px}
.stat .valeur{font-family:var(--font-display);font-size:26px;font-weight:800;color:var(--ink)}
.stat .label{font-size:11.5px;color:var(--muted);font-weight:600;margin-top:2px}

.section-titre{
  font-size:12px;text-transform:uppercase;letter-spacing:.07em;font-weight:700;color:var(--muted);
  margin:20px 0 10px;
}

.vignette-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:6px}
.vignette{
  aspect-ratio:1;border-radius:var(--radius-s);border:1px solid var(--line);display:flex;align-items:center;
  justify-content:center;position:relative;overflow:hidden;
}
.vignette svg{width:26px;height:26px;opacity:.85}
.vignette.photo-reelle img{width:100%;height:100%;object-fit:cover}
.vignette .heure{
  position:absolute;bottom:4px;right:5px;font-size:9px;font-weight:700;background:rgba(0,0,0,.45);
  color:#fff;padding:1px 5px;border-radius:5px;font-variant-numeric:tabular-nums;
}
.vignette-ajouter{
  aspect-ratio:1;border-radius:var(--radius-s);border:1.6px dashed var(--line);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:4px;color:var(--muted);font-size:10.5px;font-weight:700;
  background:transparent;
}
.vignette-ajouter svg{width:20px;height:20px}
.vignette-ajouter:active{border-color:var(--accent);color:var(--accent)}

.compagnon{
  display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);
}
.compagnon:last-child{border-bottom:none}
.avatar-init{
  width:40px;height:40px;border-radius:var(--radius-s);background:var(--paper);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;color:var(--ink);
  flex-shrink:0;
}
.compagnon .infos{flex:1;min-width:0}
.compagnon .nom{font-weight:700;font-size:14.5px}
.compagnon .role{font-size:12px;color:var(--muted)}
.interrupteur{
  width:50px;height:30px;border-radius:var(--radius-pill);background:var(--line);position:relative;border:none;flex-shrink:0;
  transition:background .2s ease;
}
.interrupteur::after{
  content:'';position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;
  box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .2s ease;
}
.interrupteur.on{background:var(--ink)}
.interrupteur.on::after{transform:translateX(20px)}

.reserve{
  display:flex;gap:12px;padding:13px;border:1px solid var(--line);border-radius:var(--radius-m);margin-bottom:10px;
  background:var(--paper);align-items:flex-start;
}
.reserve .pastille{
  width:10px;height:10px;border-radius:50%;margin-top:5px;flex-shrink:0;background:var(--accent);
}
.reserve.levee .pastille{background:var(--ink)}
.reserve.levee .titre-reserve{text-decoration:line-through;color:var(--muted)}
.reserve .contenu{flex:1;min-width:0}
.titre-reserve{font-weight:700;font-size:14px}
.reserve .lieu{font-size:12px;color:var(--muted);margin-top:2px}
.reserve .lever{
  flex-shrink:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-s);padding:7px 10px;
  font-size:11.5px;font-weight:700;min-height:36px;
}
.reserve.levee .lever{background:transparent;border-color:var(--ink);color:var(--ink)}

.filtre-barre{display:flex;gap:8px;margin-bottom:14px;overflow-x:auto;padding-bottom:2px}
.filtre-barre button{
  flex-shrink:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-pill);padding:7px 13px;
  font-size:12.5px;font-weight:700;color:var(--muted);min-height:36px;
}
.filtre-barre button.actif{background:var(--ink);color:var(--paper);border-color:var(--ink)}

.zone-signature{
  border:1.6px dashed var(--line);border-radius:var(--radius-m);background:var(--paper);position:relative;
  height:180px;margin:14px 0 6px;overflow:hidden;
}
.zone-signature canvas{width:100%;height:100%;touch-action:none}
.zone-signature .placeholder{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--muted);
  font-size:13px;font-weight:600;pointer-events:none;
}
.tampon{
  position:absolute;bottom:10px;right:10px;width:64px;height:64px;border-radius:50%;
  border:2px solid var(--accent);color:var(--accent);display:flex;align-items:center;justify-content:center;
  font-size:9px;font-weight:800;text-transform:uppercase;text-align:center;line-height:1.2;transform:rotate(-14deg);
  opacity:0;transition:opacity .3s ease, transform .3s ease;
}
.tampon.visible{opacity:1;transform:rotate(-8deg) scale(1)}

.recap-signature{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:var(--radius-m);background:var(--paper);margin-top:8px}
.recap-signature svg{width:26px;height:26px;color:var(--ink);flex-shrink:0}
