:root{--bg:#f6f8f4;--card:#fff;--ink:#1e2a22;--muted:#64756b;--green:#1f7a4d;--green-dark:#175e3b;--accent:#e8f3ec;--border:#e2e8e2;--radius:14px}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.shop{max-width:1080px;margin:0 auto;padding:0 20px 40px}.header{justify-content:space-between;align-items:center;padding:24px 0;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{font-size:2.2rem}.brand h1{letter-spacing:-.02em;margin:0;font-size:1.5rem}.brand p{color:var(--muted);margin:2px 0 0;font-size:.85rem}.cart-btn{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:999px;padding:10px 18px;font-size:.95rem;position:relative}.cart-count{background:var(--green);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.75rem;display:inline-flex;position:absolute;top:-6px;right:-6px}.banner{border-radius:var(--radius);background:#fff7e0;border:1px solid #eadfb2;margin-bottom:16px;padding:12px 16px;font-size:.9rem}.banner code{background:#0000000f;border-radius:4px;padding:1px 5px}.banner.success{background:var(--accent);border-color:#bcd9c7}.banner.error{background:#fdecec;border-color:#eec3c3}.banner.muted{border-color:var(--border);color:var(--muted);background:#eef1ee}.banner .tx{color:var(--muted);word-break:break-all;margin-top:4px;font-family:ui-monospace,monospace;font-size:.78rem;display:block}.grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px;display:grid}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;padding:20px;display:flex;position:relative}.card-badge{background:var(--green);color:#fff;border-radius:999px;padding:3px 9px;font-size:.7rem;position:absolute;top:14px;right:14px}.card-emoji{margin-bottom:10px;font-size:2.4rem}.card h2{margin:0 0 6px;font-size:1.02rem}.card-tagline{color:var(--muted);flex:1;margin:0 0 16px;font-size:.85rem}.card-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.price{font-size:.92rem;font-weight:600}.add-btn{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:999px;padding:8px 14px;font-size:.85rem}.add-btn:hover{background:var(--green-dark)}.qty{border:1px solid var(--border);background:var(--card);border-radius:999px;align-items:center;gap:8px;padding:4px 8px;display:inline-flex}.qty button{background:var(--accent);color:var(--green-dark);cursor:pointer;border:none;border-radius:999px;width:24px;height:24px;font-size:1rem;line-height:1}.qty span{text-align:center;min-width:16px;font-size:.9rem}.footer{color:var(--muted);text-align:center;margin-top:40px;font-size:.88rem}.footer .fine{opacity:.8;font-size:.75rem}.drawer-backdrop{z-index:50;background:#141e1873;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:var(--bg);flex-direction:column;width:min(400px,100vw);height:100%;padding:24px;display:flex;overflow-y:auto}.drawer-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.drawer-head h2{margin:0;font-size:1.2rem}.close-btn{cursor:pointer;color:var(--muted);background:0 0;border:none;font-size:1.1rem}.drawer-empty{color:var(--muted)}.drawer-list{flex:1;margin:0;padding:0;list-style:none}.drawer-list li{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:12px;margin-bottom:10px;padding:12px;display:flex}.li-emoji{font-size:1.5rem}.li-main{flex-direction:column;flex:1;gap:2px;font-size:.88rem;display:flex}.li-price{color:var(--muted);font-size:.8rem}.drawer-total{border-top:1px solid var(--border);justify-content:space-between;padding:16px 4px;font-size:1.05rem;font-weight:700;display:flex}.checkout-btn{background:var(--green);color:#fff;cursor:pointer;border:none;border-radius:999px;width:100%;padding:14px;font-size:1rem;font-weight:600}.checkout-btn:hover:not(:disabled){background:var(--green-dark)}.checkout-btn:disabled{opacity:.55;cursor:not-allowed}.drawer-note{color:var(--muted);text-align:center;margin-top:10px;font-size:.78rem}
