:root{--ink:#1d1d1f;--muted:#6b6b6b;--line:#e6e6e6;--surface:#ffffff;--page:#f7f5f2;--danger:#b42318;--ok:#067647}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--page);font-size:16px;line-height:1.4;-webkit-text-size-adjust:100%}button,input,textarea{font:inherit}button{min-height:44px;border-radius:10px;border:1px solid transparent;padding:0 16px;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff;width:100%;font-weight:600}.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}input,textarea{width:100%;min-height:44px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:16px;background:#fff}.header{position:-webkit-sticky;position:sticky;top:0;z-index:5;background:var(--brand);color:#fff;padding:14px 16px}.header h1{margin:0;font-size:20px}.status{font-size:14px;opacity:.95}.closed-banner{background:#fff4e5;color:#7a4a00;padding:12px 16px;border-bottom:1px solid #f0d9b5}main{padding:12px 12px 120px;max-width:640px;margin:0 auto}.category h2{font-size:18px;margin:20px 4px 8px}.item{display:flex;gap:12px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:10px;width:100%;text-align:left;color:var(--ink)}.item .meta{flex:1 1;min-width:0}.item .name{font-weight:600}.item .desc{color:var(--muted);font-size:14px}.item .price{font-weight:600;white-space:nowrap}.item .soldout{color:var(--danger);font-size:13px}.item img{width:72px;height:72px;object-fit:cover;border-radius:10px;flex:none}.sheet-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.4);display:flex;align-items:flex-end;justify-content:center;z-index:10}.sheet{background:var(--surface);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;border-radius:18px 18px 0 0;padding:16px}.group{border-top:1px solid var(--line);padding:12px 0}.group h3{margin:0 0 6px;font-size:16px}.group .hint{color:var(--muted);font-size:13px;margin-bottom:6px}.choice{display:flex;align-items:center;gap:10px;min-height:44px}.cart-bar{position:fixed;left:0;right:0;bottom:0;background:var(--surface);border-top:1px solid var(--line);padding:12px 16px;z-index:6}.cart-bar .inner{max-width:640px;margin:0 auto}.error{color:var(--danger);font-size:14px;margin:8px 0}.confirm{text-align:center;padding:24px 8px}.confirm .number{font-size:40px;font-weight:700;letter-spacing:2px;margin:8px 0}.confirm .ok{color:var(--ok);font-weight:600}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}