/* Même charte que qcm-flyingmanta (thème sombre, cartes, boutons) */
:root{
  --bg:#0d1117;--surface:#161b22;--surface2:#21262d;--border:#30363d;
  --accent:#2563eb;--glow:rgba(37,99,235,.22);--accent2:#0ea5e9;
  --success:#22c55e;--error:#ef4444;--warn:#f59e0b;
  --text:#e6edf3;--muted:#8b949e;--radius:12px;
  --shadow:0 8px 32px rgba(0,0,0,.55);
  --fh:'Georgia','Times New Roman',serif;
  --fb:'Segoe UI',system-ui,-apple-system,sans-serif;
  --tr:.2s cubic-bezier(.4,0,.2,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:var(--fb);font-size:15px;line-height:1.6;min-height:100vh;display:flex;flex-direction:column;align-items:center}
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(ellipse 80% 60% at 20% -10%,rgba(37,99,235,.16) 0%,transparent 60%),
  radial-gradient(ellipse 60% 50% at 85% 110%,rgba(14,165,233,.10) 0%,transparent 55%)}
a{color:var(--accent2)}

/* En-tête */
#hdr{position:sticky;top:0;z-index:100;width:100%;background:rgba(13,17,23,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);padding:11px 22px;display:flex;align-items:center;gap:11px}
#hdr .logo{width:34px;height:34px;border-radius:8px;flex-shrink:0;font-size:17px;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center}
#hdr .org{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
#hdr .qt{font-size:13px;font-weight:600}
#hdr .nav{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:13px}
#hdr .nav form{display:inline}

#app{position:relative;z-index:1;width:100%;max-width:780px;padding:28px 14px 60px}
#app.large{max-width:1180px}

/* Cartes */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:30px 34px;box-shadow:var(--shadow);margin-bottom:18px;animation:fu .5s ease both}
@media(max-width:560px){.card{padding:22px 16px}}
.card h1{font-family:var(--fh);font-size:clamp(20px,5vw,28px);font-weight:700;line-height:1.25;margin-bottom:7px}
.card h2{font-family:var(--fh);font-size:18px;margin-bottom:4px}
.sub{color:var(--muted);font-size:13px;margin-bottom:6px}
.badge{display:inline-flex;align-items:center;gap:7px;background:var(--surface2);border:1px solid var(--border);border-radius:99px;padding:5px 13px;font-size:12px;color:var(--muted);margin-bottom:18px}
.badge span{color:var(--accent2)}
.section-hint{color:var(--muted);font-size:12px;margin-bottom:20px}

/* Formulaire */
.fg{margin-bottom:18px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.grid3{display:grid;grid-template-columns:1fr 2fr;gap:0 16px}
@media(max-width:560px){.grid2,.grid3{grid-template-columns:1fr}}
label,.lbl{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.04em}
label .req,.lbl .req{color:var(--error);margin-left:2px}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=password],select{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:10px 13px;color:var(--text);font-size:15px;font-family:var(--fb);outline:none;transition:border-color var(--tr),box-shadow var(--tr);color-scheme:dark}
input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow)}
input::placeholder{color:var(--muted);opacity:.65}
input[aria-invalid=true]{border-color:var(--error)}
.star{color:var(--error)}
.fg-submit{margin:22px 0 0}
.hint{font-size:12px;color:var(--muted);margin-top:4px}
.em{font-size:12px;color:var(--error);margin-top:4px}

/* Civilité (boutons radio en pastilles) */
.radios{display:flex;gap:10px;flex-wrap:wrap}
.radio{position:relative;margin:0;text-transform:none;letter-spacing:0;font-size:14px;color:var(--text);font-weight:600}
.radio input{position:absolute;opacity:0;inset:0;cursor:pointer}
.radio span{display:inline-block;padding:9px 20px;background:var(--surface2);border:1.5px solid var(--border);border-radius:99px;transition:all var(--tr)}
.radio input:hover+span{border-color:var(--accent)}
.radio input:checked+span{border-color:var(--accent);background:rgba(37,99,235,.15);color:var(--accent2)}
.radio input:focus-visible+span{box-shadow:0 0 0 3px var(--glow)}

/* Consentement */
.consent{display:flex;gap:11px;align-items:flex-start;text-transform:none;letter-spacing:0;font-size:13px;font-weight:400;color:var(--text);cursor:pointer}
.consent input{width:20px;height:20px;flex-shrink:0;margin-top:2px;accent-color:var(--accent)}
details.rgpd{background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:12px 15px;margin-bottom:16px;font-size:13px;color:var(--muted)}
details.rgpd summary{cursor:pointer;color:var(--text);font-weight:600}
details.rgpd p{margin-top:8px}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:11px 26px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all var(--tr);text-decoration:none;font-family:var(--fb)}
.bp{background:var(--accent);color:#fff;box-shadow:0 4px 16px rgba(37,99,235,.32)}
.bp:hover{background:#1d4ed8;transform:translateY(-1px)}
.bp:disabled{opacity:.5;cursor:not-allowed;transform:none}
.bs{background:var(--surface2);border:1px solid var(--border);color:var(--text)}
.bs:hover{border-color:var(--accent);color:var(--accent)}
.bd{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:var(--error)}
.bd:hover{background:rgba(239,68,68,.2)}
.bfull{width:100%}
.btn-sm{padding:6px 14px;font-size:12px}

/* Messages */
.alert{border-radius:8px;padding:11px 15px;font-size:13px;margin-bottom:18px}
.alert-err{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:var(--error)}
.alert-ok{background:rgba(34,197,94,.1);border:1px solid rgba(34,197,94,.3);color:var(--success)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* Page de confirmation */
.done{text-align:center}
.done .ico{width:68px;height:68px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 14px;background:rgba(34,197,94,.15)}
.done p{color:var(--muted);font-size:14px;margin-top:8px}

/* Admin : tableaux, filtres, fiche */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:16px}
.toolbar .fg{margin:0}
.toolbar input,.toolbar select{width:auto;min-width:150px}
.table-wrap{overflow-x:auto}
.row-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;white-space:nowrap}
.row-actions form{margin:0}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}
td{padding:11px 12px;border-bottom:1px solid rgba(48,54,61,.6);vertical-align:middle}
tr:hover td{background:var(--surface2)}
.muted{color:var(--muted)}
.pagination{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.pagination a,.pagination span{padding:5px 11px;border:1px solid var(--border);border-radius:6px;font-size:12px;text-decoration:none;color:var(--muted)}
.pagination .cur{background:var(--accent);border-color:var(--accent);color:#fff}
dl.fiche{display:grid;grid-template-columns:200px 1fr;gap:10px 16px;font-size:14px}
dl.fiche dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;padding-top:2px}
dl.fiche dd{margin:0;word-break:break-word}
@media(max-width:560px){dl.fiche{grid-template-columns:1fr}dl.fiche dt{margin-top:8px}}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}

@keyframes fu{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Impression d'une fiche (fond blanc) */
@media print{
  body{background:#fff;color:#000}
  body::before,#hdr,.no-print{display:none!important}
  .card{box-shadow:none;border:1px solid #999;background:#fff;animation:none}
  dl.fiche dt{color:#444}
}
