/* Shared control primitives: choices, progress, actions and capture fields. */
:root{--control-radius:4px;--control-border:#7d91a9;--control-shadow:0 2px 3px #101d390d;--control-ease:cubic-bezier(.23,1,.32,1)}
::selection{background:#bed2e9;color:#101d39}input{caret-color:var(--ink)}
.stage-wrap{background:var(--pale);padding:28px clamp(32px,4vw,72px) 40px}
.stage{display:grid;grid-template-columns:1fr 1fr;align-items:start}
.stage>.q-title,.stage>.q-note,.stage>.opts,.stage>div{grid-column:1/-1}
.stage>div[style]{display:none}
.backlink{display:inline-flex;align-items:center;justify-self:start;gap:8px;margin:0;min-height:44px;padding:10px 14px;border:1px solid var(--control-border);border-radius:var(--control-radius);background:white;color:var(--ink);box-shadow:var(--control-shadow);transition:transform 120ms var(--control-ease),background-color 160ms ease,border-color 160ms ease}
.backlink svg{width:18px;height:18px;flex:none}
.q-kicker{justify-self:end;align-self:center;margin:0;text-align:right;letter-spacing:.05em}
.q-title{margin-top:24px}.q-note{margin-bottom:0}
.opts{display:grid;gap:8px;border:0;margin-top:28px}
.choice-control{min-height:58px;padding:13px 16px;gap:14px;border:1px solid var(--control-border);border-radius:var(--control-radius);background:white;box-shadow:var(--control-shadow);transition:transform 120ms var(--control-ease),background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease,color 160ms ease}
.choice-control::after{content:none}
.choice-control .n{display:flex;justify-content:center;align-items:center;flex:0 0 28px;height:28px;border:1px solid #bdcadb;border-radius:4px;background:#f5f8fc;color:#485b76;font-size:15px;line-height:1;font-variant-numeric:tabular-nums}
.choice-control>span:nth-child(2){flex:1;min-width:0}
.choice-control>.choice-indicator{display:flex;flex:0 0 24px;width:24px;height:24px;align-items:center;justify-content:center;color:#7f95ad}
.choice-indicator svg{width:24px;height:24px;overflow:visible}.choice-indicator path{opacity:0;stroke-width:2}
.choice-control.picked{background:var(--navy);border-color:var(--navy);color:white;box-shadow:0 4px 10px #101d3926}
.choice-control.picked .n{background:#283b57;border-color:#738ba8;color:white}
.choice-control.picked .choice-indicator{color:white}.choice-control.picked .choice-indicator circle{fill:white;stroke:white}.choice-control.picked .choice-indicator path{opacity:1;stroke:var(--navy)}
.choice-control:focus-visible{outline:2px solid #3c6293;outline-offset:3px;border-color:#3c6293;background:#fff;box-shadow:none;transition:none}.choice-control.picked:focus-visible{background:var(--navy)}
.choice-control:active:not(:focus-visible),.backlink:active:not(:focus-visible),.btn:active:not(:focus-visible){transform:scale(.985);box-shadow:none}
.btn{border-radius:var(--control-radius);box-shadow:0 3px 6px #101d391a;transition:transform 120ms var(--control-ease),background-color 160ms ease,color 160ms ease,box-shadow 160ms ease}
.btn .arrow{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:none}.btn .arrow svg{width:24px;height:24px}.btn:focus-visible,.backlink:focus-visible{transition:none}
.shell-bar::after,.track{display:none}
.question-progress{display:flex;gap:5px;max-width:360px;width:100%;margin-left:auto}.question-progress span{height:5px;background:#dbe4ed;flex:1;border-radius:2px}.question-progress span.complete{background:var(--navy)}.question-progress span.current{background:#7996b8}.count{min-width:76px;text-align:right}
.profile-card{border-radius:4px;box-shadow:0 16px 40px #030a1929}
.gate.is-locked .unlock{border:0;border-radius:4px;box-shadow:0 16px 40px #101d391a}
.field input{border-color:var(--control-border);border-radius:var(--control-radius);background:#f7f9fc;box-shadow:inset 0 1px 2px #101d3908;transition:background-color 140ms ease,border-color 140ms ease}
.field input:focus{background:white;border-color:#3c6293;box-shadow:inset 0 0 0 1px #3c6293}.field.bad input{border-color:#a84b42;box-shadow:inset 0 0 0 1px #a84b42}
@media(hover:hover) and (pointer:fine){.choice-control:hover:not(.picked){background:#fff;border-color:#57789f;box-shadow:0 4px 10px #101d3914;transform:translateY(-1px)}.choice-control:hover:not(.picked) .choice-indicator{color:var(--ink)}.choice-control:hover .n{border-color:#93a9c1}.backlink:hover{background:#f7f9fc;border-color:#57789f}.btn:hover{box-shadow:0 6px 12px #101d3926}}
@media(min-width:1000px) and (max-height:790px){.stage-wrap{padding-top:24px;padding-bottom:32px}.q-title{margin-top:20px}.opts{margin-top:24px;gap:7px}.choice-control{min-height:53px;padding-block:10px}}
@media(max-width:1050px){.question-progress{max-width:220px}.stage-wrap{padding-inline:28px}}
@media(max-width:800px){.stage-wrap{padding:24px var(--gutter) 40px}.question-progress{max-width:180px}.choice-control{min-height:60px}}
@media(max-width:540px){.shell-bar{flex-wrap:wrap;gap:16px 20px;padding-bottom:16px}.question-progress{order:3;flex-basis:100%;max-width:none;margin:0;gap:4px}.question-progress span{height:4px}.q-kicker{font-size:16px;letter-spacing:0}.q-title{margin-top:24px}.choice-control{padding:14px 12px;gap:12px;min-height:62px}.choice-control .n{flex-basis:24px;height:26px;font-size:15px}.choice-control>.choice-indicator{flex-basis:22px;width:22px;height:22px}.opts{gap:10px}.profile-card,.gate.is-locked .unlock{border-radius:4px}}
@media(max-width:360px){.q-kicker{font-size:16px}.choice-control{gap:10px;padding-inline:10px}.choice-control .n{flex-basis:22px}.choice-control>.choice-indicator{flex-basis:20px;width:20px}}
@media(prefers-reduced-motion:reduce){.choice-control,.backlink,.btn,.field input{transition:none!important;transform:none!important}}
@media print{.profile-card{border-radius:0;box-shadow:none}.choice-control{box-shadow:none}}
