.store-shell {
    margin-top: 24px;
    padding: 28px;
    background: var(--paper);
    border-radius: 13px;
    box-shadow: var(--shadow);
}
.store-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    padding: 4px 2px 20px;
    border-bottom: 1px solid var(--line);
}
.store-heading-copy { min-width: 0; }
.store-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: var(--muted);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.store-heading h1 {
    margin: 0;
    color: var(--ink);
    font-size: 26px;
    line-height: 1.1;
}
.store-heading p {
    max-width: 650px;
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}
.store-heading-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.store-pill-link,
.store-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    border: 1px solid var(--theme-accent-border);
    border-radius: 6px;
    background: var(--theme-nav-bg);
    padding: 7px 12px;
    color: var(--theme-nav-text);
    font: inherit;
    font-size: 11px;
    font-weight: 800;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .02em;
    cursor: pointer;
}
.store-pill-link:hover,
.store-pill-link:focus-visible,
.store-button:hover,
.store-button:focus-visible {
    background: var(--theme-nav-hover);
    color: var(--theme-nav-text);
    outline: none;
}
.store-button-secondary {
    background: #fff;
    color: var(--ink);
    border-color: var(--line);
}
.store-button-secondary:hover,
.store-button-secondary:focus-visible {
    background: var(--theme-accent-soft);
    color: var(--ink);
}
.store-button-danger {
    background: #fff;
    color: #8b2028;
    border-color: #d6a3a7;
}
.store-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 280px;
    gap: 22px;
    padding-top: 22px;
    align-items: start;
}
.store-products {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.store-product-card {
    position: relative;
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
    overflow: hidden;
    box-shadow: 0 5px 14px rgba(0,0,0,.05);
}
.store-product-image-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 148px;
    background: linear-gradient(180deg, var(--theme-accent-soft), #fff);
    border-bottom: 1px solid var(--line);
}
.store-product-image {
    display: block;
    width: 96px;
    height: 96px;
    object-fit: contain;
    image-rendering: auto;
}
.store-product-fallback {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 82px;
    height: 82px;
    border: 2px solid var(--theme-accent-border);
    border-radius: 18px;
    background: #fff;
    color: var(--theme-accent-ink);
    font-size: 30px;
    font-weight: 900;
}
.store-product-body { padding: 14px; }
.store-product-badges {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 20px;
    margin-bottom: 7px;
}
.store-badge {
    display: inline-flex;
    align-items: center;
    min-height: 18px;
    border-radius: 999px;
    padding: 3px 7px;
    background: #ededee;
    color: #66666a;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.store-badge-special {
    background: var(--theme-accent-soft-strong);
    color: var(--theme-accent-ink);
}
.store-product-card h2 {
    margin: 0;
    color: var(--ink);
    font-size: 16px;
    line-height: 1.2;
}
.store-product-card p {
    min-height: 36px;
    margin: 6px 0 11px;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}
.store-product-footer {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
}
.store-price { min-width: 0; }
.store-price strong {
    display: block;
    color: var(--ink);
    font-size: 19px;
    line-height: 1;
}
.store-price del {
    display: block;
    margin-bottom: 3px;
    color: var(--muted);
    font-size: 10px;
}
.store-cart {
    position: sticky;
    top: 16px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
    overflow: hidden;
    box-shadow: 0 5px 14px rgba(0,0,0,.05);
}
.store-cart-head {
    padding: 12px 14px;
    background: var(--theme-accent-soft);
    border-bottom: 1px solid var(--line);
}
.store-cart-head h2 { margin: 0; font-size: 15px; }
.store-cart-head small { display: block; margin-top: 3px; color: var(--muted); font-size: 10px; }
.store-cart-body { padding: 12px 14px 14px; }
.store-cart-empty {
    margin: 2px 0;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.5;
}
.store-cart-item {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 9px;
    padding: 9px 0;
    border-bottom: 1px solid #ececee;
}
.store-cart-item strong { display: block; font-size: 11px; }
.store-cart-item span { color: var(--muted); font-size: 10px; }
.store-cart-remove {
    align-self: start;
    border: 0;
    background: transparent;
    padding: 0;
    color: #8b2028;
    font-size: 10px;
    font-weight: 800;
    cursor: pointer;
}
.store-coupon {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}
.store-coupon label {
    display: block;
    margin-bottom: 5px;
    color: var(--ink);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}
.store-coupon-row {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    gap: 6px;
}
.store-coupon input {
    width: 100%;
    min-width: 0;
    border: 1px solid #bfc0c2;
    border-radius: 5px;
    background: var(--field);
    padding: 8px 9px;
    color: var(--ink);
    font: inherit;
    font-size: 11px;
    text-transform: uppercase;
}
.store-coupon-status {
    margin: 7px 0 0;
    color: var(--theme-accent-ink);
    font-size: 10px;
    line-height: 1.4;
}
.store-totals {
    margin-top: 12px;
    border-top: 1px solid var(--line);
    padding-top: 9px;
}
.store-total-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 3px 0;
    color: var(--muted);
    font-size: 11px;
}
.store-total-row strong { color: var(--ink); }
.store-total-final {
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid #ececee;
    color: var(--ink);
    font-size: 13px;
    font-weight: 900;
}
.store-cart-actions {
    display: grid;
    gap: 7px;
    margin-top: 12px;
}
.store-notice {
    margin: 18px 0 0;
    border: 1px solid var(--line);
    border-left: 4px solid var(--theme-accent-border);
    border-radius: 6px;
    background: var(--theme-accent-soft);
    padding: 11px 13px;
    color: var(--ink);
    font-size: 11px;
    line-height: 1.5;
}
.store-notice-error { border-left-color: #a62b35; background: #fff2f3; }
.store-notice-success { border-left-color: #398348; background: #f2fbf4; }
.store-empty-panel,
.store-orders-panel,
.store-payment-panel {
    margin-top: 20px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--paper);
    padding: 18px;
}
.store-empty-panel h2,
.store-orders-panel h2,
.store-payment-panel h2 { margin: 0 0 7px; font-size: 18px; }
.store-empty-panel p,
.store-payment-panel p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.store-order {
    padding: 13px 0;
    border-top: 1px solid var(--line);
}
.store-order:first-of-type { margin-top: 8px; }
.store-order-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}
.store-order-head strong { font-size: 12px; }
.store-order-head small { display: block; margin-top: 2px; color: var(--muted); font-size: 10px; }
.store-status {
    border-radius: 999px;
    padding: 4px 7px;
    background: #ededee;
    color: #55555a;
    font-size: 9px;
    font-weight: 900;
    text-transform: uppercase;
}
.store-status-paid { background: #e7f6ea; color: #347342; }
.store-status-pending { background: #fff5d9; color: #7b621d; }
.store-status-refunded,
.store-status-reversed { background: #fff0f1; color: #8b2028; }
.store-order-items { margin: 8px 0 0; padding: 0; list-style: none; }
.store-order-items li {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    padding: 3px 0;
    color: var(--muted);
    font-size: 10px;
}
.store-order-summary {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 7px;
    font-size: 10px;
}
.store-order-summary strong { font-size: 12px; }
.store-payment-amount {
    margin: 14px 0;
    color: var(--ink);
    font-size: 22px;
    font-weight: 900;
}
.store-paypal-button {
    min-width: 190px;
    min-height: 38px;
}
@media (max-width: 850px) {
    .store-layout { grid-template-columns: 1fr; }
    .store-cart { position: static; }
}
@media (max-width: 620px) {
    .store-shell { padding: 18px; }
    .store-heading { flex-direction: column; }
    .store-heading-actions { justify-content: flex-start; }
    .store-products { grid-template-columns: 1fr; }
}

/* v248 - MCP ownership / fulfilment states */
.store-badge-owned{background:#d9f2df;color:#17672b}.store-badge-unavailable{background:#f0e2e5;color:#8b2034}.store-order-statuses{display:flex;gap:5px;align-items:center;justify-content:flex-end;flex-wrap:wrap}.store-fulfilment-fulfilled{background:#d9f2df!important;color:#17672b!important}.store-fulfilment-pending,.store-fulfilment-partial{background:#fff0c5!important;color:#755600!important}.store-fulfilment-failed{background:#f0e2e5!important;color:#8b2034!important}.store-fulfilment-revoked{background:#e3e8f7!important;color:#31477e!important}.store-order-items li span small{display:block;margin-top:2px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.03em}.store-entitlement-note{padding:8px 9px;border:1px solid var(--theme-accent-border);border-radius:6px;background:var(--theme-accent-soft)}

/* v249 - customer order lifecycle / receipts */
.store-notice-info{border-left-color:var(--theme-accent-border);background:var(--theme-accent-soft)}
.store-order-actions,.store-receipt-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px}.store-order-actions form,.store-receipt-actions form{margin:0}
.store-receipt-panel{max-width:820px}.store-receipt-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:13px;border-bottom:1px solid var(--line)}.store-receipt-head h2{margin:0 0 3px}.store-receipt-head small{color:var(--muted);font-size:10px}
.store-receipt-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:15px 0}.store-receipt-grid>div{padding:8px 9px;border:1px solid var(--line);border-radius:6px;background:var(--theme-accent-soft)}.store-receipt-grid span{display:block;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.store-receipt-grid strong{display:block;margin-top:3px;color:var(--ink);font-size:11px;overflow-wrap:anywhere}
.store-receipt-table{width:100%;border-collapse:collapse;margin-top:12px;font-size:11px}.store-receipt-table th{padding:8px;background:var(--theme-accent-soft);border:1px solid var(--line);text-align:left}.store-receipt-table td{padding:9px 8px;border:1px solid var(--line);vertical-align:top}.store-receipt-table th:last-child,.store-receipt-table td:last-child{text-align:right;white-space:nowrap}.store-receipt-table td small{display:block;margin-top:2px;color:var(--muted);font-size:9px}
.store-receipt-totals{max-width:330px;margin:14px 0 0 auto;border-top:1px solid var(--line);padding-top:7px}.store-receipt-totals>div{display:flex;justify-content:space-between;gap:12px;padding:3px 0;color:var(--muted);font-size:10px}.store-receipt-totals strong{color:var(--ink)}.store-receipt-totals .final{margin-top:4px;padding-top:7px;border-top:1px solid var(--line);color:var(--ink);font-size:12px;font-weight:900}
.store-pagination{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.store-pagination a{display:inline-flex;align-items:center;justify-content:center;min-width:28px;min-height:28px;padding:5px 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-size:10px;font-weight:800;text-decoration:none}.store-pagination a:hover,.store-pagination a.active{background:var(--theme-nav-bg);border-color:var(--theme-accent-border);color:var(--theme-nav-text)}
@media(max-width:620px){.store-receipt-head{flex-direction:column}.store-receipt-grid{grid-template-columns:1fr}.store-receipt-table{font-size:10px}.store-receipt-actions,.store-order-actions{align-items:stretch}.store-receipt-actions>* ,.store-order-actions>*{flex:1 1 auto}.store-receipt-actions .store-button,.store-order-actions .store-button{width:100%}}
@media print{body{background:#fff!important}.portal-topbar,.site-footer,.store-heading,.no-print,.store-notice{display:none!important}.page-shell,.portal-frame,.store-shell,.store-orders-panel{margin:0!important;padding:0!important;box-shadow:none!important;border:0!important;background:#fff!important}.store-receipt-panel{max-width:none}.store-receipt-grid>div{background:#fff!important}.store-receipt-table th{background:#eee!important;color:#000!important}}
