:root{--font:"IBM Plex Sans Thai", "Noto Sans Thai", system-ui, -apple-system, sans-serif;--radius-sm:16px;--radius-md:24px;--radius-lg:32px;--text:#1b1b22;--text-muted:#4a4a57;--accent:#5b45e0;--accent-text:#fff;--danger:#c4001a;--warn-bg:#ffcc0052;--warn-text:#5c4300;--glass-thin:#ffffff24;--glass-regular:#ffffff38;--glass-thick:#ffffff57;--glass-input:#ffffff73;--glass-row:#ffffff2e;--solid-surface:#f4f2f8;--glass-blur:blur(24px) saturate(180%);--edge-light:#ffffffd9;--edge-dark:#ffffff14;--edge-soft:#ffffff59;--hairline:#14142814;--specular:#ffffff73;--shadow-outer:0 1px 2px #1414280f, 0 8px 24px #14142814, 0 24px 48px #1414280f;--shadow-inner:inset 0 1px 0 #ffffffa6, inset 0 -1px 0 #1414280a;--spring:cubic-bezier(.34, 1.56, .64, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#f3f3f8;--text-muted:#c3c3d0;--accent:#8f7dff;--danger:#ff6b7d;--warn-bg:#ffcc0038;--warn-text:#ffe28a;--glass-thin:#1c1c2652;--glass-regular:#1c1c2670;--glass-thick:#1c1c2694;--glass-input:#0a0a1266;--glass-row:#ffffff0a;--solid-surface:#1d1c26;--edge-light:#fff6;--edge-dark:#ffffff0a;--edge-soft:#ffffff24;--hairline:#ffffff14;--specular:#ffffff24;--shadow-outer:0 1px 2px #0000004d, 0 12px 32px #00000059;--shadow-inner:inset 0 1px 0 #ffffff29, inset 0 -1px 0 #0003}}body[data-theme=wedding]{--bg1:#ffc9b8;--bg2:#ffe6a8;--bg3:#f3e8ff;--bg4:#ffb8d6}body[data-theme=funeral]{--bg1:#c9ced8;--bg2:#8e9bb0;--bg3:#eef0f4;--bg4:#b4bccb}body,body[data-theme=neutral]{--bg1:#a8eadf;--bg2:#9fd1f5;--bg3:#e6f7f3;--bg4:#8fd0e0}@media (prefers-color-scheme:dark){body[data-theme=wedding]{--bg1:#5a2a3a;--bg2:#5a4420;--bg3:#1d1626;--bg4:#4a2350}body[data-theme=funeral]{--bg1:#2d323d;--bg2:#26324a;--bg3:#14161b;--bg4:#3a4150}body,body[data-theme=neutral]{--bg1:#134a45;--bg2:#173f5c;--bg3:#0e1a1d;--bg4:#12404d}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--text);background:var(--bg3);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.5}h1,h2,h3{margin:0;line-height:1.25}button,input,select,textarea{font:inherit;color:inherit}img{max-width:100%;display:block}.bg{z-index:-1;background:var(--bg3);position:fixed;inset:0;overflow:hidden}.bg:before,.bg:after,.bg__blob{content:"";border-radius:50%;width:75vmax;height:75vmax;animation:28s ease-in-out infinite alternate drift;position:absolute}.bg:before{background:radial-gradient(circle, var(--bg1) 0%, transparent 65%);top:-25vmax;left:-20vmax}.bg:after{background:radial-gradient(circle, var(--bg2) 0%, transparent 65%);animation-delay:-14s;bottom:-30vmax;right:-25vmax}.bg__blob{background:radial-gradient(circle, var(--bg4) 0%, transparent 60%);width:55vmax;height:55vmax;animation-duration:36s;top:30%;left:20%}@keyframes drift{to{transform:translate(8vmax,6vmax)scale(1.15)}}.glass{isolation:isolate;background:var(--glass-regular);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-radius:var(--radius-md);box-shadow:var(--shadow-outer), var(--shadow-inner);position:relative}.glass--thin{background:var(--glass-thin)}.glass--thick{background:var(--glass-thick);border-radius:var(--radius-lg)}.glass:before{content:"";border-radius:inherit;background:linear-gradient(180deg, var(--specular), transparent);pointer-events:none;z-index:-1;border-bottom-right-radius:0;border-bottom-left-radius:0;height:55%;position:absolute;inset:0 0 auto}.glass:after{content:"";border-radius:inherit;background:linear-gradient(135deg, var(--edge-light), var(--edge-dark) 40%, var(--edge-dark) 65%, var(--edge-soft));-webkit-mask-composite:xor;pointer-events:none;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.page{max-width:640px;min-height:100dvh;padding:max(16px, env(safe-area-inset-top)) 16px calc(128px + env(safe-area-inset-bottom));align-content:start;gap:16px;margin:0 auto;display:grid}.page--center{place-content:center}.page__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.stack{gap:12px;display:grid}.title{letter-spacing:-.01em;font-size:28px;font-weight:700}.muted{color:var(--text-muted);margin:0}.login-card{gap:16px;width:min(420px,100vw - 32px);padding:28px 24px;display:grid}.dev-login{border-top:1px dashed var(--hairline);padding-top:12px}.empty{text-align:center;color:var(--text-muted);padding:24px}.btn{cursor:pointer;min-height:48px;transition:transform .4s var(--spring), filter .2s;color:var(--text);-webkit-tap-highlight-color:transparent;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 22px;font-weight:600;text-decoration:none;display:inline-flex}.btn:active:not(:disabled){transform:scale(.94)}.btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.btn:disabled{opacity:.5;cursor:default}.btn--primary{color:var(--accent-text);background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 80%, white), var(--accent));box-shadow:0 6px 20px color-mix(in srgb, var(--accent) 35%, transparent), inset 0 1px 0 #fff6}.btn--icon{width:44px;min-height:44px;padding:0}.btn--danger{color:var(--danger)}.field{gap:6px;display:grid}.field__label{color:var(--text-muted);font-size:14px;font-weight:500}.field__warn{color:var(--warn-text);margin:0;font-size:14px}.input{border-radius:var(--radius-sm);border:1px solid var(--hairline);background:var(--glass-input);width:100%;min-height:48px;padding:0 16px;font-size:17px;box-shadow:inset 0 1px 2px #0000000f}.input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.input--warn{background:var(--warn-bg)}select.input{appearance:none}.form-error{color:var(--danger);margin:0;font-weight:500}.form-notice{color:var(--text-muted);margin:0}.form-actions{justify-content:flex-end;gap:12px;display:flex}.form-actions .btn--primary{flex:1}.segmented{background:var(--glass-input);border-radius:999px;grid-auto-flow:column;gap:4px;padding:4px;display:grid}.segmented button{cursor:pointer;background:0 0;border:0;border-radius:999px;min-height:40px;font-weight:600}.segmented button[aria-checked=true]{background:var(--glass-thick);box-shadow:var(--shadow-outer)}.sheet-layer{z-index:50;align-items:end;display:grid;position:fixed;inset:0}.sheet-backdrop{background:#0a0a1440;animation:.2s ease-out fade;position:absolute;inset:0}.sheet{width:100%;max-width:640px;max-height:92dvh;padding:8px 16px calc(24px + env(safe-area-inset-bottom));animation:sheet-in .5s var(--spring);border-bottom-right-radius:0;border-bottom-left-radius:0;margin:0 auto;position:relative;overflow:auto}.sheet__header{grid-template-columns:1fr auto;align-items:center;gap:8px;padding:8px 0 12px;display:grid}.sheet__header h2{font-size:20px}.sheet__grabber{background:var(--hairline);border-radius:3px;grid-column:1/-1;justify-self:center;width:40px;height:5px}.sheet__body{gap:16px;display:grid}@keyframes sheet-in{0%{transform:translateY(100%)}}@keyframes fade{0%{opacity:0}}.tabbar{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:20;border-radius:999px;gap:4px;padding:6px;display:flex;position:fixed;transform:translate(-50%)}.tabbar__tab{cursor:pointer;min-width:88px;min-height:48px;transition:background .3s var(--spring), transform .4s var(--spring);background:0 0;border:0;border-radius:999px;place-items:center;font-size:12px;font-weight:600;display:grid}.tabbar__tab[aria-selected=true]{background:var(--glass-thick);box-shadow:var(--shadow-inner)}.tabbar__tab:active{transform:scale(.92)}.tabbar__icon{font-size:18px;line-height:1}.fab{right:16px;bottom:calc(88px + env(safe-area-inset-bottom));z-index:21;min-height:56px;padding:0 24px;font-size:17px;position:fixed}.amount{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-weight:700}.amount--lg{font-size:22px}.amount--xl{font-size:40px}.stat{gap:2px;padding:12px 16px;display:grid}.stat__label{color:var(--text-muted);font-size:13px}.hero{gap:4px;padding:20px;display:grid}.hero__meta{color:var(--text-muted);flex-wrap:wrap;gap:12px;font-size:14px;display:flex}.event-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.event-card{color:inherit;transition:transform .4s var(--spring);gap:4px;padding:16px 20px;text-decoration:none;display:grid}.event-card:active{transform:scale(.98)}.event-card__row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.list{gap:2px;padding:6px;display:grid}.row{border-radius:var(--radius-sm);background:var(--glass-row);text-align:left;cursor:pointer;border:0;grid-template-columns:48px 1fr auto;align-items:center;gap:12px;width:100%;padding:8px 10px;display:grid}.row:disabled{cursor:default;opacity:1}.row__thumb{object-fit:cover;background:var(--glass-input);border-radius:12px;place-items:center;width:48px;height:48px;display:grid}.row__name{font-weight:600}.row__meta{color:var(--text-muted);font-size:13px}.badge{background:var(--glass-thick);border-radius:999px;margin-left:6px;padding:2px 8px;font-size:12px}.pending{color:var(--text-muted);font-size:12px}.bills{border:0;gap:8px;margin:0;padding:0;display:grid}.bills__row{grid-template-columns:72px 44px 1fr 44px;align-items:center;gap:8px;display:grid}.bills__count{text-align:center;padding:0 8px}.bills__total{text-align:right;margin:0}.bill{font-variant-numeric:tabular-nums;text-align:center;color:#1b1b22;border-radius:8px;padding:6px 0;font-weight:700}.bill--1000{background:#d8c1a8}.bill--500{background:#c9b6e4}.bill--100{background:#f2b8b0}.bill--50{background:#a9c8ef}.bill--20{background:#b8e0b0}.photos{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.photo-slot{aspect-ratio:3/4;cursor:pointer;border-radius:var(--radius-sm);place-items:center;display:grid;overflow:hidden}.photo-slot img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.photo-slot__icon{font-size:28px}.photo-slot__label{background:var(--glass-thick);border-radius:999px;padding:2px 10px;font-size:13px;font-weight:600;position:absolute;bottom:6px}.qr{border-radius:var(--radius-sm);background:#fff;width:220px;height:220px;margin:0 auto;padding:10px}.invite-url{word-break:break-all;color:var(--text-muted);text-align:center;margin:0;font-size:14px}.section{gap:12px;padding:20px;display:grid}.member{justify-content:space-between;align-items:center;gap:12px;display:flex}.shimmer{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--glass-thin) 0%, var(--glass-thick) 50%, var(--glass-thin) 100%);background-size:200% 100%;animation:1.4s linear infinite shimmer}@keyframes shimmer{to{background-position:-200% 0}}.searchbar{grid-template-columns:1fr auto;gap:8px;display:grid}.filter-row{grid-template-columns:1fr 1fr;gap:8px;display:grid}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--hairline);background:var(--glass-input);cursor:pointer;min-height:40px;transition:transform .3s var(--spring);border-radius:999px;padding:0 16px;font-weight:600}.chip[aria-pressed=true]{background:var(--glass-thick);box-shadow:var(--shadow-outer);border-color:var(--accent)}.chip:active{transform:scale(.95)}.result-meta{justify-content:space-between;align-items:center;gap:8px;display:flex}.linklike{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.row--link{color:inherit;text-decoration:none}.stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.bars{gap:10px;display:grid}.bar{grid-template-columns:96px 1fr 32px;align-items:center;gap:10px;font-size:14px;display:grid}.bar__track{background:var(--glass-input);border-radius:999px;height:10px;overflow:hidden}.bar__fill{border-radius:inherit;background:linear-gradient(90deg, color-mix(in srgb, var(--accent) 60%, white), var(--accent));height:100%;transition:width .5s var(--spring);display:block}.bill--inline{min-width:56px;padding:2px 6px;display:inline-block}.row--pending{cursor:default}.pending-title{padding:6px 10px 2px;font-size:13px}.pending-actions{justify-items:end;gap:6px;display:grid}.badge--warn{background:var(--warn-bg);color:var(--warn-text)}.ai-status{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:14px;display:flex}.ai-dot{background:var(--accent);border-radius:50%;width:10px;height:10px;animation:1s ease-in-out infinite alternate pulse}@keyframes pulse{to{opacity:.25;transform:scale(.7)}}.is-reading .input{background-image:linear-gradient(90deg, transparent, var(--glass-thick), transparent);background-size:200% 100%;animation:1.4s linear infinite shimmer}@media (prefers-reduced-transparency:reduce){.glass{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--solid-surface)}.bg:before,.bg:after,.bg__blob{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
