:root{--navy: #14213d;--red: #c8102e;--paper: #f7f3ea;--card: #ffffff;--teal: #2a9d8f;--amber: #e9a23b;--muted: #5b6475;--line: #e4ddcd;--radius: 18px;--shadow: 0 2px 10px rgba(20, 33, 61, .08);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--navy);background:var(--paper);font-size:17px;line-height:1.45}*{box-sizing:border-box}body{margin:0;-webkit-tap-highlight-color:transparent}#app{max-width:560px;margin:0 auto;padding:16px 16px 120px;padding-top:max(16px,env(safe-area-inset-top))}h1{font-size:28px;line-height:1.2;margin:8px 0 12px}h2{font-size:20px;margin:20px 0 8px}p,li{font-size:17px}button{font:inherit;font-size:17px;cursor:pointer;border:0;border-radius:14px;min-height:48px;padding:0 18px}button:disabled{opacity:.35;cursor:default}.primary{background:var(--red);color:#fff;font-weight:700;width:100%;margin:8px 0}.primary.big{min-height:56px;font-size:18px;box-shadow:0 6px 18px #c8102e4d}.secondary{background:var(--navy);color:#fff;width:100%;margin:8px 0;font-weight:600}.ghost{background:transparent;color:var(--navy);border:1.5px solid var(--line)}.lead{font-size:18px;color:var(--muted)}.start{text-align:center;padding-top:8px}.hero{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:24px;box-shadow:var(--shadow);background:#e8e1d2}.start .ghost{width:100%;margin-top:8px}.topbar{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;background:#f7f3eaf0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:10px 0;margin:-16px 0 4px}.year{font-weight:700;font-size:18px}.score{font-size:16px;color:var(--muted)}.budget{background:var(--navy);color:#fff;border-radius:999px;padding:10px 16px;font-weight:700;font-size:17px}.group{font-size:16px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px}.grid{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:520px){.grid{grid-template-columns:1fr 1fr}}.area{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px}.area.lever{border-left:5px solid var(--red)}.area-head{display:flex;align-items:center;gap:12px;width:100%;background:none;padding:0;text-align:left;color:inherit;min-height:0}.thumb{width:56px;height:56px;border-radius:14px;object-fit:cover;background:#ece6d8;flex:none}.thumb.small{width:44px;height:44px;border-radius:12px}.area-title{flex:1;display:flex;flex-direction:column;min-width:0}.area-name{font-weight:700;font-size:17px}.area-level{color:var(--muted);font-size:16px}.area-value{display:flex;flex-direction:column;align-items:flex-end}.num{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}.delta{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums}.delta.up{color:var(--teal)}.delta.down{color:var(--red)}.bar{position:relative;height:12px;background:#efe9dc;border-radius:999px;margin:12px 0 4px;overflow:hidden}.bar-fill,.bar-pending{position:absolute;inset:0 auto 0 0;border-radius:999px;transition:width .3s ease}.bar-fill.good{background:var(--teal)}.bar-fill.warn{background:var(--amber)}.bar-fill.bad{background:var(--red)}.bar-pending{background:repeating-linear-gradient(45deg,#9fd3cc,#9fd3cc 6px,#c9e8e3 6px,#c9e8e3 12px)}.stepper{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.step{width:56px;min-height:48px;padding:0;font-size:26px;font-weight:700;background:var(--paper);color:var(--navy);border:1.5px solid var(--line)}.step-val{font-size:20px;font-weight:800;color:var(--muted);font-variant-numeric:tabular-nums}.step-val.active{color:var(--red)}.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.sticky{position:fixed;left:0;right:0;bottom:0;padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:linear-gradient(transparent,var(--paper) 30%)}.sticky button{max-width:528px;display:block;margin:0 auto}.row{display:flex;gap:12px;background:var(--card);border-radius:var(--radius);padding:12px;margin:10px 0;box-shadow:var(--shadow)}.row-main{flex:1;min-width:0}.row-head{display:flex;justify-content:space-between;gap:8px;font-size:17px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.chip{font-size:16px;border-radius:999px;padding:4px 10px;background:#f1ece1}.chip.up{background:#dcf0ec;color:#17675d}.chip.down{background:#fbe1e5;color:#9b0c24}.chip.invest{background:var(--navy);color:#fff}.chip.event{background:#fbefd9;color:#8a5a0a}.event-card{background:#fff7e8;border:2px solid var(--amber);border-radius:var(--radius);padding:14px 16px}.event-card h2{margin-top:4px}.eyebrow{font-size:16px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#8a5a0a}.tipped{background:var(--red);color:#fff;border-radius:var(--radius);padding:14px 16px;margin:12px 0}.tipped h2{margin-top:0}.budget-box{background:var(--navy);color:#fff;border-radius:var(--radius);padding:14px 16px;margin:16px 0}.budget-box h2{margin-top:0}.budget-line{display:flex;justify-content:space-between;font-size:17px;padding:4px 0;border-top:1px solid rgba(255,255,255,.15)}.net{width:100%;height:auto;background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow)}.edge{stroke-linecap:round;opacity:.85}.edge.up{stroke:var(--teal)}.edge.down{stroke:var(--red)}.edge.dim{opacity:.08}.arrowhead{fill:var(--navy)}.node circle{fill:#fff;stroke:var(--navy);stroke-width:2.5}.node.lever circle{stroke:var(--red)}.node.sel circle{fill:var(--navy)}.node.sel text{fill:#fff}.node text{font-size:16px;font-weight:700;fill:var(--navy);pointer-events:none}.node{cursor:pointer}.effects .effect{background:var(--card);border-radius:14px;padding:10px 14px;margin:8px 0;box-shadow:var(--shadow)}.effects p{margin:6px 0 0;color:var(--muted)}.hist-row{background:var(--card);border-radius:var(--radius);padding:12px 14px;margin:10px 0;box-shadow:var(--shadow)}.spark svg{width:100%;height:90px;margin-top:6px}.spark .line{fill:none;stroke:var(--red);stroke-width:3;vector-effect:non-scaling-stroke}.spark .axis{stroke:var(--line);stroke-width:2;vector-effect:non-scaling-stroke}.spark .mid{stroke:var(--line);stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.help ol{padding-left:22px}.help li{margin:8px 0}.end{text-align:center}
