@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/bfd813093b8ca1bb-s.p.3ok2djvs6w93k.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/acc5f86302586f33-s.1ttn5ge0anb6a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:100 900;font-stretch:100%;font-display:swap;src:url(../media/f304c3cf3765fb5f-s.p.0h0-3wqrkgcb1.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Thai Fallback;src:local(Arial);ascent-override:99.79%;descent-override:42.32%;line-gap-override:0.0%;size-adjust:106.33%}.noto_sans_thai_66b6a8b3-module__rZnXIG__className{font-family:Noto Sans Thai,Noto Sans Thai Fallback;font-style:normal}.noto_sans_thai_66b6a8b3-module__rZnXIG__variable{--font-body:"Noto Sans Thai", "Noto Sans Thai Fallback"}
@font-face{font-family:Mali;font-style:normal;font-weight:500;font-display:swap;src:url(../media/1aca6a6e0c6cb071-s.p.22p_0ylkoncz5.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Mali;font-style:normal;font-weight:500;font-display:swap;src:url(../media/923cc665d15ce831-s.0boakaoig61zc.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mali;font-style:normal;font-weight:500;font-display:swap;src:url(../media/94d48301e0f2809a-s.30caf5l8lnaou.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mali;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d0aeca6cdfe31f90-s.p.28qcf_2c5gqpd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(../media/4ae2e992fa830df4-s.p.42c5w67lj_gb-.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(../media/13b12f814895d579-s.2fanwxz0cveg0.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ad38b5e95b4c5aae-s.0sezovpwhbsg3.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mali;font-style:normal;font-weight:600;font-display:swap;src:url(../media/0020773107769bf5-s.p.38exmclhe5n0o.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mali;font-style:normal;font-weight:700;font-display:swap;src:url(../media/a3150755b153d765-s.p.06l_kmf12p5hu.woff2)format("woff2");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Mali;font-style:normal;font-weight:700;font-display:swap;src:url(../media/b1983cb42d5e28fe-s.0rgvpu17j79wp.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Mali;font-style:normal;font-weight:700;font-display:swap;src:url(../media/fb29908bfb3ab524-s.1jwanslnpm-4k.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Mali;font-style:normal;font-weight:700;font-display:swap;src:url(../media/24bc33ae821208b7-s.p.045trq_3sylcd.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mali Fallback;src:local(Arial);ascent-override:93.81%;descent-override:22.33%;line-gap-override:0.0%;size-adjust:111.93%}.mali_c51e201-module__pOXY6W__className{font-family:Mali,Mali Fallback;font-style:normal}.mali_c51e201-module__pOXY6W__variable{--font-playful:"Mali", "Mali Fallback"}
:root{--grape:#7947e5;--grape-dark:#6333ca;--ink:#302641;--muted:#71647f;--pink:#ff8fba;--lime:#c7ec83;--canvas:#f8f7fc;--line:#ede9f2}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--canvas);color:var(--ink);font-family:var(--font-body),sans-serif;margin:0;font-size:14px;line-height:1.65}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.58}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #9a72f0}input:focus,select:focus{outline-offset:2px;outline:2px solid #bda0f5}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700}h1,h2{letter-spacing:-.5px}h3{font-size:17px}svg{flex-shrink:0}button{transition:background .15s,transform .15s}button:active:not(:disabled){transform:translateY(1px)}.app-shell{min-height:100vh;display:flex}.sidebar{border-right:1px solid var(--line);z-index:15;background:#fff;flex-direction:column;width:230px;padding:32px 20px 22px;display:flex;position:fixed;inset:0 auto 0 0}.brand{font-family:var(--font-playful),sans-serif;align-items:center;gap:12px;padding:0 12px;font-size:26px;font-weight:700;display:flex}.brand-icon{background:var(--grape);color:#fff;border-radius:16px;justify-content:center;align-items:center;width:44px;height:44px;display:inline-flex;transform:rotate(-6deg);box-shadow:3px 4px #ede4ff}.brand small{font-family:var(--font-body);color:var(--muted);letter-spacing:.1px;margin-top:-3px;font-size:11px;font-weight:400;display:block}.side-nav-label{color:#6c6674;margin:42px 14px 13px;font-size:11px}.sidebar nav{gap:9px;display:grid}.nav-item{color:#6c5f75;text-align:left;background:0 0;border-radius:13px;align-items:center;gap:12px;width:100%;min-height:48px;padding:13px 14px;font-size:13px;display:flex}.nav-item:hover{background:#f7f1ff}.nav-item.active{color:var(--grape-dark);background:#f0e7ff;font-weight:700}.nav-dot{background:var(--grape);border-radius:50%;width:6px;height:6px;margin-left:auto}.sidebar-note{background:#fbf3ff;border-radius:20px 20px 20px 5px;margin:40px 12px 25px;padding:24px 17px 17px;position:relative;transform:rotate(-2deg)}.sidebar-note b{font-family:var(--font-playful);color:#7a569c;font-size:17px;line-height:1.7}.sidebar-note p{color:#746183;margin-top:8px;font-size:11px}.note-flower{color:#815768;font-size:48px;line-height:1;position:absolute;top:-20px;right:12px;transform:rotate(12deg)}.sidebar-bottom{color:#685f72;margin-top:auto;padding:10px 13px;font-size:11px}.sidebar-bottom small{color:#6a6570;margin:10px 0 0 12px;display:block}.online-dot{background:#76bc7b;border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.main-content{width:calc(100% - 230px);margin-left:230px}.topbar{border-bottom:1px solid var(--line);background:#fff;justify-content:space-between;align-items:center;height:77px;padding:0 40px;display:flex}.breadcrumb{color:#6c6472;align-items:center;gap:13px;font-size:11px;display:flex}.breadcrumb b{color:#695b7a;font-weight:500}.topbar-right{align-items:center;gap:12px;display:flex}.topbar-name{font-size:12px;font-weight:600}.icon-button{color:#71647f;background:0 0;border-radius:10px;justify-content:center;align-items:center;padding:8px;display:inline-flex}.icon-button:hover{background:#f0eafa}.notification-button{margin-right:10px;position:relative}.notification-button i{background:#f79cb7;border:1px solid #fff;border-radius:100%;width:6px;height:6px;position:absolute;top:6px;right:9px}.user-avatar{color:#885d2f;width:34px;height:34px;font-family:var(--font-playful);background:#f7e0bd;border:3px solid #fff1db;border-radius:50%;place-items:center;font-size:17px;font-weight:700;display:grid}.content{max-width:1350px;margin:auto;padding:29px 40px 20px}.demo-banner{color:#746087;background:#f0eafa;border-radius:8px;align-items:center;gap:8px;margin-bottom:17px;padding:6px 11px;font-size:11px;display:flex}.page-heading{justify-content:space-between;align-items:center;gap:20px;margin:0 0 27px;display:flex}.welcome-line{color:#6d627a;margin-bottom:3px;font-size:12px}.page-heading h1{font-size:26px;font-family:var(--font-playful);line-height:1.6}.page-heading p{color:#6b6172;margin-top:5px;font-size:11px}.heading-spark{color:#596937;vertical-align:middle;margin-left:11px;font-size:34px}.month-picker{color:#6d5e80;background:#fff;border:1px solid #e9e3f0;border-radius:11px;flex-shrink:0;align-items:center;gap:10px;padding:8px 12px;display:flex}.month-picker input{color:#726080;background:0 0;border:0;width:133px;min-height:22px;font-size:11px}.hero{background:#fff2ba;border:1px solid #f8e8a5;border-radius:24px;justify-content:space-between;align-items:center;min-height:279px;padding:29px 34px;display:flex;position:relative;overflow:hidden}.hero-copy{z-index:2;position:relative}.pill{color:#7857a5;background:#f0e7ff;border-radius:30px;align-items:center;padding:5px 12px;font-size:11px;font-weight:500;display:inline-flex}.white-pill{color:#78673c;background:#fff9dc;border:1px solid #f2e7b6}.hero h2{font-family:var(--font-playful);color:#6a5437;margin-top:13px;font-size:21px}.hero-amount{letter-spacing:-1.4px;color:#5d422d;font-variant-numeric:tabular-nums;font-size:42px;font-weight:750;line-height:1.6}.hero-amount span{letter-spacing:0;margin-left:10px;font-size:13px;font-weight:400}.hero p{color:#75633e;font-size:11px}.hero-actions{gap:10px;margin-top:22px;display:flex}.button{white-space:nowrap;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:43px;padding:11px 19px;font-size:12px;font-weight:600;display:inline-flex}.primary{background:var(--grape);color:#fff;box-shadow:0 3px #6237c2}.primary:hover{background:#6840c5}.upload-button{color:#7b6343;background:#fff9e4;border:1px solid #eee0ae}.upload-button:hover{background:#fff}.hero-art{justify-content:center;align-self:stretch;align-items:flex-end;width:305px;margin-top:16px;margin-right:5px;display:flex;position:relative}.mascot{width:270px;max-width:100%;height:auto;display:block}.mascot.small{width:70px}.hero-art .mascot{z-index:1;position:relative;transform:rotate(6deg)}.sticker{font-family:var(--font-playful);color:#7b5f3e;background:#fff;border:1px solid #e8debf;border-radius:8px;padding:7px 14px;font-size:11px;position:absolute;top:0;right:13px;transform:rotate(7deg);box-shadow:0 3px #ecd99b}.hero-doodle{color:#805e2c;font-size:36px;position:absolute;bottom:45px;right:-2px}.stats-grid{grid-template-columns:repeat(3,1fr);gap:17px;margin-top:21px;display:grid}.stat-card{border:1px solid var(--line);background:#fff;border-radius:17px;align-items:flex-start;gap:13px;padding:21px 18px;display:flex}.stat-symbol{border-radius:14px;place-items:center;width:40px;height:40px;margin-top:3px;display:grid}.green{color:#536d2d;background:#f0f7dc}.pink{color:#91536d;background:#fff0f5}.purple{color:#7a55aa;background:#f1e9fc}.stat-card>div>span{color:#685f70;font-size:11px}.stat-card strong{letter-spacing:-.5px;margin:4px 0;font-size:25px;font-weight:700;display:block}.stat-card small{color:#69626d;font-size:11px}.report-grid{grid-template-columns:minmax(0,1.6fr) minmax(270px,1fr);gap:20px;margin-top:22px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:20px;padding:24px}.chart-head{justify-content:space-between;align-items:center;display:flex}.mini-label{color:#6b606d;font-size:11px}.chart-head :is(h2,h3){margin-top:3px;font-size:15px}.chart-legend{color:#6d6574;align-items:center;gap:6px;font-size:11px;display:flex}.chart-legend i{background:#b49ade;border-radius:50%;width:7px;height:7px}.bar-chart{background:repeating-linear-gradient(0deg,#0000 0 44px,#f9f6fb 44px 45px);justify-content:space-around;align-items:flex-end;gap:20px;height:184px;padding:12px 8px 0;display:flex}.bar-column{flex-direction:column;align-items:center;width:30px;display:flex;position:relative}.bar{background:#e6d9fa;border-radius:7px 7px 3px 3px;width:30px;max-width:100%;transition:height .3s}.bar.is-today{background:#ac85ed}.bar-value{color:#6d5f7c;white-space:nowrap;font-size:11px;position:absolute;top:-17px}.bar-label{color:#6b5f74;margin-top:8px;font-size:11px}.bar-date{color:#6d6674;font-size:11px}.budget-panel{background:#eee5ff;border:1px solid #e7d9ff;border-radius:20px;padding:23px 25px}.section-title{justify-content:space-between;align-items:center;gap:15px;margin-bottom:17px;display:flex}.section-title :is(h2,h3){font-size:16px}.section-title p{color:#6d6575;margin-top:4px;font-size:11px}.budget-panel :is(h2,h3){color:#795b9c;font-size:14px}.budget-panel .section-title{margin-bottom:5px}.budget-number{color:#7750b0;letter-spacing:-.5px;font-size:30px;font-weight:700}.budget-panel>p{color:#745f89;margin-top:2px;font-size:11px}.budget-progress{background:#dfd0f7;border-radius:10px;height:10px;margin-top:23px;overflow:hidden}.budget-progress span{background:#aa85e1;border-radius:10px;height:100%;display:block}.budget-caption{color:#725e87;justify-content:space-between;margin-top:8px;font-size:11px;display:flex}.budget-tip{color:#705e84;border-top:1px solid #dfd2ee;margin-top:20px;padding-top:13px;font-size:11px}.ledger-panel{margin-top:24px}.text-button{color:#765d96;white-space:nowrap;background:0 0;align-items:center;gap:4px;font-size:11px;display:inline-flex}.text-button:hover{color:var(--grape)}.quick-entry{color:#70617f;background:#faf7fe;border:1px solid #eee6f7;border-radius:12px;align-items:center;gap:10px;margin-bottom:13px;padding:7px 10px;display:flex}.quick-entry input{min-width:0;color:var(--ink);background:0 0;border:0;flex:1;padding:8px 3px;font-size:11px}.quick-entry input::placeholder{color:#6d6274}.quick-entry>button{color:#6d5f7d;background:#fff;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.quick-entry>button:last-child{color:#fff;background:#ad86e0}.transaction-row{border-bottom:1px solid #f2eef7;align-items:center;gap:13px;padding:14px 0;display:flex}.transaction-row:last-child{border-bottom:0;padding-bottom:3px}.transaction-emoji{background:#fff4e8;border-radius:13px;place-items:center;width:39px;height:39px;font-size:19px;display:grid}.transaction-emoji.income-icon{background:#f2f8e8}.transaction-detail{flex:1;min-width:0}.transaction-detail strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;display:block;overflow:hidden}.transaction-detail>span{color:#6a6271;align-items:center;gap:6px;font-size:11px;display:flex}.transaction-detail i{background:#cbbfd4;border-radius:50%;width:2px;height:2px}.transaction-amount{text-align:right;font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.transaction-amount.expense{color:#6e5e7e}.transaction-amount.income{color:#576d3a}.transaction-amount small{color:#66606d;font-size:11px;font-weight:400;display:block}.row-actions{gap:2px;margin-left:6px;display:flex}.row-actions button{color:#6d6474;background:0 0;border-radius:6px;place-items:center;width:27px;height:29px;display:grid}.row-actions button:hover{color:#7c58a5;background:#f3ebfc}.goals-section{margin-top:30px}.goals-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;display:grid}.goal-card{background:#fff0f6;border:1px solid #eedce7;border-radius:20px;padding:21px}.goal-color-1{background:#eef5ff;border-color:#dfe9fa}.goal-color-2{background:#f1f8e6;border-color:#e4eed4}.goal-top{justify-content:space-between;align-items:center;display:flex}.goal-top>span{font-size:28px;line-height:1.1}.goal-top b{color:#7d5f74;background:#fff8;border-radius:7px;padding:4px 8px;font-size:11px;font-weight:500}.goal-card h3{margin:17px 0 6px;font-size:12px;font-weight:600}.goal-amount{color:#825977;font-size:17px;font-weight:600}.goal-amount small{color:#786371;font-size:11px;font-weight:400}.goal-progress{background:#ead8e2;border-radius:6px;height:6px;margin-top:14px;overflow:hidden}.goal-progress span{background:#dca2c7;border-radius:6px;height:100%;display:block}.goal-color-1 .goal-progress span{background:#a9c4e7}.goal-color-1 .goal-progress{background:#dce7f4}.goal-color-1 .goal-amount{color:#4f6680}.goal-color-2 .goal-progress span{background:#b1ce80}.goal-add{color:#735e6c;background:0 0;align-items:center;gap:4px;margin-top:13px;padding:0;font-size:11px;display:flex}.new-goal-card{color:#6d607c;background:0 0;border:1.5px dashed #e0d3ef;border-radius:20px;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:201px;display:flex}.new-goal-card>span{background:#f0e8fa;border-radius:50%;place-items:center;width:37px;height:37px;margin-bottom:4px;display:grid}.new-goal-card b{font-size:11px;font-weight:500}.new-goal-card small{color:#6d6575;font-size:11px}.page-footer{color:#66606d;border-top:1px solid #eee8f5;justify-content:space-between;margin-top:35px;padding-top:17px;font-size:11px;display:flex}.page-footer>span:first-child{align-items:center;gap:6px;display:flex}.page-footer svg{color:#745f6b}.search-field{border-bottom:1px solid var(--line);color:#6d6477;align-items:center;gap:9px;padding:8px 0 15px;display:flex}.search-field input{background:0 0;border:0;width:100%;min-width:0;font-size:12px}.compact{min-height:35px;padding:8px 13px;font-size:11px}.empty-state{text-align:center;color:#6c5f75;justify-items:center;padding:40px 15px;display:grid}.empty-state h3{font-family:var(--font-playful);color:#6f5e7e;margin:14px 0 7px;font-size:18px}.empty-state p,.empty-copy{color:#6b6171;font-size:12px}.empty-copy{text-align:center;margin:25px auto}.categories-panel{margin-top:23px}.soft-icon{color:#735e86;background:#f4eafb;border-radius:11px;padding:9px;display:flex}.donut{border-radius:50%;place-items:center;width:190px;height:190px;margin:25px auto;display:grid}.donut>div{background:#fff;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:140px;height:140px;display:flex}.donut span{color:#6a5f71;font-size:11px}.donut strong{margin-top:3px;font-size:19px}.category-list{grid-template-columns:repeat(2,1fr);gap:15px 30px;max-width:650px;margin:28px auto 5px;display:grid}.category-list>div{align-items:center;gap:9px;font-size:12px;display:flex}.category-list i{border-radius:50%;flex-shrink:0;width:9px;height:9px}.category-list span{color:#73637f;flex:1}.category-list b{color:#70617b;font-weight:500}.settings-panel{max-width:900px}.profile-header{border-bottom:1px solid var(--line);align-items:center;gap:17px;padding:7px 0 25px;display:flex}.user-avatar.large{width:60px;height:60px;font-size:27px}.profile-header h2{font-size:20px}.profile-header p{color:#706579;font-size:11px}.profile-header .pill{margin-left:auto}.setting-row{border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:25px 0;display:flex}.setting-icon{color:#735b8d;background:#f4edfc;border-radius:12px;padding:12px;display:flex}.setting-icon svg{width:20px;height:20px}.setting-row>div:nth-child(2){flex:1}.setting-row h3{margin-bottom:6px;font-size:13px}.setting-row p{color:#6d5f74;font-size:11px;line-height:1.9}.toggle{background:#ddd3e6;border-radius:20px;flex-shrink:0;width:43px;height:24px;padding:3px}.toggle>span{background:#fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;display:block}.toggle.on{background:#aa82df}.toggle.on>span{transform:translate(19px)}.logout-button{color:#725f81;background:#f8f3fc;margin-top:25px}.alert{border-radius:12px;align-items:center;gap:10px;margin-bottom:15px;padding:12px 15px;font-size:12px;display:flex}.alert>button{color:inherit;background:0 0;margin-left:auto;display:flex}.error{color:#a14c5e;background:#ffedf0}.success{color:#526f36;background:#eff7e6}.busy-notice{color:var(--grape);z-index:40;background:#fff;border:1px solid #e2d4f4;border-radius:40px;align-items:center;gap:9px;padding:12px 22px;font-size:12px;display:flex;position:fixed;bottom:25px;left:calc(50% + 100px);transform:translate(-50%);box-shadow:0 8px 35px #6032b115}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:#f8f4fc;border-radius:13px;height:220px}.modal{width:min(490px,100% - 30px);color:var(--ink);border:1px solid #e6d7f7;border-radius:24px;max-height:90dvh;padding:25px;box-shadow:0 25px 100px #39225130}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#38245150}.modal-header{justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px;display:flex}.modal h2{font-family:var(--font-playful);font-size:19px}.modal-form{gap:17px;display:grid}.modal-form label{color:#746281;gap:7px;font-size:12px;display:grid}.modal-form input,.modal-form select{color:#63506f;background:#fdfbff;border:1px solid #e6ddf0;border-radius:10px;width:100%;min-height:43px;padding:11px 12px}.form-pair{grid-template-columns:1fr 1fr;gap:13px;display:grid}.full{width:100%;margin-top:7px}.hint{color:#6d5e77;font-size:11px;line-height:1.9}.modal-actions{justify-content:flex-end;gap:10px;margin-top:25px;display:flex}.secondary{color:#705e81;background:#f3edf9}.danger{color:#fff;background:#f1799c}.delete-copy{color:#6d5e74;font-size:13px;line-height:2}.mobile-nav{display:none}.boot{color:#7d5e39;background:#fff4c7;flex-direction:column;justify-content:center;align-items:center;gap:15px;min-height:100vh;display:flex}.boot .mascot{width:190px}.boot p{font-family:var(--font-playful)}.login-page{background:#f7f2fe;flex-direction:column;align-items:center;min-height:100dvh;padding:38px 7vw;display:flex}.login-brand{font-family:var(--font-playful);align-self:flex-start;align-items:center;gap:14px;font-size:27px;font-weight:700;display:flex}.brand-dot{background:#f49ebe;border-radius:50%;width:7px;height:7px;margin-left:-8px}.login-card{background:#fff;border:1px solid #eee2fc;border-radius:34px;grid-template-columns:1fr 1fr;width:100%;max-width:980px;margin:auto;display:grid;overflow:hidden;box-shadow:0 17px 70px #7441b30a}.login-art{background:#fff1af;justify-content:center;align-items:center;min-height:490px;display:flex;position:relative}.login-art .mascot{width:340px;transform:rotate(-7deg)}.login-art .sticker{background:#ffe2ee;border-color:#efc5d5;padding:10px 20px;font-size:14px;top:55px;right:40px;transform:rotate(9deg)}.login-flower{color:#5a693a;font-size:70px;line-height:1;position:absolute;bottom:48px;left:42px}.login-copy{flex-direction:column;align-items:flex-start;padding:60px 44px;display:flex}.login-copy h1{font-family:var(--font-playful);color:#5f4280;margin:20px 0 14px;font-size:35px;line-height:1.7}.login-copy p{color:#6d5f78;margin-bottom:26px;font-size:13px;line-height:2}.line-button{color:#fff;background:#06c755;width:100%;min-height:49px}.line-button:hover{background:#04ae49}.demo-button{color:#775897;background:#f6efff;width:100%;margin-top:10px}.login-copy small{color:#6d6376;text-align:center;width:100%;margin-top:20px;font-size:11px}.login-page footer{color:#746080;align-items:center;gap:7px;padding-top:25px;font-size:11px;display:flex}.login-error{color:#905064;background:#ffebf0;border-radius:10px;max-width:800px;margin-top:20px;padding:12px 18px;font-size:12px}@media (min-width:1550px){.content{padding-top:36px}.hero{min-height:303px}.hero-art{width:350px}.hero-art .mascot{width:300px}.hero h2{font-size:24px}.hero-amount{font-size:48px}.stat-card{padding:24px}.chart-panel{padding:25px 29px}}@media (max-width:1190px){.sidebar{width:208px;padding-left:13px;padding-right:13px}.main-content{width:calc(100% - 208px);margin-left:208px}.content{padding:24px}.topbar{padding:0 24px}.hero{padding:25px}.hero-art{width:240px}.hero-art .mascot{width:230px}.stat-card{gap:9px;padding:16px 12px}.stat-card strong{font-size:20px}.stat-symbol{border-radius:10px;width:34px;height:34px}.report-grid{grid-template-columns:1.4fr 1fr}.budget-panel{padding:20px}.bar-chart{gap:12px}.page-heading h1{font-size:23px}.hero-amount{font-size:38px}.row-actions{margin-left:0}}@media (max-width:920px){.sidebar{width:80px;padding:25px 13px}.brand{justify-content:center;padding:0}.brand>span:last-child,.side-nav-label,.nav-item>span,.sidebar-note,.sidebar-bottom{display:none}.sidebar nav{margin-top:40px}.nav-item{justify-content:center;padding:14px}.main-content{width:calc(100% - 80px);margin-left:80px}.page-heading h1{font-size:23px}.hero h2{font-size:20px}.hero-art{width:200px}.hero-art .sticker{font-size:11px;right:-7px}.hero-art .mascot{width:205px}.stats-grid{gap:10px}.stat-card{flex-direction:column;gap:8px;padding:15px}.stat-card strong{font-size:22px}.report-grid{grid-template-columns:1.2fr 1fr;gap:14px}.chart-panel{padding:19px}.budget-panel{padding:18px}.budget-panel :is(h2,h3){font-size:12px}.budget-number{font-size:26px}.chart-head :is(h2,h3){font-size:13px}.chart-legend{display:none}.goals-grid{gap:12px}.goal-card{padding:17px}.new-goal-card{min-height:190px}.hero-amount{font-size:37px}.login-copy{padding:40px 29px}.login-copy h1{font-size:30px}.login-art{min-height:440px}.login-art .mascot{width:300px}}@media (max-width:640px){body{font-size:14px}.sidebar{display:none}.main-content{width:100%;margin-left:0}.topbar{height:63px;padding:0 20px}.topbar .breadcrumb{gap:7px;font-size:11px}.topbar-name{display:none}.topbar-right{gap:5px}.notification-button{margin-right:5px}.content{padding:18px 17px 105px}.demo-banner{margin-bottom:18px;padding:7px 10px;font-size:11px}.page-heading{margin-bottom:19px;display:block;position:relative}.welcome-line{font-size:11px}.page-heading h1{max-width:340px;font-size:23px;line-height:1.65}.heading-spark{margin-left:7px;font-size:28px}.page-heading p{margin-top:5px;font-size:11px}.month-picker{gap:7px;margin-top:16px;padding:7px 10px;display:inline-flex}.month-picker input{width:128px;font-size:11px}.hero{border-radius:21px;align-items:flex-start;min-height:284px;padding:23px 20px}.hero h2{max-width:230px;margin-top:16px;font-size:17px}.hero-amount{letter-spacing:-1px;font-size:35px}.hero-amount span{font-size:11px}.hero p{max-width:210px;font-size:11px}.hero-art{opacity:.95;width:125px;height:150px;position:absolute;bottom:17px;right:0}.hero-art .mascot{width:146px;max-width:none}.hero-art .sticker{padding:5px 7px;font-size:11px;top:0;right:6px}.hero-doodle{display:none}.hero-actions{flex-wrap:wrap;gap:8px;max-width:240px;margin-top:21px}.hero-actions .button{gap:5px;min-height:38px;padding:10px 13px;font-size:11px}.hero-actions .button svg{width:16px}.hero-actions .upload-button{background:#fff7df}.white-pill{font-size:11px}.stats-grid{gap:8px;margin-top:14px}.stat-card{border-radius:14px;gap:5px;padding:13px 11px}.stat-card>div>span{white-space:nowrap;font-size:11px}.stat-card strong{letter-spacing:-.4px;margin:4px 0 1px;font-size:17px}.stat-card small{font-size:11px;line-height:1.6;display:block}.stat-symbol{border-radius:9px;width:30px;height:30px;margin-bottom:2px}.stat-symbol svg{width:19px}.report-grid{grid-template-columns:1fr;gap:16px;margin-top:16px}.chart-panel{padding:20px}.chart-head :is(h2,h3){font-size:15px}.chart-legend{display:flex}.bar-chart{height:178px;padding-top:12px}.bar,.bar-column{width:28px}.budget-panel{padding:19px 21px}.budget-number{font-size:29px}.budget-panel :is(h2,h3){font-size:14px}.budget-progress{margin-top:17px}.budget-tip{margin-top:13px;padding-top:11px}.panel{border-radius:17px;padding:19px}.ledger-panel{margin-top:17px}.section-title :is(h2,h3){font-size:14px}.section-title p{font-size:11px}.section-title{gap:10px;margin-bottom:17px}.text-button{gap:2px;font-size:11px}.quick-entry{gap:5px;padding:7px}.quick-entry>svg{display:none}.quick-entry input{padding:8px 4px;font-size:11px}.quick-entry>button{flex-shrink:0;width:28px;height:30px}.quick-entry>button svg{width:16px}.transaction-row{gap:10px;padding:13px 0}.transaction-emoji{border-radius:10px;width:33px;height:33px;font-size:17px}.transaction-detail strong{max-width:150px;font-size:11px}.transaction-detail>span{font-size:11px;display:block}.transaction-detail i{display:none}.transaction-amount{white-space:nowrap;font-size:11px}.transaction-amount small{font-size:11px}.row-actions{flex-direction:column;gap:0;margin-left:-3px}.row-actions button{width:22px;height:23px}.row-actions button svg{width:13px}.goals-section{margin-top:24px}.goals-section .section-title :is(h2,h3){font-size:13px}.goals-section .section-title :is(h2,h3)>span{display:none}.goals-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.goal-card{border-radius:17px;padding:16px}.goal-top>span{font-size:25px}.goal-card h3{margin:13px 0 5px;font-size:11px}.goal-amount{font-size:16px}.goal-amount small{font-size:11px;display:block}.goal-progress{margin-top:12px}.goal-add{margin-top:12px;font-size:11px}.new-goal-card{border-radius:17px;min-height:190px}.new-goal-card b,.new-goal-card small{font-size:11px}.page-footer{margin-top:26px;font-size:11px}.mobile-nav{z-index:20;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);padding:10px 9px calc(10px + env(safe-area-inset-bottom));background:#fffffff5;border-top:1px solid #ede5f5;justify-content:space-around;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav button{color:#695f74;background:0 0;border-radius:13px;flex-direction:column;align-items:center;gap:4px;min-width:55px;padding:5px 12px;display:flex}.mobile-nav button.active{color:#7958ac;background:#f5effc}.mobile-nav span{font-size:11px}.busy-notice{justify-content:center;min-width:180px;font-size:11px;bottom:90px;left:50%}.profile-header{gap:10px}.profile-header .pill{padding:4px 8px;font-size:11px}.profile-header h2{font-size:17px}.profile-header p{font-size:11px}.user-avatar.large{width:47px;height:47px;font-size:23px}.setting-row{gap:10px;padding:20px 0}.setting-icon{border-radius:10px;padding:9px}.setting-icon svg{width:17px}.setting-row h3,.setting-row p{font-size:11px}.toggle{width:40px;height:23px}.toggle>span{width:17px;height:17px}.toggle.on>span{transform:translate(17px)}.category-list{grid-template-columns:1fr;gap:12px}.category-list>div{font-size:11px}.login-page{padding:25px 20px}.login-brand{margin-bottom:25px;font-size:23px}.login-card{border-radius:27px;grid-template-columns:1fr;margin:0 auto}.login-art{min-height:230px}.login-art .mascot{width:225px}.login-art .sticker{padding:6px 12px;font-size:11px;top:25px;right:25px}.login-flower{font-size:43px;bottom:30px;left:25px}.login-copy{text-align:center;align-items:center;padding:28px 25px 32px}.login-copy h1{margin:15px 0 11px;font-size:28px}.login-copy p{margin-bottom:23px;font-size:12px}.login-copy>.pill,.login-copy small{font-size:11px}.login-page footer{margin-top:auto;font-size:11px}.modal{padding:23px 20px}.modal h2{font-size:17px}.modal-form{gap:14px}.modal-form label{font-size:11px}.modal-form input,.modal-form select{font-size:14px}.form-pair{gap:10px}.login-error{font-size:11px}.alert{align-items:flex-start;font-size:11px}}@media (max-width:370px){.content{padding-left:12px;padding-right:12px}.page-heading h1{font-size:21px}.stat-card{padding:12px 8px}.stat-card strong{font-size:15px}.hero-art{width:104px;right:-10px}.hero-art .mascot{width:130px}.hero h2{font-size:16px}.hero-amount{font-size:32px}.hero-actions{max-width:218px}.hero-actions .button{padding:9px 10px;font-size:11px}.transaction-detail strong{max-width:120px}.goal-amount{font-size:14px}.mobile-nav button{padding:5px 16px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media (max-width:640px){.quick-entry input,.modal-form input,.modal-form select{font-size:16px}.mobile-nav button{flex:1;min-width:0;padding:5px 8px}.stat-card>div{width:100%;min-width:0}.stat-card strong{overflow-wrap:anywhere;font-size:clamp(13px,4.2vw,17px)}.hero-actions{max-width:225px}.hero-actions .button{min-height:44px}.row-actions button{width:32px;height:30px}.quick-entry>button{width:36px;height:38px}.sidebar-note{margin-top:30px}}
