:root{--paper:#f1ede4;--paper-raised:#fff;--paper-sunken:#e8e2d3;--ink:#21242c;--ink-soft:#5c6070;--ink-faint:#93917f;--border:#ddd4bd;--indigo:#2c4770;--indigo-tint:#e4e9f1;--gold:#a1741d;--gold-tint:#f3e6c3;--paid:#2e7d5b;--paid-tint:#dceee3;--due:#b0431d;--due-tint:#f6ddd0;--pending:#a1741d;--pending-tint:#f3e6c3;--shadow:0 1px 2px #21242c0f, 0 8px 24px -12px #21242c2e;--radius:14px;--font-face:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans Thai", "Noto Sans Thai UI", Roboto, sans-serif;--font-mono:"SF Mono", ui-monospace, "Roboto Mono", "Noto Sans Mono", Consolas, monospace}@media (prefers-color-scheme:dark){:root{--paper:#1a1c22;--paper-raised:#23262e;--paper-sunken:#15171c;--ink:#eeece4;--ink-soft:#a8adba;--ink-faint:#6b6f7d;--border:#34384a;--indigo:#8aa4d6;--indigo-tint:#263250;--gold:#e3bd6c;--gold-tint:#3a3020;--paid:#6bc79a;--paid-tint:#1e3329;--due:#e58a5f;--due-tint:#3c261d;--pending:#e3bd6c;--pending-tint:#3a3020;--shadow:0 1px 2px #0000004d, 0 12px 28px -14px #0000008c}}:root[data-theme=dark]{--paper:#1a1c22;--paper-raised:#23262e;--paper-sunken:#15171c;--ink:#eeece4;--ink-soft:#a8adba;--ink-faint:#6b6f7d;--border:#34384a;--indigo:#8aa4d6;--indigo-tint:#263250;--gold:#e3bd6c;--gold-tint:#3a3020;--paid:#6bc79a;--paid-tint:#1e3329;--due:#e58a5f;--due-tint:#3c261d;--pending:#e3bd6c;--pending-tint:#3a3020}:root[data-theme=light]{--paper:#f1ede4;--paper-raised:#fff;--paper-sunken:#e8e2d3;--ink:#21242c;--ink-soft:#5c6070;--ink-faint:#93917f;--border:#ddd4bd;--indigo:#2c4770;--indigo-tint:#e4e9f1;--gold:#a1741d;--gold-tint:#f3e6c3;--paid:#2e7d5b;--paid-tint:#dceee3;--due:#b0431d;--due-tint:#f6ddd0;--pending:#a1741d;--pending-tint:#f3e6c3}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-face);-webkit-font-smoothing:antialiased;min-height:100dvh;padding-bottom:calc(72px + env(safe-area-inset-bottom))}.page{max-width:480px;margin:0 auto;padding:0 16px}.topbar{z-index:20;background:var(--paper);border-bottom:1px solid var(--border);padding:14px 16px 10px;position:sticky;top:0}.topbar-inner{justify-content:space-between;align-items:baseline;gap:8px;max-width:480px;margin:0 auto;display:flex}.trip-title{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:800}.trip-dates{color:var(--ink-soft);margin:2px 0 0;font-size:12px}.status-pill{white-space:nowrap;background:var(--indigo-tint);color:var(--indigo);letter-spacing:.02em;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:700}main{padding-top:16px}section.panel.active{animation:.18s fade;display:block}@media (prefers-reduced-motion:reduce){section.panel.active{animation:none}}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}h2.section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin:28px 0 10px;font-size:13px;font-weight:800}h2.section-title:first-child{margin-top:0}.stat-row{grid-template-columns:repeat(3,1fr);align-items:start;gap:8px;display:grid}.stat-tile{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 10px}.stat-tile .label{color:var(--ink-faint);text-transform:uppercase;letter-spacing:.04em;font-size:10.5px;font-weight:700}.stat-tile .value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:4px;font-size:17px;font-weight:700}.stat-tile .value small{font-family:var(--font-face);color:var(--ink-soft);margin-left:2px;font-size:11px;font-weight:600}.stat-tile .label-row{align-items:center;display:flex}.meter{background:var(--paper-sunken);border-radius:999px;height:8px;margin-top:12px;overflow:hidden}.meter>span{background:linear-gradient(90deg, var(--indigo), var(--gold));border-radius:999px;height:100%;display:block}.meter-caption{color:var(--ink-soft);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:6px;font-size:11.5px;display:flex}.ticket{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:14px;position:relative;overflow:hidden}.ticket-head{cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;display:flex}.ticket-month{letter-spacing:-.01em;font-size:15px;font-weight:800}.ticket-month .yr{color:var(--ink-faint);margin-left:4px;font-size:12px;font-weight:600}.ticket-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:16px;font-weight:700}.ticket-amount small{font-family:var(--font-face);color:var(--ink-soft);text-align:right;font-size:10.5px;font-weight:600;display:block}.perforation{background-image:linear-gradient(90deg, var(--border) 60%, transparent 0%);background-repeat:repeat-x;background-size:10px 1px;height:1px;margin:0;position:relative}.perforation:before,.perforation:after{content:"";background:var(--paper);border-radius:50%;width:14px;height:14px;position:absolute;top:-7px}.perforation:before{left:-23px}.perforation:after{right:-23px}.ticket-body{padding:12px 16px 14px}.breakdown-row{color:var(--ink-soft);justify-content:space-between;gap:10px;padding:5px 0;font-size:13px;display:flex}.breakdown-row .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink)}.breakdown-empty{color:var(--ink-faint);padding:4px 0;font-size:13px;font-style:normal}.friend-row{gap:8px;margin-top:12px;display:flex}.chip-toggle{border:1.5px solid var(--border);background:var(--paper-sunken);color:var(--ink-soft);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;font-size:12.5px;font-weight:700;font-family:var(--font-face);border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;padding:9px 8px;transition:background .12s,border-color .12s,color .12s;display:flex}@media (prefers-reduced-motion:reduce){.chip-toggle{transition:none}}.chip-toggle:active{transform:scale(.98)}.chip-toggle[data-paid=true]{background:var(--paid-tint);border-color:var(--paid);color:var(--paid)}.chip-toggle .dot{opacity:.55;background:currentColor;border-radius:50%;width:7px;height:7px}.chip-toggle[data-paid=true] .dot{opacity:1}.ticket.is-collapsed .ticket-body,.ticket.is-collapsed .perforation{display:none}.chevron{color:var(--ink-faint);font-size:11px;transition:transform .15s;transform:rotate(90deg)}.ticket.is-collapsed .chevron{transform:rotate(0)}@media (prefers-reduced-motion:reduce){.chevron{transition:none}}.month-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:6px;padding:3px 7px;font-size:10px;font-weight:800}.month-badge.done{background:var(--paid-tint);color:var(--paid)}.month-badge.due{background:var(--due-tint);color:var(--due)}.month-badge.future{background:var(--paper-sunken);color:var(--ink-faint)}.hero{background:linear-gradient(155deg, var(--indigo) 0%, #1d3255 100%);color:#f4f2ea;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:18px;padding:18px 18px 16px;position:relative;overflow:hidden}.hero .eyebrow{text-transform:uppercase;letter-spacing:.1em;opacity:.75;font-size:11px;font-weight:800}.hero .headline{letter-spacing:-.02em;margin:6px 0 2px;font-size:26px;font-weight:800}.hero .sub{opacity:.8;font-size:12.5px}.hero .amount-big{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em;margin-top:10px;font-size:34px;font-weight:700}.hero .amount-big .unit{font-family:var(--font-face);opacity:.8;margin-left:6px;font-size:14px;font-weight:600}.hero .hero-friends{gap:8px;margin-top:14px;display:flex}.hero .chip-toggle{color:#f4f2ead9;background:#f4f2ea1a;border-color:#f4f2ea47}.hero .chip-toggle[data-paid=true]{color:#b7ecd2;background:#6bc79a38;border-color:#6bc79a}.cat-card{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:10px;padding:13px 15px}.cat-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.cat-name{letter-spacing:-.005em;font-size:14px;font-weight:700}.cat-status{letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:10px;font-weight:800}.cat-status.paid{background:var(--paid-tint);color:var(--paid)}.cat-status.saving{background:var(--pending-tint);color:var(--pending)}.cat-status.pending{background:var(--indigo-tint);color:var(--indigo)}.cat-status.contingent{background:var(--due-tint);color:var(--due);border:1px dashed var(--due)}.cat-figures{font-family:var(--font-mono);font-variant-numeric:tabular-nums;gap:16px;margin-top:8px;font-size:13px;display:flex}.cat-figures .f-label{font-family:var(--font-face);color:var(--ink-faint);text-transform:uppercase;letter-spacing:.03em;margin-bottom:1px;font-size:10px;font-weight:700;display:block}.cat-note{color:var(--ink-soft);margin-top:8px;font-size:12px;line-height:1.5}.cat-topup{color:var(--due);margin-top:6px;font-size:12px;font-weight:700}.self-card{background:var(--paper-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:flex-start;gap:12px;margin-bottom:10px;padding:13px 15px;display:flex}.self-check{border:1.5px solid var(--border);cursor:pointer;background:var(--paper-sunken);border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:flex}.self-check[data-checked=true]{background:var(--indigo);border-color:var(--indigo)}.self-check svg{stroke:#f4f2ea;opacity:0;width:13px;height:13px}.self-check[data-checked=true] svg{opacity:1}.self-body .cat-name{font-size:13.5px}.self-budget{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink-soft);margin-top:3px;font-size:12px}.self-note{color:var(--ink-soft);margin-top:6px;font-size:12.5px;line-height:1.5}.foot-note{color:var(--ink-faint);text-align:center;margin:24px 0 8px;font-size:11px;line-height:1.6}.tabbar{z-index:30;background:var(--paper-raised);border-top:1px solid var(--border);padding:6px 8px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;max-width:480px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-btn{color:var(--ink-faint);font-family:var(--font-face);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:10px;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 10px;font-size:10.5px;font-weight:700;display:flex}.tab-btn svg{stroke:currentColor;fill:none;stroke-width:1.8px;width:20px;height:20px}.tab-btn[aria-selected=true]{color:var(--indigo)}.tab-btn:focus-visible,.chip-toggle:focus-visible,.self-check:focus-visible,.ticket-head:focus-visible{outline:2px solid var(--indigo);outline-offset:2px}.info-disclosure{margin-left:4px;display:inline-block}.info-disclosure summary{border:1px solid var(--ink-faint);width:14px;height:14px;color:var(--ink-faint);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:50%;justify-content:center;align-items:center;font-size:9.5px;font-weight:800;list-style:none;display:inline-flex}.info-disclosure summary::-webkit-details-marker{display:none}.info-disclosure summary:before{content:"i"}.info-disclosure[open] summary{color:var(--indigo);border-color:var(--indigo)}.info-disclosure p{color:var(--ink-soft);text-transform:none;letter-spacing:0;margin:6px 0 0;font-size:11px;font-weight:500;line-height:1.5}.pocket-card{background:var(--paper-raised);border:1px solid var(--gold);border-radius:var(--radius);margin-bottom:14px;padding:14px 16px}.pocket-card .amount-row{justify-content:space-between;align-items:baseline;display:flex}.pocket-card .amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--gold);font-size:24px;font-weight:700}.pocket-card .amount-sub{color:var(--ink-soft);font-size:11px;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.pocket-ledger{border-top:1px dashed var(--border);margin-top:10px;padding-top:10px}.pocket-ledger .row{color:var(--ink-soft);justify-content:space-between;padding:3px 0;font-size:12.5px;display:flex}.pocket-ledger .row .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink)}.pocket-ledger .row.total{border-top:1px solid var(--border);color:var(--ink);margin-top:4px;padding-top:6px;font-weight:700}
