:root{color-scheme:light;--font: "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Nunito", -apple-system, BlinkMacSystemFont, sans-serif;--font-brand: "Fredoka", "Nunito", sans-serif;--color-primary: #4E8C6A;--color-primary-rgb: 78,140,106;--color-primary-light: #8FBBA1;--color-primary-grad: linear-gradient(140deg, #69A284 0%, #4E8C6A 55%, #3C7257 100%);--color-bg-0: rgba(249, 237, 230, 0);--color-bg: #F9EDE6;--color-bg-card: #FFFFFF;--color-bg-card-alt: #FFFBF6;--color-chip: #F0E2D6;--color-field: #FBF4EC;--color-text: #2C2521;--color-text-muted: #8A7B6E;--color-text-faint: #B9A998;--color-border: rgba(70, 50, 38, .08);--color-border-strong: rgba(70, 50, 38, .16);--color-error: #BB4326;--color-success: #3E7D5A;--color-success-soft: #E7F8EF;--color-error-soft: #FBEDE6;--color-primary-soft: rgba(78, 140, 106, .12);--color-primary-shadow: rgba(60, 114, 87, .4);--guide-scrim: rgba(14, 22, 18, .72);--color-expense-soft: rgba(187, 67, 38, .12);--color-income-soft: rgba(62, 125, 90, .12);--color-warning-bg: #FFF3CD;--color-info-bg: rgba(0, 0, 0, .03);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 24px;--radius-xl: 32px;--shadow-card: 0 2px 12px rgba(20, 20, 40, .05);--shadow-card-glow: 0 10px 34px rgba(20, 20, 40, .1);--shadow-fab: 0 12px 28px rgba(78, 140, 106, .45);--shadow-panel: -10px 0 50px rgba(15, 15, 35, .28);--shadow-guide: 0 18px 46px rgba(24, 34, 28, .26);--color-track: #D7DAE5;--color-row-press: rgba(28, 28, 46, .045);--color-danger: #EF4444;--color-danger-soft: rgba(239, 68, 68, .12);--gradient-header: linear-gradient(135deg, #69A284 0%, #4E8C6A 52%, #3C7257 100%);--nav-height: 52px;--safe-bottom: env(safe-area-inset-bottom, 24px);--safe-top: env(safe-area-inset-top, 59px)}[data-theme=dark]{color-scheme:dark;--color-bg-0: rgba(26, 37, 32, 0);--color-bg: #1A2520;--color-bg-card: #27352E;--color-bg-card-alt: #2E3D35;--color-chip: #324239;--color-field: #2E3D35;--color-text: #F4ECE2;--color-text-muted: rgba(244, 236, 226, .58);--color-text-faint: rgba(244, 236, 226, .34);--color-border: rgba(244, 236, 226, .08);--color-border-strong: rgba(244, 236, 226, .16);--color-error: #EE9078;--color-success: #83C39A;--color-success-soft: rgba(52, 211, 153, .18);--color-error-soft: rgba(238, 144, 120, .14);--color-primary-soft: rgba(78, 140, 106, .22);--color-primary-shadow: rgba(0, 0, 0, .5);--color-primary-rgb: 78,140,106;--guide-scrim: rgba(4, 9, 6, .8);--shadow-card: 0 2px 10px rgba(0, 0, 0, .25);--shadow-card-glow: 0 8px 28px rgba(0, 0, 0, .45);--shadow-fab: 0 12px 28px rgba(78, 140, 106, .45);--shadow-panel: -10px 0 50px rgba(0, 0, 0, .55);--shadow-guide: 0 18px 46px rgba(0, 0, 0, .6);--color-track: #3A4A40;--color-row-press: rgba(255, 255, 255, .05);--color-danger: #F87171;--color-danger-soft: rgba(248, 113, 113, .16);--color-expense-soft: rgba(238, 144, 120, .18);--color-income-soft: rgba(131, 195, 154, .18);--color-warning-bg: rgba(245, 158, 11, .15);--color-info-bg: rgba(255, 255, 255, .04)}[data-theme=dark] .input{background:var(--color-field);color:var(--color-text);border-color:var(--color-border)}[data-theme=dark] .bottom-nav{background:var(--color-bg-card);border-top-color:var(--color-border)}[data-theme=dark] .btn--secondary{background:var(--color-border);color:var(--color-text)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}input,textarea,select,button{font-family:inherit}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}*,*:before,*:after{-webkit-user-select:none;user-select:none}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text}html{-webkit-text-size-adjust:100%;height:100%;width:100%;overflow:hidden;overflow-x:hidden;max-width:100vw;overscroll-behavior:none;background-color:var(--color-bg)}body{font-family:var(--font);background-color:var(--color-bg);color:var(--color-text);height:100%;width:100%;overflow:hidden;overflow-x:hidden;max-width:100vw;overscroll-behavior:none}#root{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;height:100dvh;display:flex;flex-direction:column;overflow:hidden;overflow-x:hidden;background-color:var(--color-bg)}.app-shell{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;max-width:430px;margin:0 auto;height:100%;height:100dvh;display:flex;flex-direction:column;background-color:var(--color-bg);overflow:hidden;overflow-x:hidden}.status-bar-bg{position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,59px);background-color:var(--color-bg);z-index:95;pointer-events:none}.status-bar-bg:after{content:"";position:absolute;left:0;right:0;bottom:-28px;height:28px;background:linear-gradient(to bottom,var(--color-bg),var(--color-bg-0));pointer-events:none}.page{flex:1;overflow-y:auto;overflow-x:hidden;max-width:100%;height:100%;touch-action:pan-y;padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px);-webkit-overflow-scrolling:touch;animation:page-enter .24s ease-out both;background-color:var(--color-bg)}.page--auth{padding-bottom:0}.card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-card);transition:transform .15s ease,box-shadow .15s ease}.card:active{transform:scale(.985);box-shadow:0 1px 6px #0000000a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:none;border-radius:var(--radius-md);font-size:16px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s;text-decoration:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.97);opacity:.9}.btn--primary{background:var(--color-primary-grad);color:#fff;padding:14px 24px;width:100%;box-shadow:0 10px 26px #4e8c6a57}.btn--secondary{background:var(--color-border);color:var(--color-text);padding:14px 24px;width:100%}.btn--ghost{background:transparent;color:var(--color-primary);padding:10px 16px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input-group{display:flex;flex-direction:column;gap:6px}.input-group label{font-size:13px;font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.input{background:var(--color-bg);border:1.5px solid var(--color-border);border-radius:var(--radius-md);padding:14px 16px;font-size:16px;color:var(--color-text);width:100%;outline:none;transition:border-color .15s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #4e8c6a24}.input::placeholder{color:var(--color-text-muted);opacity:.6}.fab{position:fixed;bottom:calc(env(safe-area-inset-bottom,34px) + 16px);left:50%;transform:translate(-50%);width:58px;height:58px;border-radius:50%;background:var(--color-primary-grad);color:#fff;font-size:32px;font-weight:300;line-height:1;border:3px solid var(--color-bg);box-shadow:var(--shadow-fab);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:50;-webkit-tap-highlight-color:transparent;transition:transform .26s cubic-bezier(.32,.72,0,1),box-shadow .15s}.fab--open{transform:translate(-50%) rotate(45deg)}.fab:active{transform:translate(-50%) scale(.93);box-shadow:0 4px 12px #4e8c6a4d}.bottom-nav{position:fixed;bottom:0;left:0;right:0;margin:0 auto;width:100%;max-width:430px;height:calc(var(--nav-height) + var(--safe-bottom));background:#f9ede6eb;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--color-border);display:flex;align-items:flex-start;padding-top:10px;padding-bottom:env(safe-area-inset-bottom,20px);z-index:40}.bottom-nav:before{content:"";position:absolute;top:-20px;left:50%;transform:translate(-50%);width:84px;height:84px;border-radius:50%;background:var(--color-bg);z-index:-1}[data-theme=dark] .bottom-nav{background:#1a2520eb}[data-theme=dark] .bottom-nav:before{background:var(--color-bg)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border:none;cursor:pointer;color:var(--color-text-muted);font-size:10px;font-weight:500;-webkit-tap-highlight-color:transparent;transition:color .18s ease;padding:4px 0}.nav-item svg{transition:transform .28s cubic-bezier(.34,1.56,.64,1)}.nav-item.active svg{transform:scale(1.18)}.nav-item.active{color:var(--color-primary)}.nav-item svg{width:24px;height:24px}.nav-item--center{visibility:hidden;pointer-events:none}.text-muted{color:var(--color-text-muted)}.text-sm{font-size:13px}.text-xs{font-size:11px}.text-lg{font-size:20px}.text-xl{font-size:24px;font-weight:700}.font-bold{font-weight:700}.font-semi{font-weight:600}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-4{gap:16px}.gap-2{gap:8px}.w-full{width:100%}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.p-4{padding:16px}.px-4{padding-left:16px;padding-right:16px}.spinner{width:24px;height:24px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes page-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes slide-from-right{0%{opacity:.3;transform:translate(28%)}to{opacity:1;transform:none}}@keyframes slide-from-left{0%{opacity:.3;transform:translate(-28%)}to{opacity:1;transform:none}}.page--slide-left{animation:slide-from-right .22s cubic-bezier(.25,.46,.45,.94) both}.page--slide-right{animation:slide-from-left .22s cubic-bezier(.25,.46,.45,.94) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes stack-card-in{0%{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes sheet-slide-up{0%{transform:translateY(72px);opacity:0}to{transform:none;opacity:1}}@keyframes sheet-slide-down{0%{transform:none;opacity:1}to{transform:translateY(72px);opacity:0}}@keyframes scale-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes scale-pop-out{0%{opacity:1;transform:none}to{opacity:0;transform:scale(.94)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes blobFloat1{0%{transform:translate(0)}25%{transform:translate(-40px,28px)}50%{transform:translate(-88px,52px)}75%{transform:translate(-30px,14px)}to{transform:translate(0)}}@keyframes blobFloat2{0%{transform:translate(0)}25%{transform:translate(40px,-28px)}50%{transform:translate(88px,-52px)}75%{transform:translate(30px,-14px)}to{transform:translate(0)}}@keyframes blobFloat3{0%{transform:translate(0)}33%{transform:translate(-44px,-60px)}66%{transform:translate(22px,-30px)}to{transform:translate(0)}}@keyframes smBob{0%,to{transform:none}50%{transform:translateY(-9px)}}@keyframes smShadow{0%,to{transform:translate(-50%) scale(1);opacity:.16}50%{transform:translate(-50%) scale(.82);opacity:.1}}@keyframes smLean{0%,to{transform:rotate(-3deg) translateY(0)}50%{transform:rotate(3deg) translateY(-6px)}}@keyframes smCheer{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-16px) rotate(2deg)}}@keyframes smBlink{0%,92%,to{transform:scaleY(1)}95%{transform:scaleY(.1)}}@keyframes smPulse{0%,to{transform:scale(.6);opacity:.4}50%{transform:scale(1);opacity:1}}@keyframes smDotFloat{0%,to{transform:none}50%{transform:translateY(-7px) scale(1.05)}}@keyframes smHandWave{0%,to{transform:none}50%{transform:translateY(-10px) rotate(-12deg)}}@keyframes smDart{0%,18%{transform:translate(0)}32%,52%{transform:translate(11%)}66%,86%{transform:translate(-11%)}to{transform:translate(0)}}@keyframes smFlip{0%{transform:rotateY(0)}to{transform:rotateY(360deg)}}@keyframes smFloat{0%,to{transform:none}50%{transform:translateY(-7px)}}@keyframes smShine{0%{transform:translate(-160%) skew(-18deg)}to{transform:translate(260%) skew(-18deg)}}@keyframes loginPop{0%{opacity:0;transform:scale(.72) translateY(8px)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes loginRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes smLogoIn{0%{opacity:0;transform:scale(.45) rotate(-160deg)}55%{opacity:1}to{opacity:1;transform:none}}@keyframes sdGhost{0%,to{opacity:.5}50%{opacity:.85}}@keyframes sdRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes sdPtrPulse{0%,to{opacity:.85}50%{opacity:1}}@keyframes seroSlideIn{0%{transform:translateY(7px);opacity:.55}to{transform:none;opacity:1}}.sero-segfade{animation:seroSlideIn .28s ease both}@keyframes onbPop{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:none}}@keyframes onbRise{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}@keyframes onbDraw{0%{stroke-dashoffset:14}to{stroke-dashoffset:0}}@keyframes splashLogoIn{0%{opacity:0;transform:scale(.45) rotate(-160deg)}55%{opacity:1}to{opacity:1;transform:none}}@keyframes splashFloat{0%,to{transform:none}50%{transform:translateY(-7px)}}@keyframes splashShine{0%{transform:translate(-160%) skew(-18deg)}to{transform:translate(260%) skew(-18deg)}}@keyframes splashRise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes splashDot{0%{opacity:0;transform:scale(.72) translateY(8px)}60%{opacity:1}to{opacity:1;transform:none}}.alert{border-radius:var(--radius-md);padding:12px 16px;font-size:14px;font-weight:500}.alert--error{background:#fee2e2;color:var(--color-error)}.alert--success{background:#d1fae5;color:var(--color-success)}.app-shell.sheet-open .page{overflow:hidden}.bottom-sheet{overflow-y:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;touch-action:pan-y;padding-bottom:calc(32px + var(--safe-bottom))!important}@media (min-width: 640px){:root{--safe-top: 0px}.app-shell{max-width:none;overflow:visible;overflow-x:hidden}.page{padding-left:220px;padding-bottom:16px}.bottom-nav,.fab{display:none!important}.sheet-overlay{align-items:center!important;justify-content:center!important;padding:24px!important}.sheet-overlay>.bottom-sheet{border-radius:var(--radius-xl)!important;max-width:480px!important;width:100%!important;max-height:80vh!important;margin:0 auto!important}.tablet-sidebar{position:fixed;top:0;left:0;bottom:0;width:220px;background:var(--color-bg-card);border-right:1px solid var(--color-border);display:flex;flex-direction:column;padding:0 12px 32px;z-index:40;box-shadow:2px 0 16px #4e8c6a14;overflow-y:auto}.sidebar-brand{padding:24px 12px 20px;border-bottom:1px solid var(--color-border);margin-bottom:12px;flex-shrink:0}.sidebar-nav-item{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:var(--radius-md);border:none;background:transparent;color:var(--color-text-muted);font-size:14px;font-weight:600;cursor:pointer;width:100%;text-align:left;transition:background .15s,color .15s;-webkit-tap-highlight-color:transparent;margin-bottom:2px}.sidebar-nav-item:hover{background:var(--color-border);color:var(--color-text)}.sidebar-nav-item.active{background:#4e8c6a1f;color:var(--color-primary)}.sidebar-nav-item svg{width:20px;height:20px;flex-shrink:0}.sidebar-actions{margin-top:12px;padding-top:16px;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:8px;flex-shrink:0}.sidebar-footer{margin-top:auto;padding-top:16px;border-top:1px solid var(--color-border);flex-shrink:0}}[data-theme=dark] .tablet-sidebar{background:#27352e;border-right-color:#f4ece214}.bubbles{position:absolute;top:0;left:0;right:0;height:280px;overflow:hidden;pointer-events:none;z-index:0}.bubble{position:absolute;border-radius:50%;opacity:.12;background:var(--color-primary)}
