@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{color-scheme:dark;--bg:#111113;--panel:#19191d;--panel-raised:#1e1e23;--line:#2a2a30;--text:#f4f3f7;--muted:#96949f;--subtle:#6f6e78;--purple:#a78bfa;--purple-bright:#b8a2ff;--mint:#71e0bd;--coral:#ff8f87;--gold:#e9c778;--font:'DM Sans',sans-serif;--display:'Manrope',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.45 var(--font);-webkit-font-smoothing:antialiased}button,a{font:inherit}button{color:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:218px minmax(0,1fr)}.sidebar{position:fixed;inset:0 auto 0 0;width:218px;padding:27px 15px 16px;border-right:1px solid var(--line);background:#141416;display:flex;flex-direction:column;z-index:5}.brand,.mobile-brand{display:flex;align-items:center;gap:11px;color:#f7f6fa;text-decoration:none;font:800 17px var(--display);letter-spacing:.16em}.brand{padding:0 12px}.brand-mark{display:flex;align-items:flex-end;gap:2px;width:20px;height:19px}.brand-mark i{width:5px;border-radius:4px;background:var(--purple);display:block}.brand-mark i:nth-child(1){height:8px;background:var(--mint)}.brand-mark i:nth-child(2){height:14px}.brand-mark i:nth-child(3){height:19px;background:#c6b3ff}.main-nav{display:grid;gap:6px;margin-top:54px}.nav-link{display:flex;align-items:center;gap:13px;height:42px;padding:0 12px;color:#92909b;text-decoration:none;border-radius:9px;font-weight:500;transition:.2s}.nav-link:hover{color:#f6f4fa;background:#202025}.nav-link.active{color:#e9e3ff;background:#292333}.nav-link.active:before{content:"";position:absolute;left:0;width:2px;height:24px;border-radius:0 3px 3px 0;background:var(--purple)}.nav-icon{width:18px;text-align:center;font-size:18px;line-height:1;color:#a5a2ad}.nav-link.active .nav-icon{color:var(--purple)}.sidebar-bottom{margin-top:auto}.help-card{margin:0 3px 18px;padding:14px 13px;background:linear-gradient(145deg,#211e2a,#1b1a1e);border:1px solid #34303c;border-radius:11px}.help-spark{color:var(--purple);font-size:16px;display:block;margin-bottom:8px}.help-card strong{font-size:12px}.help-card p{margin:5px 0 10px;color:#a7a3ad;font-size:11px;line-height:1.45}.help-card a,.goal-footer a{font-size:10px;color:#c8b9ff;text-decoration:none}.help-card a span,.goal-footer a span,.view-all span{margin-left:4px}.sidebar-user{width:100%;display:flex;align-items:center;gap:9px;padding:12px 4px 0;background:none;border:0;border-top:1px solid var(--line);text-align:left;cursor:pointer}.avatar{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:#503f54;color:#f5d6dc;font-size:10px;font-weight:700;letter-spacing:.03em}.avatar-small{width:30px;height:30px}.user-copy{display:grid;gap:2px;min-width:0}.user-copy b{font-size:11px;font-weight:600}.user-copy small{color:var(--muted);font-size:9px}.more{margin-left:auto;color:#a5a2ad;font-size:18px;letter-spacing:2px}.main-content{grid-column:2;max-width:1600px;width:100%;margin:0 auto;padding:0 37px 16px}.topbar{height:65px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #242428}.breadcrumb{font-size:11px;color:#85838d}.breadcrumb span{padding:0 8px;color:#57565f}.breadcrumb b{color:#d5d2dc;font-weight:500}.top-actions{display:flex;align-items:center;gap:18px}.icon-button{position:relative;border:0;background:transparent;color:#aaa7b1;padding:5px;display:grid;place-items:center;cursor:pointer}.icon-button svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.notification i{position:absolute;right:3px;top:3px;width:5px;height:5px;border-radius:50%;background:var(--purple)}.profile-button{display:flex;align-items:center;gap:9px;border:0;background:none;color:#d8d6df;font-size:11px;cursor:pointer}.profile-button .avatar{width:28px;height:28px}.chevron{font-size:16px;color:#8c8993}.mobile-brand{display:none}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;padding:24px 0 21px}.eyebrow,.panel-kicker{font-size:9px;letter-spacing:.13em;color:#9a97a2;font-weight:600}.eyebrow{display:flex;align-items:center;gap:7px}.live-dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:var(--mint);box-shadow:0 0 9px #71e0bd55}.page-heading h1{font:700 25px/1.25 var(--display);letter-spacing:-.045em;margin:7px 0 4px}.page-heading h1 span{color:#c5b2ff}.page-heading p{color:#9b99a3;font-size:11px;margin:0}.heading-controls{display:flex;gap:7px;align-items:center}.period-select,.round-arrow{height:34px;border:1px solid #323138;background:#1a1a1e;border-radius:7px;color:#d6d4dc;cursor:pointer}.period-select{padding:0 10px;display:flex;align-items:center;gap:9px;font-size:10px}.calendar-icon{font-size:13px;color:#b7a4fb}.period-select .chevron{font-size:13px;margin-left:3px}.round-arrow{width:34px;font-size:23px;line-height:1;color:#b9b6c0}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px}.metric-card{padding:14px 15px 12px;min-height:115px;position:relative;overflow:hidden;animation:rise .55s both}.metric-card:nth-child(2){animation-delay:.06s}.metric-card:nth-child(3){animation-delay:.12s}.metric-card:nth-child(4){animation-delay:.18s}.metric-top{display:flex;justify-content:space-between;align-items:center;color:#aaa8b2;font-size:10px}.metric-glyph{width:21px;height:21px;display:grid;place-items:center;border-radius:6px;font-size:12px}.purple-glyph{color:var(--purple);background:#2e263e}.mint-glyph{color:var(--mint);background:#1d302d}.coral-glyph{color:var(--coral);background:#382725}.gold-glyph{color:var(--gold);background:#332e20}.metric-value{font:700 24px/1.2 var(--display);letter-spacing:-.05em;margin-top:9px;font-variant-numeric:tabular-nums}.metric-footer{display:flex;align-items:center;gap:5px;margin-top:7px;color:#83818b;font-size:9px}.trend{font-size:9px;font-weight:600}.trend.positive{color:var(--mint)}.trend.negative{color:var(--coral)}.sparkline{position:absolute;width:78px;height:27px;right:14px;bottom:13px;overflow:visible}.sparkline path{fill:none;stroke:var(--purple);stroke-width:1.7;stroke-linecap:round}.sparkline.mint-line path{stroke:var(--mint)}.sparkline.coral-line path{stroke:var(--coral)}.sparkline.gold-line path{stroke:var(--gold)}.analytics-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,.92fr);gap:12px;margin-top:13px}.panel{padding:16px}.flow-panel,.spending-panel{min-height:294px}.panel-heading{display:flex;justify-content:space-between;align-items:flex-start}.panel-kicker{font-size:8px;color:#898792}.panel-heading h2{font:600 14px var(--display);letter-spacing:-.025em;margin:3px 0 0}.chart-controls{display:flex;align-items:center;gap:8px}.segmented{display:flex;background:#222126;border:1px solid #34323a;border-radius:7px;padding:2px}.segment{border:0;background:transparent;border-radius:5px;padding:5px 9px;color:#92909a;font-size:9px;cursor:pointer;transition:.2s}.segment.selected{background:#37303f;color:#e9ddff;box-shadow:0 1px 2px #0005}.chart-menu{font-size:19px;letter-spacing:2px;line-height:1}.chart-summary{display:flex;align-items:baseline;gap:9px;margin-top:16px}.chart-summary strong{font:700 19px var(--display);letter-spacing:-.04em}.chart-summary span{color:#8d8a95;font-size:9px}.chart-summary i{color:#54515b;padding:0 3px;font-style:normal}.chart-summary b{color:#ccc8d2;font-weight:600}.flow-chart-wrap{height:151px;display:flex;margin-top:4px}.chart-ylabels{width:28px;padding:3px 0 23px;display:flex;flex-direction:column;justify-content:space-between;color:#777580;font-size:8px}.flow-chart{position:relative;flex:1;min-width:0}.chart-grid{position:absolute;inset:5px 0 23px;display:flex;flex-direction:column;justify-content:space-between}.chart-grid i{width:100%;height:1px;background:#2c2b31}.flow-svg{position:absolute;inset:5px 0 23px;width:100%;height:calc(100% - 28px);overflow:visible;animation:draw-in .95s both}.area{stroke:none}.income-area{fill:url(#incomeFill)}.expense-area{fill:url(#expenseFill)}.line{fill:none;stroke-width:2.2;vector-effect:non-scaling-stroke}.income-line{stroke:var(--purple)}.expense-line{stroke:var(--mint)}.chart-points circle{fill:#151419;stroke-width:2.5;vector-effect:non-scaling-stroke}.chart-points circle:first-child{stroke:var(--purple)}.chart-points circle:last-child{stroke:var(--mint)}.chart-xlabels{position:absolute;bottom:2px;left:0;right:0;display:flex;justify-content:space-between;color:#777580;font-size:8px}.chart-hotspots{position:absolute;inset:5px 0 23px;display:grid;grid-template-columns:repeat(6,1fr)}.chart-hotspots button{background:transparent;border:0;cursor:crosshair;position:relative}.chart-hotspots button:focus-visible{outline:1px solid var(--purple);outline-offset:-3px}.chart-tooltip{position:absolute;display:none;z-index:3;min-width:112px;padding:8px 10px;background:#29272e;border:1px solid #44414c;border-radius:7px;box-shadow:0 8px 22px #0006;font-size:9px;pointer-events:none}.chart-tooltip.visible{display:block}.chart-tooltip b{display:block;margin-bottom:4px;color:#f1eff5}.chart-tooltip span{display:flex;justify-content:space-between;gap:13px;color:#aaa7b0}.chart-tooltip em{font-style:normal;color:var(--purple)}.chart-tooltip small{color:var(--mint)}.chart-legend{display:flex;align-items:center;gap:14px;color:#a4a1ac;font-size:9px;margin-top:1px}.chart-legend>span{display:flex;align-items:center;gap:6px}.legend-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.income-dot{background:var(--purple)}.expense-dot{background:var(--mint)}.chart-legend .chart-note{margin-left:auto;color:#777580;font-size:8px}.chart-note .live-dot{width:5px;height:5px}.spending-panel{padding-bottom:12px}.donut-wrap{height:143px;position:relative;display:flex;justify-content:center;align-items:center;margin-top:2px}.donut{width:132px;height:132px;transform:rotate(-90deg);overflow:visible;animation:donut-in .85s ease-out both}.donut-track,.donut-segment{fill:none;stroke-width:13}.donut-track{stroke:#2b2a30}.donut-segment{stroke-linecap:round;transition:stroke-dasharray .5s}.segment-housing{stroke:#a78bfa;stroke-dasharray:177 434;stroke-dashoffset:0}.segment-food{stroke:#71e0bd;stroke-dasharray:94 434;stroke-dashoffset:-182}.segment-lifestyle{stroke:#e9c778;stroke-dasharray:67 434;stroke-dashoffset:-281}.segment-transport{stroke:#f49c88;stroke-dasharray:48 434;stroke-dashoffset:-354}.segment-other{stroke:#77727e;stroke-dasharray:31 434;stroke-dashoffset:-409}.donut-center{position:absolute;display:grid;text-align:center;gap:1px}.donut-center span,.donut-center small{color:#92909a;font-size:8px}.donut-center strong{font:700 18px var(--display);letter-spacing:-.04em}.category-list{display:grid;gap:7px}.category-row{display:grid;grid-template-columns:8px 1fr auto 29px;align-items:center;gap:7px;font-size:9px;color:#c5c2cc}.category-row b{font-size:9px;font-weight:600;color:#e8e6ed}.category-row small{text-align:right;color:#82808a;font-size:8px}.category-color{width:6px;height:6px;border-radius:50%}.c-housing{background:#a78bfa}.c-food{background:#71e0bd}.c-lifestyle{background:#e9c778}.c-transport{background:#f49c88}.c-other{background:#77727e}.bottom-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,.92fr);gap:12px;margin-top:13px}.transactions-panel,.goals-panel{min-height:238px}.transaction-heading{align-items:center}.transaction-tools{display:flex;align-items:center;gap:12px}.filter-tabs{display:flex;gap:2px}.filter-tab{background:transparent;border:0;padding:6px 7px;border-radius:5px;color:#898791;font-size:9px;cursor:pointer}.filter-tab.active{background:#2b2831;color:#e6dcff}.filter-tab span{padding-left:3px;color:#a493d2}.view-all{font-size:9px;color:#b7a4fb;text-decoration:none;white-space:nowrap}.transaction-list{margin-top:10px}.transaction-row{display:grid;grid-template-columns:minmax(145px,1.35fr) minmax(92px,.8fr) minmax(83px,.7fr) auto;align-items:center;gap:8px;min-height:43px;border-top:1px solid #29282e;animation:fade-in .3s both}.transaction-main{display:flex;align-items:center;gap:9px;min-width:0}.merchant-icon{width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}.merchant-name{font-size:10px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.merchant-detail{display:block;color:#7e7c86;font-size:8px;margin-top:1px}.transaction-category,.transaction-date{color:#96939e;font-size:9px}.transaction-amount{text-align:right;font:600 10px var(--display);font-variant-numeric:tabular-nums;white-space:nowrap}.transaction-amount.income{color:var(--mint)}.empty-state{padding:24px 10px;text-align:center;color:#9895a0;font-size:10px}.goals-panel{padding-bottom:12px}.add-goal{width:25px;height:25px;border:1px solid #3d3947;background:#26222e;color:#c8b9ff;border-radius:7px;font-size:18px;line-height:1;cursor:pointer}.goal-item{display:flex;align-items:center;gap:10px;margin-top:15px}.goal-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;font-size:15px;flex:none}.goal-home{background:#2c2539;color:#bba8ff}.goal-travel{background:#20332f;color:var(--mint)}.goal-info{flex:1;min-width:0}.goal-title{display:flex;justify-content:space-between;align-items:center;font-size:9px}.goal-title b{font-weight:600}.goal-title span{color:#b7a4fb;font-size:8px}.progress-track{height:4px;background:#302d36;border-radius:5px;margin:6px 0 5px;overflow:hidden}.progress-track i{height:100%;display:block;border-radius:5px;background:var(--purple);animation:progress-in .8s both}.mint-progress i{background:var(--mint)}.goal-info small{color:#85828d;font-size:8px}.goal-info small b{color:#c8c5ce;font-weight:500}.goal-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #2b2a30;margin-top:13px;padding-top:10px;font-size:8px}.goal-footer>span{display:flex;align-items:center;gap:5px;color:#aaa7b1}.goal-footer .live-dot{width:5px;height:5px}.goal-footer a{font-size:8px}.footer-note{display:flex;justify-content:space-between;color:#66646e;font-size:8px;padding:11px 2px 0}.footer-note i{color:#a796d4;font-style:normal;margin-left:4px}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,12px);padding:10px 15px;background:#302d36;color:#e8e4ef;border:1px solid #48434f;border-radius:8px;box-shadow:0 8px 28px #0008;font-size:11px;opacity:0;pointer-events:none;transition:.25s;z-index:10}.toast.show{opacity:1;transform:translate(-50%,0)}
@keyframes rise{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes draw-in{from{opacity:0;clip-path:inset(0 100% 0 0)}to{opacity:1;clip-path:inset(0 0 0 0)}}@keyframes donut-in{from{opacity:0;transform:rotate(-90deg) scale(.88)}to{opacity:1;transform:rotate(-90deg) scale(1)}}@keyframes progress-in{from{width:0}to{}}
@media(min-width:1500px){.main-content{padding-left:48px;padding-right:48px}.metric-card{min-height:123px;padding:16px 18px}.metric-value{font-size:27px}.flow-panel,.spending-panel{min-height:310px}.flow-chart-wrap{height:165px}.bottom-grid{margin-top:14px}.transactions-panel,.goals-panel{min-height:246px}}
@media(max-width:1100px){.main-content{padding-left:24px;padding-right:24px}.app-shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{width:190px}.metric-grid{gap:9px}.metric-card{padding:13px 11px}.metric-value{font-size:21px}.sparkline{width:59px}.analytics-grid,.bottom-grid{grid-template-columns:minmax(0,1.55fr) minmax(240px,.95fr)}.panel{padding:14px}.transaction-tools{gap:6px}.filter-tab{padding:6px 5px}}
@media(max-width:780px){.app-shell{display:block}.sidebar{display:none}.main-content{padding:0 18px 18px}.topbar{height:57px}.mobile-brand{display:flex;font-size:14px}.breadcrumb{display:none}.top-actions{gap:10px}.profile-button>span:not(.avatar):not(.chevron){display:none}.page-heading{padding:22px 0 17px}.page-heading h1{font-size:23px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric-card{min-height:108px}.analytics-grid,.bottom-grid{grid-template-columns:1fr;gap:10px;margin-top:10px}.flow-panel{min-height:282px}.spending-panel{min-height:290px}.donut-wrap{height:144px}.category-list{max-width:390px;margin:0 auto}.transactions-panel{min-height:0}.goals-panel{min-height:225px}.transaction-row{grid-template-columns:minmax(130px,1.2fr) minmax(77px,.75fr) auto;gap:6px}.transaction-category{display:none}.transaction-tools{gap:7px}.chart-note{display:none!important}.footer-note{padding-bottom:4px}}
@media(max-width:430px){.main-content{padding-left:13px;padding-right:13px}.top-actions{gap:7px}.page-heading{align-items:flex-start;gap:10px}.page-heading h1{font-size:21px}.page-heading p{font-size:10px}.heading-controls{padding-top:18px}.period-select{gap:5px;padding:0 7px;font-size:9px}.round-arrow{width:29px;height:32px}.metric-value{font-size:20px}.metric-card{padding:12px 10px}.metric-footer{font-size:8px;gap:4px}.sparkline{width:47px;right:8px;opacity:.75}.panel{padding:13px 11px}.panel-heading h2{font-size:13px}.chart-controls{gap:3px}.segment{padding:5px 7px;font-size:8px}.chart-menu{display:none}.transaction-heading{align-items:flex-start;gap:5px;flex-direction:column}.transaction-tools{width:100%;justify-content:space-between}.transaction-row{grid-template-columns:minmax(116px,1fr) auto auto}.merchant-name{font-size:9px}.transaction-date{font-size:8px}.transaction-amount{font-size:9px}.filter-tab{font-size:8px}.view-all{font-size:8px}.footer-note{font-size:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
