:root{--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-muted: #f3f4f6;--color-surface-overlay: rgba(15,23,42,0.06);--color-border: #e5e7eb;--color-border-strong: #d4d4d8;--color-text: #111827;--color-text-muted: #6b7280;--color-text-subtle: #94a3b8;--color-primary: #2563eb;--color-primary-strong: #1d4ed8;--color-primary-soft: rgba(37,99,235,0.14);--color-focus-ring: rgba(37,99,235,0.55);--radio-pill-background: var(--color-surface-overlay);--radio-pill-text: var(--color-text-muted);--radio-pill-selected-background: #2563eb;--radio-pill-selected-text: #ffffff;--color-danger-text: #b91c1c;--color-warning-text: #b45309;--color-success-text: #047857;--color-accent-text: #0f766e;--color-danger-bg: color-mix(in srgb,var(--color-danger-text) 14%,transparent);--color-warning-bg: color-mix(in srgb,var(--color-warning-text) 12%,transparent);--color-success-bg: color-mix(in srgb,var(--color-success-text) 12%,transparent);--color-accent-bg: color-mix(in srgb,var(--color-accent-text) 12%,transparent);--color-primary-bg: color-mix(in srgb,var(--color-primary) 12%,transparent);--shadow-chip: 0 1px 2px rgba(15,23,42,0.10),0 0 0 1px rgba(15,23,42,0.05);--chart-primary-color: #7C9CBF;--chart-secondary-color: #B7A7C9;--chart-success-color: #9DBD9E;--chart-warning-color: #D8B47A;--chart-danger-color: #D79A9A;--chart-cat-1: #2563eb;--chart-cat-2: #16a34a;--chart-cat-3: #ea580c;--chart-cat-4: #9333ea;--chart-cat-5: #dc2626;--chart-cat-6: #0891b2;--chart-cat-7: #ca8a04;--chart-cat-8: #db2777;--vaadin-text-color: var(--color-text-muted)}html.dark{--color-surface: #1e293b;--color-surface-raised: #334155;--color-surface-muted: rgba(15,23,42,0.4);--color-surface-overlay: rgba(255,255,255,0.06);--color-border: #334155;--color-border-strong: #475569;--color-text: #e2e8f0;--color-text-muted: #94a3b8;--color-text-subtle: #64748b;--color-primary: #60a5fa;--color-primary-strong: #93c5fd;--color-primary-soft: rgba(59,130,246,0.25);--color-focus-ring: rgba(96,165,250,0.6);--color-danger-text: #f87171;--color-warning-text: #fbbf24;--color-success-text: #34d399;--color-accent-text: #5eead4;--chart-primary-color: #7FAEDC;--chart-secondary-color: #B8A6D6;--chart-success-color: #9FC8A1;--chart-warning-color: #DDB678;--chart-danger-color: #D89A9A;--chart-cat-1: #60a5fa;--chart-cat-2: #4ade80;--chart-cat-3: #fb923c;--chart-cat-4: #c084fc;--chart-cat-5: #f87171;--chart-cat-6: #22d3ee;--chart-cat-7: #facc15;--chart-cat-8: #f472b6;--shadow-chip: 0 1px 2px rgba(0,0,0,0.4),0 0 0 1px rgba(255,255,255,0.05)}@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;700&display=swap');html{font-size: 16px;--aura-font-family: 'Roboto',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--lumo-font-family: 'Roboto',ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;--mono-font-family: 'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace}html.dark{color-scheme: dark}vaadin-app-layout[drawer-opened]::part(navbar-top){padding-inline-start: 0}.preferences-bar{gap: 1rem}a.brand-link{text-decoration: none;color: inherit;display: inline-flex}a.brand-link:hover{color: var(--color-primary)}.retirement-view>h2{margin: 0 0 0.5rem;font-size: 1.5rem;font-weight: 700;letter-spacing: -0.01em}.action-row{margin-top: 0.5rem;gap: 0.75rem}.form-card-message{padding: 0.2rem 0.65rem;border-radius: 0.5rem;background-color: var(--color-danger-bg);color: var(--color-danger-text);font-size: 0.8rem;font-weight: 600;white-space: nowrap}.form-row{flex-wrap: nowrap}.form-row>vaadin-text-field,.form-row>vaadin-number-field,.form-row>vaadin-integer-field,.form-row>vaadin-custom-field,.form-row>vaadin-select{flex: 1 1 0;min-width: 0}.form-row .remove-label{display: none}@media (max-width: 64rem){.form-row{flex-direction: column;align-items: stretch;gap: 0.5rem;padding: 1rem;border: 1px solid var(--color-border);border-radius: 10px;background: var(--color-surface)}.form-row>*{width: 100%}.form-row .remove-label{display: inline;margin-inline-start: 0.4rem}.form-row .row-remove{justify-content: center}}.summary-row{gap: 1rem;margin-top: 0.25rem;flex-wrap: wrap}.summary-row>.summary-card{flex-grow: 1;flex-shrink: 1;flex-basis: 12rem;min-width: 12rem}.chart-card{background: var(--color-surface);border: 1px solid var(--color-border);border-radius: 10px;padding: 0.25rem 0.5rem 0.75rem}.grid-card{background: var(--color-surface);border: 1px solid var(--color-border);border-radius: 10px;padding: 0.75rem 0.75rem 0.25rem}.grid-card>h2{margin: 0 0 0.5rem;font-size: 0.85rem;font-weight: 600;text-transform: uppercase;letter-spacing: 0.05em;color: var(--color-text-muted)}vaadin-grid::part(cell){font-variant-numeric: tabular-nums;min-height: 3rem}vaadin-grid::part(header-cell){font-weight: 600;letter-spacing: 0.02em}vaadin-grid::part(retirement-row){background: var(--color-accent-bg)}vaadin-grid::part(depleted-row){background: var(--color-danger-bg)}vaadin-grid::part(low-row){background: var(--color-warning-bg)}vaadin-grid::part(corpus-end-depleted){color: var(--color-danger-text);font-weight: 600}vaadin-grid::part(corpus-end-low){color: var(--color-warning-text);font-weight: 600}vaadin-grid::part(corpus-end-healthy){color: var(--color-success-text);font-weight: 600}.money-cell{display: flex;flex-direction: column;align-items: flex-end;line-height: 1.25}.money-cell-primary{white-space: nowrap}.money-cell-secondary{font-size: 0.9em;color: var(--color-text-muted);white-space: nowrap}vaadin-card{&.summary-card{--vaadin-card-title-font-weight: 700;min-width: 12rem}&.summary-card::part(media){align-self: center}&.summary-card .summary-card-icon{box-sizing: border-box;width: 1.75rem;height: 1.75rem;padding: 0.35rem;border-radius: 8px;color: var(--color-primary);background-color: var(--color-primary-soft)}&[status~="success"] .summary-card-icon{color: var(--color-success-text);background-color: var(--color-success-bg)}&[status~="warning"] .summary-card-icon{color: var(--color-warning-text);background-color: var(--color-warning-bg)}&[status~="danger"] .summary-card-icon{color: var(--color-danger-text);background-color: var(--color-danger-bg)}&::part(content){color: var(--vaadin-text-color);font-weight: 500}&[status~="success"]{background-color: var(--color-success-bg)}&[status~="warning"]{background-color: var(--color-warning-bg)}&[status~="danger"]{background-color: var(--color-danger-bg)}&[status~="success"]::part(content){--vaadin-text-color: var(--color-success-text)}&[status~="warning"]::part(content){--vaadin-text-color: var(--color-warning-text)}&[status~="danger"]::part(content){--vaadin-text-color: var(--color-danger-text)}}.share-link-button vaadin-button{color: var(--color-text-muted);background-color: var(--color-surface-overlay);border-radius: 999px;transition: color 0.12s ease,background-color 0.12s ease;&:hover{color: var(--color-primary);background-color: var(--color-primary-soft)}& vaadin-icon{color: inherit}}vaadin-radio-group.segmented-toggle vaadin-radio-button::part(radio){display: none}vaadin-radio-group.segmented-toggle vaadin-radio-button>input{display: none}vaadin-radio-group.segmented-toggle vaadin-radio-button::before{display: none}vaadin-radio-group.segmented-toggle{--vaadin-radio-button-gap: 0;--vaadin-gap-xs: 0.125rem;background-color: var(--radio-pill-background);padding: 0.25rem;border-radius: 999px}vaadin-radio-group.segmented-toggle::part(group-field){flex-direction: row;gap: 0.125rem}vaadin-radio-group.segmented-toggle vaadin-radio-button{background-color: transparent;border-radius: 999px;transition: color 0.12s ease,background-color 0.12s ease;&[checked]{background-color: var(--radio-pill-selected-background)}label{padding: 0.5rem 1rem;color: var(--radio-pill-text)}&:hover:not([checked]) label{color: var(--color-text)}&[checked] label{color: var(--radio-pill-selected-text)}}.tab-indicator{display: inline-block;width: 0.25rem;height: 0.25rem;margin-inline-start: -0.125rem;border-radius: 50%;background-color: var(--color-primary);flex: none;align-self: center}.tab-indicator.tab-indicator-error{background-color: var(--color-danger-text)}.retirement-view .summary-row{margin-top: 2.5rem}.inner-form-section{--_padding: 0;--vaadin-card-border-width: 0}.form-section-container{--vaadin-vertical-layout-gap: 1.5rem}.chart-card vaadin-tabs{margin-block: 0.25rem 1.5rem}.goal-view .summary-row{margin-top: 2.5rem}.goal-view .action-row{margin-top: 0.5rem}.goal-view vaadin-radio-group.segmented-toggle{align-self: flex-start}.goal-view .subsection-label{font-weight: 600;color: var(--color-text);margin-top: 0.5rem}.inflation-view .summary-row{margin-top: 2.5rem}.inflation-view .subsection-label{font-weight: 600;color: var(--color-text);margin-top: 0.5rem}.inflation-view vaadin-radio-group.segmented-toggle{align-self: flex-start}.investment-view .summary-row{margin-top: 2.5rem}.investment-view .subsection-label{font-weight: 600;color: var(--color-text);margin-top: 0.5rem}.investment-view .subsection-hint{color: var(--vaadin-secondary-text-color,#71717a)}.investment-view vaadin-radio-group.segmented-toggle{align-self: flex-start}.loan-view .summary-row{margin-top: 2.5rem}.loan-view .subsection-label{font-weight: 600;color: var(--color-text)}.loan-view .subsection-hint{color: var(--vaadin-secondary-text-color,#71717a);font-size: 0.85rem}.loan-view vaadin-radio-group.segmented-toggle{align-self: flex-start;background-color: transparent;padding: 0}.loan-view vaadin-radio-group.segmented-toggle::part(group-field){width: fit-content;background-color: var(--color-surface-overlay);padding: 0.25rem;border-radius: 999px}.loan-view .schedule-title-group{flex-wrap: wrap}.loan-view .schedule-toggle vaadin-radio-button{flex-shrink: 0}.loan-view .schedule-toggle vaadin-radio-button label{white-space: nowrap}.loan-view .prepay-lever{gap: 0.35rem}.loan-view .prepay-tabs{border: none}.loan-view .prepay-tabs::part(content){padding-inline: 0}.loan-view .prepay-tabs::part(tabs-container){padding-inline: 0}.buyrent-view .summary-row{margin-top: 2.5rem}.buyrent-view .subsection-hint{color: var(--vaadin-secondary-text-color,#71717a);font-size: 0.85rem}.buyrent-view::part(break-even){background-color: var(--color-success-bg);color: var(--color-success-text);font-weight: 600}.landing-view h1{margin-bottom: 0}.landing-view .landing-grid{display: grid;grid-template-columns: repeat(4,1fr);gap: 1rem;width: 100%}@media (max-width: 64rem){.landing-view .landing-grid{grid-template-columns: repeat(2,1fr)}}@media (max-width: 36rem){.landing-view .landing-grid{grid-template-columns: 1fr}}.landing-view a.landing-tile-link{text-decoration: none;color: inherit;display: block}.landing-view .landing-tile{--vaadin-card-padding: 1.5rem;border: 1px solid var(--color-border);transition: border-color 120ms ease,transform 120ms ease,box-shadow 120ms ease;cursor: pointer;height: 100%}.landing-view a.landing-tile-link:hover .landing-tile{border-color: var(--color-primary);transform: translateY(-2px);box-shadow: var(--shadow-chip)}.landing-view .landing-tile-icon{display: inline-flex;width: 2.5rem;height: 2.5rem;align-items: center;justify-content: center;border-radius: 0.75rem;background-color: var(--color-primary-soft);color: var(--color-primary-strong);margin-bottom: 1rem}.landing-view .landing-tile-title{font-size: var(--vaadin-font-size-l,1.125rem);font-weight: 700;color: var(--color-text)}.landing-view .landing-tile-body{color: var(--color-text-muted);margin: 0.5rem 0 0}.drawer-footer{padding: var(--vaadin-padding-m,0.75rem);border-top: 1px solid var(--color-border)}.drawer-footer-link{display: inline-flex;align-items: center;color: var(--color-text-subtle);padding: 0.25rem;border-radius: var(--vaadin-radius-m,0.25rem);transition: color 0.15s ease-in-out}.drawer-footer-link:hover{color: var(--color-primary)}html,body,*,*:before,*:after{box-sizing: border-box}