/* ─────────────────────────────────────────────────────────────
   Besem Award — Inscription (chatbot)  ·  palette alignée sur le thème
   ───────────────────────────────────────────────────────────── */
.besem-registration{
  max-width:760px;margin:30px auto;
  font-family:var(--font-body,Inter),system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--color-text,#F5F1E8);
}
.besem-reg-shell{
  background:var(--color-surface,#141414);
  border:1px solid var(--color-border,rgba(255,255,255,.08));
  border-radius:var(--radius-card,20px);padding:28px;
  box-shadow:0 20px 60px rgba(0,0,0,.45);
}
.besem-reg-header{text-align:center;margin-bottom:20px}
.besem-reg-kicker{font-size:12px;letter-spacing:.12em;color:var(--color-primary,#D4AF37);font-weight:800;text-transform:uppercase}
.besem-reg-header h2{font-size:30px;margin:8px 0;font-family:var(--font-display,Poppins),inherit}
.besem-reg-header p{color:var(--color-muted,#a09a8e)}

/* ── Progression ── */
.besem-reg-progress{height:6px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden}
.besem-reg-progress-bar{display:block;width:3%;height:100%;background:linear-gradient(90deg,var(--color-primary,#D4AF37),var(--color-primary-bright,#EBC84A));transition:width .3s ease}
.besem-reg-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 0 18px}
.besem-reg-step-label{font-size:12px;color:var(--color-muted,#a09a8e)}
.besem-reg-save{font-size:12px;font-weight:600;color:var(--color-muted,#a09a8e);transition:color .2s}
.besem-reg-save.is-saved{color:var(--color-success,#22c55e)}
.besem-reg-save.is-saving{color:var(--color-primary,#D4AF37)}
.besem-reg-save.is-error{color:var(--color-danger,#ef4444)}
.besem-reg-save[hidden]{display:none}

/* ── Bandeau correction / reprise ── */
.besem-reg-alert{display:flex;gap:12px;align-items:flex-start;margin-bottom:16px;padding:14px 16px;border:1px solid rgba(212,175,55,.4);background:rgba(212,175,55,.08);border-radius:14px;font-size:14px;line-height:1.5}
.besem-reg-alert[hidden]{display:none}
.besem-reg-alert-icon{color:var(--color-primary,#D4AF37);flex:none;margin-top:1px}
.besem-reg-alert strong{display:block;margin-bottom:2px;color:var(--color-primary-bright,#EBC84A)}
.besem-reg-alert p{margin:0;color:var(--color-muted,#a09a8e)}
.besem-reg-resume{margin-bottom:14px;padding:12px 14px;border:1px solid rgba(212,175,55,.4);border-radius:12px;background:rgba(212,175,55,.08);color:var(--color-primary-bright,#EBC84A);font-size:14px;font-weight:700}
.besem-reg-resume[hidden]{display:none}

/* ── Messages ── */
.besem-reg-messages{min-height:72px;max-height:min(46vh,420px);overflow-y:auto;padding-right:4px}
.besem-reg-bubble{background:var(--color-surface-alt,#1e1e1e);border:1px solid var(--color-border,rgba(255,255,255,.08));border-radius:18px 18px 18px 5px;padding:16px;line-height:1.6;margin-bottom:14px}

/* ── Champs ── */
.besem-reg-input{display:grid;gap:10px}
.besem-reg-field{width:100%;box-sizing:border-box;background:var(--color-bg,#070707);border:1px solid rgba(255,255,255,.14);color:var(--color-text,#F5F1E8);border-radius:13px;padding:13px 14px;font:inherit;outline:none}
.besem-reg-field::placeholder{color:var(--color-muted,#a09a8e)}
.besem-reg-field:focus{border-color:var(--color-primary,#D4AF37);box-shadow:0 0 0 3px rgba(212,175,55,.15)}
.besem-reg-field:focus-visible{outline:2px solid var(--color-primary,#D4AF37);outline-offset:1px}
.besem-reg-field[aria-invalid="true"]{border-color:var(--color-danger,#ef4444);box-shadow:0 0 0 3px rgba(239,68,68,.15)}
textarea.besem-reg-field{resize:vertical}
.besem-reg-field-error{color:var(--color-danger,#ef4444);font-size:13px;margin:2px 0 0;line-height:1.4}

/* ── Boutons ── */
.besem-reg-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.besem-reg-btn{
  text-align:center;text-decoration:none;display:inline-block;
  background:transparent;border:1px solid rgba(212,175,55,.35);color:var(--color-primary-bright,#EBC84A);
  border-radius:var(--radius-pill,9999px);padding:12px 20px;font:inherit;font-weight:700;cursor:pointer;
  transition:background .2s,border-color .2s,color .2s,transform .15s;
}
.besem-reg-btn:hover{background:rgba(212,175,55,.10);border-color:var(--color-primary,#D4AF37)}
.besem-reg-btn:focus-visible{outline:2px solid var(--color-primary,#D4AF37);outline-offset:2px}
.besem-reg-btn.primary{background:var(--color-primary,#D4AF37);border-color:var(--color-primary,#D4AF37);color:#141414}
.besem-reg-btn.primary:hover{background:var(--color-primary-bright,#EBC84A)}
.besem-reg-btn-ghost{border-color:var(--color-border,rgba(255,255,255,.14));color:var(--color-muted,#a09a8e)}
.besem-reg-btn-ghost:hover{color:var(--color-text,#F5F1E8);border-color:rgba(255,255,255,.3);background:transparent}
.besem-reg-btn[disabled]{opacity:.5;cursor:wait}

/* ── Message d'erreur global ── */
.besem-reg-error{color:var(--color-danger,#ef4444);font-size:14px;margin-top:12px;min-height:0}
.besem-reg-error:empty{display:none}

/* ── Catégories ── */
.besem-reg-cats{display:grid;gap:8px}
.besem-reg-cat{
  text-align:left;background:var(--color-surface-alt,#1e1e1e);border:1px solid var(--color-border,rgba(255,255,255,.08));
  color:var(--color-text,#F5F1E8);border-radius:14px;padding:13px 15px;font:inherit;cursor:pointer;
  transition:border-color .2s,background .2s;
}
.besem-reg-cat:hover{border-color:rgba(212,175,55,.5)}
.besem-reg-cat:focus-visible{outline:2px solid var(--color-primary,#D4AF37);outline-offset:2px}
.besem-reg-cat.is-selected{border-color:var(--color-primary,#D4AF37);background:rgba(212,175,55,.12);color:var(--color-primary-bright,#EBC84A);opacity:.9;cursor:default}

/* ── Upload ── */
.besem-reg-uploader{display:grid;gap:10px}
.besem-reg-upload{display:flex;align-items:center;justify-content:center;gap:10px;min-height:84px;padding:16px;text-align:center;border:1.5px dashed rgba(212,175,55,.4);border-radius:14px;background:rgba(212,175,55,.04);color:var(--color-muted,#a09a8e);cursor:pointer;transition:border-color .2s,color .2s}
.besem-reg-upload:hover{border-color:var(--color-primary,#D4AF37);color:var(--color-text,#F5F1E8)}
.besem-reg-upload:focus-within{outline:2px solid var(--color-primary,#D4AF37);outline-offset:2px}
.besem-reg-upload input[type=file]{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}
.besem-reg-preview{max-width:100%;max-height:260px;border-radius:14px;border:1px solid var(--color-border,rgba(255,255,255,.12));object-fit:contain;justify-self:start}
.besem-reg-file{display:flex;align-items:center;gap:8px;margin:0;padding:12px 14px;border-radius:12px;background:var(--color-surface-alt,#1e1e1e);border:1px solid var(--color-border,rgba(255,255,255,.08));color:var(--color-text,#F5F1E8);font-size:14px}
.besem-reg-upload-progress{height:5px;background:rgba(255,255,255,.08);border-radius:99px;overflow:hidden}
.besem-reg-upload-progress[hidden]{display:none}
.besem-reg-upload-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--color-primary,#D4AF37),var(--color-primary-bright,#EBC84A));transition:width .15s}

/* ── Déclarations ── */
.besem-reg-check{display:flex;gap:10px;align-items:flex-start;padding:13px 15px;border:1px solid var(--color-border,rgba(255,255,255,.08));border-radius:14px;background:var(--color-surface-alt,#1e1e1e);line-height:1.5;font-size:14px;cursor:pointer}
.besem-reg-check input{margin-top:3px;accent-color:var(--color-primary,#D4AF37);flex:none}
.besem-reg-check:has(input:focus-visible){outline:2px solid var(--color-primary,#D4AF37);outline-offset:2px}
.besem-reg-policy-link{color:var(--color-primary,#D4AF37);text-decoration:underline;text-underline-offset:2px}

/* ── Récapitulatif ── */
.besem-reg-review{background:var(--color-surface-alt,#1e1e1e);border:1px solid var(--color-border,rgba(255,255,255,.08));border-radius:16px;padding:6px 16px}
.besem-reg-review p{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--color-border,rgba(255,255,255,.08));padding:10px 0;margin:0}
.besem-reg-review p:last-child{border:0}
.besem-reg-review span{text-align:right;color:var(--color-muted,#a09a8e)}

/* ── Récépissé imprimable ── */
.besem-receipt{display:none;color:#111;background:#fff;font-family:Georgia,"Times New Roman",serif;padding:40px 44px;max-width:640px;margin:0 auto}
.besem-receipt-head{text-align:center;border-bottom:2px solid #D4AF37;padding-bottom:14px;margin-bottom:20px}
.besem-receipt h1{margin:0 0 4px;font-size:24px}
.besem-receipt-head p{margin:0;color:#555}
.besem-receipt h2{font-size:16px;margin:22px 0 8px;border-bottom:1px solid #ddd;padding-bottom:6px}
.besem-receipt p{display:flex;justify-content:space-between;gap:20px;margin:6px 0}
.besem-receipt strong{color:#333}
.besem-receipt-foot{margin-top:26px;color:#777;font-size:13px;justify-content:center;display:block;text-align:center}

/* ── Mobile ── */
@media(max-width:600px){
  .besem-reg-shell{padding:18px;border-radius:16px}
  .besem-reg-actions{display:grid}
  .besem-reg-btn{width:100%}
  .besem-reg-review p{display:block}
  .besem-reg-review span{display:block;text-align:left;margin-top:4px}
  .besem-reg-messages{max-height:none}
}

/* ── Impression : ne sortir que le récépissé ── */
@media print{
  body{background:#fff !important}
  body > *{display:none !important}
  body > .besem-receipt{display:block !important}
}

/* ── Mouvement réduit ── */
@media (prefers-reduced-motion: reduce){
  .besem-reg-progress-bar,.besem-reg-upload-progress span,
  .besem-reg-btn,.besem-reg-cat,.besem-reg-upload,.besem-reg-field{transition:none !important}
}
