/* Socle visuel des maquettes — outil éco-PTZ MEV */
:root{
  --encre:#1c1c1c; --gris:#666; --gris-clair:#999; --trait:#d8d8d8;
  --fond:#f5f4f1; --carte:#fff; --primaire:#2c5f8a; --primaire-fonce:#1e4260;
  --st-attente:#ececec; --st-analyse:#dbe7f5; --st-averifier:#ffe9a8;
  --st-incomplet:#ffd6d6; --st-valide:#d8f0d8; --st-echec:#f3c1c1;
  --rouge:#c0392b; --ok:#2e7d43;
}
*{box-sizing:border-box}
body{margin:0;background:var(--fond);color:var(--encre);
  font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--primaire)}
/* Barre d'application commune */
.appbar{display:flex;align-items:center;gap:16px;background:var(--carte);
  border-bottom:1px solid var(--trait);padding:10px 22px;position:sticky;top:0}
.appbar .logo{font-weight:700;white-space:nowrap}
.appbar .logo span{color:var(--primaire)}
.recherche{flex:0 1 320px;border:1px solid var(--trait);border-radius:18px;
  padding:6px 14px;color:var(--gris-clair);background:var(--fond)}
.cloche{position:relative;border:1px solid var(--trait);border-radius:18px;
  padding:6px 12px;background:var(--carte);cursor:pointer}
.cloche .badge-notif{position:absolute;top:-7px;right:-7px;background:var(--rouge);
  color:#fff;border-radius:10px;font-size:11px;padding:1px 6px;font-weight:600}
.spacer{flex:1}
/* Boutons */
.btn{display:inline-block;border:1px solid var(--trait);border-radius:6px;
  padding:6px 14px;background:var(--carte);cursor:pointer;font-size:14px;
  white-space:nowrap;color:var(--encre);text-decoration:none}
.btn:hover{border-color:var(--gris)}
.btn-principal{background:var(--primaire);border-color:var(--primaire);color:#fff}
.btn-principal:hover{background:var(--primaire-fonce)}
.btn-danger{border-color:var(--rouge);color:var(--rouge)}
.btn-petit{padding:2px 10px;font-size:12.5px}
/* Badges de statut */
.badge{display:inline-block;border-radius:11px;padding:2px 10px;font-size:12.5px;
  white-space:nowrap;border:1px solid rgba(0,0,0,.15)}
.st-attente{background:var(--st-attente)} .st-analyse{background:var(--st-analyse)}
.st-averifier{background:var(--st-averifier)} .st-incomplet{background:var(--st-incomplet)}
.st-valide{background:var(--st-valide)} .st-echec{background:var(--st-echec)}
.badge-terminee{background:var(--st-valide)}
/* Cartes, tableaux, listes */
.carte{background:var(--carte);border:1px solid var(--trait);border-radius:10px}
.table{width:100%;border-collapse:collapse}
.table th{font-size:11.5px;color:var(--gris-clair);text-transform:uppercase;
  letter-spacing:.04em;text-align:left;padding:8px 14px;border-bottom:1px solid var(--trait)}
.table td{padding:10px 14px;border-bottom:1px solid #eee;vertical-align:middle}
.table tr.cliquable:hover td{background:#f7f9fb;cursor:pointer}
.table tr.terminee td{opacity:.55}
/* Barre de progression */
.progression{display:flex;align-items:center;gap:8px}
.progression .rail-prog{width:90px;height:8px;border-radius:4px;background:#e6e6e6;overflow:hidden}
.progression .rail-prog>div{height:100%;background:var(--primaire)}
.progression small{color:var(--gris);font-size:12px}
/* Modales */
.voile{position:fixed;inset:0;background:rgba(20,20,20,.45);
  display:flex;align-items:center;justify-content:center;padding:24px}
.modale{background:var(--carte);border-radius:10px;max-width:560px;width:100%;
  max-height:92vh;overflow:auto;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.modale header{display:flex;justify-content:space-between;align-items:center;
  padding:14px 20px;border-bottom:1px solid var(--trait);font-weight:600}
.modale .corps{padding:16px 20px;display:flex;flex-direction:column;gap:14px}
.modale footer{display:flex;justify-content:flex-end;gap:10px;
  padding:14px 20px;border-top:1px solid var(--trait)}
/* Formulaires */
.champ label{display:block;font-size:11.5px;color:var(--gris);text-transform:uppercase;
  letter-spacing:.04em;margin-bottom:4px}
.champ input,.champ textarea,.champ select{width:100%;border:1px solid var(--trait);
  border-radius:6px;padding:7px 10px;font:inherit;background:#fff}
/* Champs d'extraction (écran 1d) */
.donnee{border:1px solid var(--trait);border-radius:6px;padding:5px 9px;font-size:13.5px}
.donnee .cle{color:var(--gris);font-size:11px;display:block}
.donnee.douteux{border-color:var(--rouge);background:#ffecec}
.donnee.corrige{border-color:var(--ok);background:#eef8f0}
.donnee.absent{border-style:dashed;color:var(--gris-clair);background:transparent}
/* Zone de dépôt */
.drop{border:2px dashed var(--gris-clair);border-radius:8px;padding:26px 14px;
  text-align:center;color:var(--gris);background:#fafafa}
.drop.inactif{opacity:.45}
/* Onglets */
.onglets{display:flex;border-bottom:1px solid var(--trait);font-size:14px}
.onglets .onglet{padding:9px 18px;color:var(--gris);cursor:pointer;white-space:nowrap}
.onglets .onglet.actif{color:var(--encre);font-weight:600;
  border-bottom:3px solid var(--primaire);background:#fbfbfb}
.onglets .pastille{background:var(--rouge);color:#fff;border-radius:9px;
  font-size:10.5px;padding:0 6px;margin-left:4px}
/* Alertes de cohérence */
.ligne-coherence{display:flex;gap:8px;align-items:flex-start;padding:7px 10px;
  border-radius:6px;font-size:13.5px;margin-bottom:6px}
.ligne-coherence.alerte{background:#fff4f4;border:1px solid #f0c8c8}
.ligne-coherence.rouge{background:#ffe3e3;border:1.5px solid var(--rouge);font-weight:600}
.ligne-coherence.confirmation{background:#f2faf3;border:1px solid #cfe8d4}
/* Divers */
.etiquette{font-size:11px;color:var(--gris-clair);text-transform:uppercase;letter-spacing:.05em}
.commentaire{border:1px solid var(--trait);border-radius:6px;padding:7px 10px;
  font-size:13.5px;margin-bottom:6px;background:#fff}
.commentaire b{font-size:13px}
.note-maquette{position:fixed;bottom:10px;right:12px;font-size:11px;color:#b6b0a4}
