/* Thème commun des pages secondaires du Studio (compte, impression, modèle partagé,
   retour de paiement, mot de passe) : même en-tête, boutons néon et états actifs que l'atelier. */
@property --cta-a { syntax: '<angle>'; inherits: false; initial-value: 0deg; }

/* ── En-tête commun ── */
.st-top { position:sticky; top:0; z-index:150; background:rgba(11,16,22,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); border-bottom:1px solid rgba(255,255,255,.08); font-family:'DM Sans', system-ui, sans-serif; }
.st-top__inner { max-width:1360px; margin:0 auto; height:62px; padding:0 24px; display:flex; align-items:center; gap:18px; }
.st-top a { text-decoration:none; }
.st-top__brand { display:inline-flex; align-items:center; gap:10px; color:#f1f5f9; font-weight:800; font-size:16px; white-space:nowrap; }
.st-top__brand img { width:30px; height:30px; object-fit:contain; }
.st-top__brand small { margin-left:6px; padding-left:10px; border-left:1px solid rgba(255,255,255,.15); color:#2dd4bf; font-size:11px; font-weight:700; }
.st-top__back { display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:999px; border:1px solid rgba(255,255,255,.12); color:#cbd5e1; font-size:13px; font-weight:600; white-space:nowrap; }
.st-top__back:hover { color:#fff; border-color:rgba(94,234,212,.45); }
.st-top__nav { display:flex; align-items:center; gap:4px; margin-left:auto; }
.st-top__nav a { display:inline-flex; align-items:center; gap:7px; padding:8px 12px; border-radius:10px; color:#a7b4c2; font-size:13.5px; font-weight:600; }
.st-top__nav a i { font-size:12px; color:#5eead4; }
.st-top__nav a:hover { color:#fff; background:rgba(255,255,255,.05); }
.st-top__right { display:flex; align-items:center; gap:8px; }
.st-credits { display:inline-flex; align-items:center; gap:6px; height:38px; padding:0 10px 0 8px; border-radius:999px; border:1px solid rgba(245,179,1,.4); background:rgba(245,179,1,.08); color:#fcd34d; font-size:14px; font-weight:800; font-variant-numeric:tabular-nums; white-space:nowrap; }
.st-credits i { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:linear-gradient(135deg, #14b8a6, #8b5cf6 60%, #ec4899); color:#fff; font-size:10px; }
.st-credits:hover { border-color:#fcd34d; }
.st-account, .st-login { display:inline-flex; align-items:center; gap:8px; height:38px; padding:0 12px 0 4px; border-radius:999px; border:1px solid rgba(255,255,255,.12); color:#e6edf3; font-size:13px; font-weight:700; white-space:nowrap; }
.st-login { padding:0 14px; border-color:rgba(94,234,212,.4); background:rgba(45,212,191,.08); }
.st-account img { width:30px; height:30px; border-radius:50%; object-fit:cover; box-shadow:0 0 0 2px rgba(45,212,191,.55); }
.st-account i { width:30px; text-align:center; }
@media (max-width:980px) { .st-top__nav { display:none; } .st-top__right { margin-left:auto; } }
@media (max-width:640px) {
  .st-top__inner { height:56px; padding:0 12px; gap:8px; }
  .st-top__brand small, .st-top__back span, .st-account span { display:none; }
  .st-top__brand { font-size:15px; }
  .st-top__back { padding:7px 10px; }
  .st-account { padding:0 4px; }
}

/* ── Boutons d'action principaux : néon arc-en-ciel, comme dans l'atelier ── */
.acc-btn--primary, .sh-btn--primary, .print-button, .st-primary {
  position:relative; isolation:isolate; overflow:hidden;
  border:0 !important; color:#eef2ff !important; font-weight:800; letter-spacing:.01em;
  background:linear-gradient(rgba(45,212,191,.09) 1px, transparent 1px) 0 0 / 100% 7px,
             linear-gradient(90deg, rgba(167,139,250,.08) 1px, transparent 1px) 0 0 / 14px 100%,
             radial-gradient(ellipse at 50% 130%, rgba(45,212,191,.34), transparent 62%), #0b0f1a !important;
  box-shadow:0 0 0 1px rgba(167,139,250,.2), 0 0 20px rgba(45,212,191,.2), 0 0 40px rgba(167,139,250,.12) !important;
  text-shadow:0 0 10px rgba(94,234,212,.35);
  transition:transform .22s cubic-bezier(.2,.9,.3,1.3), box-shadow .25s;
  animation:stBreath 2.8s ease-in-out infinite;
}
.acc-btn--primary::before, .sh-btn--primary::before, .print-button::before, .st-primary::before {
  content:''; position:absolute; inset:0; z-index:-1; padding:1.5px; border-radius:inherit; pointer-events:none;
  background:conic-gradient(from var(--cta-a), #2dd4bf, #a78bfa, #f472b6, #22d3ee, #2dd4bf);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;
  animation:stSpin 3s linear infinite;
}
.acc-btn--primary i, .sh-btn--primary i, .print-button i, .st-primary i { color:#5eead4; filter:drop-shadow(0 0 5px rgba(45,212,191,.8)); }
.acc-btn--primary:hover, .sh-btn--primary:hover, .print-button:hover:not(:disabled), .st-primary:hover { transform:translateY(-2px); color:#fff !important; box-shadow:0 0 0 1px rgba(167,139,250,.45), 0 0 28px rgba(45,212,191,.42), 0 0 60px rgba(167,139,250,.3) !important; }
.print-button:disabled { opacity:.5; animation:none; }
.print-button:disabled::before { animation:none; }
@keyframes stSpin { to { --cta-a:360deg; } }
@keyframes stBreath { 50% { box-shadow:0 0 0 1px rgba(167,139,250,.32), 0 0 26px rgba(45,212,191,.3), 0 0 52px rgba(167,139,250,.2); } }

/* ── États actifs : pastille en dégradé, comme le rail de l'atelier ── */
.print-steps .is-active b { background:linear-gradient(135deg, #14b8a6, #8b5cf6 60%, #ec4899) !important; color:#fff !important; border-color:transparent !important; box-shadow:0 0 16px rgba(139,92,246,.45); }
.print-usages [aria-pressed="true"], .print-chips input:checked + span { border-color:#a78bfa !important; background:rgba(139,92,246,.16) !important; color:#fff !important; }
.print-material input:checked + .print-material__card { border-color:transparent !important; box-shadow:0 0 0 1.5px #a78bfa, 0 0 22px rgba(139,92,246,.25) !important; }

@media (prefers-reduced-motion: reduce) {
  .acc-btn--primary, .sh-btn--primary, .print-button, .st-primary, .acc-btn--primary::before, .sh-btn--primary::before, .print-button::before, .st-primary::before { animation:none; }
}

/* ── Page « nouveau mot de passe » : même carte sombre que le reste du Studio ── */
body.page-auth { margin:0; min-height:100vh; background:radial-gradient(90% 60% at 50% 0%, rgba(45,212,191,.08), transparent 60%), #0c1015; color:#e6edf3; font-family:'DM Sans', system-ui, sans-serif; display:block; }
.page-auth .auth-card { box-sizing:border-box; max-width:460px; margin:9vh auto 40px; padding:30px; border-radius:22px; border:1px solid rgba(255,255,255,.1); background:rgba(20,29,38,.92); box-shadow:0 24px 60px rgba(0,0,0,.45); color:#e6edf3; }
.page-auth .auth-card .logo { display:none; }
.page-auth .auth-card h1 { margin:0 0 14px; font-size:24px; line-height:1.25; color:#fff; }
.page-auth .auth-card p { color:#b2c3d3; }
.page-auth .form { display:grid; gap:14px; }
.page-auth .form label { display:grid; gap:6px; font-size:13px; font-weight:600; color:#cbd5e1; }
.page-auth .input { box-sizing:border-box; width:100%; height:44px; padding:0 12px; border-radius:11px; border:1px solid rgba(255,255,255,.14); background:#0f161e; color:#fff; font:inherit; }
.page-auth .input:focus { outline:none; border-color:#5eead4; box-shadow:0 0 0 3px rgba(45,212,191,.15); }
.page-auth .btn { display:inline-flex; align-items:center; justify-content:center; height:46px; padding:0 20px; border-radius:12px; font:inherit; font-weight:800; text-decoration:none; cursor:pointer; }
.page-auth .btn--outline { border:1px solid rgba(167,139,250,.6); background:rgba(139,92,246,.1); color:#ddd6fe; }
.page-auth .alert--error { padding:11px 14px; border-radius:12px; background:rgba(244,63,94,.12); border:1px solid rgba(244,63,94,.35); color:#fecdd3; margin-bottom:12px; }
@media (max-width:520px) { .page-auth .auth-card { margin:4vh 12px 24px; padding:22px; } }

/* iPhone : un champ en dessous de 16 px fait zoomer la page à la saisie (texte hors écran). Écrans tactiles : 16 px. */
@media (hover: none) and (pointer: coarse) {
  input:not([type=range]):not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]), textarea, select { font-size: 16px !important; }
}
