:root{
  --navy:#0b1928;
  --navy-2:#10243a;
  --navy-3:#173451;
  --canvas:#f4f6f8;
  --surface:#ffffff;
  --surface-soft:#f8fafb;
  --border:#e2e7ec;
  --border-strong:#d4dbe2;
  --text:#15202d;
  --muted:#6f7c8a;
  --muted-2:#94a0ad;
  --blue:#2563eb;
  --blue-soft:#eaf2ff;
  --green:#159957;
  --green-soft:#e9f8f0;
  --red:#d64b4b;
  --red-soft:#fff0f0;
  --amber:#b66b0b;
  --amber-soft:#fff6df;
  --purple:#7c3aed;
  --shadow:0 1px 2px rgba(15,23,42,.03),0 8px 24px rgba(15,23,42,.045);
  --radius:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--canvas);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
button,input,select{font:inherit}
a{color:inherit;text-decoration:none}
button,a,input,select{outline-color:var(--blue)}
.app-shell{min-height:100vh;display:grid;grid-template-columns:228px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--navy),#091521);color:#dce7f1;padding:24px 14px 18px;display:flex;flex-direction:column;z-index:20}
.brand{display:flex;align-items:center;gap:11px;padding:0 8px 24px;color:#fff}.brand-mark{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#fff;color:var(--navy);font-weight:800}.brand strong{display:block;font-size:.92rem;letter-spacing:-.01em}.brand small{display:block;color:#8fa3b6;font-size:.68rem;margin-top:2px}
.nav{display:grid;gap:4px}.nav-item{display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:9px;color:#b8c7d5;font-size:.84rem;font-weight:550;transition:.15s ease}.nav-item:hover{background:rgba(255,255,255,.055);color:#fff}.nav-item.active{background:#193957;color:#fff}.nav-icon{width:17px;text-align:center;color:#91a8bc;font-size:1rem}.nav-item.active .nav-icon{color:#fff}.sidebar-footer{margin-top:auto;padding:14px 10px 0;border-top:1px solid rgba(255,255,255,.08);display:flex;gap:8px;align-items:center;color:#7f94a7;font-size:.67rem}.privacy-dot{width:7px;height:7px;border-radius:50%;background:#41b883;box-shadow:0 0 0 3px rgba(65,184,131,.12)}
.main{min-width:0}.app-header{height:68px;position:sticky;top:0;z-index:15;background:rgba(244,246,248,.9);backdrop-filter:blur(12px);border-bottom:1px solid rgba(212,219,226,.72);display:grid;grid-template-columns:1fr minmax(320px,650px) 1fr;align-items:center;padding:0 30px}.mobile-brand{display:none;font-weight:700}.global-search{grid-column:2;position:relative;display:flex;align-items:center}.global-search input{width:100%;height:38px;border:1px solid var(--border-strong);border-radius:9px;background:#fff;padding:0 42px 0 37px;color:var(--text);font-size:.8rem;box-shadow:0 1px 2px rgba(15,23,42,.02)}.global-search input::placeholder{color:#8d99a5}.search-icon{position:absolute;left:13px;color:#657587;font-size:1.05rem}.global-search kbd{position:absolute;right:10px;border:1px solid var(--border);background:var(--surface-soft);border-radius:5px;padding:2px 6px;color:#8a96a3;font-size:.66rem;font-family:inherit}.profile-badge{justify-self:end;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#dfe7ef;color:#29415a;font-size:.7rem;font-weight:800}
.view{max-width:1440px;margin:0 auto;padding:30px 34px 60px}.loading-state,.empty-state{padding:70px 20px;text-align:center;color:var(--muted)}
.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-bottom:22px}.page-heading h1{margin:0;font-size:1.75rem;letter-spacing:-.035em}.page-heading p{margin:6px 0 0;color:var(--muted);font-size:.78rem}.heading-action{font-size:.75rem;color:var(--muted)}
.metric-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.metric-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:15px 16px;min-height:98px;box-shadow:var(--shadow)}.metric-label{font-size:.69rem;color:var(--muted);margin-bottom:7px}.metric-value{font-size:1.28rem;font-weight:760;letter-spacing:-.025em;font-variant-numeric:tabular-nums}.metric-foot{font-size:.66rem;color:var(--muted-2);margin-top:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metric-foot.good{color:var(--green)}
.overview-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.75fr);gap:14px;margin-bottom:14px}.overview-bottom{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.8fr);gap:14px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.panel-pad{padding:18px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.panel-header h2{font-size:.92rem;margin:0;letter-spacing:-.015em}.panel-header p{font-size:.69rem;color:var(--muted);margin:4px 0 0}.link-button{border:0;background:none;color:var(--blue);padding:0;cursor:pointer;font-size:.7rem;font-weight:650}.link-button:hover{text-decoration:underline}
.cash-flow-layout{display:grid;grid-template-columns:minmax(220px,.85fr) minmax(260px,1.15fr);gap:28px;align-items:center}.flow-list{display:grid}.flow-row{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #edf0f3;font-size:.78rem}.flow-row:last-child{border-bottom:0}.flow-row strong{font-variant-numeric:tabular-nums}.positive{color:var(--green)!important}.negative{color:var(--red)!important}.flow-visual{height:116px;display:flex;align-items:flex-end;gap:12px;padding:10px 4px 0}.flow-month{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:3px;height:100%;position:relative;padding-bottom:19px}.flow-bar{width:8px;border-radius:3px 3px 1px 1px;min-height:4px}.flow-bar.in{background:#40b97a}.flow-bar.out{background:#f08b80}.flow-month span{position:absolute;bottom:0;font-size:.58rem;color:var(--muted-2)}
.notice-panel{background:linear-gradient(180deg,#fffaf0,#fff);border-color:#f1dfb8}.notice-panel .panel-header h2{color:#805112}.notice-list{display:grid;gap:2px}.notice{display:grid;grid-template-columns:27px 1fr;gap:10px;padding:9px 0}.notice-icon{width:25px;height:25px;border-radius:8px;background:#ffedc5;color:#9b6108;display:grid;place-items:center;font-size:.7rem}.notice strong{display:block;font-size:.73rem;line-height:1.35}.notice p{margin:3px 0 0;color:#8b7655;font-size:.66rem;line-height:1.4}
.data-list{display:grid}.data-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f3}.data-row:last-child{border-bottom:0}.row-main{display:flex;gap:10px;align-items:center;min-width:0}.merchant-icon,.account-icon{flex:0 0 auto;width:28px;height:28px;border-radius:8px;background:var(--surface-soft);border:1px solid var(--border);display:grid;place-items:center;color:#53677b;font-size:.66rem;font-weight:750}.row-copy{min-width:0}.row-title{font-size:.75rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-meta{font-size:.64rem;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-value{text-align:right;font-size:.75rem;font-weight:650;font-variant-numeric:tabular-nums}.row-subvalue{text-align:right;font-size:.61rem;color:var(--muted);margin-top:3px}
.account-summary-row{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 0;border-bottom:1px solid #edf0f3;cursor:pointer}.account-summary-row:last-child{border-bottom:0}.summary-icon{width:36px;height:36px;border-radius:10px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-weight:800}.account-summary-row strong{font-size:.76rem}.account-summary-row p{font-size:.64rem;color:var(--muted);margin:3px 0 0}.summary-amount{font-size:.9rem;font-weight:750;font-variant-numeric:tabular-nums}
.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.control{height:36px;border:1px solid var(--border-strong);border-radius:8px;background:#fff;padding:0 11px;color:#425164;font-size:.72rem}.toolbar .search-control{min-width:240px;flex:1}.clear-button{border:0;background:none;color:var(--blue);font-size:.7rem;cursor:pointer;padding:0 8px}
.table-panel{overflow:hidden}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.72rem}.data-table th{text-align:left;background:#f8fafb;color:#596979;font-weight:650;padding:10px 13px;border-bottom:1px solid var(--border);white-space:nowrap}.data-table td{padding:11px 13px;border-bottom:1px solid #edf0f3;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafbfd}.data-table .amount{text-align:right;font-weight:650;font-variant-numeric:tabular-nums}.table-merchant{font-weight:620}.category-pill{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.category-dot{width:7px;height:7px;border-radius:50%;background:var(--blue)}.date-group td{padding:9px 13px;background:#fbfcfd;font-weight:700;color:#445365;font-size:.68rem}
.accounts-total{margin-bottom:18px}.accounts-total small{display:block;color:var(--muted);font-size:.67rem}.accounts-total strong{display:block;font-size:1.55rem;margin-top:3px;letter-spacing:-.03em}.account-group{margin-top:20px}.account-group:first-child{margin-top:0}.group-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;padding:0 2px}.group-title h2{font-size:.82rem;margin:0}.group-title strong{font-size:.82rem}.account-line{display:grid;grid-template-columns:30px minmax(0,1fr) minmax(70px,110px) auto 18px;gap:10px;align-items:center;padding:11px 8px;border-bottom:1px solid #edf0f3;border-radius:8px;cursor:pointer}.account-line:hover{background:#f8fafc}.account-line:last-child{border-bottom:0}.account-name{font-size:.75rem;font-weight:620}.account-meta{font-size:.62rem;color:var(--muted);margin-top:2px}.account-mask{font-size:.66rem;color:var(--muted);text-align:right}.account-balance{font-size:.75rem;font-weight:680;text-align:right;font-variant-numeric:tabular-nums}.chevron{color:#a1acb7}
.spending-hero{display:grid;grid-template-columns:minmax(0,.8fr) minmax(260px,1.2fr);gap:30px;align-items:end;padding:20px}.spend-total small{font-size:.68rem;color:var(--muted);display:block}.spend-total strong{font-size:1.8rem;display:block;margin:4px 0;letter-spacing:-.035em}.spend-total span{font-size:.66rem;color:var(--muted)}.spend-bars{height:130px;display:flex;align-items:flex-end;gap:12px}.spend-bar-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}.spend-bar{width:min(30px,70%);background:#b8d1ff;border-radius:5px 5px 2px 2px;min-height:4px}.spend-bar-col span{font-size:.59rem;color:var(--muted)}
.category-table{display:grid}.category-line{display:grid;grid-template-columns:minmax(130px,1fr) 100px minmax(120px,1.5fr) 55px;gap:16px;align-items:center;padding:11px 0;border-bottom:1px solid #edf0f3;font-size:.72rem}.category-line:last-child{border-bottom:0}.category-name{display:flex;align-items:center;gap:8px;font-weight:620}.category-amount{text-align:right;font-variant-numeric:tabular-nums}.category-track{height:7px;background:#edf1f4;border-radius:999px;overflow:hidden}.category-fill{height:100%;border-radius:999px;background:var(--blue)}.category-percent{text-align:right;color:var(--muted);font-size:.65rem}
.holdings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.holding-card{padding:16px}.holding-card .ticker{font-size:.72rem;font-weight:800;color:var(--blue)}.holding-card h3{font-size:.76rem;margin:5px 0 14px;min-height:34px}.holding-value{font-size:1.1rem;font-weight:750}.holding-meta{font-size:.63rem;color:var(--muted);margin-top:4px}
.recurring-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:14px}.mini-stat{padding:15px}.mini-stat small{display:block;color:var(--muted);font-size:.66rem}.mini-stat strong{display:block;margin-top:5px;font-size:1.05rem}
.detail-back{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:.7rem;margin-bottom:14px}.account-detail-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.detail-title{display:flex;gap:12px;align-items:center}.detail-title .summary-icon{width:44px;height:44px}.detail-title h1{font-size:1.35rem;margin:0}.detail-title p{margin:4px 0 0;color:var(--muted);font-size:.7rem}.detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.detail-metric{padding:16px}.detail-metric small{font-size:.65rem;color:var(--muted)}.detail-metric strong{display:block;font-size:1.08rem;margin-top:5px}.utilization{margin-top:13px}.util-track{height:7px;background:#e8edf1;border-radius:999px;overflow:hidden}.util-fill{height:100%;background:var(--green);border-radius:999px}.util-label{display:flex;justify-content:flex-end;font-size:.61rem;color:var(--muted);margin-top:5px}
.error-state{max-width:620px;margin:70px auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:30px;text-align:center}.error-state h2{margin-top:0}
@media(max-width:1120px){.metric-strip{grid-template-columns:repeat(3,1fr)}.overview-grid,.overview-bottom{grid-template-columns:1fr}.holdings-grid{grid-template-columns:repeat(2,1fr)}.app-header{grid-template-columns:auto minmax(260px,1fr) auto;gap:16px}.global-search{grid-column:2}.cash-flow-layout{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;height:auto;padding:10px 12px;display:block;border-bottom:1px solid rgba(255,255,255,.08)}.brand,.sidebar-footer{display:none}.nav{display:flex;overflow-x:auto;gap:4px;scrollbar-width:none}.nav::-webkit-scrollbar{display:none}.nav-item{white-space:nowrap;padding:9px 10px}.app-header{top:49px;height:60px;padding:0 16px;grid-template-columns:1fr auto}.mobile-brand{display:none}.global-search{grid-column:1}.profile-badge{grid-column:2}.view{padding:22px 16px 50px}.metric-strip{grid-template-columns:repeat(2,1fr)}.detail-metrics{grid-template-columns:1fr}.category-line{grid-template-columns:minmax(100px,1fr) 80px 1fr}.category-percent{display:none}}
@media(max-width:560px){.metric-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:3px}.metric-card{min-width:155px;scroll-snap-align:start}.page-heading{align-items:flex-start}.page-heading h1{font-size:1.45rem}.heading-action{display:none}.cash-flow-layout{grid-template-columns:1fr}.flow-visual{display:none}.overview-bottom{grid-template-columns:1fr}.holdings-grid{grid-template-columns:1fr}.recurring-summary{grid-template-columns:1fr}.spending-hero{grid-template-columns:1fr}.spend-bars{height:100px}.account-line{grid-template-columns:30px minmax(0,1fr) auto 16px}.account-mask{display:none}.category-line{grid-template-columns:minmax(100px,1fr) auto}.category-track{display:none}.toolbar{display:grid;grid-template-columns:1fr 1fr}.toolbar .search-control{grid-column:1/-1;min-width:0}.table-scroll{margin:0 -1px}.data-table th:nth-child(4),.data-table td:nth-child(4){display:none}.app-header{top:49px}.global-search kbd{display:none}.account-detail-head{display:block}.detail-title{margin-bottom:12px}}
