.hidden { display: none !important; }
.section-head, .store-head { display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; margin-bottom: 26px; }
h1 { font-size: 30px; margin: 0 0 8px; line-height: 1.3; }
h2 { font-size: 21px; margin: 0 0 16px; }
h3 { font-size: 16px; margin: 0 0 10px; }
.muted, .item-meta { color: #61746d; font-size: 14px; margin: 0; }
.back-link { color: #0d6c52; display: inline-block; margin-bottom: 22px; }
.market-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.market-card { border: 1px solid #d8e4df; background: #fff; border-radius: 6px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.market-card .thumb { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #e8eeea; }
.market-card .self-mark { width: 72px; height: 72px; object-fit: contain; margin: 18px 0 0 18px; }
body[data-page="stores"] .market-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body[data-page="stores"] .self-store { flex-direction: row; align-items: flex-start; }
body[data-page="stores"] .self-store .body { gap: 7px; }
.market-card .body { padding: 18px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.market-card h3 { margin: 0; overflow-wrap: anywhere; }
.market-card p { margin: 0; }
.market-card .bottom { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 12px; }
.market-card .price { font-size: 19px; color: #144e3f; font-weight: 700; white-space: nowrap; }
.shop-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 28px; align-items: start; }
.shop-layout .market-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.checkout { border: 1px solid #d8e4df; background: #fff; padding: 20px; border-radius: 6px; }
.checkout .form + .form { margin-top: 12px; }
.cart-row { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid #e3ebe7; padding: 11px 0; }
.cart-row span { overflow-wrap: anywhere; }
.cart-row input { width: 60px; border: 1px solid #bdcec6; border-radius: 4px; padding: 5px; }
.total { font-weight: 700; text-align: right; padding: 12px 0; }
.order-result { border-top: 1px solid #d8e4df; margin-top: 20px; padding-top: 16px; overflow-wrap: anywhere; }
.order-result a { color: #0b604b; }
.payment-qr { display: inline-block; max-width: 100%; padding: 12px; background: #fff; border: 1px solid #d8e4df; }
.payment-qr svg { display: block; width: min(100%, 300px); height: auto; }
.merchant-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr); gap: 24px; align-items: start; }
.sheet { background: #fff; border: 1px solid #d8e4df; border-radius: 6px; padding: 24px; margin-bottom: 22px; }
.field-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.field { min-width: 0; }
.field input, .field textarea, .field select { min-width: 0; }
.consent { display: block; font-size: 13px; line-height: 1.6; }
.consent input { vertical-align: middle; margin-right: 7px; }
.consent a, .review-guide a { color: #0b604b; text-underline-offset: 3px; }
.review-guide ol { margin: 0 0 20px; padding-left: 22px; }
.review-guide li { padding: 0 0 11px 2px; }
.merchant-subsection { border-top: 1px solid #d8e4df; margin-top: 22px; padding-top: 20px; }
.merchant-subsection > .muted { margin-bottom: 16px; }
.merchant-products { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 20px; }
.text-button { border: 0; padding: 4px 0; background: transparent; color: #0b604b; text-align: left; text-decoration: underline; font-weight: 600; }
.form-status { margin: 8px 0 18px; min-height: 1.5em; }
.form-status.error { color: #a33121; }
.button.small { min-height: 34px; padding: 5px 11px; }
.note { margin-bottom: 18px; }
.store-head img { width: 108px; height: 80px; object-fit: contain; }
.admin-list { display: grid; gap: 14px; }
.admin-entry { padding: 18px 0; border-bottom: 1px solid #d8e4df; }
.admin-entry h3 { margin: 0 0 6px; }
.admin-actions { display: flex; gap: 8px; flex-wrap: wrap; align-items: end; margin-top: 12px; }
.admin-actions .field { max-width: 310px; }
.admin-actions .button { align-self: end; }
.admin-actions form { display: contents; }
.admin-entry dl { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 3px 12px; margin: 12px 0; font-size: 14px; }
.admin-entry dt { color: #61746d; }
.admin-entry dd { margin: 0; overflow-wrap: anywhere; }
#merchant-orders { margin-top: 30px; }
@media (max-width: 900px) { .shop-layout, .merchant-layout { grid-template-columns: 1fr; } .market-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .market-grid, .shop-layout .market-grid, .field-row, .merchant-products, body[data-page="stores"] .market-grid { grid-template-columns: 1fr; } .sheet, .checkout { padding: 16px; } .section-head { align-items: start; } .admin-entry dl { grid-template-columns: 1fr; } body[data-page="stores"] .self-store { flex-direction: column; } }
