:root{--font-thai: "Sarabun", system-ui, -apple-system, sans-serif;--sl-font-sans: var(--font-thai);--teal: #1d9e75;--teal-dark: #0f6e56;--teal-darker: #04342c;--teal-50: #e1f5ee;--teal-100: #cfe9e0;--teal-border: #c9e3da;--bg-page: #e1f5ee;--bg-card: #ffffff;--bg-soft: #f1f9f6;--line: #eaf3ef;--ink: #04342c;--ink-soft: #5b756c;--ink-faint: #8aa39a;--ok: #3b6d11;--ok-bg: #eaf3de;--warn: #854f0b;--warn-bg: #faeeda;--info: #185fa5;--info-bg: #e6f1fb;--danger: #a32d2d;--danger-bg: #fcebeb;--sl-color-primary-600: var(--teal);--sl-color-primary-500: var(--teal);--sl-color-primary-700: var(--teal-dark)}*{box-sizing:border-box}html,body{margin:0;font-family:var(--font-thai);background:var(--bg-page);color:var(--ink);-webkit-text-size-adjust:100%}a{color:var(--teal-dark)}.center{display:flex;align-items:center;justify-content:center;min-height:100vh;color:var(--ink-soft)}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.app{min-height:100vh;padding-bottom:72px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:11px 14px;background:var(--bg-card);border-bottom:.5px solid var(--line)}.brand{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.brand .logo{width:26px;height:26px;border-radius:7px;background:var(--teal);color:#fff;display:flex;align-items:center;justify-content:center;font-size:15px}.avatar{width:30px;height:30px;border-radius:50%;background:var(--teal-100);color:var(--teal-darker);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500}.container{max-width:1040px;margin:0 auto;padding:14px}.topnav{display:none;gap:16px;font-size:14px}.topnav a{color:var(--ink-soft);text-decoration:none;padding:4px 2px;cursor:pointer}.topnav a.active{color:var(--teal-dark);font-weight:500;border-bottom:2px solid var(--teal)}.bottomnav{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-around;align-items:center;background:var(--bg-card);border-top:.5px solid var(--line);padding:6px 0 max(6px,env(safe-area-inset-bottom))}.bottomnav a{display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink-faint);font-size:11px;text-decoration:none;cursor:pointer;flex:1}.bottomnav a.active{color:var(--teal-dark)}.bottomnav a span{white-space:nowrap}.bottomnav a sl-icon{font-size:21px}.bottomnav a.fab sl-icon{font-size:30px;color:var(--teal)}.card{background:var(--bg-card);border:.5px solid var(--teal-border);border-radius:12px;padding:14px 16px;margin-bottom:12px}.balance{background:var(--teal);color:#fff;border-radius:14px;padding:18px 20px;margin-bottom:12px}.balance .label{font-size:13px;opacity:.9}.balance .amount{font-size:30px;font-weight:600;line-height:1.3}.balance .sub{font-size:12px;opacity:.85}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}.stat{background:var(--bg-soft);border-radius:10px;padding:11px 13px}.stat .k{font-size:13px;color:var(--ink-soft)}.stat .v{font-size:21px;font-weight:500}.badge{font-size:12px;padding:2px 10px;border-radius:999px;font-weight:500;white-space:nowrap;display:inline-block}.badge.paid{background:var(--ok-bg);color:var(--ok)}.badge.pending{background:var(--warn-bg);color:var(--warn)}.badge.approved{background:var(--info-bg);color:var(--info)}.badge.rejected{background:var(--danger-bg);color:var(--danger)}.list .row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 0;border-top:.5px solid var(--line)}.list .row:first-child{border-top:none}.row .title{font-size:14px}.row .meta{font-size:12px;color:var(--ink-faint)}.amt{font-variant-numeric:tabular-nums;font-weight:500;text-align:right}.amt.in{color:var(--ok)}.amt.out{color:var(--danger)}.amt.void{color:var(--ink-faint);text-decoration:line-through}.icon-chip{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.icon-chip.in{background:var(--ok-bg);color:var(--ok)}.icon-chip.out{background:var(--danger-bg);color:var(--danger)}.field{margin-bottom:12px}.field>label{display:block;font-size:13px;color:var(--teal-dark);font-weight:500;margin-bottom:4px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 10px}.section-head h2{font-size:17px;font-weight:600;margin:0}.thumbs{display:flex;gap:8px;flex-wrap:wrap}.thumb{width:56px;height:56px;border-radius:8px;background:var(--teal-100);color:var(--teal-dark);display:flex;align-items:center;justify-content:center;font-size:22px;object-fit:cover;position:relative;overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover}.thumb .rm{position:absolute;top:2px;right:2px;background:#00000080;color:#fff;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:12px;cursor:pointer}.thumb.add{background:none;border:1.5px dashed var(--teal);font-size:12px;flex-direction:column;gap:1px;cursor:pointer}.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.toolbar sl-input,.toolbar sl-select{flex:1;min-width:140px}.empty{text-align:center;color:var(--ink-faint);padding:32px 12px;font-size:14px}.member{padding:12px 0;border-top:.5px solid var(--line)}.member:first-child{border-top:none}.member-top{display:flex;align-items:center;gap:10px}.member-actions{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-left:42px}.ledger-controls{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.net-bar{display:flex;align-items:center;justify-content:space-between;background:var(--bg-soft);border:.5px solid var(--teal-border);border-radius:10px;padding:8px 14px;font-size:13px;margin-bottom:12px}.split{display:flex;flex-direction:column;gap:12px}.split-col{background:var(--bg-card);border:.5px solid var(--teal-border);border-radius:12px;overflow:hidden}.colhead{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;font-weight:600;font-size:14px}.colhead.in{background:var(--ok-bg);color:var(--ok)}.colhead.out{background:var(--danger-bg);color:var(--danger)}.split .row{padding:10px 14px}@media(min-width:720px){.split{flex-direction:row;align-items:flex-start}.split-col{flex:1}}.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:.5px solid var(--line);font-size:14px}.kv:first-child{border-top:none}.kv .k{color:var(--teal-dark)}.tdate{position:relative}.tdate-field{width:100%;display:flex;align-items:center;justify-content:space-between;background:#fff;border:.5px solid var(--teal-border);border-radius:8px;padding:9px 11px;font-size:14px;font-family:var(--font-thai);color:var(--ink);cursor:pointer}.tdate-field sl-icon{color:var(--teal-dark);font-size:16px}.tdate-pop{position:absolute;z-index:50;top:calc(100% + 4px);left:0;width:264px;max-width:88vw;background:#fff;border:.5px solid var(--teal-border);border-radius:12px;padding:10px;box-shadow:0 8px 28px #04342c24}.tdate-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:600;font-size:15px}.tdate-head button{border:none;background:none;cursor:pointer;color:var(--teal-dark);display:flex;padding:4px;border-radius:6px}.tdate-head button:hover{background:var(--bg-soft)}.tdate-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.tdate-dow span{text-align:center;font-size:12px;color:var(--ink-faint);padding:4px 0}.tdate-day{border:none;background:none;cursor:pointer;aspect-ratio:1;border-radius:8px;font-family:var(--font-thai);font-size:13px;color:var(--ink);display:flex;align-items:center;justify-content:center}.tdate-day:hover{background:var(--teal-50)}.tdate-day.today{color:var(--teal-dark);font-weight:600}.tdate-day.sel{background:var(--teal);color:#fff}.tdate-foot{display:flex;justify-content:space-between;margin-top:8px}.tdate-foot button{border:none;background:none;cursor:pointer;color:var(--teal-dark);font-family:var(--font-thai);font-size:13px;padding:4px 6px;border-radius:6px}.tdate-foot button:hover{background:var(--bg-soft)}.btn-row{display:flex;gap:8px}.btn-row sl-button{flex:1}@media(min-width:720px){.app{padding-bottom:0}.topnav{display:flex}.bottomnav{display:none}.stat-grid{grid-template-columns:repeat(4,1fr)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}}
