:root{
 --font-body:'Satoshi',Arial,sans-serif;
 --text-xs:clamp(.75rem,.73rem + .15vw,.875rem);--text-sm:clamp(.875rem,.85rem + .15vw,1rem);--text-base:clamp(1rem,.98rem + .12vw,1.1rem);--text-lg:clamp(1.25rem,1.15rem + .5vw,1.5rem);--text-xl:clamp(1.5rem,1.3rem + 1vw,2rem);--text-hero:clamp(2.3rem,1.8rem + 2vw,3.6rem);
 --space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;
 --color-bg:#f5f6f3;--color-surface:#fff;--color-text:#172c47;--color-muted:#52606d;--color-primary:#006c70;--color-primary-hover:#00575b;--color-input:#fbfcfb;--color-border:oklch(.35 .035 240/.25);--color-soft:#eef4f2;--color-error:#a12d34;--color-error-bg:#fff1f1;--color-button-text:#fff;--radius-sm:4px;
}
[data-theme=dark]{--color-bg:#111c28;--color-surface:#182636;--color-text:#eef3f6;--color-muted:#b6c3ce;--color-primary:#85d3d0;--color-primary-hover:#ade4e1;--color-input:#122131;--color-border:oklch(.85 .03 240/.30);--color-soft:#233745;--color-error:#ffafb4;--color-error-bg:#3d2630;--color-button-text:#10292c;color-scheme:dark}
.wrap{max-width:1160px;margin-inline:auto;padding-inline:var(--space-8)}
.masthead{display:flex;align-items:center;justify-content:space-between;padding-block:var(--space-6);border-bottom:1px solid var(--color-border)}
.masthead-label,.eyebrow{font-size:var(--text-xs);letter-spacing:.13em;font-weight:700;color:var(--color-primary)}
.brand{display:flex;align-items:center;gap:var(--space-6)}
.brand img{width:142px;height:74px;object-fit:contain}
[data-theme=dark] .brand img{background:#fff;border-radius:var(--radius-sm);padding:var(--space-2)}
#theme{font-size:var(--text-xs);color:var(--color-muted);min-height:44px;padding-inline:var(--space-2)}
#theme:hover{color:var(--color-primary)}
.layout{display:grid;grid-template-columns:.95fr 1.15fr;gap:var(--space-16);padding-block:var(--space-12)}
.intro{padding-top:var(--space-8)}
h1{font-size:var(--text-hero);font-weight:500;letter-spacing:-.04em;margin-top:var(--space-4);margin-bottom:var(--space-6)}
.lede{font-size:var(--text-base);max-width:33ch;color:var(--color-muted)}
.scope{border-block:1px solid var(--color-border);padding-block:var(--space-6);margin-block:var(--space-8)}
.scope h2{font-size:var(--text-base);margin-bottom:var(--space-2)}
.scope p{font-size:var(--text-sm);color:var(--color-muted);max-width:40ch}
.small{font-size:var(--text-sm);color:var(--color-muted)}
.privacy{display:inline-flex;align-items:center;min-height:44px;font-size:var(--text-sm);margin-top:var(--space-3)}
.panel{background:var(--color-surface);padding:var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-sm);align-self:start}
.progress-label{display:flex;justify-content:space-between;gap:var(--space-4);font-size:var(--text-xs);color:var(--color-muted);margin-bottom:var(--space-3)}
#counter{color:var(--color-primary);font-weight:700;white-space:nowrap}
.track{background:var(--color-soft);height:3px;margin-bottom:var(--space-8)}
#progress{height:100%;width:16.6667%;background:var(--color-primary);transition:width .2s ease}
fieldset{border:0;min-width:0}
legend{font-size:var(--text-lg);font-weight:700;line-height:1.3;letter-spacing:-.025em;width:100%;margin-bottom:var(--space-3)}
.hint{font-size:var(--text-sm);color:var(--color-muted);margin-bottom:var(--space-6)}
label:not(.choices label,.ack,.unknown){display:block;font-size:var(--text-sm);font-weight:500;margin-bottom:var(--space-2)}
input:not([type=radio],[type=checkbox]),select,textarea{display:block;width:100%;min-width:0;background:var(--color-input);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:var(--space-3);min-height:50px;margin-bottom:var(--space-5);font-size:var(--text-base)}
input::placeholder{color:var(--color-muted);opacity:1}
.choices{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4);margin-bottom:var(--space-6)}
.choices label{display:flex;gap:var(--space-3);align-items:center;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer}
.choices label:has(input:checked){border-color:var(--color-primary);background:var(--color-soft)}
.tfc-question{margin-top:var(--space-8)}
.age-choice{margin-top:var(--space-6)}
.age-choice legend{font-size:var(--text-base);letter-spacing:normal;line-height:1.5}
.birthday-message{padding:var(--space-4);background:var(--color-soft);font-size:var(--text-sm);line-height:1.5;margin-bottom:var(--space-4)}
.birthday-message strong{display:inline-block;margin-bottom:var(--space-2);color:var(--color-primary);font-size:var(--text-lg)}
.assumption-notice{padding:var(--space-4);margin-bottom:var(--space-6);border:1px solid var(--color-border);background:var(--color-soft);font-size:var(--text-sm)}
.assumption-notice strong{display:block;margin-bottom:var(--space-2)}
.assumption-notice p{line-height:1.5}
.tfc-question legend{font-size:var(--text-base);letter-spacing:normal;line-height:1.5}
.tfc-choices{grid-template-columns:1fr}
input[type=radio],input[type=checkbox]{accent-color:var(--color-primary);width:20px;height:20px;flex-shrink:0;cursor:pointer}
.actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-8)}
.primary,.secondary{display:inline-flex;justify-content:center;align-items:center;gap:var(--space-8);min-height:50px;padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:700;text-decoration:none;border-radius:var(--radius-sm)}
.primary{background:var(--color-primary);color:var(--color-button-text);margin-left:auto}
.primary:hover{background:var(--color-primary-hover)}
.primary:active,.secondary:active{transform:translateY(1px)}
.secondary{border:1px solid var(--color-border);color:var(--color-text)}
.secondary:hover{background:var(--color-soft)}
.local-note{font-size:var(--text-xs);color:var(--color-muted);border-top:1px solid var(--color-border);padding-top:var(--space-5);margin-top:var(--space-8)}
.error{background:var(--color-error-bg);color:var(--color-error);padding:var(--space-3);font-size:var(--text-sm);margin-top:var(--space-4)}
.income-row{padding-top:var(--space-3)}
.income-top{display:flex;justify-content:space-between;gap:var(--space-3)}
.unknown{display:flex;gap:var(--space-2);align-items:center;min-height:44px;font-size:var(--text-sm)}
.scottish-check{margin-bottom:var(--space-5)}
.income-row input[type=text]{margin-bottom:var(--space-2)}
.income-row input:disabled{opacity:.55}
#stopped h2,#review h2{font-size:var(--text-xl);margin-block:var(--space-3) var(--space-5)}
#stopped p{margin-bottom:var(--space-5)}
#stopped button{margin-top:var(--space-3)}
#summary{font-size:var(--text-sm);resize:vertical;line-height:1.65;min-height:250px}
.ack{display:flex;align-items:flex-start;gap:var(--space-3);font-size:var(--text-sm)}
.ack input{margin-top:var(--space-1)}
.delivery,#draft-status{margin-top:var(--space-5);overflow-wrap:anywhere}
footer{display:flex;justify-content:space-between;gap:var(--space-4);border-top:1px solid var(--color-border);padding-block:var(--space-6);font-size:var(--text-xs);color:var(--color-muted)}
footer a{display:inline-block;padding-block:var(--space-3)}
.skip{position:absolute;top:-100px;left:var(--space-4);padding:var(--space-3);background:var(--color-surface);z-index:5}
.skip:focus{top:var(--space-4)}
.step:not([hidden]),#review:not([hidden]),#stopped:not([hidden]){animation:appear .2s ease}
@keyframes appear{from{opacity:.4}to{opacity:1}}
@media(max-width:800px){.wrap{padding-inline:var(--space-5)}.layout{grid-template-columns:1fr;gap:var(--space-8);padding-block:var(--space-8)}.intro{padding-top:0}.scope{margin-block:var(--space-6);padding-block:var(--space-4)}.intro .small{max-width:55ch}.lede{max-width:50ch}h1 br{display:none}.panel{padding:var(--space-6)}.masthead-label{max-width:15ch}.brand{gap:var(--space-2)}.brand img{width:108px;height:60px}footer{flex-direction:column;gap:0}}
@media(max-width:400px){.wrap{padding-inline:var(--space-4)}.panel{padding:var(--space-5)}.masthead{padding-block:var(--space-4)}.masthead-label{font-size:var(--text-xs);letter-spacing:.06em}.layout{padding-block:var(--space-6);gap:var(--space-6)}h1{font-size:var(--text-xl);margin-block:var(--space-3) var(--space-4)}.scope{margin-block:var(--space-4);padding-block:var(--space-3)}.choices{gap:var(--space-3)}.primary,.secondary{padding-inline:var(--space-4);gap:var(--space-2)}.income-top{display:block}}
