:root{
  --rose:#D63384; --rose-fonce:#A61E63; --rose-clair:#F8C8DC; --rose-fond:#FDF0F5;
  --argent:#C0C0C0; --argent-clair:#E5E7EB;
  --or:#D4AF37; --or-fonce:#B8860B;
  --texte:#3A2A33;
  --grad-or:linear-gradient(135deg,#F3DC8A 0%,#D4AF37 45%,#B8860B 100%);
  --grad-argent:linear-gradient(135deg,#F5F5F7 0%,#C0C0C0 50%,#9A9A9F 100%);
  --grad-rose:linear-gradient(135deg,#F06FAE 0%,#D63384 60%,#A61E63 100%);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:'Segoe UI',system-ui,-apple-system,Arial,sans-serif;color:var(--texte);
  background:radial-gradient(circle at top,#fff 0,var(--rose-fond) 60%);min-height:100vh;line-height:1.5}
.cache{display:none!important}

/* En-tête */
.entete{max-width:960px;margin:0 auto;padding:24px 16px 8px;text-align:center}
.logos{display:flex;justify-content:space-between;align-items:center;gap:16px}
.logo-slot{width:130px;height:100px;display:flex;align-items:center;justify-content:center}
.logo-slot img{max-width:100%;max-height:100px;object-fit:contain}
.logo-slot .logo-manquant{width:100%;height:100%;border:2px dashed var(--or);border-radius:10px;color:var(--or-fonce);
  font-size:11px;display:flex;align-items:center;justify-content:center;padding:6px;background:#fffdf3}
.ministere{display:flex;justify-content:space-between;gap:12px;font-size:12px;font-weight:700;letter-spacing:.02em;margin-top:6px}
.etoiles{margin:2px 0 8px;color:var(--or-fonce);letter-spacing:2px;font-size:13px}
.entete h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(17px,3.2vw,24px);margin:6px 0;line-height:1.3;
  background:var(--grad-or);-webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-text-fill-color:transparent;filter:drop-shadow(0 1px 0 rgba(0,0,0,.08))}
.entete h2{font-family:Georgia,serif;font-size:clamp(15px,2.6vw,20px);margin:4px 0;color:var(--rose-fonce)}
.dates{display:inline-block;margin:6px 0 0;padding:6px 18px;border-radius:99px;background:var(--grad-argent);font-weight:700;color:#3a2a33}

/* Onglets */
.onglets{display:flex;justify-content:center;gap:8px;margin:16px auto 0;padding:0 12px;flex-wrap:wrap}
.onglet{border:1px solid var(--argent);background:#fff;color:var(--texte);padding:10px 22px;border-radius:99px;cursor:pointer;
  font:600 14px 'Segoe UI',sans-serif}
.onglet.actif{background:var(--grad-rose);color:#fff;border-color:var(--rose-fonce);box-shadow:0 3px 10px rgba(214,51,132,.35)}
.onglet:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--or);outline-offset:2px}

main{max-width:960px;margin:0 auto;padding:16px}
.intro{text-align:justify;font-size:14px}
.justifie{text-align:justify}

/* Carte formulaire */
.carte{background:#fff;border-radius:18px;padding:22px;border:2px solid transparent;
  background-image:linear-gradient(#fff,#fff),var(--grad-or);background-origin:border-box;background-clip:padding-box,border-box;
  box-shadow:0 8px 30px rgba(214,51,132,.12)}
.etapes{list-style:none;display:flex;align-items:center;gap:8px;padding:0;margin:0 0 6px}
.pastille{display:flex;align-items:center;gap:8px;font-weight:600;color:#8a7a83}
.pastille span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--argent-clair);color:#555;border:1px solid var(--argent)}
.pastille.actif{color:var(--rose-fonce)}
.pastille.actif span{background:var(--grad-or);color:#3a2a33;border-color:var(--or-fonce)}
.pastille.fait span{background:var(--grad-rose);color:#fff;border-color:var(--rose-fonce)}
.trait{flex:1;height:3px;background:var(--grad-argent);border-radius:3px}
.etape-label{margin:0 0 14px;font-size:13px;color:#7a6b73}

.grille{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 18px}
.champ{margin-bottom:12px;border:0;padding:0;min-width:0}
fieldset.champ legend,.champ label{display:block;font-weight:600;font-size:14px;margin-bottom:5px;padding:0}
.champ b{color:var(--rose)}
input[type=text],input[type=email],input[type=tel],input[type=password],select,textarea{width:100%;padding:11px 13px;border:1.5px solid var(--argent);
  border-radius:10px;font:inherit;background:#fff;color:var(--texte)}
input:focus,select:focus,textarea:focus{border-color:var(--rose)}
.champ.invalide input,.champ.invalide select{border-color:var(--rose-fonce);background:#fff6fa}
.erreur{color:var(--rose-fonce);font-size:13px;margin:4px 0 0;min-height:0}
.erreur:empty{display:none}
.erreur.grand{font-weight:600;background:#fff0f6;border:1px solid var(--rose-clair);border-radius:8px;padding:8px 12px;margin:8px 0}
.compteur{text-align:right;font-size:12px;color:#7a6b73;margin:2px 0 0}
.piege{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.case{display:flex!important;gap:10px;align-items:flex-start;font-weight:400!important;cursor:pointer}
.case input{margin-top:4px;accent-color:var(--rose);width:18px;height:18px;flex:none}

.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-block;padding:9px 16px;border-radius:99px;border:1.5px solid var(--argent);background:#fff;cursor:pointer;font-size:14px}
.chip input:checked + span{background:var(--grad-rose);color:#fff;border-color:var(--rose-fonce);box-shadow:0 2px 8px rgba(214,51,132,.35)}
.chip input:focus-visible + span{outline:3px solid var(--or);outline-offset:2px}

.actions{display:flex;gap:10px;justify-content:space-between;margin-top:16px}
.actions.centre{justify-content:center}
.btn{border:0;border-radius:99px;padding:11px 24px;font:700 14px 'Segoe UI',sans-serif;cursor:pointer;transition:transform .1s,box-shadow .2s}
.btn:hover{transform:translateY(-1px)}
.btn:disabled{opacity:.6;cursor:wait;transform:none}
.btn.or{background:var(--grad-or);color:#3a2a33;box-shadow:0 3px 10px rgba(184,134,11,.35)}
.btn.argent{background:var(--grad-argent);color:#333}
.btn.rose{background:var(--grad-rose);color:#fff}
.btn.petit{padding:8px 14px;font-size:13px}

.confirmation{text-align:center;padding:20px 0}
.medaille{width:80px;height:80px;margin:0 auto 10px;border-radius:50%;display:grid;place-items:center;font-size:42px;color:#fff;background:var(--grad-or);box-shadow:0 6px 18px rgba(184,134,11,.4)}
.confirmation h3{font-family:Georgia,serif;font-size:28px;margin:6px 0;color:var(--rose-fonce)}

.notes{font-size:13px;margin-top:18px;color:#5a4a53}
.notes p{margin:4px 0}

/* Admin */
.login{max-width:420px;margin:30px auto}
.login h3{font-family:Georgia,serif;color:var(--rose-fonce);text-align:center;margin-top:0}
.login p{text-align:center}
.barre{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-end;margin-bottom:12px;padding:12px;border-radius:14px;background:#fff;border:1px solid var(--argent)}
.barre-gauche{display:flex;flex-direction:column;gap:4px;min-width:220px}
.barre-gauche label{font-size:13px;font-weight:600}
.barre-gauche select{padding:8px 10px}
.compteur-total{font-size:13px;color:var(--rose-fonce);font-weight:600}
.barre-boutons{display:flex;flex-wrap:wrap;gap:8px}

.feuille{background:#fff;padding:20px;border:2px solid var(--or);border-radius:6px;box-shadow:0 10px 30px rgba(0,0,0,.12)}
.entete-feuille{padding-top:0}
.nom-structure{margin:12px 0}
.tableau-conteneur{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px;min-width:900px}
th,td{border:1px solid #bdbdbd;padding:7px 8px;text-align:left;vertical-align:top}
th{background:linear-gradient(135deg,#F3DC8A,#F8C8DC);color:#3a2a33;font-weight:700}
tbody tr:nth-child(even){background:var(--rose-fond)}
td.num{text-align:center;width:40px}
td.attentes{min-width:180px;white-space:pre-wrap;word-break:break-word}
td.vide{text-align:center;padding:22px;color:#7a6b73;font-style:italic}
.col-act{width:36px}
.suppr{border:0;background:transparent;cursor:pointer;font-size:16px;color:var(--rose-fonce)}

@media (max-width:640px){
  .grille{grid-template-columns:1fr}
  .logo-slot{width:100px;height:80px}
  .ministere{flex-direction:column;gap:2px}
  .actions{flex-wrap:wrap}
  .btn{flex:1}
}

@media print{
  @page{size:A4 landscape;margin:10mm}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  body{background:#fff}
  .onglets,.no-print,.entete:not(.entete-feuille),#vue-inscription,#panneau-login{display:none!important}
  #vue-fiche,#panneau-admin{display:block!important}
  main{padding:0;max-width:none}
  .feuille{border:1px solid var(--or);box-shadow:none;padding:0 6px}
  table{min-width:0;font-size:9pt}
  tr{page-break-inside:avoid}
  thead{display:table-header-group}
  .tableau-conteneur{overflow:visible}
}

/* Informations pratiques (formulaire) */
.infos{margin-top:20px;padding:18px 20px;border-radius:16px;background:linear-gradient(135deg,#fff 0%,var(--rose-fond) 100%);
  border:1px solid var(--argent);border-left:5px solid var(--or)}
.infos h3{margin:0 0 10px;font-family:Georgia,serif;color:var(--rose-fonce);font-size:18px}
.infos ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:12px 20px}
.infos li{display:flex;gap:10px;font-size:13.5px;align-items:flex-start}
.infos .ico{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:16px;
  background:var(--grad-argent);border:1px solid var(--argent)}
@media (max-width:640px){.infos ul{grid-template-columns:1fr}}
@media print{.infos{display:none!important}}
