.shop-page, .shop-admin { padding: 1.5rem 0 4rem; }
[hidden] { display: none !important; }
.shop-page h1, .shop-admin h1 { margin: 0 0 1rem; }
.shop-product { display: grid; grid-template-columns: minmax(250px, 1fr) minmax(320px, 1.2fr); gap: 2rem; align-items: start; margin: 2rem 0 3rem; }
.shop-product-image { display: block; width: 100%; max-width: 600px; height: auto; border-radius: 12px; background: #fff; }
.shop-product form, .shop-panel { background: #fff; border: 1px solid #dedbd6; border-radius: 10px; padding: 1.25rem; margin: 1rem 0; }
.shop-product form label, .shop-narrow label { display: block; font-weight: 600; margin: 0 0 1rem; }
.shop-product form input, .shop-product form select, .shop-narrow input, .shop-narrow select, .shop-narrow textarea { box-sizing: border-box; display: block; width: 100%; margin-top: .35rem; padding: .65rem; border: 1px solid #afa9a0; border-radius: 5px; font: inherit; }
.shop-product button, .shop-panel button, .shop-button, .shop-tabs button { background: #3b5e56; color: #fff; border: 0; border-radius: 5px; padding: .7rem 1.1rem; font: inherit; cursor: pointer; text-decoration: none; display: inline-block; }
.shop-product button:hover, .shop-panel button:hover, .shop-button:hover, .shop-tabs button:hover { background: #294a42; color: #fff; }
.shop-total { font-size: 1.1rem; }
.shop-design-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 1rem; margin-top: 1.5rem; }
.shop-design-card { display: flex; flex-direction: column; gap: .45rem; padding: .7rem; border: 1px solid #dedbd6; border-radius: 8px; background: #fff; text-decoration: none; color: #222; }
.shop-design-card:hover { border-color: #3b5e56; }
.shop-design-card img { width: 100%; aspect-ratio: 1; object-fit: contain; }
.shop-design-card span { line-height: 1.35; }
.shop-design-card small { color: #415e56; font-weight: 700; margin-top: auto; }
.shop-table { width: 100%; border-collapse: collapse; background: #fff; }
.shop-table th, .shop-table td { border-bottom: 1px solid #ddd; padding: .7rem; text-align: left; vertical-align: top; }
.shop-table input[type=number] { width: 4.5rem; padding: .4rem; }
.shop-cart-total { font-weight: 700; text-align: right; }
.shop-narrow { max-width: 500px; }
.shop-tabs { display: flex; gap: 1.25rem; align-items: center; flex-wrap: wrap; }
.shop-tabs form { margin: 0 0 0 auto; }
.shop-offer-row { display: flex; flex-wrap: wrap; gap: .7rem; align-items: end; margin: .8rem 0; }
.shop-offer-row label { display: flex; flex-direction: column; gap: .3rem; font-size: .9rem; }
.shop-offer-row input:not([type=checkbox]), .shop-offer-row select { padding: .5rem; max-width: 240px; }
.shop-offer-row label:has(input[type=checkbox]) { flex-direction: row; align-items: center; }
.shop-panel pre { white-space: pre-wrap; overflow-wrap: anywhere; }
.shop-error { color: #8a2020; font-weight: 700; }
.shop-success { color: #1c6650; font-weight: 700; }
.shop-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .8rem; }
.shop-stats .shop-panel { margin: .2rem 0 1.2rem; }
@media (max-width: 740px) { .shop-product { grid-template-columns: 1fr; } .shop-table { display: block; overflow-x: auto; } }
