:root { color-scheme: light; font-family: system-ui, sans-serif; }
* { box-sizing: border-box; }
body { margin: 0; padding: 1rem; max-width: 64rem; margin-inline: auto; }
.grid { list-style: none; padding: 0; display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.grid li { border: 1px solid #ddd; border-radius: 8px; padding: 1rem; }
.price { font-weight: 600; margin-top: 0.5rem; }
button, a.checkout-link { display: inline-block; min-height: 44px; padding: 0.75rem 1rem; border-radius: 6px; border: 1px solid #333; background: #fff; cursor: pointer; text-decoration: none; color: inherit; font: inherit; }
button:focus-visible, a.checkout-link:focus-visible { outline: 3px solid #0066cc; outline-offset: 2px; }
a.checkout-link { margin-top: 2rem; background: #0066cc; color: white; border-color: #0066cc; }
input, select { min-height: 44px; padding: 0.5rem; font-size: 1rem; border: 1px solid #999; border-radius: 4px; width: 100%; }
input[aria-invalid="true"] { border-color: #cc0000; }
label { display: block; margin-top: 1rem; font-weight: 500; }
.error { color: #cc0000; margin-top: 0.5rem; }
.success { color: #008800; }
