html{-webkit-text-size-adjust:100%}body{margin:0}img{max-width:100%}[hidden]{display:none!important}:root{color-scheme:light;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}:root{--bg: #f1f3f7;--surface: #fcfcfb;--ink: #12161d;--ink-2: #4b5462;--ink-3: #6c7583;--line: #dde1e8;--line-2: #c9ced8;--accent: #23397a;--accent-ink: #ffffff;--accent-soft: #e4e9f6;--good: #1b7a3a;--good-soft: #e3f3e8;--bad: #b3261e;--bad-soft: #fbe6e4;--s1: #2a78d6;--s2: #eb6834;--s3: #1baf7a;--s4: #eda100;--s5: #e87ba4;--s6: #008300;--s7: #6250d6;--s8: #e34948;--font-display: "Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, Consolas, monospace;--radius: 10px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #111317;--surface: #1a1b1e;--ink: #eef0f3;--ink-2: #b9c0cb;--ink-3: #8f97a4;--line: #2b2f37;--line-2: #3a3f49;--accent: #9db1ff;--accent-ink: #0f1424;--accent-soft: #232b45;--good: #63c683;--good-soft: #17301f;--bad: #ff8a80;--bad-soft: #3a1b19;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767;color-scheme:dark}}:root[data-theme=dark]{--bg: #111317;--surface: #1a1b1e;--ink: #eef0f3;--ink-2: #b9c0cb;--ink-3: #8f97a4;--line: #2b2f37;--line-2: #3a3f49;--accent: #9db1ff;--accent-ink: #0f1424;--accent-soft: #232b45;--good: #63c683;--good-soft: #17301f;--bad: #ff8a80;--bad-soft: #3a1b19;--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.5}.wrap{max-width:1280px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 40px;display:grid;gap:18px}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;margin:0}h1{font-size:1.75rem;font-weight:700;letter-spacing:-.01em}h2{font-size:1.1rem;font-weight:700}h3{font-size:.78rem;font-weight:500;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-family:var(--font-body)}p{margin:0}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.top{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:end;justify-content:space-between}.top .sub{color:var(--ink-2);margin-top:4px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.chip{font-size:.75rem;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--ink-2)}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line-2);background:var(--surface);color:var(--ink);padding:7px 12px;border-radius:8px;cursor:pointer;font-weight:500}.btn:hover{border-color:var(--accent)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.small{padding:4px 9px;font-size:.85rem}.btn:disabled{opacity:.5;cursor:not-allowed}.icon-btn{border:0;background:transparent;color:var(--ink-3);cursor:pointer;width:28px;height:28px;border-radius:6px;font-size:1.1rem;line-height:1;flex:none}.icon-btn:hover{background:var(--bad-soft);color:var(--bad)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.kpi{padding:14px 18px;display:grid;gap:2px;align-content:start;min-width:0}.kpi+.kpi{border-left:1px solid var(--line)}.kpi .val{font-family:var(--font-display);font-weight:700;font-size:1.7rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums}.kpi .note{color:var(--ink-3);font-size:.82rem}.pill{display:inline-flex;align-items:center;gap:4px;font-size:.75rem;font-weight:600;padding:1px 8px;border-radius:999px;justify-self:start}.pill.good{background:var(--good-soft);color:var(--good)}.pill.bad{background:var(--bad-soft);color:var(--bad)}@media (max-width: 820px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi:nth-child(3){border-left:0}.kpi:nth-child(n+3){border-top:1px solid var(--line)}}.work{display:grid;grid-template-columns:340px minmax(0,1fr);gap:18px;align-items:start}@media (max-width: 980px){.work{grid-template-columns:minmax(0,1fr)}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;display:grid;gap:14px;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.panel-head .hint{color:var(--ink-3);font-size:.82rem}.outputs{display:grid;gap:18px;min-width:0}.inputs{position:sticky;top:calc(env(safe-area-inset-top,0px) + 12px)}@media (max-width: 980px){.inputs{position:static}}.inputs details{border-top:1px solid var(--line);padding-top:12px}.inputs details:first-of-type{border-top:0;padding-top:0}.inputs summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}.inputs summary::-webkit-details-marker{display:none}.inputs summary:after{content:"▾";color:var(--ink-3);transition:transform .15s}.inputs details:not([open]) summary:after{transform:rotate(-90deg)}.inputs summary .total{color:var(--ink-2);font-size:.85rem;margin-left:auto;margin-right:8px}.fields{display:grid;gap:10px;margin-top:10px}.field{display:grid;gap:4px}.field label,.field .lbl{font-size:.8rem;color:var(--ink-2)}.field .help{font-size:.75rem;color:var(--ink-3)}.money,.pct{position:relative}.money:before{content:"£";position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-family:var(--font-mono);pointer-events:none}.pct:after{content:"%";position:absolute;right:9px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-family:var(--font-mono);pointer-events:none}input[type=text],input[type=number],select{width:100%;min-width:0;padding:6px 8px;border-radius:7px;border:1px solid var(--line-2);background:var(--bg)}input[type=number]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.money input{padding-left:20px}.pct input{padding-right:22px}input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-soft)}.checks{display:flex;flex-wrap:wrap;gap:6px}.checks label{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid var(--line-2);border-radius:999px;cursor:pointer;font-size:.82rem}.checks label:has(input:checked){background:var(--accent-soft);border-color:var(--accent)}.checks input{margin:0;accent-color:var(--accent)}.rows{display:grid;gap:6px}.row-head,.item-row{display:grid;gap:6px;align-items:center}.exp .row-head,.exp .item-row{grid-template-columns:minmax(0,1fr) 96px 28px}.debt .row-head,.debt .item-row{grid-template-columns:10px minmax(0,1fr) 82px 88px 28px}.row-head{font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block;flex:none}.stepper{display:flex;align-items:center;gap:6px}.stepper .cur{min-width:120px;text-align:center;font-family:var(--font-display);font-weight:700;font-size:1.05rem}.progress{display:grid;gap:6px}.progress .bar{height:6px;background:var(--line);border-radius:99px;overflow:hidden}.progress .bar span{display:block;height:100%;background:var(--good);border-radius:99px;transition:width .2s}.progress .txt{display:flex;justify-content:space-between;font-size:.82rem;color:var(--ink-2)}.check-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}@media (max-width: 700px){.check-cols{grid-template-columns:minmax(0,1fr)}}.check-list{list-style:none;margin:8px 0 0;padding:0;display:grid}.check-list li{border-top:1px solid var(--line)}.check-list li:first-child{border-top:0}.check-item{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:4px 10px;align-items:center;padding:8px 2px;cursor:pointer}.check-item input{width:17px;height:17px;margin:0;accent-color:var(--good)}.check-item .name{overflow-wrap:anywhere}.check-item .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.check-item .meta{grid-column:2 / -1;font-size:.78rem;color:var(--ink-3);display:flex;gap:8px;flex-wrap:wrap;align-items:center}.check-item:has(input:checked) .name,.check-item:has(input:checked) .amt{color:var(--ink-3);text-decoration:line-through}.tag{font-size:.7rem;font-weight:600;padding:0 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.05em}.tag.cleared{background:var(--good-soft);color:var(--good)}.tag.boost{background:var(--accent-soft);color:var(--ink-2)}.totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-top:1px solid var(--line);padding-top:12px}.totals div{display:grid}.totals span{font-size:.78rem;color:var(--ink-3)}.totals b{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500;font-size:1rem}.split{display:flex;height:26px;gap:2px;border-radius:6px;overflow:hidden;background:var(--surface)}.split div{min-width:2px}.split div:first-child{border-radius:4px 0 0 4px}.split div:last-child{border-radius:0 4px 4px 0}.payslip{width:100%;border-collapse:collapse}.payslip th,.payslip td{padding:6px 4px;text-align:right;border-top:1px solid var(--line)}.payslip th:first-child,.payslip td:first-child{text-align:left}.payslip thead th{border-top:0;font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-weight:500}.payslip td{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.payslip td:first-child{font-family:var(--font-body)}.payslip .lab{display:inline-flex;gap:8px;align-items:center}.payslip tr.sum td{font-weight:600;border-top:2px solid var(--line-2)}.payslip .neg{color:var(--ink-2)}.bands summary{cursor:pointer;color:var(--ink-2);font-weight:500;padding-block:2px}.bands[open] summary{margin-bottom:6px}.table-scroll{overflow-x:auto}.seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line-2);border-radius:8px;overflow:hidden}.seg label{position:relative;text-align:center;padding:6px 4px;cursor:pointer;font-size:.82rem}.seg label+label{border-left:1px solid var(--line-2)}.seg input{position:absolute;opacity:0;pointer-events:none}.seg label:has(input:checked){background:var(--accent);color:var(--accent-ink);font-weight:600}.seg label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px}.code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px}#taxCode{font-family:var(--font-mono);text-transform:uppercase}.help.err{color:var(--bad)}#target{width:100%;accent-color:var(--accent);margin:4px 0 0}#target:disabled{opacity:.4}#targetLabel{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink)}.range-ends{display:flex;justify-content:space-between;gap:8px;font-size:.72rem;color:var(--ink-3)}.target-read{font-size:.85rem;color:var(--ink-2)}.target-read b{color:var(--ink);font-weight:600}.foot a{color:var(--ink-2)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.82rem;color:var(--ink-2)}.legend span{display:inline-flex;align-items:center;gap:6px}.chart{position:relative}.chart svg{display:block;width:100%;height:auto;overflow:visible}.chart svg text{fill:var(--ink-3);font-family:var(--font-mono);font-size:11px}.chart .grid line{stroke:var(--line);stroke-width:1}.chart .cross{stroke:var(--ink-2);stroke-width:1;stroke-dasharray:3 3}.tip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:8px 10px;font-size:.8rem;min-width:170px;box-shadow:0 6px 20px #0000001f;display:grid;gap:3px;z-index:2}.tip .t{font-weight:600;margin-bottom:2px}.tip .r{display:grid;grid-template-columns:10px 1fr auto;gap:8px;align-items:center}.tip .r b{font-family:var(--font-mono);font-weight:400;font-variant-numeric:tabular-nums}.tip .r.total{border-top:1px solid var(--line);padding-top:3px;margin-top:2px;font-weight:600}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px}.plan{border-collapse:collapse;width:100%;font-size:.85rem}.plan th,.plan td{padding:7px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}.plan th:first-child,.plan td:first-child{text-align:left;position:sticky;left:0;background:var(--surface)}.plan thead th{font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:500;background:var(--surface)}.plan td{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.plan td:first-child{font-family:var(--font-body);font-weight:500}.plan tbody tr{cursor:pointer}.plan tbody tr:hover td,.plan tbody tr.sel td{background:var(--accent-soft)}.plan td.zero{color:var(--ink-3)}.plan td .ok{color:var(--good);font-family:var(--font-body);font-size:.75rem;margin-left:4px}.plan td.neg{color:var(--bad)}.foot{color:var(--ink-3);font-size:.8rem;display:grid;gap:4px;max-width:80ch}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:8px 14px;border-radius:8px;font-size:.85rem;z-index:20}.copybox{display:grid;gap:8px}.copybox textarea{width:100%;min-height:180px;font-family:var(--font-mono);font-size:.8rem;background:var(--bg);color:var(--ink);border:1px solid var(--line-2);border-radius:8px;padding:8px}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.tip{width:210px;min-width:0}.tag.less{background:var(--bad-soft);color:var(--bad)}.target-read .caution{color:var(--bad)}.range-ends span:nth-child(2):not(:last-child){text-align:center}.row-link{all:unset;cursor:pointer;font:inherit;font-weight:500}.row-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}.foot code{font-family:var(--font-mono);font-size:.9em}.copybox .hint{color:var(--ink-3);font-size:.82rem}
