:root{color:#1f2937;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--bg-app:#eceef2;--bg-panel:#fff;--bg-sidebar:#f8f9fb;--border:#d8dde6;--border-strong:#c7ced9;--text-muted:#6b7280;--text-soft:#94a3b8;--accent:#2b84ff;--accent-hover:#1d6fe0;--positive:#1f8f4e;--negative:#c0392b;--row-hover:#f5f8fc;--header-bg:#f3f5f8;--shadow:0 1px 2px #0f172a0f;background:#eceef2;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:13px;font-weight:400;line-height:1.4}*{box-sizing:border-box}body{background:var(--bg-app);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}#root{min-height:100vh}body.col-resizing,body.col-resizing *{-webkit-user-select:none;user-select:none;cursor:col-resize!important}.app-layout{min-height:100vh;display:flex}.main-panel{flex-direction:column;flex:1;min-width:0;display:flex}.main-content{flex:1;padding:20px 24px 28px;overflow:auto}.toast-bar{border-bottom:1px solid var(--border);padding:10px 24px;font-size:.92rem}.toast-bar.error{color:var(--negative);background:#fff5f5}.toast-bar.success{color:var(--positive);background:#f0fdf4}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;padding:18px 14px;display:flex}.sidebar-brand{align-items:center;gap:12px;padding:8px 10px 18px;display:flex;position:relative}.sidebar-close{color:#64748b;background:0 0;border:none;border-radius:6px;margin-left:auto;padding:4px 6px;font-size:1.5rem;line-height:1;display:none}.sidebar-close:hover{color:#334155;background:#eef2f7}.mobile-topbar{border-bottom:1px solid var(--border);background:var(--bg-panel);align-items:center;gap:12px;padding:12px 16px;display:none}.mobile-topbar-title{color:#0f172a;font-size:.92rem;font-weight:600}.sidebar-toggle{border:1px solid var(--border);color:#334155;background:#fff;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;display:inline-flex}.sidebar-toggle:hover{background:#f8fafc}.sidebar-backdrop{z-index:90;cursor:pointer;background:#0f172a59;border:none;padding:0;display:none;position:fixed;inset:0}.sidebar-logo{color:#fff;background:linear-gradient(135deg,#2b84ff,#1d4ed8);border-radius:10px;place-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:grid}.sidebar-title{font-size:.92rem;font-weight:600}.sidebar-subtitle{color:var(--text-muted);font-size:.78rem}.sidebar-nav{gap:4px;display:grid}.sidebar-link{color:#374151;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:.92rem;display:flex}.sidebar-link:hover{background:#eef2f7}.sidebar-link.active{color:#1d4ed8;background:#e8f1ff;font-weight:600}.sidebar-link-icon{text-align:center;opacity:.8;width:18px}.sidebar-section{border-top:1px solid var(--border);margin-top:22px;padding-top:16px}.sidebar-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft);padding:0 10px 10px;font-size:.72rem;font-weight:600}.sidebar-account-list{gap:2px;display:grid}.sidebar-account-item{color:#4b5563;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:.84rem;display:flex}.sidebar-account-dot{background:#94a3b8;border-radius:999px;flex-shrink:0;width:8px;height:8px}.sidebar-account-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-account-more,.sidebar-footer{color:var(--text-muted);padding:8px 10px;font-size:.78rem}.sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding-top:14px}.register,.panel-card{background:var(--bg-panel);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px}.panel-card{min-width:0;max-width:100%}.register-toolbar,.panel-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 20px;display:flex}.page-title{margin:0;font-size:1.05rem;font-weight:600}.page-subtitle{color:var(--text-muted);margin:2px 0 0;font-size:.78rem}.toolbar-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-import{align-items:center;gap:8px;margin-right:auto;display:inline-flex}.toolbar-import-account{border:1px solid var(--border);max-width:180px;color:var(--text);background:#fff;border-radius:8px;padding:6px 10px;font-size:.8125rem}.toolbar-import-file-input{display:none}.btn{border:1px solid #0000;border-radius:8px;padding:6px 12px;font-size:.8125rem;font-weight:500}.btn-sm{padding:5px 10px;font-size:.8rem}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{border-color:var(--border-strong);color:#374151;background:#fff}.btn-ghost{border-color:var(--border);color:#4b5563;background:0 0}.filter-bar{border-bottom:1px solid var(--border);background:#fafbfc;flex-wrap:wrap;justify-content:space-between;gap:16px;padding:12px 20px;display:flex}.filter-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:600}.filter-chip{border:1px solid var(--border);color:#4b5563;background:#fff;border-radius:999px;padding:5px 10px;font-size:.8rem}.filter-chip.active{color:#1d4ed8;background:#e8f1ff;border-color:#93c5fd}.filter-select-wrap{align-items:center;gap:8px;display:flex}.filter-select-wrap select{width:auto;min-width:160px}.add-transaction-form{border-bottom:1px solid var(--border);background:#fbfcfe;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;padding:14px 20px;display:grid}.register-table-shell{padding:0}.register-table-scroll{max-height:calc(100vh - 280px);overflow:auto}.register-pagination{border-top:1px solid var(--border);background:#fbfcfe;justify-content:flex-end;align-items:center;gap:12px;padding:10px 14px;display:flex}.register-pagination-label{color:var(--text-muted);white-space:nowrap;font-size:.85rem}.register-table{border-collapse:separate;border-spacing:0;table-layout:fixed}.register-table thead th{z-index:2;background:var(--header-bg);border-bottom:1px solid var(--border-strong);border-right:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;text-align:center;padding:0;font-size:.72rem;font-weight:600;position:sticky;top:0}.th-content{justify-content:center;align-items:center;gap:2px;min-height:32px;padding:0 8px 0 4px;display:flex;position:relative}.th-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.th-sort-indicator{font-size:.7rem}.column-header-menu{flex:none;position:relative}.column-header-trigger{width:18px;height:18px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.65rem;line-height:1;display:inline-flex}.column-header-trigger:hover,.column-header-trigger.open{color:var(--text);background:#2b84ff1f}.column-header-trigger.filtered,.column-header-trigger.sorted{color:#2563eb;background:#2563eb1f}.column-header-dropdown{z-index:40;min-width:220px;max-width:280px}.column-header-divider{background:var(--border);height:1px;margin:4px 0}.column-header-search-wrap{padding:6px 8px 4px}.column-header-search{border:1px solid var(--border);border-radius:6px;width:100%;padding:6px 8px;font-size:.8125rem}.column-header-value-list{max-height:220px}.column-header-empty{color:var(--text-muted);padding:10px 12px;font-size:.8125rem}.col-resizer{background:0 0;border:none;width:8px;height:100%;padding:0;position:absolute;top:0;right:0}.col-resizer:hover{background:#2b84ff2e}.register-table tbody td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:middle;text-align:center;background:#fff;height:34px;padding:0;font-size:.8125rem;overflow:visible}.cell-control{width:100%;color:inherit;text-align:center;background:0 0;border:none;border-radius:0;min-width:0;padding:6px 8px;font-size:.8125rem}select.cell-control{cursor:pointer;appearance:auto;-webkit-appearance:menulist}.cell-muted{color:var(--text-muted);padding:0 8px;font-size:.8125rem}.cell-index{font-variant-numeric:tabular-nums;text-align:center}.cell-amount{font-variant-numeric:tabular-nums;text-align:center;padding:0;font-weight:500}.cell-amount.positive .cell-amount-input{color:var(--positive)}.cell-amount.negative .cell-amount-input{color:var(--negative)}.cell-amount-input{text-align:center;font-weight:500}.cell-date-input{color:var(--text-muted);font-variant-numeric:tabular-nums}.register-table tbody tr:hover .cell-date-input{color:inherit}.register-table tbody tr:hover td{background:var(--row-hover)}.cell-control:focus{outline-offset:-2px;background:#f8fbff;outline:2px solid #2b84ff59}.cell-truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.positive{color:var(--positive)}.negative{color:var(--negative)}.empty-state{text-align:center;color:var(--text-muted);padding:48px 20px}.panel-body{padding:20px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;padding:20px;display:grid}.stat-card{border:1px solid var(--border);background:#fafbfc;border-radius:10px;padding:16px}.stat-label{color:var(--text-muted);font-size:.82rem}.stat-value{margin-top:6px;font-size:1.15rem;font-weight:600}.form-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.form-grid label{color:#374151;gap:6px;font-size:.88rem;display:grid}input,select{border:1px solid var(--border-strong);color:#1f2937;background:#fff;border-radius:8px;width:100%;padding:6px 10px;font-size:.8125rem}.simple-table{border-collapse:collapse;width:100%}.simple-table th,.simple-table td{text-align:center;border-bottom:1px solid var(--border);padding:8px 10px;font-size:.8125rem}.simple-table th{background:var(--header-bg);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-size:.78rem}.account-table{table-layout:auto;width:100%}.th-sortable{width:100%;min-height:32px;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0 8px;display:flex}.th-sortable:hover,.th-sortable.active{color:var(--text)}.sort-indicator{margin-left:2px;font-size:.7rem}.row-inactive td{opacity:.65}.account-add-form{border-top:1px solid var(--border);border-bottom:none}.comparison-table-shell{min-width:0;max-width:100%;padding:0}.comparison-table-scroll{-webkit-overflow-scrolling:touch;min-width:0;max-width:100%;max-height:calc(100vh - 260px);overflow:auto}.comparison-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%}.comparison-table th,.comparison-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:center;white-space:nowrap;background:#fff;padding:8px 12px;font-size:.8125rem}.comparison-table thead th{z-index:2;background:var(--header-bg);color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.72rem;font-weight:600;position:sticky;top:0}.comparison-sticky-col{z-index:1;text-align:left;background:#fff;min-width:140px;max-width:180px;font-weight:500;position:sticky;left:0}.comparison-table thead .comparison-sticky-col{z-index:3;background:var(--header-bg)}.comparison-summary-row td{background:#fbfcfe;font-weight:600}.comparison-summary-row .comparison-sticky-col{background:#fbfcfe}.comparison-row-label{text-overflow:ellipsis;overflow:hidden}.comparison-divider-row td{background:var(--header-bg);border-bottom:1px solid var(--border-strong);height:6px;padding:0}.filter-dropdown-row{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.filter-control{gap:6px;min-width:168px;display:grid;position:relative}.filter-control-wide,.filter-control-wide .filter-trigger{min-width:220px}.filter-trigger{border:1px solid var(--border-strong);color:#1f2937;min-width:168px;box-shadow:var(--shadow);background:#fff;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:.8125rem;line-height:1.2;transition:border-color .15s,box-shadow .15s;display:flex}.filter-trigger:hover{border-color:#b8c4d6}.filter-trigger.open,.filter-trigger:focus-visible{border-color:#93c5fd;outline:none;box-shadow:0 0 0 3px #2b84ff1f}.filter-trigger-text{text-overflow:ellipsis;white-space:nowrap;text-align:left;overflow:hidden}.filter-trigger-chevron{color:var(--text-muted);flex-shrink:0;font-size:.72rem}.filter-menu{z-index:20;border:1px solid var(--border-strong);background:#fff;border-radius:12px;min-width:100%;max-width:320px;position:absolute;top:calc(100% + 6px);left:0;overflow:hidden;box-shadow:0 10px 30px #0f172a1f}.filter-menu-multi{width:max-content;min-width:100%}.filter-menu-toolbar{border-bottom:1px solid var(--border);background:#fafbfc;gap:10px;padding:8px 10px;display:flex}.filter-menu-link{color:var(--accent);background:0 0;border:none;padding:0;font-size:.78rem;font-weight:600}.filter-menu-link:hover{color:var(--accent-hover)}.filter-menu-list{max-height:260px;padding:6px;overflow:auto}.filter-menu-item,.filter-menu-option{color:#374151;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:.8125rem;display:flex}.filter-menu-item:hover,.filter-menu-option:hover{background:#f3f6fb}.filter-menu-item.active,.filter-menu-option.active{color:#1d4ed8;background:#eef5ff}.filter-menu-check{color:#1d4ed8;flex-shrink:0;width:14px;font-size:.75rem}.filter-menu-option input{width:14px;height:14px;accent-color:var(--accent);margin:0}.pivot-filter-bar{border-bottom:none}.expense-filter-bar{align-items:flex-start}.other-spending-top-panel{background:linear-gradient(#faf5ff 0%,#fff 100%);border:1px solid #ddd6fe;border-radius:12px;flex:320px;min-width:280px;max-width:520px}.other-spending-top-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;list-style:none;display:flex}.other-spending-top-toggle::-webkit-details-marker{display:none}.other-spending-top-toggle:before{content:"▸";color:#7c3aed;flex-shrink:0;font-size:.72rem;line-height:1;transition:transform .15s}.other-spending-top-panel[open] .other-spending-top-toggle:before{transform:rotate(90deg)}.other-spending-top-title{color:#1f2937;flex:auto;min-width:0;margin:0;font-size:.78rem;font-weight:700;line-height:1.3}.other-spending-top-total{flex-shrink:0;align-items:baseline;gap:8px;display:flex}.other-spending-top-value{font-size:.92rem;font-weight:700;line-height:1.2}.other-spending-top-value.muted{color:#94a3b8}.other-spending-top-count{color:#64748b;font-size:.64rem}.other-spending-top-body{padding:0 12px 10px}.other-spending-top-list{gap:4px;max-height:148px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.other-spending-top-item{border:1px solid var(--border);background:#fff;border-radius:8px;grid-template-columns:78px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:5px 8px;font-size:.72rem;display:grid}.other-spending-top-item-date{color:#64748b;white-space:nowrap;font-weight:600}.other-spending-top-item-desc{text-overflow:ellipsis;white-space:nowrap;color:#1f2937;min-width:0;font-weight:600;overflow:hidden}.other-spending-top-item-cat{color:#7c3aed;white-space:nowrap;font-weight:600}.other-spending-top-item-amt{white-space:nowrap;text-align:right;min-width:4.5rem;font-weight:700}.other-spending-top-empty{border:1px dashed var(--border-strong);text-align:center;color:var(--text-muted);background:#fafafa;border-radius:8px;padding:10px 8px;font-size:.72rem}.pivot-table th:first-child,.pivot-table td:first-child{min-width:150px}.expense-report-table .expense-summary-col{background:#eef4ff}.expense-report-table thead .expense-summary-col{color:#1e3a8a;background:#dbeafe}.expense-report-table .expense-budget-setup-row td{background:#f0fdf4;font-weight:600}.expense-report-table .expense-budget-setup-row .comparison-sticky-col{color:#166534;background:#ecfdf5}.expense-report-table .expense-report-total-row td{background:#fefce8}.expense-report-table .expense-report-total-row .comparison-sticky-col{background:#fef9c3}.expense-report-table .expense-report-total-row .expense-summary-col{background:#fef08a}.expense-report-table .expense-budget-setup-row .comparison-sticky-col{font-weight:600}.expense-report-table-shell .comparison-table-scroll{max-height:min(26vh,260px)}.expense-report-table-compact th,.expense-report-table-compact td{padding:5px 8px;font-size:.72rem}.expense-report-table-compact thead th{letter-spacing:.03em;font-size:.64rem}.expense-report-table-shell .comparison-sticky-col{min-width:108px;max-width:132px}.expense-report-table-shell .pivot-table th:first-child,.expense-report-table-shell .pivot-table td:first-child{min-width:108px}.expense-report-table-panel{border:1px solid var(--border-strong);background:#fff;border-radius:14px;margin:0 20px 16px;overflow:hidden;box-shadow:0 1px 2px #0f172a0a}.expense-report-table-panel-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;list-style:none;display:flex}.expense-report-table-panel-toggle::-webkit-details-marker{display:none}.expense-report-table-panel-toggle:before{content:"▸";color:#64748b;flex:none;font-size:.82rem;transition:transform .15s}.expense-report-table-panel[open] .expense-report-table-panel-toggle:before{transform:rotate(90deg)}.expense-report-table-panel-title{color:#0f172a;flex:1;min-width:0;font-size:.88rem;font-weight:700}.expense-report-table-panel-meta{color:#64748b;white-space:nowrap;flex:none;font-size:.72rem;font-weight:600}.expense-report-table-panel-body{border-top:1px solid var(--border)}.expense-report-table-panel-body .expense-report-table-shell .comparison-table-scroll{max-height:calc(100vh - 320px)}.expense-travel-table-panel .expense-report-table-panel-title{color:#0f766e}.travel-spending-toolbar{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px 10px;display:flex}.travel-year-picker{flex:1;min-width:0}.travel-spending-year-total{color:#0f766e;white-space:nowrap;flex:none;font-size:.72rem;font-weight:700}.travel-pivot-table .travel-pivot-location-col{text-align:center;white-space:nowrap;text-overflow:ellipsis;min-width:88px;max-width:120px;font-size:.72rem;overflow:hidden}.travel-pivot-table .travel-pivot-value-col{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:72px}.travel-pivot-table .comparison-sticky-col{min-width:120px}.travel-pivot-total-row td{font-weight:700}.expense-report-table-empty{color:#64748b;padding:16px 14px;font-size:.82rem}.other-summary-section{border:1px solid var(--border-strong);background:#fff;border-radius:14px;margin:0 20px 20px;padding:12px 14px 14px;box-shadow:0 1px 2px #0f172a0a}.other-summary-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.other-summary-total-pill{text-align:right;background:#faf5ff;border:1px solid #ddd6fe;border-radius:10px;gap:2px;padding:6px 10px;display:grid}.other-summary-total-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:.64rem;font-weight:600}.other-summary-total-value{font-size:.92rem;font-weight:700}.other-transactions-scroll{max-height:320px;overflow:auto}.other-transactions-grid{grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.other-transaction-card{border:1px solid var(--border);background:#fafafa;border-radius:12px;gap:6px;min-height:108px;padding:10px 11px;display:grid}.other-transaction-date{color:#64748b;font-size:.68rem;font-weight:600}.other-transaction-description{color:#1f2937;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:.78rem;font-weight:600;line-height:1.35;display:-webkit-box;overflow:hidden}.other-transaction-category{color:#7c3aed;font-size:.68rem;font-weight:600}.other-transaction-amount{margin-top:auto;font-size:.92rem;line-height:1.2}.other-summary-empty{border:1px dashed var(--border-strong);text-align:center;color:var(--text-muted);background:#fafafa;border-radius:10px;padding:14px;font-size:.78rem}.other-summary-title{color:#1f2937;margin:0;font-size:.92rem;font-weight:700}.other-summary-subtitle{color:var(--text-muted);margin:3px 0 0;font-size:.72rem}.expense-structure-panel{margin:0 20px 16px}.expense-chart-card{background:#fff;border:1px solid #e2e8e8;border-radius:16px;flex-direction:column;gap:12px;padding:16px 18px 14px;display:flex;box-shadow:0 1px 2px #0f172a0a,0 6px 18px #0f172a0d}.expense-structure-split{grid-template-columns:minmax(0,1.75fr) 1px minmax(200px,.48fr);align-items:stretch;gap:0 14px;display:grid}.expense-structure-left,.expense-structure-right{min-width:0}.expense-structure-right{justify-self:end;max-width:280px}.expense-structure-divider{background:linear-gradient(#0000,#d8dee2 12% 88%,#0000);width:1px}.expense-chart-title{text-align:center;color:#7583a1;margin:0 0 8px;font-size:1rem;font-weight:700}.expense-chart-empty{text-align:center;color:#64748b;padding:24px;font-size:.82rem}.expense-stacked-chart-wrap{min-width:0}.expense-stacked-chart-svg,.expense-monthly-donut-svg{width:100%;height:auto;display:block}.expense-chart-grid-line{stroke:#eceff1;stroke-width:1px}.expense-chart-axis-label{fill:#334155;text-anchor:end;font-size:14px}.expense-chart-month-label{fill:#334155;text-anchor:middle;font-size:11px;font-weight:600}.expense-chart-bar-value-label{fill:#0f172a;text-anchor:middle;font-size:11px;font-weight:700}.expense-chart-year-label{fill:#0f172a;text-anchor:middle;font-size:12px;font-weight:600}.expense-chart-year-bracket{stroke:#94a3b8;stroke-width:1.25px;fill:none;stroke-linecap:round}.expense-month-group-header{text-align:center;vertical-align:bottom;border-bottom:none;padding:6px 4px 0}.expense-month-group-year{color:#0f172a;font-size:.72rem;font-weight:700;line-height:1.2;display:block}.expense-month-group-bracket{border:1px solid #94a3b8;border-bottom:none;border-radius:6px 6px 0 0;height:7px;margin:4px 6px 0;display:block}.expense-month-col-header{text-align:center;min-width:52px;font-size:.72rem}.financial-health-bar-value-label{font-size:9px;font-weight:700}.expense-stacked-bar-segment{cursor:pointer;transition:opacity .15s,filter .15s}.expense-stacked-bar-segment.is-focus{filter:brightness(1.06)}.expense-stacked-bar-segment.is-dimmed{opacity:.35}.expense-chart-legend{border-top:1px solid #eceff1;flex-wrap:wrap;justify-content:center;gap:5px 8px;margin:0;padding:10px 4px 0;list-style:none;display:flex}.expense-chart-legend li{cursor:pointer;background:#fafaf8;border:1px solid #e2e8e8;border-radius:999px;align-items:center;gap:5px;min-width:0;max-width:100%;padding:3px 8px;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.expense-chart-legend li.is-focus{background:#fff}.expense-chart-legend li:hover{background:#fff;border-color:#dbe3ee}.expense-chart-swatch{border-radius:2px;flex-shrink:0;width:8px;height:8px}.expense-chart-legend-label{text-overflow:ellipsis;white-space:nowrap;color:#1e293b;font-size:.66rem;font-weight:500;overflow:hidden}.expense-chart-legend-pct{color:#64748b;font-variant-numeric:tabular-nums;font-size:.66rem;font-weight:700}.expense-monthly-breakdown{grid-template-columns:1fr;align-items:start;gap:12px;height:100%;display:grid}.expense-month-picker{align-content:center;gap:5px;display:grid}.expense-donut-period-picker{align-content:start;gap:8px;display:grid}.expense-year-picker{flex-wrap:wrap;gap:4px;display:flex}.expense-month-num-picker{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.expense-year-picker-btn{min-width:44px}.expense-month-num-picker-btn{min-width:0;padding:4px 2px;font-size:.68rem}.expense-month-num-picker-btn.is-disabled,.expense-month-picker-btn:disabled{opacity:.38;cursor:not-allowed}.expense-month-picker-btn{color:#4a6278;background:#fff;border:1px solid #d8dee2;border-radius:6px;min-width:0;padding:4px 6px;font-size:.68rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform .15s}.expense-month-picker-btn:hover{background:#f8faf9;border-color:#c8d8d8}.expense-month-picker-btn.is-active{color:#8b5a3c;background:#f2ce83;border-color:#e0a373;transform:scale(1.02)}.expense-monthly-donut-wrap{justify-content:center;display:flex}.expense-monthly-donut-stage{aspect-ratio:1;width:min(100%,220px);position:relative}.expense-monthly-donut-segment{cursor:pointer;transition:opacity .15s,filter .15s}.expense-monthly-donut-segment.is-focus{filter:brightness(1.06)saturate(1.08)}.expense-monthly-donut-segment.is-dimmed{opacity:.35}.expense-monthly-donut-hole{pointer-events:none;text-align:center;background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:8px;display:flex;position:absolute;inset:22%;box-shadow:0 1px 8px #4a62781a}.expense-monthly-donut-title{color:#0f172a;font-size:.72rem;font-weight:700;line-height:1.2}.expense-monthly-donut-caption{color:#7583a1;margin-top:2px;font-size:.62rem;font-weight:600}.expense-monthly-donut-value{color:#1e293b;margin-top:3px;font-size:.92rem;font-weight:700;line-height:1.15}.expense-monthly-donut-focus-label{color:#334155;font-size:.72rem;font-weight:600;line-height:1.2}.expense-monthly-donut-focus-value{color:#0f172a;margin-top:4px;font-size:1.1rem;font-weight:700}.expense-monthly-donut-focus-sub{color:#64748b;margin-top:2px;font-size:.72rem;font-weight:600}.budget-strip{border:1px solid var(--border-strong);background:linear-gradient(#fff 0%,#f8fafc 100%);border-radius:15px;margin:0 20px 20px;padding:12px 14px;box-shadow:0 1px 2px #0f172a0a,0 7px 20px #0f172a0f}.budget-strip-layout{grid-template-columns:minmax(280px,340px) minmax(0,1fr);grid-template-areas:"flexible total""chart categories";align-items:start;gap:12px;display:grid}.budget-strip-total{grid-area:total}.budget-strip-flexible{grid-area:flexible}.budget-strip-categories{grid-area:categories}.budget-total-hero{background:linear-gradient(135deg,#dbeafe 0%,#eff6ff 42%,#fff 100%);border:2px solid #93c5fd;border-radius:13px;grid-template-columns:minmax(0,1fr) minmax(168px,220px) auto;align-items:center;gap:12px 16px;padding:12px 14px;display:grid;box-shadow:0 1px 2px #2563eb14,0 8px 22px #2563eb1c}.budget-total-hero-copy{min-width:0}.budget-flexible-panel{background:linear-gradient(135deg,#ede9fe 0%,#f5f3ff 42%,#fff 100%);border:2px solid #ddd6fe;border-radius:13px;flex-direction:column;justify-content:center;gap:3px;min-width:0;padding:12px 14px;display:flex;box-shadow:0 1px 2px #5b21b60f,0 8px 22px #5b21b614}.budget-flexible-kicker{letter-spacing:.08em;text-transform:uppercase;color:#7c3aed;margin:0;font-size:.65rem;font-weight:700}.budget-flexible-title{color:#0f172a;margin:0;font-size:.88rem;font-weight:700;line-height:1.28}.budget-flexible-value{margin-top:3px;font-size:1.22rem;font-weight:700;line-height:1.15}.budget-flexible-pct{color:#64748b;margin-top:2px;font-size:.7rem;font-weight:600}.budget-total-kicker{letter-spacing:.08em;text-transform:uppercase;color:#2563eb;margin:0;font-size:.65rem;font-weight:700}.budget-total-title{color:#0f172a;margin:3px 0 0;font-size:1.05rem;font-weight:700;line-height:1.2}.budget-total-input{background:#fff;border-width:2px;border-color:#2563eb;border-radius:11px;justify-self:start;width:100%;min-width:0;min-height:44px;box-shadow:0 3px 12px #2563eb21}.budget-total-input:focus-within{border-color:#1d4ed8;box-shadow:0 0 0 3px #2563eb24,0 3px 12px #2563eb21}.budget-total-input .budget-field-prefix{color:#1d4ed8;padding-left:12px;font-size:.94rem}.budget-total-input .budget-field-input{color:#0f172a;text-align:left;padding:8px 12px 8px 3px;font-size:1.22rem;font-weight:700}.budget-total-stats{justify-self:end;gap:8px;min-width:108px;display:grid}.budget-total-stat{background:#ffffffd9;border:1px solid #bfdbfe;border-radius:9px;gap:2px;padding:6px 10px;display:grid}.budget-total-stat-label{letter-spacing:.05em;text-transform:uppercase;color:#64748b;font-size:.6rem;font-weight:700}.budget-total-stat-value{color:#1d4ed8;font-size:.9rem;font-weight:700}.budget-strip-toolbar{justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:0;display:flex}.budget-strip-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin:0;font-size:.7rem;font-weight:700}.budget-strip-meta{border:1px solid var(--border);color:#475569;white-space:nowrap;background:#fffc;border-radius:999px;align-items:center;gap:8px;padding:5px 11px;font-size:.72rem;font-weight:600;display:inline-flex}.budget-strip-meta-divider{background:var(--border-strong);width:1px;height:11px}.budget-category-panel{border:1px solid var(--border);background:#ffffffe0;border-radius:12px;overflow:hidden}.budget-category-panel-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:12px;padding:11px 13px;list-style:none;display:flex}.budget-category-panel-toggle::-webkit-details-marker{display:none}.budget-category-panel-toggle:before{content:"▸";color:#64748b;flex:none;font-size:.82rem;transition:transform .15s}.budget-category-panel[open] .budget-category-panel-toggle:before{transform:rotate(90deg)}.budget-category-panel-title{color:#0f172a;flex:1;min-width:0;font-size:.82rem;font-weight:700}.budget-category-panel-meta{color:#64748b;white-space:nowrap;flex:none;font-size:.72rem;font-weight:600}.budget-category-panel-body{border-top:1px solid var(--border);padding:0 13px 13px}.budget-cards-grid{grid-template-columns:repeat(auto-fill,minmax(92px,112px));justify-content:start;gap:5px;display:grid}.budget-cards-grid .budget-card{width:100%;min-width:0;max-width:none;height:100%;min-height:84px;overflow:hidden}.budget-strip-chart{border:1px solid var(--border);background:#ffffffe0;border-radius:12px;grid-area:chart;justify-content:center;align-items:center;min-width:0;padding:10px 12px 12px;display:flex}.budget-donut-wrap{flex-direction:column;align-items:center;gap:8px;width:100%;max-width:100%;display:flex}.budget-donut-stage{aspect-ratio:1;width:min(100%,200px);height:auto;margin:0 auto;position:relative}.budget-donut-svg{width:100%;height:100%;display:block}.budget-donut-segment{cursor:pointer;transform-origin:50%;transition:opacity .15s,filter .15s}.budget-donut-segment.is-focus{filter:brightness(1.04)drop-shadow(0 1px 4px #0f172a1f)}.budget-donut-segment.is-dimmed{opacity:.38}.budget-donut-hole{pointer-events:none;text-align:center;background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:7px;display:flex;position:absolute;inset:21%;box-shadow:0 2px 9px #0f172a17}.budget-donut-value{color:#0f172a;font-size:1.02rem;font-weight:700;line-height:1.15}.budget-donut-caption{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-top:2px;font-size:.58rem;font-weight:600}.budget-donut-sub{color:#64748b;margin-top:2px;font-size:.64rem;font-weight:600}.budget-donut-focus-label{text-overflow:ellipsis;white-space:nowrap;color:#475569;max-width:100%;font-size:.68rem;font-weight:600;overflow:hidden}.budget-donut-focus-value{color:#0f172a;margin-top:2px;font-size:1.15rem;font-weight:700;line-height:1.1}.budget-donut-focus-sub{color:#64748b;margin-top:2px;font-size:.66rem;font-weight:600}.budget-donut-legend{flex-wrap:wrap;place-content:flex-start center;gap:5px 7px;width:100%;margin:0;padding:0 2px;list-style:none;display:flex}.budget-donut-legend li{cursor:pointer;background:#f5f7fa;border:1px solid #e8edf3;border-radius:999px;align-items:center;gap:5px;min-width:0;max-width:100%;padding:3px 7px;transition:background .15s,border-color .15s,box-shadow .15s;display:inline-flex}.budget-donut-legend li.is-focus{background:#fff}.budget-donut-legend li:hover{background:#fff;border-color:#dbe3ee}.budget-donut-swatch{border-radius:2px;flex-shrink:0;width:7px;height:7px}.budget-donut-legend-label{text-overflow:ellipsis;white-space:nowrap;color:#334155;font-size:.65rem;font-weight:500;line-height:1.2;overflow:hidden}.budget-card{border:1px solid var(--border);background:#ffffffeb;border-radius:8px;grid-template-rows:auto 1fr;align-content:start;gap:4px;padding:6px 7px 7px;transition:border-color .15s,box-shadow .15s;display:grid;box-shadow:0 1px 2px #0f172a0a}.budget-card:hover{border-color:#cbd5e1;box-shadow:0 3px 12px #0f172a14}.budget-card-head{gap:3px;display:grid}.budget-card-label{-webkit-line-clamp:2;color:#0f172a;-webkit-box-orient:vertical;min-height:1.9em;font-size:.72rem;font-weight:600;line-height:1.18;display:-webkit-box;overflow:hidden}.budget-card-variance{background:#f8fafc;border-radius:5px;justify-content:space-between;align-items:baseline;gap:4px;padding:2px 4px;display:flex}.budget-card-variance-label{letter-spacing:.02em;color:#64748b;flex-shrink:0;font-size:.54rem;font-weight:600}.budget-card-variance-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.64rem;font-weight:700;overflow:hidden}.budget-card-variance-value.positive{color:var(--positive)}.budget-card-variance-value.negative{color:var(--negative)}.budget-card-fields{grid-template-columns:1fr;align-self:end;gap:4px;display:grid}.budget-field{border:1px solid var(--border-strong);background:#fff;border-radius:7px;align-items:center;min-height:28px;transition:border-color .15s,box-shadow .15s;display:flex;overflow:hidden}.budget-field:focus-within{border-color:#93c5fd;box-shadow:0 0 0 3px #2b84ff1f}.budget-field-prefix,.budget-field-suffix{color:#64748b;flex-shrink:0;font-size:.7rem;font-weight:600}.budget-field-prefix{padding-left:6px}.budget-field-suffix{padding-right:6px}.budget-field-input{color:#0f172a;text-align:right;background:0 0;border:none;width:100%;min-width:0;padding:4px 5px;font-size:.72rem;font-weight:600}.budget-field-input:focus{outline:none}.budget-field-money .budget-field-input{padding-left:0;padding-right:7px}.budget-field-percent .budget-field-input{padding-left:7px;padding-right:0}.budget-field-compact{min-height:24px}.summary-sections{gap:24px;padding:16px 20px 24px;display:grid}.summary-section-title{margin:0 0 10px;font-size:.92rem;font-weight:600}.summary-table th,.summary-table td{min-width:92px}.summary-cell-stack{justify-items:center;gap:2px;display:grid}.summary-cell-total{font-weight:500}.summary-cell-meta{color:var(--text-muted);font-size:.72rem}.summary-adjust-input{border:1px solid var(--border-strong);text-align:center;background:#fff;border-radius:6px;width:72px;padding:4px 6px;font-size:.75rem}.rental-summary-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:0 20px 16px;display:grid}.financial-health-page{min-width:0;max-width:100%}.financial-health-page .comparison-table-scroll{max-height:none}.financial-health-body{gap:20px;min-width:0;padding:0 20px 20px;display:grid}.financial-health-overview{grid-template-columns:minmax(168px,200px) minmax(0,1fr);align-items:stretch;gap:14px;display:grid}.financial-health-summary-sidebar{border:1px solid var(--border);background:linear-gradient(#fff 0%,#f8fafc 100%);border-radius:12px;min-width:0;padding:12px 12px 14px}.financial-health-summary-card{border:1px solid var(--border);background:linear-gradient(#fff 0%,#f8fafc 100%);border-radius:12px;padding:14px 16px}.financial-health-section-heading{color:#0f172a;margin:0 0 8px;font-size:.82rem;font-weight:700}.financial-health-summary-metrics{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr));gap:12px;display:grid}.financial-health-summary-metrics-stack{grid-template-columns:1fr;gap:8px}.financial-health-metric{border:1px solid var(--border);background:#fff;border-radius:9px;gap:3px;padding:8px 10px;display:grid}.financial-health-metric-emphasis{background:linear-gradient(#f0fdf4 0%,#fff 100%);border-color:#bbf7d0}.financial-health-metric-impulse{background:linear-gradient(#faf5ff 0%,#fff 100%);border-color:#ddd6fe}.financial-health-metric-caption,.financial-health-metric-note{color:#64748b;font-size:.68rem}.financial-health-metric-muted{color:#94a3b8}.financial-health-footnote{color:#64748b;margin:8px 0 0;font-size:.72rem;line-height:1.45}.financial-health-metric-label{color:#64748b;font-size:.72rem;font-weight:600}.financial-health-metric-value{font-size:.92rem;font-weight:700}.financial-health-chart-section{border:1px solid var(--border);box-shadow:var(--shadow);background:#fff;border-radius:12px;gap:8px;width:100%;min-width:0;padding:12px 14px 14px;display:grid}.financial-health-chart-wrap{width:100%;min-width:0;overflow-x:auto}.financial-health-chart-svg{width:100%;height:auto;display:block}.financial-health-axis-label{fill:#64748b;text-anchor:end;font-size:11px}.financial-health-zero-line{stroke:#cbd5e1;stroke-width:1px;stroke-dasharray:4 4}.financial-health-bar{stroke:none}.financial-health-bar-income{fill:#5bafe8}.financial-health-bar-expense{fill:#f09a4a}.financial-health-bar-net{fill:#4cb88a}.financial-health-bar-net-negative{fill:#e8685c}.financial-health-net-line{fill:none;stroke:#e8c040;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round}.financial-health-net-point{pointer-events:all}.financial-health-net-value-label{text-anchor:middle;dominant-baseline:middle;font-size:9px;font-weight:700}.financial-health-net-value-label-positive{fill:#4cb88a}.financial-health-net-value-label-negative{fill:#e8685c}.financial-health-net-label-bg{fill:#fff;stroke:#e2e8f0;stroke-width:1px}.financial-health-legend-swatch{border-radius:3px;width:12px;height:12px}.financial-health-legend-line{border-top:2.5px solid #e8c040;width:18px;height:0;display:inline-block;position:relative}.financial-health-legend-line-net:after{content:"";background:#4cb88a;border:1.5px solid #fff;border-radius:50%;width:8px;height:8px;margin-left:-4px;position:absolute;top:-4px;left:50%;box-shadow:0 0 0 1px #e8c040}.financial-health-legend{color:#334155;flex-wrap:wrap;gap:12px;margin:0;padding:0;font-size:.72rem;list-style:none;display:flex}.financial-health-legend li{align-items:center;gap:8px;display:inline-flex}.financial-health-legend-swatch-income{background:#5bafe8}.financial-health-legend-swatch-expense{background:#f09a4a}.financial-health-legend-swatch-net{background:#4cb88a}.financial-health-legend-swatch-net-negative{background:#e8685c}.financial-health-breakdown{gap:10px;min-width:0;display:grid}.financial-health-income-breakdown-section{gap:12px}.financial-health-income-breakdown-grid{grid-template-columns:1fr;align-items:stretch;gap:16px;min-width:0;display:grid}.income-breakdown-chart-panel{border:1px solid var(--border);background:linear-gradient(#fff 0%,#f8fafc 100%);border-radius:12px;gap:10px;min-width:0;padding:12px;display:grid}.income-breakdown-chart-toolbar{justify-content:flex-end;display:flex}.income-breakdown-chart-toggle{border:1px solid var(--border);background:#f8fafc;border-radius:999px;gap:6px;padding:3px;display:inline-flex}.income-breakdown-chart-toggle-btn{color:#64748b;background:0 0;border:0;border-radius:999px;padding:5px 12px;font-size:.72rem;font-weight:600}.income-breakdown-chart-toggle-btn.is-active{color:#1d4ed8;background:#fff;box-shadow:0 1px 2px #0f172a14}.income-breakdown-chart-wrap{width:100%}.income-breakdown-chart-svg{width:100%;height:260px;display:block}.income-breakdown-chart-empty{border:1px dashed var(--border);color:#64748b;border-radius:10px;justify-content:center;align-items:center;min-height:120px;padding:16px;font-size:.82rem;display:flex}.income-breakdown-axis-label{fill:#64748b;text-anchor:end;font-size:11px}.income-breakdown-period-label{fill:#475569;text-anchor:middle;font-size:11px;font-weight:600}.income-breakdown-bar-value-label{fill:#0f172a;text-anchor:middle;font-size:10px;font-weight:700}.income-breakdown-bar-segment{transition:opacity .15s}.income-breakdown-bar-segment:hover{opacity:.85}.income-breakdown-chart-legend{border-top:1px solid #eceff1;flex-wrap:wrap;justify-content:center;gap:8px 16px;margin:0;padding:8px 0 0;list-style:none;display:flex}.income-breakdown-chart-legend li{color:#475569;align-items:center;gap:6px;font-size:.72rem;display:flex}.income-analysis-page{min-width:0;max-width:100%}.income-analysis-body{gap:18px;min-width:0;padding:0 20px 20px;display:grid}.income-analysis-meta-row{color:#64748b;flex-wrap:wrap;gap:10px 16px;font-size:.74rem;display:flex}.income-analysis-summary-layout{grid-template-columns:minmax(0,1fr) minmax(220px,280px);align-items:stretch;gap:10px;display:grid}.income-analysis-summary-featured{align-content:start;gap:10px;display:grid}.income-analysis-summary-featured .income-analysis-metric-featured{min-height:0}.income-analysis-summary-rows{gap:10px;min-width:0;display:grid}.income-analysis-summary-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.income-analysis-summary-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px;display:grid}.income-analysis-metric{border:1px solid var(--border);background:linear-gradient(#fff 0%,#f8fafc 100%);border-radius:10px;gap:4px;padding:10px 12px;display:grid}.income-analysis-metric-featured{background:linear-gradient(#eff6ff 0%,#fff 100%);border-color:#93c5fd;min-height:100%;padding:16px 14px;box-shadow:0 1px 2px #2563eb14,0 8px 22px #2563eb1a}.income-analysis-metric-featured .income-analysis-metric-value{font-size:1.28rem}.income-analysis-metric-footnote{color:#64748b;margin-top:4px;font-size:.72rem;font-weight:600;line-height:1.4}.income-analysis-metric-interactive{cursor:help;position:relative}.income-analysis-metric-interactive:focus-visible{outline-offset:2px;outline:2px solid #2563eb}.income-analysis-metric-tooltip{z-index:20;color:#334155;pointer-events:none;background:#fff;border:1px solid #93c5fd;border-radius:10px;padding:10px 12px;font-size:.72rem;font-weight:600;line-height:1.45;position:absolute;bottom:calc(100% + 8px);left:0;right:0;box-shadow:0 4px 6px #0f172a0f,0 12px 28px #2563eb24}.income-analysis-metric-tooltip:after{content:"";background:#fff;border-bottom:1px solid #93c5fd;border-right:1px solid #93c5fd;width:10px;height:10px;position:absolute;bottom:-6px;left:20px;transform:rotate(45deg)}.income-analysis-metric-label{color:#64748b;font-size:.72rem;font-weight:600}.income-analysis-metric-value{font-size:.98rem;font-weight:700}.income-analysis-scenario-tabs{flex-wrap:wrap;gap:8px;display:flex}.income-analysis-scenario-tab{border:1px solid var(--border);color:#334155;cursor:pointer;background:#fff;border-radius:999px;padding:7px 14px;font-size:.78rem;font-weight:600}.income-analysis-scenario-tab.is-active{color:#1d4ed8;background:#eff6ff;border-color:#93c5fd}.income-analysis-split{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);align-items:start;gap:16px;display:grid}.income-analysis-main,.income-analysis-expense-ref{min-width:0}.income-analysis-expense-ref{border:1px solid var(--border);background:#fff;border-radius:12px;padding:12px 14px}.income-analysis-section-heading{color:#0f172a;margin:0 0 8px;font-size:.88rem;font-weight:700}.income-analysis-note{color:#64748b;margin:0 0 10px;font-size:.72rem;line-height:1.45}.income-analysis-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:10px 12px}.income-analysis-table-shell{gap:16px;display:grid}.income-analysis-section-block{gap:8px;display:grid}.income-analysis-section-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.income-analysis-saving-target{color:#475569;align-items:center;gap:8px;font-size:.75rem;font-weight:600;display:inline-flex}.income-analysis-saving-target .budget-field{width:72px}.income-analysis-tail-panel{grid-column:1/-1}.income-analysis-section-title{color:#0f172a;margin:0;font-size:.82rem;font-weight:700}.income-analysis-table th,.income-analysis-table td{vertical-align:top}.income-analysis-rate{color:#64748b;margin-top:2px;font-size:.68rem;font-weight:500}.income-analysis-footnote{color:#64748b;margin:8px 0 0;font-size:.72rem;line-height:1.45}.income-analysis-expense-table .num{text-align:right}.income-analysis-edit-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.income-analysis-employer-panel{border:1px solid var(--border);background:#fbfcfe;border-radius:12px;padding:16px}.income-analysis-employer-title{align-items:center;gap:10px;margin:0 0 12px;font-size:1rem;font-weight:700;display:flex}.income-analysis-saving{color:var(--muted);font-size:.75rem;font-weight:500}.income-analysis-field-group{margin-bottom:14px}.income-analysis-field-group-title{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:.78rem;font-weight:700}.income-analysis-field{align-items:center;gap:10px;margin-bottom:8px;font-size:.88rem;display:flex}.income-analysis-field>span{flex:auto;min-width:0;line-height:1.25}.income-analysis-field .budget-field{flex:0 0 120px;width:120px}.income-analysis-computed-summary{border-top:1px solid var(--border);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:10px;font-size:.84rem;display:grid}.income-analysis-computed-summary div{flex-direction:column;gap:4px;display:flex}.income-analysis-computed-summary span{color:var(--muted)}@media (width<=960px){.income-analysis-split,.income-analysis-summary-layout,.income-analysis-summary-row,.income-analysis-edit-grid{grid-template-columns:1fr}.income-analysis-field{gap:8px;font-size:.82rem}.income-analysis-field .budget-field{flex-basis:108px;width:108px}}.financial-health-total-row td{background:#fbfcfe;font-weight:700}.rental-property-card{border:1px solid var(--border);background:linear-gradient(#fff 0%,#f8fafc 100%);border-radius:12px;padding:14px 16px;box-shadow:0 1px 2px #0f172a0a}.rental-property-card-total{background:linear-gradient(#eff6ff 0%,#fff 100%);border-color:#bfdbfe}.rental-property-card-title{color:#0f172a;margin:0 0 10px;font-size:.92rem;font-weight:700}.rental-property-card-total .rental-property-card-title{color:#1d4ed8}.rental-property-metrics{gap:8px;display:grid}.rental-property-metric{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.rental-property-metric-label{color:#64748b;font-size:.72rem;font-weight:600}.rental-property-metric-value{font-size:.88rem;font-weight:700}.rental-property-metric-net{border-top:1px solid var(--border);padding-top:6px}.rental-tracking-table .rental-pivot-section-row td{letter-spacing:.02em;color:#334155;background:#f1f5f9;font-size:.78rem;font-weight:700}.rental-tracking-table .rental-pivot-section-row-total td{color:#1d4ed8;background:#dbeafe}.rental-tracking-table .rental-pivot-net-row td{background:#fafafa;font-weight:600}.debt-situation-page{min-width:0;max-width:100%;overflow:hidden}.debt-situation-page .panel-header{flex-wrap:wrap}.debt-situation-page .panel-header>div:first-child{flex:220px;min-width:0}.debt-situation-page .panel-body{padding-top:0}.debt-situation-body{gap:24px;min-width:0;max-width:100%;padding:0 20px 20px;display:grid}.debt-trend-chart-section{border:1px solid var(--border);width:100%;min-width:0;max-width:100%;box-shadow:var(--shadow);background:#fff;border-radius:14px;gap:8px;padding:12px 14px 14px;display:grid}.debt-trend-chart-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.debt-section-heading.debt-trend-heading{font-size:.88rem}.debt-trend-chart-note{color:var(--text-muted);margin:2px 0 0;font-size:.68rem;line-height:1.35}.debt-trend-chart-summary{flex-wrap:wrap;gap:18px;display:flex}.debt-trend-summary-item{gap:2px;display:grid}.debt-trend-summary-label{color:var(--text-muted);font-size:.72rem}.debt-trend-summary-value{font-size:.85rem;font-weight:700}.debt-trend-summary-value.positive{color:var(--positive)}.debt-trend-summary-value.negative{color:var(--negative)}.debt-trend-chart-wrap{gap:10px;min-width:0;display:grid;overflow-x:auto}.debt-trend-chart-svg{width:100%;min-width:280px;height:auto;display:block}.debt-trend-axis-label{fill:#64748b;font-size:11px}.debt-trend-axis-label-left{text-anchor:end}.debt-trend-axis-label-right{text-anchor:start}.debt-trend-axis-line{stroke:#cbd5e1;stroke-width:1px}.debt-trend-line{stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.debt-trend-line-debt{stroke:#c0392b}.debt-trend-line-equity{stroke:#1f8f4e}.debt-trend-dot-debt{fill:#c0392b}.debt-trend-dot-equity{fill:#1f8f4e}.debt-trend-legend{color:#334155;gap:18px;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}.debt-trend-legend li{align-items:center;gap:8px;display:inline-flex}.debt-trend-legend-swatch{border-radius:999px;width:18px;height:3px}.debt-trend-legend-swatch-debt{background:#c0392b}.debt-trend-legend-swatch-equity{background:#1f8f4e}.debt-section{gap:12px;display:grid}.debt-section-heading{color:#0f172a;margin:0;font-size:.95rem;font-weight:700}.debt-section-note{color:#64748b;margin:0;font-size:.76rem;line-height:1.5}.debt-mortgage-layout{flex-direction:column;gap:12px;min-width:0;display:flex}.debt-mortgage-totals-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;width:100%;display:grid}.debt-mortgage-totals-row>.debt-loan-card{min-width:0;max-width:none}.debt-loan-card-equity-total{background:linear-gradient(#f0fdf4 0%,#fff 100%);border-color:#bbf7d0}.debt-mortgage-properties-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;min-width:0;display:grid}.debt-mortgage-properties-row>.debt-property-card{min-width:0}.debt-mortgage-strip{gap:12px;padding-bottom:4px;display:flex;overflow-x:auto}.debt-mortgage-strip>.debt-loan-card,.debt-mortgage-strip>.debt-property-card{flex:1 0 240px;min-width:220px}.debt-loan-card-highlight{background:linear-gradient(#eff6ff 0%,#fff 100%);border-color:#bfdbfe}.debt-section-title{color:#0f172a;margin:0;font-size:.88rem;font-weight:700}.debt-personal-grid{grid-template-columns:1fr;gap:20px;display:grid}.debt-party-panel{border:1px solid var(--border);background:#fff;border-radius:12px;width:100%;padding:14px 16px}.debt-party-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.debt-party-balance{justify-items:end;gap:2px;display:grid}.debt-party-balance-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:600}.debt-party-balance-value{font-size:1rem;font-weight:700}.debt-opening-row{background:#f8fafc;border-radius:8px;flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:10px;padding:8px 10px;display:flex}.debt-opening-label{color:#64748b;font-size:.72rem;font-weight:600}.debt-opening-value{font-weight:700}.debt-ledger-table-shell{border:1px solid var(--border);border-radius:8px;max-height:280px;overflow:auto}.debt-ledger-table th,.debt-ledger-table td{padding:6px 10px;font-size:.78rem}.debt-entry-note{color:#64748b;font-size:.76rem}.debt-loan-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.debt-creditors-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));align-items:stretch;gap:12px;min-width:0;display:grid}.debt-creditors-grid>.debt-personal-summary-card{height:100%}@media (width<=820px){.debt-creditors-grid{grid-template-columns:1fr}}@media (width<=720px){.debt-situation-body{gap:18px;padding:0 12px 16px}.debt-situation-filters{width:100%}}.debt-loan-card,.debt-property-card{border:1px solid var(--border);background:linear-gradient(#fff 0%,#f8fafc 100%);border-radius:12px;min-width:0;padding:14px 16px}.debt-loan-metrics,.debt-property-metrics{gap:8px;display:grid}.debt-loan-metric{justify-content:space-between;align-items:baseline;gap:10px;min-width:0;display:flex}.debt-loan-metric-primary{border-bottom:1px solid var(--border);margin-bottom:2px;padding-bottom:8px}.debt-loan-metric-label{color:#64748b;flex:auto;min-width:0;font-size:.72rem;font-weight:600}.debt-loan-metric-value{text-align:right;overflow-wrap:anywhere;flex:0 auto;min-width:0;font-size:.88rem;font-weight:700}.debt-loan-metric-ytd{border-top:1px solid var(--border);padding-top:6px}.debt-property-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.debt-mortgage-strip .debt-property-caption{margin-bottom:8px}.debt-property-title{margin:0 0 4px;font-size:.86rem;font-weight:700}.debt-property-caption{color:#64748b;margin:0 0 10px;font-size:.72rem}.debt-empty-message{color:#64748b;margin:0}.debt-personal-summary-section{border-top:1px solid var(--border);margin-top:8px;padding-top:8px}.debt-personal-summary-card{background:linear-gradient(#eff6ff 0%,#fff 100%);border:1px solid #bfdbfe;border-radius:12px;max-width:360px;padding:16px 18px}.debt-personal-summary-title{color:#1e3a8a;margin:0;font-size:.92rem;font-weight:700}.debt-personal-summary-caption{color:#64748b;margin:4px 0 12px;font-size:.72rem}.debt-personal-summary-amount-row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.debt-personal-summary-label{color:#334155;font-size:.82rem;font-weight:600}.debt-personal-summary-amount{font-size:1.35rem;font-weight:700}.data-panel .register-embedded{box-shadow:none;background:0 0;border:none;border-radius:0}.data-subtab-bar{border-bottom:1px solid var(--border);gap:4px;padding:0 20px;display:flex}.data-subtab{color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:.82rem;font-weight:600}.data-subtab.active{color:var(--accent);border-bottom-color:var(--accent)}.data-subtab-body{padding-top:16px}.category-definitions.embedded{flex-direction:column;gap:14px;display:flex}.category-add-form{margin:0 0 8px}.category-section{margin-top:8px}.category-section-title{margin:0 0 8px;font-size:.95rem;font-weight:700}.category-definitions-table{min-width:720px}.register-toolbar-embedded-label{color:var(--text-muted);font-size:.82rem}.debt-party-header-actions{align-items:flex-end;gap:10px;display:flex}.debt-party-header-actions-inline{justify-content:flex-end}.debt-opening-input{width:120px}.debt-opening-note-input{flex:1;min-width:180px}.debt-ledger-table-editable .cell-control{width:100%}.debt-ledger-table-editable td{vertical-align:middle}.debt-row-actions{text-align:right;white-space:nowrap;width:72px}.row-action-icons{align-items:center;gap:4px;display:inline-flex}.row-action-btn{border:1px solid var(--border);color:#64748b;background:#fff;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;display:inline-flex}.row-action-btn svg{fill:currentColor;width:14px;height:14px}.row-action-btn:hover:not(:disabled){color:#334155;background:#f8fafc}.row-action-btn-accent{color:var(--accent);border-color:#bfdbfe}.row-action-btn-danger{color:#c0392b;border-color:#fecaca}.row-action-btn:disabled{opacity:.5;cursor:not-allowed}.cell-readonly{text-overflow:ellipsis;white-space:nowrap;min-height:28px;padding:4px 2px;display:block;overflow:hidden}.cell-actions{text-align:center;vertical-align:middle;width:72px}.register-table tbody tr.row-editing td,.debt-ledger-table tbody tr.row-editing td{background:#f8fbff}@media (width<=1280px){.budget-strip-layout{grid-template-columns:1fr;grid-template-areas:"flexible""total""chart""categories"}.budget-strip-chart{padding:12px}}@media (width<=1100px){.budget-total-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"copy copy""input stats"}.budget-total-hero-copy{grid-area:copy}.budget-total-input{grid-area:input;width:100%}.budget-total-stats{grid-area:stats;grid-template-columns:1fr 1fr;justify-self:stretch}}@media (width<=720px){.financial-health-overview{grid-template-columns:1fr}}@media (width<=640px){.budget-total-hero{grid-template-columns:1fr;grid-template-areas:"copy""input""stats"}.budget-total-stats{grid-template-columns:1fr 1fr}}@media (width<=900px){.mobile-topbar{display:flex}.sidebar-backdrop{display:block}.sidebar{z-index:100;width:min(280px,86vw);transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-105%);box-shadow:0 12px 40px #0f172a2e}.sidebar.is-open{transform:translate(0)}.sidebar-close{display:inline-flex}.main-content{padding:12px}.register-table-scroll{max-height:none}.expense-structure-split{grid-template-columns:1fr;gap:16px 0}.expense-structure-divider{display:none}.expense-monthly-breakdown{grid-template-columns:1fr}.expense-structure-right{justify-self:stretch;max-width:none}.expense-month-num-picker{grid-template-columns:repeat(4,minmax(0,1fr))}.budget-strip{margin:0 12px 16px;padding:12px}.budget-strip-toolbar{flex-wrap:wrap;align-items:flex-start}.budget-category-panel-toggle{flex-wrap:wrap}.budget-category-panel-meta{white-space:normal}.budget-cards-grid{grid-template-columns:repeat(auto-fill,minmax(88px,108px))}.budget-donut-stage{width:min(100%,240px)}}.personal-debt-data-stack{flex-direction:column;gap:24px;display:flex}.debt-situation-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.mortgage-data-section{flex-direction:column;gap:16px;display:flex}.mortgage-data-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.mortgage-data-filters{flex-wrap:wrap;gap:12px;display:flex}.mortgage-property-list{flex-direction:column;gap:12px;display:flex}.mortgage-property-panel{border:1px solid var(--border);background:var(--surface);border-radius:10px;overflow:hidden}.mortgage-property-toggle{text-align:left;cursor:pointer;background:0 0;border:0;flex-wrap:wrap;justify-content:space-between;gap:8px;width:100%;padding:12px 14px;display:flex}.mortgage-property-toggle-title{font-weight:700}.mortgage-property-toggle-meta{color:#64748b;font-size:.82rem}.mortgage-property-body{flex-direction:column;gap:14px;padding:0 14px 14px;display:flex}.mortgage-property-address{color:#64748b;margin:0;font-size:.78rem}.mortgage-valuation-grid{grid-template-columns:repeat(2,minmax(140px,1fr));gap:10px;display:grid}.mortgage-valuation-label{color:#64748b;margin-bottom:4px;font-size:.72rem;display:block}.mortgage-valuation-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.mortgage-valuation-summary{color:#475569;font-size:.82rem}.mortgage-valuation-history-section{gap:8px;display:grid}.mortgage-valuation-history-section h4{color:#0f172a;margin:0;font-size:.84rem;font-weight:700}.mortgage-valuation-history-note{color:#64748b;margin:0;font-size:.72rem}.mortgage-valuation-history-wrap{max-height:280px}.mortgage-valuation-history-table th,.mortgage-valuation-history-table td{font-size:.78rem}.mortgage-valuation-history-actions{flex-wrap:wrap;gap:6px;display:flex}.btn-compact{padding:4px 8px;font-size:.75rem}.btn-danger-text{color:var(--negative)}.mortgage-amortization-section h4{margin:0 0 8px;font-size:.86rem}.mortgage-amortization-note{color:#64748b;margin:0 0 10px;font-size:.76rem}.mortgage-amortization-table-wrap{max-height:360px}.student-loan-data-section{border-bottom:1px solid var(--border);flex-direction:column;gap:16px;padding-bottom:8px;display:flex}.student-loan-summary-row{flex-wrap:wrap;gap:20px;display:flex}.student-loan-summary-item{gap:4px;display:grid}.student-loan-summary-label{color:#64748b;font-size:.72rem;font-weight:600}.student-loan-summary-value{font-size:1rem;font-weight:700}.student-loan-settings-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.asset-management-page{min-width:0;max-width:100%;overflow:hidden}.asset-management-page .panel-header{flex-wrap:wrap}.asset-management-page .panel-header>div:first-child{flex:220px;min-width:0}.asset-management-page .panel-body,.asset-management-body{gap:18px;min-width:0;max-width:100%;display:grid;overflow:visible}.asset-equity-chart-section{background:linear-gradient(#f3f7f4 0%,#fff 55%);border:1px solid #c5d4c8;border-radius:14px;gap:8px;min-width:0;max-width:100%;padding:12px 14px 10px;display:grid}.asset-equity-chart-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.asset-equity-chart-title{color:#1f2937;margin:0;font-size:.92rem;font-weight:700}.asset-equity-chart-note{color:#64748b;margin:2px 0 0;font-size:.68rem}.asset-equity-chart-summary{flex-wrap:wrap;gap:16px;display:flex}.asset-equity-summary-item{text-align:right;gap:2px;display:grid}.asset-equity-summary-label{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:.64rem;font-weight:600}.asset-equity-summary-value{font-size:.95rem;font-weight:700}.asset-equity-chart-wrap{min-width:0;position:relative;overflow:visible}.asset-equity-hit{fill:#0000;cursor:pointer}.asset-equity-driver-tooltip{z-index:40;pointer-events:none;background:#fff;border:1px solid #8fa896;border-radius:12px;width:min(240px,70%);padding:10px 12px;position:absolute;transform:translate(12px,-50%);box-shadow:0 4px 6px #0f172a0f,0 14px 28px #3f6f5429}.asset-equity-driver-tooltip.is-left{transform:translate(calc(-100% - 12px),-50%)}.asset-equity-driver-tooltip-head{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:2px;font-size:.78rem;display:flex}.asset-equity-driver-tooltip-head strong{color:#1f2937}.asset-equity-driver-tooltip-sub{color:#64748b;margin:0 0 8px;font-size:.68rem;line-height:1.35}.asset-equity-driver-empty{color:#94a3b8;margin:0;font-size:.72rem}.asset-equity-driver-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.asset-equity-driver-list li{justify-content:space-between;gap:10px;font-size:.72rem;display:flex}.asset-equity-driver-name{text-overflow:ellipsis;white-space:nowrap;color:#334155;min-width:0;font-weight:600;overflow:hidden}.asset-equity-driver-change{flex-shrink:0;font-weight:700}.asset-equity-chart-svg{width:100%;min-width:320px;height:auto;display:block}.asset-equity-axis-label{fill:#64748b;text-anchor:end;font-size:10px}.asset-equity-axis-line{stroke:#cbd5e1;stroke-width:1px}.asset-equity-bar{opacity:.9;cursor:pointer;stroke:#ffffff8c;stroke-width:1px;transition:opacity .12s}.asset-equity-bar.is-active{opacity:1}.asset-equity-line{stroke:#1f8f4e;stroke-width:2.5px;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.asset-equity-dot{fill:#1f8f4e;stroke:#fff;stroke-width:2px;cursor:pointer;transition:r .12s}.asset-equity-dot.active{fill:#166534;stroke:#dcfce7;stroke-width:3px}.asset-equity-legend{color:#475569;flex-wrap:wrap;gap:12px 16px;margin:2px 0 0;padding:0;font-size:.72rem;font-weight:600;list-style:none;display:flex}.asset-equity-legend li{align-items:center;gap:6px;display:inline-flex}.asset-equity-legend-swatch{border-radius:2px;width:10px;height:10px}.asset-equity-legend-line{border-top:2.5px solid #1f8f4e;width:16px;height:0}.asset-equity-composition-list{border-bottom:1px solid #e2e8e8;gap:3px;margin:0 0 8px;padding:0 0 8px;list-style:none;display:grid}.asset-equity-composition-list li{color:#475569;justify-content:space-between;gap:10px;font-size:.72rem;display:flex}.asset-equity-composition-list strong{color:#1f2937;font-weight:700}.asset-equity-composition-total{border-top:1px dashed #dbe3e3;margin-top:2px;padding-top:3px}.asset-equity-value-label{fill:#1f8f4e;text-anchor:middle;pointer-events:none;font-size:10px;font-weight:700}.asset-equity-value-label.active{font-size:11px}.asset-equity-change-label{text-anchor:middle;fill:#64748b;pointer-events:none;font-size:10px;font-weight:700}.asset-equity-change-label.positive{fill:#15803d}.asset-equity-change-label.negative{fill:#b91c1c}.asset-equity-change-label.muted{fill:#94a3b8}.asset-equity-change-label.active{font-size:11px}.asset-equity-month-label{fill:#64748b;text-anchor:middle;font-size:10px}.asset-quarter-rail{-webkit-overflow-scrolling:touch;gap:10px;min-width:0;max-width:100%;padding:2px 2px 8px;display:flex;overflow-x:auto}.asset-quarter-card{text-align:left;cursor:pointer;background:linear-gradient(#f3f7f4 0%,#fff 72%);border:1px solid #c5d4c8;border-radius:12px;flex:0 0 148px;gap:2px;padding:12px 12px 10px;transition:border-color .15s,box-shadow .15s;display:grid}.asset-quarter-card:hover{border-color:#8fa896}.asset-quarter-card.active{background:linear-gradient(#e7f0ea 0%,#fff 70%);border-color:#3f6f54;box-shadow:inset 0 0 0 1px #3f6f54}.asset-quarter-date{color:#3f6f54;font-size:.72rem;font-weight:700}.asset-quarter-equity{font-size:1rem;font-weight:700;line-height:1.2}.asset-quarter-caption{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:.64rem}.asset-quarter-change{margin-top:4px;font-size:.74rem;font-weight:700}.asset-selected-summary{border:1px solid var(--border-strong);background:#fff;border-radius:14px;grid-template-columns:minmax(160px,220px) minmax(0,1fr);gap:14px;min-width:0;max-width:100%;padding:14px 16px;display:grid;overflow:visible}.asset-summary-kicker{color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.68rem;font-weight:700}.asset-summary-title{color:#1f2937;margin:4px 0 0;font-size:1.35rem;font-weight:750}.asset-summary-subtitle{color:#64748b;margin:4px 0 0;font-size:.78rem}.asset-summary-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;min-width:0;padding-top:4px;display:grid;overflow:visible}.asset-summary-metric{border:1px solid var(--border);background:#fafbfc;border-radius:10px;gap:2px;min-width:0;padding:10px 12px;display:grid;position:relative}.asset-summary-metric-interactive{cursor:pointer;transition:border-color .15s,box-shadow .15s}.asset-summary-metric-interactive:hover,.asset-summary-metric-interactive.is-open{border-color:#8fa896;box-shadow:0 0 0 1px #3f6f541f}.asset-summary-metric-tooltip{z-index:30;color:#334155;pointer-events:none;white-space:normal;background:#fff;border:1px solid #8fa896;border-radius:10px;padding:10px 12px;font-size:.72rem;font-weight:600;line-height:1.45;position:absolute;top:calc(100% + 8px);left:0;right:0;box-shadow:0 4px 6px #0f172a0f,0 12px 28px #3f6f5424}.asset-summary-metric-tooltip:after{content:"";background:#fff;border-top:1px solid #8fa896;border-left:1px solid #8fa896;width:10px;height:10px;position:absolute;top:-6px;left:20px;transform:rotate(45deg)}.asset-summary-metric-value,.asset-summary-metric-change{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.asset-summary-metric-label{color:#64748b;font-size:.68rem;font-weight:600}.asset-summary-metric-value{font-size:1rem;font-weight:700}.asset-summary-metric-change{font-size:.74rem;font-weight:700}.asset-movement-sections{gap:14px;min-width:0;max-width:100%;display:grid}.asset-movement-section{min-width:0;max-width:100%}.asset-section-title{color:#1f2937;margin:0 0 8px;font-size:.88rem;font-weight:700}.asset-table-shell{min-width:0;max-width:100%;margin:0}.asset-management-page .comparison-table-scroll{max-height:min(420px,100vh - 280px)}.asset-movement-table th,.asset-all-quarters-table th,.asset-movement-table td,.asset-all-quarters-table td{white-space:nowrap}.asset-total-row td{background:#f3f7f4;font-weight:700}.asset-row-note{color:#64748b;margin-top:2px;font-size:.68rem;font-weight:500;display:block}.asset-all-quarters-panel{border:1px solid var(--border-strong);background:#fff;border-radius:14px;min-width:0;max-width:100%;margin:0;overflow:hidden}.asset-all-quarters-toggle{cursor:pointer;color:#1f2937;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;font-size:.88rem;font-weight:700;list-style:none;display:flex}.asset-all-quarters-toggle::-webkit-details-marker{display:none}.asset-all-quarters-toggle:before{content:"▸";color:#3f6f54;margin-right:8px}.asset-all-quarters-panel[open] .asset-all-quarters-toggle:before{content:"▾"}.asset-all-quarters-meta{color:#64748b;font-size:.72rem;font-weight:600}.asset-all-quarters-toolbar{flex-wrap:wrap;align-items:center;gap:10px;padding:0 14px 12px;display:flex}.asset-quarter-date-field{color:#64748b;align-items:center;gap:8px;font-size:.78rem;font-weight:600;display:inline-flex}.asset-quarter-date-field input{border:1px solid var(--border-strong);background:#fff;border-radius:8px;padding:6px 10px;font-size:.82rem}.asset-quarter-form-error{color:#b91c1c;font-size:.76rem;font-weight:600}.asset-quarter-derived-note{color:#3f6f54;font-size:.72rem;font-weight:600}.asset-draft-input.is-derived{color:#24553a;cursor:not-allowed;background:#eef5f0;border-color:#b7cfc0}.asset-user-badge{color:#3f6f54;text-transform:uppercase;margin-left:4px;font-size:.64rem;font-weight:700}.asset-draft-col{color:#24553a;background:#e7f0ea!important}.asset-draft-cell{background:#f3f7f4;min-width:104px}.asset-draft-input{text-align:right;background:#fff;border:1px solid #8fa896;border-radius:8px;width:100%;min-width:88px;padding:5px 8px;font-size:.78rem;font-weight:600}.asset-draft-input:focus{border-color:#3f6f54;outline:none;box-shadow:0 0 0 2px #3f6f5426}.asset-all-quarters-panel .asset-table-shell{padding:0 12px 12px}.asset-subhead-row th{color:#64748b;font-size:.68rem;font-weight:600}@media (width<=960px){.asset-selected-summary{grid-template-columns:1fr}.asset-summary-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}.sidebar-logout{width:100%;margin-top:10px}.login-screen{background:var(--bg-app);place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:var(--bg-panel);border:1px solid var(--border);width:min(420px,100%);box-shadow:var(--shadow);border-radius:16px;padding:28px 24px}.login-brand{align-items:center;gap:12px;margin-bottom:22px;display:flex}.login-label{color:#334155;margin-bottom:6px;font-size:.8rem;font-weight:500;display:block}.login-input{border:1px solid var(--border-strong);background:#fff;border-radius:8px;width:100%;padding:10px 12px}.login-input:focus{border-color:var(--accent);outline:2px solid #2b84ff40}.login-error{color:var(--negative);margin-top:10px;font-size:.82rem}.login-submit{width:100%;margin-top:16px;padding:10px 12px}
