@import "https://fonts.googleapis.com/css2?family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500;600&display=swap";.app-shell-v2{background:var(--bg);min-height:100vh;color:var(--t1);padding-left:72px;transition:padding-left .32s cubic-bezier(.2,.8,.2,1);position:relative;overflow-x:hidden}.app-shell-v2:has(.sidebar-v2.expanded){padding-left:248px}.app-shell-v2 .main-v2{width:100%;min-width:0;padding:28px 28px 60px}.sidebar-v2{z-index:50;background:var(--sidebar-bg);border-right:1px solid var(--border-soft);width:72px;transition:width .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s,background .32s;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar-v2.expanded{background:var(--sidebar-bg-expanded);width:248px;box-shadow:6px 0 40px #0000008c,1px 0 #aadd0014}[data-theme=day] .sidebar-v2.expanded{box-shadow:6px 0 36px #3c32142e,1px 0 #6b8a002e}.sidebar-v2 .sidebar-inner{flex-direction:column;gap:22px;width:248px;height:100%;padding:24px 16px 20px;display:flex;position:relative}.sidebar-v2 .brand{color:var(--t1);align-items:center;gap:6px;margin-bottom:4px;padding:4px 10px;text-decoration:none;display:flex}.sidebar-v2 .brand-mark{width:26px;height:26px;color:var(--brand-mark,var(--acid));flex-shrink:0;display:block}.sidebar-v2 .brand-name{font-family:var(--font-display);letter-spacing:-.02em;color:var(--t1);opacity:0;font-size:18px;font-weight:600;line-height:1;transition:opacity .24s,transform .24s;transform:translate(-6px,3%)}.sidebar-v2.expanded .brand-name{opacity:1;transition-delay:.1s;transform:translateY(3%)}.sidebar-v2 .nav{flex-direction:column;gap:2px;display:flex}.sidebar-v2 .nav-item{color:var(--t2);white-space:nowrap;border-radius:10px;align-items:center;gap:14px;padding:10px 12px;font-size:13px;font-weight:500;text-decoration:none;transition:background .18s,color .18s;display:flex;position:relative}.sidebar-v2 .nav-item:hover{color:var(--t1);background:#aadd000f}.sidebar-v2 .nav-item{width:44px;transition:width .32s cubic-bezier(.2,.8,.2,1),background .18s,color .18s}.sidebar-v2.expanded .nav-item{width:auto}.sidebar-v2 .nav-item.active{color:var(--acid-bright);background:#aadd001f}.sidebar-v2 .nav-item.active:before{content:"";background:var(--acid);width:3px;height:18px;box-shadow:0 0 8px var(--acid);border-radius:0 2px 2px 0;position:absolute;top:50%;left:-16px;transform:translateY(-50%)}[data-theme=day] .sidebar-v2 .nav-item.active{color:var(--acid-text);background:#7a9e002e;font-weight:600}[data-theme=day] .sidebar-v2 .nav-item:hover{color:var(--t1);background:#7a9e001a}[data-theme=day] .sidebar-v2 .nav-item.active:before{background:var(--acid-dim);box-shadow:0 0 4px #7a9e0073}.sidebar-v2 .nav-icon{stroke-width:2px;flex-shrink:0;width:18px;height:18px}.sidebar-v2 .nav-label{opacity:0;transition:opacity .24s,transform .24s;transform:translate(-6px)}.sidebar-v2.expanded .nav-label{opacity:1;transition-delay:.12s;transform:translate(0)}.sidebar-v2 .account{border:1px solid var(--border-soft);cursor:pointer;text-align:left;background:#ffffff05;border-radius:12px;align-items:center;gap:12px;width:52px;margin-top:auto;padding:8px 10px;font-family:inherit;transition:width .32s cubic-bezier(.2,.8,.2,1),background .18s,border-color .18s;display:flex}.sidebar-v2.expanded .account{width:100%}.sidebar-v2 .account:hover{background:#aadd000d;border-color:#aadd0026}.sidebar-v2 .avatar{background:linear-gradient(135deg, var(--acid), var(--acid-dim));color:#0d100b;width:34px;height:34px;font-family:var(--font-display);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.sidebar-v2 .account-meta{opacity:0;flex-direction:column;min-width:0;transition:opacity .24s,transform .24s;display:flex;transform:translate(-6px)}.sidebar-v2.expanded .account-meta{opacity:1;transition-delay:.1s;transform:translate(0)}.sidebar-v2 .account-name{color:var(--t1);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:12.5px;font-weight:500;overflow:hidden}.sidebar-v2 .account-email{color:var(--t3);white-space:nowrap;text-overflow:ellipsis;max-width:160px;margin-top:1px;font-size:10.5px;overflow:hidden}.dashboard-v2{flex-direction:column;gap:14px;max-width:1280px;margin:0 auto;display:flex}.dashboard-v2 .greeting{justify-content:space-between;align-items:flex-end;margin-bottom:6px;display:flex}.dashboard-v2 .greeting h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--t1);margin:0;font-size:22px;font-weight:500;line-height:1.1}.dashboard-v2 .greeting .subtitle{color:var(--t2);margin:4px 0 0;font-size:12.5px}.dashboard-v2 .greeting .date{color:var(--t3);font-size:11px;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase}.dashboard-v2 .hero{grid-template-columns:minmax(0,1.5fr) minmax(300px,1fr);align-items:stretch;gap:14px;display:grid}.stacks-hero{background:var(--bg-card);border:1px solid #aadd0038;border-radius:22px;flex-direction:column;min-height:560px;padding:36px 38px 30px;display:flex;position:relative;overflow:hidden}.stacks-hero:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(circle at 20% 28%,#aadd0038 0%,#0000 38%),radial-gradient(circle at 78% 18%,#bbee0029 0%,#0000 42%),radial-gradient(circle at 50% 82%,#aadd0021 0%,#0000 48%),radial-gradient(circle at 90% 92%,#ff6f611a 0%,#0000 38%);animation:32s linear infinite meshOrbit;position:absolute;inset:-20%}.stacks-hero:after{content:"";opacity:.04;mix-blend-mode:overlay;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/></svg>");background-size:240px;position:absolute;inset:0}@keyframes meshOrbit{to{transform:rotate(360deg)}}.stacks-hero>*{z-index:1;position:relative}.stacks-hero .stacks-top{justify-content:space-between;align-items:center;gap:16px;display:flex}.stacks-hero .eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--acid-bright);align-items:center;gap:10px;font-size:10px;font-weight:500;display:inline-flex}.stacks-hero .stacks-count{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t3);white-space:nowrap;font-size:10px}.stacks-hero .stacks-count strong{color:var(--peach);font-weight:500}.stacks-hero .stack-icon{width:16px;height:16px;color:var(--acid-bright);flex-shrink:0;display:block}.stacks-hero .stacks-head{flex-wrap:wrap;align-items:baseline;gap:16px;margin-top:18px;display:flex}.stacks-hero .stacks-amount{font-family:var(--font-display);letter-spacing:-.04em;color:var(--t1);font-variant-numeric:tabular-nums;font-size:clamp(64px,7.2vw,96px);font-weight:500;line-height:.95}.stacks-hero .stacks-amount .currency{vertical-align:22%;color:var(--t2);margin-right:4px;font-size:.5em}.stacks-hero .stacks-delta{color:var(--acid-bright);font-family:var(--font-mono);letter-spacing:.04em;background:#aadd0021;border:1px solid #ad03;border-radius:999px;align-items:center;gap:6px;padding:5px 11px 5px 9px;font-size:11px;font-weight:500;display:inline-flex}.stacks-hero .stacks-delta svg{stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;width:11px;height:11px}.stacks-hero .stacks-opportunity-pill{color:var(--peach);font-family:var(--font-mono);letter-spacing:.04em;background:#ff6f611f;border:1px solid #ff6f613d;border-radius:999px;align-items:center;gap:6px;padding:6px 12px 6px 10px;font-size:11px;font-weight:500;text-decoration:none;transition:background .2s,border-color .2s,transform .2s;display:inline-flex}.stacks-hero .stacks-opportunity-pill:hover{background:#ff6f612e;border-color:#ff6f6166;transform:translateY(-1px)}.stacks-hero .stacks-opportunity-pill svg{stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:11px;height:11px}.stacks-hero .stacks-opportunity-pill .arrow{transition:transform .2s}.stacks-hero .stacks-opportunity-pill:hover .arrow{transform:translate(2px)}.stacks-hero .stacks-helper{color:var(--t2);letter-spacing:-.005em;margin-top:14px;font-size:13.5px}.stacks-hero .stacks-bar{background:#aadd001a;border-radius:999px;height:4px;margin-top:22px;position:relative;overflow:hidden}.stacks-hero .stacks-bar-fill{background:linear-gradient(90deg, var(--acid-dim), var(--acid));box-shadow:0 0 10px var(--acid-glow);border-radius:999px;position:absolute;inset:0}.stacks-hero .stacks-meta{color:var(--t3);font-size:11.5px;font-family:var(--font-mono);letter-spacing:.04em;justify-content:space-between;margin-top:8px;display:flex}.stacks-hero .habits{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:26px;display:grid}.stacks-hero .habit-chip{background:var(--bg-elevated);cursor:pointer;opacity:0;color:inherit;border:1px solid #ad03;border-radius:14px;flex-direction:column;gap:6px;padding:14px 14px 12px;text-decoration:none;transition:border-color .2s,transform .2s,background .2s;animation:.6s cubic-bezier(.2,.8,.2,1) forwards chipIn;display:flex;position:relative;transform:translateY(8px)}.stacks-hero .habit-chip:first-child{animation-delay:.22s}.stacks-hero .habit-chip:nth-child(2){animation-delay:.26s}.stacks-hero .habit-chip:nth-child(3){animation-delay:.3s}.stacks-hero .habit-chip:nth-child(4){animation-delay:.34s}@keyframes chipIn{to{opacity:1;transform:translateY(0)}}.stacks-hero .habit-chip:hover{background:var(--bg-card-hover);border-color:#aadd0073;transform:translateY(-2px)}.stacks-hero .habit-chip.needs-today{border-color:#ffb0304d}.stacks-hero .habit-chip.needs-today:hover{border-color:#ffb0308c}.stacks-hero .chip-top{justify-content:space-between;align-items:flex-start;margin-bottom:2px;display:flex}.stacks-hero .habit-emoji{font-size:22px;line-height:1}.stacks-hero .today-mark{width:20px;height:20px;font-family:var(--font-sans);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;line-height:1;display:inline-flex}.stacks-hero .today-mark.logged{color:var(--acid-bright);background:#aadd0026}.stacks-hero .today-mark.pending{color:var(--warn);background:#ffb03029;animation:2.2s ease-out infinite tickPulse;box-shadow:0 0 #ffb03080}@keyframes tickPulse{0%{box-shadow:0 0 #ffb03080}70%{box-shadow:0 0 0 8px #ffb03000}to{box-shadow:0 0 #ffb03000}}.stacks-hero .habit-name{font-family:var(--font-display);letter-spacing:-.015em;color:var(--t1);font-size:13.5px;font-weight:500;line-height:1.25}.stacks-hero .habit-streak{color:var(--t2);align-items:baseline;gap:5px;font-size:12px;display:inline-flex}.stacks-hero .streak-flame{font-size:12px;line-height:1;display:inline-block}.stacks-hero .habit-streak strong{color:var(--t1);font-weight:500;font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:13px}.stacks-hero .habit-saved{font-family:var(--font-mono);color:var(--acid-bright);letter-spacing:.04em;margin-top:2px;font-size:10.5px}.stacks-hero .stacks-cta{border-top:1px solid var(--border-soft);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:auto;padding-top:22px;display:flex}.stacks-hero .cta-hint{color:var(--t2);font-size:12.5px}.stacks-hero .cta-hint strong{color:var(--warn);font-weight:500}.stacks-hero .stacks-cta a{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--acid-bright);border:1px solid #aadd004d;border-radius:999px;align-items:center;gap:10px;padding:12px 18px;font-size:11px;text-decoration:none;transition:all .22s;display:inline-flex}.stacks-hero .stacks-cta a:hover{border-color:var(--acid);background:#aadd001a}.stacks-hero .stacks-cta a .arrow{transition:transform .22s;display:inline-block}.stacks-hero .stacks-cta a:hover .arrow{transform:translate(3px)}.right-col{flex-direction:column;gap:14px;min-width:0;display:flex}.plan-btn{background:var(--bg-card);border:1px solid var(--acid-glow);text-align:left;width:100%;color:inherit;cursor:pointer;border-radius:18px;flex-direction:column;padding:20px 22px;font-family:inherit;transition:border-color .22s,background .22s,box-shadow .22s;display:flex;position:relative;overflow:hidden}.plan-btn:before{content:"";pointer-events:none;background:linear-gradient(110deg,#aadd0021 0%,#0000 55%);position:absolute;inset:0}.plan-btn:hover{background:var(--bg-card-hover);border-color:#aadd0073;box-shadow:0 0 0 1px #aadd001a,0 8px 24px #0000002e}.plan-btn-header{justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.plan-btn-left{align-items:center;gap:16px;min-width:0;display:flex}.plan-btn .pulse-dot{background:var(--acid);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2.2s ease-out infinite pulseRing;position:relative;box-shadow:0 0 #aadd00a6}@keyframes pulseRing{0%{box-shadow:0 0 #aadd00a6}70%{box-shadow:0 0 0 14px #ad00}to{box-shadow:0 0 #ad00}}.plan-btn-meta{flex-direction:column;gap:3px;min-width:0;display:flex}.plan-btn-eyebrow{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--acid-bright);font-size:9.5px}.plan-btn-amount{font-family:var(--font-display);letter-spacing:-.02em;color:var(--t1);font-variant-numeric:tabular-nums;font-size:24px;font-weight:500;line-height:1.05}.plan-btn-sub{color:var(--t2);margin-top:2px;font-size:11.5px}.plan-btn .chev{color:var(--t2);flex-shrink:0;width:20px;height:20px;transition:transform .28s cubic-bezier(.2,.8,.2,1)}.plan-btn[aria-expanded=true] .chev{color:var(--acid-bright);transform:rotate(180deg)}[data-theme=day] .plan-btn .chev{color:var(--t1);opacity:.65}[data-theme=day] .plan-btn:hover .chev{opacity:1}.plan-btn .plan-body{border-top:0 solid var(--border-soft);max-height:0;transition:max-height .32s cubic-bezier(.2,.8,.2,1),padding-top .32s,margin-top .32s,border-top-width .32s;position:relative;overflow:hidden}.plan-btn[aria-expanded=true] .plan-body{border-top-width:1px;max-height:260px;margin-top:16px;padding-top:18px}.plan-btn .alloc-bar{background:var(--border-strong);border-radius:999px;gap:2px;height:6px;display:flex;overflow:hidden}.plan-btn .alloc-bar span{height:100%;display:block}.plan-btn .alloc-rows{grid-template-columns:1fr 1fr 1fr;gap:14px;margin-top:16px;display:grid}.plan-btn .alloc-row{flex-direction:column;gap:4px;display:flex}.plan-btn .alloc-label{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t3);font-size:9.5px}.plan-btn .alloc-amount{font-family:var(--font-display);color:var(--t1);font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:18px;font-weight:500}.plan-btn .alloc-pct{color:var(--t3);font-size:11px;line-height:1.4}.today-v2{background:var(--bg-card);border:1px solid var(--border);border-radius:18px;flex-direction:column;flex:1;min-height:0;padding:22px 24px;display:flex;position:relative;overflow:hidden}.today-v2:before{content:"";background:linear-gradient(135deg, var(--info) 0%, transparent 55%);opacity:.025;pointer-events:none;position:absolute;inset:0}.today-v2>*{z-index:1;position:relative}.today-v2 .today-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--t2);font-size:10px}.today-v2 .today-amount{font-family:var(--font-display);letter-spacing:-.03em;color:var(--t1);font-variant-numeric:tabular-nums;margin-top:6px;font-size:clamp(30px,3.4vw,40px);font-weight:500;line-height:1}.today-v2 .today-sub{color:var(--t2);margin-top:8px;font-size:12px}.today-v2 .today-bar{background:var(--border-strong);border-radius:999px;height:4px;margin-top:14px;overflow:hidden}.today-v2 .today-bar-fill{background:var(--info);opacity:.85;border-radius:999px;height:100%}.recurring-v2{background:var(--bg-card);border:1px solid var(--border);min-height:0;color:inherit;border-radius:18px;flex-direction:column;flex:1;padding:22px 24px;text-decoration:none;transition:border-color .2s;display:flex;position:relative;overflow:hidden}.recurring-v2:hover{border-color:var(--border-strong)}.recurring-v2:before{content:"";background:linear-gradient(135deg, var(--peach) 0%, transparent 55%);opacity:.025;pointer-events:none;position:absolute;inset:0}.recurring-v2>*{z-index:1;position:relative}.recurring-v2 .recurring-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.recurring-v2 .recurring-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--t2);font-size:10px}.recurring-v2 .recurring-arrow{color:var(--t3)}.recurring-v2 .bill-row{border-bottom:1px solid var(--border-soft);grid-template-columns:1fr auto auto;align-items:baseline;gap:14px;padding:9px 0;font-size:12.5px;display:grid}.recurring-v2 .bill-row:last-child{border-bottom:none}.recurring-v2 .bill-name{color:var(--t1)}.recurring-v2 .bill-day{color:var(--t3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10.5px}.recurring-v2 .bill-amt{color:var(--t2);font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.recurring-v2 .empty{color:var(--t3);padding:14px 0;font-size:12px}.trajectories-v2{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.tile-v2{background:var(--bg-card);border:1px solid var(--border-soft);color:inherit;border-radius:18px;flex-direction:column;min-height:130px;padding:22px 24px 20px;text-decoration:none;transition:border-color .2s,transform .2s;display:flex;position:relative;overflow:hidden}.tile-v2:before{content:"";background:radial-gradient(circle, var(--tile-glow,var(--debt)) 0%, transparent 60%);opacity:.04;pointer-events:none;width:200px;height:200px;position:absolute;top:-50px;left:-50px}.tile-v2:hover{border-color:var(--border);transform:translateY(-1px)}.tile-v2.debt{--tile-glow:var(--debt)}.tile-v2.safety{--tile-glow:var(--info)}.tile-v2.cats{--tile-glow:var(--warn)}.tile-v2>*{z-index:1;position:relative}.tile-v2 .tile-label{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--t2);font-size:10px}.tile-v2 .tile-amount{font-family:var(--font-display);letter-spacing:-.03em;color:var(--t1);font-variant-numeric:tabular-nums;margin-top:8px;font-size:clamp(26px,2.8vw,34px);font-weight:500;line-height:1}.tile-v2 .tile-sub{color:var(--t2);margin-top:6px;font-size:12px}.tile-v2 .tile-bar{background:var(--border-strong);border-radius:999px;height:4px;margin-top:16px;overflow:hidden}.tile-v2 .tile-bar-fill{background:var(--tile-glow,var(--debt));opacity:.85;border-radius:999px;height:100%}.tile-v2.cats{flex-direction:column;gap:14px;padding:22px 22px 20px;display:flex}.tile-v2.cats .cats-body{flex:1;align-items:center;gap:16px;min-width:0;display:flex}.tile-v2.cats .donut-svg{flex-shrink:0;width:76px;height:76px;display:block}.tile-v2.cats .donut-bg-ring{stroke:var(--border-soft);fill:none}.tile-v2.cats .donut-slice{fill:none;cursor:pointer;transition:stroke-width .2s}.tile-v2.cats .cats-list{flex:1;min-width:0}.tile-v2.cats .cats-row{border-bottom:1px solid var(--border-soft);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:baseline;margin:0 -8px;padding:5px 8px;font-size:12px;transition:background .18s;display:flex}.tile-v2.cats .cats-row:last-child{border-bottom:none}.tile-v2.cats .cats-row.active{background:#aadd000f}.tile-v2.cats .cats-name{color:var(--t1);text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.tile-v2.cats .cats-name .dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.tile-v2.cats .cats-amt{color:var(--t2);font-variant-numeric:tabular-nums;font-family:var(--font-mono);letter-spacing:.02em;flex-shrink:0;font-size:11px}.tile-v2.cats .cats-row.active .cats-amt{color:var(--t1)}.activity-v2{background:var(--bg-card);border:1px solid var(--border-soft);border-radius:18px;padding:22px 26px}.activity-v2 .activity-header{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.activity-v2 .activity-title{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--t2);font-size:10px}.activity-v2 .activity-link{color:var(--t3);align-items:center;gap:6px;font-size:11.5px;text-decoration:none;transition:color .18s;display:inline-flex}.activity-v2 .activity-link:hover{color:var(--t1)}.activity-v2 .tx-row{border-bottom:1px solid var(--border-soft);grid-template-columns:1fr 100px 90px 130px;align-items:baseline;gap:16px;padding:10px 0;font-size:13px;display:grid}.activity-v2 .tx-row:last-child{border-bottom:none}.activity-v2 .tx-name{color:var(--t1);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.activity-v2 .tx-amt{color:var(--debt);font-variant-numeric:tabular-nums;text-align:right;font-family:var(--font-mono);font-size:12.5px}.activity-v2 .tx-amt.pos{color:var(--acid-bright)}.activity-v2 .tx-when{color:var(--t3);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10.5px}.activity-v2 .tx-cat{color:var(--t2);font-size:11.5px}@media (width<=960px){.dashboard-v2 .hero,.trajectories-v2{grid-template-columns:1fr}.stacks-hero{min-height:auto;padding:28px 26px}.activity-v2 .tx-row{grid-template-columns:1fr auto;gap:8px}.activity-v2 .tx-when,.activity-v2 .tx-cat{display:none}}@media (width<=720px){.mobile-topbar{padding-top:env(safe-area-inset-top)}.main-v2{padding-bottom:calc(60px + env(safe-area-inset-bottom))}.greeting{flex-wrap:wrap;row-gap:4px}.greeting h1{overflow-wrap:anywhere}.dashboard-v2{gap:12px}.dashboard-v2 .greeting{gap:8px;margin-bottom:4px}.dashboard-v2 .greeting h1{letter-spacing:-.022em;font-size:24px}.dashboard-v2 .greeting .subtitle{font-size:12.5px}.dashboard-v2 .greeting .date{font-size:10.5px}.stacks-hero{border-radius:18px;gap:0;padding:22px 20px}.stacks-hero .stacks-top{gap:12px}.stacks-hero .stacks-head{gap:12px;margin-top:14px}.stacks-hero .stacks-amount{letter-spacing:-.045em;font-size:56px}.stacks-hero .stacks-helper{margin-top:10px;font-size:12.5px}.stacks-hero .stacks-bar{margin-top:18px}.stacks-hero .stacks-meta{margin-top:6px;font-size:11px}.stacks-hero .habits{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.stacks-hero .habit-chip{min-height:88px;padding:12px}.stacks-hero .habit-emoji{font-size:20px}.stacks-hero .habit-name{font-size:12px}.stacks-hero .habit-streak{font-size:11px}.stacks-hero .habit-saved{font-size:11.5px}.stacks-hero .stacks-cta{flex-direction:column;align-items:flex-start;gap:8px;margin-top:16px;padding-top:14px}.stacks-hero .stacks-cta a{justify-content:center;align-self:stretch;min-height:40px}.plan-btn,.today-v2,.recurring-v2{border-radius:14px;padding:16px 18px}.plan-btn-header{gap:12px}.plan-btn-amount{font-size:22px}.plan-btn-sub{font-size:11px}.today-v2 .today-amount{font-size:28px}.today-v2 .today-label{font-size:9.5px}.today-v2 .today-sub{font-size:11px}.recurring-v2 .recurring-label{font-size:9.5px}.recurring-v2 .bill-row{padding:8px 0}.recurring-v2 .bill-name,.recurring-v2 .bill-amt{font-size:13px}.tile-v2{border-radius:14px;min-height:0;padding:16px 18px}.tile-v2 .tile-label{font-size:9.5px}.tile-v2 .tile-amount{font-size:24px}.tile-v2 .tile-sub{font-size:11.5px}.tile-v2.cats .cats-body{gap:14px}.tile-v2.cats .donut-svg{flex-shrink:0;width:80px;height:80px}.activity-v2{border-radius:14px;padding:14px 16px 8px}.activity-v2 .activity-header{padding-bottom:8px}.activity-v2 .activity-title{font-size:11px}.activity-v2 .tx-row{gap:12px;padding:10px 0}.activity-v2 .tx-name{font-size:13.5px}.activity-v2 .tx-amt{font-size:14px}}@media (prefers-reduced-motion:reduce){.stacks-hero:before,.stacks-hero .habit-chip,.stacks-hero .today-mark,.plan-btn .pulse-dot{animation-duration:.01ms!important;animation-iteration-count:1!important}.app-shell-v2,.sidebar-v2,.plan-btn .plan-body,.plan-btn .chev,.tile-v2{transition-duration:.01ms!important}}.mobile-topbar{display:none}.mobile-topbar-burger,.mobile-topbar-spacer{width:44px}.mobile-topbar-brand{color:var(--t1);font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:8px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}@media (width<=720px){.sidebar-v2{display:none}.app-shell-v2{padding-left:0}.app-shell-v2 .main-v2{padding:16px 16px 60px}.mobile-topbar{background:var(--bg);border-bottom:1px solid var(--border-soft,var(--border));z-index:49;justify-content:space-between;align-items:center;gap:8px;height:56px;padding:8px 12px;display:flex;position:sticky;top:0}.mobile-topbar-burger{cursor:pointer;color:var(--t1);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex}.mobile-topbar-burger:hover{background:#ffffff0f}[data-theme=day] .mobile-topbar-burger:hover{background:#3c32140f}}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:Space Grotesk,ui-monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (width>=640px){.container{max-width:640px}}@media (width>=768px){.container{max-width:768px}}@media (width>=1024px){.container{max-width:1024px}}@media (width>=1280px){.container{max-width:1280px}}@media (width>=1536px){.container{max-width:1536px}}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.top-4{top:1rem}.isolate{isolation:isolate}.mx-auto{margin-left:auto;margin-right:auto}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.h-7{height:1.75rem}.w-7{width:1.75rem}.max-w-3xl{max-width:48rem}.flex-shrink,.shrink{flex-shrink:1}.grow{flex-grow:1}.border-collapse{border-collapse:collapse}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-2{row-gap:.5rem}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-slate-200{--tw-border-opacity:1;border-color:rgb(226 232 240/var(--tw-border-opacity,1))}.bg-\[\#059669\]{--tw-bg-opacity:1;background-color:rgb(5 150 105/var(--tw-bg-opacity,1))}.bg-\[\#1E40AF\]{--tw-bg-opacity:1;background-color:rgb(30 64 175/var(--tw-bg-opacity,1))}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.font-plex-mono{font-family:IBM Plex Mono,ui-monospace,monospace}.text-sm{font-size:.875rem;line-height:1.25rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tracking-tight{letter-spacing:-.025em}.text-slate-500{--tw-text-opacity:1;color:rgb(100 116 139/var(--tw-text-opacity,1))}.text-slate-600{--tw-text-opacity:1;color:rgb(71 85 105/var(--tw-text-opacity,1))}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.shadow{--tw-shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;scroll-padding-top:80px}}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d100b;--bg-base:#0d100b;--bg-primary:#0d100b;--bg-secondary:#0a0d08;--bg-card:#1f2117;--bg-card-hover:#25281c;--bg-elevated:#25281c;--bg-input:#1f2117;--bg-overlay:#0d100bc7;--paper:#1f2117;--card:#1f2117;--sidebar-bg:#0a0d08;--sidebar-bg-expanded:#0c0f0a;--brand-mark:var(--acid);--card-2:#25281c;--bg-2:#25281c;--border:#252a1f;--border-soft:#1c2117;--border-subtle:#1c2117;--border-strong:#2e3526;--border-top-glow:#aadd0014;--card-glow-opacity:.06;--card-wash-opacity:.04;--rule:#1c2117;--rule-2:#252a1f;--acid:#ad0;--acid-dim:#7a9e00;--acid-bright:#be0;--acid-glow:#aadd002e;--accent:#ad0;--peach:#ff6f61;--peach-dim:#c4544a;--peach-deep:var(--peach-dim);--peach-bright:#ff8a7e;--peach-soft:#ff6f611f;--peach-glow:#ff6f6138;--cream:#f5efd6;--debt:#ff6060;--debt-soft:#ff606021;--warn:#ffb030;--warn-soft:#ffb03021;--info:#7eb8ff;--info-soft:#7eb8ff1f;--t1:#f0f3e8;--t2:#a3a892;--t3:#828876;--moss:var(--acid);--moss-soft:var(--acid-glow);--berry:var(--debt);--berry-soft:var(--debt-soft);--plum:#b388f5;--plum-soft:#b388f51f;--sky:#7eb8ff;--sky-soft:#7eb8ff1f;--butter:#ffb030;--butter-soft:#ffb03021;--sand:#c9a55c;--sand-soft:#c9a55c1f;--green:#ad0;--green-bright:#be0;--green-mid:#9c0;--green-dim:#aadd0014;--green-glow:#aadd002e;--green-pulse:#aadd000d;--gold:#ffb030;--gold-dim:#ffb0301a;--gold-glow:#ffb0302e;--red:#ff6060;--red-dim:#ff60601a;--red-glow:#ff606026;--yellow:#ffb030;--yellow-dim:#ffb0301a;--amber:#ffb030;--blue:#7eb8ff;--blue-dim:#7eb8ff1a;--ink-4:#f0f3e82e;--text-primary:#f0f3e8;--text-secondary:#a3a892;--text-tertiary:#828876;--text-green:#ad0;--text-gold:#ffb030;--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--font-serif:"Geist", -apple-system, BlinkMacSystemFont, sans-serif;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:22px;--radius-2xl:28px;--shadow-soft:0 1px 0 #ffffff08 inset, 0 1px 2px #0006;--shadow-card:0 1px 0 #ffffff08 inset, 0 0 0 1px #ffffff0a;--shadow-elevated:0 1px 0 #ffffff0d inset, 0 0 0 1px #ffffff0f, 0 8px 32px #00000080;--shadow-glow-green:0 0 40px #aadd001a, 0 0 80px #aadd000a;--nav-active:var(--acid);--track-overlay:#ffffff0a}[data-theme=day]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#e8dfc6;--bg-base:#e8dfc6;--bg-primary:#e8dfc6;--bg-secondary:#d4cba8;--bg-card:#faf6ea;--bg-card-hover:#f4ecd6;--bg-elevated:#faf6ea;--bg-input:#faf6ea;--bg-overlay:#e8dfc6e0;--paper:#faf6ea;--card:#faf6ea;--card-2:#ece2c4;--bg-2:#ece2c4;--sidebar-bg:#d8cfb0;--sidebar-bg-expanded:#d2c9a6;--border:#b6ab85;--border-soft:#cdc29c;--border-subtle:#cdc29c;--border-strong:#9c906c;--border-top-glow:transparent;--card-glow-opacity:0;--card-wash-opacity:0;--rule:#cdc29c;--rule-2:#b6ab85;--acid:#ad0;--acid-bright:#ad0;--acid-dim:#7a9e00;--acid-text:#506b00;--acid-glow:#aadd004d;--brand-mark:#506b00;--green-glow:#aadd004d;--green-dim:#aadd001a;--green-pulse:#aadd000f;--peach:#cf3a23;--peach-soft:#cf3a231a;--peach-glow:#cf3a2333;--cream:#3a3328;--debt:#b91c1c;--debt-soft:#b91c1c1a;--warn:#b45309;--warn-soft:#b453091f;--info:#1e40af;--info-soft:#1e40af1a;--berry:#b91c1c;--amber:#b45309;--blue:#1e40af;--gold-dim:#b453091a;--gold-glow:#b4530933;--red-dim:#b91c1c14;--red-glow:#b91c1c2e;--yellow-dim:#b453091a;--blue-dim:#1e40af1a;--t1:#18170f;--t2:#4f4836;--t3:#8a8472;--t4:#b5af9b;--ink-4:#18170f38;--text-primary:#18170f;--text-secondary:#4f4836;--text-tertiary:#8a8472;--nav-active:#4a6300;--track-overlay:#18170f12;--shadow-soft:0 1px 2px #3c321414;--shadow-card:0 1px 3px #3c321414, 0 0 0 1px #18170f0a;--shadow-elevated:0 10px 32px #3c32141f, 0 0 0 1px #18170f0d;--shadow-glow-green:0 0 40px #aadd0029, 0 0 80px #aadd0014;color:var(--t1)}[data-theme=day] [style*="var(--card)"]:not(button):not(input):not(textarea):not(select),[data-theme=day] [style*="var(--bg-card)"]:not(button):not(input):not(textarea):not(select){box-shadow:0 1px 3px #3c321414,0 0 0 1px #18170f0a}[data-theme=day] .plan-btn-eyebrow,[data-theme=day] .stacks-hero-this-month .label,[data-theme=day] .stacks-hero-all-time .label,[data-theme=day] .stacks-hero-all-time .meta,[data-theme=day] .stacks-cta a{color:var(--acid-text)}[data-theme=day] .stacks-today-mark.logged{color:var(--acid-text);background:#ad03}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg-base);color:var(--text-primary);font-family:var(--font-sans);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em;font-size:14px;line-height:1.55;overflow-x:hidden}#root{z-index:1;position:relative}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#ffffff29}::selection{background:var(--acid-glow);color:var(--acid-bright)}.font-serif,.heading-serif{font-family:var(--font-display);letter-spacing:-.02em;font-style:normal;font-weight:500;line-height:1.1}.font-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.015em}.num{font-variant-numeric:tabular-nums;letter-spacing:-.015em}.display{font-family:var(--font-display);letter-spacing:-.025em;font-weight:500}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.025em;color:var(--t1);font-weight:500;line-height:1.15}.label{font-family:var(--font-display);color:var(--t3);letter-spacing:.12em;text-transform:uppercase;font-size:11px;font-weight:500;display:block}.card{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1.5rem;transition:box-shadow .25s,transform .2s;position:relative}.card.big,.card:hover{box-shadow:var(--shadow-elevated)}.card-hero{background:var(--t1);color:var(--bg-base);border-radius:var(--radius-2xl);padding:2rem;position:relative;overflow:hidden;box-shadow:0 24px 48px -24px #1c191766,inset 0 1px #ffffff0f}.card-hero:after{content:"";pointer-events:none;background:radial-gradient(circle,#ff6b352e,#0000 70%);border-radius:50%;width:220px;height:220px;position:absolute;bottom:-60px;left:-40px}.card-sm{background:var(--paper);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);padding:1rem;position:relative}.btn-primary{background:var(--peach);color:#fff;font-family:var(--font-sans);letter-spacing:-.01em;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:.4rem;padding:.625rem 1.25rem;font-size:.85rem;font-weight:600;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex}.btn-primary:hover{background:var(--peach-bright);transform:translateY(-1px);box-shadow:0 4px 12px #ff6b3538}.btn-primary:active{box-shadow:none;transform:translateY(0)}.btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.btn-ghost{background:var(--paper);color:var(--t1);font-family:var(--font-sans);letter-spacing:-.01em;border:1px solid var(--rule-2);cursor:pointer;border-radius:999px;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-size:.85rem;font-weight:500;transition:all .15s;display:inline-flex}.btn-ghost:hover{background:var(--t1);color:var(--bg-base);border-color:var(--t1)}.btn-ghost:disabled{opacity:.4;cursor:not-allowed}.btn-danger{background:var(--berry-soft);color:var(--berry);font-family:var(--font-sans);cursor:pointer;border:1px solid #b737572e;border-radius:999px;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-size:.85rem;font-weight:600;transition:all .15s;display:inline-flex}.btn-danger:hover{background:#b737572e}.btn-icon{background:var(--bg-2);color:var(--t2);cursor:pointer;border:none;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .15s;display:inline-flex}.btn-icon:hover{color:var(--t1);background:#ecdfc9}.input{background:var(--paper);border:1px solid var(--rule-2);border-radius:var(--radius-sm);color:var(--t1);font-family:var(--font-sans);letter-spacing:-.01em;outline:none;width:100%;padding:.625rem .875rem;font-size:.875rem;transition:border-color .15s,box-shadow .15s}.input:focus{border-color:var(--peach);box-shadow:0 0 0 3px #ff6b351a}.input::placeholder{color:var(--t3)}.input-group{position:relative}.input-group .input{padding-left:2.25rem}.input-group .input-icon{color:var(--t3);pointer-events:none;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}.select{background:var(--paper);border:1px solid var(--rule-2);border-radius:var(--radius-sm);color:var(--t1);font-family:var(--font-sans);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238b8378' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;outline:none;width:100%;padding:.625rem 2.25rem .625rem .875rem;font-size:.875rem;transition:border-color .15s}.select:focus{border-color:var(--peach);box-shadow:0 0 0 3px #ff6b351a}.badge{letter-spacing:.04em;text-transform:uppercase;border-radius:100px;align-items:center;gap:.3rem;padding:.25rem .6rem;font-size:.67rem;font-weight:600;display:inline-flex}.badge-green{composes:badge;background:var(--moss-soft);color:var(--moss)}.badge-gold{composes:badge;background:var(--butter-soft);color:var(--butter)}.badge-red{composes:badge;background:var(--berry-soft);color:var(--berry)}.badge-yellow{composes:badge;background:var(--butter-soft);color:var(--butter)}.badge-blue{composes:badge;background:var(--sky-soft);color:var(--sky)}.badge-neutral{composes:badge;background:var(--bg-2);color:var(--t2)}.amount-positive{color:var(--moss);font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:600}.amount-negative{color:var(--berry);font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:600}.amount-neutral{color:var(--t1);font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:600}.amount-hero{font-family:var(--font-display);letter-spacing:-.04em;color:var(--t1);font-variant-numeric:tabular-nums;font-weight:500}.progress-bar{background:#1c19170f;border-radius:100px;height:6px;overflow:hidden}.progress-fill{background:var(--peach);border-radius:100px;height:100%;transition:width .9s cubic-bezier(.4,0,.2,1)}.progress-bar.thick{height:8px}.progress-fill.warning{background:var(--butter)}.progress-fill.danger{background:var(--berry)}.divider{background:var(--rule);border:none;height:1px;margin:1rem 0}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg, var(--bg-2) 0%, var(--paper) 50%, var(--bg-2) 100%);border-radius:var(--radius-sm);background-size:400px 100%;animation:1.8s ease-in-out infinite shimmer}.modal-backdrop{-webkit-backdrop-filter:blur(6px);z-index:200;background:#1c191773;justify-content:center;align-items:center;padding:1.5rem;animation:.2s backdropIn;display:flex;position:fixed;inset:0}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--paper);color:var(--t1);border-radius:var(--radius-xl);width:100%;max-width:460px;max-height:90vh;padding:2rem;animation:.25s cubic-bezier(.16,1,.3,1) modalIn;position:relative;overflow-y:auto;box-shadow:0 32px 80px -16px #1c191740,inset 0 1px #ffffffb3}@keyframes modalIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}.toast{background:var(--paper);color:var(--t1);border:1px solid var(--rule-2);border-radius:var(--radius-md);animation:.35s cubic-bezier(.16,1,.3,1) toastIn;position:relative;overflow:hidden;box-shadow:0 12px 32px -12px #1c191733}@keyframes toastIn{0%{opacity:0;transform:translate(120%)}to{opacity:1;transform:translate(0)}}.nav-item{color:var(--t2);letter-spacing:-.01em;border-radius:999px;align-items:center;gap:.625rem;padding:.5rem .875rem;font-size:.85rem;font-weight:500;text-decoration:none;transition:color .15s,background .15s;display:flex;position:relative}.nav-item:hover{color:var(--t1);background:var(--bg-2)}.nav-item.active{color:var(--bg-base);background:var(--t1)}.stat-tile{background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft);padding:1.25rem 1.5rem;transition:transform .2s,box-shadow .2s;position:relative}.stat-tile:hover{box-shadow:var(--shadow-elevated);transform:translateY(-2px)}.stack-tile{background:var(--paper);border-radius:var(--radius-md);box-shadow:var(--shadow-soft);cursor:pointer;flex-direction:column;gap:.875rem;padding:1.125rem;transition:transform .15s,box-shadow .2s;display:flex;position:relative}.stack-tile:hover{box-shadow:var(--shadow-elevated);transform:translateY(-2px)}.stack-tile .stack-emoji{border-radius:12px;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;display:flex}.stack-tile .stack-meter{background:#1c19170f;border-radius:999px;height:6px;overflow:hidden}.stack-tile .stack-meter i{border-radius:999px;height:100%;display:block}.stack-t-peach{background:linear-gradient(155deg,#fff,#fff5ed)}.stack-t-peach .stack-emoji{background:var(--peach-soft)}.stack-t-peach .stack-pct{color:var(--peach-deep)}.stack-t-peach .stack-meter i{background:var(--peach)}.stack-t-moss{background:linear-gradient(155deg,#fff,#eef5ec)}.stack-t-moss .stack-emoji{background:var(--moss-soft)}.stack-t-moss .stack-pct{color:var(--moss)}.stack-t-moss .stack-meter i{background:var(--moss)}.stack-t-plum{background:linear-gradient(155deg,#fff,#f4ecf8)}.stack-t-plum .stack-emoji{background:var(--plum-soft)}.stack-t-plum .stack-pct{color:var(--plum)}.stack-t-plum .stack-meter i{background:var(--plum)}.stack-t-sky{background:linear-gradient(155deg,#fff,#ecf2f9)}.stack-t-sky .stack-emoji{background:var(--sky-soft)}.stack-t-sky .stack-pct{color:var(--sky)}.stack-t-sky .stack-meter i{background:var(--sky)}.stack-t-butter{background:linear-gradient(155deg,#fff,#fbf6e6)}.stack-t-butter .stack-emoji{background:var(--butter-soft)}.stack-t-butter .stack-pct{color:var(--butter)}.stack-t-butter .stack-meter i{background:var(--butter)}.stack-t-sand{background:linear-gradient(155deg,#fff,#f7f0e2)}.stack-t-sand .stack-emoji{background:var(--sand-soft)}.stack-t-sand .stack-pct{color:var(--sand)}.stack-t-sand .stack-meter i{background:var(--sand)}.stack-t-berry{background:linear-gradient(155deg,#fff,#fbeef1)}.stack-t-berry .stack-emoji{background:var(--berry-soft)}.stack-t-berry .stack-pct{color:var(--berry)}.stack-t-berry .stack-meter i{background:var(--berry)}@keyframes heroGlow{0%,to{opacity:1}50%{opacity:.92}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.fade-up{animation:.4s cubic-bezier(.16,1,.3,1) both fadeUp}.fade-up-1{animation:.4s cubic-bezier(.16,1,.3,1) 60ms both fadeUp}.fade-up-2{animation:.4s cubic-bezier(.16,1,.3,1) .12s both fadeUp}.fade-up-3{animation:.4s cubic-bezier(.16,1,.3,1) .18s both fadeUp}.fade-up-4{animation:.4s cubic-bezier(.16,1,.3,1) .24s both fadeUp}.fade-up-5{animation:.4s cubic-bezier(.16,1,.3,1) .3s both fadeUp}.fade-up-delay-1{animation:.4s cubic-bezier(.16,1,.3,1) 60ms both fadeUp}.fade-up-delay-2{animation:.4s cubic-bezier(.16,1,.3,1) .12s both fadeUp}.fade-up-delay-3{animation:.4s cubic-bezier(.16,1,.3,1) .18s both fadeUp}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}@keyframes efMeshOrbit{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ef-hero-mesh{animation:none!important}}.pulse-dot{background:var(--moss);width:6px;height:6px;box-shadow:0 0 0 4px var(--moss-soft);border-radius:50%;animation:2s ease-in-out infinite pulseDot}@keyframes numFlash{0%{opacity:.5}to{opacity:1}}.num-update{animation:.3s numFlash}@keyframes wave{0%,60%,to{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-8deg)}30%{transform:rotate(14deg)}40%{transform:rotate(-4deg)}50%{transform:rotate(10deg)}}.wave{transform-origin:70% 70%;animation:2.4s ease-in-out infinite wave;display:inline-block}.tx-row{border-bottom:1px solid var(--rule);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin:0 -.5rem;padding:.75rem .5rem;transition:background .15s;display:flex}.tx-row:last-child{border-bottom:none}.tx-row:hover{background:var(--bg-2)}.cat-icon{width:36px;height:36px;font-size:.9rem;font-weight:600;font-family:var(--font-display);letter-spacing:0;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-muted{color:var(--t2)}.text-dim{color:var(--t3)}.page-loader{background:var(--bg-base);justify-content:center;align-items:center;height:100vh;display:flex}.spinner{border:2px solid var(--rule);border-top-color:var(--peach);border-radius:50%;width:22px;height:22px;animation:.7s linear infinite spin}.glow-green{color:var(--moss)}.bottom-nav-wrapper{display:none}.budget-edit-btn .pencil-icon{opacity:.4;transition:opacity .15s}.budget-edit-btn:hover .pencil-icon{opacity:1}.reset-budget-btn{transition:background .1s,transform .1s}.reset-budget-btn:hover{background:var(--bg-2)}.reset-budget-btn:active{background:#1c19170f;transform:scale(.92)}.recurrings-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}@media (width>=640px){.recurrings-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=768px){.bottom-nav-wrapper{display:block}.sidebar-nav{display:none}.main-content{padding-bottom:64px;overflow-x:hidden}.mobile-page{padding:1.25rem 1rem 2rem!important}.card{border-radius:var(--radius-md)}.stat-tiles-grid,.dashboard-grid{grid-template-columns:1fr!important}}@media (width<=720px){input,select,textarea{font-size:16px}.onboarding-shell{padding:1.5rem 1rem 2.25rem!important}.onboarding-shell>:first-child{margin-bottom:24px!important}}.hover\:bg-\[\#047857\]:hover{--tw-bg-opacity:1;background-color:rgb(4 120 87/var(--tw-bg-opacity,1))}.hover\:text-slate-900:hover{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity,1))}.focus\:outline-none:focus{outline-offset:2px;outline:2px solid #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.focus\:ring-\[\#059669\]:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(5 150 105/var(--tw-ring-opacity,1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}@media (width>=640px){.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}}
