:root{--paper:#f1f4f0;--surface:#fff;--ink:#16231d;--muted:#5d6b63;--line:#dce3dd;--accent:#1e5a3a;--accent-ink:#fff;--accent-soft:#e1ece4;--danger:#b3261e;--cat-1:#2a78d6;--cat-2:#eb6834;--cat-3:#1baf7a;--cat-4:#eda100;--cat-5:#e87ba4;--cat-6:#008300;--cat-7:#6250d6;--cat-8:#e34948;--radius-key:14px;--radius-sheet:22px;--font:"Anuphan",system-ui,-apple-system,"Noto Sans Thai",sans-serif;--buncss-light:initial;--buncss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#122019;--surface:#1a2b22;--ink:#e6eee8;--muted:#9aaca2;--line:#2a3d33;--accent:#7fc79c;--accent-ink:#0d1f15;--accent-soft:#22382c;--danger:#f2867e;--cat-1:#3987e5;--cat-2:#d95926;--cat-3:#199e70;--cat-4:#c98500;--cat-5:#d55181;--cat-6:#008300;--cat-7:#9085e9;--cat-8:#e66767;--buncss-light: ;--buncss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;touch-action:pan-y;overscroll-behavior:none;overflow-x:hidden}body{overflow-x:clip;overscroll-behavior:none;background:var(--paper);color:var(--ink);font:400 1rem/1.5 var(--font);-webkit-tap-highlight-color:transparent;min-height:100dvh;margin:0}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,p{margin:0}html:has(dialog[open]){overflow:hidden}html:has(dialog[open]) body{overflow:hidden}.visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px}.muted{color:var(--muted);font-size:.9375rem}.topbar{position:sticky;z-index:2;padding:calc(.625rem + env(safe-area-inset-top))1rem .625rem;background:var(--paper);top:0}.tabs{display:grid;grid-template-columns:1fr 1fr;background:var(--line);border-radius:999px;max-width:15rem;margin:0 auto;padding:3px}.tab{text-align:center;text-decoration:none;color:var(--muted);border-radius:999px;padding:.4rem 0;font-size:.9375rem;font-weight:600}.tab[aria-current=page]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #16231d1f}.page{padding:.5rem 1rem calc(1.5rem + env(safe-area-inset-bottom));max-width:28rem;margin:0 auto}.primary,.secondary,.danger{border-radius:var(--radius-key);width:100%;min-height:3.5rem;padding:0 1rem;font-size:1.0625rem;font-weight:600}.primary{background:var(--accent);color:var(--accent-ink);border:0}.primary:disabled{opacity:.55}.secondary{background:var(--surface);border:1px solid var(--line)}.danger{color:var(--danger);background:0 0;border:1px solid;min-height:3rem;font-size:1rem}.text-btn{color:var(--muted);text-decoration:underline;text-underline-offset:3px;background:0 0;border:0;align-self: center;padding:.75rem;font-weight:500}.icon-btn{display:grid;color:var(--ink);background:0 0;border:0;border-radius:999px;place-items: center;width:2.75rem;height:2.75rem}.icon-btn:disabled{opacity:.25}.status{min-height:1.25rem;font-size:.9375rem}.status:empty{display:none}.status[data-kind=error]{color:var(--danger)}.entry{display:flex;flex-direction:column;gap:.875rem}.add-page{display:flex;min-height:calc(100dvh - 3.5rem - env(safe-area-inset-top));flex-direction:column}.add-page .entry{flex:1}.add-page .keypad{margin-top:auto}.amount-row{display:flex;align-items: center;gap:.75rem;min-height:5.5rem}.amount{display:flex;font-variant-numeric:tabular-nums;letter-spacing:-.03em;flex:1;justify-content:flex-end;align-items:baseline;gap:.25rem;min-width:0}.amount-currency{color:var(--muted);font-size:1.75rem;font-weight:500}.amount-digits{font-size:min(4.25rem,calc((100vw - 8.5rem)/(var(--chars)*.62)));white-space:nowrap;font-weight:700;line-height:1}.amount-digits.is-empty{color:color-mix(in srgb,var(--muted)35%,transparent)}.slip-add,.slip-thumb,.slip-view{position:relative;display:grid;color:var(--muted);border-radius:10px;flex:none;align-content: center;place-items: center;gap:.125rem;width:3.75rem;height:4.75rem;font-size:.75rem;font-weight:600}.slip-add{border:1.5px dashed var(--muted);cursor:pointer}.slip-thumb{background:var(--surface);border:1px solid var(--line);padding:0}.slip-view{background:var(--surface);border:1px solid var(--line);text-align:center;color:var(--accent);padding:0 .25rem;line-height:1.15}.slip-thumb img{object-fit:cover;border-radius:9px;width:100%;height:100%}.slip-remove{position:absolute;display:grid;background:var(--ink);color:var(--paper);border:2px solid var(--paper);border-radius:999px;place-items: center;width:1.5rem;height:1.5rem;top:-.5rem;right:-.5rem}.categories{display:flex;border:0;flex-wrap:wrap;gap:.5rem;margin:0;padding:0}.category{display:inline-flex;background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:999px;align-items: center;gap:.4rem;padding:.45rem .8rem .45rem .65rem;font-size:.9375rem;font-weight:500}.category:has(input:checked){border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);font-weight:600}.category:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.category-dot{background:var(--cat);border-radius:999px;flex:none;width:.625rem;height:.625rem}.detail-row{display:flex;gap:.5rem}.note,.field input{background:var(--surface);border:1px solid var(--line);border-radius:12px;width:100%;min-height:3rem;padding:0 .875rem}.note{flex:1;min-width:0}.note::placeholder{color:var(--muted)}.date-chip{position:relative;display:inline-flex;background:var(--surface);border:1px solid var(--line);white-space:nowrap;border-radius:12px;flex:none;align-items: center;gap:.4rem;min-height:3rem;padding:0 .875rem;font-weight:500}.date-chip input{position:absolute;opacity:0;cursor:pointer;width:100%;inset:0}.date-chip:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}.key{display:grid;background:var(--surface);border-radius:var(--radius-key);font-variant-numeric:tabular-nums;touch-action:manipulation;user-select:none;border:0;place-items: center;height:3.5rem;font-size:1.625rem;font-weight:500}.key:active{background:var(--accent-soft)}.toast{position:fixed;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom));z-index:3;display:flex;background:var(--ink);color:var(--paper);animation:.22s ease-out toast-in;border-radius:999px;align-items: center;gap:.5rem;max-width:calc(100% - 2rem);padding:.75rem 1.125rem;font-weight:500;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,.75rem)}}.summary{display:flex;flex-direction:column;gap:1.25rem}.period-nav{display:flex;justify-content:space-between;align-items: center}.period-name{text-align:center;font-weight:600}.total{text-align:center;padding:.5rem 0 .25rem}.total-amount{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:clamp(2.75rem,14vw,3.75rem);font-weight:700;line-height:1.1}.total-satang{color:var(--muted);letter-spacing:0;font-size:.45em;font-weight:600}.breakdown{display:flex;flex-direction:column;gap:.875rem}.strip{display:flex;gap:2px;height:.875rem}.strip-part{min-width:3px}.strip-part:first-child{border-radius:4px 0 0 4px}.strip-part:last-child{border-radius:0 4px 4px 0}.strip-part:only-child{border-radius:4px}.legend{list-style:none;display:grid;gap:.375rem;margin:0;padding:0}.legend li{display:grid;grid-template-columns:auto 1fr auto 3rem;font-variant-numeric:tabular-nums;align-items: center;gap:.625rem}.legend-amount{font-weight:600}.legend-share{color:var(--muted);text-align:right}.days{display:flex;flex-direction:column;gap:1rem}.day-head{display:flex;color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;padding:0 .25rem .375rem;font-size:.9375rem;font-weight:600}.entries{list-style:none;background:var(--surface);overflow:hidden;border-radius:16px;margin:0;padding:0}.entries li+li{border-top:1px solid var(--line)}.entry-item{display:flex;align-items:stretch}.entry-row{display:flex;text-align:left;background:0 0;border:0;flex:1;align-items: center;gap:.75rem;min-width:0;min-height:3.5rem;padding:.625rem 1rem}.entry-row:active{background:var(--accent-soft)}.entry-text{display:flex;flex-direction:column;flex:1;min-width:0}.entry-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.entry-sub{color:var(--muted);font-size:.8125rem}.entry-slip{display:grid;color:var(--accent);background:0 0;border:0;flex:none;place-items: center;width:2.75rem;margin-left:-.5rem;padding:0}.entry-slip:active{background:var(--accent-soft)}.entry-amount{font-variant-numeric:tabular-nums;font-weight:600}.empty{text-align:center;color:var(--muted);padding:1.5rem 0}.empty a{color:var(--accent);font-weight:600}.period-panel{display:flex;flex-direction:column;gap:.5rem;padding-top:.5rem}.field{display:flex;flex-direction:column;gap:.375rem;font-weight:500}.sheet{padding:.75rem 1rem calc(1rem + env(safe-area-inset-bottom));overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;border-radius:var(--radius-sheet)var(--radius-sheet)0 0;background:var(--paper);color:var(--ink);border:0;width:100%;max-width:30rem;max-height:calc(100dvh - 1.5rem);margin:auto auto 0}.sheet[open]{animation:.24s cubic-bezier(.2,.8,.2,1) sheet-in}.sheet::backdrop{background:#08100c8c}@keyframes sheet-in{0%{transform:translateY(2rem);opacity:0}}.sheet-head{display:flex;justify-content:space-between;align-items: center;margin-bottom:.25rem}.sheet-head h2{font-size:1.125rem;font-weight:600}.viewer{display:grid;color:#fff;overflow:hidden;overscroll-behavior:contain;touch-action:none;background:#08100c;border:0;place-items: center;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}.viewer::backdrop{background:0 0}.viewer-image{object-fit:contain;padding:calc(3.5rem + env(safe-area-inset-top)).75rem calc(1rem + env(safe-area-inset-bottom));max-width:100%;max-height:100%}.viewer-note{color:#fffc}.viewer-close{position:fixed;top:calc(.75rem + env(safe-area-inset-top));display:grid;color:#fff;background:#ffffff24;border:0;border-radius:999px;place-items: center;width:2.75rem;height:2.75rem;right:.75rem}@media (min-width:40rem){.sheet{border-radius:var(--radius-sheet);margin:auto}}.login{display:flex;flex-direction:column;justify-content:center;gap:2rem;max-width:22rem;min-height:100dvh;margin:0 auto;padding:1.5rem 1rem}.wordmark{letter-spacing:-.03em;font-size:2.25rem;font-weight:700;line-height:1.1}.login-form{display:flex;flex-direction:column;gap:1rem}@media (prefers-reduced-motion:reduce){.toast,.sheet[open]{animation:none}}
