/* Nervous System Profile - front-end experience styles. Scoped to .nsp-root */
.nsp-root{
  --nsp-ink:#26323d; --nsp-muted:#6b7a88; --nsp-line:#e7e2d9; --nsp-bg:#faf7f1; --nsp-card:#ffffff; --nsp-accent:#2f6f76;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--nsp-ink); background:var(--nsp-bg);
  max-width:760px; margin:0 auto; padding:26px; border-radius:18px; line-height:1.5;
}
.nsp-root *{box-sizing:border-box}
.nsp-root .nsp-h1{font-family:Georgia,serif; font-weight:600; font-size:1.9rem; margin:.1em 0 .3em; color:var(--nsp-ink)}
.nsp-root .nsp-lead{color:var(--nsp-muted); font-size:1.04rem; margin:.2em 0 0}
.nsp-root .nsp-card{background:var(--nsp-card); border:1px solid var(--nsp-line); border-radius:16px; padding:24px; margin-top:16px}
.nsp-root .nsp-bar{height:6px; background:var(--nsp-line); border-radius:999px; overflow:hidden; margin:6px 0 18px}
.nsp-root .nsp-bar > i{display:block; height:100%; background:var(--nsp-accent); transition:width .25s}
.nsp-root .nsp-count{color:var(--nsp-muted); font-size:.85rem; margin-bottom:10px}
.nsp-root .nsp-qtext{font-size:1.32rem; font-weight:600; font-family:Georgia,serif; margin-bottom:20px}
.nsp-root .nsp-opts{display:flex; flex-direction:column; gap:10px}
.nsp-root .nsp-opt{cursor:pointer; text-align:left; border:1px solid var(--nsp-line); background:#fff; color:var(--nsp-ink);
  border-radius:12px; padding:14px 18px; font:inherit; font-size:1.02rem; transition:.12s; width:100%}
.nsp-root .nsp-opt:hover{border-color:var(--nsp-accent); background:#f3f8f7}
.nsp-root .nsp-opt.nsp-sel{border-color:var(--nsp-accent); background:#e9f2f1; font-weight:600}
.nsp-root .nsp-btn{font:inherit; cursor:pointer; border:none; border-radius:999px; padding:11px 22px; background:var(--nsp-accent); color:#fff; font-weight:600; text-decoration:none; display:inline-block; text-align:center}
.nsp-root .nsp-btn.nsp-ghost{background:transparent; color:var(--nsp-accent); border:1px solid var(--nsp-accent)}
.nsp-root .nsp-nav{display:flex; justify-content:space-between; margin-top:22px; align-items:center; gap:10px; flex-wrap:wrap}
.nsp-root .nsp-hint{color:var(--nsp-muted); font-size:.85rem}
.nsp-root .nsp-wheelwrap{display:flex; justify-content:center}
.nsp-root canvas{max-width:100%; height:auto}
.nsp-root .nsp-pill{display:inline-block; padding:3px 12px; border-radius:999px; font-size:.86rem; font-weight:600; color:#fff; margin-right:8px}
.nsp-root .nsp-pattern{margin-top:16px; padding:16px 18px; border-radius:12px; background:#f6f3ec}
.nsp-root .nsp-pname{font-family:Georgia,serif; font-size:1.12rem; font-weight:600; margin-bottom:4px}
.nsp-root .nsp-breath{margin-top:8px; font-style:italic; color:var(--nsp-muted)}
.nsp-root .nsp-scorelist{width:100%; border-collapse:collapse; font-size:.93rem; margin-top:14px}
.nsp-root .nsp-scorelist td{padding:7px 4px; border-bottom:1px solid var(--nsp-line)}
.nsp-root .nsp-scorelist td:last-child{text-align:right; font-weight:600}
.nsp-root .nsp-field{margin:14px 0}
.nsp-root .nsp-field label{display:block; font-size:.9rem; margin-bottom:5px; font-weight:600}
.nsp-root .nsp-field input{width:100%; padding:12px 14px; border:1px solid var(--nsp-line); border-radius:10px; font:inherit}
.nsp-root .nsp-consent{display:flex; gap:10px; align-items:flex-start; font-size:.92rem; color:var(--nsp-ink); margin:6px 0 2px; cursor:pointer; line-height:1.4}
.nsp-root .nsp-consent input{margin-top:3px; flex:0 0 auto}
/* .nsp-hp removed in v0.4.1 with the honeypot it hid. Left as a note rather than silently deleted:
   a hidden input positioned off-screen is exactly what browser autofill fills, which is how a real
   signup was discarded on the gate's first day. */
.nsp-root .nsp-err{color:#b3261e; font-size:.9rem; min-height:1.1em; margin-top:8px}
/* v0.4.0 — the gate. Dashed and muted on purpose: the short reveal must read as deliberately
   withheld, not as a page that failed to load. A gated page and a broken page produce very
   different feelings, and only one of them converts. */
.nsp-root .nsp-locked{margin-top:18px; padding:22px 20px; border-radius:14px; background:#f6f3ec;
  border:1px solid var(--nsp-line); text-align:center}
.nsp-root .nsp-locked-t{margin:0 0 14px; color:var(--nsp-ink); font-size:1.02rem; line-height:1.5}
.nsp-root .nsp-btn-lg{font-size:1.06rem; padding:14px 30px}
/* The confirmation, folded in above the results rather than occupying a screen of its own. */
.nsp-root .nsp-banner{background:#e9f2f1; border:1px solid var(--nsp-accent); border-radius:12px;
  padding:12px 16px; margin-bottom:4px; font-size:.95rem}
