*{box-sizing:border-box}
body{margin:0;font-family:"Be Vietnam Pro",system-ui,sans-serif;color:#fde7b0;background:radial-gradient(ellipse at 50% 20%,var(--panel,#5a2a0c) 0%,var(--bg,#2a1206) 60%,#120702 100%);min-height:100vh}
header{text-align:center;padding:12px 8px 0}h1{margin:0;font-size:32px;letter-spacing:2px;color:var(--accent,#ffd36b);text-shadow:0 0 24px #ff9a1f}
.disc{margin:4px 0;font-size:13px;font-weight:700;color:var(--accent,#ffd36b);opacity:.9}
main{max-width:960px;margin:0 auto;padding:8px 12px;display:grid;gap:12px;grid-template-columns:1fr}
@media(min-width:800px){main{grid-template-columns:2fr 1fr}#hall,#actions,#wish-form{grid-column:1}#board-box,#wishes-box{grid-column:2}#board-box{grid-row:1/3;align-self:start}#wishes-box{align-self:start}}
section{background:rgba(0,0,0,.3);border:1px solid color-mix(in srgb,var(--accent,var(--accent,#ffd36b)) 33%,transparent);border-radius:16px;padding:12px}
h2{margin:0 0 8px;font-size:20px;color:var(--accent,#ffd36b)}
#buddha{text-align:center;font-size:120px;line-height:1;filter:drop-shadow(0 0 40px #ffb84d);animation:glow 4s ease-in-out infinite}
@keyframes glow{50%{filter:drop-shadow(0 0 70px var(--accent,#ffd36b))}}
#altar{text-align:center;font-size:36px;min-height:48px}#altar:empty::before,#incense:empty::before{content:var(--altar-empty,'🕯️ \00a0 🕯️');opacity:.5}
#seats{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin-top:8px}
.seat{border-radius:12px;background:rgba(255,200,100,.08);border:1px solid rgba(255,200,100,.3);padding:6px 2px;text-align:center;font-size:11px;overflow:hidden}
.seat .ic{display:block;font-size:26px}.seat .nm{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.seat.mine{border-color:var(--accent,#ffd36b);background:rgba(255,200,100,.22)}
#presence{text-align:center;margin:8px 0 0}
#actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
button{font:inherit;font-size:16px;padding:12px 8px;min-height:48px;border-radius:12px;border:1px solid var(--accent,#ffd36b);background:var(--panel,#5a2a0c);color:#fde7b0;cursor:pointer;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
#btn-chuoi{touch-action:none}
button:hover:not(:disabled){background:#7a3a10}button:disabled{opacity:.45;cursor:not-allowed}button small{display:block;font-size:12px;opacity:.8}
#status,#me{grid-column:1/3;margin:0;text-align:center;font-size:14px;min-height:1.2em}
#wish-form{background:rgba(0,0,0,.45);border:1px solid var(--accent,#ffd36b);border-radius:16px;padding:12px}
#wish-form[hidden]{display:none}textarea{width:100%;font:inherit;background:#1a0b04;color:#fde7b0;border:1px solid var(--accent,#ffd36b)88;border-radius:8px;padding:8px}
ol,ul{margin:0;padding-left:20px}li{padding:2px 0;word-break:break-word}#wishes{list-style:none;padding:0;max-height:320px;overflow:auto}#wishes:empty::before,#board:empty::before{content:var(--empty,'Chưa có ai – hãy là người đầu tiên');opacity:.6;font-size:14px;display:block}#wishes li{border-bottom:1px dashed var(--accent,#ffd36b)33;padding:6px 0}#wishes small{display:block;opacity:.7}
footer{text-align:center;padding:16px 8px 24px;font-size:13px}a{color:var(--accent,#ffd36b)}
.float{animation:rise 1.4s forwards}@keyframes rise{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}
#abbot-banner{text-align:center;grid-column:1/-1;border-color:var(--accent,#ffd36b)}#abbot-gap{display:block;opacity:.8}
#pay-box{grid-column:1}#chips,#shop{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}#shop button small{display:block}
.memo{font-size:28px;letter-spacing:3px;color:#fff3c4}#qr-img{background:#fff;border-radius:8px;display:block;margin:6px auto}#qr-box{text-align:center}
.disc2{font-size:12px;opacity:.75}#pay-box h3{margin:8px 0 0;font-size:16px}
