:root{
  --bg:#f4f6f5; --surface:#ffffff; --surface-2:#f7faf9;
  --ink:#16211f; --ink-2:#4b5b57; --ink-3:#7d8d89;
  --line:#e4eae8; --line-2:#d3ddda;
  --brand:#0f766e; --brand-2:#0b5c55; --brand-soft:#dcefec;
  --accent:#e8f3f1;
  --good:#2f9e6f; --warn:#e2a13a; --bad:#d65449;
  --shadow:0 1px 2px rgba(16,40,36,.04), 0 8px 24px rgba(16,40,36,.06);
  --shadow-lg:0 12px 40px rgba(16,40,36,.12);
  --radius:18px; --radius-sm:12px;
  --serif:"Fraunces",Georgia,serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0e1513; --surface:#151f1d; --surface-2:#1a2523;
    --ink:#eaf1ef; --ink-2:#aebbb7; --ink-3:#7f8f8b;
    --line:#25302e; --line-2:#2f3b39; --accent:#172321;
    --brand:#3fb6a8; --brand-2:#5fc7bb; --brand-soft:#17332f;
    --shadow:0 1px 2px rgba(0,0,0,.3), 0 8px 24px rgba(0,0,0,.35);
    --shadow-lg:0 12px 40px rgba(0,0,0,.5);
  }
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.wrap{width:100%;max-width:820px;margin:0 auto;padding-inline:20px}
.skip{position:absolute;left:-999px}
.skip:focus{left:12px;top:12px;background:var(--brand);color:#fff;padding:8px 12px;border-radius:8px;z-index:50}
a{color:var(--brand)}
em{font-style:normal;color:var(--brand)}
h1,h2,h3{line-height:1.2;margin:0}

/* topbar */
.topbar{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;height:60px}
.brand{display:flex;align-items:center;gap:10px;font-weight:600}
.brand-badge{background:var(--brand);color:#fff;font-weight:700;font-size:.8rem;letter-spacing:.03em;
  padding:4px 9px;border-radius:8px}
.brand-txt{color:var(--ink-2);font-size:.95rem}
.privacy-pill{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;
  color:var(--brand);background:var(--brand-soft);padding:5px 11px;border-radius:999px}
.privacy-pill svg{width:15px;height:15px;fill:var(--brand)}

main{padding-block:32px 48px;min-height:70vh}
.screen{animation:fade .4s ease}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* hero */
.hero{text-align:center;padding:20px 4px 8px}
.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700;color:var(--brand);margin:0 0 12px}
.hero-title{font-family:var(--serif);font-weight:600;font-size:clamp(1.9rem,6vw,2.9rem);letter-spacing:-.01em}
.hero-sub{color:var(--ink-2);font-size:1.06rem;max-width:60ch;margin:16px auto 0}

/* cards */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px;box-shadow:var(--shadow);margin-top:18px}
.card-h{font-family:var(--serif);font-weight:600;font-size:1.25rem;margin-bottom:14px}
.card-note{color:var(--ink-3);font-size:.85rem;margin:-8px 0 14px}

.privacy-card{display:flex;gap:18px;align-items:flex-start;background:linear-gradient(180deg,var(--accent),var(--surface));
  border-color:var(--line-2)}
.privacy-card h2{font-size:1.15rem;margin-bottom:6px}
.privacy-card p{color:var(--ink-2);margin:0;font-size:.96rem}
.privacy-ico{flex:0 0 auto;width:46px;height:46px;border-radius:12px;background:var(--brand);
  display:grid;place-items:center}
.privacy-ico svg{width:26px;height:26px;fill:#fff}

.steps{margin:0;padding:0;list-style:none;counter-reset:s}
.steps li{position:relative;padding:10px 0 10px 44px;color:var(--ink-2);border-bottom:1px dashed var(--line)}
.steps li:last-child{border-bottom:0}
.steps li::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:9px;
  width:28px;height:28px;border-radius:50%;background:var(--brand-soft);color:var(--brand);
  font-weight:700;font-size:.85rem;display:grid;place-items:center}
.duree{margin:14px 0 0;font-size:.9rem;color:var(--ink-3)}

.cta-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:22px}
.disclaimer{text-align:center;color:var(--ink-3);font-size:.82rem;max-width:56ch;margin:22px auto 0}

/* boutons */
.btn{font-family:inherit;font-size:1rem;font-weight:600;border:1px solid transparent;border-radius:12px;
  padding:14px 22px;cursor:pointer;transition:transform .08s ease,background .15s,box-shadow .15s;
  -webkit-tap-highlight-color:transparent}
.btn:active{transform:scale(.98)}
.btn-primary{background:var(--brand);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--brand) 35%,transparent)}
.btn-primary:hover{background:var(--brand-2)}
.btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}
.btn-ghost{background:transparent;color:var(--ink-2);border-color:var(--line-2)}
.btn-ghost:hover{background:var(--surface-2);color:var(--ink)}
.btn-danger{background:transparent;color:var(--bad);border-color:color-mix(in srgb,var(--bad) 40%,transparent)}
.btn-danger:hover{background:color-mix(in srgb,var(--bad) 10%,transparent)}

/* progress */
.progress{margin:6px 0 20px}
.progress-head{display:flex;justify-content:space-between;font-size:.85rem;font-weight:600;color:var(--ink-2);margin-bottom:8px}
.progress-bar{height:8px;background:var(--line);border-radius:999px;overflow:hidden}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--brand),var(--brand-2));
  border-radius:999px;transition:width .4s cubic-bezier(.4,0,.2,1)}

/* quiz */
.dim-tag{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;color:var(--brand);background:var(--brand-soft);padding:6px 12px;border-radius:999px;margin-bottom:16px}
.q-mother{font-family:var(--serif);font-weight:600;font-size:1.4rem;line-height:1.3;margin-bottom:4px}
.q-text{font-size:1.08rem;line-height:1.4;margin-bottom:6px;color:var(--ink)}
.q-block{padding:18px 0;border-top:1px solid var(--line)}
.q-block:first-of-type{border-top:0}
.q-block.is-child{animation:slidein .35s ease}
@keyframes slidein{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.child-hint{font-size:.8rem;color:var(--ink-3);margin:14px 0 4px;font-weight:600}

/* échelle segmentée */
.scale{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:12px}
.scale label{position:relative;cursor:pointer}
.scale input{position:absolute;opacity:0;inset:0;cursor:pointer}
.scale .opt{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  padding:12px 6px;border:1.5px solid var(--line-2);border-radius:12px;background:var(--surface-2);
  text-align:center;transition:all .15s;min-height:64px}
.scale .opt .num{font-weight:700;font-size:1.15rem;color:var(--ink);transition:color .15s}
.scale .opt .lbl{font-size:.74rem;line-height:1.15;color:var(--ink-2)}
.scale input:focus-visible + .opt{outline:2px solid var(--brand);outline-offset:2px}
.scale input:checked + .opt{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}
.scale input:checked + .opt .num,.scale input:checked + .opt .lbl{color:var(--brand)}

.nav-row{display:flex;justify-content:space-between;gap:12px;margin-top:24px}
.nav-row .btn{flex:1;max-width:220px}
.save-hint{text-align:center;color:var(--ink-3);font-size:.8rem;margin-top:14px}

/* résultats */
.result-head{text-align:center;padding:8px 0 4px}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:680px){.result-grid{grid-template-columns:1fr}}
.gauge-card{text-align:center}
.gauge-wrap{position:relative;max-width:320px;margin:8px auto 0}
.gauge-center{position:absolute;left:0;right:0;bottom:8px;text-align:center}
.gauge-center span{font-family:var(--serif);font-weight:600;font-size:2.6rem;display:block;line-height:1}
.gauge-center small{color:var(--ink-3);font-size:.85rem}
.risk-badge{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:1.05rem;
  padding:8px 16px;border-radius:999px;margin-top:8px}
.risk-resume{color:var(--ink-2);font-size:.92rem;margin:12px auto 0;max-width:38ch}
.radar-wrap{position:relative;width:100%;aspect-ratio:1/1;max-width:420px;margin:0 auto}

.message-card{border-left:4px solid var(--brand)}
.message-card h2{font-family:var(--serif);font-size:1.2rem;margin-bottom:8px}
.message-card p{color:var(--ink-2);margin:0}

.urgence-card{background:color-mix(in srgb,var(--bad) 8%,var(--surface));border-color:color-mix(in srgb,var(--bad) 30%,transparent)}
.urgence-card h2{color:var(--bad);font-size:1.15rem;font-family:var(--serif);margin-bottom:6px}
.urgence-card ul{margin:10px 0 0;padding-left:18px;color:var(--ink)}
.urgence-card li{margin:6px 0}

.guide-card{padding:0;overflow:hidden}
.guide-card summary{cursor:pointer;padding:20px 24px;font-weight:600;display:flex;flex-direction:column;gap:2px;list-style:none}
.guide-card summary::-webkit-details-marker{display:none}
.guide-card summary small{color:var(--ink-3);font-weight:400;font-size:.82rem}
.guide-card summary::after{content:"＋";position:absolute;right:26px;color:var(--brand);font-size:1.3rem}
.guide-card{position:relative}
.guide-card[open] summary::after{content:"－"}
#guideBody{padding:0 24px 22px}
.guide-sec{margin-top:16px}
.guide-sec h3{font-size:.95rem;color:var(--brand);margin-bottom:8px}
.guide-sec ul{margin:0;padding-left:18px;color:var(--ink-2)}
.guide-sec li{margin:6px 0}

/* footer */
.footer{border-top:1px solid var(--line);padding:28px 0 40px;margin-top:40px;color:var(--ink-3);font-size:.84rem;text-align:center}
.footer p{margin:4px 0}
.foot-cond{font-size:.78rem}

/* modale */
.modal{position:fixed;inset:0;background:rgba(10,20,18,.5);display:grid;place-items:center;z-index:60;padding:20px;animation:fade .2s}
.modal-box{max-width:400px;margin:0}
.modal-box h3{font-family:var(--serif);font-size:1.25rem;margin-bottom:10px}
.modal-box p{color:var(--ink-2)}

@media print{.topbar,.footer,.cta-row,.nav-row,.save-hint,.skip{display:none}}
