:root { color-scheme: light; font-family: system-ui, sans-serif; color: #24211d; background: #f7f3ea; }
body { margin: 0; min-height: 100vh; display: flex; flex-direction: column; }
header, main, footer { padding: 1rem max(1rem, calc((100% - 960px) / 2)); }
header { display: flex; justify-content: space-between; align-items: center; gap: 1rem; background: #293241; color: white; }
header a { color: white; text-decoration: none; }
.brand { font-size: 1.2rem; font-weight: 700; }
nav { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; }
nav form { margin: 0; }
main { flex: 1; width: min(960px, calc(100% - 2rem)); box-sizing: border-box; }
footer { color: #625d55; border-top: 1px solid #d8d0c3; }
.book-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.card, .detail { padding: 1rem; background: white; border: 1px solid #ddd3c4; border-radius: .4rem; }
.card h2 { margin-top: 0; font-size: 1.15rem; }
a { color: #275d77; }
.muted { color: #625d55; }
.price { font-size: 1.25rem; font-weight: 700; }
.stacked { display: grid; gap: .5rem; max-width: 25rem; }
input, button { font: inherit; padding: .55rem; }
button { cursor: pointer; }
.error { color: #a4161a; font-weight: 600; }
.search div { display: flex; gap: .5rem; margin-top: .4rem; }
.search input { flex: 1; }

