/* Petlify - Market Module Styles */
/* Phục vụ công khai qua /feature-assets/Market/market.css */

.market-access-page { max-width: 1080px; margin: 0 auto; }
.market-access-card {
  max-width: 760px;
  padding: 1.5rem;
  background: var(--pl-glass-bg, #fff);
  backdrop-filter: var(--pl-glass-blur);
  -webkit-backdrop-filter: var(--pl-glass-blur);
  border: 1px solid var(--pl-glass-border, #e6ddea);
  border-radius: var(--pl-radius-card, 18px);
  box-shadow: var(--pl-glass-shadow);
}
.market-access-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.market-access-full { grid-column: 1 / -1; }
.market-access-table-wrap { overflow-x: auto; border: 1px solid var(--pl-border, #e6ddea); border-radius: var(--pl-radius-card, 18px); background: #fff; }
.market-access-table { min-width: 760px; margin: 0; }
.market-status { display: inline-flex; padding: .25rem .65rem; border-radius: 999px; font-weight: 700; background: #eee; }
.market-status--active { color: #12613d; background: #dff6e9; }
.market-status--suspended { color: #8a281f; background: #fde5e2; }
.market-status--pendingapproval { color: #76520c; background: #fff0c7; }
.market-status--draft { color: #62536b; background: #eee8f1; }
.market-status--published { color: #12613d; background: #dff6e9; }
.market-status--hidden { color: #8a281f; background: #fde5e2; }
.market-access-empty { padding: 2rem; text-align: center; color: var(--pl-text-muted, #665d6d); border: 1px dashed var(--pl-border, #e6ddea); border-radius: 18px; }
@media (max-width: 767.98px) { .market-access-form { grid-template-columns: 1fr; } .market-access-full { grid-column: auto; } }
@media (max-width: 575.98px) {
  .market-access-table { min-width: 0; }
  .market-access-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .market-access-table tr { display: block; padding: .75rem; border-bottom: 1px solid var(--pl-border, #e6ddea); }
  .market-access-table td { display: grid; grid-template-columns: minmax(7rem, 40%) 1fr; gap: .5rem; border: 0; padding: .35rem; overflow-wrap: anywhere; }
  .market-access-table td::before { content: attr(data-label); font-weight: 700; color: var(--pl-deep, #32194d); }
}

.market-product-images { max-width: 1120px; margin: 0 auto; display: grid; gap: 1.25rem; }
.market-image-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 1rem; padding: 1rem; }
.market-image-card { display: grid; gap: .75rem; align-content: start; padding: .75rem; border: 1px solid var(--pl-border, #e5e7eb); border-radius: var(--pl-radius-lg, 16px); }
.market-image-card img, .market-image-empty img, .market-image-preview img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--pl-radius-md, 12px); background: #fff7ed; }
.market-image-card p { overflow-wrap: anywhere; margin: 0; }
.market-image-empty { max-width: 360px; margin: 1rem auto; text-align: center; }
.market-image-upload { display: grid; gap: 1rem; padding: 1rem; }
.market-image-preview { max-width: 360px; }
@media (max-width: 390px) { .market-image-grid { grid-template-columns: 1fr; } .market-product-images .market-page-header { align-items: stretch; } }

.market-product-card {
    background: var(--pl-glass-bg, #fff);
    backdrop-filter: var(--pl-glass-blur);
    -webkit-backdrop-filter: var(--pl-glass-blur);
    border: 1px solid var(--pl-glass-border, #e6ddea);
    border-radius: var(--pl-radius-card, 18px);
    box-shadow: var(--pl-glass-shadow);
    transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease, border-color 0.2s ease;
    overflow: hidden;
}

.market-product-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px -5px rgba(107, 70, 193, 0.15);
    border-color: rgba(107, 70, 193, 0.25);
}

.market-product-create { max-width: 760px; margin: 0 auto; }
.market-page-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 1.5rem; }
.market-eyebrow { margin: 0 0 .35rem; color: var(--pl-primary, #7c3aed); font-size: .8rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.market-product-form { display: grid; gap: 1rem; }
.market-product-grid, .market-variant-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; padding: 1.25rem; }
.market-field-wide { grid-column: 1 / -1; }
.market-variant-heading { display: flex; justify-content: space-between; align-items: center; gap: 1rem; }
.market-variant-list { display: grid; gap: 1rem; padding: 0 1.25rem 1.25rem; }
.market-variant-card { position: relative; min-width: 0; padding: 1rem; border: 1px solid var(--pl-border, #e6ddea); border-radius: var(--pl-radius-card, 18px); background: var(--pl-surface-soft, #fff9f5); }
.market-variant-card legend { float: none; width: auto; margin: 0; padding: 0 .35rem; color: var(--pl-deep, #32194d); font-size: 1rem; font-weight: 800; }
.market-variant-card .market-variant-grid { padding: .5rem 0 0; }
.market-remove-variant { display: inline-flex; margin-top: .5rem; padding: .35rem .65rem; color: var(--pl-danger, #b42318); background: transparent; border: 0; text-decoration: underline; }
.market-remove-variant:focus-visible { outline: 3px solid var(--pl-focus, #f0a8cf); outline-offset: 2px; }
.market-form-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 767.98px) {
  .market-page-header, .market-variant-heading { align-items: stretch; flex-direction: column; }
  .market-product-grid, .market-variant-grid { grid-template-columns: 1fr; }
  .market-field-wide { grid-column: auto; }
}
@media (max-width: 389.98px) {
  .market-product-grid, .market-variant-list { padding-inline: .75rem; }
  .market-form-actions { align-items: stretch; flex-direction: column; }
  .market-form-actions .pl-btn { justify-content: center; width: 100%; }
}

/* P1-017: COD checkout */
.market-checkout-page { max-width: 1200px; margin: 0 auto; display: grid; gap: 1.5rem; min-width: 0; overflow-wrap: anywhere; }
.market-checkout-page .market-page-header { margin-bottom: 0; }
.market-checkout-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: .75rem; color: var(--pl-muted); font-size: .875rem; }
.market-checkout-breadcrumb a { display: inline-flex; align-items: center; min-height: 44px; }
.market-checkout-breadcrumb [aria-current] { color: var(--pl-primary); font-weight: 600; }
.market-checkout-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); gap: 1.5rem; align-items: start; }
.market-checkout-main, .market-checkout-contact, .market-checkout-lines, .market-checkout-payment { display: grid; gap: 1.25rem; min-width: 0; }
.market-checkout-contact, .market-checkout-lines, .market-checkout-payment, .market-checkout-state { padding: 1.5rem; }
.market-checkout-section-heading { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.market-checkout-section-heading h2 { margin: 0; font-size: 1.25rem; flex: 1; min-width: 0; }
.market-checkout-section-number { display: grid; place-items: center; flex: 0 0 2rem; height: 2rem; background: var(--pl-cream); color: var(--pl-primary); border-radius: var(--pl-radius-pill); font-weight: 700; }
.market-checkout-edit { display: inline-flex; align-items: center; min-height: 44px; font-size: .875rem; font-weight: 600; }
.market-checkout-payment-method { display: flex; align-items: flex-start; gap: .75rem; padding: 1rem; border: 1px solid var(--pl-primary); border-radius: var(--pl-radius-control); background: var(--pl-canvas); }
.market-checkout-payment-method > div { min-width: 0; }
.market-checkout-payment-check { display: grid; place-items: center; flex: 0 0 1.5rem; height: 1.5rem; border-radius: var(--pl-radius-pill); background: var(--pl-primary); color: var(--pl-surface); }
.market-checkout-payment-method p { margin: .25rem 0 0; font-size: .875rem; color: var(--pl-muted); }
.market-checkout-store { margin: 0; color: var(--pl-muted); }
.market-checkout-main > .validation-summary-valid { display: none; }
.market-checkout-confirmation { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: 1.5rem; border-color: var(--pl-success, #236344); background: var(--pl-success-bg, #edf7f0); }
.market-checkout-confirmation-icon { display: grid; place-items: center; width: 3rem; height: 3rem; color: #fff; background: var(--pl-success, #236344); border-radius: 999px; font-size: 1.5rem; font-weight: 800; }
.market-checkout-confirmation h2, .market-checkout-confirmation p { margin-bottom: .5rem; }
.market-checkout-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.market-checkout-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.market-checkout-fields .pl-field { margin: 0; min-width: 0; }
.market-checkout-fields .form-control { min-height: 44px; }
.market-checkout-fields textarea { resize: vertical; }
.market-checkout-lines article { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, auto); gap: 1rem; padding-top: 1rem; border-top: 1px solid var(--pl-border, #e7dfeb); }
.market-checkout-lines article div { display: grid; min-width: 0; overflow-wrap: anywhere; }
.market-checkout-lines article div span { color: var(--pl-muted, #6f6177); }
.market-checkout-line-total { text-align: right; font-variant-numeric: tabular-nums; }
.market-checkout-summary {
  position: sticky;
  top: 5.5rem;
  display: grid;
  gap: 1rem;
  padding: 1.5rem;
  background: var(--pl-glass-bg, #fff);
  backdrop-filter: var(--pl-glass-blur);
  -webkit-backdrop-filter: var(--pl-glass-blur);
  border: 1px solid var(--pl-glass-border, #e7dfeb);
  border-radius: var(--pl-radius-card, 18px);
  box-shadow: var(--pl-glass-shadow);
}
.market-checkout-summary > div { display: flex; justify-content: space-between; gap: 1rem; }
.market-checkout-summary h2 { margin: 0; font-size: 1.25rem; }
.market-checkout-summary p { margin: 0; }
.market-checkout-summary > div > strong { min-width: 0; text-align: right; font-variant-numeric: tabular-nums; }
.market-checkout-item-count { padding-bottom: 1rem; border-bottom: 1px solid var(--pl-border); font-size: .875rem; color: var(--pl-muted); }
.market-checkout-total { flex-wrap: wrap; align-items: baseline; padding-top: 1rem; border-top: 1px solid var(--pl-border); font-weight: 600; }
.market-checkout-total strong { margin-left: auto; font-size: 1.75rem; color: var(--pl-primary); }
.market-checkout-pay-later { color: var(--pl-primary); text-align: right; font-size: .875rem; }
.market-checkout-order-note { color: var(--pl-muted); font-size: .875rem; text-align: center; }
.market-checkout-summary [data-submit-button] { min-height: 48px; }
@media (max-width: 1023.98px) { .market-checkout-layout { grid-template-columns: 1fr; } .market-checkout-summary { position: static; } }
@media (max-width: 767.98px) { .market-checkout-fields { grid-template-columns: 1fr; } .market-checkout-contact, .market-checkout-lines, .market-checkout-payment, .market-checkout-summary { padding: 1rem; } .market-checkout-fields .market-field-wide { grid-column: auto; } .market-checkout-confirmation { grid-template-columns: auto minmax(0, 1fr); } .market-checkout-confirmation .pl-btn, .market-checkout-confirmation .market-checkout-actions { grid-column: 1 / -1; justify-content: center; } }
@media (max-width: 389.98px) { .market-checkout-lines article { grid-template-columns: 1fr; gap: .35rem; } }

/* P1-018: seller order confirmation */
.market-seller-orders { max-width: 1200px; margin: 0 auto; display: grid; gap: 1.5rem; }
.market-order-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.market-seller-order-layout { display: grid; grid-template-columns: minmax(280px, 360px) minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.market-seller-order-list { display: grid; gap: .75rem; }
.market-seller-order-card {
  display: grid;
  gap: .5rem;
  padding: 1rem;
  background: var(--pl-glass-bg, #fff);
  backdrop-filter: var(--pl-glass-blur);
  -webkit-backdrop-filter: var(--pl-glass-blur);
  border: 1px solid var(--pl-glass-border, #e7dfeb);
  border-radius: var(--pl-radius-card, 16px);
  box-shadow: var(--pl-glass-shadow);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.market-seller-order-card.is-selected { border-color: var(--pl-primary, #70417b); box-shadow: 0 0 0 3px rgb(112 65 123 / .12); }
.market-seller-order-card > div { display: flex; justify-content: space-between; align-items: start; gap: .75rem; }
.market-seller-order-card h2, .market-seller-order-card p { margin: 0; font-size: 1rem; }
.market-seller-order-card time { color: var(--pl-muted, #6f6177); font-size: .875rem; }
.market-order-status { display: inline-flex; width: fit-content; padding: .3rem .65rem; border-radius: 999px; font-size: .8rem; font-weight: 800; white-space: nowrap; }
.market-order-status--pendingconfirmation { color: var(--pl-warning, #795300); background: var(--pl-warning-bg, #fff4d6); }
.market-order-status--confirmed { color: var(--pl-success, #236344); background: var(--pl-success-bg, #edf7f0); }
.market-order-status--rejected { color: var(--pl-danger, #a12d45); background: var(--pl-danger-bg, #fdeef1); }
.market-seller-order-detail { display: grid; gap: 1.25rem; padding: 1.25rem; min-width: 0; }
.market-order-detail-heading { display: flex; justify-content: space-between; align-items: start; gap: 1rem; }
.market-order-detail-heading h2 { margin: 0; overflow-wrap: anywhere; }
.market-order-recipient, .market-order-money { display: grid; gap: .6rem; margin: 0; }
.market-order-recipient > div, .market-order-money > div { display: grid; grid-template-columns: minmax(8rem, 30%) minmax(0, 1fr); gap: .75rem; }
.market-order-recipient dd, .market-order-money dd { margin: 0; overflow-wrap: anywhere; }
.market-order-lines { display: grid; gap: .75rem; }
.market-order-lines article { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 1rem; padding-block: .75rem; border-top: 1px solid var(--pl-border, #e7dfeb); }
.market-order-lines article div { display: grid; min-width: 0; overflow-wrap: anywhere; }
.market-order-lines article div span { color: var(--pl-muted, #6f6177); }
.market-order-actions { display: flex; flex-wrap: wrap; align-items: start; gap: .75rem; }
.market-reject-panel { min-width: min(100%, 24rem); }
.market-reject-panel summary { cursor: pointer; list-style: none; }
.market-reject-panel form { display: grid; gap: .6rem; margin-top: .75rem; padding: 1rem; border: 1px solid var(--pl-border, #e7dfeb); border-radius: var(--pl-radius-control, 12px); }
.market-reject-panel textarea { width: 100%; min-height: 6rem; padding: .75rem; border: 1px solid var(--pl-control-border, #8a7792); border-radius: var(--pl-radius-control, 12px); }
.market-order-pagination { display: flex; gap: .5rem; }
.market-order-select-prompt, .market-order-closed-note { padding: 1.25rem; }
@media (max-width: 1023.98px) { .market-seller-order-layout { grid-template-columns: 1fr; } }
@media (max-width: 767.98px) { .market-order-detail-heading, .market-seller-order-card > div { align-items: stretch; flex-direction: column; } .market-order-actions { display: grid; } }
@media (max-width: 389.98px) { .market-order-lines article { grid-template-columns: 1fr; gap: .35rem; } .market-order-recipient > div, .market-order-money > div { grid-template-columns: 1fr; gap: .15rem; } .market-order-filters .pl-btn { flex: 1 1 100%; justify-content: center; } }

/* P1-016: single-store cart */
.market-cart-page { max-width: 1200px; margin: 0 auto; display: grid; gap: 1.5rem; }
.market-replace-confirm { padding: 1.25rem; border: 2px solid var(--pl-primary, #70417b); }
.market-inline-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.market-cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 1.5rem; align-items: start; }
.market-cart-lines { min-width: 0; overflow: hidden; }
.market-cart-store { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.5rem; border-bottom: 1px solid var(--pl-border); }
.market-cart-store h2 { margin: 0; font-size: 1.25rem; overflow-wrap: anywhere; }
.market-cart-store > div { min-width: 0; }
.market-cart-store > span { color: var(--pl-muted); font-size: .875rem; }
.market-cart-line { display: grid; grid-template-columns: 100px minmax(0, 1fr) 12rem; gap: 1rem; padding: 1.5rem; }
.market-cart-line + .market-cart-line { border-top: 1px solid var(--pl-border); }
.market-cart-line > img { width: 100%; aspect-ratio: 1; object-fit: contain; border-radius: var(--pl-radius-control, 12px); background: var(--pl-surface); }
.market-cart-line-info, .market-cart-line-actions { display: grid; gap: .6rem; align-content: start; min-width: 0; }
.market-cart-line-info h3 { margin: 0; font-size: 1.1rem; overflow-wrap: anywhere; }
.market-cart-line-info p { margin: 0; color: var(--pl-text-muted, #6f6177); }
.market-cart-line-info strong, .market-line-total strong { font-variant-numeric: tabular-nums; }
.market-cart-line-info .market-availability { justify-self: start; }
.market-cart-line-actions > form:nth-child(2) { justify-self: end; }
.market-quantity-form { display: grid; grid-template-columns: 1fr; gap: .5rem; align-items: center; }
.market-quantity-form label { grid-column: 1 / -1; font-size: .875rem; }
.market-quantity-form input { width: 100%; min-width: 0; }
.market-quantity-form .pl-btn { min-width: 0; padding-inline: .75rem; }
.market-quantity-form small { display: block; color: var(--pl-text-muted, #6f6177); font-weight: 400; }
.market-line-total { display: grid; gap: .25rem; margin: 0; text-align: right; overflow-wrap: anywhere; }
.market-line-total span { color: var(--pl-muted); font-size: .875rem; }
.market-cart-summary {
  position: sticky;
  top: 5.5rem;
  display: grid;
  gap: 1rem;
  padding: 1.25rem;
  background: var(--pl-glass-bg, #fff);
  backdrop-filter: var(--pl-glass-blur);
  -webkit-backdrop-filter: var(--pl-glass-blur);
  border: 1px solid var(--pl-glass-border, #e7dfeb);
  border-radius: var(--pl-radius-card, 18px);
  box-shadow: var(--pl-glass-shadow);
}
.market-cart-summary > div { display: flex; justify-content: space-between; gap: 1rem; }
.market-cart-summary h2 { margin: 0 0 .5rem; font-size: 1.25rem; }
.market-cart-summary > div > strong { text-align: right; overflow-wrap: anywhere; min-width: 0; font-variant-numeric: tabular-nums; }
.market-cart-total { align-items: baseline; padding-top: 1rem; border-top: 1px solid var(--pl-border); }
.market-cart-total strong { color: var(--pl-primary); font-size: 1.5rem; }
.market-cart-summary p, .market-cart-summary small { margin: 0; color: var(--pl-text-muted, #6f6177); }
.market-cart-unavailable form { display: grid; grid-template-columns: minmax(90px, 120px) auto; gap: .5rem .75rem; align-items: end; }
.market-cart-unavailable form label { grid-column: 1 / -1; }
@media (max-width: 1023.98px) {
  .market-cart-layout { grid-template-columns: 1fr; }
  .market-cart-summary { position: static; }
}
@media (max-width: 767.98px) {
  .market-cart-store, .market-cart-line { padding: 1rem; }
  .market-cart-line { grid-template-columns: 100px minmax(0, 1fr); }
  .market-cart-line-actions { grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .75rem; }
  .market-quantity-form { max-width: 14rem; }
  .market-line-total { grid-column: 1 / -1; display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; text-align: left; }
}
@media (max-width: 389.98px) {
  .market-cart-line { grid-template-columns: 72px minmax(0, 1fr); gap: .75rem; }
  .market-inline-actions, .market-cart-unavailable form { display: grid; grid-template-columns: 1fr; }
  .market-cart-unavailable form label { grid-column: auto; }
}

.market-seller-products { max-width: 1200px; margin: 0 auto; display: grid; gap: 1.25rem; }
.market-seller-products-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem; padding: 2rem; background: linear-gradient(120deg, #fff3dc 0%, #fff 64%, #f8eff9 100%); border: 1px solid var(--pl-border, #e7dfeb); border-radius: 24px; box-shadow: 0 10px 30px rgb(50 25 77 / .05); }
.market-seller-products-heading { max-width: 44rem; }
.market-seller-products-heading h1 { margin: 0 0 .5rem; color: var(--pl-deep, #32194d); font-size: clamp(1.8rem, 3vw, 2.4rem); }
.market-seller-products-heading p:last-child { margin: 0; color: var(--pl-muted, #6f6177); line-height: 1.6; }
.market-seller-header-actions { display: grid; justify-items: end; gap: .8rem; flex: 0 0 auto; }
.market-store-state { display: inline-flex; align-items: center; gap: .45rem; color: var(--pl-success, #236344); font-size: .85rem; font-weight: 750; }
.market-store-state > span { width: .6rem; height: .6rem; background: currentColor; border-radius: 50%; box-shadow: 0 0 0 4px rgb(35 99 68 / .1); }
.market-seller-workspace-nav { display: flex; gap: .5rem; padding-bottom: .75rem; border-bottom: 1px solid var(--pl-border, #e7dfeb); }
.market-seller-workspace-nav a { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .65rem 1rem; color: var(--pl-muted, #6f6177); font-weight: 750; text-decoration: none; border: 1px solid transparent; border-radius: 12px; }
.market-seller-workspace-nav a:hover, .market-seller-workspace-nav a:focus-visible { color: var(--pl-primary, #70417b); background: #faf5fb; }
.market-seller-workspace-nav a.is-active { color: var(--pl-primary, #70417b); background: #f5ebf7; border-color: #e4d2e8; }
.market-seller-product-toolbar { display: grid; gap: 1.25rem; }
.market-seller-product-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.market-seller-product-summary > div { display: flex; align-items: center; gap: .85rem; min-width: 0; padding: 1rem 1.1rem; background: #fff; border: 1px solid var(--pl-border, #e7dfeb); border-radius: 16px; }
.market-seller-product-summary > div > span:last-child { display: grid; min-width: 0; }
.market-seller-product-summary strong { color: var(--pl-deep, #32194d); font-size: 1rem; line-height: 1.35; }
.market-seller-product-summary small { color: var(--pl-muted, #6f6177); font-size: .8rem; }
.market-summary-icon { display: grid; place-items: center; flex: 0 0 2.5rem; width: 2.5rem; height: 2.5rem; background: #f5ebf7; border-radius: 12px; }
.market-summary-icon--success { color: #fff; background: var(--pl-success, #236344); font-weight: 900; }
.market-product-list-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding-top: .25rem; }
.market-product-list-heading h2 { margin: 0 0 .2rem; color: var(--pl-deep, #32194d); font-size: 1.25rem; }
.market-product-list-heading p { margin: 0; color: var(--pl-muted, #6f6177); font-size: .9rem; }
.market-product-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .5rem; }
.market-product-filters .pl-filter-pill { min-height: 38px; padding: .48rem .8rem; text-decoration: none; border: 1px solid var(--pl-border, #e7dfeb); border-radius: 999px; }
.market-product-filters .pl-filter-pill.active { color: #fff; background: var(--pl-primary, #70417b); border-color: var(--pl-primary, #70417b); }
.market-seller-product-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1.25rem; align-items: stretch; }
.market-seller-product-card { min-width: 0; overflow: hidden; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--pl-border, #e7dfeb); border-radius: 20px; transition: border-color 160ms ease, transform 160ms ease, box-shadow 160ms ease; }
.market-seller-product-card:hover { border-color: #cbbbd2; transform: translateY(-2px); box-shadow: 0 12px 30px rgb(50 25 77 / .1); }
.market-seller-product-image { position: relative; display: grid; place-items: center; height: 220px; overflow: hidden; background: #fff9f5; border-bottom: 1px solid var(--pl-border, #e7dfeb); }
.market-seller-product-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.market-seller-product-image .market-status { position: absolute; top: .75rem; left: .75rem; box-shadow: 0 2px 8px rgb(50 25 77 / .12); }
.market-product-image-count { position: absolute; right: .75rem; bottom: .75rem; padding: .3rem .55rem; color: #fff; background: rgb(50 25 77 / .78); border-radius: 999px; font-size: .75rem; font-weight: 700; }
.market-seller-product-body { flex: 1; display: grid; align-content: start; gap: .8rem; padding: 1.1rem; }
.market-product-card-heading h2 { margin: 0; font-size: 1.2rem; line-height: 1.4; overflow-wrap: anywhere; }
.market-product-card-heading h2 a { color: var(--pl-deep, #32194d); text-decoration: none; }
.market-product-card-heading h2 a:hover, .market-product-card-heading h2 a:focus-visible { color: var(--pl-primary, #70417b); text-decoration: underline; }
.market-product-category { width: fit-content; margin: 0 0 .4rem; color: var(--pl-primary, #70417b); font-size: .78rem; font-weight: 750; }
.market-product-card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem .75rem; color: var(--pl-muted, #6f6177); font-size: .8rem; }
.market-variant-summary { display: grid; margin: 0; padding: 0; list-style: none; }
.market-variant-summary li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem .75rem; padding: .7rem 0; border-top: 1px solid var(--pl-border, #e7dfeb); }
.market-variant-summary li > strong { color: var(--pl-deep, #32194d); }
.market-variant-availability { grid-column: 1 / -1; width: fit-content; font-size: .78rem; font-weight: 650; }
.market-variant-availability--selling { color: var(--pl-success, #236344); }
.market-variant-availability--temporarilyunavailable { color: var(--pl-warning, #795300); }
.market-variant-availability--discontinued { color: var(--pl-danger, #a12d45); }
.market-product-card-actions { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; padding: 1rem 1.1rem; background: #fffdfb; border-top: 1px solid var(--pl-border, #e7dfeb); }
.market-product-card-actions .pl-btn { justify-content: center; }
.market-product-empty { max-width: 600px; margin: 2rem auto; padding: 2rem; text-align: center; }
.market-product-empty img { width: min(220px, 100%); }
.market-product-pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; margin-top: 1.5rem; }
@media (max-width: 767.98px) { .market-seller-products-header { align-items: stretch; flex-direction: column; padding: 1.25rem; } .market-seller-header-actions { justify-items: stretch; } .market-seller-header-actions .pl-btn { justify-content: center; } .market-seller-product-summary { grid-template-columns: 1fr; } .market-product-list-heading { align-items: stretch; flex-direction: column; } .market-product-filters { justify-content: flex-start; } }
@media (max-width: 389.98px) { .market-seller-workspace-nav { display: grid; grid-template-columns: 1fr 1fr; } .market-seller-workspace-nav a { justify-content: center; } .market-product-filters { display: grid; grid-template-columns: 1fr 1fr; } .market-product-filters .pl-filter-pill { text-align: center; } .market-product-card-actions { grid-template-columns: 1fr; } .market-product-card-actions .pl-btn { width: 100%; } .market-seller-product-image { height: 190px; } }
@media (prefers-reduced-motion: reduce) { .market-seller-product-card { transition: none; } .market-seller-product-card:hover { transform: none; } }

/* P1-015: public catalog and product details */
.market-catalog, .market-product-detail { max-width: 1200px; margin: 0 auto; display: grid; gap: 1.5rem; }
.market-catalog-header { display: flex; justify-content: space-between; gap: 1rem; align-items: end; }
.market-catalog-header h1, .market-detail-summary h1 { color: var(--pl-deep, #32194d); overflow-wrap: anywhere; }
.market-catalog-filters {
  display: grid;
  grid-template-columns: minmax(220px, 2fr) minmax(180px, 1fr) auto auto;
  gap: 1rem;
  align-items: end;
  padding: 1.25rem;
  background: var(--pl-glass-bg, #fff);
  backdrop-filter: var(--pl-glass-blur);
  -webkit-backdrop-filter: var(--pl-glass-blur);
  border: 1px solid var(--pl-glass-border, #e6ddea);
  border-radius: var(--pl-radius-card, 18px);
  box-shadow: var(--pl-glass-shadow);
}
.market-results-summary { color: var(--pl-text-muted, #6f6177); }
.market-catalog-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; }
.market-catalog-card {
  min-width: 0;
  padding: 0;
  overflow: hidden;
  background: var(--pl-glass-bg, #fff);
  backdrop-filter: var(--pl-glass-blur);
  -webkit-backdrop-filter: var(--pl-glass-blur);
  border: 1px solid var(--pl-glass-border, #e6ddea);
  border-radius: var(--pl-radius-card, 18px);
  box-shadow: var(--pl-glass-shadow);
  transition: transform 0.2s cubic-bezier(0.16, 1, 0.3, 1), box-shadow 0.2s ease, border-color 0.2s ease;
}
.market-catalog-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px -5px rgba(107, 70, 193, 0.15);
  border-color: rgba(107, 70, 193, 0.28);
}
.market-card-image-link { display: block; background: var(--pl-surface-soft, #fff9f5); }
.market-card-image { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.market-card-body { display: grid; gap: .65rem; padding: 1rem; }
.market-card-body h2 { margin: 0; font-size: 1.1rem; line-height: 1.35; overflow-wrap: anywhere; }
.market-card-body h2 a { color: var(--pl-deep, #32194d); text-decoration: none; }
.market-card-body h2 a:hover { text-decoration: underline; }
.market-card-meta { display: flex; justify-content: space-between; gap: .5rem; color: var(--pl-text-muted, #6f6177); font-size: .82rem; }
.market-card-meta span { overflow-wrap: anywhere; }
.market-price { margin: 0; color: var(--pl-primary, #70417b); font-size: 1.05rem; font-weight: 800; }
.market-availability { display: inline-flex; width: fit-content; padding: .3rem .65rem; border-radius: 999px; font-size: .82rem; font-weight: 700; }
.market-availability--selling { color: #12613d; background: #dff6e9; }
.market-availability--temporarilyunavailable { color: #76520c; background: #fff0c7; }
.market-availability--discontinued { color: #6f6177; background: #eee8f1; }
.market-empty { padding: 3rem 1.25rem; text-align: center; }
.market-empty > span { font-size: 2.5rem; }
.market-pagination { display: flex; justify-content: center; align-items: center; gap: 1rem; }
.market-breadcrumb { display: flex; gap: .5rem; flex-wrap: wrap; color: var(--pl-text-muted, #6f6177); }
.market-detail-layout { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr); gap: 2rem; }
.market-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; align-content: start; }
.market-gallery img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border: 1px solid var(--pl-border, #e7dfeb); border-radius: var(--pl-radius-card, 20px); background: var(--pl-surface-soft, #fff9f5); }
.market-gallery img:first-child { grid-column: 1 / -1; }
.market-detail-summary { display: grid; gap: 1rem; align-content: start; }
.market-shop { margin: 0; color: var(--pl-text-muted, #6f6177); }
.market-variant-selector { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; padding: 0; border: 0; }
.market-variant-selector legend { grid-column: 1 / -1; font-size: .95rem; font-weight: 800; }
.market-variant-option { display: grid; gap: .2rem; min-height: 44px; padding: .75rem; color: var(--pl-text, #4b3a57); text-decoration: none; border: 1px solid var(--pl-control-border, #8a7792); border-radius: var(--pl-radius-control, 12px); }
.market-variant-option:hover, .market-variant-option:focus-visible, .market-variant-option.is-selected { border-color: var(--pl-primary, #70417b); box-shadow: 0 0 0 3px rgba(112,65,123,.16); }
.market-variant-option small { color: var(--pl-text-muted, #6f6177); }
.market-money-summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem; }
.market-money-summary strong { color: var(--pl-primary, #70417b); font-size: 1.35rem; }
.market-cart-unavailable { display: grid; gap: .5rem; }
.market-cart-unavailable p { margin: 0; color: var(--pl-text-muted, #6f6177); font-size: .9rem; }
.market-delivery-info { display: grid; gap: .75rem; margin: 0; }
.market-delivery-info div { padding: .85rem; background: var(--pl-surface-soft, #fff9f5); border-radius: var(--pl-radius-control, 12px); }
.market-delivery-info dt { font-weight: 800; }
.market-delivery-info dd { margin: .25rem 0 0; overflow-wrap: anywhere; }
.market-description { padding: 1.25rem; }
.market-description-text { white-space: pre-line; overflow-wrap: anywhere; }
@media (max-width: 1023.98px) { .market-catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
  .market-catalog-filters { grid-template-columns: 1fr 1fr; }
  .market-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .market-detail-layout { grid-template-columns: 1fr; }
}
@media (max-width: 389.98px) {
  .market-catalog-filters, .market-catalog-grid, .market-variant-selector { grid-template-columns: 1fr; }
  .market-gallery { grid-template-columns: 1fr; }
  .market-gallery img:first-child { grid-column: auto; }
  .market-pagination { flex-wrap: wrap; }
}

/* P1-019: buyer order history and immutable order detail */
.market-buyer-orders { max-width: 1200px; margin: 0 auto; display: grid; gap: 1.5rem; }
.market-buyer-order-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.market-buyer-order-card { display: grid; gap: .75rem; min-width: 0; }
.market-order-card-heading, .market-order-card-footer { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.market-order-card-heading h2 { margin: .2rem 0 0; font-size: 1.15rem; }
.market-order-card-heading h2 a { color: var(--pl-deep, #32194d); overflow-wrap: anywhere; }
.market-order-card-footer { align-items: baseline; }
.market-order-card-footer strong { color: var(--pl-primary, #70417b); font-size: 1.15rem; }
.market-order-card-footer time, .market-order-detail-heading time, .market-order-timeline time { color: var(--pl-muted, #6f6177); font-size: .875rem; }
.market-buyer-order-detail { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, .7fr); gap: 1.5rem; align-items: start; }
.market-order-summary { display: grid; gap: 1.5rem; min-width: 0; }
.market-order-side { display: grid; gap: 1rem; min-width: 0; }
.market-order-timeline h2, .market-cancel-panel h2, .market-support-guidance h2 { font-size: 1.15rem; }
.market-order-timeline ol { display: grid; gap: 0; margin: 1rem 0 0; padding: 0; list-style: none; }
.market-order-timeline li { position: relative; display: grid; grid-template-columns: 1rem minmax(0, 1fr); gap: .75rem; padding-bottom: 1.25rem; }
.market-order-timeline li::before { content: ""; position: absolute; left: .4375rem; top: .85rem; bottom: -.1rem; width: 2px; background: var(--pl-border, #e7dfeb); }
.market-order-timeline li:last-child::before { display: none; }
.market-order-timeline li > span { z-index: 1; width: 1rem; height: 1rem; margin-top: .2rem; background: var(--pl-primary, #70417b); border: 3px solid #f4eaf6; border-radius: 50%; }
.market-order-timeline li > div { display: grid; gap: .2rem; min-width: 0; }
.market-order-timeline p { margin: .25rem 0 0; overflow-wrap: anywhere; }
.market-cancel-panel summary { width: 100%; list-style: none; cursor: pointer; }
.market-cancel-panel summary::-webkit-details-marker { display: none; }
.market-cancel-panel form { display: grid; gap: .75rem; margin-top: 1rem; }
.market-cancel-panel textarea { width: 100%; min-height: 6rem; padding: .75rem; border: 1px solid var(--pl-control-border, #8a7792); border-radius: var(--pl-radius-control, 12px); }
.market-cancel-panel textarea:focus-visible { outline: 3px solid rgb(112 65 123 / .2); border-color: var(--pl-focus, #70417b); }
.market-support-guidance p:last-child { margin-bottom: 0; overflow-wrap: anywhere; }
.market-order-status--cancelled, .market-order-status--rejected, .market-order-status--deliveryfailed { color: var(--pl-danger, #a12d45); background: var(--pl-danger-bg, #fdeef1); }
.market-order-status--confirmed, .market-order-status--preparing, .market-order-status--readyforpickup, .market-order-status--intransit { color: var(--pl-primary, #70417b); background: #f5ebf7; }
.market-order-status--delivered { color: var(--pl-success, #236344); background: var(--pl-success-bg, #edf7f0); }
@media (max-width: 1023.98px) { .market-buyer-order-detail { grid-template-columns: minmax(0, 1.25fr) minmax(260px, .75fr); } }
@media (max-width: 767.98px) {
  .market-buyer-order-list, .market-buyer-order-detail { grid-template-columns: 1fr; }
  .market-order-side { grid-row: auto; }
}
@media (max-width: 389.98px) {
  .market-order-card-heading, .market-order-card-footer { align-items: flex-start; flex-direction: column; }
  .market-buyer-orders .market-order-filters { display: grid; grid-template-columns: 1fr; }
  .market-buyer-orders .market-order-filters .pl-btn, .market-cancel-panel .pl-btn { width: 100%; justify-content: center; }
}

/* P1-020: preparation and courier assignment */
.market-assign-delivery { max-width: 1000px; margin: 0 auto; display: grid; gap: 1.5rem; }
.market-assign-layout { display: grid; grid-template-columns: minmax(0, .8fr) minmax(320px, 1.2fr); gap: 1.5rem; align-items: start; }
.market-assignment-current, .market-assignment-form { display: grid; gap: 1rem; min-width: 0; }
.market-assignment-form form { display: grid; gap: 1rem; }
.market-assignment-form select { width: 100%; min-height: 44px; padding: .65rem .75rem; color: var(--pl-text, #4b3a57); background: #fff; border: 1px solid var(--pl-control-border, #8a7792); border-radius: var(--pl-radius-control, 12px); }
.market-assignment-form select:focus-visible { outline: 3px solid rgb(112 65 123 / .2); border-color: var(--pl-focus, #70417b); }
.market-order-status--readyforpickup { color: var(--pl-primary, #70417b); background: #f5ebf7; }
@media (max-width: 767.98px) { .market-assign-layout { grid-template-columns: 1fr; } }
@media (max-width: 389.98px) {
  .market-assign-delivery .market-page-header { align-items: stretch; flex-direction: column; }
  .market-assignment-form .pl-btn { width: 100%; justify-content: center; }
}

/* ==========================================================================
   Market Quick Guide Component (.pl-quick-guide)
   ========================================================================== */
.pl-quick-guide {
    background: var(--pl-glass-bg, #ffffff);
    backdrop-filter: var(--pl-glass-blur);
    -webkit-backdrop-filter: var(--pl-glass-blur);
    border: 1px solid var(--pl-glass-border, #e7dfeb);
    border-radius: var(--pl-radius-md, 12px);
    overflow: hidden;
    margin-bottom: 1.5rem;
    box-shadow: var(--pl-glass-shadow);
    transition: box-shadow 0.2s ease;
}

.pl-quick-guide:hover {
    box-shadow: 0 4px 16px rgba(112, 65, 123, 0.12);
}

.pl-quick-guide summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    background: rgba(251, 247, 252, 0.7);
    color: var(--pl-deep, #32194d);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
    list-style: none;
    min-height: 44px;
}

.pl-quick-guide summary::-webkit-details-marker {
    display: none;
}

.pl-quick-guide summary::after {
    content: "▾";
    font-size: 1.125rem;
    color: var(--pl-primary, #70417b);
    transition: transform 0.2s ease;
}

.pl-quick-guide[open] summary::after {
    transform: rotate(-180deg);
}

.pl-quick-guide-title {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pl-quick-guide-badge {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--pl-primary, #70417b);
    background: #f2e6f4;
    padding: 2px 8px;
    border-radius: 9999px;
}

.pl-quick-guide-content {
    padding: 16px;
    background: transparent;
}

.pl-quick-guide-steps {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 16px;
    margin-bottom: 12px;
}

.pl-quick-step {
    display: flex;
    gap: 10px;
    padding: 12px;
    background: rgba(252, 250, 247, 0.7);
    border: 1px solid var(--pl-glass-border, #e7dfeb);
    border-radius: var(--pl-radius-sm, 8px);
}

.pl-quick-step-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background: var(--pl-primary, #70417b);
    color: #ffffff;
    font-size: 0.75rem;
    font-weight: 700;
    border-radius: 50%;
    flex-shrink: 0;
}

.pl-quick-step strong {
    display: block;
    font-size: 0.875rem;
    color: var(--pl-deep, #32194d);
    margin-bottom: 4px;
}

.pl-quick-step p {
    font-size: 0.8125rem;
    color: var(--pl-muted, #6f6177);
    margin: 0;
    line-height: 1.4;
}

.pl-quick-guide-footer {
    display: flex;
    justify-content: flex-end;
    padding-top: 8px;
    border-top: 1px dashed var(--pl-border, #e7dfeb);
}

.pl-quick-guide-link {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--pl-primary, #70417b);
    text-decoration: none;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
}

.pl-quick-guide-link:hover {
    text-decoration: underline;
}

.market-cart-unavailable .market-quantity-stepper,
.market-cart-page .market-quantity-stepper {
  display: inline-grid;
  grid-template-columns: 44px 5rem 44px;
  align-items: center;
  gap: .75rem;
  width: max-content;
  max-width: 100%;
  min-width: 0;
}
.market-quantity-stepper > .pl-btn { width: 44px; min-width: 44px; height: 44px; margin: 0; padding: .5rem; }
.market-quantity-stepper > .form-control { min-width: 0; width: 100%; height: 44px; margin: 0; text-align: center; }
.market-cart-unavailable form[data-product-quantity] { grid-template-columns: minmax(0, max-content) minmax(0, 1fr); }
@media (max-width: 575.98px) {
  .market-cart-unavailable form[data-product-quantity] { grid-template-columns: 1fr; }
  .market-cart-line-actions { grid-template-columns: 1fr; }
}

/* Pickup contact: long store names and addresses must reflow without a page-wide scroll. */
.market-store-settings, .market-delivery-orders, .market-delivery-update { min-width: 0; overflow-wrap: anywhere; }
.market-store-settings .market-page-header > div, .market-delivery-update .market-page-header > div { min-width: 0; max-width: 100%; }
.market-store-settings .validation-summary-valid { display: none; }
