@import "https://fonts.googleapis.com/css2?family=Outfit:wght@200;300;400;500&display=swap";:root{--bg:#000;--surface:#0a0806;--card:#110e0a;--card-fill:#0d0a07;--card-hover:#1a1510;--text:#f3f1ee;--text-secondary:#9a8f86;--text-tertiary:#6a625b;--accent:#ff8a1e;--green:#4dd07f;--red:#ff5a48;--border:#ffa02829;--radius:20px;--radius-sm:14px;--maxw:440px;--font:"Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--grad:linear-gradient(125deg, #ffc400, #ff8a1e, #ff2d2d);--grad-loop:linear-gradient(115deg, #ffc400, #ff8a1e, #ff2d2d, #ff8a1e, #ffc400);--glow:0 6px 22px #ff6e1e66;--glass:#140e088c;--glass-strong:#100c06d1;--glass-brd:#ffa02826;--glass-blur:blur(18px) saturate(160%);--glass-shadow:0 8px 30px #ff6e140f;--glass-inset:inset 0 1px 0 #ffc8500f}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;padding:0;font-size:15px;line-height:1.45}#root{max-width:var(--maxw);min-height:100vh;margin:0 auto;position:relative;overflow-x:hidden}#root:before{content:"";z-index:0;pointer-events:none;filter:blur(28px);background:radial-gradient(38% 32% at 12% 8%,#ffc4002e,#0000 70%),radial-gradient(34% 30% at 88% 16%,#ff8a1e24,#0000 70%),radial-gradient(46% 40% at 75% 88%,#ff2d2d21,#0000 72%),radial-gradient(40% 36% at 20% 96%,#ff64141a,#0000 72%);animation:22s ease-in-out infinite alternate ambient;position:fixed;inset:-25%}#root:after{content:"";z-index:0;pointer-events:none;filter:blur(70px);opacity:.6;mix-blend-mode:screen;background:conic-gradient(#ffc4001a,#ff2d2d21,#ff8a1e1a,#ff5a1e1f,#ffc4001a);animation:40s linear infinite spin;position:fixed;inset:-55%}@keyframes spin{to{transform:rotate(1turn)}}html{scroll-behavior:smooth;scrollbar-width:none}::-webkit-scrollbar{display:none}button{cursor:pointer;font-family:inherit}.ti{line-height:1}@media (prefers-reduced-motion:reduce){#root:before,#root:after{animation:none}}.app{z-index:1;padding:12px 14px calc(100px + env(safe-area-inset-bottom,0px));min-height:100vh;position:relative}@keyframes ambient{0%{transform:translate(0,0)scale(1)}to{transform:translate(-3%,2%)scale(1.08)}}@keyframes screenIn{0%{opacity:0;filter:blur(6px);transform:translateY(14px)scale(.985)}to{opacity:1;filter:blur();transform:none}}@keyframes riseIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes donutIn{0%{opacity:0;transform:rotate(-28deg)scale(.82)}to{opacity:1;transform:none}}@keyframes fabIn{0%{opacity:0;transform:scale(.4)translateY(10px)}to{opacity:1;transform:none}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes overlayOut{0%{opacity:1}to{opacity:0}}@keyframes sheetDown{0%{transform:none}to{transform:translateY(100%)}}@property --grad-angle{syntax:"<angle>";inherits:false;initial-value:90deg}@keyframes tabbarGlow{0%{--grad-angle:0deg}to{--grad-angle:360deg}}@keyframes tabbarIn{0%{opacity:0;transform:translate(-50%)translateY(16px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.card,.metric,.toggle,.search,.cur-toggle{background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);box-shadow:var(--glass-shadow), var(--glass-inset)}.topbar{justify-content:space-between;align-items:center;padding:6px 2px 14px;display:flex}.topbar h1{letter-spacing:-.2px;margin:0;font-size:18px;font-weight:600}.icon-btn{color:var(--text-secondary);background:0 0;border:none;padding:4px;font-size:20px;transition:transform .18s,color .18s}.icon-btn:active{transform:scale(.88)}.hero{padding:4px 4px 18px;animation:.45s both riseIn}.hero .label{color:var(--text-secondary);font-size:13px}.hero .value{letter-spacing:-.5px;text-shadow:0 0 24px;margin:3px 0;font-size:34px;font-weight:600;line-height:1.12}.hero .delta{color:var(--text-secondary);align-items:center;gap:3px;font-size:13px;display:flex}.metrics{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;display:grid}.metric{border-radius:var(--radius);padding:13px 15px;animation:.5s both riseIn}.metrics .metric:nth-child(2){animation-delay:60ms}.metric .label{color:var(--text-secondary);font-size:12px}.metric .value{letter-spacing:-.3px;text-shadow:0 0 16px;margin-top:3px;font-size:20px;font-weight:600}.card{border-radius:var(--radius);margin-bottom:14px;padding:15px 16px;animation:.55s both riseIn}.card:nth-of-type(2){animation-delay:50ms}.card:nth-of-type(3){animation-delay:.1s}.card:nth-of-type(4){animation-delay:.15s}.card-title{margin:0 0 12px;font-size:14px;font-weight:500}.donut-row{align-items:center;gap:16px;display:flex}.donut-row svg{animation:.65s cubic-bezier(.2,.7,.2,1) both donutIn}.legend{flex-direction:column;flex:1;gap:8px;display:flex}.legend-item{align-items:center;font-size:13px;animation:.5s both riseIn;display:flex}.legend-item .dot{border-radius:3px;flex:none;width:9px;height:9px;margin-right:9px}.legend-item .nm{flex:1}.legend-item .pc{color:var(--text-secondary)}.chip{border-radius:var(--radius);border:1px solid #0000;align-items:center;gap:9px;margin-bottom:10px;padding:11px 14px;font-size:13px;animation:.5s both riseIn;display:flex}.chip i{flex:none;font-size:17px}.chip.info{color:var(--accent);background:#ff8a1e24;border-color:#ff8a1e38}.chip.success{color:var(--green);background:#4dd07f24;border-color:#4dd07f38}.chip.warn{color:#ef9f27;background:#ef9f2726;border-color:#ef9f2740}.toggle{border-radius:var(--radius);z-index:1;gap:4px;margin-bottom:14px;padding:4px;display:flex;position:relative}.toggle:before{content:"";background:var(--card-hover);border-radius:var(--radius-sm);z-index:-1;width:calc(50% - 6px);transition:transform .35s cubic-bezier(.34,1.56,.64,1);position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 2px 8px #00000026}.toggle:has(button:nth-child(2).on):before{transform:translate(calc(100% + 4px))}.toggle button{color:var(--text-secondary);border-radius:var(--radius-sm);border:none;flex:1;padding:8px 0;font-size:13px;transition:color .22s;box-shadow:none!important;background:0 0!important}.toggle button.on{color:var(--text);font-weight:500}.section-label{color:var(--text-tertiary);margin:14px 2px 8px;font-size:12px}.tx{border-radius:12px;align-items:center;gap:12px;margin:0 -6px;padding:9px 8px;transition:background .15s,transform .12s;display:flex}.tx:active{background:var(--card-hover);transform:scale(.985)}.tx .ava{border-radius:var(--radius-sm);flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:18px;transition:transform .15s;display:flex}.tx:active .ava{transform:scale(.92)}.tx .mid{flex:1;min-width:0}.tx .mer{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:500;overflow:hidden}.tx .sub{color:var(--text-secondary);font-size:12px}.tx .amt{flex:none;font-size:14px;font-weight:600}.amt.neg{color:var(--red)}.amt.pos{color:var(--green)}.tag{color:#d4537e;vertical-align:middle;background:#d4537e2e;border-radius:6px;margin-left:6px;padding:1px 6px;font-size:10px}.search{border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:4px;padding:10px 13px;display:flex}.search i{color:var(--text-secondary);font-size:17px}.search input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:14px}.search input::placeholder{color:var(--text-tertiary)}.bar{background:var(--card-hover);border-radius:5px;height:9px;display:flex;overflow:hidden}.bar>span{height:100%;transition:width .6s cubic-bezier(.4,0,.2,1)}.asset-row{border-radius:12px;align-items:center;gap:12px;margin:0 -6px;padding:10px 8px;transition:background .15s,transform .12s;display:flex}.asset-row:active{background:var(--card-hover);transform:scale(.985)}.asset-row .dot{border-radius:3px;flex:none;width:10px;height:10px}.asset-row .mid{flex:1;min-width:0}.asset-row .nm{font-size:14px;font-weight:500}.asset-row .sub{color:var(--text-secondary);font-size:12px}.asset-row .rt{text-align:right;flex:none}.asset-row .val{font-size:14px;font-weight:600}.asset-row .pc{color:var(--text-secondary);font-size:12px}.lock{color:#ef9f27;font-size:11px}.qty-edit{align-items:center;gap:6px;display:flex}.qty-edit input{text-align:right;background:var(--card-hover);border:.5px solid var(--border);border-radius:var(--radius-sm);width:96px;color:var(--text);outline:none;padding:6px 8px;font-family:inherit;font-size:14px}.qty-edit input:focus{border-color:var(--accent)}.qty-edit .u{color:var(--text-secondary);min-width:30px;font-size:12px}.hint{color:var(--text-secondary);margin-top:12px;font-size:12px;line-height:1.5}.sheet-overlay{z-index:1000;background:#0000008c;justify-content:center;align-items:flex-end;animation:.22s both overlayIn;display:flex;position:fixed;inset:0}.sheet-overlay.closing{animation:.25s both overlayOut}.sheet{border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:460px;padding:8px 18px calc(22px + env(safe-area-inset-bottom,0px));background:#14100b;border:none;max-height:90vh;animation:.34s cubic-bezier(.2,.8,.2,1) both sheetUp;overflow-y:auto;box-shadow:0 -12px 44px #0000008c}.sheet.closing{animation:.25s cubic-bezier(.2,.8,.2,1) both sheetDown}.sheet-grab{background:var(--text-tertiary);opacity:.5;border-radius:2px;width:38px;height:4px;margin:6px auto 14px}.sheet-head{justify-content:space-between;align-items:center;font-size:16px;font-weight:600;display:flex}.sheet-date{color:var(--text-secondary);margin:2px 0 14px;font-size:12px}.field-label{color:var(--text-secondary);margin:12px 2px 6px;font-size:12px;display:block}.name-input{background:var(--card-hover);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);box-sizing:border-box;outline:none;padding:11px 12px;font-family:inherit;font-size:15px;transition:border-color .16s,box-shadow .16s}.name-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #ff8a1e2e}.cat-grid{flex-wrap:wrap;gap:8px;display:flex}.cat-chip{background:var(--card);border:1px solid var(--border);color:var(--text);border-radius:20px;align-items:center;gap:6px;padding:7px 12px;font-size:13px;transition:transform .16s,border-color .16s,background .16s;display:inline-flex}.cat-chip:active{transform:scale(.94)}.cat-chip.on{font-weight:500}.switch-row{justify-content:space-between;align-items:center;gap:12px;margin-top:14px;font-size:13px;display:flex}.switch-row .muted{color:var(--text-tertiary)}.switch-row input{width:20px;height:20px;accent-color:var(--accent)}.save-btn{background:var(--grad);color:#fff;border-radius:var(--radius);border:none;width:100%;margin-top:18px;padding:14px 0;font-size:15px;font-weight:600;transition:transform .16s,box-shadow .16s;box-shadow:0 6px 20px #ff6e1e59}.save-btn:active{transform:scale(.97);box-shadow:0 3px 12px #ff6e1e4d}.tx.unresolved .ava{outline:1.5px dashed var(--accent);outline-offset:1px}.muted{color:var(--text-tertiary)}.period-select{background:var(--card);border:.5px solid var(--border);color:var(--text);border-radius:var(--radius-sm);outline:none;padding:8px 12px;font-family:inherit;font-size:15px;font-weight:500}.period-years{gap:8px;margin-bottom:10px;display:flex}.period-years button{background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);color:var(--text-secondary);border-radius:20px;padding:7px 16px;font-size:14px;font-weight:500;transition:all .2s}.period-years button:active{transform:scale(.95)}.period-years button.on{background:var(--grad);color:#fff;border-color:#0000;box-shadow:0 4px 14px #ff6e1e66}.period-months{scrollbar-width:none;gap:6px;margin-bottom:14px;padding-bottom:2px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 85%,#0000 100%);mask-image:linear-gradient(90deg,#000 85%,#0000 100%)}.period-months::-webkit-scrollbar{display:none}.period-months button{border:1px solid var(--border);color:var(--text-secondary);text-transform:capitalize;background:0 0;border-radius:16px;flex:none;padding:5px 13px;font-size:13px;transition:all .2s}.period-months button:active{transform:scale(.93)}.period-months button.on{background:var(--grad);color:#fff;border-color:#0000;box-shadow:0 4px 12px #ff6e1e59}.filter-pill{background:var(--glass);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);color:var(--text-secondary);border-radius:20px;align-items:center;gap:7px;margin-top:12px;padding:8px 14px;font-size:13px;transition:all .2s;display:inline-flex}.filter-pill:active{transform:scale(.96)}.filter-pill.on{color:var(--accent);border-color:#ff8a1e66}.row2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.amt-row{gap:6px;display:flex}.amt-row .name-input{flex:1;min-width:0}.cur-toggle{border-radius:var(--radius-sm);z-index:1;background:var(--card-hover);gap:2px;padding:2px;display:flex;position:relative}.cur-toggle:before{content:"";background:var(--accent);border-radius:calc(var(--radius-sm) - 2px);z-index:-1;width:calc(50% - 2px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);position:absolute;top:2px;bottom:2px;left:2px}.cur-toggle:has(button:nth-child(2).on):before{transform:translate(calc(100% + 2px))}.cur-toggle button{color:var(--text-secondary);border:none;flex:1;padding:4px 12px;font-size:15px;transition:color .18s;background:0 0!important}.cur-toggle button.on{color:#fff;font-weight:600}.del-btn{width:100%;color:var(--red);border:1px solid var(--border);border-radius:var(--radius);background:0 0;margin-top:10px;padding:12px 0;font-size:14px;transition:transform .16s,background .16s}.del-btn:active{background:#f0747a1a;transform:scale(.97)}.fab{right:max(14px, calc(50% - var(--maxw) / 2 + 14px));bottom:calc(88px + env(safe-area-inset-bottom,0px));background:var(--grad);color:#fff;z-index:20;width:54px;height:54px;box-shadow:0 8px 24px #ff6e1e73, var(--glass-inset);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:26px;transition:transform .18s,box-shadow .18s;animation:.4s cubic-bezier(.2,.8,.2,1) both fabIn;display:flex;position:fixed}.fab:hover{transform:scale(1.08)rotate(90deg)}.fab:active{transform:scale(.92);box-shadow:0 4px 14px #ff6e1e66}.divider{background:var(--border);height:.5px;margin:0 2px}.tabbar{bottom:calc(16px + env(safe-area-inset-bottom,0px));border:1px solid var(--glass-brd);-webkit-backdrop-filter:blur(26px)saturate(150%);backdrop-filter:blur(26px)saturate(150%);z-index:30;background:#18110b6b;border-radius:30px;justify-content:space-around;width:calc(100% - 32px);max-width:400px;padding:8px 0;animation:.5s both tabbarIn;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #0009}.tab{color:var(--text-secondary);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:2px 0;font-size:10px;transition:color .2s;display:flex}.tab i{font-size:22px;transition:transform .22s cubic-bezier(.2,.8,.2,1)}.tab.active{color:var(--accent)}.tab.active i{transform:translateY(-2px)scale(1.14)}.tab:active i{transform:scale(.9)}.stacked-bar-container{scrollbar-width:none;padding-bottom:8px;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 88%,#0000 100%);mask-image:linear-gradient(90deg,#000 88%,#0000 100%)}.stacked-bar-container::-webkit-scrollbar{display:none}.stacked-bar-chart{align-items:flex-end;gap:12px;min-width:min-content;height:180px;padding-top:10px;display:flex}.bar-column{flex-direction:column;flex:none;align-items:center;width:44px;display:flex}.bar-track{border-radius:var(--radius-sm);background:var(--card-hover);align-items:flex-end;width:100%;height:130px;margin-bottom:6px;display:flex;overflow:hidden}.bar-fill{flex-direction:column;width:100%;display:flex}.bar-segment{cursor:pointer;width:100%;transition:opacity .2s,height .3s}.bar-segment:hover{filter:brightness(1.1)}.bar-label{color:var(--text-secondary);white-space:nowrap;font-size:11px}.bar-total{color:var(--text-tertiary);margin-top:2px;font-size:10px}.period-years button.on,.period-months button.on{-webkit-backdrop-filter:none;backdrop-filter:none;border:none}.app{animation:.42s cubic-bezier(.22,.8,.2,1) both screenIn}.save-btn{transition:transform .24s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,filter .18s}.fab{transition:transform .28s cubic-bezier(.34,1.56,.64,1),box-shadow .18s,filter .18s}.period-years button,.period-months button,.filter-pill,.toggle button,.cat-chip,.cur-toggle button{transition:transform .22s cubic-bezier(.34,1.56,.64,1),opacity .35s,background .2s,color .2s,border-color .2s,box-shadow .2s}.save-btn:active,.fab:active,.period-years button:active,.period-months button:active,.toggle button:active,.cur-toggle button:active,.filter-pill:active,.cat-chip:active{filter:brightness(1.1)}.card,.metric{transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}@media (hover:hover){.card:hover,.metric:hover{transform:translateY(-3px)}}.bar-segment{transition:opacity .45s cubic-bezier(.4,0,.2,1),height .5s cubic-bezier(.4,0,.2,1),filter .3s}.bar-fill{transform-origin:bottom;animation:.6s cubic-bezier(.2,.8,.2,1) both growUp}@keyframes growUp{0%{opacity:0;transform:scaleY(.82)}to{opacity:1;transform:scaleY(1)}}.bar-column:first-child .bar-fill{animation-delay:20ms}.bar-column:nth-child(2) .bar-fill{animation-delay:60ms}.bar-column:nth-child(3) .bar-fill{animation-delay:.1s}.bar-column:nth-child(4) .bar-fill{animation-delay:.14s}.bar-column:nth-child(5) .bar-fill{animation-delay:.18s}.bar-column:nth-child(6) .bar-fill{animation-delay:.22s}.bar-column:nth-child(n+7) .bar-fill{animation-delay:.26s}.onb{z-index:100;background:#000;justify-content:center;align-items:center;animation:.4s both overlayIn;display:flex;position:fixed;inset:0}.onb-splash{flex-direction:column;align-items:center;display:flex}.onb-logo{width:144px;height:auto;animation:1.05s cubic-bezier(.2,.8,.2,1) both logoIn,3.6s ease-in-out 1.2s infinite glowPulse}@keyframes logoIn{0%{opacity:0;transform:scale(.5)translateY(10px)}55%{opacity:1}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes glowPulse{0%,to{filter:drop-shadow(0 0 26px #ff781e59)}50%{filter:drop-shadow(0 0 50px #ff5a1499)}}.onb-word{font-family:"Outfit", var(--font);letter-spacing:7px;text-transform:lowercase;margin-top:28px;padding-left:7px;font-size:36px;font-weight:300;display:flex}.onb-word span{background:var(--grad-loop);color:#0000;-webkit-text-fill-color:transparent;background-size:200%;-webkit-background-clip:text;background-clip:text;animation:.75s cubic-bezier(.2,.8,.2,1) both letterIn,5s linear infinite wordShine;display:inline-block}@keyframes letterIn{0%{opacity:0;filter:blur(7px);transform:translateY(16px)scale(.8)}to{opacity:1;filter:blur();transform:none}}@keyframes wordShine{to{background-position:220%}}.onb-email{text-align:center;max-width:340px;padding:0 24px;animation:.5s both riseIn}.onb-email-logo{margin-bottom:18px}.onb-email-logo img,.onb-email-logo svg{filter:drop-shadow(0 0 26px #ff781e66);width:76px;height:auto}.onb-email h2{font-family:"Outfit", var(--font);margin:0 0 8px;font-size:24px;font-weight:400}.onb-email p{color:var(--text-secondary);margin:0 0 22px;font-size:14px;line-height:1.6}.onb-email .name-input{text-align:center;font-size:16px}.onb-email .save-btn{margin-top:16px}.onb-skip{color:var(--text-tertiary);background:0 0;border:none;margin-top:16px;font-size:13px}.tx-detail{text-align:center;padding:6px 0 16px}.tx-detail-ava{border-radius:var(--radius);justify-content:center;align-items:center;width:56px;height:56px;margin-bottom:14px;font-size:26px;display:inline-flex}.tx-detail-amt{letter-spacing:-.5px;font-size:30px;font-weight:600}.tx-detail-amt.pos{color:var(--green)}.tx-detail-amt.neg{color:var(--red)}.tx-detail-usd{color:var(--text-secondary);margin-top:2px;font-size:14px}.tx-detail-name{word-break:break-word;margin:12px 0 6px;font-size:17px;font-weight:500;line-height:1.35}.tx-detail-meta{color:var(--text-secondary);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;font-size:13px;display:flex}.tx-detail-meta .dotsep{opacity:.45}.app-gear{top:calc(12px + env(safe-area-inset-top,0px));right:max(12px, calc(50% - var(--maxw) / 2 + 12px));background:var(--glass);width:38px;height:38px;-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-brd);color:var(--text-secondary);z-index:40;border-radius:50%;justify-content:center;align-items:center;font-size:18px;transition:transform .25s cubic-bezier(.34,1.56,.64,1),color .2s;display:flex;position:fixed}.app-gear:active{color:var(--accent);transform:scale(.9)rotate(60deg)}.google-btn{color:#1f1f1f;border-radius:var(--radius-sm);background:#fff;border:none;justify-content:center;align-items:center;gap:10px;width:100%;margin-top:14px;padding:12px 0;font-size:15px;font-weight:500;transition:transform .18s,filter .18s;display:flex}.google-btn:active{filter:brightness(.95);transform:scale(.97)}.google-btn .g{color:#4285f4;font-family:Arial,sans-serif;font-size:17px;font-weight:700}
