*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f7f5;--surface:#fff;--border:#e4e2dc;--text:#1a1a1a;--text-muted:#6b7280;--accent:#2563eb;--accent-hover:#1d4ed8;--danger:#dc2626;--success:#16a34a;--warning:#d97706;--radius:8px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111;--surface:#1c1c1e;--border:#2c2c2e;--text:#f5f5f5;--text-muted:#9ca3af;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111;--surface:#1c1c1e;--border:#2c2c2e;--text:#f5f5f5;--text-muted:#9ca3af;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:380px;padding:40px}.auth-card h1{margin-bottom:4px;font-size:24px}.auth-tagline{color:var(--text-muted);margin-bottom:24px}.auth-card form{flex-direction:column;gap:16px;display:flex}.auth-card label{flex-direction:column;gap:6px;font-size:13px;font-weight:500;display:flex}.auth-card input{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;padding:8px 12px;font-size:14px}.auth-switch{color:var(--text-muted);text-align:center;margin-top:20px;font-size:13px}.auth-switch a{color:var(--accent);text-decoration:none}.form-error{color:var(--danger);font-size:13px}.app-shell{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:220px;padding:16px 12px;display:flex}.sidebar-brand{margin-bottom:12px;padding:8px;font-size:18px;font-weight:700}.nav-link{color:var(--text);border-radius:6px;padding:8px 12px;font-size:14px;text-decoration:none;display:block}.nav-link:hover,.nav-link.active{background:var(--bg);color:var(--accent)}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:auto;padding-top:12px;display:flex}.sidebar-email{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.main-content{flex:1;padding:24px;overflow-y:auto}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:9px 16px;font-size:14px;font-weight:500}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:6px 12px;font-size:13px}.btn-ghost:hover{color:var(--text)}.btn-sm{padding:4px 10px;font-size:12px}.page{max-width:900px}.page h2{margin-bottom:20px;font-size:22px}.page h3{margin:24px 0 12px;font-size:16px}.page-header{align-items:center;gap:16px;margin-bottom:20px;display:flex}.page-header h2{margin-bottom:0}.page-loading{color:var(--text-muted)}.stat-row{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:24px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:6px;padding:16px;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px}.stat-value{font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.stat-danger .stat-value{color:var(--danger)}.stat-ok .stat-value{color:var(--success)}.alert-banner{color:#92400e;border-radius:var(--radius);background:#fef3c7;margin-bottom:16px;padding:10px 16px;font-size:13px}.envelope-list{flex-direction:column;gap:2px;display:flex}.envelope-row{border-radius:6px;grid-template-columns:1fr 120px 130px 110px;align-items:center;padding:10px 12px;display:grid}.envelope-row:hover{background:var(--surface)}.envelope-name{font-size:14px}.envelope-budgeted,.envelope-spent,.envelope-available{font-variant-numeric:tabular-nums;text-align:right;font-size:13px}.envelope-available.negative{color:var(--danger)}.envelope-overspent{background:#fef2f2}.cat-group{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:12px}.cat-group-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;font-weight:600;display:flex}.cat-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 16px;display:flex}.cat-row:last-child{border-bottom:none}.cat-name{flex:1}.alloc-input{border:1px solid var(--border);background:var(--bg);width:100px;color:var(--text);text-align:right;border-radius:5px;padding:5px 8px;font-size:13px}.inline-add{background:var(--bg);align-items:center;gap:8px;padding:8px 16px;display:flex}.inline-add input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:5px;flex:1;padding:6px 10px;font-size:13px}.add-group-form{gap:8px;margin-top:16px;display:flex}.add-group-form input{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:6px;flex:1;padding:8px 12px;font-size:14px}.ready-badge{color:#166534;background:#dcfce7;border-radius:20px;padding:4px 10px;font-size:13px}.ready-badge.danger{color:#991b1b;background:#fee2e2}.tx-table{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex;overflow:hidden}.tx-header,.tx-row{grid-template-columns:100px 1fr 160px 100px 70px;align-items:center;gap:12px;padding:10px 16px;display:grid}.tx-header{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);font-size:11px;font-weight:600}.tx-row{border-bottom:1px solid var(--border);font-size:13px}.tx-row:last-child{border-bottom:none}.tx-unreviewed{background:#fffbeb}.tx-row select{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:4px;padding:4px 6px;font-size:12px}.tx-debit{color:var(--danger);font-variant-numeric:tabular-nums;text-align:right}.tx-credit{color:var(--success);font-variant-numeric:tabular-nums;text-align:right}.tx-empty{color:var(--text-muted);text-align:center;padding:24px}.toggle-label{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.loading{color:var(--text-muted);justify-content:center;padding:40px;display:flex}.badge{border-radius:20px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.badge-ok{color:#166534;background:#dcfce7}.badge-warn{color:#92400e;background:#fef3c7}.badge-danger{color:#991b1b;background:#fee2e2}.badge-muted{background:var(--border);color:var(--text-muted)}.account-list{flex-direction:column;gap:10px;margin-bottom:32px;display:flex}.account-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:16px;display:grid}.account-card-broken{border-color:var(--danger)}.account-info{flex-direction:column;gap:2px;display:flex}.account-inst{font-size:14px;font-weight:600}.account-name{color:var(--text-muted);font-size:13px}.account-type{text-transform:capitalize;color:var(--text-muted);font-size:11px}.account-meta{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.account-sync-time{color:var(--text-muted);font-size:11px}.account-actions{gap:8px;display:flex}.upload-section{border-top:1px solid var(--border);padding-top:24px}.section-sub{color:var(--text-muted);margin-bottom:12px;font-size:13px}.triage-card{border-radius:var(--radius);background:#fef2f2;border:1px solid #fecaca;margin-bottom:20px;padding:20px}.triage-card h4{margin-bottom:4px;font-size:15px}.triage-sub{color:var(--text-muted);margin-bottom:16px;font-size:13px}.triage-step{flex-direction:column;gap:12px;display:flex}.triage-step p{font-size:13px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;padding:32px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone-active{border-color:var(--accent);background:#eff6ff}.dropzone p{font-size:14px}.dropzone-sub{color:var(--text-muted);margin-top:4px;font-size:12px}.link-text{color:var(--accent);text-decoration:underline}.import-table{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:16px 0;overflow:hidden}.import-header,.import-row{grid-template-columns:32px 100px 1fr 100px;align-items:center;gap:12px;padding:10px 16px;display:grid}.import-header{text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);font-size:11px;font-weight:600}.import-row{border-bottom:1px solid var(--border);font-size:13px}.import-row:last-child{border-bottom:none}.import-row-dim{opacity:.4}.import-actions{justify-content:flex-end;gap:12px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin:24px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.premium-gate{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:40px}.premium-gate-inner{flex-direction:column;align-items:center;gap:12px;display:flex}.premium-icon{color:var(--accent);font-size:24px}.premium-options{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:8px;display:flex}.forgiveness-banner{color:#92400e;border-radius:var(--radius);background:#fef3c7;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding:10px 16px;font-size:13px;display:flex}.balance-calendar{overflow-x:auto}.cal-legend{gap:12px;margin-bottom:12px;font-size:11px;display:flex}.cal-legend-item{align-items:center;gap:4px;display:flex}.cal-legend-ok:before{content:"";background:var(--surface);border:1px solid var(--border);border-radius:2px;width:10px;height:10px;display:inline-block}.cal-legend-warn:before{content:"";background:#fef3c7;border:1px solid #d97706;border-radius:2px;width:10px;height:10px;display:inline-block}.cal-legend-crit:before{content:"";background:#fee2e2;border:1px solid #dc2626;border-radius:2px;width:10px;height:10px;display:inline-block}.cal-legend-neg:before{content:"";background:#fecaca;border-radius:2px;width:10px;height:10px;display:inline-block}.cal-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.cal-day{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}.cal-day-warning{background:#fef3c7;border-color:#d97706}.cal-day-critical{background:#fee2e2;border-color:#dc2626}.cal-day-negative{background:#fecaca;border-color:#991b1b}.cal-date{color:var(--text-muted);margin-bottom:2px;font-size:11px}.cal-balance{font-variant-numeric:tabular-nums;margin-bottom:4px;font-size:14px;font-weight:600}.cal-event{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.cal-event-income{color:var(--success)}.cal-event-bill{color:var(--danger)}.autopilot-header,.autopilot-row{border-bottom:1px solid var(--border);grid-template-columns:24px 1fr 90px 90px 100px 80px;align-items:center;gap:12px;padding:8px 16px;font-size:13px;display:grid}.autopilot-header{text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.autopilot-row{cursor:pointer}.autopilot-row:hover{background:var(--bg)}.autopilot-row:last-child{border-bottom:none}.autopilot-row-selected{background:#eff6ff}.insights-table{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.insights-header,.insights-row{border-bottom:1px solid var(--border);grid-template-columns:1fr 110px 110px 110px;align-items:center;gap:12px;padding:10px 16px;font-size:13px;display:grid}.insights-header{text-transform:uppercase;color:var(--text-muted);font-size:11px;font-weight:600}.insights-row:last-child{border-bottom:none}.insights-row:hover{background:var(--bg)}.settings-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.settings-section h3{margin-bottom:16px;font-size:14px;font-weight:600}.settings-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.settings-row:last-child{border-bottom:none}.settings-label{color:var(--text-muted);font-size:13px}.settings-sub{color:var(--text-muted);margin-top:4px;font-size:13px}.text-muted{color:var(--text-muted)}.success-banner{color:#166534;border-radius:var(--radius);background:#dcfce7;margin-bottom:20px;padding:12px 16px;font-size:14px}.empty-state{color:var(--text-muted);padding:24px 0;font-size:14px}
