/* ═══════════════════════════════════════════════════════════
   ONBOARDING SomnoPhysio — Consentement + Explication de l'espace
   Préfixe spo- (zéro collision). Reprend l'identité "nuit" du login.
   ═══════════════════════════════════════════════════════════ */

.spo-screen{
  display:none;position:fixed;inset:0;z-index:400;overflow-y:auto;
  background:linear-gradient(170deg,#030d1a 0%,#071428 42%,#0a1e3d 72%,#0d2860 100%);
}
.spo-screen.open{display:block;}
.spo-wrap{
  width:100%;max-width:520px;margin:0 auto;min-height:100vh;box-sizing:border-box;
  display:flex;flex-direction:column;justify-content:center;padding:44px 20px 52px;
}

.spo-moon{display:flex;justify-content:center;margin-bottom:14px;animation:floatMoon 4s ease-in-out infinite;}
.spo-eyebrow{font-size:.64rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(144,202,249,.7);text-align:center;margin-bottom:10px;}
.spo-title{font-family:'Playfair Display',serif;font-size:1.7rem;font-weight:400;color:#fff;
  text-align:center;line-height:1.2;margin-bottom:8px;}
.spo-sub{font-size:.86rem;color:rgba(255,255,255,.55);text-align:center;line-height:1.6;
  margin:0 auto 24px;max-width:410px;}

.spo-card{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);
  border-radius:16px;padding:18px;margin-bottom:14px;}

/* ── Consentement : liste d'engagements ── */
.spo-commit{list-style:none;margin:0;padding:0;}
.spo-commit li{display:flex;gap:11px;align-items:flex-start;padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.06);font-size:.83rem;color:rgba(255,255,255,.72);line-height:1.55;}
.spo-commit li:last-child{border-bottom:none;padding-bottom:2px;}
.spo-ci{color:#90caf9;flex-shrink:0;margin-top:1px;display:flex;}
.spo-ci svg{width:17px;height:17px;}

.spo-check{display:flex;gap:11px;align-items:flex-start;cursor:pointer;margin-top:14px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:12px;
  padding:13px 14px;transition:all .2s;}
.spo-check:hover{border-color:rgba(66,165,245,.4);}
.spo-check.checked{border-color:rgba(66,165,245,.6);background:rgba(21,101,192,.18);}
.spo-check input{margin-top:2px;flex-shrink:0;width:16px;height:16px;accent-color:#42a5f5;cursor:pointer;}
.spo-check span{font-size:.82rem;color:rgba(255,255,255,.82);line-height:1.5;}

.spo-note{font-size:.7rem;color:rgba(255,255,255,.35);text-align:center;margin-top:12px;}

.spo-btn{width:100%;padding:14px;border:none;border-radius:12px;font-family:'DM Sans',sans-serif;
  font-size:.9rem;font-weight:700;color:#fff;cursor:pointer;margin-top:16px;
  background:linear-gradient(135deg,#1565c0,#1976d2);transition:opacity .2s,transform .2s;}
.spo-btn:hover:not(:disabled){transform:translateY(-1px);}
.spo-btn:disabled{opacity:.38;cursor:not-allowed;}
.spo-btn.ghost{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);}

/* ── Explication : les 3 zones ── */
.spo-zone{display:flex;gap:14px;align-items:flex-start;padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.07);}
.spo-zone:first-child{padding-top:2px;}
.spo-zone:last-child{border-bottom:none;padding-bottom:2px;}
.spo-zico{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.spo-zico svg{width:22px;height:22px;}
.spo-zico-formation{background:rgba(21,101,192,.2);color:#90caf9;}
.spo-zico-biblio{background:rgba(0,137,123,.22);color:#7fd8cd;}
.spo-zico-clinique{background:rgba(245,124,0,.2);color:#ffc98a;}
.spo-zname{font-size:.92rem;font-weight:700;color:#fff;display:flex;align-items:center;gap:8px;
  flex-wrap:wrap;margin-bottom:3px;}
.spo-zdur{font-size:.56rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:2px 8px;border-radius:20px;white-space:nowrap;}
.spo-zdur-formation{background:rgba(21,101,192,.25);color:#90caf9;}
.spo-zdur-biblio{background:rgba(0,137,123,.25);color:#7fd8cd;}
.spo-zdur-clinique{background:rgba(245,124,0,.25);color:#ffc98a;}
.spo-zdesc{font-size:.79rem;color:rgba(255,255,255,.55);line-height:1.5;}

.spo-how{font-size:.78rem;color:rgba(255,255,255,.5);line-height:1.6;text-align:center;padding:0 6px;}
.spo-aboutmeta{font-size:.74rem;color:rgba(255,255,255,.4);text-align:center;margin-top:14px;}

/* Lien "À propos" dans la sidebar */
.spo-about-link{width:100%;background:none;border:none;text-align:left;
  color:rgba(255,255,255,.4);font-size:.74rem;cursor:pointer;padding:0 0 12px;
  font-family:'DM Sans',sans-serif;display:flex;align-items:center;gap:7px;}
.spo-about-link:hover{color:rgba(255,255,255,.72);}
.spo-about-link svg{width:14px;height:14px;}

/* Entrée en fondu */
.spo-f{animation:fadeUp .55s both;}
.spo-wrap .spo-f:nth-child(2){animation-delay:.05s;}
.spo-wrap .spo-f:nth-child(3){animation-delay:.1s;}
.spo-wrap .spo-f:nth-child(4){animation-delay:.15s;}
.spo-wrap .spo-f:nth-child(5){animation-delay:.2s;}

@media(prefers-reduced-motion:reduce){
  .spo-moon,.spo-f{animation:none;}
}
