:root{--ink:#0E2747;--line:#7FB2E5;--paper:#F7F9FC;--card:#FFFFFF;--fg:#16202E;--muted:#556275;--rule:#D8DFE9;--accent:#1F5FAE;--mark:#FFC94D;--mark-ink:#3A2A00;--ok:#1E8A5A;--bad:#B4442E;color-scheme:light}
@media (prefers-color-scheme: dark){:root{--paper:#0B1422;--card:#111D30;--fg:#E6ECF5;--muted:#9AA8BC;--rule:#24344D;--accent:#6FA8F0;--ink:#081A31;--ok:#5CC995;--bad:#F08A73;color-scheme:dark}}
*{box-sizing:border-box}
html{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body{margin:0;background:var(--paper);color:var(--fg);font-family:"Sarabun","IBM Plex Sans Thai",system-ui,sans-serif;font-size:17px;line-height:1.65}
.wrap{max-width:720px;margin:0 auto;padding-inline:20px}
header.top{background:var(--ink)}header.top .wrap{padding-block:14px}
.logo{font-family:"IBM Plex Sans Thai",sans-serif;font-weight:700;color:#fff;text-decoration:none;font-size:1.1rem}.logo b{color:var(--line)}
main.shop{padding-block:36px 56px;display:grid;gap:20px}
h1,h2{font-family:"IBM Plex Sans Thai",sans-serif;line-height:1.3;margin:0}h1{font-size:1.6rem}h2{font-size:1.15rem}
p{margin:0}
.panel{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:24px;display:grid;gap:14px}
.summary{display:flex;justify-content:space-between;gap:12px;align-items:baseline;border-bottom:1px solid var(--rule);padding-bottom:12px}
.summary b{font-family:"IBM Plex Sans Thai",sans-serif;font-size:1.5rem;font-variant-numeric:tabular-nums;white-space:nowrap}
a{color:var(--accent)}
form{display:grid;gap:12px}
label{font-weight:600;font-size:.95rem}
.hint{color:var(--muted);font-size:.88rem;font-weight:400}
input[type=text],input[type=email],input[type=tel],select{width:100%;font:inherit;padding:.65em .8em;border:1.5px solid var(--rule);border-radius:6px;background:var(--paper);color:var(--fg)}
input:focus,select:focus{outline:3px solid var(--mark);outline-offset:1px}
.methods{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.methods label{border:1.5px solid var(--rule);border-radius:8px;padding:12px;display:flex;gap:8px;align-items:center;cursor:pointer;font-weight:600}
.methods input{accent-color:var(--accent)}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:.92rem}
.check input{margin-top:.35em}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (max-width:520px){.methods,.row2{grid-template-columns:1fr}}
.btn{display:inline-flex;justify-content:center;align-items:center;gap:.4em;font-family:"IBM Plex Sans Thai",sans-serif;font-weight:600;font-size:1rem;padding:.8em 1.3em;border-radius:6px;border:0;background:var(--accent);color:#fff;text-decoration:none;cursor:pointer}
.btn.mark{background:var(--mark);color:var(--mark-ink)}
.btn[disabled]{opacity:.6;cursor:wait}
.qr{display:grid;justify-items:center;gap:10px;text-align:center}
.qr img{width:260px;max-width:100%;background:#fff;border-radius:8px;padding:8px}
.status{font-weight:600}.status.ok{color:var(--ok)}.status.bad{color:var(--bad)}
.dl{display:grid;gap:10px}
.dl a.btn{justify-content:space-between}
.err{color:var(--bad);font-weight:600}
.muted{color:var(--muted);font-size:.92rem}
footer{color:var(--muted);font-size:.85rem}footer .wrap{padding-block:24px;border-top:1px solid var(--rule)}footer a{color:inherit}
table{border-collapse:collapse;width:100%;font-size:.92rem}th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--rule)}th{color:var(--muted);font-weight:600}
.tablebox{overflow-x:auto}
.pill{display:inline-block;padding:.1em .6em;border-radius:20px;font-size:.8rem;font-weight:600}
.pill.paid{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
.pill.pending{background:color-mix(in srgb,var(--mark) 30%,transparent);color:var(--fg)}
.pill.failed,.pill.expired{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}
