@font-face{font-family:Prompt;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/prompt-thai-300.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:300;font-display:swap;src:url(/fonts/prompt-latin-300.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/prompt-thai-400.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/prompt-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/prompt-thai-500.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/prompt-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/prompt-thai-600.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/prompt-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Prompt;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/prompt-thai-700.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/prompt-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bar: #37474f;--bar-text: #ffffff;--page: #e6eaed;--card: #ffffff;--line: #e3e7ea;--text: #1f2933;--muted: #78889a;--expense: #d93b3b;--income: #2e9e5b;--accent: #f5b301;--radius: 12px;--touch: 44px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--page);color:var(--text);font-family:Prompt,system-ui,-apple-system,Segoe UI,Leelawadee UI,Tahoma,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}.app{max-width:480px;margin:0 auto;min-height:100%;background:var(--page);position:relative;padding-bottom:132px}.chiprow{display:flex;gap:8px;overflow-x:auto;padding:8px 12px;-webkit-overflow-scrolling:touch;scrollbar-width:none}.chiprow::-webkit-scrollbar{display:none}.qchip{flex:0 0 auto;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:18px;padding:7px 13px;font-size:13.5px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.qchip.on{background:var(--bar);border-color:var(--bar);color:#fff;font-weight:600}.qchip.tpl{border-style:dashed}.row.k-exp{box-shadow:inset 3px 0 #e57373;background:#e573730b}.row.k-inc{box-shadow:inset 3px 0 #66bb6a;background:#66bb6a0b}.row.k-tra{box-shadow:inset 3px 0 #64b5f6;background:#64b5f60d}.row.k-len{box-shadow:inset 3px 0 #ffb74d;background:#ffb74d0f}.row.k-inv{box-shadow:inset 3px 0 #ba68c8;background:#ba68c80d}.topbar{position:sticky;top:0;z-index:20;background:var(--bar);color:var(--bar-text);display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 8px 10px;min-height:52px}.topbar h1{font-size:17px;font-weight:600;margin:0;flex:1;text-align:center}.iconbtn{background:transparent;border:0;color:inherit;min-width:var(--touch);min-height:var(--touch);border-radius:8px;font-size:18px;display:grid;place-items:center}.iconbtn:hover{background:#ffffff1f}.card{background:var(--card);border-radius:var(--radius);margin:12px;overflow:hidden}.card+.card{margin-top:12px}.row{display:flex;align-items:center;gap:12px;padding:12px 14px;min-height:var(--touch);border-bottom:1px solid var(--line);background:none;border-left:0;border-right:0;border-top:0;width:100%;text-align:left}.row:last-child{border-bottom:0}.row .grow{flex:1;min-width:0}.row .sub{color:var(--muted);font-size:12.5px}.icon{display:inline-grid;place-items:center;border-radius:50%;flex:0 0 auto;line-height:1}.amount{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.neg{color:var(--expense)}.pos{color:var(--income)}.zero{color:var(--muted)}.section-title{font-size:12.5px;color:var(--muted);padding:14px 18px 6px;text-transform:none;font-weight:600}.segmented{display:flex;background:#0000002e;border-radius:9px;padding:2px;gap:2px}.segmented button{flex:1;border:0;background:transparent;color:#dbe3e8;padding:7px 10px;border-radius:7px;font-size:14px;min-height:34px}.segmented button[aria-pressed=true]{background:#fff;color:var(--bar);font-weight:600}.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);background:var(--card);border-bottom:1px solid var(--line)}.daycell{border:0;background:transparent;padding:8px 2px 10px;text-align:center;min-height:66px;border-right:1px solid var(--line)}.daycell:last-child{border-right:0}.daycell .dow{font-size:10.5px;color:var(--muted)}.daycell .dnum{font-size:15px;font-weight:600;margin:1px 0 3px}.daycell .fig{font-size:10px;font-variant-numeric:tabular-nums;line-height:1.3}.daycell[aria-selected=true]{background:#eef4fb;box-shadow:inset 0 -3px 0 var(--bar)}.daycell.today .dnum{color:var(--bar)}.calpanel{background:var(--card);border-bottom:1px solid var(--line)}.calhead{display:flex;align-items:center;gap:4px;padding:6px 8px;border-bottom:1px solid var(--line)}.calhead .title{flex:1;text-align:center;font-weight:600;font-size:15px}.todaybtn{border:1px solid var(--line);background:transparent;border-radius:14px;padding:4px 12px;font-size:13px;color:var(--bar)}.calgrid{display:grid;grid-template-columns:repeat(7,1fr)}.calgrid .caldow{text-align:center;font-size:10.5px;color:var(--muted);padding:4px 0}.calcell{border:0;background:transparent;text-align:center;padding:4px 1px 6px;min-height:52px;border-top:1px solid var(--line)}.calcell .dnum{font-size:13.5px;font-weight:600}.calcell .fig{font-size:9px;font-variant-numeric:tabular-nums;line-height:1.25}.calcell.dim .dnum{color:var(--muted);opacity:.5}.calcell[aria-selected=true]{background:#eef4fb;box-shadow:inset 0 -3px 0 var(--bar)}.calcell.today .dnum{color:var(--bar);text-decoration:underline}.fab{position:fixed;left:50%;transform:translate(-50%);bottom:calc(22px + env(safe-area-inset-bottom,0px));width:58px;height:58px;border-radius:50%;border:0;background:var(--accent);color:#3a2f00;font-size:30px;line-height:1;box-shadow:0 4px 14px #00000047;z-index:30}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40;border:0}.drawer{position:fixed;top:0;bottom:0;left:0;width:274px;background:#f4f6f8;z-index:50;overflow-y:auto;box-shadow:2px 0 16px #00000040}.drawer header{background:var(--bar);color:#fff;padding:18px 16px}.drawer header .ver{font-size:12px;opacity:.75}.drawer nav button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:transparent;padding:13px 16px;min-height:var(--touch);text-align:left;border-bottom:1px solid #e6e9ec}.drawer nav button[aria-current=true]{background:#e3ecf5;font-weight:600}.drawer .foot{padding:14px 16px;color:var(--muted);font-size:12.5px}.summary{margin:12px;background:var(--card);border-radius:var(--radius);overflow:hidden}.summary .totals{display:flex;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.summary .totals div{flex:1}.summary .totals .lbl{font-size:12px;color:var(--muted)}.field{padding:10px 14px;border-bottom:1px solid var(--line)}.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:4px}.field input,.field select,.field textarea{width:100%;border:0;outline:0;font:inherit;color:inherit;background:transparent;min-height:32px}.field input:focus-visible,.field select:focus-visible{outline:2px solid #6aa9e0;border-radius:4px}.amount-input{font-size:26px!important;font-weight:700;font-variant-numeric:tabular-nums}.pickrow{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;min-height:var(--touch)}.pickval{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;font-weight:500}.pickval span{color:var(--muted)}.sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;overflow-y:auto;background:var(--page)}.btn{border:0;border-radius:10px;padding:12px 16px;min-height:var(--touch);font-weight:600;width:100%;background:var(--bar);color:#fff}.btn.danger{background:var(--expense);color:#fff}.btn.secondary{background:#dfe4e8;color:var(--text)}.btn:disabled{opacity:.5;cursor:not-allowed}.empty{text-align:center;color:var(--muted);padding:42px 24px}.note{margin:12px;padding:10px 12px;border-radius:10px;background:#fff8e1;color:#6b5300;font-size:13px;border:1px solid #f2e0a8}.note.ok{background:#e8f6ec;border-color:#b7e0c2;color:#1d5c33}.note.err{background:#fdecea;border-color:#f5c2bd;color:#8c1d13}.meter{height:7px;border-radius:999px;background:#0000001f;overflow:hidden}.meter-fill{height:100%;background:var(--bar)}.foot-note{padding:18px 16px 8px;color:var(--muted);font-size:12px;text-align:center}.pill{font-size:10.5px;padding:1px 6px;border-radius:999px;background:#eceff1;color:var(--muted);font-weight:600}.chart{display:flex;align-items:flex-end;gap:4px;height:96px;padding:10px 14px 12px}.barpair{flex:1;display:flex;align-items:flex-end;gap:1px;height:100%;min-width:0}.barpair .bar{flex:1;border-radius:2px 2px 0 0;min-height:1px}.barpair .income{background:var(--income)}.barpair .expense{background:var(--expense)}a{color:#2f6fa8}
