:root{--bg: #FAFAF7;--bg-elev: #FFFFFF;--bg-sunken: #F4F3EE;--ink: #0E0E0C;--ink-2: #3A3A36;--ink-3: #6E6E66;--ink-4: #9E9E94;--line: #E9E7E0;--line-2: #DEDBD2;--accent: #2C6E49;--accent-soft: #E3ECE6;--pos: #2C6E49;--neg: #C4443C;--neg-soft: #F5E3E1;--gold: #D9A441;--gold-soft: #F6EDDC;--pos-soft: #E3ECE6;--radius: 8px;--radius-lg: 18px;--shadow-card: 0 1px 2px rgba(20, 18, 12, .04), 0 10px 28px -14px rgba(20, 18, 12, .08);--density: 1;--pad: calc(24px * var(--density));--pad-sm: calc(14px * var(--density));--gap: calc(20px * var(--density));--row-h: calc(52px * var(--density));--font-sans: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Geist Mono", ui-monospace, "SF Mono", monospace;--font-display: "Geist", ui-sans-serif, system-ui, sans-serif}:root[data-theme=dark]{--bg: #0F0F0E;--bg-elev: #171714;--bg-sunken: #0A0A09;--ink: #F5F4EE;--ink-2: #C9C7BE;--ink-3: #8C8B82;--ink-4: #5E5D55;--line: #26241F;--line-2: #322F29;--accent-soft: #1C2A22;--pos-soft: #1C2A22;--neg-soft: #2A1A18}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-feature-settings:"ss01","cv11","tnum";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{min-height:100vh}.app{min-height:100vh;padding-left:240px;position:relative}.side-nav{position:fixed;left:0;top:0;bottom:0;width:240px;background:var(--bg-elev);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 12px 14px;z-index:50}.side-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 18px;border-bottom:1px solid var(--line);margin-bottom:14px}.side-brand .brand-mark{width:32px;height:32px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:15px;letter-spacing:-.02em}.side-brand-text{display:flex;flex-direction:column;line-height:1.15}.side-brand-name{font-size:13.5px;font-weight:600;color:var(--ink)}.side-brand-sub{font-size:11px;color:var(--ink-3);font-family:var(--font-mono);letter-spacing:.01em}.side-section{padding:4px;margin:auto 0}.side-section-title{font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:var(--ink-3);padding:8px 10px 6px;font-family:var(--font-mono)}.side-list{display:flex;flex-direction:column;gap:10px}.side-item{position:relative;display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:transparent;border-radius:8px;color:var(--ink-2);font-size:13.5px;font-family:inherit;text-decoration:none;cursor:pointer;transition:background .12s ease,color .12s ease;text-align:left}.side-item .side-ic{width:16px;height:16px;display:grid;place-items:center;color:var(--ink-3)}.side-item .side-ic svg{width:16px;height:16px}.side-item:hover{background:var(--bg-sunken);color:var(--ink)}.side-item:hover .side-ic{color:var(--ink)}.side-item.active{background:var(--accent-soft);color:var(--accent)}.side-item.active .side-ic{color:var(--accent)}.side-item.active:before{content:"";position:absolute;left:-12px;top:6px;bottom:6px;width:3px;border-radius:999px;background:var(--accent)}.side-label{font-weight:500}.side-foot{margin-top:auto;padding-top:12px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}.side-user{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:8px}.side-avatar{width:32px;height:32px;border-radius:999px;background:linear-gradient(135deg,#3e8a61,#1f5236);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;flex-shrink:0}.side-user-text{min-width:0}.side-user-name{font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-user-email{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono)}.side-signout{color:var(--ink-3)}@media (max-width: 900px){.app{padding-left:0;padding-top:60px}.side-nav{width:100%;height:56px;bottom:auto;flex-direction:row;padding:8px 12px;align-items:center;border-right:none;border-bottom:1px solid var(--line)}.side-brand{border:none;padding:0;margin:0 12px 0 0}.side-section{flex:1;padding:0}.side-section-title{display:none}.side-list{flex-direction:row;gap:4px;overflow-x:auto}.side-item{width:auto;padding:6px 10px}.side-item.active:before{display:none}.side-foot{display:none}}.rail-wrap{position:fixed;left:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;z-index:50}.rail-wrap .brand-mark{width:36px;height:36px;border-radius:10px;background:var(--ink);color:var(--bg);display:grid;place-items:center;font-family:var(--font-display);font-weight:600;font-size:16px;letter-spacing:-.02em;margin-bottom:4px}.rail{background:var(--bg-elev);border:1px solid var(--line);border-radius:999px;padding:8px;display:flex;flex-direction:column;gap:4px;box-shadow:0 4px 16px #0000000a,0 1px 2px #00000008}.rail-item{width:40px;height:40px;border-radius:999px;border:none;background:transparent;color:var(--ink-3);display:grid;place-items:center;cursor:pointer;position:relative;transition:background .12s ease,color .12s ease;padding:0;font-family:inherit;text-decoration:none}.rail-item .rail-ic{width:18px;height:18px;display:grid;place-items:center}.rail-item .rail-ic svg{width:18px;height:18px}.rail-item:hover{background:var(--bg-sunken);color:var(--ink)}.rail-item.active,.rail-item.active:hover{background:var(--ink);color:var(--bg)}.rail-theme{background:var(--bg-elev);border:1px solid var(--line);box-shadow:0 2px 8px #00000008}.rail-avatar{width:36px;height:36px;border-radius:999px;background:linear-gradient(135deg,#c6b79b,#8a7a5e);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;border:2px solid var(--bg-elev);box-shadow:0 2px 8px #0000000a}.rail-item[data-label]:after{content:attr(data-label);position:absolute;left:calc(100% + 12px);top:50%;transform:translateY(-50%);background:var(--ink);color:var(--bg);font-size:11.5px;font-family:var(--font-sans);padding:5px 9px;border-radius:6px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .12s ease;z-index:10}.rail-item:hover[data-label]:after{opacity:1}.sidebar-footer .name{font-size:13px;font-weight:500}.sidebar-footer .email{font-size:11px;color:var(--ink-3)}.main{min-width:0;overflow-x:clip}.search{margin-left:18px;flex:0 0 320px;background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius);height:30px;padding:0 10px;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-3)}.search kbd{margin-left:auto;font-family:var(--font-mono);font-size:10.5px;color:var(--ink-3);background:var(--bg-elev);border:1px solid var(--line);padding:1px 5px;border-radius:3px}.topbar-right{margin-left:auto;display:flex;align-items:center;gap:10px}.btn{height:30px;padding:0 12px;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-elev);color:var(--ink);font-size:12.5px;font-weight:500;font-family:inherit;display:inline-flex;align-items:center;gap:6px;cursor:pointer}.btn:hover{border-color:var(--line-2)}.btn.primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.ghost{background:transparent}.icon-btn{width:30px;height:30px;display:grid;place-items:center;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-elev);cursor:pointer;color:var(--ink-2)}.icon-btn:hover{color:var(--ink)}.page{padding:var(--pad)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:calc(var(--pad) * .9)}.eyebrow{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em;margin-bottom:10px;font-family:var(--font-mono);font-weight:500}h1.page-title{font-family:var(--font-display);font-weight:500;font-size:32px;letter-spacing:-.02em;margin:0}.page-sub{color:var(--ink-3);font-size:15px;margin-top:6px}.chip-row{display:flex;gap:6px;align-items:center}.chip{height:28px;padding:0 10px;border-radius:var(--radius);border:1px solid var(--line);background:var(--bg-elev);font-size:12px;color:var(--ink-2);display:inline-flex;align-items:center;cursor:pointer;font-family:var(--font-mono);font-weight:500}.chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.seg{display:inline-flex;background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius);padding:2px}.seg .chip{border:none;background:transparent;height:24px;padding:0 10px;color:var(--ink-3)}.seg .chip.active{background:var(--bg-elev);color:var(--ink);box-shadow:0 1px #00000008;border-radius:4px}.grid{display:grid;gap:var(--gap)}.card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.card.lift{transition:transform .18s ease,box-shadow .18s ease}.card.lift:hover{transform:translateY(-2px);box-shadow:0 2px 4px #14120c0d,0 18px 40px -16px #14120c1f}@media (prefers-reduced-motion: reduce){.card.lift,.card.lift:hover{transform:none;transition:none}}.card-head{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--pad-sm) + 2px) var(--pad-sm);border-bottom:1px solid var(--line)}.card-head h3{margin:0;font-size:15px;font-weight:500;letter-spacing:-.005em}.card-head .muted{color:var(--ink-3);font-size:13px}.card-body{padding:var(--pad-sm)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:var(--gap)}.kpi{padding:calc(var(--pad-sm) + 4px) var(--pad);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.kpi .label{font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);font-family:var(--font-mono);font-weight:500;margin-bottom:10px;display:flex;align-items:center;gap:6px}.kpi .value{font-family:var(--font-display);font-weight:500;font-size:36px;letter-spacing:-.028em;line-height:1.05;font-variant-numeric:tabular-nums}.kpi.hero .value{font-size:36px}.kpi .delta{margin-top:10px;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:13px;color:var(--ink-3)}.kpi-delta{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:14px;font-variant-numeric:tabular-nums}.kpi-delta-arrow{display:inline-flex;align-items:center}.kpi-delta-cmp{color:var(--ink-3);font-weight:400;margin-left:2px}.page-greet-date{font-size:12.5px;color:var(--ink-3);font-family:var(--font-mono);margin-left:12px}.timeline-bar{display:flex;align-items:center;justify-content:space-between;margin-top:8px;margin-bottom:var(--gap)}.timeline-bar .timeline-label{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-mono)}.timeline-seg{display:inline-flex;gap:2px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-md, 6px);padding:3px}.timeline-seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--ink-3);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.04em;padding:5px 10px;border-radius:4px;cursor:pointer;transition:background .15s ease,color .15s ease}.timeline-seg button:hover{color:var(--ink)}.timeline-seg button.active{background:var(--bg-sunken);color:var(--ink)}.delta-pill{padding:2px 6px;border-radius:3px;font-weight:500;font-family:var(--font-mono);font-size:11px;display:inline-flex;align-items:center;gap:3px}.delta-pill.pos{color:var(--pos);background:var(--pos-soft)}.delta-pill.neg{color:var(--neg);background:var(--neg-soft)}.chart-card{min-height:360px}.chart-legend{display:flex;gap:16px;font-size:12px;color:var(--ink-3);font-family:var(--font-mono)}.legend-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle}.chart-wrap{position:relative;padding:8px 0 0}@keyframes mm-dot-pulse{0%{transform:scale(.6);opacity:.35}70%{transform:scale(1.6);opacity:0}to{transform:scale(1.6);opacity:0}}.cross-tip{transition:left .12s ease,top .12s ease}table.tbl{width:100%;border-collapse:collapse;font-size:13px}.tbl thead th{text-align:left;font-weight:500;color:var(--ink-3);font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono);padding:10px var(--pad-sm);border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0}.tbl tbody td{padding:calc(var(--pad-sm) - 2px) var(--pad-sm);border-bottom:1px solid var(--line);vertical-align:middle;font-size:13px}.tbl tbody tr:last-child td{border-bottom:none}.tbl tbody tr:hover td{background:var(--bg-sunken)}.num{font-variant-numeric:tabular-nums;font-family:var(--font-mono);font-size:12.5px;text-align:right}td.num{white-space:nowrap}th.num{text-align:right}.tx-ic{width:28px;height:28px;display:grid;place-items:center;border-radius:6px;background:var(--bg-sunken);border:1px solid var(--line);color:var(--ink-2);flex:0 0 28px}.cell-merchant{display:flex;align-items:center;gap:10px}.cell-merchant .m-name{font-weight:500}.cell-merchant .m-cat{color:var(--ink-3);font-size:11.5px;font-family:var(--font-mono);letter-spacing:.01em}.tag{display:inline-block;padding:2px 7px;font-size:11px;font-family:var(--font-mono);color:var(--ink-3);background:var(--bg-sunken);border:1px solid var(--line);border-radius:3px}.alloc-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px dashed var(--line)}.alloc-row:last-child{border-bottom:none}.alloc-name{font-size:13px;font-weight:500;display:flex;align-items:center;gap:8px}.alloc-swatch{width:10px;height:10px;border-radius:2px}.alloc-val{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}.alloc-bar{grid-column:1 / -1;height:4px;background:var(--bg-sunken);border-radius:2px;overflow:hidden;margin-top:2px}.alloc-bar>span{display:block;height:100%}.dash-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gap);margin-top:var(--gap)}.wide-2{grid-column:1 / -1}@media (max-width: 980px){.dash-grid{grid-template-columns:minmax(0,1fr)}}.accounts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gap)}.acct{padding:var(--pad-sm);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--bg-elev)}.acct .bank{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:12px;font-family:var(--font-mono);margin-bottom:14px}.acct .bank-mark{width:22px;height:22px;border-radius:4px;background:var(--bg-sunken);display:grid;place-items:center;border:1px solid var(--line);color:var(--ink-2);font-size:11px;font-weight:600;font-family:var(--font-display)}.acct .acct-bal{font-family:var(--font-display);font-weight:500;font-size:24px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.acct .acct-name{margin-top:4px;color:var(--ink-3);font-size:12.5px}.acct .acct-foot{margin-top:14px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:10px}.acct-summary,.acct-section{margin-bottom:var(--gap)}.acct-section-title{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:var(--ink-3);font-family:var(--font-mono);padding:0 2px 8px}.acct-rows{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.acct-row{display:grid;grid-template-columns:36px minmax(0,1fr) auto 140px auto;align-items:center;gap:14px;padding:12px var(--pad-sm);border-bottom:1px solid var(--line)}.acct-row:last-child{border-bottom:none}.acct-row:hover{background:var(--bg-sunken)}.acct-row-mark{width:32px;height:32px;border-radius:8px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:600;font-family:var(--font-display)}.acct-row-name{font-weight:500;font-size:13.5px}.acct-row-meta{font-size:11.5px;color:var(--ink-3);font-family:var(--font-mono);margin-top:2px}.acct-row-bal{text-align:right;font-family:var(--font-display);font-size:16px;font-weight:500;font-variant-numeric:tabular-nums}.acct-row-actions{display:flex;gap:6px;opacity:0;transition:opacity .14s ease}.acct-row:hover .acct-row-actions,.acct-row:focus-within .acct-row-actions{opacity:1}@media (max-width: 760px){.acct-row{grid-template-columns:36px minmax(0,1fr) auto auto}.acct-row>.delta-pill{display:none}.acct-row-actions{opacity:1}}.cc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:22px}.cc-wrap{perspective:1200px}.cc-card{position:relative;aspect-ratio:1.586 / 1;border-radius:22px;padding:26px 28px;color:#fff;overflow:hidden;box-shadow:0 24px 50px -16px #0000008c,0 4px 12px -4px #0000004d,inset 0 1px #ffffff1a;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;transition:transform .26s ease,box-shadow .26s ease}.cc-card:hover{transform:translateY(-3px) rotateX(1.2deg) rotateY(-1.2deg);box-shadow:0 36px 80px -20px #000000b3,0 8px 20px -6px #0006,inset 0 1px #ffffff29}.cc-border{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:22px;padding:1.5px;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.85}.cc-shine{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(700px 240px at -10% -20%,rgba(255,255,255,.22),transparent 60%),radial-gradient(400px 200px at 110% 110%,rgba(255,255,255,.08),transparent 55%);pointer-events:none;z-index:0}.cc-card>*{position:relative;z-index:1}.cc-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.cc-label,.cc-sublabel{font-size:10.5px;text-transform:uppercase;letter-spacing:.14em;font-weight:600;opacity:.7;font-family:var(--font-mono)}.cc-balance{font-family:var(--font-display, inherit);font-size:28px;font-weight:700;letter-spacing:-.015em;margin-top:6px;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(0,0,0,.25)}.cc-brand{width:58px;height:40px;display:flex;align-items:center;justify-content:flex-end}.cc-brand img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 1px 3px rgba(0,0,0,.45))}.cc-brand-fallback{width:40px;height:40px;border-radius:50%;background:#ffffff2e;border:1px solid rgba(255,255,255,.22);display:grid;place-items:center;font-weight:700;font-size:16px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.cc-chip{width:40px;height:30px;border-radius:6px;background:linear-gradient(135deg,#d4af37,#f2d675 45%,#a8842a);box-shadow:inset 0 0 0 1px #00000040,inset 0 1px #ffffff59;position:relative;margin:4px 0}.cc-chip-inner{position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:3px;background:linear-gradient(0deg,transparent 45%,rgba(0,0,0,.2) 45%,rgba(0,0,0,.2) 55%,transparent 55%),linear-gradient(90deg,transparent 45%,rgba(0,0,0,.2) 45%,rgba(0,0,0,.2) 55%,transparent 55%);opacity:.6}.cc-number{font-family:var(--font-mono);font-size:20px;letter-spacing:.22em;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.35);font-variant-numeric:tabular-nums}.cc-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.cc-name{font-size:14px;font-weight:600;letter-spacing:.06em;margin-top:3px;text-shadow:0 1px 2px rgba(0,0,0,.25)}.cc-type{font-size:13px;font-weight:500;margin-top:3px;text-transform:capitalize;opacity:.92}.cc-actions{position:absolute;top:14px;left:14px;display:flex;gap:6px;opacity:0;transform:translateY(-4px);transition:opacity .18s ease,transform .18s ease;z-index:2}.cc-card:hover .cc-actions,.cc-card:focus-within .cc-actions{opacity:1;transform:translateY(0)}.cc-btn{background:#ffffff24;border:1px solid rgba(255,255,255,.24);color:#fff;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:500;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background .16s ease}.cc-btn:hover{background:#ffffff42}.cc-btn.danger{color:#ffd0d0;border-color:#ff8c8c73}.cc-btn.danger:hover{background:#ff505047}@media (max-width: 720px){.cc-grid{grid-template-columns:1fr}.cc-balance{font-size:24px}.cc-number{font-size:17px}}.cf-summary{display:flex;gap:28px;padding:8px 4px 20px;border-bottom:1px solid var(--line);margin-bottom:18px}.cf-sum-label{display:flex;align-items:center;gap:6px;font-size:10.5px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:var(--ink-3);font-family:var(--font-mono);margin-bottom:6px}.cf-dot{display:inline-block;width:7px;height:7px;border-radius:50%}.cf-sum-val{font-size:20px;font-weight:600;font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.cf-chart-wrap,.sk-wrap{width:100%}.sk-wrap svg{display:block}.sk-hint{font-size:11.5px;margin-top:8px;text-align:right;font-family:var(--font-mono)}.filter-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;margin-bottom:var(--gap);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-md, 10px)}.filter-banner-label{font-size:11px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;color:var(--ink-3);font-family:var(--font-mono)}.filter-chip{font-size:12px;padding:4px 10px;border-radius:999px;background:var(--bg-sunken);border:1px solid var(--line);color:var(--ink);font-weight:500}.hold-spark{width:64px;height:22px;display:inline-block}.tweaks{position:fixed;right:18px;bottom:18px;z-index:40;width:300px;background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 10px 30px #00000014,0 2px 6px #0000000a;display:none;overflow:hidden}.tweaks.on{display:block}.tweaks h4{margin:0;padding:12px 14px;border-bottom:1px solid var(--line);font-size:12px;font-weight:500;display:flex;align-items:center;justify-content:space-between}.tweaks h4 span{font-family:var(--font-mono);color:var(--ink-3);font-size:11px;font-weight:500}.tweaks .group{padding:12px 14px;border-bottom:1px solid var(--line)}.tweaks .group:last-child{border-bottom:none}.tweaks .g-label{font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono);margin-bottom:8px}.swatch-row{display:flex;gap:6px}.sw{width:22px;height:22px;border-radius:4px;border:1px solid var(--line);cursor:pointer;position:relative}.sw.active:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:1.5px solid var(--ink);border-radius:6px}.tweaks select,.tweaks input[type=range]{width:100%;font-family:inherit;font-size:12px;background:var(--bg-sunken);border:1px solid var(--line);color:var(--ink);padding:5px 8px;border-radius:var(--radius)}.toggle-row{display:flex;gap:4px;background:var(--bg-sunken);border:1px solid var(--line);border-radius:var(--radius);padding:2px}.toggle-row button{flex:1;border:none;background:transparent;font-family:inherit;font-size:11.5px;color:var(--ink-3);padding:5px 6px;border-radius:4px;cursor:pointer}.toggle-row button.active{background:var(--bg-elev);color:var(--ink);box-shadow:0 1px #00000008}.tx-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gap);margin-bottom:var(--gap)}@media (max-width: 1100px){.tx-summary{grid-template-columns:repeat(2,1fr)}}.tx-stat{display:flex;align-items:center;gap:14px;padding:calc(var(--pad-sm) + 2px) var(--pad-sm);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg)}.tx-stat-badge{flex:0 0 auto;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;color:#fff}.tx-stat-badge.tone-blue{background:#3b82f6}.tx-stat-badge.tone-green{background:#2c6e49}.tx-stat-badge.tone-red{background:#ef5350}.tx-stat-badge.tone-amber{background:#f59e0b}.tx-stat-body{min-width:0}.tx-stat-value{font-family:var(--font-display);font-weight:500;font-size:20px;letter-spacing:-.015em;font-variant-numeric:tabular-nums}.tx-stat-label{margin-top:2px;color:var(--ink-3);font-size:11.5px}[data-typescale=inter] .tx-stat-value{font-family:Inter,sans-serif;font-weight:700}.tx-groups{display:flex;flex-direction:column;gap:var(--gap)}.tx-group{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden}.tx-group-head{display:flex;align-items:center;justify-content:space-between;padding:12px var(--pad-sm);background:color-mix(in oklab,var(--accent) 7%,var(--bg-elev));border-bottom:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}.tx-group-label{font-weight:500;letter-spacing:-.005em;color:var(--ink)}.tx-group-total{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink);font-weight:500}[data-typescale=inter] .tx-group-total{font-family:Inter,sans-serif;font-weight:600}.tx-group-body{display:flex;flex-direction:column}.tx-row{display:grid;grid-template-columns:32px minmax(0,2.1fr) minmax(0,1.2fr) minmax(120px,140px) 32px;align-items:center;gap:14px;padding:12px var(--pad-sm);border-bottom:1px solid var(--line);transition:background .12s ease}.tx-row:last-child{border-bottom:none}.tx-row:hover{background:var(--bg-sunken)}.tx-row-icon{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--line);background:var(--bg);color:var(--ink-2);border-radius:7px}.tx-row-main{min-width:0}.tx-row-name{font-weight:500;font-size:13.5px;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-typescale=inter] .tx-row-name{font-family:Inter,sans-serif;font-weight:600;font-size:14px}.tx-row-meta{margin-top:2px;font-size:11.5px;color:var(--ink-3);font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[data-typescale=inter] .tx-row-meta{font-family:Inter,sans-serif}.tx-row-cat{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink-2);white-space:nowrap}.tx-cat-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}.tx-row-amt{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500;white-space:nowrap}[data-typescale=inter] .tx-row-amt{font-family:Inter,sans-serif;font-weight:600;font-size:13.5px}.tx-row-edit{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:var(--ink-3);background:transparent;border:1px solid var(--line-2);border-radius:6px;cursor:pointer;transition:color .12s ease,border-color .12s ease,background .12s ease}.tx-row-edit:hover{color:var(--accent);border-color:color-mix(in oklab,var(--accent) 55%,var(--line-2));background:color-mix(in oklab,var(--accent) 8%,var(--bg-elev))}@media (max-width: 760px){.tx-row{grid-template-columns:32px minmax(0,1fr) 30px;grid-template-areas:"icon main edit" "icon cat amt";row-gap:4px}.tx-row-icon{grid-area:icon}.tx-row-main{grid-area:main}.tx-row-cat{grid-area:cat}.tx-row-amt{grid-area:amt;text-align:right}.tx-row-edit{grid-area:edit}}.tx-filter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 16px}@media (max-width: 980px){.tx-filter-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){.tx-filter-grid{grid-template-columns:1fr}}.tx-field{display:flex;flex-direction:column;gap:6px;min-width:0}.tx-field>span{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3)}.tx-field input,.tx-field select{height:34px;padding:0 10px;font-family:inherit;font-size:13px;color:var(--ink);background:var(--bg);border:1px solid var(--line-2);border-radius:var(--radius);outline:none;transition:border-color .12s ease;font-variant-numeric:tabular-nums}.tx-field input:focus,.tx-field select:focus{border-color:var(--ink)}.tx-filter-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px dashed var(--line)}.tx-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 12px;padding:12px var(--pad-sm);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);margin:0 0 var(--gap);position:sticky;top:0;z-index:4}.kpis:has(+.tx-toolbar),.kpis:has(+.filter-banner){margin-bottom:var(--gap)}.tx-toolbar .tx-field{flex:1 1 150px;min-width:130px}.tx-toolbar .tx-field:first-child{flex:2 1 220px}.tx-toolbar .btn{height:34px}.tx-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f111573;display:flex;align-items:center;justify-content:center;z-index:120;padding:24px;animation:tx-fade .14s ease}@keyframes tx-fade{0%{opacity:0}to{opacity:1}}.tx-modal{width:min(640px,100%);background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 20px 60px #00000026;display:flex;flex-direction:column;max-height:calc(100vh - 48px);overflow:hidden}.tx-modal-head{display:flex;align-items:flex-start;justify-content:space-between;padding:18px var(--pad-sm) 14px;border-bottom:1px solid var(--line)}.tx-modal-eyebrow{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4)}.tx-modal-title{margin:4px 0 0;font-family:var(--font-display);font-weight:500;font-size:20px;letter-spacing:-.015em}[data-typescale=inter] .tx-modal-title{font-family:Inter,sans-serif;font-weight:700}.tx-modal-body{padding:var(--pad-sm);overflow:auto}.tx-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px var(--pad-sm);border-top:1px solid var(--line);background:var(--bg-sunken)}.btn:disabled{opacity:.5;cursor:not-allowed}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:2px solid var(--bg)}::-webkit-scrollbar-track{background:transparent}.hstack{display:flex;align-items:center;gap:10px}.vstack{display:flex;flex-direction:column;gap:4px}.muted{color:var(--ink-3)}.divider{height:1px;background:var(--line);margin:16px 0}.rule-v{width:1px;background:var(--line);align-self:stretch}.cross-tip{position:absolute;background:var(--ink);color:var(--bg);font-family:var(--font-mono);font-size:11px;padding:7px 9px;border-radius:5px;pointer-events:none;transform:translate(-50%,-120%);white-space:nowrap;display:none}.cross-tip b{font-family:var(--font-display);font-size:13px;font-weight:500}.donut-wrap{display:grid;grid-template-columns:140px 1fr;gap:18px;align-items:center}[data-typescale=inter]{--ink-3: #6B7280}[data-typescale=inter][data-theme=dark]{--ink-3: #9CA3AF}[data-typescale=inter] body{font-feature-settings:"cv11","ss01","tnum";letter-spacing:-.003em}[data-typescale=inter] h1.page-title{font-family:Inter,sans-serif;font-weight:700;font-size:30px;letter-spacing:-.02em;line-height:1.15}[data-typescale=inter] .eyebrow{font-family:Inter,sans-serif;font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase}[data-typescale=inter] .crumb{font-family:Inter,sans-serif;font-weight:500;font-size:12px;letter-spacing:0;text-transform:none}[data-typescale=inter] .kpi .label{font-family:Inter,sans-serif;font-weight:400;font-size:13px;color:#6b7280;letter-spacing:0;text-transform:none}[data-typescale=inter][data-theme=dark] .kpi .label{color:#9ca3af}[data-typescale=inter] .kpi .value{font-family:Inter,sans-serif;font-weight:700;font-size:28px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}[data-typescale=inter] .kpi .delta{font-family:Inter,sans-serif;font-size:12px;font-weight:500;letter-spacing:0}[data-typescale=inter] .pill{font-family:Inter,sans-serif;font-size:11px;font-weight:600;letter-spacing:.02em}[data-typescale=inter] .chart-legend{font-family:Inter,sans-serif;font-size:12px;font-weight:500;letter-spacing:0}[data-typescale=inter] .tbl thead th{font-family:Inter,sans-serif;font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#6b7280}[data-typescale=inter][data-theme=dark] .tbl thead th{color:#9ca3af}[data-typescale=inter] .tbl tbody td{font-family:Inter,sans-serif;font-weight:400;font-size:14px;letter-spacing:0}[data-typescale=inter] .cell-merchant .m-name{font-family:Inter,sans-serif;font-weight:500;font-size:14px}[data-typescale=inter] .cell-merchant .m-cat{font-family:Inter,sans-serif;font-weight:400;font-size:12.5px;letter-spacing:0;color:#6b7280}[data-typescale=inter] .num{font-family:Inter,sans-serif;font-variant-numeric:tabular-nums;font-weight:500;font-size:14px}[data-typescale=inter] .tag,[data-typescale=inter] .badge,[data-typescale=inter] .status{font-family:Inter,sans-serif;font-weight:600;font-size:11px;letter-spacing:.02em;text-transform:none}[data-typescale=inter] .card-head h3{font-family:Inter,sans-serif;font-weight:700;font-size:14px;letter-spacing:-.005em}[data-typescale=inter] .card-head .muted{font-family:Inter,sans-serif;font-weight:400;font-size:12.5px;color:#6b7280}[data-typescale=inter] .acct .bank{font-family:Inter,sans-serif;font-size:13px;font-weight:500;letter-spacing:0;color:#6b7280}[data-typescale=inter] .acct .acct-bal{font-family:Inter,sans-serif;font-weight:700;font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}[data-typescale=inter] .acct .acct-name{font-family:Inter,sans-serif;font-size:13px;color:#6b7280}[data-typescale=inter] .alloc-name{font-family:Inter,sans-serif;font-weight:500;font-size:14px}[data-typescale=inter] .alloc-val{font-family:Inter,sans-serif;font-weight:500;font-size:13px;font-variant-numeric:tabular-nums}[data-typescale=inter] .sidebar-footer .name{font-family:Inter,sans-serif;font-weight:600;font-size:13px}[data-typescale=inter] .sidebar-footer .email{font-family:Inter,sans-serif;font-weight:400;font-size:12px;color:#6b7280}.skeleton{border-radius:var(--radius-lg);background:linear-gradient(100deg,var(--bg-sunken) 40%,var(--bg-elev) 50%,var(--bg-sunken) 60%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-80% 0}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none;background:var(--bg-sunken)}}.landing-root{--ink: #0B1410;--ink-2: #11201A;--ink-3: #1A2E25;--cream: #F4F3EE;--cream-2: #E9E7E0;--paper: #FAFAF7;--saffron: #2C6E49;--saffron-2: #1F5236;--lime: #D9A441;--lime-2: #C4932F;--line: rgba(11, 20, 16, .1);--line-2: rgba(11, 20, 16, .06);--muted: rgba(11, 20, 16, .62);--muted-2: rgba(11, 20, 16, .42);--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", -apple-system, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;font-family:var(--font-body);background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern","liga","ss01";overflow-x:hidden;min-height:100vh;position:relative}.landing-root *,.landing-root *:before,.landing-root *:after{box-sizing:border-box}.landing-root ::selection{background:var(--saffron);color:#fafaf7}.landing-root .display{font-family:var(--font-display);font-weight:500;letter-spacing:-.018em;line-height:1.02;font-feature-settings:"kern","liga","onum"}.landing-root .serif{font-family:var(--font-display);font-style:italic;font-weight:400;letter-spacing:-.008em}.landing-root .mono{font-family:var(--font-mono);letter-spacing:0}.landing-root .eyebrow{font-family:var(--font-mono);text-transform:uppercase;font-size:11px;letter-spacing:.18em;font-weight:500}.landing-root .grid-bg{background-image:linear-gradient(to right,var(--line) 1px,transparent 1px),linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:64px 64px}@keyframes lp-pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.landing-root .pulse-dot{animation:lp-pulse-dot 2s ease-in-out infinite}.landing-root .cta-primary{background:var(--saffron);color:#fafaf7;border:1px solid rgba(11,20,16,.92);box-shadow:0 1px 2px #0b141014,0 8px 24px -10px #2c6e4973;transition:transform .16s ease,box-shadow .16s ease,background .16s ease;cursor:pointer}.landing-root .cta-primary:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0b14101a,0 14px 32px -10px #2c6e4980}.landing-root .cta-primary:active{transform:translateY(0);box-shadow:0 1px 2px #0b141014}.landing-root .cta-light{background:var(--cream);color:var(--ink);border:1px solid rgba(11,20,16,.18);box-shadow:0 1px 2px #0b14100a;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;cursor:pointer}.landing-root .cta-light:hover{transform:translateY(-1px);border-color:#0b141066;box-shadow:0 2px 6px #0b141014}.landing-root .card-dark{background:var(--paper);color:var(--ink);border:1px solid rgba(11,20,16,.12);border-radius:10px}.landing-root .card-cream{background:var(--cream);color:var(--ink);border:1px solid rgba(11,20,16,.14);border-radius:10px}.landing-root .rule{border-top:1px solid var(--line)}.landing-root .no-bar::-webkit-scrollbar{display:none}.landing-root .arrow-mark:after{content:"↗";margin-left:.4em;display:inline-block}.landing-root .container{max-width:1280px;margin:0 auto;padding:0 32px}@media (max-width: 720px){.landing-root .container{padding:0 20px}}@keyframes lp-phone-float-a{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-14px) rotate(-2deg)}}@keyframes lp-phone-float-b{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-22px) rotate(0)}}@keyframes lp-orbit-cw{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes lp-orbit-ccw{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes lp-drift-in-l{0%{opacity:0;transform:translate(-30px,12px) rotate(-12deg)}to{opacity:1;transform:translate(0) rotate(-6deg)}}@keyframes lp-drift-in-r{0%{opacity:0;transform:translate(30px,12px) rotate(12deg)}to{opacity:1;transform:translate(0) rotate(5deg)}}@keyframes lp-drift-in-b{0%{opacity:0;transform:translateY(20px) rotate(-12deg)}to{opacity:1;transform:translateY(0) rotate(-4deg)}}@keyframes lp-spark-rise{0%{transform:translateY(0) scale(1);opacity:0}15%{opacity:1}to{transform:translateY(-220px) scale(.6);opacity:0}}@keyframes lp-count-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes lp-line-draw{0%{stroke-dashoffset:360}to{stroke-dashoffset:0}}@keyframes lp-alert-pop{0%{transform:scale(.92) translateY(8px);opacity:0}60%{transform:scale(1.02) translateY(-2px);opacity:1}to{transform:scale(1) translateY(0)}}@keyframes lp-shield-pulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 0 var(--lime))}50%{transform:scale(1.04);filter:drop-shadow(0 0 12px var(--lime))}}@keyframes lp-lock-tick{0%{stroke-dashoffset:30}to{stroke-dashoffset:0}}@keyframes lp-phone-buzz{0%,90%,to{transform:rotate(0)}92%{transform:rotate(-3deg)}94%{transform:rotate(3deg)}96%{transform:rotate(-2deg)}98%{transform:rotate(2deg)}}@keyframes lp-blocked-x{0%{transform:scale(0) rotate(-90deg);opacity:0}60%{transform:scale(1.2) rotate(0);opacity:1}to{transform:scale(1) rotate(0);opacity:1}}@media (max-width: 880px){.landing-root .nav-links{display:none!important}.landing-root .footer-grid{grid-template-columns:1fr 1fr!important}}@media (max-width: 980px){.landing-root .hero-grid{grid-template-columns:1fr!important}.landing-root .hero-grid>div:last-child{min-height:600px!important}.landing-root .feat-grid,.landing-root .how-grid{grid-template-columns:1fr!important}.landing-root .how-grid>div{border-right:none!important;border-bottom:1px solid rgba(11,20,16,.1)}.landing-root .how-grid>div:last-child{border-bottom:none!important}}@media (max-width: 760px){.landing-root .price-grid{grid-template-columns:1fr!important}}@media (max-width: 560px){.landing-root .footer-grid{grid-template-columns:1fr!important}}
