:root{color-scheme:light;--bg: #f4f1ea;--card: #fffdf8;--ink: #1f1a17;--muted: #6f675f;--line: #e7dfd3;--accent: #0f766e;--accent-2: #c2410c;--ok: #15803d;--warn: #b45309;--err: #b91c1c;--shadow: 0 10px 30px rgba(40, 30, 20, .08);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,#fff7ed,transparent 28%),radial-gradient(circle at top right,#ecfeff,transparent 24%),var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.topbar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffdf8cc;position:sticky;top:0;z-index:10}.brand{display:flex;flex-direction:column;gap:.15rem}.brand span{color:var(--muted);font-size:.85rem}.topbar nav{display:flex;gap:.75rem}.topbar a{padding:.45rem .8rem;border-radius:999px;border:1px solid transparent}.topbar a.router-link-active{border-color:var(--line);background:#fff}main{width:min(980px,calc(100% - 2rem));margin:1.25rem auto 2rem}.footer{text-align:center;color:var(--muted);padding:1rem;font-size:.85rem}.hero{margin-bottom:1rem}.hero h1{margin:0 0 .4rem;font-size:clamp(1.6rem,3vw,2.2rem)}.hero p{margin:0;color:var(--muted)}.queue-bar,.announce,.card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow)}.queue-bar,.announce{padding:.85rem 1rem;margin-bottom:.9rem;display:flex;justify-content:space-between;gap:1rem;align-items:center}.announce{color:var(--accent-2)}.tabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.tabs button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.55rem 1rem;cursor:pointer}.tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.card{padding:1.1rem}.card h2{margin:0 0 .35rem;font-size:1.2rem}.card .sub{color:var(--muted);margin-bottom:1rem}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}.step{border:1px dashed var(--line);border-radius:14px;padding:.7rem;text-align:center;color:var(--muted)}.step.on{border-style:solid;color:var(--ink);background:#f0fdfa}label{display:block;margin:.75rem 0 .35rem;font-weight:600}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:12px;padding:.75rem .85rem;background:#fff}textarea{min-height:140px;resize:vertical}.hint{color:var(--muted);font-size:.9rem;margin-top:.35rem}.row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}button.btn,a.btn{border:none;border-radius:12px;padding:.7rem 1rem;cursor:pointer;background:var(--accent);color:#fff;display:inline-block}button.btn.secondary,a.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}button.btn:disabled,a.btn:disabled{opacity:.55;cursor:not-allowed}.alert{margin-top:.85rem;padding:.75rem .9rem;border-radius:12px;border:1px solid var(--line)}.alert.ok{background:#f0fdf4;color:var(--ok)}.alert.err{background:#fef2f2;color:var(--err)}.alert.warn{background:#fffbeb;color:var(--warn)}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:999px;background:#ecfeff;color:var(--accent);font-size:.85rem}.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.table{width:100%;border-collapse:collapse;font-size:.92rem}.table th,.table td{border-bottom:1px solid var(--line);text-align:left;padding:.65rem .35rem;vertical-align:top}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.product-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:.75rem;margin:.4rem 0 1rem}.product{border:1px solid var(--line);border-radius:14px;padding:1rem;cursor:pointer;background:#fff;text-align:left}.product.on{border-color:var(--accent);background:#f0fdfa}.product .price{font-size:1.45rem;font-weight:700;margin:.35rem 0 .2rem}.pay-methods{display:flex;flex-wrap:wrap;gap:.5rem}.pay-methods button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:.5rem .95rem;cursor:pointer}.pay-methods button.on{background:var(--accent);border-color:var(--accent);color:#fff}@media(max-width:720px){.steps,.grid-2{grid-template-columns:1fr}}
