:root{font-size:17px}
:root[data-size="125"]{font-size:21.25px}:root[data-size="150"]{font-size:25.5px}:root[data-size="175"]{font-size:29.75px}:root[data-size="200"]{font-size:34px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}a{color:var(--accent);text-underline-offset:.2em}button,input,select{font:inherit}button{cursor:pointer;background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:.55rem;padding:.58rem .8rem;min-height:44px;line-height:1.3}button:hover{border-color:var(--accent);background:var(--soft)}button:disabled{cursor:not-allowed;opacity:.5}button.primary,button[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}input,select{width:100%;min-width:0;border:1px solid var(--line);border-radius:.4rem;background:var(--surface);color:var(--text);padding:.55rem .6rem;min-height:44px}input[type=checkbox]{width:1.2rem;min-height:1.2rem;margin-right:.6rem;vertical-align:middle;accent-color:var(--accent)}label{display:block;color:var(--muted);font-size:0.875rem;font-weight:600}label input,label select{display:block;margin-top:.28rem;font-weight:400}label input[type=checkbox]{display:inline-block}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.2rem,5vw,4.4rem);line-height:1.08;letter-spacing:-.05em;font-weight:650;margin-bottom:1rem}h2{font-size:1.45rem;line-height:1.23;letter-spacing:-.025em}h3{font-size:1.03rem;line-height:1.35;margin-bottom:.75rem}p{margin-bottom:1rem}small{display:block;font-size:0.875rem;line-height:1.5;color:var(--muted)}[hidden]{display:none!important}.skip{position:absolute;left:1rem;top:-100px;z-index:5;background:var(--surface);padding:1rem}.skip:focus{top:1rem}.site-header{max-width:1530px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.4rem 2rem;border-bottom:1px solid var(--line)}.brand{font-size:1.45rem;font-weight:750;text-decoration:none;color:var(--text);line-height:1.2}.brand span{font-weight:400}.brand small{font-weight:400;margin-top:.35rem}.header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;font-size:0.875rem}.header-actions select{max-width:9rem}.header-actions label{font-size:0.875rem}main{max-width:1530px;padding:0 2rem;margin:auto}.intro{padding:3.7rem 0 2rem;max-width:850px}.intro>p:last-child{max-width:690px;color:var(--muted);font-size:1.08rem}.eyebrow{font-size:0.875rem;letter-spacing:.16em;font-weight:750;color:var(--accent);margin-bottom:.8rem}.library{border:1px solid var(--line);border-radius:1rem;background:var(--surface);padding:1.5rem;margin-bottom:1.6rem}.library h2{margin-bottom:.3rem}.library-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:850px;margin-bottom:1rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;margin:.8rem 0}#storage-state{margin:.7rem 0 .3rem;font-size:.88rem;font-weight:650}#plan-state{color:var(--muted);font-size:.88rem}.hint{font-size:0.875rem;line-height:1.65;color:var(--muted)}.notice{border:1px solid var(--line);border-left:4px solid var(--accent);padding:1rem;background:var(--soft);border-radius:.4rem;overflow-wrap:anywhere}.error,.warning{color:var(--warning);background:var(--warn-bg);border-color:var(--warning)}.workspace{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.6fr);gap:1.6rem;align-items:start;scroll-margin-top:1rem}.editor{background:var(--surface);border:1px solid var(--line);border-radius:.9rem;min-width:0;overflow:hidden}.tabs{display:flex;flex-wrap:wrap;gap:.3rem;border-bottom:1px solid var(--line);padding:.8rem}.tabs button{font-size:0.875rem;border-color:transparent}.tabs button[aria-selected=true]{background:var(--soft);border-color:var(--line);color:var(--accent);font-weight:700}#editor-panel{padding:1.2rem;min-width:0}.field{margin-bottom:.8rem}.pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.65rem}.source-card{border:1px solid var(--line);padding:1rem;border-radius:.65rem;margin:1rem 0;min-width:0}.source-card h3{overflow-wrap:anywhere}.remove{font-size:0.875rem;min-height:36px;padding:.35rem .5rem;float:right;margin:0 0 .7rem .5rem}.add{border-style:dashed;width:100%;color:var(--accent);font-weight:650}.sub-card{padding:.8rem;border:1px solid var(--line);border-radius:.4rem;margin:.8rem 0;background:var(--bg)}.sub-card .pair{margin:0}.order-row{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-bottom:1px solid var(--line);padding:.7rem 0;font-size:0.875rem;overflow-wrap:anywhere}.order-row>span{min-width:0}.order-row>div{display:flex;gap:.25rem}.order-row button{padding:.4rem .6rem}.results{min-width:0}.result-heading,.card-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.result-heading h2{font-size:1.8rem}.badge{font-size:0.875rem;border:1px solid var(--line);border-radius:3rem;padding:.4rem .7rem;color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}.metric{border:1px solid var(--line);border-radius:.7rem;padding:1rem;background:var(--surface);min-width:0}.metric.emphasis{background:var(--accent);color:var(--on-accent)}.metric.emphasis small{color:inherit;opacity:.9}.metric-label{font-size:0.875rem;margin-bottom:.4rem}.metric strong{font-size:clamp(1.2rem,2.4vw,1.9rem);line-height:1.2;letter-spacing:-.025em;display:block;margin-bottom:.4rem;overflow-wrap:anywhere}.outcome{font-size:0.875rem;border-left:3px solid var(--accent);padding:.85rem 1rem;background:var(--soft)}.outcome.warning{border-color:var(--warning)}.result-card{padding:1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:.8rem;margin-bottom:1rem;min-width:0}.toggle{display:flex;gap:.3rem;flex-wrap:wrap}.toggle button{font-size:0.875rem}.table-scroll{overflow:auto;max-width:100%;margin:.7rem 0}table{border-collapse:collapse;width:100%;font-size:0.875rem}th,td{text-align:right;padding:.75rem .55rem;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}th{font-size:0.875rem;color:var(--muted);font-weight:650}th:first-child,td:first-child{text-align:left;white-space:normal;min-width:100px;overflow-wrap:anywhere}td small{font-size:0.875rem;max-width:16rem;white-space:normal}.gain{color:var(--accent)}.loss{color:var(--warning)}#chart svg{display:block;width:100%;height:auto}.chart-grid{stroke:var(--line);stroke-width:1}.chart-label{fill:var(--muted);font-size:12px}.chart-area{fill:var(--accent);opacity:.08}.chart-line{stroke:var(--accent);stroke-width:3;fill:none}.retirement-marker{stroke:var(--warning);stroke-dasharray:5 5}.card-heading label{width:7rem;font-size:0.875rem}summary{cursor:pointer;font-size:.9rem;font-weight:650;min-height:44px;padding:.5rem 0;overflow-wrap:anywhere}details>p{font-size:0.875rem;color:var(--muted)}.methodology{max-width:900px;margin:4rem 0 2.5rem;border-top:1px solid var(--line);padding-top:2rem}.methodology h2{font-size:2rem}.methodology>p{color:var(--muted)}.disclaimer{font-size:0.875rem;margin-top:1.5rem}footer{max-width:1530px;margin:auto;padding:1.5rem 2rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;font-size:0.875rem;color:var(--muted)}dialog{max-width:550px;width:calc(100% - 2rem);background:var(--surface);color:var(--text);border:1px solid var(--line);border-radius:1rem;padding:1.5rem}dialog::backdrop{background:#0008}
@media(max-width:1000px){.workspace{grid-template-columns:1fr}.site-header{align-items:start}.intro{padding-top:2.5rem}.editor{max-height:none}.header-actions>a{flex-basis:100%}.results{margin-top:1rem}}
@media(max-width:520px){main{padding:0 .8rem}.site-header{padding:1rem .8rem;flex-direction:column}.header-actions{gap:.7rem;align-items:end}.header-actions>a{flex-basis:auto}.library{padding:1rem}.library-fields{grid-template-columns:1fr}.pair{grid-template-columns:1fr;gap:0}.metrics{grid-template-columns:1fr}.intro{padding:2rem 0 1rem}#editor-panel,.result-card{padding:.85rem}.source-card{padding:.75rem}.result-heading h2{font-size:1.5rem}.toolbar button{flex-grow:1}.tabs button{flex-grow:1}.methodology h2{font-size:1.6rem}footer{padding:1rem .8rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
h1,h2,h3,p,label,button{overflow-wrap:anywhere}.field,.pair{min-width:0}@media(max-width:520px){.pair,.library-fields{grid-template-columns:minmax(0,1fr)}}
