*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0F1923;--color-surface: #1A2535;--color-surface-2: #243045;--color-surface-3: #2D3A50;--color-border: #2D3F55;--color-text: #E8EDF3;--color-text-muted: #7A90A8;--color-text-dim: #4A6080;--color-blue: #3B82F6;--color-blue-dim: rgba(59,130,246,.15);--color-emerald: #10B981;--color-emerald-dim: rgba(16,185,129,.15);--color-amber: #F59E0B;--color-amber-dim: rgba(245,158,11,.15);--color-red: #EF4444;--color-red-dim: rgba(239,68,68,.15);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 20px;--shadow-card: 0 4px 24px rgba(0,0,0,.4);--font-sans: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace}html,body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-size:15px;line-height:1.5;min-height:100vh;-webkit-font-smoothing:antialiased}#root{min-height:100vh}.mono{font-family:var(--font-mono);font-feature-settings:"tnum"}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input[type=number]{-moz-appearance:textfield}button{cursor:pointer;font-family:var(--font-sans)}select{font-family:var(--font-sans)}.input-field{display:flex;flex-direction:column;gap:6px}.input-field__label-row{display:flex;align-items:center;gap:6px}.input-field__label{font-size:13px;font-weight:500;color:var(--color-text-muted);letter-spacing:.02em;text-transform:uppercase}.input-field__tooltip{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);color:var(--color-text-muted);font-size:10px;font-weight:700;cursor:help;flex-shrink:0}.input-field__control{display:flex;align-items:center;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;transition:border-color .15s}.input-field__control:focus-within{border-color:var(--color-blue);box-shadow:0 0 0 2px #3b82f633}.input-field__control--error{border-color:var(--color-red)!important}.input-field__affix{padding:0 10px;color:var(--color-text-muted);font-size:14px;font-family:var(--font-mono);background:var(--color-surface-3);align-self:stretch;display:flex;align-items:center;-webkit-user-select:none;user-select:none}.input-field__prefix{border-right:1px solid var(--color-border)}.input-field__suffix{border-left:1px solid var(--color-border)}.input-field__input{flex:1;background:transparent;border:none;outline:none;color:var(--color-text);font-size:15px;padding:9px 12px;width:100%;min-width:0}.input-field__error{font-size:12px;color:var(--color-red);margin-top:2px}.loan-inputs{display:flex;flex-direction:column;gap:16px}.input-section-title{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-dim);padding-bottom:8px;border-bottom:1px solid var(--color-border)}.input-row-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.existing-mortgage{display:flex;flex-direction:column;gap:12px}.existing-mortgage__toggle{display:flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.existing-mortgage__checkbox{width:16px;height:16px;accent-color:var(--color-blue);cursor:pointer;flex-shrink:0}.existing-mortgage__label{font-size:13px;font-weight:500;color:var(--color-text-muted)}.existing-mortgage__fields{display:flex;flex-direction:column;gap:12px;padding:12px;background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.remaining-balance-display{background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 12px;display:flex;flex-direction:column;gap:6px}.remaining-balance-row{display:flex;justify-content:space-between;align-items:center}.remaining-balance-label{font-size:12px;color:var(--color-text-muted)}.remaining-balance-value{font-size:14px;font-weight:600;color:var(--color-emerald)}.remaining-balance-note{font-size:11px;color:var(--color-text-dim);margin-top:2px}.loan-inputs__term{display:flex;flex-direction:column;gap:6px}.term-select{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:15px;padding:9px 32px 9px 12px;outline:none;cursor:pointer;width:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%237A90A8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;transition:border-color .15s}.term-select:focus{border-color:var(--color-blue);box-shadow:0 0 0 2px #3b82f633}.cashflow-inputs{display:flex;flex-direction:column;gap:16px}.cashflow-summary{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px;display:flex;flex-direction:column;gap:8px}.cashflow-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.cashflow-row--total{padding-top:8px;border-top:1px solid var(--color-border);margin-top:2px}.cashflow-label{color:var(--color-text-muted)}.cashflow-value{font-size:14px;color:var(--color-text)}.cashflow-positive{color:var(--color-emerald)}.cashflow-negative{color:var(--color-red)}.input-panel{display:flex;flex-direction:column;overflow:hidden;position:sticky;top:24px;max-height:calc(100vh - 48px);overflow-y:auto}.input-panel__header{padding:20px 24px 16px;border-bottom:1px solid var(--color-border);flex-shrink:0}.input-panel__title{font-size:16px;font-weight:600;color:var(--color-text)}.input-panel__body{padding:20px 24px 24px;display:flex;flex-direction:column;gap:24px;overflow-y:auto}.input-panel__divider{height:1px;background:var(--color-border)}.input-panel::-webkit-scrollbar{width:4px}.input-panel::-webkit-scrollbar-track{background:transparent}.input-panel::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.insight-callout{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);overflow:hidden}.insight-header{padding:16px 20px;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:10px}.insight-badge{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--color-emerald-dim);color:var(--color-emerald);border:1px solid rgba(16,185,129,.3);padding:3px 8px;border-radius:100px}.insight-title{font-size:15px;font-weight:600;color:var(--color-text)}.insight-rows{display:flex;flex-direction:column}.insight-row{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--color-border)}.insight-row--mortgage{background:#3b82f60a}.insight-row--heloc{background:#10b9810a}.insight-row--extra{background:#f59e0b0a}.insight-strategy{display:flex;align-items:center;gap:8px;min-width:180px;flex-shrink:0}.insight-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.insight-strategy-name{font-size:13px;font-weight:600;color:var(--color-text)}.insight-stats{display:flex;gap:24px;flex-wrap:wrap}.insight-stat{display:flex;flex-direction:column;gap:2px}.insight-stat-label{font-size:11px;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.05em}.insight-stat-value{font-size:15px;font-weight:600;color:var(--color-text)}.insight-stat-value.positive{color:var(--color-emerald)}.insight-stat-value.negative{color:var(--color-red)}.insight-verdict{padding:14px 20px;display:flex;align-items:flex-start;gap:10px;font-size:13px;line-height:1.5;color:var(--color-text-muted)}.insight-verdict--meaningful{background:var(--color-emerald-dim);color:var(--color-text)}.insight-verdict--neutral{background:var(--color-amber-dim)}.insight-verdict-icon{flex-shrink:0;margin-top:1px;font-style:normal}.insight-verdict strong{color:var(--color-text)}@media(max-width:700px){.insight-row{flex-direction:column;align-items:flex-start}.insight-strategy{min-width:unset}.insight-stats{gap:16px}}.summary-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.summary-card{padding:16px;border-top:3px solid var(--strategy-color)}.summary-card__header{display:flex;align-items:center;gap:8px;margin-bottom:14px}.summary-card__dot{width:8px;height:8px;border-radius:50%;background:var(--strategy-color);flex-shrink:0}.summary-card__label{font-size:12px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.summary-card__body{display:flex;flex-direction:column;gap:12px}.summary-stat{display:flex;flex-direction:column;gap:2px}.summary-stat__label{font-size:11px;color:var(--color-text-dim);text-transform:uppercase;letter-spacing:.05em}.summary-stat__value{font-size:20px;font-weight:600;color:var(--color-text);line-height:1.2}.summary-stat__sub{font-size:12px;color:var(--color-text-muted)}@media(max-width:900px){.summary-cards{grid-template-columns:1fr}}@media(min-width:901px)and (max-width:1100px){.summary-stat__value{font-size:17px}}.chart-card{overflow:hidden}.chart-card__header{padding:16px 20px 12px;border-bottom:1px solid var(--color-border)}.chart-card__title{font-size:14px;font-weight:600;color:var(--color-text);margin-bottom:2px}.chart-card__sub{font-size:12px;color:var(--color-text-muted)}.chart-card__body{padding:16px 8px 8px}.chart-tooltip{background:var(--color-surface-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px;box-shadow:0 4px 20px #00000080;min-width:220px}.chart-tooltip__title{font-size:12px;color:var(--color-text-muted);margin-bottom:8px;font-weight:500}.chart-tooltip__row{display:flex;align-items:center;gap:8px;margin-bottom:5px;font-size:13px}.chart-tooltip__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.chart-tooltip__name{flex:1;color:var(--color-text-muted);font-size:12px}.chart-tooltip__value{color:var(--color-text);font-size:13px;font-weight:500}.strategy-table{overflow:hidden}.strategy-table__header{padding:16px 20px;border-bottom:1px solid var(--color-border)}.strategy-table__title{font-size:14px;font-weight:600;color:var(--color-text)}.strategy-table__scroll{overflow-x:auto}.st-table{width:100%;border-collapse:collapse;font-size:13px}.st-th{padding:12px 16px;text-align:left;background:var(--color-surface-2);font-weight:600;color:var(--color-text-muted);border-bottom:1px solid var(--color-border);white-space:nowrap}.st-th--label{width:40%}.st-strategy-badge{display:inline-flex;align-items:center;gap:6px;font-size:12px}.st-strategy-badge:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);flex-shrink:0}.st-td{padding:10px 16px;border-bottom:1px solid rgba(45,63,85,.5);color:var(--color-text);vertical-align:middle}.st-td--label{color:var(--color-text-muted);font-weight:500}.st-td--positive{color:var(--color-emerald)}.st-row--highlight .st-td{background:var(--color-surface-2);font-weight:600}.rate-sensitivity{overflow:hidden}.rate-sensitivity__header{padding:16px 20px 12px;border-bottom:1px solid var(--color-border)}.rate-sensitivity__title{font-size:14px;font-weight:600;color:var(--color-text);margin-bottom:2px}.rate-sensitivity__sub{font-size:12px;color:var(--color-text-muted)}.rate-sensitivity__chart{padding:16px 8px 8px}.rate-sensitivity__table{border-top:1px solid var(--color-border);overflow-x:auto}.rs-table{width:100%;border-collapse:collapse;font-size:13px}.rs-th{padding:10px 16px;text-align:left;background:var(--color-surface-2);font-weight:600;color:var(--color-text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--color-border)}.rs-td{padding:9px 16px;border-bottom:1px solid rgba(45,63,85,.5);color:var(--color-text);display:table-cell;align-items:center;gap:8px}.rs-rate-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:middle}.rs-tag{display:inline-block;font-size:10px;background:var(--color-emerald-dim);color:var(--color-emerald);border:1px solid rgba(16,185,129,.3);padding:1px 6px;border-radius:100px;margin-left:6px;vertical-align:middle;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.disclaimer{display:flex;gap:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 20px;font-size:12px;color:var(--color-text-muted);line-height:1.6}.disclaimer__icon{font-size:16px;flex-shrink:0;opacity:.5;margin-top:1px}.disclaimer__content strong{display:block;margin-bottom:8px;color:var(--color-text);font-size:13px}.disclaimer__content ul{padding-left:16px;display:flex;flex-direction:column;gap:4px}.disclaimer__content li strong{display:inline;font-size:inherit;color:var(--color-text)}.results-panel{display:flex;flex-direction:column;gap:16px;min-width:0}.results-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 40px;text-align:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);gap:12px}.results-empty__icon{font-size:40px;opacity:.2}.results-empty__title{font-size:16px;font-weight:500;color:var(--color-text-muted)}.results-empty__sub{font-size:13px;color:var(--color-text-dim);max-width:340px}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:16px 24px;flex-shrink:0}.app-header__inner{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.app-header__brand{display:flex;align-items:center;gap:10px}.app-header__logo{color:var(--color-emerald);font-size:18px}.app-header__title{font-size:17px;font-weight:700;color:var(--color-text);letter-spacing:-.01em}.app-header__tagline{font-size:12px;color:var(--color-text-muted)}.app-layout{flex:1;max-width:1400px;margin:0 auto;width:100%;padding:24px;display:grid;grid-template-columns:340px 1fr;gap:24px;align-items:start}.app-footer{padding:16px 24px;text-align:center;font-size:11px;color:var(--color-text-dim);border-top:1px solid var(--color-border)}@media(max-width:768px){.app-layout{grid-template-columns:1fr;padding:16px;gap:16px}.app-header__inner{flex-direction:column;align-items:flex-start}}@media(min-width:769px)and (max-width:1024px){.app-layout{grid-template-columns:300px 1fr;padding:16px}}
