:root{--bg-dark: #060a14;--bg: var(--bg-dark);--surface: #141f34;--surface-hover: #1a2740;--surface-subtle: #20304e;--primary: #5768ff;--accent: var(--primary);--primary-light: #8e75ff;--accent-purple: #8e75ff;--accent-strong: #8e75ff;--text-primary: #f0f4ff;--text-secondary: #c0ccec;--border: #32466d;--bleed-band-blue: color-mix(in srgb, var(--bg) 70%, #214887 30%);--bleed-accent-bg: linear-gradient( 180deg, color-mix(in srgb, var(--bg) 72%, var(--accent) 28%) 0%, color-mix(in srgb, var(--bg) 78%, var(--accent-purple) 22%) 100% );--surface-on-bleed: color-mix(in srgb, var(--surface) 76%, var(--accent-purple) 24%);--space-1: 12px;--space-2: 16px;--space-3: 22px;--space-4: 28px;--space-5: 36px;--space-6: 44px;--group-gap: var(--space-5);--group-gap-tight: var(--space-3);--content-section-gap: var(--space-3);--section-band-padding: clamp(4rem, 6vw, 5.5rem);--section-header-color: var(--accent-strong);--section-header-weight: 500;--data-color-1: #5b8cff;--data-color-2: var(--accent-strong);--data-color-3: #6e5bff;--data-color-4: #c7b8ff;--data-color-5: color-mix(in srgb, var(--data-color-1) 58%, var(--data-color-4) 42%);--panel-width: 360px;--panel-min-width: 320px;--content-max-width: 1440px;--input-surface-faded: color-mix(in srgb, var(--bg) 86%, var(--surface) 14%);--input-border-faded: color-mix(in srgb, var(--border) 36%, transparent);--hero-scene-bg: radial-gradient(circle at 14% 18%, rgba(87, 104, 255, .62), transparent 50%), radial-gradient(circle at 86% 8%, rgba(156, 114, 255, .62), transparent 48%), radial-gradient(circle at 62% -8%, rgba(156, 114, 255, .36), transparent 52%), linear-gradient(180deg, #263f8f 0%, #1b3270 46%, #060a14 100%)}*{box-sizing:border-box}body{margin:0;background:var(--bg-dark);color:var(--text-primary);font-family:Inter,Segoe UI,Arial,sans-serif}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.hero{padding:calc(var(--section-band-padding) / 2) 0;background:var(--hero-scene-bg);border-bottom:1px solid var(--border);box-shadow:inset 0 -40px 80px #060a1473}.hero-inner{width:min(calc(var(--content-max-width) + 120px),calc(100% - (2 * var(--space-6))));margin:0 auto}.content>.hero{margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6))}.hero h1{margin:0;font-size:clamp(2.6rem,4vw,3.6rem);line-height:1.06;letter-spacing:-.02em}.hero p{margin:8px 0 0;color:var(--text-secondary)}.hero-actions{margin-top:var(--space-3)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:10px;padding:.55rem 1rem;font-size:.9rem;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background-color .16s ease,color .16s ease}.button-secondary{background:var(--surface-soft);border-color:color-mix(in srgb,var(--accent) 38%,var(--border));color:var(--text-primary)}.button-primary{background:color-mix(in srgb,var(--accent) 88%,var(--accent-purple) 12%);border-color:color-mix(in srgb,var(--accent) 60%,var(--border));color:var(--accent-contrast)}.button:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 46%,var(--border))}.button-primary:hover{background:color-mix(in srgb,var(--accent) 82%,var(--accent-purple) 18%);color:var(--accent-contrast)}.button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.button-secondary:hover{background:color-mix(in srgb,var(--accent-soft) 42%,var(--surface-soft) 58%);color:var(--text-primary);border-color:color-mix(in srgb,var(--accent) 62%,var(--border))}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.onboarding-layer{position:fixed;inset:0;z-index:210}.onboarding-dim{position:fixed;background:#070c18a8;backdrop-filter:blur(1px);-webkit-backdrop-filter:blur(1px)}.onboarding-spotlight-ring{position:fixed;border-radius:12px;border:1px solid color-mix(in srgb,var(--accent) 52%,white);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 28%,transparent);pointer-events:none}.onboarding-tooltip{position:fixed;margin:0;max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);overflow-y:auto;border-radius:12px;border:1px solid color-mix(in srgb,var(--border) 84%,transparent);background:color-mix(in srgb,var(--surface) 88%,#060b18 12%);box-shadow:0 20px 42px #0208167a;padding:var(--space-3);color:var(--text-primary)}.onboarding-tooltip p{margin:0;line-height:1.45;font-size:.9rem}.onboarding-tooltip-step{margin-bottom:8px!important;color:var(--text-secondary);font-size:.78rem!important;text-transform:uppercase;letter-spacing:.08em}.onboarding-tooltip-actions{margin-top:var(--space-3);display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.onboarding-tooltip-progress-actions{display:inline-flex;align-items:center;gap:var(--space-2)}.onboarding-tooltip[data-placement=mobile-bottom]{left:var(--space-2);right:var(--space-2);width:auto;max-width:none;max-height:min(52dvh,420px);border-radius:14px;padding-bottom:calc(var(--space-3) + env(safe-area-inset-bottom,0px))}.panel-toggle{display:none;width:100%;border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bleed-band-blue) 58%,transparent);backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);color:var(--text-primary);padding:var(--space-2) var(--space-3);font-size:.9rem;font-weight:600;text-align:left;align-items:center;gap:var(--space-1);position:sticky;top:0;z-index:30}.burger-icon{width:14px;display:inline-flex;flex-direction:column;gap:3px}.burger-icon span{display:block;width:14px;height:2px;border-radius:1px;background:var(--text-primary)}.main{display:flex;flex:1;min-height:0}.panel{width:var(--panel-width);min-width:var(--panel-min-width);height:100vh;overflow-y:auto;overflow-x:visible;position:relative;z-index:20;background:transparent;border-right:1px solid var(--border);padding:var(--space-4)}.panel::-webkit-scrollbar{width:0;height:0}.panel{scrollbar-width:none;-ms-overflow-style:none}.main-body{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;position:relative;z-index:10}.panel h2,.section-heading{margin:0;color:var(--text-primary);font-size:1.5rem;font-weight:600;line-height:1.2;letter-spacing:-.01em}.field{margin-bottom:var(--space-2);display:flex;flex-direction:column;gap:var(--space-1)}.field label{color:var(--text-secondary);font-size:.85rem}.field--top-control{margin-top:var(--space-2)}.mode-toggle{display:inline-flex;align-items:stretch;width:100%;border:1px solid var(--input-border-faded);border-radius:10px;overflow:clip;background:var(--input-surface-faded);padding:2px;gap:2px}.mode-toggle-option{flex:1 1 0;position:relative;min-width:0}.mode-toggle-option input{position:absolute;opacity:0;pointer-events:none}.mode-toggle-option span{display:flex;align-items:center;justify-content:center;padding:.6rem .8rem;border-radius:8px;font-size:.88rem;color:color-mix(in srgb,var(--text-secondary) 90%,transparent);cursor:pointer;user-select:none;transition:background-color .14s ease,color .14s ease,border-color .14s ease;border:1px solid transparent}.mode-toggle-option:hover span{background:color-mix(in srgb,var(--surface-soft) 72%,transparent);border-color:color-mix(in srgb,var(--border) 44%,transparent);color:var(--text-primary)}.mode-toggle-option.is-selected:hover span{background:color-mix(in srgb,var(--accent) 30%,var(--surface-soft) 70%);border-color:color-mix(in srgb,var(--accent) 40%,var(--border))}.mode-toggle-option.is-selected span{background:color-mix(in srgb,var(--accent) 24%,var(--surface-soft) 76%);color:var(--text-primary);font-weight:600;border-color:color-mix(in srgb,var(--accent) 34%,var(--border))}.label-with-info{display:inline-flex;align-items:center;gap:6px}.field input,.field select{background:var(--input-surface-faded);border:1px solid var(--input-border-faded);color:var(--text-primary);border-radius:8px;padding:var(--space-1) var(--space-2);box-shadow:inset 0 1px #ffffff05}.field input[type=range]{-webkit-appearance:none;appearance:none;background:transparent;border:none;box-shadow:none;padding:0;height:22px}.field input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--surface-subtle) 72%,var(--primary) 28%);border:1px solid color-mix(in srgb,var(--border) 78%,transparent)}.field input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;margin-top:-6px;width:16px;height:16px;border-radius:50%;background:var(--accent-strong);border:2px solid var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-strong) 26%,transparent)}.field input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--surface-subtle) 72%,var(--primary) 28%);border:1px solid color-mix(in srgb,var(--border) 78%,transparent)}.field input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent-strong);border:2px solid var(--surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-strong) 26%,transparent)}.range-markers{margin:2px 8px 0;display:flex;justify-content:space-between}.range-marker{color:var(--text-secondary);font-size:.72rem;line-height:1.2;min-width:20px;text-align:center}.range-value{color:var(--text-secondary);font-size:.8rem}.inputs-subtitle{margin:calc(var(--group-gap) + var(--space-5)) 0 var(--space-2);font-size:.75rem;text-transform:uppercase;color:color-mix(in srgb,var(--text-secondary) 84%,transparent);font-weight:400;letter-spacing:.1rem;padding-top:0;border-top:none}.panel h2+.inputs-subtitle{margin-top:var(--space-2);padding-top:0;border-top:none}.advanced-group{border:1px solid color-mix(in srgb,var(--border) 44%,transparent);border-radius:8px;background:transparent;margin-bottom:var(--group-gap-tight);padding:var(--space-2) var(--space-3) var(--space-2)}.advanced-group>summary{cursor:pointer;color:var(--text-primary);font-weight:600;margin:2px 0 8px}.content{flex:1;width:100%;max-width:none;margin:0;padding:0 var(--space-6) var(--space-6);display:flex;flex-direction:column;gap:0;min-height:0;overflow-y:auto}.mobile-panel-close-wrap{display:none}@media(max-width:640px){.onboarding-tooltip{max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.onboarding-tooltip-actions{flex-wrap:wrap}.onboarding-tooltip-actions .button{flex:1 1 100%}.onboarding-tooltip-progress-actions{width:100%;justify-content:flex-end;flex-wrap:wrap}.onboarding-tooltip-progress-actions .button{flex:1 1 calc(50% - var(--space-2));min-width:110px}}.content>section{padding-top:var(--section-band-padding);padding-bottom:var(--section-band-padding)}.kpis{margin:0;margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6));padding-left:0;padding-right:0;background:var(--bleed-accent-bg)}.content>.kpis{padding-top:calc(var(--section-band-padding) / 2);padding-bottom:calc(var(--section-band-padding) / 2)}.kpis-inner{width:min(var(--content-max-width),calc(100% - (2 * var(--space-6))));margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-2)}.card{position:relative;z-index:0;display:flex;flex-direction:column;background:color-mix(in srgb,var(--surface) 38%,transparent);border:1px solid color-mix(in srgb,var(--text-primary) 18%,transparent);border-radius:12px;padding:var(--space-3);backdrop-filter:blur(14px) saturate(125%);-webkit-backdrop-filter:blur(14px) saturate(125%);box-shadow:none;min-height:132px}.card h3{margin:0;font-size:.9rem;line-height:1.35;text-transform:none;color:color-mix(in srgb,var(--text-secondary) 84%,transparent);font-weight:400}.kpis .card h3{padding-right:20px;height:2.7em;overflow:hidden}.kpi-value{margin:var(--space-1) 0 0;margin-top:auto;font-size:2.2rem;font-weight:500;line-height:1.1}.tooltip-wrap{position:relative;display:inline-flex;align-items:center}.tooltip-corner{position:absolute;top:var(--space-1);right:var(--space-1)}.kpis .tooltip-corner{top:var(--space-3);left:var(--space-3);right:var(--space-3);display:flex;justify-content:flex-end;transform:translateY(-1px)}.kpis .tooltip-corner .tooltip-content{left:auto;right:0;top:calc(100% + 8px);transform:none;width:100%;max-width:100%;z-index:40}.kpis .card:hover,.kpis .card:focus-within{z-index:30}.info-icon{width:16px;height:16px;border-radius:50%;border:0;background:color-mix(in srgb,var(--text-secondary) 16%,transparent);color:var(--text-primary);font-size:11px;line-height:1;font-weight:700;display:inline-flex;align-items:center;justify-content:center;cursor:help;padding:0}.tooltip-content{position:absolute;right:0;top:calc(100% + 8px);transform:none;width:min(260px,60vw);padding:8px 10px;border-radius:8px;background:#0d162a;color:var(--text-primary);border:1px solid var(--border);box-shadow:0 10px 24px #02081480;text-transform:none;letter-spacing:0;font-size:.75rem;line-height:1.35;z-index:10;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease}.tooltip-content--center{left:50%;right:auto;transform:translate(-50%)}.tooltip-content--up{top:auto;bottom:calc(100% + 8px)}.tooltip-content--right{top:50%;left:calc(100% + 8px);right:auto;transform:translateY(-50%)}.tooltip-wrap:hover .tooltip-content,.tooltip-wrap:focus-within .tooltip-content{opacity:1;visibility:visible}.panel .field .label-with-info{position:relative;display:flex;align-items:flex-start;gap:8px;width:100%}.panel .field .label-with-info>span:first-child{flex:1 1 auto;min-width:0}.panel .field .label-with-info .tooltip-wrap{position:static;margin-left:auto;flex:0 0 auto}.panel .field .label-with-info .tooltip-content,.panel .field .label-with-info .tooltip-content--center,.panel .field .label-with-info .tooltip-content--right{left:auto;right:0;top:calc(100% + 8px);transform:none;width:100%;max-width:100%;z-index:221}.narrative-chart{width:100%;max-width:var(--content-max-width);margin:0 auto}.narrative-chart{display:grid;grid-template-columns:minmax(260px,360px) 1fr;row-gap:var(--space-3);column-gap:calc(var(--space-6) + 16px);align-items:stretch}.passive-income-section{margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6));padding-left:0;padding-right:0;max-width:none;background:var(--bleed-band-blue)}.passive-income-inner{width:min(var(--content-max-width),calc(100% - (2 * var(--space-6))));margin:0 auto}.savings-section{margin-left:calc(-1 * var(--space-6));margin-right:calc(-1 * var(--space-6));padding-left:0;padding-right:0;max-width:none;background:var(--bleed-band-blue)}.savings-inner{width:min(var(--content-max-width),calc(100% - (2 * var(--space-6))));margin:0 auto}.section-heading{grid-column:1 / -1;margin:0 0 var(--space-3)}.narrative-copy{padding:0 0 var(--space-1)}.narrative-copy p{margin:0 0 var(--space-2);color:var(--text-secondary);font-size:.9rem;line-height:1.45}.assumptions-section{grid-template-columns:1fr}.chart-takeaways{margin:0;padding-left:1rem;display:grid;gap:6px;color:var(--text-secondary);font-size:.84rem;line-height:1.4}.chart-takeaways+p{margin-top:var(--space-2)}.narrative-copy p.assumption-note{color:color-mix(in srgb,var(--text-secondary) 84%,transparent);font-size:.75rem;letter-spacing:.01em}.section-advice{margin-top:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-1) 0 var(--space-1) var(--space-2);border-left:2px solid var(--data-color-3)}.section-advice-title{margin:0 0 6px;color:var(--text-primary);font-size:.82rem;font-weight:600}.section-advice ul{margin:0;padding-left:1rem;display:grid;gap:6px;color:var(--text-secondary);font-size:.82rem;line-height:1.4}.section-advice--passive,.section-advice--assets,.section-advice--savings{border-left-color:var(--data-color-3)}.chart-takeaways strong{color:var(--text-primary)}.plot-card{background:transparent;border:none;border-radius:12px;padding:0 0 var(--space-3);min-height:420px;box-shadow:none}.section-subheading{margin:0 0 var(--space-2);padding-left:0;font-size:.88rem;text-transform:none;color:var(--text-primary);font-weight:700;letter-spacing:.01em}.chart-wrap{width:100%;height:360px}.passive-income-section .chart-wrap,.passive-income-section .recharts-wrapper,.passive-income-section .recharts-surface{overflow:visible}.chart-tooltip{background:#0d162a;border:1px solid #32466d;border-radius:10px;padding:10px 12px;min-width:190px}.chart-tooltip-label{margin:0 0 8px;color:var(--text-secondary);font-size:.8rem}.chart-tooltip-row{margin:0 0 6px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--text-primary);font-size:.82rem}.chart-tooltip-dot{width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:6px}.chart-tooltip-total{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);font-weight:700}.section-table{grid-column:1 / -1;margin-top:var(--space-3)}table{width:100%;border-collapse:separate;border-spacing:0;border:none;table-layout:auto;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}th,td{border-right:none;border-bottom:1px solid color-mix(in srgb,var(--text-primary) 9%,transparent);padding:var(--space-1);text-align:right;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:none}tbody td{font-size:.82rem}th:first-child,td:first-child{text-align:left}.table-expand-button{display:inline-flex;align-items:center;gap:4px;border:none;background:transparent;color:inherit;font:inherit;padding:0;cursor:pointer}.table-expand-icon{width:14px;height:14px;display:inline-grid;place-items:center}.table-expand-symbol{display:block;font-size:1rem;line-height:1;font-weight:500;transform:rotate(0);transform-origin:center;transition:transform .14s ease}.table-expand-button[aria-expanded=true] .table-expand-symbol{transform:rotate(90deg)}.table-detail-row td:first-child{padding-left:calc(var(--space-2) + 10px);color:var(--text-secondary)}thead th{color:var(--text-primary);font-size:.88rem;font-weight:700;text-transform:none;letter-spacing:.01em;background:transparent;border-bottom:1px solid color-mix(in srgb,var(--text-primary) 30%,transparent)}tbody tr:last-child td{border-bottom:none}thead th:last-child,tbody td:last-child{font-weight:700}.table-zero-value{color:color-mix(in srgb,var(--text-secondary) 78%,transparent)}.highlight-row td{font-weight:600;background:color-mix(in srgb,var(--surface-subtle) 32%,transparent);backdrop-filter:blur(6px) saturate(108%);-webkit-backdrop-filter:blur(6px) saturate(108%)}tr.total td{font-weight:600;background:color-mix(in srgb,var(--surface-subtle) 30%,transparent);backdrop-filter:blur(6px) saturate(108%);-webkit-backdrop-filter:blur(6px) saturate(108%)}.perf{color:var(--text-secondary);font-size:.8rem}.app-error{margin:var(--space-4);padding:var(--space-3);border:1px solid #ef4444;border-radius:8px;background:#1a0d12;color:#fecaca}.app-error pre{white-space:pre-wrap;word-break:break-word}@media(max-width:960px){:root{--mobile-gutter: 14px}.panel-toggle{display:inline-flex;position:sticky;top:0;z-index:60;padding-left:var(--mobile-gutter);padding-right:var(--mobile-gutter)}.app{height:auto;min-height:100vh;overflow:visible}.main{flex-direction:column;overflow:visible}.panel{width:100%;max-height:none;overflow:visible;border-right:0;border-bottom:1px solid var(--border);padding-left:var(--mobile-gutter);padding-right:var(--mobile-gutter)}.panel:not(.is-open){display:none}.panel.is-open{position:fixed;inset:0;width:100vw;height:100dvh;z-index:50;overflow-y:auto;overflow-x:visible;border-bottom:0;background:var(--bg);padding-top:calc(var(--space-4) + 40px);padding-left:var(--mobile-gutter);padding-right:var(--mobile-gutter)}.mobile-panel-close-wrap{display:block;position:sticky;bottom:0;padding-top:var(--space-2);padding-bottom:calc(var(--space-2) + env(safe-area-inset-bottom,0px));background:linear-gradient(to bottom,color-mix(in srgb,var(--bg) 0%,transparent) 0%,color-mix(in srgb,var(--bg) 84%,transparent) 32%,var(--bg) 100%);z-index:2}.mobile-panel-close-button{width:100%}.hero{padding-left:0;padding-right:0}.hero-inner{width:calc(100% - (2 * var(--mobile-gutter)))}.content>.hero{margin-left:calc(-1 * var(--mobile-gutter));margin-right:calc(-1 * var(--mobile-gutter))}.kpis,.passive-income-section,.savings-section{margin-left:calc(-1 * var(--mobile-gutter));margin-right:calc(-1 * var(--mobile-gutter))}.kpis-inner,.passive-income-inner,.savings-inner{width:calc(100% - (2 * var(--mobile-gutter)))}.kpis-inner{padding:0}.content{overflow:visible;min-height:auto;padding-left:var(--mobile-gutter);padding-right:var(--mobile-gutter);padding-bottom:var(--space-4)}.narrative-chart,.passive-income-inner,.savings-inner{min-width:0}.panel .tooltip-wrap{z-index:1}.panel .tooltip-wrap:hover,.panel .tooltip-wrap:focus-within{z-index:220}table.section-table{display:table;width:100%;table-layout:fixed;max-width:100%;overflow-x:visible;overflow-y:visible}table.section-table th,table.section-table td{white-space:normal;overflow-wrap:anywhere;word-break:break-word}table.section-table th:nth-child(3),table.section-table td:nth-child(3),table.section-table th:nth-child(4),table.section-table td:nth-child(4),table.section-table th:nth-child(6),table.section-table td:nth-child(6){display:none}}@media(max-width:1200px){.kpis-inner{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1320px){.narrative-chart{grid-template-columns:1fr}}@media(max-width:760px){.kpis-inner{grid-template-columns:1fr}th,td{padding:5px;font-size:.71rem;line-height:1.25}.kpi-value{font-size:1.9rem}}
