:root{--bg: #f5f6f8;--surface: #ffffff;--ink: #15171c;--ink-2: #565d6b;--line: #e2e5eb;--solid: #1f2430;--solid-ink: #ffffff;--accent: #06c755;--warn-bg: #fff4e5;--warn-line: #ffb74d;--warn-ink: #7a4100;--radius: 16px;--tap: 44px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,Noto Sans Thai,Helvetica Neue,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}#app{max-width:520px;margin:0 auto;padding:16px 16px 96px}h1{font-size:20px;line-height:1.5;margin:0 0 12px}h2{font-size:15px;line-height:1.5;margin:0 0 10px;color:var(--ink-2);font-weight:600}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:12px}.card.solid{background:var(--solid);color:var(--solid-ink);border-color:var(--solid)}.card.solid .meta,.card.solid .label{color:#b9c0cd}.amount-hero{font-size:32px;line-height:1.5;font-weight:700;font-variant-numeric:tabular-nums}.amount-sub{font-size:20px;line-height:1.5;font-weight:700;font-variant-numeric:tabular-nums}.label,.meta{font-size:13px;line-height:1.5;color:var(--ink-2)}.row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:var(--tap);padding:8px 0;border-bottom:1px solid var(--line)}.row:last-child{border-bottom:none}.row .num{font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.row .stack{display:flex;flex-direction:column;gap:2px;min-width:0}.chip{display:inline-block;font-size:12px;line-height:1.5;padding:1px 8px;border-radius:999px;background:#eceff4;color:var(--ink-2);white-space:nowrap}.chip.owner{background:#e7f0ff;color:#1b4f9c}.chip.period{background:#f0ece4;color:#6b5527}.chip.last{background:#ffe8e6;color:#96221a}.chip.shadow{background:transparent;border:1px dashed var(--ink-2)}.avatar{width:36px;height:36px;border-radius:999px;flex:none;background:#e9edf3;display:grid;place-items:center;font-size:13px;color:var(--ink-2)}.avatar.dashed{background:transparent;border:2px dashed var(--ink-2)}.bar{height:8px;background:#e9edf3;border-radius:999px;overflow:hidden}.card.solid .bar{background:#ffffff38}.bar>span{display:block;height:100%;background:var(--accent)}button{font:inherit;line-height:1.5;min-height:var(--tap);padding:11px 18px;border-radius:12px;border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer}button.primary{background:var(--accent);border-color:var(--accent);color:#05320f;font-weight:600;width:100%}button.ghost{background:transparent}button:disabled{opacity:.45;cursor:not-allowed}button.link{border:none;background:none;color:#1b4f9c;padding:12px 0;text-decoration:underline}.warn{background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink);border-radius:var(--radius);padding:14px;margin-bottom:12px;font-size:14px;line-height:1.6}.ok{color:#0f7b52}.bad{color:#b3261e}.empty{color:var(--ink-2);font-size:14px;line-height:1.6;padding:10px 0}.segmented{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px;margin-bottom:8px}.segmented button{min-height:var(--tap);padding:8px 14px;font-size:14px;white-space:nowrap}.segmented button[aria-pressed=true]{background:var(--solid);color:var(--solid-ink);border-color:var(--solid)}.tabbar{position:fixed;left:0;right:0;bottom:0;display:flex;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar button{flex:1;min-height:56px;border:none;border-radius:0;background:none;font-size:13px;line-height:1.5;color:var(--ink-2)}.tabbar button[aria-current=page]{color:var(--ink);font-weight:700;box-shadow:inset 0 2px 0 var(--accent)}.field{margin-bottom:14px}.field label{display:block;font-size:14px;line-height:1.5;margin-bottom:6px;color:var(--ink-2)}.field input,.field select{width:100%;min-height:var(--tap);font:inherit;line-height:1.5;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0e1473;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{background:var(--surface);width:100%;max-width:520px;border-radius:20px 20px 0 0;padding:10px 16px calc(20px + env(safe-area-inset-bottom));max-height:72vh;overflow-y:auto}.sheet-handle{width:40px;height:4px;border-radius:999px;background:var(--line);margin:4px auto 12px}.groupbar{display:flex;align-items:center;gap:8px;min-height:var(--tap);margin-bottom:8px}.groupbar button{display:flex;align-items:center;gap:8px;border:none;background:none;padding:8px 0;font-size:17px;line-height:1.5;font-weight:700;color:var(--ink)}.groupbar .caret{font-size:12px;line-height:1.5;color:var(--ink-2)}.groupbar .solo{font-size:17px;line-height:1.5;font-weight:700;padding:8px 0}.row[data-member-detail]{cursor:pointer}.row[data-member-detail]:active{background:#f1f3f7}.chevron{color:var(--ink-2);font-size:20px;line-height:1.5;flex:none}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0c0e1473;display:flex;align-items:center;justify-content:center;z-index:30;padding:16px}.modal{background:var(--surface);width:100%;max-width:440px;border-radius:var(--radius);padding:18px;max-height:84vh;overflow-y:auto}.modal h2{margin-bottom:14px;color:var(--ink);font-size:17px;line-height:1.5}.modal-error{background:#fdeceb;border:1px solid #f3b6b1;color:#8c1d16;border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:14px;line-height:1.6}.modal .actions{display:flex;gap:8px;margin-top:16px}.modal .actions button{flex:1}.invite-code{font-size:30px;line-height:1.5;font-weight:700;letter-spacing:6px;text-align:center;padding:14px;border:1px dashed var(--line);border-radius:12px;font-variant-numeric:tabular-nums;margin-bottom:10px}
