* { box-sizing: border-box; }
body { margin: 0; font-family: system-ui, sans-serif; color: #1d1d1f; background: #fafaf7; line-height: 1.45; }
header.top { background: #12343b; color: #fff; padding: 14px 24px; display: flex; gap: 24px; align-items: center; }
header.top a { color: #fff; text-decoration: none; }
header.top .brand { font-weight: 700; font-size: 1.3rem; }
header.top nav { display: flex; gap: 16px; margin-left: auto; }
main { max-width: 960px; margin: 0 auto; padding: 24px; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.card { background: #fff; border: 1px solid #ddd; border-radius: 10px; padding: 16px; }
.card .ph { height: 140px; border-radius: 8px; background: linear-gradient(135deg, #c8d9d5, #f1e4c8); margin-bottom: 10px; }
.price { font-weight: 700; font-size: 1.1rem; }
button, .btn { font: inherit; padding: 10px 18px; border-radius: 8px; border: 0; background: #e2863b; color: #fff; cursor: pointer; text-decoration: none; display: inline-block; }
button[disabled] { background: #bbb; cursor: not-allowed; }
label { display: block; font-weight: 600; margin-top: 12px; }
input, select { font: inherit; padding: 8px 10px; border: 1px solid #999; border-radius: 6px; width: 100%; max-width: 360px; }
.overlay { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; z-index: 50; }
.overlay[hidden] { display: none; }
.sheet { background: #fff; border-radius: 12px; padding: 24px; max-width: 460px; width: 92%; position: relative; }
.fake-btn { display: inline-block; padding: 10px 18px; border-radius: 8px; background: #12343b; color: #fff; cursor: pointer; margin: 8px 8px 0 0; user-select: none; }
.fake-btn.ghost { background: #eee; color: #333; }
.x { position: absolute; top: 8px; right: 12px; font-size: 1.6rem; cursor: pointer; color: #666; user-select: none; }
.muted { color: #666; font-size: .9rem; }
.error { color: #b00020; font-weight: 600; }
.ok { color: #196c2e; font-weight: 600; }
footer { text-align: center; padding: 30px; color: #777; font-size: .85rem; }
