/* The cart's layout follows available space, including a resized desktop window. */
.lab-page .lab-cart-top,
.lab-page .lab-cart-shipping-rail,
.lab-page .lab-cart-order-actions,
.lab-page .cart-payment-options,
.lab-page .cart-wall { min-width: 0; }
.lab-page .lab-cart-order-actions { container-type: inline-size; }
.lab-page .cart-contact-preference { flex-wrap: wrap; }
.lab-page .cart-contact-preference .cart-contact-caption,
.lab-page .cart-contact-preference label { font-size: 16px; }
.lab-page .cart-order-extras { max-width: none; }
html .lab-page .cart-order-extras > .cart-contact-request,
html .lab-page .cart-order-note-toggle { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
.lab-page .cart-card-checkout { min-width: 0; flex-wrap: wrap; text-align: center; }
.lab-page .cart-checkout-icons { min-width: 0; max-width: 100%; margin-left: 0; }
.lab-page .cart-account-buttons a { min-width: 0; white-space: normal; text-align: center; }
.lab-page .lab-cart-shipping-controls { min-width: 0; }
.lab-page .lab-cart-shipping > summary { min-width: 0; flex-wrap: wrap; }
.lab-page .lab-cart-shipping > summary > span:first-child { min-width: 0; }
.lab-page .lab-cart-top .lab-cart-delivery { flex-wrap: wrap; }
.lab-page .lab-cart-top .lab-cart-delivery strong { white-space: normal; }

/* Three columns need room for the full checkout controls. */
@media (min-width: 851px) and (max-width: 1599px) {
  html .lab-page .lab-cart-top.has-cart-wall {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 24px;
  }
  html .lab-page .has-cart-wall .lab-cart-shipping-rail { grid-column: 1; grid-row: 1; }
  html .lab-page .has-cart-wall .cart-wall { grid-column: 1; grid-row: 2; }
  html .lab-page .lab-cart-top.has-cart-wall .lab-cart-order-actions {
    grid-column: 2; grid-row: 1 / 3; max-width: none; align-self: start;
  }
  html .lab-page .has-cart-wall [data-contact-form] { grid-column: 1 / -1; grid-row: 3; }
  html .lab-page .has-cart-wall [data-cart-status] { grid-column: 1 / -1; grid-row: 4; }
}

@container (max-width: 570px) {
  .cart-contact-preference .cart-contact-caption { flex-basis: 100%; }
  .cart-contact-preference { gap: 7px 14px; }
  html .lab-page .cart-order-extras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cart-order-extras > .cart-contact-request,
  .cart-order-note-toggle { line-height: 1.25; }
}
@container (max-width: 500px) {
  html .lab-page .cart-order-extras { grid-template-columns: minmax(0, 1fr); }
  .cart-card-checkout { flex-direction: column; gap: 5px; }
  .cart-account-buttons a { flex: 1 1 100%; }
}

@media (max-width: 1250px) {
  html .lab-page .lab-cart-pane .xf3v2__cart-line {
    grid-template-columns: minmax(0, 1fr);
  }
  html .lab-page .lab-cart-spec-column { border-top: 1px solid var(--gui-line, var(--line)); padding-top: 14px; }
}

@media (max-width: 900px) {
  .lab-page .lab-order-tabs { flex-wrap: wrap; }
  .lab-page .lab-order-tabs-main { flex: 1 1 100%; width: 100%; }
  .lab-page .lab-tab-actions { width: 100%; flex-wrap: wrap; justify-content: flex-start; }
}

/* Tablet: keep the viewer and configurator readable, and let the cart use full rows. */
@media (max-width: 850px) {
  html .lab-page .lab-cart-top.has-cart-wall { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  html .lab-page .has-cart-wall .lab-cart-shipping-rail { grid-column: 1; grid-row: 1; }
  html .lab-page .has-cart-wall .cart-wall { grid-column: 1; grid-row: 2; }
  html .lab-page .lab-cart-top.has-cart-wall .lab-cart-order-actions {
    grid-column: 1; grid-row: 3; width: 100%; max-width: none;
  }
  html .lab-page .has-cart-wall [data-contact-form] { grid-column: 1; grid-row: 4; }
  html .lab-page .has-cart-wall [data-cart-status] { grid-column: 1; grid-row: 5; }
  .lab-page .lab-cart-pane .xf3v2__cart-line { grid-template-columns: minmax(0, 1fr); }
  .lab-page .lab-cart-top .lab-cart-shipping-rail { max-width: none; }
  .lab-page .lab-cart-pane { padding: clamp(12px, 2.5vw, 20px); }
  .lab-page .lab-checkout-pane { width: 100%; box-sizing: border-box; }
  .lab-page .lab-checkout-pane .shelf-checkout { padding: clamp(16px, 3vw, 26px); }
  .lab-page .checkout-invoice-contact {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
  }
  .lab-page .checkout-invoice-contact > .checkout-invoice-method { grid-column: 1 / -1; }
  .lab-page .checkout-invoice-contact > .checkout-invoice-note-toggle { grid-column: 2; grid-row: 1; }
  .lab-page .checkout-invoice-contact > .checkout-invoice-contact-choice { white-space: normal; }
  .lab-page .lab-shipping-dialog__sort { flex-wrap: wrap; white-space: normal; }
}

/* Phone: one reading column, no clipped buttons or form controls. */
@media (max-width: 600px) {
  .lab-page { padding-inline: 10px; }
  .lab-page .lab-header { min-width: 0; }
  .lab-page .lab-preferences { width: 100%; min-width: 0; margin-left: 0; justify-content: flex-start; }
  .lab-page .lab-preferences label { min-width: 0; }
  .lab-page .lab-order-tabs { align-items: stretch; }
  .lab-page .lab-order-tabs-main,
  .lab-page .lab-tab-actions { min-width: 0; }
  .lab-page .lab-tab-actions { flex-wrap: wrap; justify-content: flex-start; }
  .lab-page .lab-cart-pane { margin-top: 8px; padding: 12px; }
  .lab-page .lab-cart-top .lab-cart-shipping-rail { min-width: 0; }
  .lab-page .lab-cart-shipping-controls { grid-template-columns: minmax(0, 1fr); }
  .lab-page .lab-cart-change-method { justify-self: stretch; white-space: normal; }
  .lab-page .lab-cart-top .xf3v2__cart-totals { min-width: 0; }
  .lab-page .cart-shelf-breakdown-line { flex-wrap: wrap; }
  .lab-page .cart-wall-scene { max-height: 310px; }
  .lab-page .cart-wall-shelf { max-width: 100%; }
  .lab-page .cart-wall-heading-actions { min-width: 0; }
  .lab-page .cart-wall-heading-actions > * { min-width: 0; }
  .lab-page .checkout-invoice-contact { display: grid; grid-template-columns: minmax(0, 1fr); }
  .lab-page .checkout-invoice-contact > .checkout-invoice-note-toggle,
  .lab-page .checkout-invoice-contact > .checkout-invoice-method {
    grid-column: 1; grid-row: auto; min-width: 0; white-space: normal;
  }
  .lab-page .checkout-invoice-contact > .checkout-invoice-method { flex-wrap: wrap; }
  .lab-page .checkout-invoice-method select { max-width: 100%; min-width: 0; }
  .lab-page .lab-checkout-pane form { grid-template-columns: minmax(0, 1fr); }
  .lab-page .lab-checkout-pane .wide { grid-column: 1; }
  .lab-page .checkout-method-options,
  .lab-page .checkout-express-buttons { grid-template-columns: minmax(0, 1fr); }
  .lab-page .placed-order-grid { grid-template-columns: minmax(0, 1fr); }
  .lab-page .placed-order-grid > section,
  .lab-page .placed-order-requests,
  .lab-page .placed-order-change-form { min-width: 0; padding: 15px; }
  .lab-page .placed-order-actions > * { flex: 1 1 100%; }
  .lab-page .xf3-order-timing select,
  .lab-page .xf3-order-timing input { width: 100%; max-width: none; min-width: 0; }
  .lab-page .xf3-order-timing label { width: 100%; flex-wrap: wrap; }
}

@media (max-width: 400px) {
  .lab-page .lab-header { grid-template-columns: minmax(0, 1fr); }
  .lab-page .lab-header .lab-realm-store-brand {
    width: min(100%, 360px) !important;
    max-width: 100%;
    min-width: 0;
  }
  .lab-page .lab-header .lab-preferences,
  .lab-page .lab-header .lab-main-nav { width: 100%; max-width: 100%; min-width: 0; }
  .lab-page .xf3-navigation-refined > .menu { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-page .lab-preferences { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lab-page .lab-preferences > * { min-width: 0; }
  .lab-page .lab-cart-pane .xf3v2__cart-line { padding: 14px; }
  .lab-page .lab-cart-specs > div { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  .lab-page .lab-cart-specs .lab-cart-spec-detail { padding-left: 0; }
  .lab-page .lab-cart-line-header { flex-wrap: wrap; }
  .lab-page .lab-cart-line-actions { flex-wrap: wrap; }
}

/* In a stacked workspace, customize immediately after the shelf preview. */
@media(max-width:900px){
 :root body .lab-page[data-store-finish] .lab-workspace{grid-template-columns:minmax(0,1fr)!important;gap:18px!important}
 :root body .lab-page[data-store-finish] .lab-preview-column{position:static!important;top:auto!important;width:100%;min-width:0}
 :root body .lab-page[data-store-finish] .lab-workspace>.xf3-preview-benefits{margin-top:0!important}
}
/* Viewport options wrap inside their own available width. */
@container shelfviewer (max-width:740px){
 :root body .lab-page[data-store-finish] .lab-viewer-shell .xf3-wall-options{min-width:0!important;min-inline-size:0!important;flex-wrap:wrap!important;gap:6px!important;box-sizing:border-box}
 :root body .lab-page[data-store-finish] .lab-viewer-shell .xf3-wall-options .xf3-viewer-gesture-hint{flex:1 1 100%;justify-content:flex-end;font-size:12px!important;white-space:normal}
}
@media(max-width:900px){
 :root body .lab-page[data-store-finish] .lab-viewer-shell{padding-bottom:calc(var(--xf3-wall-controls-height,100px) + 68px)!important}
 :root body .lab-page[data-store-finish] .lab-viewer-shell .xf3-wall-options label{min-height:44px!important;padding:6px 8px!important;font-size:12px!important;box-sizing:border-box}
 :root body .lab-page[data-store-finish] .lab-viewer-shell .xf3-wall-options label.xf3-wall-swatch{width:36px!important;min-width:36px!important;height:44px!important;min-height:44px!important;flex-basis:36px!important;padding:0!important}
}
/* On phones the viewer footer uses normal flow, so options never cover the model or each other. */
@media(max-width:600px){
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell{
  display:flex!important;flex-direction:column;gap:12px;padding:12px!important;min-height:0!important
 }
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell .lab-viewer-toolbar{
  position:static!important;inset:auto!important;max-width:none!important;width:100%!important;order:0;box-sizing:border-box;gap:6px!important
 }
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell .lab-view-modes{flex-direction:row!important;gap:6px!important}
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell .lab-viewer{
  order:1;width:100%!important;min-height:0!important;height:340px!important;flex:none
 }
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell .lab-preview-material.lab-preview-material.lab-preview-material{
  order:2;position:static!important;inset:auto!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;
  width:100%!important;max-width:none!important;margin:0!important;padding:0!important;gap:4px!important;text-align:left!important
 }
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell .lab-preview-material.lab-preview-material.lab-preview-material,
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell .lab-preview-material.lab-preview-material.lab-preview-material *{
  color:#1b4255!important;text-shadow:none!important;-webkit-text-stroke:0!important
 }
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell .xf3-viewer-save-anchor{
  order:3;position:relative!important;inset:auto!important;max-width:100%;align-self:flex-end
 }
 :root.xform3-themed body .lab-page[data-store-finish] .lab-viewer-shell .xf3-wall-options{
  order:4;position:static!important;inset:auto!important;width:100%;min-width:0;gap:6px!important;padding:0!important
 }
}
