:root{--bg-app:#f7f7f8;--bg-surface:#fff;--bg-subtle:#f4f4f5;--bg-panel:#f8fafc;--border:#e4e4e7;--border-strong:#d4d4d8;--border-hairline:#efeff1;--border-panel:#e2e8f0;--text:#18181b;--text-strong:#111827;--text-muted:#71717a;--text-subtle:#a1a1aa;--text-faint:#4b5563;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-fg:#fff;--accent-subtle-bg:#eef2ff;--accent-subtle-fg:#1e3a8a;--pill-fg:#3730a3;--danger:#b91c1c;--warn:#a06000;--success:#16a34a;--shadow:rgba(0,0,0,.12)}:root[data-theme=dark]{--bg-app:#18181b;--bg-surface:#202023;--bg-subtle:#27272a;--bg-panel:#1e293b;--border:#3f3f46;--border-strong:#52525b;--border-hairline:#2d2d31;--border-panel:#334155;--text:#f4f4f5;--text-strong:#fafafa;--text-muted:#a1a1aa;--text-subtle:#71717a;--text-faint:#94a3b8;--accent:#3b82f6;--accent-hover:#60a5fa;--accent-fg:#fff;--accent-subtle-bg:#1e2a4a;--accent-subtle-fg:#93c5fd;--pill-fg:#c7d2fe;--danger:#f87171;--warn:#fbbf24;--success:#4ade80;--shadow:rgba(0,0,0,.6)}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--text);background:var(--bg-app)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:8px 16px;background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0}.topbar-left{gap:12px}.topbar-center,.topbar-left{display:flex;align-items:center}.topbar-center{gap:8px}.topbar-right{display:flex;justify-content:flex-end;align-items:center}.assumptions-toggle-wrap{position:relative;display:inline-flex;align-items:center}.assumptions-toggle{display:inline-flex;align-items:center;justify-content:center;width:36px;height:32px;margin-left:8px;padding:0;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);cursor:pointer;line-height:0}.assumptions-toggle svg{display:block;pointer-events:none}.assumptions-toggle:hover:not(:disabled){background:var(--bg-subtle)}.assumptions-toggle:disabled{opacity:.4;cursor:not-allowed}.assumptions-popover{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%);z-index:20;width:360px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 8px 24px var(--shadow);padding:16px;display:flex;flex-direction:column;gap:16px}.assumptions-popover .group{display:flex;flex-direction:column;gap:6px}.assumptions-popover .group-label{font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.assumptions-popover .segmented{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px}.assumptions-popover .segmented.outlook{grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.assumptions-popover .segmented button{padding:8px 10px;font-size:.85rem;font-weight:500;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);cursor:pointer;white-space:nowrap}.assumptions-popover .segmented button.selected{background:var(--accent);color:var(--accent-fg)}.assumptions-popover .segmented button:hover:not(.selected){background:var(--bg-subtle)}.assumptions-popover .custom-fields{margin-top:4px;display:flex;flex-direction:column;gap:4px}.assumptions-popover .custom-fields label{display:flex;flex-direction:column;gap:2px;font-size:.8rem;color:var(--text)}.assumptions-popover .custom-fields input{padding:4px 6px;font-size:.85rem;border:1px solid var(--border-strong);border-radius:4px}.assumptions-popover .hint{margin:0;font-size:.72rem;color:var(--text-muted)}.topbar-plan-label{font-size:.9rem;font-weight:700;color:var(--text)}.menu-toggle{display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--text);padding:6px;border-radius:6px}.menu-toggle:hover{background:var(--bg-subtle)}.layout{display:flex;flex:1 1;align-items:stretch;min-height:0;overflow:hidden}.sidebar{width:220px;flex-shrink:0;background:var(--bg-surface);border-right:1px solid var(--border);padding:16px 0;flex-direction:column;gap:2px;overflow-y:auto}.logo,.sidebar{display:flex}.navItem{display:block;width:100%;text-align:left;padding:10px 16px;background:transparent;color:var(--text);border:0;border-left:3px solid transparent;border-radius:0;font-size:.9rem;cursor:pointer}.navIcon{width:16px;height:16px;margin-right:10px;vertical-align:-3px;flex-shrink:0}.navItem:hover:not(:disabled){background:var(--bg-subtle)}.navItem.active{background:var(--accent-subtle-bg);color:var(--accent-subtle-fg);font-weight:500;border-left-color:var(--accent)}.navItem:disabled{color:var(--text-subtle);opacity:1;cursor:not-allowed;background:transparent}.navItem.parent{display:flex;align-items:stretch;padding:0}.navChevron{display:inline-flex;align-items:center;justify-content:center;width:28px;padding:0;background:transparent;color:var(--text-muted);border:0;border-radius:0;cursor:pointer}.navChevron:hover{color:var(--text)}.navLabel{flex:1 1;text-align:left;padding:10px 16px 10px 4px;background:transparent;color:inherit;border:0;border-radius:0;font-size:inherit;font-weight:inherit;cursor:pointer}.navItem.child{padding-left:40px}main{flex:1 1;min-width:0;overflow-y:auto;scrollbar-gutter:stable}.main-inner{max-width:1280px;padding:24px 24px 64px}h1{font-size:1.6rem}section{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:16px;margin:16px 0}h2{font-size:1.1rem;margin-top:0}label{display:inline-flex;flex-direction:column;font-size:.8rem;color:var(--text-muted);gap:4px;margin:4px 8px 4px 0}input,select{padding:6px 8px;border:1px solid var(--border-strong);border-radius:6px;font-size:.9rem;min-width:120px;background:var(--bg-surface);color:var(--text)}button{background:var(--accent);color:var(--accent-fg);border:0;border-radius:6px;padding:8px 14px;font-size:.9rem;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{display:inline-flex;align-items:center;gap:6px;background:var(--border);color:var(--text)}button.small{padding:4px 10px;font-size:.8rem}td.actions{white-space:nowrap}td.actions button+button{margin-left:4px}table{width:100%;border-collapse:collapse;font-size:.85rem}td,th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border-hairline)}.row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:4px}.muted{color:var(--text-muted)}.error,.muted{font-size:.85rem}.error{color:var(--danger)}.user-menu{display:flex;align-items:center;gap:10px;margin-left:16px;padding-left:16px;border-left:1px solid var(--border)}.user-menu-email{font-size:.85rem;color:var(--text-muted)}.auth-status{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100%;color:var(--text-muted)}.pill{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--accent-subtle-bg);color:var(--pill-fg);font-size:.75rem;margin-left:8px}td.drag-col,th.drag-col{width:24px;padding:6px 4px}.drag-handle{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-subtle);cursor:-webkit-grab;cursor:grab;background:transparent;border:0;padding:0;touch-action:none}.drag-handle:hover{color:var(--text-muted)}.drag-handle:active{cursor:-webkit-grabbing;cursor:grabbing}tr.dragging{background:var(--bg-subtle);opacity:.85}details.expense-section{margin-top:1.25rem;border-top:1px solid var(--border);padding-top:.25rem}details.expense-section>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:.5rem;-webkit-user-select:none;-moz-user-select:none;user-select:none}details.expense-section>summary::-webkit-details-marker{display:none}details.expense-section>summary:before{content:"▶";font-size:.65rem;color:var(--text-muted);flex-shrink:0;transition:transform .15s ease}details.expense-section[open]>summary:before{transform:rotate(90deg)}details.expense-section>summary>div{display:flex;flex-direction:column;gap:1px}details.expense-section>summary h3{margin:0;font-size:inherit}.expense-section-sub{font-size:.8rem;font-weight:400;color:var(--text-muted);line-height:1.3}.report-nav-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 14px;background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);font-size:13px;font-weight:500;cursor:pointer}.btn-icon{flex:0 0 auto}.report-nav-button:hover:not(:disabled){background:var(--bg-subtle)}.report-nav-button:disabled{opacity:.4;cursor:not-allowed}.report-page{max-width:900px}.report-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.report-print-btn{flex-shrink:0;height:36px;padding:0 16px;background:var(--accent);border:none;border-radius:6px;color:var(--accent-fg);font-size:13px;font-weight:600;cursor:pointer}.report-print-btn:hover{background:var(--accent-hover)}.report-header{margin-bottom:1.5rem}.report-header h1{margin:0 0 .25rem}.report-footnote{font-size:.8rem;color:var(--text-muted);line-height:1.4}.report-section{margin-bottom:2rem;page-break-inside:avoid;break-inside:avoid}.report-recommendations{display:flex;flex-direction:column;gap:.75rem}.report-rec{background:var(--bg-panel);border:1px solid var(--border-panel);border-radius:8px;padding:.75rem 1rem}.report-rec-head{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.report-rec-title{font-weight:600;font-size:14px;color:var(--text-strong)}.report-rec-impact{font-weight:700;font-size:14px;white-space:nowrap}.report-rec-desc{margin:.35rem 0 0;font-size:13px;color:var(--text-faint)}@media print{body *{visibility:hidden}#report-print-area,#report-print-area *{visibility:visible}#report-print-area{position:absolute;left:0;top:0;width:100%;max-width:none;padding:.5in}.no-print{display:none!important}.report-section{page-break-inside:avoid}}.assistant-panel{width:320px;flex-shrink:0;background:var(--bg-surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.assistant-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.assistant-header h2{font-size:.95rem;margin:0}.assistant-messages{flex:1 1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.assistant-message{padding:8px 10px;border-radius:8px;font-size:.85rem;white-space:pre-wrap;max-width:90%}.assistant-message.user{align-self:flex-end;background:var(--accent);color:var(--accent-fg)}.assistant-message.assistant{align-self:flex-start;background:var(--bg-subtle);color:var(--text)}.assistant-input-row{display:flex;gap:6px;padding:12px 16px;border-top:1px solid var(--border)}.assistant-input-row input{flex:1 1;min-width:0}.settings-overlay{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.4);display:flex;align-items:center;justify-content:center}.settings-dialog{width:100%;max-width:560px;max-height:80vh;margin:16px;display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 16px 48px var(--shadow);overflow:hidden}.settings-dialog.wide{max-width:min(1100px,95vw)}.settings-dialog-header{display:flex;align-items:center;gap:8px;padding:16px 20px;border-bottom:1px solid var(--border);flex-shrink:0}.settings-dialog-header h2{margin:0;flex:1 1;font-size:1rem}.settings-back{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;color:var(--text-muted);border-radius:6px}.settings-back:hover{background:var(--bg-subtle);color:var(--text)}.settings-close{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;color:var(--text-muted);border-radius:6px}.settings-close:hover{background:var(--bg-subtle);color:var(--text)}.settings-dialog-body{padding:20px;overflow-y:auto}.settings-card-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.settings-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;color:var(--text);text-align:left;cursor:pointer}.settings-card:hover{background:var(--bg-subtle);border-color:var(--border-strong)}.settings-card-title{font-weight:600;font-size:.95rem}.settings-card-desc{font-size:.8rem;color:var(--text-muted)}.settings-section{display:flex;flex-direction:column;gap:12px}.settings-radio-group{display:flex;flex-direction:column;gap:8px}.settings-radio-option{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;cursor:pointer}.settings-radio-option:hover{background:var(--bg-subtle)}.settings-radio-option input{margin-top:2px;min-width:auto}.settings-radio-label{display:flex;flex-direction:column;gap:2px}.settings-radio-title{font-weight:500;font-size:.9rem;color:var(--text)}.settings-radio-desc{font-size:.8rem;color:var(--text-muted)}.share-status-pending{color:var(--warn)}.share-status-accepted{color:var(--success)}.readonly-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:var(--accent-subtle-bg);color:var(--accent-subtle-fg);border-radius:999px;font-size:.8rem;font-weight:500}.panel{background:var(--bg-panel);border:1px solid var(--border-panel);border-radius:8px;padding:12px}.callout-info{background:var(--accent-subtle-bg);border:1px solid var(--border-panel);border-radius:8px}.callout-info,.callout-warn{padding:10px 12px;font-size:.85rem;color:var(--text)}.callout-warn{background:color-mix(in srgb,var(--warn) 15%,var(--bg-surface));border:1px solid var(--warn);border-radius:8px}.callout-error{background:color-mix(in srgb,var(--danger) 12%,var(--bg-surface));border:1px solid var(--danger);border-radius:8px;padding:10px 12px;font-size:.85rem;color:var(--text)}