*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #FAF7F3;--color-surface: #ffffff;--color-surface-2: #F5EFE8;--color-surface-3: #EDE7DD;--color-border: #DDD5C8;--color-border-light: #C9BFAF;--color-text: #0a0907;--color-text-muted: #6B5E52;--color-text-subtle: #9C8E80;--color-primary: #E8622A;--color-primary-hover: #C4451A;--color-primary-dim: rgba(232, 98, 42, .08);--color-accent: #0a0907;--color-accent-hover: #231f1a;--color-success: #2D8F6F;--color-success-dim: rgba(45, 143, 111, .08);--color-warning: #C4A844;--color-warning-dim: rgba(196, 168, 68, .08);--color-danger: #C4451A;--color-danger-dim: rgba(196, 69, 26, .08);--color-rrsp: #E8622A;--color-tfsa: #2D8F6F;--color-nonreg: #9B6B3D;--color-cpp: #C4451A;--color-oas: #C4A844;--color-db: #5a8a6e;--color-ploc: #A0382A;--color-mc-band: var(--color-primary);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--spacing-3xl: 64px;--font-sans: "Instrument Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Cormorant Garamond", "Georgia", serif;--font-mono: "DM Mono", "SF Mono", "Fira Code", monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-base: 14px;--font-size-md: 15px;--font-size-lg: 18px;--font-size-xl: 22px;--font-size-2xl: 28px;--font-size-3xl: 36px;--font-size-hero: 42px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(10, 9, 7, .04);--shadow-md: 0 2px 8px rgba(10, 9, 7, .06);--shadow-lg: 0 4px 16px rgba(10, 9, 7, .08);--nav-height: 56px;--content-max-width: 1200px;--sidebar-width: 380px;--input-panel-width: 380px;--header-height: 56px;--ember-core: #E8622A;--ember-mid: #C4451A;--ember-glow: #F59C5A;--ember-warm: #FBBF7C;--ash: #8C7B6B}[data-theme=dark]{--color-bg: #0a0907;--color-surface: #1a1713;--color-surface-2: #231f1a;--color-surface-3: #2e2921;--color-border: #2e2921;--color-border-light: #3d352a;--color-text: #F5EFE8;--color-text-muted: #8C7B6B;--color-text-subtle: #5a4f44;--color-primary: #E8622A;--color-primary-hover: #F59C5A;--color-primary-dim: rgba(232, 98, 42, .15);--color-accent: #F5EFE8;--color-accent-hover: #C4B4A4;--color-success: #5cba7d;--color-success-dim: rgba(92, 186, 125, .12);--color-warning: #e8d06a;--color-warning-dim: rgba(232, 208, 106, .12);--color-danger: #f0866a;--color-danger-dim: rgba(240, 134, 106, .12);--color-rrsp: #E8622A;--color-tfsa: #5cba7d;--color-nonreg: #C4A844;--color-cpp: #F59C5A;--color-oas: #FBBF7C;--color-db: #5cba7d;--color-ploc: #f0866a;--color-mc-band: var(--color-primary);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6)}html,body{height:100%;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:1.6;letter-spacing:.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease}body:before{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.04'/%3E%3C/svg%3E");pointer-events:none;z-index:1000;opacity:.25}#root{height:100%}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--color-text)}a{color:var(--color-primary);text-decoration:none}input,select,textarea,button{font-family:inherit;font-size:inherit}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{opacity:.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-light)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.top-nav{display:flex;align-items:center;height:var(--nav-height);padding:0 var(--spacing-lg);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.top-nav__brand{display:flex;align-items:center;gap:var(--spacing-sm);min-width:160px}.top-nav__wordmark{font-family:var(--font-display);font-size:24px;font-weight:300;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text);line-height:1}.top-nav__wordmark-fi{background:linear-gradient(135deg,var(--ember-glow),var(--ember-core));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.top-nav__tabs{display:flex;gap:var(--spacing-xs);margin:0 auto}.top-nav__tab{background:none;border:none;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-base);font-weight:500;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:color .15s,background .15s;letter-spacing:.02em}.top-nav__tab:hover{color:var(--color-text);background:var(--color-surface-3)}.top-nav__tab--active{color:var(--color-primary);background:var(--color-primary-dim)}.top-nav__actions{display:flex;align-items:center;gap:var(--spacing-sm);min-width:160px;justify-content:flex-end}.top-nav__icon-btn{background:none;border:1px solid var(--color-border);width:36px;height:36px;border-radius:var(--radius-full);cursor:pointer;font-size:var(--font-size-md);color:var(--color-text-muted);display:flex;align-items:center;justify-content:center;transition:border-color .15s,color .15s}.top-nav__icon-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.top-nav__share-wrapper{position:relative;display:flex;align-items:center}.top-nav__share-toast{position:absolute;top:100%;right:0;margin-top:var(--spacing-xs);padding:4px 10px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-text);background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;animation:share-toast-fade 2s ease-out forwards;z-index:200}@keyframes share-toast-fade{0%,70%{opacity:1}to{opacity:0}}.top-nav__hamburger{display:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:36px;height:36px;padding:0;background:none;border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:border-color .15s}.top-nav__hamburger:hover{border-color:var(--color-primary)}.top-nav__hamburger-line{display:block;width:16px;height:2px;background:var(--color-text-muted);border-radius:1px;transition:transform .25s ease,opacity .2s ease,background .15s}.top-nav__hamburger:hover .top-nav__hamburger-line{background:var(--color-primary)}.top-nav__hamburger--open .top-nav__hamburger-line:nth-child(1){transform:translateY(6px) rotate(45deg)}.top-nav__hamburger--open .top-nav__hamburger-line:nth-child(2){opacity:0}.top-nav__hamburger--open .top-nav__hamburger-line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.top-nav__overlay,.top-nav__mobile-menu{display:none}@media(max-width:767px){.top-nav{padding:0 var(--spacing-md);flex-wrap:wrap}.top-nav__brand{min-width:unset;flex:1}.top-nav__tabs{display:none}.top-nav__actions{min-width:unset;gap:var(--spacing-xs)}.top-nav__hamburger{display:flex}.top-nav__overlay{display:block;position:fixed;inset:0;top:var(--nav-height);background:#0006;z-index:98;animation:topnav-fade-in .2s ease}.top-nav__mobile-menu{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--spacing-sm) 0;z-index:99;animation:topnav-slide-down .2s ease;box-shadow:0 8px 24px #00000026}.top-nav__mobile-tab{background:none;border:none;padding:var(--spacing-md) var(--spacing-lg);font-family:var(--font-sans);font-size:var(--font-size-base);font-weight:500;color:var(--color-text-muted);cursor:pointer;text-align:left;letter-spacing:.02em;transition:color .15s,background .15s}.top-nav__mobile-tab:hover{color:var(--color-text);background:var(--color-surface-3)}.top-nav__mobile-tab--active{color:var(--color-primary);background:var(--color-primary-dim);border-left:3px solid var(--color-primary)}}@keyframes topnav-slide-down{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes topnav-fade-in{0%{opacity:0}to{opacity:1}}.app-shell{min-height:100vh;background:var(--color-bg)}.app-shell__content{max-width:var(--content-max-width);margin:0 auto;padding:var(--spacing-xl) var(--spacing-lg)}@media(max-width:768px){.app-shell__content{padding:var(--spacing-md) var(--spacing-sm)}}.tooltip-wrapper{position:relative;display:inline-flex;align-items:center}.tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--color-surface-3);border:1px solid var(--color-border-light);font-size:10px;color:var(--color-text-muted);cursor:help}.tooltip-bubble{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--color-surface-3);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text);white-space:nowrap;max-width:260px;white-space:normal;z-index:1000;box-shadow:var(--shadow-md);pointer-events:none}.number-input{display:flex;flex-direction:column;gap:var(--spacing-xs)}.number-input__label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.number-input__wrapper{display:flex;align-items:center;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .15s}.number-input__wrapper:focus-within{border-color:var(--color-primary)}.number-input__prefix,.number-input__suffix{padding:0 var(--spacing-sm);font-family:var(--font-mono);font-size:12px;color:var(--color-text-subtle);white-space:nowrap;-webkit-user-select:none;user-select:none}.number-input__field{flex:1;min-width:0;padding:6px var(--spacing-sm);background:transparent;border:none;outline:none;color:var(--color-text);font-family:var(--font-mono);font-size:13px;text-align:right}.number-input__wrapper--error{border-color:var(--color-danger)}.number-input__wrapper--error:focus-within{border-color:var(--color-danger)}.number-input__error{font-size:var(--font-size-xs);color:var(--color-danger);line-height:1.3}.select-input{display:flex;flex-direction:column;gap:var(--spacing-xs)}.select-input__label{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.select-input__field{padding:6px var(--spacing-sm);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;appearance:auto;transition:border-color .15s;min-width:0;width:100%}.select-input__field:focus{outline:none;border-color:var(--color-primary)}.select-input__field option{background:var(--color-surface-2)}.toggle{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.toggle__track{position:relative;display:inline-block;width:36px;height:20px;background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:10px;transition:background .2s,border-color .2s;flex-shrink:0}.toggle__input:checked~.toggle__track{background:var(--color-primary);border-color:var(--color-primary)}.toggle__thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;background:var(--color-surface);border-radius:50%;transition:transform .2s}.toggle__input:checked~.toggle__track .toggle__thumb{transform:translate(16px)}.toggle__label{font-size:var(--font-size-sm);color:var(--color-text-muted)}.planning-inputs{display:flex;flex-wrap:wrap;gap:var(--spacing-md)}.planning-inputs>.planning-card{flex:1 1 340px;align-self:start}.planning-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.planning-card__header{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-md) var(--spacing-lg);background:none;border:none;cursor:pointer;text-align:left;color:var(--color-text);transition:background .15s}.planning-card__header:hover{background:var(--color-surface-2)}.planning-card__title{font-size:var(--font-size-md);font-weight:600}.planning-card__summary{font-size:var(--font-size-sm);color:var(--color-text-muted);font-weight:400}.planning-card__chevron{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-subtle)}.planning-card__fields{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:0 var(--spacing-lg) var(--spacing-md)}.planning-card__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);align-items:start}.planning-card__toggle-cell{display:flex;align-items:flex-end;min-height:100%;padding-top:calc(var(--font-size-sm) + var(--spacing-xs))}@media(max-width:480px){.planning-card__row{grid-template-columns:1fr}.planning-card__toggle-cell{padding-top:0}}.metric-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs);min-height:80px}.metric-card--warning{border-color:var(--color-warning);background:var(--color-warning-dim)}.metric-card--danger{border-color:var(--color-danger);background:var(--color-danger-dim)}.metric-card--success{border-color:var(--color-success)}.metric-card__label{font-family:var(--font-mono);font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);white-space:nowrap}.metric-card__value-row{display:flex;align-items:baseline;gap:var(--spacing-xs);flex-wrap:wrap}.metric-card__value{font-family:var(--font-display);font-size:26px;font-weight:300;color:var(--color-text);font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1.1}.metric-card__delta{font-family:var(--font-mono);font-size:10px;font-weight:400;font-variant-numeric:tabular-nums;border-radius:4px;padding:1px 5px;letter-spacing:.05em}.metric-card__delta--good{color:var(--color-success);background:color-mix(in srgb,var(--color-success) 12%,transparent)}.metric-card__delta--bad{color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 12%,transparent)}.metric-card__context{font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:1.3}.clawback-warning{background:var(--color-warning-dim);border:1px solid var(--color-warning);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.clawback-warning__header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;font-weight:600;font-size:var(--font-size-sm);color:var(--color-warning);cursor:pointer;text-align:left}.clawback-warning__toggle{flex-shrink:0;font-size:var(--font-size-xs)}.clawback-warning__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:2px var(--spacing-lg);max-height:200px;overflow-y:auto;padding:0 var(--spacing-md) var(--spacing-md)}.clawback-warning__row{display:flex;justify-content:space-between;color:var(--color-text-muted);gap:var(--spacing-sm);padding:2px 0}.summary-tab{display:flex;flex-direction:column;gap:var(--spacing-md)}.summary-tab__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:var(--spacing-sm)}.tab-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-md)}.chart-tooltip{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);font-family:var(--font-mono);font-size:12px;box-shadow:var(--shadow-md);min-width:180px;position:relative;z-index:100}.chart-tooltip__title{font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-xs);padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border);display:flex;flex-direction:column;gap:2px}.chart-tooltip__title-ages{font-size:var(--font-size-xs);font-weight:400;color:var(--color-text-muted)}.chart-tooltip__row{display:flex;align-items:center;gap:var(--spacing-xs);padding:2px 0}.chart-tooltip__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.chart-tooltip__name{color:var(--color-text-muted);flex:1}.chart-tooltip__value{font-weight:600;color:var(--color-text);font-variant-numeric:tabular-nums}.chart-tooltip__columns{display:flex;gap:var(--spacing-md)}.chart-tooltip__column{flex:1;min-width:0}.chart-tooltip__column+.chart-tooltip__column{padding-left:var(--spacing-md);border-left:1px solid var(--color-border)}.chart-tooltip__group{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--color-border)}.chart-tooltip__column .chart-tooltip__group,.chart-tooltip__group:first-child{margin-top:0;padding-top:0;border-top:none}.chart-tooltip__subtotal{margin-top:2px;padding-top:2px;border-top:1px dashed var(--color-border);opacity:.75}.chart-tooltip__subtotal .chart-tooltip__name{color:var(--color-text-muted);font-style:italic;font-size:var(--font-size-xs)}.chart-tooltip__subtotal .chart-tooltip__value{font-size:var(--font-size-xs);font-weight:600}.chart-tooltip__total{margin-top:var(--spacing-xs);padding-top:var(--spacing-xs);border-top:1px solid var(--color-border)}.chart-tooltip__total .chart-tooltip__name{color:var(--color-text);font-weight:600}.mc-tooltip__row{display:flex;justify-content:space-between;gap:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-muted);padding:1px 0}.mc-tooltip__row--median{font-weight:700;color:var(--color-text)}.mc-tooltip__row--det{border-top:1px solid var(--color-border);margin-top:2px;padding-top:3px;color:var(--color-text-subtle)}.chart-tab{flex:1;display:flex;flex-direction:column;padding:var(--spacing-md);min-height:0}.chart-tab .recharts-tooltip-wrapper{z-index:100!important}.chart-tab__title{font-family:var(--font-display);font-size:20px;font-weight:300;color:var(--color-text);margin-bottom:var(--spacing-md);flex-shrink:0}.chart-tab__view-toggle{display:flex;gap:2px;margin-bottom:var(--spacing-sm);flex-shrink:0}.chart-tab__view-btn{background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-mono);font-size:10px;font-weight:400;letter-spacing:.05em;padding:3px 10px;cursor:pointer;border-radius:var(--radius-sm);transition:background .15s,color .15s}.chart-tab__view-btn:hover{background:var(--color-surface-3);color:var(--color-text)}.chart-tab__view-btn--active{background:var(--color-primary-dim);border-color:var(--color-primary);color:var(--color-primary);cursor:default}.chart-tab .recharts-legend-wrapper{padding-top:10px!important}.chart-tab .recharts-legend-item{margin-right:12px!important;margin-bottom:2px!important}.chart-tab .recharts-legend-item-text{color:var(--color-text-muted)!important;font-size:11px!important}.chart-tab .recharts-legend-item .recharts-surface{width:12px!important;height:12px!important;margin-right:4px!important}.table-tab{flex:1;overflow:hidden;display:flex;flex-direction:column}.table-tab__scroll{flex:1;overflow:auto}.proj-table{width:100%;border-collapse:separate;border-spacing:0;font-family:var(--font-mono);font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.proj-table thead tr{background:var(--color-surface)}.proj-table th{padding:8px 12px;text-align:right;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap;position:sticky;top:0;z-index:2;background:var(--color-surface)}.proj-table th:nth-child(1),.proj-table td:nth-child(1){position:sticky;left:0;z-index:3;background:var(--color-surface);text-align:left;padding-left:var(--spacing-md)}.proj-table th:nth-child(2),.proj-table td:nth-child(2){position:sticky;left:60px;z-index:3;background:var(--color-surface)}.proj-table th:nth-child(3),.proj-table td:nth-child(3){position:sticky;left:110px;z-index:3;background:var(--color-surface);border-right:2px solid var(--color-border-light)}.proj-table th:nth-child(1),.proj-table th:nth-child(2),.proj-table th:nth-child(3){z-index:4}.proj-table td{padding:6px 12px;text-align:right;border-bottom:1px solid var(--color-border);color:var(--color-text)}.proj-table tbody tr:nth-child(2n) td{background:var(--color-surface)}.proj-table tbody tr:nth-child(odd) td{background:var(--color-surface-2)}.proj-table tbody tr:nth-child(2n) td:nth-child(1),.proj-table tbody tr:nth-child(2n) td:nth-child(2),.proj-table tbody tr:nth-child(2n) td:nth-child(3){background:var(--color-surface)}.proj-table tbody tr:nth-child(odd) td:nth-child(1),.proj-table tbody tr:nth-child(odd) td:nth-child(2),.proj-table tbody tr:nth-child(odd) td:nth-child(3){background:var(--color-surface-2)}.proj-table tbody tr:hover td{background:var(--color-surface-2)}.proj-table__row--clawback td,.proj-table__row--clawback:hover td{background:var(--color-warning-dim)!important}.proj-table__total{font-weight:600}.strategy-bar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex-shrink:0}.strategy-bar__row{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);flex-wrap:wrap}.strategy-bar__row--toggles{border-top:1px solid var(--color-border);gap:var(--spacing-sm) var(--spacing-md)}.strategy-bar__group,.strategy-bar__toggle-group{display:flex;align-items:center;gap:var(--spacing-xs)}.strategy-bar__label{font-family:var(--font-mono);font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-muted);white-space:nowrap}.strategy-bar__spending-group{display:flex;align-items:center;gap:var(--spacing-xs)}.strategy-bar__spending-group .number-input{margin:0;width:110px;min-width:0}.strategy-bar__spending-group .number-input__label{display:none}.strategy-bar__spending-value{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text);white-space:nowrap;padding:4px 0}.strategy-bar__spending-context{font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap}.strategy-bar__spending-warn{font-size:var(--font-size-xs);color:var(--color-danger);white-space:nowrap}.strategy-bar .select-input{margin:0}.strategy-bar .select-input__label{display:none}.strategy-bar .select-input__field{padding:4px var(--spacing-sm);font-size:var(--font-size-sm);background:var(--color-surface-2);border-color:var(--color-border)}.strategy-bar .toggle{flex-direction:row;align-items:center;gap:var(--spacing-xs);margin:0}.strategy-bar .toggle__label{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap;order:2}.strategy-bar .toggle__track{order:1}.strategy-bar__divider{width:1px;height:20px;background:var(--color-border);flex-shrink:0}.strategy-bar__spacer{flex:1}.strategy-bar__settings-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:10px;padding:2px 6px;cursor:pointer;line-height:1;transition:background .15s,color .15s}.strategy-bar__settings-btn:hover{background:var(--color-surface-2);color:var(--color-text)}.strategy-bar__assumptions-btn{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--font-size-sm);padding:5px var(--spacing-sm);cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}.strategy-bar__assumptions-btn:hover{background:var(--color-surface-3);color:var(--color-text);border-color:var(--color-border-light)}.strategy-bar__detail-panel{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--spacing-sm) var(--spacing-md);align-items:end;padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--color-border);background:var(--color-surface-2)}.strategy-bar__detail-panel .toggle{flex-direction:row;align-items:center;gap:var(--spacing-xs);margin:0}.strategy-bar__detail-panel .toggle__label{font-size:var(--font-size-sm);color:var(--color-text-muted);white-space:nowrap;order:2}.strategy-bar__detail-panel .toggle__track{order:1}.strategy-bar__detail-panel .number-input,.strategy-bar__detail-panel .select-input{min-width:0}.strategy-bar__run-btn{background:linear-gradient(135deg,var(--ember-mid),var(--ember-core));color:#f5efe8;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;padding:4px 12px;cursor:pointer;white-space:nowrap;transition:opacity .15s}.strategy-bar__run-btn:hover:not(:disabled){opacity:.85}.strategy-bar__run-btn:disabled{opacity:.7;cursor:default}.strategy-bar__mc-progress{grid-column:1 / -1;height:4px;background:var(--color-surface-3);border-radius:2px;overflow:hidden}.strategy-bar__mc-progress-bar{height:100%;background:linear-gradient(90deg,var(--ember-mid),var(--ember-glow));border-radius:2px;transition:width .2s ease}.input-group{display:flex;flex-direction:column;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--color-surface-2);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.input-group__label{font-family:var(--font-mono);font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--color-primary);margin-bottom:2px}.input-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);min-width:0}.input-row>*{min-width:0}.persons-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);align-items:start;min-width:0}.persons-grid>*{min-width:0;overflow:hidden}.dashboard{display:flex;flex-direction:column;gap:var(--spacing-lg)}.dashboard__charts{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-lg)}@media(max-width:1200px){.dashboard__charts{grid-template-columns:1fr}}.dashboard__chart-card{position:relative;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);height:340px;overflow:visible;display:flex;flex-direction:column;transition:height .2s ease}.dashboard__chart-card--expanded{grid-column:1 / -1;height:560px}.dashboard__chart-expand{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);z-index:10;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--color-text-muted);font-size:14px;line-height:1;opacity:0;transition:opacity .15s,background .15s}.dashboard__chart-card:hover .dashboard__chart-expand,.dashboard__chart-expand:focus-visible{opacity:1}.dashboard__chart-expand:hover{background:var(--color-surface);color:var(--color-text)}.dashboard__table-section{display:flex;flex-direction:column}.dashboard__table-toggle{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text);font-family:var(--font-display);font-size:18px;font-weight:300;cursor:pointer;text-align:left;transition:background .15s}.dashboard__table-toggle:hover{background:var(--color-surface-2)}.dashboard__table-content{max-height:500px;overflow:auto;border:1px solid var(--color-border);border-top:none;border-radius:0 0 var(--radius-md) var(--radius-md)}.dashboard__year-range{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-xs) var(--spacing-md)}.dashboard__year-range-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.05em;color:var(--color-text-muted);white-space:nowrap}.dashboard__year-range-input{width:80px;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:var(--font-size-sm);font-family:var(--font-mono);text-align:center}.dashboard__year-range-input:focus{outline:none;border-color:var(--color-primary)}.dashboard__year-range-sep{color:var(--color-text-muted);font-size:var(--font-size-sm)}.dashboard__year-range-reset{margin-left:auto;background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:background .15s}.dashboard__year-range-reset:hover{background:var(--color-surface-2)}.output-panel__error{padding:var(--spacing-xl);text-align:center}.output-panel__error-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-danger);margin-bottom:var(--spacing-sm)}.output-panel__error-msg{font-size:var(--font-size-sm);color:var(--color-text-muted);font-family:var(--font-mono)}.planning-view{display:flex;flex-direction:column;gap:var(--spacing-lg)}.planning-view__budget-badge{background:var(--color-primary-dim);color:var(--color-primary);font-family:var(--font-mono);font-size:10px;font-weight:400;letter-spacing:.1em;padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);display:inline-block}.quick-add{display:flex;align-items:center;gap:var(--spacing-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md)}.quick-add__field--amount{display:flex;align-items:center;background:var(--color-surface-2);border-radius:var(--radius-sm);padding:0 var(--spacing-sm);min-width:100px}.quick-add__prefix{color:var(--color-text-muted);font-weight:500}.quick-add__input{background:none;border:none;outline:none;padding:var(--spacing-sm);font-size:var(--font-size-base);color:var(--color-text);width:80px}.quick-add__input--desc{flex:1;min-width:120px;background:var(--color-surface-2);border-radius:var(--radius-sm);padding:var(--spacing-sm)}.quick-add__select{background:var(--color-surface-2);border:none;border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text);cursor:pointer;max-width:180px}.quick-add__btn{background:var(--color-accent);color:var(--color-surface);border:none;border-radius:var(--radius-sm);padding:var(--spacing-sm) var(--spacing-lg);font-weight:600;font-size:var(--font-size-base);cursor:pointer;white-space:nowrap;transition:background .15s}.quick-add__btn:hover{background:var(--color-accent-hover)}@media(max-width:768px){.quick-add{flex-wrap:wrap}.quick-add__input--desc{order:4;width:100%}}.cat-breakdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.cat-breakdown__title{font-family:var(--font-display);font-size:22px;font-weight:300;margin-bottom:var(--spacing-md)}.cat-breakdown__empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.cat-breakdown__list{display:flex;flex-direction:column;gap:var(--spacing-md)}.cat-breakdown__row-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.cat-breakdown__cat-label{font-size:var(--font-size-sm);font-weight:500}.cat-breakdown__amounts{font-family:var(--font-mono);font-size:12px}.cat-breakdown__actual--over{color:var(--color-danger);font-weight:600}.cat-breakdown__planned{color:var(--color-text-muted)}.cat-breakdown__bar-track{height:6px;background:var(--color-surface-3);border-radius:3px;overflow:hidden}.cat-breakdown__bar-fill{height:100%;background:linear-gradient(90deg,var(--ember-mid),var(--ember-glow));border-radius:3px;transition:width .3s ease}.cat-breakdown__bar-fill--over{background:var(--color-danger)}.tx-list{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.tx-list__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.tx-list__title{font-size:var(--font-size-lg);font-weight:600}.tx-list__count{background:var(--color-surface-3);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-full)}.tx-list__empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.tx-list__rows{display:flex;flex-direction:column}.tx-list__row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-surface-3)}.tx-list__row:last-child{border-bottom:none}.tx-list__icon{font-size:var(--font-size-lg);width:32px;text-align:center;flex-shrink:0}.tx-list__details{flex:1;min-width:0}.tx-list__desc{display:block;font-size:var(--font-size-sm);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-list__date{font-size:var(--font-size-xs);color:var(--color-text-muted)}.tx-list__amount{font-size:var(--font-size-sm);font-weight:600;white-space:nowrap}.tx-list__delete{background:none;border:none;color:var(--color-text-subtle);font-size:var(--font-size-lg);cursor:pointer;padding:0 var(--spacing-xs);opacity:0;transition:opacity .15s,color .15s}.tx-list__row:hover .tx-list__delete{opacity:1}.tx-list__delete:hover{color:var(--color-danger)}.csv-import{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.csv-import__title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.csv-import__drop{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-xl);text-align:center;transition:border-color .15s,background .15s}.csv-import__drop--active{border-color:var(--color-primary);background:var(--color-primary-dim)}.csv-import__drop-text{font-size:var(--font-size-sm);color:var(--color-text-muted)}.csv-import__browse{color:var(--color-primary);font-weight:500;cursor:pointer;text-decoration:underline}.csv-import__drop-hint{font-size:var(--font-size-xs);color:var(--color-text-subtle);margin-top:var(--spacing-xs)}.csv-import__status{margin-top:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-muted)}.csv-import__result{margin-top:var(--spacing-sm);font-size:var(--font-size-sm)}.csv-import__success{color:var(--color-success);font-weight:500}.csv-import__warnings{color:var(--color-warning);margin-top:var(--spacing-xs)}.csv-import__error{color:var(--color-danger);font-weight:500}.plan-editor{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.plan-editor__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.plan-editor__title{font-family:var(--font-display);font-size:22px;font-weight:300}.plan-editor__total{font-family:var(--font-display);font-size:22px;font-weight:300;color:var(--color-text)}.plan-editor__list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.plan-editor__row{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) 0}.plan-editor__label{font-size:var(--font-size-sm);flex:1}.plan-editor__input-wrap{display:flex;align-items:center;background:var(--color-surface-2);border-radius:var(--radius-sm);padding:0 var(--spacing-sm)}.plan-editor__dollar{color:var(--color-text-muted);font-family:var(--font-mono);font-size:12px}.plan-editor__input{background:none;border:none;outline:none;width:80px;padding:var(--spacing-xs);font-family:var(--font-mono);font-size:12px;color:var(--color-text);text-align:right}.plan-editor__actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.plan-editor__btn{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;border:none;transition:background .15s}.plan-editor__btn--save{background:linear-gradient(135deg,var(--ember-mid),var(--ember-core));color:#f5efe8}.plan-editor__btn--save:hover:not(:disabled){opacity:.85}.plan-editor__btn--save:disabled{opacity:.5;cursor:not-allowed}.plan-editor__btn--reset{background:var(--color-surface-3);color:var(--color-text-muted)}.plan-editor__btn--reset:hover{background:var(--color-border)}.retirement-impact{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.retirement-impact__title{font-family:var(--font-display);font-size:22px;font-weight:300;margin-bottom:var(--spacing-md)}.retirement-impact__empty{color:var(--color-text-muted);font-size:var(--font-size-sm)}.retirement-impact__hero{text-align:center;padding:var(--spacing-md) 0;margin-bottom:var(--spacing-md)}.retirement-impact__shift{font-family:var(--font-display);font-size:36px;font-weight:300}.retirement-impact__shift--positive{color:var(--color-success)}.retirement-impact__shift--negative{color:var(--color-danger)}.retirement-impact__explain{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--spacing-xs)}.retirement-impact__metrics{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-border)}.retirement-impact__metric{display:flex;flex-direction:column;gap:2px}.retirement-impact__metric-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--color-text-muted)}.retirement-impact__metric-value{font-family:var(--font-display);font-size:20px;font-weight:300}.retirement-impact__metric-value--positive{color:var(--color-success)}.retirement-impact__metric-value--negative{color:var(--color-danger)}.budget-view__loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-muted)}.budget-view__hero{text-align:center;padding:var(--spacing-2xl) 0}.budget-view__hero-label{font-family:var(--font-mono);font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.budget-view__hero-amount{font-family:var(--font-display);font-size:clamp(42px,8vw,64px);font-weight:300;color:var(--color-text);line-height:1}.budget-view__hero-delta{font-size:var(--font-size-md);margin-top:var(--spacing-sm)}.budget-view__hero-delta--positive{color:var(--color-success)}.budget-view__hero-delta--negative{color:var(--color-danger)}.budget-view__grid{display:flex;flex-direction:column;gap:var(--spacing-lg)}@media(min-width:900px){.budget-view__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg)}.budget-view__grid>:nth-child(1),.budget-view__grid>:nth-child(2){grid-column:1 / -1}}.budget-view__manage{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) 0;margin-top:var(--spacing-md);border-top:1px solid var(--color-border)}.budget-view__manage-info{font-size:var(--font-size-sm);color:var(--color-text-muted)}.budget-view__manage-clear{background:none;border:1px solid var(--color-danger);color:var(--color-danger);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;transition:background .15s,color .15s}.budget-view__manage-clear:hover{background:var(--color-danger);color:#fff}.accounts-view{max-width:800px}.accounts-view__hero{text-align:center;padding:var(--spacing-2xl) 0}.accounts-view__hero-label{font-family:var(--font-mono);font-size:11px;font-weight:400;text-transform:uppercase;letter-spacing:.15em;color:var(--color-text-muted);margin-bottom:var(--spacing-sm)}.accounts-view__hero-amount{font-family:var(--font-display);font-size:clamp(42px,8vw,64px);font-weight:300;color:var(--color-text);line-height:1}.accounts-view__section{margin-bottom:var(--spacing-xl)}.accounts-view__section-title{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-md)}.accounts-view__section--partner{padding-top:var(--spacing-lg);border-top:1px solid var(--color-border)}.accounts-view__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.account-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column}.account-card--muted{opacity:.85}.account-card__color-bar{height:4px}.account-card__body{padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-sm)}.account-card__label{font-family:var(--font-mono);font-size:10px;font-weight:400;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.accounts-view__placeholder{margin-top:var(--spacing-xl);border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);text-align:center}.accounts-view__placeholder-icon{font-size:var(--font-size-2xl);color:var(--color-text-subtle);margin-bottom:var(--spacing-sm)}.accounts-view__placeholder-text{font-size:var(--font-size-md);font-weight:500;color:var(--color-text-muted)}.accounts-view__placeholder-hint{font-size:var(--font-size-sm);color:var(--color-text-subtle);margin-top:var(--spacing-xs)}.settings-overlay{position:fixed;inset:0;background:#0000004d;z-index:200}.settings-panel{position:fixed;top:0;right:0;bottom:0;width:440px;max-width:100vw;background:var(--color-bg);border-left:1px solid var(--color-border);z-index:201;display:flex;flex-direction:column;overflow-y:auto}.settings-panel__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-xl);position:sticky;top:0;background:var(--color-bg);z-index:1}.settings-panel__title{font-family:var(--font-display);font-size:26px;font-weight:300}.settings-panel__close{background:none;border:none;font-size:24px;color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-xs);line-height:1}.settings-panel__close:hover{color:var(--color-text)}.settings-panel__body{flex:1;padding:0 var(--spacing-xl) var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-section{display:flex;flex-direction:column;gap:0}.settings-section__heading{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0}.settings-section__title{font-family:var(--font-mono);font-size:10px;font-weight:400;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.15em}.settings-section__edit-btn{background:none;border:none;font-size:var(--font-size-md);color:var(--color-text-muted);cursor:pointer;padding:2px 8px;border-radius:var(--radius-sm);transition:color .15s,background .15s}.settings-section__edit-btn:hover{color:var(--color-text);background:var(--color-surface-3)}.settings-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-md) var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm)}.settings-info-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);min-height:36px}.settings-info-row__label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text)}.settings-info-row__value{font-size:var(--font-size-sm);color:var(--color-text-muted);text-align:right}.settings-info-row__control{flex-shrink:0}.settings-info-row__control .select-input{margin:0}.settings-info-row__control .select-input__label{display:none}.settings-info-row__control .select-input__field{padding:4px var(--spacing-sm);font-size:var(--font-size-sm);background:var(--color-surface-2)}.settings-info-row__control .toggle{margin:0;flex-direction:row;align-items:center;gap:var(--spacing-xs)}.settings-info-row__control .toggle__label{display:none}.settings-theme-picker{display:flex;background:var(--color-surface-2);border-radius:var(--radius-sm);border:1px solid var(--color-border);overflow:hidden}.settings-theme-picker__btn{padding:4px 12px;font-size:var(--font-size-sm);font-weight:500;background:none;border:none;color:var(--color-text-muted);cursor:pointer;transition:background .15s,color .15s}.settings-theme-picker__btn:not(:last-child){border-right:1px solid var(--color-border)}.settings-theme-picker__btn--active{background:var(--color-surface);color:var(--color-text);font-weight:600}.settings-theme-picker__btn:hover:not(.settings-theme-picker__btn--active){background:var(--color-surface-3)}.settings-section__edit-fields{display:flex;flex-direction:column;gap:var(--spacing-sm)}.settings-panel__row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.settings-panel__footer{padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--color-border)}.settings-panel__reset-btn{width:100%;background:none;color:var(--color-danger, #dc3545);border:1px solid var(--color-border);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background .15s}.settings-panel__reset-btn:hover{background:var(--color-surface)}
