:root{--bg:#fff;--card:#f4f5f7;--text:#1c1c1e;--muted:#8a8a8e;--accent:#e63946;--accent-text:#fff;--border:#e5e5ea}@media (prefers-color-scheme:dark){:root{--bg:#0e0e0e;--card:#1c1c1e;--text:#f2f2f7;--muted:#8a8a8e;--accent:#ff453a;--accent-text:#fff;--border:#2c2c2e}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:520px;margin:0 auto;padding:12px 12px 96px}h1,h2,h3{margin:0 0 8px}.header{position:-webkit-sticky;position:sticky;top:0;background:var(--bg);padding:12px 0;z-index:5;border-bottom:1px solid var(--border)}.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px}.tab{white-space:nowrap;padding:8px 12px;border-radius:999px;background:var(--card);border:1px solid var(--border);cursor:pointer;font-size:14px}.tab.active{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:12px;margin-bottom:10px;display:flex;gap:12px;align-items:center}.card .info{flex:1 1}.card .name{font-weight:600}.card .desc{color:var(--muted);font-size:13px;margin:4px 0}.card .price{font-weight:600}.row{display:flex;align-items:center;gap:8px}button{font-family:inherit;cursor:pointer}.btn{border:none;border-radius:10px;padding:10px 14px;background:var(--accent);color:var(--accent-text);font-size:15px;font-weight:600}.btn.ghost{background:var(--card);color:var(--text);border:1px solid var(--border)}.btn.sm{padding:6px 10px;font-size:14px}.qty{min-width:28px;text-align:center;font-weight:600}.cart-bar{left:0;right:0;bottom:0;background:var(--bg);border-top:1px solid var(--border);padding:12px;justify-content:space-between;align-items:center;max-width:520px;margin:0 auto}.cart-bar,.modal-backdrop{position:fixed;display:flex}.modal-backdrop{inset:0;background:rgba(0,0,0,.45);align-items:flex-end;justify-content:center;z-index:20}.modal{background:var(--bg);width:100%;max-width:520px;border-radius:18px 18px 0 0;padding:16px;max-height:90vh;overflow-y:auto}input,select,textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--card);color:var(--text);font-size:15px;margin-bottom:10px}.muted{color:var(--muted);font-size:13px}.stack{display:flex;flex-direction:column;gap:8px}.center{text-align:center;padding:40px 16px}