.fw-dashboard{--color-ink:var(--text-strong);--color-ink-light:var(--muted);--color-ink-lighter:var(--label);--color-paper:var(--glass-2);--color-paper-alt:var(--glass);--color-paper-dark:#ffffff17;--color-brass:var(--accent);--color-brass-light:var(--accent-2);--color-bg:transparent;--color-text-primary:var(--text);--color-text-secondary:var(--muted);--color-text-tertiary:var(--label);--color-border:var(--border);--color-accent:var(--accent);--color-positive:var(--good);--color-negative:var(--bad);--color-warning:var(--warn);--color-info:var(--info);--color-positive-bg:#34d3991f;--color-negative-bg:#f43f5e1f;--color-warning-bg:#f59e0b1f;--color-chart-networth:var(--accent);--color-chart-cash:var(--muted);--color-chart-negative-bg:#f43f5e14;--max-width:1240px;--border-radius:12px;--spacing-unit:8px;--shadow-soft:var(--shadow);--shadow-hairline:inset 0 0 0 1px var(--border);--font-sans:var(--font-body-stack);--font-display:var(--font-display-stack);--font-mono:var(--font-display-stack);min-height:100%;font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6}.fw-dashboard *,.fw-dashboard :before,.fw-dashboard :after{box-sizing:border-box;margin:0;padding:0}.fw-dashboard .container{max-width:var(--max-width);padding:calc(var(--spacing-unit) * 6);margin:0 auto}.fw-dashboard main,.fw-dashboard .dashboard-main{gap:calc(var(--spacing-unit) * 3.5);display:grid}.fw-dashboard .dashboard-main>*{min-width:0}.fw-dashboard h1,.fw-dashboard h2,.fw-dashboard h3{letter-spacing:-.01em;color:var(--color-text-primary);font-weight:700;line-height:1.2}.fw-dashboard h1,.fw-dashboard h2{font-family:var(--font-display)}.fw-dashboard h1{color:var(--text-strong);font-size:2rem;font-weight:700}.fw-dashboard h2{margin-bottom:calc(var(--spacing-unit) * 2);color:var(--text-strong);font-size:1.35rem}.fw-dashboard h3{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.6px;margin-bottom:var(--spacing-unit);font-size:.95rem;font-weight:600}.fw-dashboard p{color:var(--color-text-secondary);margin-bottom:var(--spacing-unit)}.fw-dashboard p:last-child{margin-bottom:0}.fw-dashboard .eyebrow{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--spacing-unit);font-size:.72rem;font-weight:600;display:block}.fw-dashboard .figure{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--color-text-primary);font-size:2.2rem;font-weight:700;line-height:1.05}.fw-dashboard .figure-small{letter-spacing:-.01em;font-size:1.15rem;font-weight:600}.fw-dashboard .figure.positive{color:var(--color-positive)}.fw-dashboard .figure.negative{color:var(--color-negative)}.fw-dashboard .card{background:var(--glass);border:1px solid var(--border);border-radius:var(--r-card);padding:calc(var(--spacing-unit) * 3);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px)}.fw-dashboard .grid{gap:calc(var(--spacing-unit) * 3);display:grid}.fw-dashboard .grid-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.fw-dashboard .grid-3,.fw-dashboard .grid-4{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.fw-dashboard .flex{display:flex}.fw-dashboard .flex-between{justify-content:space-between}.fw-dashboard .flex-align-center{align-items:center}.fw-dashboard .flex-gap-2{gap:calc(var(--spacing-unit) * 2)}.fw-dashboard .flex-gap-4{gap:calc(var(--spacing-unit) * 4)}.fw-dashboard .section-title{margin-bottom:calc(var(--spacing-unit) * 2)}.fw-dashboard .dashboard-controls{justify-content:flex-end;align-items:center;gap:calc(var(--spacing-unit) * 2);flex-wrap:wrap;display:flex}.fw-dashboard .scenario-toggle{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--glass-2);padding:4px;font-size:.85rem;display:inline-flex}.fw-dashboard .scenario-toggle button{border-radius:var(--r-pill);cursor:pointer;font-family:inherit;font-size:inherit;color:var(--color-text-secondary);background:0 0;border:none;padding:6px 18px;transition:color .15s,background-color .15s}.fw-dashboard .scenario-toggle button.active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent);font-weight:600}.fw-dashboard .scenario-note{color:var(--color-text-tertiary);text-align:right;font-size:.8rem}@media (max-width:640px){.fw-dashboard .dashboard-controls{justify-content:flex-start;width:100%}.fw-dashboard .scenario-toggle{flex-wrap:wrap;width:100%;display:flex}.fw-dashboard .scenario-toggle button{text-align:center;flex:100%}.fw-dashboard .scenario-note{text-align:left;width:100%}}.fw-dashboard .page-header{padding-bottom:calc(var(--spacing-unit) * 3);border-bottom:1px solid var(--color-border);margin-bottom:calc(var(--spacing-unit) * 2)}.fw-dashboard .page-header .meta-info{color:var(--color-text-tertiary);font-size:1rem}.fw-dashboard .family-list{gap:var(--spacing-unit);margin-top:var(--spacing-unit);flex-wrap:wrap;list-style:none;display:flex}.fw-dashboard .family-list li{color:var(--color-text-secondary);background:var(--glass-2);border:1px solid var(--color-border);border-radius:var(--r-pill);padding:2px 12px;font-size:.85rem}.fw-dashboard .upload-link{margin-top:var(--spacing-unit);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);border-radius:var(--r-pill);background:color-mix(in srgb, var(--accent) 8%, transparent);padding:5px 16px;font-size:.85rem;font-weight:600;text-decoration:none;display:inline-block}.fw-dashboard .upload-link:hover{background:color-mix(in srgb, var(--accent) 16%, transparent)}.fw-dashboard .kpi-row{gap:calc(var(--spacing-unit) * 2.5);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));display:grid}.fw-dashboard .kpi-tile{align-items:flex-start;gap:calc(var(--spacing-unit) * 2);padding:calc(var(--spacing-unit) * 2.5);display:flex}.fw-dashboard .kpi-icon{border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.fw-dashboard .kpi-icon svg{width:22px;height:22px}.fw-dashboard .kpi-cyan{color:var(--c-cyan);background:color-mix(in srgb, var(--accent) 12%, transparent);border:1px solid color-mix(in srgb, var(--accent) 22%, transparent)}.fw-dashboard .kpi-violet{color:var(--c-violet);background:#a78bfa1f;border:1px solid #a78bfa38}.fw-dashboard .kpi-green{color:var(--c-green);background:#34d3991f;border:1px solid #34d39938}.fw-dashboard .kpi-amber{color:var(--c-amber);background:#f59e0b1f;border:1px solid #f59e0b38}.fw-dashboard .kpi-body{flex-direction:column;gap:4px;min-width:0;display:flex}.fw-dashboard .kpi-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);font-size:.68rem;font-weight:600;line-height:1.3}.fw-dashboard .kpi-value{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700}.fw-dashboard .kpi-sub{color:var(--color-text-secondary);font-size:.78rem}.fw-dashboard .donut-wrap{align-items:center;gap:calc(var(--spacing-unit) * 3);flex-wrap:wrap;display:flex}.fw-dashboard .donut-figure{flex:none;width:210px;max-width:100%}.fw-dashboard .donut-figure svg{width:100%;height:auto}.fw-dashboard .donut-total{font-family:var(--font-display);fill:var(--text-strong);font-size:22px;font-weight:700}.fw-dashboard .donut-total-label{letter-spacing:.08em;text-transform:uppercase;fill:var(--color-text-tertiary);font-size:10px}.fw-dashboard .donut-total-sub{fill:var(--color-text-secondary);font-size:11px;font-weight:500}.fw-dashboard .donut-legend{flex:180px;gap:8px;min-width:160px;list-style:none;display:grid}.fw-dashboard .donut-legend li{color:var(--color-text-secondary);align-items:center;gap:8px;font-size:.85rem;display:flex}.fw-dashboard .donut-legend .legend-name{flex:auto}.fw-dashboard .donut-legend .legend-share{font-variant-numeric:tabular-nums;color:var(--color-text-tertiary);font-size:.8rem}.fw-dashboard .chart-legend-inline{gap:calc(var(--spacing-unit) * 3);margin-bottom:calc(var(--spacing-unit) * 1.5);justify-content:center;display:flex}.fw-dashboard .bar-cat-label{font-size:10px}.fw-dashboard .chart-empty{color:var(--color-text-tertiary);padding:calc(var(--spacing-unit) * 2) 0;font-size:.9rem;font-style:italic}.fw-dashboard .breakdown-head{justify-content:space-between;align-items:flex-start;gap:calc(var(--spacing-unit) * 2);margin-bottom:calc(var(--spacing-unit) * 2);flex-wrap:wrap;display:flex}.fw-dashboard .breakdown-controls{gap:var(--spacing-unit);flex-wrap:wrap;display:flex}.fw-dashboard .search-field{background:var(--glass-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:inline-flex}.fw-dashboard .search-field svg{width:15px;height:15px;color:var(--color-text-tertiary);flex-shrink:0}.fw-dashboard .search-field input{color:var(--text);background:0 0;border:none;outline:none;width:150px;font-family:inherit;font-size:.85rem}.fw-dashboard .search-field input::placeholder{color:var(--color-text-tertiary)}.fw-dashboard .type-select{background:var(--glass-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:10px;padding:8px 12px;font-family:inherit;font-size:.85rem}.fw-dashboard .type-select option{background:var(--option-bg);color:var(--text)}.fw-dashboard .breakdown-list{flex-direction:column;display:flex}.fw-dashboard .breakdown-row{border-top:1px solid var(--border-soft)}.fw-dashboard .breakdown-row:first-child{border-top:none}.fw-dashboard .breakdown-row-head{align-items:center;gap:calc(var(--spacing-unit) * 1.5);width:100%;padding:calc(var(--spacing-unit) * 1.75) 4px;cursor:pointer;text-align:left;background:0 0;border:none;font-family:inherit;display:flex}.fw-dashboard .breakdown-row-head:hover{background:var(--hover-soft)}.fw-dashboard .cat-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.fw-dashboard .cat-name{color:var(--text);flex:auto;min-width:0;font-size:.95rem;font-weight:600}.fw-dashboard .cat-pill{font-variant-numeric:tabular-nums;color:var(--text);background:var(--glass-2);border:1px solid var(--border);border-radius:var(--r-pill);white-space:nowrap;padding:4px 14px;font-size:.82rem}.fw-dashboard .row-chevron{width:18px;height:18px;color:var(--color-text-tertiary);flex-shrink:0;transition:transform .18s}.fw-dashboard .row-chevron.is-open{transform:rotate(180deg)}.fw-dashboard .breakdown-lines{flex-direction:column;gap:6px;padding:4px 4px 14px 26px;display:flex}.fw-dashboard .breakdown-line{align-items:center;gap:var(--spacing-unit);flex-wrap:wrap;font-size:.85rem;display:flex}.fw-dashboard .line-label{color:var(--color-text-secondary);flex:auto;min-width:0}.fw-dashboard .line-amount{font-variant-numeric:tabular-nums;color:var(--text);white-space:nowrap}.fw-dashboard .type-tag{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--r-pill);padding:2px 8px;font-size:.62rem;font-weight:700}.fw-dashboard .type-fixed{color:var(--c-violet);background:#a78bfa24}.fw-dashboard .type-variable{color:var(--c-cyan);background:color-mix(in srgb, var(--accent) 14%, transparent)}.fw-dashboard .breakdown-empty{color:var(--color-text-tertiary);padding:calc(var(--spacing-unit) * 1.5) 0;font-size:.85rem;font-style:italic}.fw-dashboard .whatif-head{align-items:center;gap:12px;margin-bottom:6px;display:flex}.fw-dashboard .whatif-head h2{margin-bottom:0}.fw-dashboard .whatif-tag{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent) 28%, transparent);border-radius:var(--r-pill);padding:3px 10px;font-size:.62rem;font-weight:700}.fw-dashboard .whatif-grid{gap:calc(var(--spacing-unit) * 3);margin-top:calc(var(--spacing-unit) * 2);grid-template-columns:1fr;display:grid}@media (min-width:860px){.fw-dashboard .whatif-grid{grid-template-columns:1.6fr 1fr}}.fw-dashboard .whatif-sliders{gap:calc(var(--spacing-unit) * 3);flex-direction:column;justify-content:center;display:flex}.fw-dashboard .slider-labels{justify-content:space-between;align-items:baseline;gap:var(--spacing-unit);margin-bottom:10px;display:flex}.fw-dashboard .slider-labels label{color:var(--color-text-secondary);font-size:.88rem}.fw-dashboard .slider-readout{font-family:var(--font-display);color:var(--accent);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.95rem;font-weight:700}.fw-dashboard input[type=range]{appearance:none;background:var(--track);border-radius:3px;outline:none;width:100%;height:6px}.fw-dashboard input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid var(--bg);width:18px;height:18px;box-shadow:0 0 12px 1px color-mix(in srgb, var(--accent) 50%, transparent);cursor:pointer;border-radius:50%}.fw-dashboard input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--bg);width:18px;height:18px;box-shadow:0 0 12px 1px color-mix(in srgb, var(--accent) 50%, transparent);cursor:pointer;border-radius:50%}.fw-dashboard .whatif-result{text-align:center;padding:calc(var(--spacing-unit) * 3);border-radius:var(--r-card);background:var(--hover-soft);border:1px solid var(--border);flex-direction:column;align-items:center;gap:4px;display:flex}.fw-dashboard .result-label{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-tertiary);margin-top:6px;font-size:.68rem;font-weight:600}.fw-dashboard .result-figure{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);font-variant-numeric:tabular-nums;font-size:2rem;font-weight:800}.fw-dashboard .result-savings{font-family:var(--font-display);color:var(--text-strong);font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.fw-dashboard .whatif-reset{margin-top:calc(var(--spacing-unit) * 2);border-radius:var(--r-ctrl);background:var(--glass-2);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;padding:10px 16px;font-family:inherit;font-size:.85rem;font-weight:600;transition:background-color .15s}.fw-dashboard .whatif-reset:hover{background:var(--hover-strong)}.fw-dashboard .stress-banner{align-items:center;gap:calc(var(--spacing-unit) * 3);padding:calc(var(--spacing-unit) * 2) calc(var(--spacing-unit) * 3);border-radius:var(--r-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#f59e0b1a;border:1px solid #f59e0b59;display:flex}.fw-dashboard .stress-banner .status-icon{color:var(--color-warning);border:2px solid var(--color-warning);background:#f59e0b29;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.3rem;font-weight:700;display:flex}.fw-dashboard .stress-banner .status-title{color:var(--color-warning);text-transform:none;letter-spacing:0;font-weight:700;font-family:var(--font-display);margin:0}.fw-dashboard .stress-banner .status-details{color:var(--color-text-secondary);margin:0;font-size:.9rem}.fw-dashboard .stress-banner .status-details strong{color:var(--color-text-primary)}.fw-dashboard .headline-metric .figure{margin-top:var(--spacing-unit)}.fw-dashboard .vision-board{background:var(--glass);box-shadow:var(--shadow);border:1px solid var(--border);border-radius:var(--r-card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:0;overflow:hidden}.fw-dashboard .vision-header{padding:calc(var(--spacing-unit) * 3);background:var(--hover-soft);border-bottom:1px solid var(--color-border)}.fw-dashboard .vision-tabs{gap:var(--spacing-unit);border-bottom:1px solid var(--color-border);padding:0 calc(var(--spacing-unit) * 3);background:0 0;display:flex}.fw-dashboard .vision-tab{padding:var(--spacing-unit) var(--spacing-unit);color:var(--color-text-tertiary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;font-family:inherit;font-size:.9rem;font-weight:500}.fw-dashboard .vision-tab.active{color:var(--color-text-primary);border-bottom-color:var(--accent)}.fw-dashboard .vision-content{background-color:var(--color-border);grid-template-columns:1fr 2fr;gap:1px;display:grid}.fw-dashboard .vision-content>div{padding:calc(var(--spacing-unit) * 3);background:var(--panel)}@media (max-width:640px){.fw-dashboard .vision-content{grid-template-columns:1fr}}.fw-dashboard .vision-themes ul{gap:var(--spacing-unit);flex-direction:column;list-style:none;display:flex}.fw-dashboard .vision-themes li{background:var(--glass-2);border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:8px;padding:6px 12px;font-size:.9rem;font-weight:500}.fw-dashboard .vision-goals{gap:calc(var(--spacing-unit) * 2);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.fw-dashboard .goal-card{border:1px solid var(--color-border);border-radius:var(--r-ctrl);padding:calc(var(--spacing-unit) * 2);gap:var(--spacing-unit);background:var(--glass-2);flex-direction:column;display:flex}.fw-dashboard .goal-card .topic{color:var(--color-text-primary);font-size:1rem;font-weight:600}.fw-dashboard .goal-card .desired-life{color:var(--color-text-secondary);flex-grow:1;font-size:.9rem;font-style:italic}.fw-dashboard .goal-card .progress-bar,.fw-dashboard .savings-bucket-card .progress-bar{background:var(--track);border-radius:3px;width:100%;height:6px;margin-top:auto;overflow:hidden}.fw-dashboard .goal-card .progress-bar-fill,.fw-dashboard .savings-bucket-card .progress-bar-fill{background:var(--grad-accent);border-radius:3px;height:100%}.fw-dashboard .goal-card .progress-text{color:var(--color-text-tertiary);justify-content:space-between;font-size:.8rem;display:flex}.fw-dashboard .vision-empty{padding:calc(var(--spacing-unit) * 3);background:var(--panel);color:var(--color-text-tertiary);font-size:.9rem}.fw-dashboard .editable-affordance{cursor:pointer;color:var(--color-text-tertiary);background:0 0;border:none;align-items:center;gap:4px;font-family:inherit;font-size:.8rem;font-weight:500;display:flex}.fw-dashboard .editable-affordance:hover{color:var(--color-text-primary)}.fw-dashboard .editable-affordance svg{stroke:currentColor;stroke-width:2px;fill:none;width:12px;height:12px}.fw-dashboard .savings-bucket-card{gap:var(--spacing-unit);padding-left:calc(var(--spacing-unit) * 3);flex-direction:column;display:flex;position:relative}.fw-dashboard .affordability-dot{background-color:currentColor;border-radius:4px 0 0 4px;width:4px;height:100%;position:absolute;top:0;left:0}.fw-dashboard .dot-green{color:var(--color-positive)}.fw-dashboard .dot-amber{color:var(--color-warning)}.fw-dashboard .dot-red{color:var(--color-negative)}.fw-dashboard .savings-bucket-card .topic{color:var(--color-text-primary);font-size:1rem;font-weight:600}.fw-dashboard .savings-bucket-card .target-info{color:var(--color-text-tertiary);justify-content:space-between;font-size:.8rem;display:flex}.fw-dashboard .savings-bucket-card .progress-text{justify-content:space-between;align-items:baseline;font-size:.9rem;display:flex}.fw-dashboard .savings-bucket-card .progress-text span:first-child{color:var(--color-text-secondary);font-weight:600;font-family:var(--font-display);font-variant-numeric:tabular-nums}.fw-dashboard .affordability-legend{align-items:center;gap:calc(var(--spacing-unit) * 3);color:var(--color-text-tertiary);margin-top:calc(var(--spacing-unit) * 2);flex-wrap:wrap;font-size:.8rem;display:flex}.fw-dashboard .affordability-legend span{align-items:center;gap:var(--spacing-unit);display:flex}.fw-dashboard .affordability-legend .dot{border-radius:50%;width:8px;height:8px}.fw-dashboard .funding-plan{background-color:var(--color-border);border:1px solid var(--color-border);border-radius:var(--r-ctrl);grid-template-columns:1fr 1fr;gap:1px;display:grid;overflow:hidden}.fw-dashboard .funding-plan>div{padding:calc(var(--spacing-unit) * 3);background:var(--panel)}.fw-dashboard .funding-plan .figure{font-size:1.8rem}.fw-dashboard .funding-plan .shortfall{text-align:center;background:#f59e0b1a;grid-column:1/-1}.fw-dashboard .funding-plan .shortfall .figure{color:var(--color-warning)}.fw-dashboard .data-list ul{list-style:none}.fw-dashboard .data-list li{padding:calc(var(--spacing-unit) * 1.5) 0;border-bottom:1px solid var(--border-soft);justify-content:space-between;align-items:center;display:flex}.fw-dashboard .data-list li:last-child{border-bottom:none}.fw-dashboard .data-list .label{color:var(--color-text-primary);font-size:.9rem}.fw-dashboard .data-list .value{font-family:var(--font-display);color:var(--color-text-primary);font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:600}.fw-dashboard .data-list .value.inflow{color:var(--color-positive)}.fw-dashboard .review-section{border-radius:var(--r-ctrl);padding:calc(var(--spacing-unit) * 2);margin-top:calc(var(--spacing-unit) * 3);background:#f59e0b14;border:1px solid #f59e0b59}.fw-dashboard .review-section h4{color:var(--color-warning);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-unit);font-size:.9rem}.fw-dashboard .budget-table{border-collapse:collapse;width:100%;font-size:.9rem}.fw-dashboard .budget-table th,.fw-dashboard .budget-table td{padding:var(--spacing-unit);text-align:left;border-bottom:1px solid var(--border-soft)}.fw-dashboard .budget-table th{color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:.72rem;font-weight:600}.fw-dashboard .budget-table td:not(:first-child){font-family:var(--font-display);font-variant-numeric:tabular-nums;text-align:right}.fw-dashboard .budget-table .under{color:var(--color-positive)}.fw-dashboard .budget-table .over{color:var(--color-negative)}.fw-dashboard .budget-table tfoot td{border-top:2px solid var(--color-border);color:var(--color-text-primary);font-weight:700}.fw-dashboard .annual-plan{text-align:right;margin-top:var(--spacing-unit);color:var(--color-text-tertiary);font-size:.9rem}.fw-dashboard .annual-plan span{font-family:var(--font-display);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;font-weight:600}.fw-dashboard .budget-table tr.archived td{color:var(--color-text-tertiary);opacity:.7}.fw-dashboard .budget-table tr.archived td:first-child{text-decoration:line-through}.fw-dashboard .archived-note{color:var(--color-text-tertiary);font-size:.75rem}.fw-dashboard .action-buttons{gap:var(--spacing-unit);justify-content:flex-end;display:flex}.fw-dashboard .action-buttons .editable-affordance{opacity:0;transition:opacity .2s}.fw-dashboard tr:hover .action-buttons .editable-affordance{opacity:1}.fw-dashboard .chart-container svg{width:100%;height:auto}.fw-dashboard .chart-container .grid-line{stroke:var(--chart-grid);stroke-width:1px;stroke-dasharray:2 3}.fw-dashboard .chart-container .axis-line{stroke:var(--chart-axis);stroke-width:1px}.fw-dashboard .chart-container .axis-label,.fw-dashboard .axis-label{font-family:var(--font-sans);fill:var(--color-text-tertiary);font-size:12px}.fw-dashboard .chart-container .chart-title{margin-bottom:var(--spacing-unit);font-size:1.2rem}.fw-dashboard .chart-container .endpoint-label{font-family:var(--font-display);fill:var(--color-positive);font-size:12px;font-weight:600}.fw-dashboard .chart-container .endpoint-label.negative{fill:var(--color-negative)}.fw-dashboard .legend-item{align-items:center;gap:var(--spacing-unit);color:var(--color-text-secondary);font-size:.875rem;display:flex}.fw-dashboard .legend-dot{border-radius:50%;width:10px;height:10px}.fw-dashboard .timeline-bar{stroke-width:0}.fw-dashboard .timeline-label{font-family:var(--font-sans);fill:#05131a;font-size:11px;font-weight:600}.fw-dashboard .timeline-value{font-family:var(--font-display);fill:#05131a;font-size:11px;font-weight:600}.fw-dashboard .timeline-value-out{font-family:var(--font-display);fill:var(--color-text-secondary);font-size:11px;font-weight:500}.fw-dashboard .color-mortgage{fill:var(--c-blue)}.fw-dashboard .color-school{fill:var(--c-cyan)}.fw-dashboard .color-uni{fill:var(--c-amber)}.fw-dashboard .color-pension{fill:var(--c-violet)}.fw-dashboard .color-property{fill:var(--c-green)}.fw-dashboard .child-view-section h2{color:var(--color-text-secondary)}.fw-dashboard .child-view-section .restricted-notice,.fw-dashboard .restricted-notice{background:var(--glass-2);border:1px solid var(--color-border);padding:var(--spacing-unit) calc(var(--spacing-unit) * 2);border-radius:var(--r-ctrl);color:var(--color-text-secondary);margin-top:calc(var(--spacing-unit) * 2);font-size:.9rem}@media (prefers-reduced-motion:no-preference){.fw-dashboard .dashboard-main>*{animation:.4s both fw-fade-in}}@keyframes fw-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fw-dashboard .money-sub{color:var(--color-text-secondary);white-space:nowrap;font-size:.85em;font-weight:500}.fw-dashboard .money-sub-block{color:var(--color-text-secondary);letter-spacing:0;margin-top:2px;font-size:.55em;font-weight:500;line-height:1.2;display:block}.fw-dashboard .currency-note{color:var(--color-text-secondary);margin-top:var(--spacing-unit);font-size:.82rem}.fw-dashboard .scenario-note+.currency-note{margin-top:4px}[data-theme=light] .fw-dashboard .kpi-cyan{background:#0891b21f;border-color:#0891b247}[data-theme=light] .fw-dashboard .kpi-violet{background:#8b5cf624;border-color:#8b5cf64d}[data-theme=light] .fw-dashboard .kpi-green{background:#10b98124;border-color:#10b9814d}[data-theme=light] .fw-dashboard .kpi-amber{background:#d9770624;border-color:#d977064d}
