.product-order { display: grid; gap: var(--space-3); }
.product-order__fixed { display: grid; gap: var(--space-2); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface-soft); }
.product-order__fixed-row, .order-summary-row { display: flex; justify-content: space-between; gap: var(--space-4); align-items: start; }
.product-order__fixed-row span, .order-summary-row span { color: var(--color-text-muted); font-size: var(--text-small); }
.order-artwork-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-2); }
.order-choice { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; padding: var(--space-2) var(--space-3); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); cursor: pointer; font-size: var(--text-small); }
.order-choice:has(input:checked) { border-width: 2px; border-color: var(--color-secondary); box-shadow: 0 0 0 2px var(--color-secondary-soft); font-weight: var(--font-weight-semibold); }
.order-artwork-panel { display: grid; gap: var(--space-2); margin-top: var(--space-2); }
.order-file-dropzone { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); padding: var(--space-3); border: 1px dashed var(--color-border-strong); border-radius: var(--radius-md); background: var(--color-surface-soft); }
.order-file-dropzone p { margin: 0; }
.order-file-dropzone.is-dragover { border-width: 2px; box-shadow: 0 0 0 2px var(--color-secondary-soft); }
.order-file-dropzone.has-file { border-style: solid; }
.order-file-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.order-file-actions .btn { min-height: 44px; }
.order-retry { margin-top: var(--space-3); min-height: 44px; }
.product-order__summary { display: grid; gap: var(--space-2); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.product-order__summary h3 { margin: 0; font-size: var(--text-h4); }
.product-order__summary [data-order-summary-config] { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
.product-order__summary .order-summary-row { gap: var(--space-1); font-size: var(--text-small); }
.product-order__summary .product-price-box { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.product-order__summary .product-price-box__primary { grid-column: 1; grid-row: 1; border-bottom: 0; border-right: 1px solid var(--color-border); }
.product-order__summary .product-price-row--total { display: grid; grid-column: 2; grid-row: 1; align-content: center; padding: var(--space-3); border-bottom: 0; }
.product-order__fees { border-bottom: 1px solid var(--color-border); }
.product-order__summary .product-order__fees { grid-column: 1 / -1; grid-row: 2; }
.product-order__fees summary { min-height: 44px; padding: var(--space-2) var(--space-3); color: var(--color-secondary); font-size: var(--text-small); font-weight: var(--font-weight-semibold); cursor: pointer; }
.product-configurator__actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
.order-feedback { margin: 0; padding: var(--space-3); border-radius: var(--radius-md); background: var(--color-success-soft); color: var(--color-success); }
.order-mobile-bar { display: none; }
@media (min-width: 1200px) { .product-order__summary { position: static; } }
@media (max-width: 767px) {
  .product-order { padding-bottom: 146px; }
  .order-artwork-options { grid-template-columns: 1fr; }
  .product-configurator__actions { grid-template-columns: 1fr; }
  .product-order__summary .product-price-box { grid-template-columns: 1fr 1fr; }
  .order-mobile-bar { position: fixed; z-index: 39; left: 0; right: 0; bottom: calc(64px + env(safe-area-inset-bottom, 0px)); display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--space-2); padding: var(--space-2) var(--space-3); border-top: 1px solid var(--color-border); background: var(--color-surface); box-shadow: var(--shadow-lg); }
  .order-mobile-bar__summary { min-height: 44px; border: 0; background: transparent; text-align: left; color: var(--color-primary); }
  .order-mobile-bar .btn { min-height: 44px; }
  .product-order__summary { display: grid; }
  .product-order__summary.is-mobile-open { display: grid; position: fixed; z-index: 39; left: var(--space-3); right: var(--space-3); bottom: calc(129px + env(safe-area-inset-bottom, 0px)); max-height: min(55vh, 520px); overflow: auto; }
}
.cart-page-shell { display: grid; gap: var(--space-8); }
.cart-content { display: grid; grid-template-columns: minmax(0,1fr) minmax(280px,.42fr); gap: var(--space-8); align-items: start; }
.cart-list { display: grid; gap: var(--space-4); }
.cart-item { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: var(--space-5); padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.cart-item__media img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--radius-md); }
.cart-item__body { min-width: 0; display: grid; gap: var(--space-3); }
.cart-item__body h2 { margin: 0; font-size: var(--text-h4); }
.cart-item__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-2); }
.cart-summary { position: sticky; top: 110px; }
.cart-totals { display: grid; gap: var(--space-3); padding: var(--space-5); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); box-shadow: var(--shadow-sm); }
.cart-totals__grand { padding-top: var(--space-3); border-top: 1px solid var(--color-border); }
.empty-state { padding: var(--space-10); text-align: center; border: 1px dashed var(--color-border-strong); border-radius: var(--radius-lg); }
.transaction-page .page-hero { background: linear-gradient(115deg, #eaf8ff, #fff4e7 60%, #f1ecff); border-bottom: 1px solid #c8dce9; }
.transaction-page .page-hero .site-container { padding-block: clamp(48px, 5vw, 76px); }
.transaction-page .empty-state { max-width: 820px; margin-inline: auto; border: 1px solid #bfd8e6; background: linear-gradient(140deg, #f2faff, #fffaf0); }
.transaction-page .empty-state h1, .transaction-page .empty-state h2 { color: #103b72; }
.empty-state h2 { font-size: var(--text-h1); line-height: 1.1; }
html[lang="vi"] .empty-state h2 { line-height: 1.1; }
.cart-count { display: inline-grid; min-width: 1.5em; height: 1.5em; place-items: center; padding-inline: .3em; border-radius: 999px; background: var(--color-secondary); color: var(--color-primary); font-size: .75em; font-weight: 800; }
@media (max-width: 1023px) { .cart-content { grid-template-columns: 1fr; } .cart-summary { position: static; } }
@media (max-width: 600px) { .cart-item { grid-template-columns: 1fr; } .cart-item__media { max-width: 180px; } }

.order-checkout-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,.42fr);gap:var(--space-6);align-items:start}.order-review-panel{position:sticky;top:calc(var(--header-offset, 100px) + var(--space-4));padding:var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.order-review-item{padding-block:var(--space-4);border-bottom:1px solid var(--color-border)}.order-review-item:first-child{padding-top:0}.order-review-details{padding-block:var(--space-4)}.order-review-details h3{margin-top:var(--space-4)}.order-no-payment{margin:var(--space-5) 0;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-soft)}
@media(max-width:1023px){.order-checkout-shell{grid-template-columns:1fr}.order-review-panel{position:static}}
.order-confirmation-card{max-width:760px;margin-inline:auto;padding:clamp(1.5rem,4vw,3rem);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface)}.order-confirmation-number{font:700 clamp(1.25rem,3vw,2rem)/1.2 var(--font-heading);letter-spacing:.03em}.order-next-steps{display:grid;gap:var(--space-3);margin-block:var(--space-5);padding-left:1.4rem}
