:root{--bg-primary:#0f1117;--bg-secondary:#1a1d27;--bg-card:#1e2130;--bg-elevated:#232636;--bg-hover:#252838;--bg-input:#181b25;--border:#2a2d3a;--border-strong:#363a4a;--text-primary:#e8eaed;--text-secondary:#9aa0a6;--text-muted:#6b7280;--accent-green:#34d399;--accent-red:#f87171;--accent-blue:#60a5fa;--accent-purple:#a78bfa;--accent-yellow:#fbbf24;--accent-orange:#fb923c;--accent-green-bg:#34d3991a;--accent-red-bg:#f871711a;--accent-blue-bg:#60a5fa1a;--accent-yellow-bg:#fbbf241f;--accent-orange-bg:#fb923c1f;--accent-green-border:#34d39959;--accent-red-border:#f8717159;--accent-blue-border:#60a5fa59;--accent-yellow-border:#fbbf2459;--accent-orange-border:#fb923c59;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--text-2xs:10px;--text-xs:11px;--text-sm:13px;--text-base:14px;--text-md:16px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--radius:12px;--radius-sm:8px;--radius-xs:6px;--radius-pill:999px;--shadow-sm:0 1px 2px #00000040;--shadow-md:0 2px 6px #0000004d, 0 1px 2px #0003;--shadow-lg:0 8px 24px #0006;--shadow-card-hover:0 4px 14px #00000059}@media print{body,html{color:#000!important;background:#fff!important}.sidebar,.sidebar-nav,.sidebar-user,[class*=QuickAddFab],button[title*=command\ palette],button[title*=Quick\ add],body>div[style*="position: fixed"]{display:none!important}.main-content{max-width:none!important;margin-left:0!important;padding:0!important}.card{page-break-inside:avoid;box-shadow:none!important;background:#fff!important;border:1px solid #ddd!important}:root{--bg-primary:#fff;--bg-secondary:#fff;--bg-card:#fff;--bg-elevated:#f5f5f5;--bg-input:#f5f5f5;--border:#ccc;--text-primary:#000;--text-secondary:#333;--text-muted:#666}input,select,textarea{color:#000!important;background:#fff!important;border:1px solid #ccc!important}h1,h2,h3{page-break-after:avoid}.recharts-responsive-container{max-width:100%!important}}html[data-theme=light]{--bg-primary:#f7f8fa;--bg-secondary:#fff;--bg-card:#fff;--bg-elevated:#f1f3f5;--bg-hover:#eef0f3;--bg-input:#f1f3f5;--border:#e2e5ea;--border-strong:#c8cdd4;--text-primary:#1a1d27;--text-secondary:#4a5160;--text-muted:#7d8490;--accent-green:#10b981;--accent-red:#ef4444;--accent-blue:#2563eb;--accent-purple:#8b5cf6;--accent-yellow:#d97706;--accent-orange:#ea580c;--accent-green-bg:#10b9811a;--accent-red-bg:#ef44441a;--accent-blue-bg:#2563eb1a;--accent-yellow-bg:#d977061f;--accent-orange-bg:#ea580c1f;--accent-green-border:#10b98159;--accent-red-border:#ef444459;--accent-blue-border:#2563eb59;--accent-yellow-border:#d9770659;--accent-orange-border:#ea580c59;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 6px #0000000f, 0 1px 2px #0000000a;--shadow-lg:0 8px 24px #00000014;--shadow-card-hover:0 4px 14px #00000014}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;line-height:1.6}a{color:var(--accent-blue);text-decoration:none}a:hover{text-decoration:underline}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);z-index:20;scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;width:240px;height:100vh;padding:24px 16px;display:flex;position:fixed;top:0;left:0;overflow-y:auto}.sidebar::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track{background:0 0}.sidebar::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.sidebar-logo{color:var(--accent-green);letter-spacing:-.5px;margin-bottom:32px;padding:0 8px;font-size:22px;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;align-items:center;gap:12px;padding:10px 12px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary);text-decoration:none}.nav-link.active{background:var(--accent-green-bg);color:var(--accent-green)}.main-content{flex:1;min-width:0;max-width:1200px;margin-left:240px;padding:32px 32px 152px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);transition:border-color .15s,box-shadow .15s}.card-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--text-md);color:var(--text-primary);letter-spacing:-.2px;font-weight:600}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5) var(--space-5) var(--space-5);transition:border-color .15s,transform .15s;position:relative;overflow:hidden}.stat-card:before{content:"";background:var(--accent-blue);opacity:.6;height:2px;position:absolute;top:0;left:0;right:0}.stat-card.tone-positive:before{background:var(--accent-green);opacity:.8}.stat-card.tone-negative:before{background:var(--accent-red);opacity:.7}.stat-card.tone-neutral:before{background:var(--text-muted);opacity:.4}.stat-label{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:var(--space-2);align-items:center;gap:var(--space-1);font-weight:500;display:flex}.stat-value{font-size:var(--text-2xl);letter-spacing:-.5px;font-variant-numeric:tabular-nums;font-weight:700;line-height:1.15}.stat-value.positive{color:var(--accent-green)}.stat-value.negative{color:var(--accent-red)}.stat-sub{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--text-muted);align-items:center;gap:var(--space-1);font-variant-numeric:tabular-nums;display:flex}.table-wrapper,.table-wrap{overflow-x:auto}@media (width>=481px){.txn-table{table-layout:fixed;width:100%;min-width:880px}.txn-table th:first-child{width:34px}.txn-table th:nth-child(2){width:9%}.txn-table th:nth-child(3){width:30%}.txn-table th:nth-child(4){width:21%}.txn-table th:nth-child(5){width:12%}.txn-table th:nth-child(6){width:14%}.txn-table th:nth-child(7){width:11%}.txn-table td{overflow:hidden}.txn-table .txn-merchant,.txn-table .txn-subname,.txn-table td:nth-child(6){white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.txn-table .pill{flex-shrink:0}.txn-table td select{max-width:100%}.txn-table td:nth-child(2),.txn-table td:nth-child(7){font-variant-numeric:tabular-nums}}table{border-collapse:collapse;width:100%;font-size:var(--text-base)}th{text-align:left;padding:var(--space-3) var(--space-4);color:var(--text-muted);font-weight:500;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border)}td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);color:var(--text-primary)}tbody tr:last-child td{border-bottom:none}tr:hover td{background:#ffffff06}.tabular{font-variant-numeric:tabular-nums}.amount-positive{color:var(--accent-green)}.amount-negative{color:var(--accent-red)}.pill{font-size:var(--text-2xs);letter-spacing:.4px;text-transform:uppercase;border-radius:var(--radius-xs);white-space:nowrap;font-variant-numeric:tabular-nums;border:1px solid #0000;align-items:center;gap:4px;padding:1px 8px;font-weight:600;line-height:1.55;display:inline-flex}.pill-neutral{color:var(--text-muted);border-color:var(--border);background:0 0}.pill-info{color:var(--accent-blue);background:var(--accent-blue-bg);border-color:var(--accent-blue-border)}.pill-success{color:var(--accent-green);background:var(--accent-green-bg);border-color:var(--accent-green-border)}.pill-warning{color:var(--accent-orange);background:var(--accent-orange-bg);border-color:var(--accent-orange-border)}.pill-danger{color:var(--accent-red);background:var(--accent-red-bg);border-color:var(--accent-red-border)}.pill-soft{font-size:var(--text-xs);text-transform:none;letter-spacing:0;border-radius:var(--radius-pill);padding:3px 10px;font-weight:500}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:0 16px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;transition:background .15s,border-color .15s,color .15s,transform 50ms;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:var(--accent-green);color:#000}.btn-primary:hover:not(:disabled){opacity:.92}.btn-secondary{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border);border-color:#363a4a}.btn-danger{color:var(--accent-red);background:0 0;border-color:#f8717159}.btn-danger:hover:not(:disabled){background:var(--accent-red-bg);border-color:var(--accent-red)}.btn-ghost{color:var(--text-secondary);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){color:var(--text-primary);background:var(--bg-hover)}.btn-sm{gap:6px;min-height:30px;padding:0 12px;font-size:12px}.btn-lg{min-height:42px;padding:0 22px;font-size:14px}.btn-icon{min-width:36px;padding:0}.btn-icon.btn-sm{min-width:30px}.btn:focus-visible,.tab:focus-visible,.segmented__option:focus-visible,.sync-btn:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.tabs{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;gap:2px;padding:4px;display:inline-flex}.tab{min-height:30px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:500;line-height:1;transition:background .15s,color .15s;display:inline-flex}.tab:hover{color:var(--text-primary)}.tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 2px #0000004d}.segmented{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:3px;display:inline-flex}.segmented__option{min-height:26px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:500;line-height:1;transition:background .12s,color .12s;display:inline-flex}.segmented__option:hover:not(.active){color:var(--text-primary)}.segmented__option.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 2px #0000004d}.toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.toolbar>.toolbar__spacer{margin-left:auto}.swatch-group{flex-wrap:wrap;gap:6px;display:inline-flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0;transition:transform .1s,box-shadow .15s;position:relative}.swatch:hover{transform:scale(1.1)}.swatch.active{border-color:var(--text-primary);box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px currentColor}.swatch:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.icon-swatch{border:1px solid var(--border);background:var(--bg-secondary);width:34px;height:34px;color:var(--text-primary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;padding:0;font-size:16px;transition:background .12s,border-color .12s;display:inline-flex}.icon-swatch:hover{background:var(--bg-hover)}.icon-swatch.active{background:var(--accent-blue-bg);border-color:var(--accent-blue)}.icon-swatch:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px}.progress-bar{background:var(--bg-hover);border-radius:4px;height:8px;margin-top:8px;overflow:hidden}.progress-fill{border-radius:4px;height:100%;transition:width .3s}.category-badge{border-radius:var(--radius-pill);font-size:var(--text-xs);background:var(--bg-elevated);color:var(--text-secondary);padding:3px 10px;font-weight:500;display:inline-block}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.page-title{font-size:var(--text-xl);letter-spacing:-.5px;font-weight:700}.empty-state{text-align:center;padding:var(--space-12) var(--space-5);color:var(--text-secondary)}.empty-state h3{margin-bottom:var(--space-2);color:var(--text-primary);font-size:var(--text-md)}.empty-state__icon{border-radius:var(--radius);background:var(--bg-elevated);width:56px;height:56px;color:var(--text-muted);margin-bottom:var(--space-4);justify-content:center;align-items:center;display:inline-flex}@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--bg-card) 25%, var(--bg-elevated) 50%, var(--bg-card) 75%);border-radius:var(--radius-xs);color:#0000;background-size:200% 100%;animation:1.5s ease-in-out infinite skeleton-shimmer;display:inline-block}.skeleton-line{height:14px;margin-bottom:8px;display:block}.skeleton-line:last-child{margin-bottom:0}.sync-btn{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;align-items:center;gap:6px;padding:8px 14px;font-size:13px;display:flex}.sync-btn:hover{color:var(--text-primary)}.sync-btn.syncing{opacity:.6;pointer-events:none}.calendar-grid-block{display:block}.calendar-mobile-list,.mobile-app-bar{display:none}.mobile-app-bar-brand{color:var(--accent-green);letter-spacing:-.01em;font-size:16px;font-weight:600}.mobile-nav-toggle{background:var(--bg-elevated);border:1px solid var(--border);width:40px;height:40px;color:var(--text-primary);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:none}.mobile-nav-scrim{z-index:40;background:#00000080;animation:.15s ease-out scrim-fade;display:none;position:fixed;inset:0}@keyframes scrim-fade{0%{opacity:0}to{opacity:1}}@media (width<=768px){.mobile-app-bar{padding:8px 12px;padding-top:max(8px, env(safe-area-inset-top));height:calc(52px + env(safe-area-inset-top));background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:50;box-sizing:border-box;align-items:center;gap:12px;display:flex;position:fixed;top:0;left:0;right:0}.mobile-nav-toggle{display:inline-flex}.sidebar{z-index:45;width:280px;top:calc(52px + env(safe-area-inset-top));height:calc(100vh - 52px - env(safe-area-inset-top));transition:transform .18s ease-out;transform:translate(-100%);box-shadow:4px 0 24px #0006}.sidebar.open{transform:translate(0)}.sidebar .sidebar-logo{display:none}.sidebar{padding-top:16px;overflow-y:auto}.mobile-nav-scrim.open{top:calc(52px + env(safe-area-inset-top));display:block}.main-content{padding:16px;padding-top:calc(68px + env(safe-area-inset-top));padding-bottom:max(152px, calc(env(safe-area-inset-bottom) + 144px));margin-left:0}.stats-grid{grid-template-columns:1fr 1fr}div[role=status]+.mobile-app-bar{top:30px}div[role=status]{box-shadow:0 1px #0003}}@media (width<=480px){.main-content{padding:60px 12px 12px}.btn,.nav-link,.sidebar button{min-height:44px}.card table,.table-wrap table{-webkit-overflow-scrolling:touch;white-space:nowrap;display:block;overflow-x:auto}.stats-grid{grid-template-columns:1fr}.page-title{font-size:22px}button[aria-label="Open the demo Ask panel"],button[aria-label="Ask a question about your finances"],button[title^="Quick add transaction"]{bottom:max(24px, env(safe-area-inset-bottom))}button[title^="Quick add transaction"]{bottom:max(92px, calc(env(safe-area-inset-bottom) + 68px))}.txn-table{white-space:normal;display:block;overflow-x:visible}.txn-table thead{display:none}.txn-table tbody{display:block}.txn-table tr{border:1px solid var(--border);background:var(--bg-card);box-shadow:none;border-radius:10px;grid-template-columns:1fr auto;grid-template-areas:"date amount""desc desc""cat acct";gap:6px 12px;margin-bottom:8px;padding:12px 14px;display:grid}.txn-table td{border:none;padding:0;display:block}.txn-table td:first-child,.txn-table td:nth-child(5){display:none}.txn-table td:nth-child(2){color:var(--text-muted);grid-area:date;align-self:center;font-size:12px}.txn-table td:nth-child(3){grid-area:desc}.txn-table td:nth-child(4){grid-area:cat}.txn-table td:nth-child(6){color:var(--text-muted);text-align:right;grid-area:acct;align-self:center;font-size:12px}.txn-table td:nth-child(7){text-align:right;grid-area:amount;align-self:center;font-size:16px;font-weight:600}.calendar-grid-block{display:none}.calendar-mobile-list{display:block}.stats-grid>:nth-child(4){order:1}.stats-grid>:first-child{order:2}.stats-grid>:nth-child(3){order:3}.stats-grid>:nth-child(2){order:4}.recharts-cartesian-axis-tick text,.recharts-text{font-size:10px!important}.recharts-legend-wrapper{display:none!important}.recharts-cartesian-axis .recharts-text.recharts-label{display:none}.recharts-tooltip-wrapper{font-size:11px!important}.holdings-table{white-space:normal;display:block;overflow-x:visible}.holdings-table thead{display:none}.holdings-table tbody{display:block}.holdings-table tr{border:1px solid var(--border);background:var(--bg-card);border-radius:10px;grid-template-columns:1fr auto;grid-template-areas:"security mvalue""account gainloss";gap:6px 12px;margin-bottom:8px;padding:12px 14px;display:grid}.holdings-table td{border:none;padding:0;display:block}.holdings-table td:nth-child(3),.holdings-table td:nth-child(4),.holdings-table td:nth-child(6){display:none}.holdings-table td:first-child{grid-area:security}.holdings-table td:nth-child(2){color:var(--text-muted);grid-area:account;align-self:center;font-size:12px}.holdings-table td:nth-child(5){text-align:right;grid-area:mvalue;align-self:center;font-size:16px;font-weight:600}.holdings-table td:nth-child(7){text-align:right;grid-area:gainloss;align-self:center;font-size:13px;font-weight:500}}.auth-screen{background:radial-gradient(circle at top, #60a5fa14, transparent 60%), var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:400px;padding:36px 32px;box-shadow:0 10px 40px #00000059}.auth-card-wide{max-width:500px}.auth-header{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-bottom:24px;display:flex}.auth-icon{color:var(--accent-green)}.auth-header h1{color:var(--text-primary);font-size:22px;font-weight:600}.auth-subtitle{color:var(--text-secondary);font-size:13px}.auth-form{flex-direction:column;gap:14px;display:flex}.auth-label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:12px;display:flex}.auth-label input{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:10px 12px;font-family:inherit;font-size:14px;transition:border-color .15s}.auth-label input:focus{border-color:var(--accent-blue);outline:none}.auth-label input[inputmode=numeric]{letter-spacing:4px;text-align:center;font-variant-numeric:tabular-nums;font-size:18px}.auth-submit{background:var(--accent-blue);color:#0b1220;border-radius:var(--radius-sm);cursor:pointer;border:none;margin-top:6px;padding:11px;font-size:14px;font-weight:600;transition:filter .15s}.auth-submit:hover:not(:disabled){filter:brightness(1.08)}.auth-submit:disabled{opacity:.55;cursor:not-allowed}.auth-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;margin-top:4px;padding:4px;font-size:12px}.auth-link:hover{color:var(--text-primary)}.auth-error{background:var(--accent-red-bg);color:var(--accent-red);border-radius:var(--radius-sm);border:1px solid #f8717159;padding:9px 12px;font-size:13px}.auth-footer{border-top:1px solid var(--border);color:var(--text-muted);text-align:center;margin-top:22px;padding-top:16px;font-size:11px}.enroll-step{flex-direction:column;gap:14px;display:flex}.enroll-title{color:var(--text-primary);font-size:15px;font-weight:600}.enroll-hint{color:var(--text-secondary);font-size:13px;line-height:1.5}.qr-container{border-radius:var(--radius-sm);background:#fff;justify-content:center;padding:16px;display:flex}.qr-image{width:200px;height:200px;display:block}.manual-secret{color:var(--text-secondary);font-size:12px}.manual-secret summary{cursor:pointer;padding:4px 0}.secret-row{background:var(--bg-hover);border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;margin-top:6px;padding:8px 12px;display:flex}.secret-row code{color:var(--text-primary);word-break:break-all;font-family:SF Mono,Consolas,monospace;font-size:12px}.secret-copy{border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:4px 8px;font-size:11px;display:flex}.secret-copy:hover{color:var(--text-primary)}.sidebar-user{border-top:1px solid var(--border);color:var(--text-muted);margin-top:12px;padding-top:12px;font-size:11px}.sidebar-user-row{align-items:center;gap:6px;margin-bottom:8px;padding:0 14px;display:flex}.mfa-badge{color:var(--accent-green)}.sidebar-logout{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;align-items:center;gap:6px;padding:8px 14px;font-size:12px;display:flex}.sidebar-logout:hover{color:var(--accent-red);border-color:var(--accent-red)}kbd{border:1px solid var(--border);background:var(--bg-input,#ffffff0a);color:var(--text-secondary);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;line-height:1.4;display:inline-block}
