:root{--bg: #f7f6f2;--panel: #ffffff;--ink: #122b3f;--muted: #5b6b77;--line: #dde2e4;--accent: #122b3f;--accent-ink: #ffffff;--gold: #c9955a;--water: #6f9a94;--water-deep: #4d7a74;--spent: #b9a58c;--spent-ink: #7d6547;--gain-ink: #3f6b66;--bucket-fill: rgba(18, 43, 63, .04);--bucket-rim: #122b3f;--tier-high: #b0563a;--tier-medium: #a5762f;--tier-low: #4d7a74;--radius: 14px;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #0c1620;--panel: #12212f;--ink: #e6edf2;--muted: #9aabb8;--line: #24384a;--accent: #e0ae6c;--accent-ink: #0c1620;--gold: #e0ae6c;--water: #7fa9a2;--water-deep: #5a8a83;--spent: #8a7a66;--spent-ink: #c8b498;--gain-ink: #8fbab3;--bucket-fill: rgba(230, 237, 242, .05);--bucket-rim: #b8c6d1;--tier-high: #ef9a7a;--tier-medium: #e0ae6c;--tier-low: #8fbab3;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.page{max-width:1180px;margin:0 auto;padding:32px 20px 48px}.masthead{margin-bottom:24px}.brand{display:flex;align-items:center;gap:14px}.brand img{width:56px;height:56px;display:block}.brand h1{margin:0;font-size:1.9rem;font-weight:400;letter-spacing:.32em;line-height:1}.tagline{margin:6px 0 0;font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--water-deep)}.masthead .intro{margin:16px 0 0;color:var(--muted);max-width:60ch}.layout{display:grid;grid-template-columns:minmax(300px,380px) 1fr;gap:20px;align-items:start}@media (max-width: 860px){.layout{grid-template-columns:1fr}}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.panel h2{margin:0 0 8px;font-size:1.1rem}fieldset{border:0;border-top:1px solid var(--line);margin:16px 0 0;padding:14px 0 0;display:grid;gap:12px}legend{padding:0 8px 0 0;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.field{display:grid;gap:4px}.field>span{font-weight:500}small,.hint-block,.empty-note{color:var(--muted);font-size:.82rem;margin:0}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}input[type=number],input:not([type]),.debt input{width:100%;min-width:0;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px 10px}input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}input[type=range]{width:100%;accent-color:var(--accent)}.prefixed{display:flex;align-items:center;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding-left:10px}.prefixed.suffix{padding:0 10px 0 0}.prefixed>span{color:var(--muted)}.prefixed input{border:0;background:transparent}.prefixed:focus-within{outline:2px solid var(--accent);outline-offset:1px}.prefixed input:focus-visible{outline:none}.toggle{display:flex;gap:10px;align-items:center;cursor:pointer}.toggle input{width:18px;height:18px;accent-color:var(--accent)}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;width:fit-content}.segmented button{font:inherit;color:inherit;background:transparent;border:0;padding:6px 14px;cursor:pointer}.segmented button.on{background:var(--accent);color:var(--accent-ink)}.debt{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.15fr) minmax(0,.8fr) auto;gap:6px;align-items:center}@media (max-width: 420px){.debt{grid-template-columns:1fr 1fr}.debt input[aria-label="Debt name"]{grid-column:1 / -1}}.debt input:not([type=checkbox]){padding-inline:6px}.debt-item{display:grid;gap:4px;padding-bottom:6px;border-bottom:1px dashed var(--line)}.toggle.small{font-size:.85rem;gap:8px}.toggle.small input{width:15px;height:15px}.after-tax{color:var(--gain-ink);font-weight:600}.remove{font:inherit;font-size:1.2rem;line-height:1;border:0;background:transparent;color:var(--muted);cursor:pointer;padding:6px}.add,.reset{font:inherit;color:var(--accent);background:transparent;border:1px dashed var(--line);border-radius:8px;padding:8px;cursor:pointer}.reset{margin-top:18px;width:100%;border-style:solid;color:var(--muted)}.results-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:18px}.eyebrow{margin:0;font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.headline{margin:2px 0 4px;font-size:1.6rem;letter-spacing:-.01em;color:var(--ink)}.headline:after{content:"";display:block;width:36px;height:3px;margin-top:6px;background:var(--gold)}.sub{margin:0;color:var(--muted);max-width:52ch}.pour{font:inherit;font-weight:600;background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:9px 18px;cursor:pointer}.flow{display:grid}.cell{overflow:visible;flex:none;display:block}.flow-source{display:flex;align-items:flex-start;gap:16px;height:64px}.source-label{margin:-2px 0 0;font-weight:600}.source-label span{display:block;font-weight:400;font-size:.85rem;color:var(--muted)}.flow-row{display:flex;gap:16px;height:120px}.row-label{padding-top:14px;min-width:0;overflow:hidden}.row-title{display:flex;align-items:center;gap:8px;font-weight:600;flex-wrap:wrap}.step{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:.75rem;background:var(--line);color:var(--ink)}.tier{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border:1px solid currentColor;border-radius:999px;padding:0 7px}.tier-high{color:var(--tier-high)}.tier-medium{color:var(--tier-medium)}.tier-low{color:var(--tier-low)}.row-amount{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;font-variant-numeric:tabular-nums}.chip{font-size:.75rem;border-radius:999px;padding:0 8px;background:var(--bucket-fill);color:var(--muted);border:1px solid var(--line)}.return{font-size:.78rem;color:var(--muted)}.status-full .chip{background:var(--water);color:#fff;border-color:transparent}.row-why,.row-detail{margin:2px 0 0;font-size:.82rem;color:var(--muted);display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.row-why{-webkit-line-clamp:2}.row-detail{-webkit-line-clamp:1;color:var(--ink)}.status-empty .row-label{opacity:.6}@media (max-width: 520px){.flow-row,.flow-source{gap:4px}.row-why{display:none}}.bucket-back{fill:var(--bucket-fill)}.bucket-rim{fill:none;stroke:var(--bucket-rim);stroke-width:2.5;stroke-linejoin:round}.water{fill:var(--water-deep)}.wave{fill:var(--water);animation:wave 2.4s linear infinite}.tap{fill:var(--gold)}.stream{fill:none;stroke:var(--water);stroke-width:7;stroke-linecap:round;stroke-dasharray:16 6;animation:flow .6s linear infinite}.stream.spent{stroke:var(--spent);stroke-width:5}.drain{fill:none;stroke:var(--spent);stroke-width:2}.source-label .spent-label{color:var(--spent-ink)}.bottomless{fill:var(--muted);font-size:11px;text-anchor:middle}@keyframes wave{to{transform:translate(40px)}}@keyframes flow{to{stroke-dashoffset:-22}}@media (prefers-reduced-motion: reduce){.wave,.stream{animation:none}}.skipped{margin-top:16px;color:var(--muted);font-size:.88rem}.skipped summary{cursor:pointer}.skipped ul{margin:8px 0 0;padding-left:18px}.footer{margin-top:28px;color:var(--muted);font-size:.82rem;max-width:75ch}.footer a{color:var(--accent)}.warning{margin:8px 0 0;padding:8px 12px;border-left:3px solid var(--tier-high);background:var(--bucket-fill);border-radius:6px;font-size:.88rem;max-width:52ch}.what-if{margin:0 0 18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bucket-fill)}.what-if.active{border-color:var(--gold)}.what-if-control{display:grid;gap:6px}.what-if-control input[type=range]{width:100%;accent-color:var(--gold)}.what-if-scale{display:flex;justify-content:space-between;font-size:.75rem;color:var(--muted)}.what-if-result p{margin:10px 0 0;font-size:.9rem}.what-if-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.what-if-actions button{font:inherit;font-size:.85rem;border-radius:999px;padding:5px 14px;cursor:pointer}.apply{background:var(--accent);color:var(--accent-ink);border:0;font-weight:600}.clear{background:transparent;color:var(--muted);border:1px solid var(--line)}.gain{color:var(--gain-ink);font-weight:600;font-size:.85rem}.steps{display:flex;gap:18px;margin:18px 0 0;padding:0;list-style:none;font-size:.8rem;font-weight:600;letter-spacing:.04em;color:var(--muted)}.steps li[aria-current=step]{color:var(--ink);border-bottom:2px solid var(--gold);padding-bottom:2px}.handoff{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:24px;padding:18px;border:1px solid var(--gold);border-radius:12px}.handoff>div{flex:1 1 280px}.handoff h3{margin:0 0 4px;font-size:1.05rem}.handoff p{margin:0;color:var(--muted);font-size:.9rem;max-width:60ch}.handoff .consent{margin-top:8px;font-size:.8rem}.plan-layout{display:grid;grid-template-columns:minmax(300px,400px) 1fr;gap:20px;align-items:start}@media (max-width: 860px){.plan-layout{grid-template-columns:1fr}}.plan-side{display:grid;gap:14px}.plan-side .what-if{margin:0}.back{justify-self:start;font:inherit;font-size:.85rem;color:var(--muted);background:transparent;border:0;padding:0;cursor:pointer}.back:hover{color:var(--ink)}.summary{list-style:none;margin:0;padding:0;display:grid;gap:10px}.summary-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.summary-title{display:flex;gap:8px;align-items:center;font-size:.88rem;font-weight:600;min-width:0}.summary-amount{font-size:.82rem;font-variant-numeric:tabular-nums;white-space:nowrap}.summary-amount .of{color:var(--muted)}.summary .step{width:20px;height:20px;font-size:.7rem;flex:none}.summary-row.status-empty{opacity:.6}.bar{position:relative;height:8px;margin-top:5px;border-radius:999px;background:var(--bucket-fill);border:1px solid var(--line);overflow:hidden}.bar-fill{height:100%;background:var(--water);border-radius:999px;transition:width .3s ease}.bar-tick{position:absolute;top:-1px;bottom:-1px;width:2px;background:var(--ink);opacity:.6}@media (prefers-reduced-motion: reduce){.bar-fill{transition:none}}.plan-chat{padding:0;display:flex}.chat{display:flex;flex-direction:column;width:100%;height:min(78vh,820px);min-height:460px}.chat-log{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.chat-empty h3{margin:0 0 4px}.chat-empty p{margin:0 0 14px;color:var(--muted);max-width:55ch}.starters{display:flex;flex-wrap:wrap;gap:8px}.starters button{font:inherit;font-size:.85rem;text-align:left;color:var(--ink);background:var(--bucket-fill);border:1px solid var(--line);border-radius:10px;padding:8px 12px;cursor:pointer}.starters button:hover{border-color:var(--gold)}.msg{max-width:85%;border-radius:12px;padding:10px 14px;overflow-wrap:anywhere}.msg-user{align-self:flex-end;background:var(--accent);color:var(--accent-ink);white-space:pre-wrap}.msg-assistant{align-self:flex-start;background:var(--bucket-fill);border:1px solid var(--line)}.msg-assistant>:first-child{margin-top:0}.msg-assistant>:last-child{margin-bottom:0}.msg-assistant p,.msg-assistant ul,.msg-assistant ol{margin:0 0 8px}.msg-assistant ul,.msg-assistant ol{padding-left:20px}.msg-assistant h1,.msg-assistant h2,.msg-assistant h3{font-size:1rem;margin:10px 0 6px}.msg-assistant table{border-collapse:collapse;font-size:.85rem;display:block;overflow-x:auto}.msg-assistant th,.msg-assistant td{border:1px solid var(--line);padding:4px 8px;text-align:left}.msg-assistant code{font-size:.85em}.thinking{display:flex;gap:5px;padding:14px}.thinking span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:blink 1.2s infinite ease-in-out}.thinking span:nth-child(2){animation-delay:.2s}.thinking span:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.25}40%{opacity:1}}@media (prefers-reduced-motion: reduce){.thinking span{animation:none;opacity:.6}}.chat-error{margin:0;color:var(--tier-high);font-size:.88rem}.chat-input{display:flex;gap:8px;align-items:flex-end;padding:12px 16px;border-top:1px solid var(--line)}.chat-input textarea{flex:1;resize:none;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:9px 12px;min-width:0}.chat-input textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.chat-input button{font:inherit;font-weight:600;border-radius:999px;padding:9px 18px;cursor:pointer;border:0}.send{background:var(--accent);color:var(--accent-ink)}.send:disabled{opacity:.45;cursor:default}.chat-input .stop{background:transparent;color:var(--ink);border:1px solid var(--line)}.chat-note{margin:0;padding:0 16px 12px;font-size:.75rem;color:var(--muted)}.gate-wrap{max-width:560px;margin:0 auto;display:grid;gap:14px;min-height:240px}.gate{background:var(--panel);border:1px solid var(--gold);border-radius:var(--radius);padding:24px;display:grid;gap:14px;justify-items:start}.gate h2{margin:0}.gate-price{margin:0;font-size:2rem;letter-spacing:-.01em}.gate-price span{font-size:1rem;font-weight:400;color:var(--muted)}.gate-includes{margin:0;padding-left:20px;display:grid;gap:4px}.gate-fine{margin:0;font-size:.82rem;color:var(--muted);max-width:52ch}.gate-note{margin:0;font-size:.88rem}.gate-dev{display:grid;gap:10px;width:100%}.gate .pour:disabled{opacity:.6;cursor:default}.account{display:grid;gap:2px;padding-top:12px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}.link{font:inherit;color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
