.shop-page { max-width: 1100px; margin: 0 auto; padding: 16px 12px 72px; font-family: Roboto, Arial, sans-serif; color: #212121; }
.shop-page h1 { font-size: 1.35rem; font-weight: 500; margin: 0 0 14px; }
.shop-empty, .shop-error { background: #fff; border: 1px solid #e0e0e0; border-radius: 4px; padding: 28px 18px; text-align: center; }
.shop-empty p, .shop-error p { color: #717478; }
.shop-layout { display: grid; gap: 12px; }
.shop-card { background: #fff; border: 1px solid #e0e0e0; border-radius: 4px; padding: 14px; }
.shop-item { display: grid; grid-template-columns: 72px 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid #f0f0f0; }
.shop-item:last-child { border-bottom: 0; }
.shop-item img { width: 72px; height: 72px; object-fit: contain; background: #fafafa; border-radius: 2px; }
.shop-item h2 { font-size: 0.95rem; font-weight: 500; margin: 0 0 4px; }
.shop-item .meta { color: #878787; font-size: 0.8rem; }
.shop-qty { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.shop-qty button { width: 32px; height: 32px; border: 1px solid #c2c2c2; background: #fff; border-radius: 2px; cursor: pointer; }
.shop-qty button:disabled {
    opacity: 0.38;
    cursor: not-allowed;
    color: #9aa0a6;
    background: #f5f5f5;
}
.shop-qty input { width: 48px; height: 32px; text-align: center; border: 1px solid #c2c2c2; border-radius: 2px; }
.shop-qty .shop-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    padding: 0;
    margin-left: 4px;
    border: 1px solid #e0e0e0;
    background: #fff;
    color: #c5221f;
    font-size: 0.85rem;
}
.shop-qty .shop-remove:hover,
.shop-qty .shop-remove:focus-visible {
    background: #fff5f5;
    border-color: #f4c7c3;
}
.shop-summary dt, .shop-summary dd { display: flex; justify-content: space-between; margin: 0; }
.shop-summary { display: grid; gap: 8px; font-size: 0.92rem; }
.shop-summary .row { display: flex; justify-content: space-between; gap: 12px; }
.shop-summary .pay { font-weight: 700; font-size: 1.05rem; padding-top: 8px; border-top: 1px dashed #e0e0e0; }
.shop-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; width: 100%; border: 0; border-radius: 2px; background: #fb641b; color: #fff; font-weight: 500; cursor: pointer; text-decoration: none; }
.shop-btn[disabled] { opacity: 0.55; cursor: not-allowed; }
.shop-btn.secondary { background: #fff; color: #2874f0; border: 1px solid #2874f0; }
.shop-btn.ghost { background: #fff; color: #212121; border: 1px solid #e0e0e0; }
.shop-steps { display: none; }
.shop-summary .shop-bad { margin: 8px 0; }
.shop-autofill { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; background: #e8f0fe; color: #174ea6; padding: 8px 10px; border-radius: 4px; font-size: 0.85rem; margin: 12px 0 4px; }
.shop-autofill a { color: #174ea6; font-weight: 600; }
.shop-autofill.manual { background: #fff8e1; color: #7a4f01; }
.shop-autofill.manual a { color: #7a4f01; }
.shop-fields-2 { display: grid; grid-template-columns: 1fr; gap: 0 12px; }
.shop-more { margin: 4px 0 12px; }
.shop-more summary { cursor: pointer; color: #2874f0; font-size: 0.88rem; font-weight: 500; }
.shop-more .shop-field { margin-top: 10px; }
.shop-field { display: flex; flex-direction: column; gap: 4px; margin-bottom: 10px; font-size: 0.82rem; color: #878787; }
.shop-field input, .shop-field select, .shop-field textarea { min-height: 42px; border: 1px solid #e0e0e0; border-radius: 2px; padding: 8px 10px; font: inherit; color: #212121; }
.shop-check { display: grid; grid-template-columns: auto 1fr; gap: 8px 10px; align-items: start; font-size: 0.88rem; line-height: 1.45; margin: 10px 0; }
.shop-check input { margin-top: 3px; }
.shop-check span { min-width: 0; }
.shop-note { font-size: 0.85rem; color: #878787; }
.shop-bad { background: #fff5f5; color: #c5221f; padding: 8px 10px; border-radius: 2px; font-size: 0.88rem; }
.shop-ok { background: #e6f4ea; color: #137333; padding: 8px 10px; border-radius: 2px; }
.shop-paybox { text-align: center; }
.shop-paybox img { width: 220px; height: 220px; object-fit: contain; }
.shop-state { font-weight: 500; margin: 8px 0; }
.shop-policies { font-size: 0.8rem; color: #878787; }
.shop-policies a { color: #2874f0; }
.nav-cart-badge.shop { background: #fb641b; }
.shop-loading { opacity: 0.6; pointer-events: none; }
@media (min-width: 600px) {
    .shop-fields-2 { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 800px) {
    .shop-layout { grid-template-columns: minmax(0, 1.6fr) minmax(280px, 0.9fr); align-items: start; }
    .shop-page h1 { font-size: 1.5rem; }
}
