/* The owner of mobile purchase geometry. Keep purchase state in Woo/QO.
 * Acceptance: 320px reflow, short viewport/keyboard, 44px primary targets,
 * one active modal, content scroll independent of its checkout action.
 */
:root {
  --sst-purchase-dock-h: 0px;
  --sst-purchase-vh: 100dvh;
  --sst-purchase-vtop: 0px;
}
.sst-purchase-review-toggle,.sst-purchase-review-footer { display:none; }
@media (max-width:1024px) {
  html { scroll-padding-bottom:calc(var(--sst-purchase-dock-h) + 16px); }
  body:not(.sst-app) .sst-footer__bottom { padding-bottom:calc(var(--sst-purchase-dock-h) + 16px); }
  body:not(.sst-app) :is(.sst-qo__btn-checkout,.sst-purchase-review-checkout,.sst-purchase-review-toggle,.sst-cart-drawer__close,.sst-qo__mobile-cart-close,.sst-cart-drawer__qty-step,.sst-cart-drawer__qty-input,.sst-cart-mobile-checkout__button,.sst-sticky-cart__btn) {
    box-sizing:border-box; min-height:44px!important; height:auto!important; min-width:44px!important; touch-action:manipulation;
  }
  body:not(.sst-app) :is(.woocommerce,.sst-qo__side,.sst-cart-drawer) :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size:16px!important; }
  body:not(.sst-app) :is(.sst-purchase-review-toggle,.sst-purchase-review-checkout) { font-weight:600; font-size:14px; line-height:1.35; font-family:inherit; padding:10px 12px; border:1px solid #9e2c5f; border-radius:6px; cursor:pointer; }
  body:not(.sst-app) .sst-purchase-review-toggle { display:block; background:#fff; color:#84234e; text-align:left; }
  body:not(.sst-app) .sst-purchase-review-checkout { display:block; width:100%; background:#9e2c5f; color:#fff; min-height:48px!important; font-size:15px; }
  body:not(.sst-app) .sst-purchase-review-checkout:disabled { opacity:.5; cursor:not-allowed; }
  body:not(.sst-app) :is(.sst-purchase-review-toggle,.sst-purchase-review-checkout):focus-visible { outline:3px solid #1c5a92; outline-offset:2px; }

  /* Collapsed QO: two explicit rows; optional detail never creates columns. */
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-qo__cart {
    display:grid!important; grid-template-columns:minmax(0,1fr) minmax(112px,1fr)!important;
    grid-template-areas:"review total" "act act" "msg msg"!important;
    gap:6px 10px!important; padding:8px 12px calc(8px + env(safe-area-inset-bottom))!important;
    min-height:0!important; max-height:40dvh!important; overflow-y:auto!important;
  }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-qo__cart > h3 { display:none!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-purchase-review-toggle { grid-area:review; }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-qo__cart-totals { grid-area:total!important; display:block!important; cursor:default; }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-qo__total { justify-content:flex-end!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-qo__total > span:last-child { font-size:18px!important; line-height:1.35!important; white-space:normal!important; overflow-wrap:anywhere; text-align:right; }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-qo__cart-actions { display:contents!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-qo__btn-checkout { grid-area:act!important; min-height:44px!important; font-size:14px!important; line-height:1.3!important; letter-spacing:0!important; white-space:normal!important; padding:10px 12px!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) :is(.sst-qo__bo-banner,.sst-qo__promotion-policy-note,.sst-qo__ship-summary,.sst-qo-estimate,.sst-qo__ship-detail) { display:none!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side:not(.sst-qo__side--expanded) .sst-qo__cart-message:not([hidden]) { grid-area:msg!important; position:static!important; margin:0!important; padding:4px!important; max-width:none!important; max-height:64px; overflow:auto; font-size:12px!important; }

  /* Review panel: explicit header, one scroll region, fixed in-panel footer. */
  html body:not(.sst-app) .sst-qo .sst-qo__side.sst-qo__side--expanded {
    top:var(--sst-purchase-vtop)!important; bottom:auto!important; height:var(--sst-purchase-vh)!important;
    align-items:stretch!important; z-index:2147483001!important;
  }
  html body:not(.sst-app) .sst-qo .sst-qo__side.sst-qo__side--expanded .sst-qo__cart {
    display:grid!important; grid-template-columns:minmax(0,1fr) 44px!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    grid-template-areas:"heading close" "content content" "footer footer"!important;
    flex-wrap:nowrap!important; width:100%!important; height:100%!important;
    max-height:100%!important; min-height:0!important; gap:0!important;
    align-items:stretch!important; align-content:stretch!important;
    padding:0!important; overflow:hidden!important; border-radius:0!important;
    box-sizing:border-box!important;
  }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__cart > h3 { grid-area:heading!important; margin:0!important; padding:14px 12px!important; min-width:0!important; font-size:16px!important; white-space:normal!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side.sst-qo__side--expanded .sst-qo__cart [data-qo-mobile-cart-close] { grid-area:close!important; position:static!important; margin:0!important; align-self:start!important; width:44px!important; height:44px!important; min-width:44px!important; min-height:44px!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-purchase-review-toggle { display:none!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-purchase-review-scroll {
    grid-area:content!important; min-height:0!important; min-width:0!important; height:auto!important; align-self:stretch!important; overflow:auto!important; overscroll-behavior:contain;
    padding:8px 12px 16px; border-top:1px solid #e5e5e5;
  }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-purchase-review-scroll > * { flex:0 0 auto!important; min-width:0!important; max-width:100%!important; box-sizing:border-box!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded :is(.sst-qo__cart-list,.sst-qo__cart-totals,.sst-qo__cart-actions) { position:static!important; display:block!important; width:100%!important; max-height:none!important; overflow:visible!important; margin:0 0 12px!important; padding:0!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__cart-actions > * { position:static!important; width:100%!important; max-width:100%!important; box-sizing:border-box!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__cart-actions .sst-qo__btn-checkout { display:none!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-purchase-review-footer { grid-area:footer; display:block; padding:8px 12px calc(8px + env(safe-area-inset-bottom)); border-top:1px solid #ddd; background:#fff; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded :is(.sst-qo__promotion-policy-note,.sst-qo__cart-message,.sst-qo__ship-summary) { position:static!important; margin:10px 0!important; padding:8px!important; font-size:12px!important; line-height:1.45!important; box-sizing:border-box!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__cart-row { flex-wrap:wrap; gap:4px 8px; }
  html body:not(.sst-app) .sst-qo .sst-qo__side.sst-qo__side--expanded .sst-qo-estimate__currency-label { display:flex!important; flex-flow:column nowrap!important; align-items:stretch!important; min-width:0!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side.sst-qo__side--expanded .sst-qo-estimate__select { flex:none!important; width:100%!important; max-width:100%!important; min-width:0!important; min-height:44px!important; box-sizing:border-box!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo-estimate__row { flex-wrap:wrap; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo-estimate__row > strong { min-width:0; white-space:normal; overflow-wrap:anywhere; flex-shrink:1; }
  html body:not(.sst-app) .sst-qo .sst-qo__side.sst-qo__side--expanded .sst-qo__cart [hidden] { display:none!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__ci { width:100%!important; min-width:0!important; grid-template-columns:44px minmax(0,1fr) 44px!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded :is(.sst-qo__ci button,.sst-qo__ci input) { min-width:44px!important; min-height:44px!important; height:44px!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side.sst-qo__side--expanded .sst-qo__ci-title { display:block!important; height:auto!important; max-height:none!important; white-space:normal!important; overflow:visible!important; overflow-wrap:anywhere!important; -webkit-line-clamp:unset!important; font-size:13px!important; line-height:1.4!important; }
  html body:not(.sst-app) .sst-qo .sst-qo__side.sst-qo__side--expanded .sst-qo__cart-clear { min-height:44px!important; min-width:44px!important; }

  /* The next consent/customs step takes ownership after review closes. */
  html body:not(.sst-app) .sst-qo__preorder-modal,
  html body:not(.sst-app) .sst-qo__details-gate[data-open="1"] {
    top:var(--sst-purchase-vtop)!important; bottom:auto!important;
    height:var(--sst-purchase-vh)!important; max-height:var(--sst-purchase-vh)!important;
    padding:8px 8px calc(8px + env(safe-area-inset-bottom))!important;
    box-sizing:border-box!important; z-index:2147483001!important;
    align-items:stretch!important;
  }
  html body:not(.sst-app) :is(.sst-qo__preorder-dialog,.sst-qo__details-gate-card) {
    box-sizing:border-box!important; width:100%!important; max-width:100%!important;
    max-height:100%!important; min-height:0!important; margin:0!important;
    overflow:auto!important; overscroll-behavior:contain; padding:16px!important;
  }
  html body:not(.sst-app) .sst-qo__preorder-dialog h2 { font-size:22px!important; line-height:1.3!important; }
  html body:not(.sst-app) :is(.sst-qo__preorder-actions,.sst-qo__details-gate-actions) { flex-wrap:wrap; }
  html body:not(.sst-app) :is(.sst-qo__preorder-actions,.sst-qo__details-gate-actions) button { min-height:44px!important; white-space:normal!important; }
  html body:not(.sst-app) .sst-qo__preorder-ack { min-height:44px; }

  /* Global cart and product routes share the same usable viewport. */
  html body:not(.sst-app) .sst-cart-drawer { top:var(--sst-purchase-vtop)!important; bottom:auto!important; height:var(--sst-purchase-vh)!important; max-height:var(--sst-purchase-vh)!important; max-width:100vw!important; width:min(440px,100vw)!important; display:flex!important; flex-flow:column nowrap!important; z-index:2147483001!important; box-sizing:border-box!important; }
  html body:not(.sst-app) .sst-cart-drawer__head { flex:0 0 auto!important; }
  html body:not(.sst-app) .sst-cart-drawer__body { flex:1 1 auto!important; min-height:0!important; overflow:auto!important; overscroll-behavior:contain; }
  html body:not(.sst-app) .sst-cart-drawer__foot { flex:0 0 auto!important; padding-bottom:calc(12px + env(safe-area-inset-bottom))!important; }
  html body:not(.sst-app) .sst-cart-drawer__foot .button { min-height:44px!important; white-space:normal!important; }
  html body:not(.sst-app) .sst-cart-drawer-overlay { z-index:2147483000!important; }
  html body:not(.sst-app) .sst-sticky-cart { padding-bottom:calc(10px + env(safe-area-inset-bottom))!important; box-sizing:border-box; }
  html body:not(.sst-app) .sst-cart-drawer__qty-control { display:inline-grid; grid-template-columns:44px 48px 44px; max-width:100%; }
  html body:not(.sst-app) :is(.sst-cart-drawer__name,.sst-sticky-cart__name) { overflow-wrap:anywhere; }
  html body:not(.sst-app) .woocommerce :is(.form-row,.woocommerce-input-wrapper,.select2-container) { min-width:0; max-width:100%; }
  html body:not(.sst-app) .woocommerce :is(input,select,textarea) { box-sizing:border-box; max-width:100%; }
  html body:not(.sst-app) .woocommerce :is(button.button,a.checkout-button,#place_order) { min-height:44px; white-space:normal; line-height:1.4; }

  /* Supporting widgets live in normal page flow, never over merchandise. */
  html body:not(.sst-app) .sst-order-help-chat:not([data-open="1"]) { position:relative!important; top:auto!important; right:auto!important; bottom:auto!important; left:auto!important; margin:16px 12px calc(var(--sst-purchase-dock-h) + 16px)!important; z-index:1!important; }
  html body:not(.sst-app) .sst-order-help-chat:not([data-open="1"]) .sst-ohc-launcher { width:auto!important; max-width:100%; height:auto; min-height:44px; padding:12px 16px; gap:12px; border-radius:6px; }
  html body:not(.sst-app) .sst-order-help-chat:not([data-open="1"]) .sst-ohc-launcher__label { position:static; width:auto; height:auto; clip:auto; overflow:visible; white-space:normal; }
  html body:not(.sst-app) .sst-preorder-pop { position:relative!important; inset:auto!important; margin:12px!important; max-width:calc(100% - 24px)!important; }
  html body:not(.sst-app) .sstt-toasts { bottom:calc(var(--sst-purchase-dock-h) + 12px)!important; max-width:calc(100vw - 24px)!important; pointer-events:none; }
  html body:not(.sst-app):is(.sst-qo-panel-open,.sst-cart-open,.sst-purchase-gate-open) :is(.sst-order-help-chat,.sst-preorder-pop,#google-merchantwidget-iframe-wrapper,.sstt-toasts) { visibility:hidden!important; pointer-events:none!important; }
  html body:not(.sst-app).sst-cart-open .sst-qo__side:not(.sst-qo__side--expanded),
  html body:not(.sst-app).sst-purchase-gate-open .sst-qo__side,
  html body:not(.sst-app):is(.sst-qo-panel-open,.sst-cart-open,.sst-purchase-gate-open) :is(.sst-sticky-cart,.sst-cart-mobile-checkout,.sst-co-bar),
  html body:not(.sst-app).sst-purchase-keyboard :is(.sst-qo__side:not(.sst-qo__side--expanded),.sst-sticky-cart,.sst-cart-mobile-checkout,.sst-co-bar) { visibility:hidden!important; pointer-events:none!important; }
}
/* sst-qo-qty-mobile-20261007 begin
 * Mobile Quick Order quantity control: grid mode, non-PSA groups, phones (<750px).
 * Geometry owner: purchase-layout. Quantity meaning, limits and cart sync stay in
 * quick-order.js; this block only lays out the existing DOM:
 *   .sst-qo__offer-cell > .sst-qo__offer-info (label / stock / price)
 *                       > .sst-qo__offer-action > .sst-qo__qty (button - , input, button +)
 * Each purchasable offer becomes: [label ........ price] / [stock] / [ - | qty | + ] (44px).
 * Unavailable offers keep the restock bell, resized to the same 44px row.
 * Specificity (0,9,3)+ with !important wins over every quick-order-critical rule by
 * specificity alone. Colours are repeated under html[data-sst-theme="dark"] so the dark
 * bundle keeps every colour this block does not set.
 */
@media (max-width:749px) {
  /* Offer cell: information above, one full-width control below. */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"]:not([hidden]),
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) {
    display:flex!important; flex-direction:column!important; align-items:stretch!important; justify-content:flex-start!important;
    gap:4px!important; padding:4px 5px!important; min-height:0!important; height:auto!important;
    width:100%!important; min-width:0!important; max-width:100%!important; box-sizing:border-box!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-info,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-info {
    display:grid!important; grid-template-columns:minmax(0,1fr) max-content!important; grid-template-areas:"label price" "stock stock"!important;
    column-gap:6px!important; row-gap:0!important; align-items:baseline!important; justify-content:stretch!important;
    width:100%!important; min-width:0!important; max-width:100%!important; height:auto!important; min-height:0!important; margin:0!important; padding:0!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-label,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-label {
    grid-area:label!important; min-width:0!important; font-size:10px!important; line-height:1.3!important; letter-spacing:.06em!important;
    white-space:normal!important; overflow-wrap:anywhere!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-price,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-price {
    grid-area:price!important; justify-self:end!important; text-align:right!important; min-width:0!important;
    font-size:13px!important; line-height:1.3!important; font-weight:800!important; white-space:nowrap!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell .sst-qo__offer-price.sst-qo__offer-price--sale {
    white-space:normal!important; overflow-wrap:anywhere!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-stock,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-stock {
    grid-area:stock!important; min-width:0!important; font-size:10px!important; line-height:1.3!important;
    white-space:normal!important; overflow-wrap:anywhere!important;
  }
  /* The action wrapper is a real block again (it is display:contents today), so the
     quantity note / error that quick-order.js appends to it sits under the control
     at full cell width instead of inside a 57-79px column. */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-action:not([hidden]),
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-action:not([hidden]) {
    display:block!important; width:100%!important; min-width:0!important; max-width:100%!important; margin:0!important; padding:0!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell .sst-qo__offer-action > .sst-qo__row-err {
    margin:4px 0 0!important; width:100%!important; max-width:100%!important; box-sizing:border-box!important;
    font-size:11px!important; line-height:1.35!important; white-space:normal!important; overflow-wrap:anywhere!important; text-align:left!important;
  }

  /* Stepper: 44px tall, - and + are 44px wide, the field takes the rest (65px at 390, 30px at 320). */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) {
    display:grid!important; grid-template-columns:44px minmax(0,1fr) 44px!important; grid-area:auto!important;
    width:100%!important; min-width:0!important; max-width:100%!important; height:44px!important; min-height:44px!important;
    margin:0!important; padding:0!important; border:0!important; border-radius:8px!important; background:transparent!important;
    overflow:visible!important; justify-self:stretch!important; align-self:stretch!important; align-items:stretch!important; box-sizing:border-box!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button {
    display:inline-flex!important; align-items:center!important; justify-content:center!important;
    width:100%!important; min-width:44px!important; height:44px!important; min-height:44px!important; line-height:1!important;
    padding:0!important; margin:0!important; flex:none!important; box-sizing:border-box!important;
    font-family:inherit!important; font-size:22px!important; font-weight:600!important;
    border:1px solid #cfd6df!important; border-radius:0!important; background:#fff!important; color:#1f2937!important;
    touch-action:manipulation; cursor:pointer; -webkit-tap-highlight-color:transparent;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button[data-act="-"] {
    border-radius:8px 0 0 8px!important; border-right:0!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button[data-act="+"] {
    border-radius:0 8px 8px 0!important; border-left:0!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button:active:not(:disabled) {
    background:#f6e7ee!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input {
    display:block!important; width:100%!important; min-width:0!important; height:44px!important; min-height:44px!important; line-height:normal!important;
    padding:0 2px!important; margin:0!important; flex:none!important; box-sizing:border-box!important;
    font-family:inherit!important; font-size:16px!important; font-weight:800!important; text-align:center!important; font-variant-numeric:tabular-nums;
    border:1px solid #cfd6df!important; border-radius:0!important; background:#fff!important; color:#111!important;
    -moz-appearance:textfield!important; appearance:textfield;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input:focus {
    outline:2px solid #9e2c5f!important; outline-offset:-2px!important; position:relative; z-index:1;
  }
  /* In the order (value > 0): the whole control takes the brand colour. */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] input,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty.is-err button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty.is-err input {
    border-color:#9e2c5f!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] input {
    color:#9e2c5f!important; background:#fff7fb!important;
  }
  /* Nothing ordered yet: the - key is quiet (it is not disabled; quick-order.js ignores it at 0). */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="zero"] button[data-act="-"] {
    color:#8a94a0!important; /* 3.08:1 on #fff (WCAG 1.4.11 non-text contrast) */
  }

  /* Sold out: the restock bell fills the same 44px row (it is 72x28 today). */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-rsn-btn[data-source="qo"] {
    display:inline-flex!important; justify-content:center!important; align-items:center!important;
    width:100%!important; min-width:0!important; max-width:100%!important; height:44px!important; min-height:44px!important;
    padding:0 8px!important; margin:0!important; gap:6px!important; font-size:12px!important; border-radius:8px!important;
    align-self:auto!important; justify-self:auto!important; box-sizing:border-box!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-rsn-btn[data-source="qo"] .sst-rsn-btn__label {
    overflow:visible!important; text-overflow:clip!important; white-space:nowrap!important;
  }

  /* Narrow phones (<=340px, 148px cards): "NO SHRINK (i)" no longer fits beside the price,
     so the price moves down next to the stock line instead of wrapping the label. */
  @media (max-width:340px) {
    html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-info,
    html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-info {
      grid-template-areas:"label label" "stock price"!important;
    }
    html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-price,
    html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-price {
      font-size:12px!important;
    }
    /* 148px cards: give the digits the space (44+44 leaves 30px at 5px padding; 3 digits need 29px).
       Keep 16px (iOS zoom threshold); 4-digit quantities still scroll inside the field here. */
    html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"]:not([hidden]),
    html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) {
      padding:4px 3px!important;
    }
    html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input {
      padding:0!important; letter-spacing:-0.02em!important;
    }
  }

  /* Single-offer cards: the row template still names "sealed"/"nos", so the single
     "offer" cell falls into an implicit track behind three empty 4px gaps. */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr.sst-qo__row--single-offer[data-handle] {
    grid-template-areas:"info" "offer"!important;
  }

  /* Dark theme colours (the dark bundle sets these at (0,5,3); this block is (0,10,4)). */
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button {
    border-color:#3d3d42!important; background:#1a1a1c!important; color:#c2c2c8!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button:active:not(:disabled) {
    background:#2a1c23!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input {
    border-color:#3d3d42!important; background:#1a1a1c!important; color:#e8e8e8!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input:focus {
    outline-color:#e58bb5!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] input,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty.is-err button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty.is-err input {
    border-color:#bd3d76!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] input {
    color:#e58bb5!important; background:#2a1c23!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group:not([data-qo-subgroup="psa10"]):not([data-qo-subgroup="psabo"]) tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="zero"] button[data-act="-"] {
    color:#6b6b73!important;
  }
}
/* sst-qo-qty-mobile-20261007 end */
/* sst-qo-qty-mobile-20261007 part 2 begin
 * Quantity controls outside the grid cards, same 44px treatment.
 * (a) Review order panel line items: quick-order-critical puts the −/+ in 30px tracks while
 *     purchase-layout makes them 44px wide, so the number sat under the − button. */
@media (max-width:1024px) {
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__ci .sst-qo__ci-controls {
    display:grid!important; grid-template-columns:44px minmax(28px,auto) 44px!important; align-items:center!important;
    gap:6px!important; min-width:0!important; margin-top:6px!important;
  }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__ci .sst-qo__ci-btn {
    width:44px!important; min-width:44px!important; height:44px!important; min-height:44px!important;
    padding:0!important; line-height:1!important; font-size:20px!important; font-weight:600!important; font-family:inherit!important;
    border:1px solid #cfd6df!important; border-radius:8px!important; background:#fff!important; color:#1f2937!important;
    touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  }
  html body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__ci .sst-qo__ci-q {
    font-size:16px!important; font-weight:800!important; min-width:28px!important; text-align:center!important;
    font-variant-numeric:tabular-nums; color:#9e2c5f!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__ci .sst-qo__ci-btn {
    border-color:#3d3d42!important; background:#1a1a1c!important; color:#c2c2c8!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sst-qo__side--expanded .sst-qo__ci .sst-qo__ci-q {
    color:#e58bb5!important;
  }
}
/* sst-qo-qty-mobile-20261007 part 2 end */
/* sst-qo-qty-mobile-top-20261007 begin
 * TOP tab stepper + Add (top-tab.js qtyEl / offer rows / PSA carousel), phones (<750px).
 * Geometry owner: purchase-layout (loads after top-tab.css). Meaning is unchanged:
 * the TOP stepper is an INCREMENT (how many to add); top-tab.js reads q.dataset.qty
 * and writes current + n into the hidden Quick Order input. Nothing here touches that.
 *   .sstt-offer-act > .sstt-qty[role=group] (button.sstt-qty-b[data-d=-1], input|span.sstt-qty-v, button.sstt-qty-b[data-d=1])
 *                   + button.sstt-oadd
 *   .sstt-cf-row    > .sstt-qty.sstt-fixed + button.sstt-cf-add   (PSA carousel, always 1)
 * Layout: [ - | n | + ] and Add share one line while the Add label fits at its natural
 * width; otherwise (long labels: de/es/fr/id/it, or narrow cards) Add wraps under a
 * full-width stepper. The frame is on the group (1px), so - and + are 44x44 inside a
 * 46px row and the disabled key keeps top-tab.css's opacity:.26 without fading the frame.
 * Specificity (0,3,2)..(0,5,2) + !important beats top-tab.css (max (0,3,0) here, no
 * !important) and style.min.css `button{min-height:40px}`.
 */
@media (max-width:749px) {
  /* Offer controls take their own line (the 210px basis put them beside the price at >=412px). */
  html body:not(.sst-app) .sst-qo .sstt-offer-act {
    flex:1 1 100%!important; flex-wrap:wrap!important; justify-content:flex-start!important; align-items:stretch!important;
    gap:8px!important; min-width:0!important;
  }
  html body:not(.sst-app) .sst-qo .sstt-qty:not([hidden]) {
    display:grid!important; grid-template-columns:44px minmax(52px,1fr) 44px!important; align-items:stretch!important;
    height:46px!important; min-height:46px!important; margin:0!important; padding:0!important; box-sizing:border-box!important;
    border:1px solid #cfd6df!important; border-radius:8px!important; background:#fff!important; overflow:hidden!important;
  }
  /* in an offer row: grows with Add (1:3) on one line, fills the line when Add wraps */
  html body:not(.sst-app) .sst-qo .sstt-offer-act > .sstt-qty:not([hidden]) {
    flex:1 1 140px!important; min-width:140px!important; max-width:100%!important;
  }
  /* two-column box grid / wide single cards (521-749px): the stepper stops growing at 200px, Add takes the rest */
  @media (min-width:521px) {
    html body:not(.sst-app) .sst-qo .sstt-offer-act > .sstt-qty:not([hidden]) { max-width:200px!important; }
  }
  /* PSA carousel (centred row, the Add already takes its own line under 560px) */
  html body:not(.sst-app) .sst-qo .sstt-cf-row > .sstt-qty:not([hidden]) {
    flex:0 0 auto!important; width:142px!important; /* 44 + 52 + 44 inside the 1px frame */
  }
  html body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-b {
    display:inline-flex!important; align-items:center!important; justify-content:center!important;
    width:44px!important; min-width:44px!important; height:44px!important; min-height:44px!important;
    margin:0!important; padding:0!important; border:0!important; border-radius:0!important;
    background:transparent!important; color:#1f2937!important;
    touch-action:manipulation; -webkit-tap-highlight-color:transparent;
  }
  html body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-b svg { width:16px!important; height:16px!important; stroke-width:2!important; }
  /* touch "sticky hover" no longer fills the key black; press feedback as in the regular QO */
  html body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-b:hover { background:transparent!important; color:#1f2937!important; }
  html body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-b:active:not(:disabled) { background:#f6e7ee!important; }
  /* disabled keys: top-tab.css .sstt-qty-b:disabled{opacity:.26} is kept (not overridden here) */
  html body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-v {
    display:block!important; width:100%!important; min-width:0!important; height:44px!important; min-height:44px!important;
    line-height:44px!important; margin:0!important; padding:0 2px!important; box-sizing:border-box!important;
    border:0!important; border-left:1px solid #cfd6df!important; border-right:1px solid #cfd6df!important; border-radius:0!important;
    font-family:inherit!important; font-size:16px!important; font-weight:800!important; letter-spacing:0!important;
    text-align:center!important; font-variant-numeric:tabular-nums; color:#111!important; background:#fff!important;
    -moz-appearance:textfield!important; appearance:none;
  }
  html body:not(.sst-app) .sst-qo .sstt-qty input.sstt-qty-v:focus {
    outline:2px solid #9e2c5f!important; outline-offset:-2px!important;
  }
  /* single copy (span, both keys disabled): quiet number */
  html body:not(.sst-app) .sst-qo .sstt-qty.sstt-fixed .sstt-qty-v { color:#5b6470!important; font-weight:700!important; }
  /* Add: same 46px row, 8px radius; keeps its natural width so the label is never clipped */
  html body:not(.sst-app) .sst-qo .sstt-offer-act > .sstt-oadd {
    flex:3 1 auto!important; min-width:max-content!important; max-width:100%!important;
    height:46px!important; min-height:46px!important; padding:0 14px!important; margin:0!important; border-radius:8px!important;
  }
  html body:not(.sst-app) .sst-qo .sstt-cf-row > .sstt-cf-add { min-height:46px!important; border-radius:8px!important; }

  /* Dark theme (dark-mode-qo.css sets only the group background/hover border, at (0,2,1)). */
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sstt-qty:not([hidden]) { border-color:#3d3d42!important; background:#1a1a1c!important; }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-b,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-b:hover { color:#c2c2c8!important; }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-b:active:not(:disabled) { background:#2a1c23!important; }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sstt-qty .sstt-qty-v { border-left-color:#3d3d42!important; border-right-color:#3d3d42!important; background:#1a1a1c!important; color:#e8e8e8!important; }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sstt-qty input.sstt-qty-v:focus { outline-color:#e58bb5!important; }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo .sstt-qty.sstt-fixed .sstt-qty-v { color:#a3a3a8!important; }
}
/* sst-qo-qty-mobile-top-20261007 end */
/* sst-qo-qty-mobile-list-20261007 begin
 * Mobile Quick Order quantity control: LIST mode (.sst-qo--list), phones (<750px), all groups
 * (in List mode PSA10 / PSABO rows use the same "prod / offer" row and "info qty" cell as every
 * other group, so they are not excluded here; the grid block excludes them only because their
 * GRID layouts differ).
 * Geometry owner: purchase-layout. Quantity meaning, limits and cart sync stay in quick-order.js.
 * Each offer stays ONE line (List density): [label / stock | price][ - | qty | + ] (44px).
 * The existing cell grid ("info qty", quick-order-deferred.css:1627-1700, (0,6,1)-(0,7,4)!important)
 * is kept; only the qty column widens from 72px to 136-144px. Unavailable offers put the restock
 * bell in the same 44px column. The action wrapper stays display:contents (the bell is a grid item
 * of the cell); the quantity / min-qty note that quick-order.js appends to it spans the full cell
 * width on its own line.
 * Specificity (0,9,3)+ with !important beats every List rule in quick-order-deferred.min.css.
 */
@media (max-width:749px) {
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"]:not([hidden]),
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) {
    display:grid!important; grid-template-columns:minmax(0,1fr) 144px!important; grid-template-areas:"info qty"!important;
    align-items:center!important; column-gap:8px!important; row-gap:4px!important;
    min-height:0!important; height:auto!important; padding:3px 3px 3px 7px!important; box-sizing:border-box!important;
  }
  /* label over stock on the left, price on the right next to the stepper (vertically centred) */
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-info,
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-info {
    grid-area:info!important; display:grid!important; grid-template-columns:minmax(0,1fr) max-content!important; grid-template-areas:"label price" "stock price"!important;
    align-items:center!important; column-gap:6px!important; row-gap:2px!important; min-width:0!important; width:100%!important; margin:0!important; padding:0!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-label,
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-label {
    grid-area:label!important; align-self:end!important; max-width:100%!important; min-width:0!important;
    font-size:10px!important; line-height:1.3!important; letter-spacing:.06em!important;
    white-space:nowrap!important; overflow:hidden!important; text-overflow:ellipsis!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-stock,
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-stock {
    grid-area:stock!important; align-self:start!important; min-width:0!important;
    font-size:10px!important; line-height:1.3!important; white-space:nowrap!important; overflow:hidden!important; text-overflow:ellipsis!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-price,
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-price {
    grid-area:price!important; align-self:center!important; justify-self:end!important; text-align:right!important; min-width:0!important;
    font-size:13px!important; line-height:1.25!important; font-weight:800!important; white-space:nowrap!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell .sst-qo__offer-price.sst-qo__offer-price--sale {
    white-space:normal!important; overflow-wrap:anywhere!important;
  }
  /* Notes appended by quick-order.js to .sst-qo__offer-action (display:contents) become grid items:
     put them on their own full-width line under the info / stepper. Visibility stays with the
     element's own display (none until quick-order.js shows it). */
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell .sst-qo__offer-action > .sst-qo__row-err {
    grid-column:1 / -1!important; grid-row:auto!important; justify-self:stretch!important; margin:0 4px 2px 0!important; width:auto!important; max-width:100%!important; box-sizing:border-box!important;
    font-size:11px!important; line-height:1.35!important; white-space:normal!important; overflow-wrap:anywhere!important; text-align:left!important;
  }

  /* Stepper: 44px tall, - and + 44x44, the field takes the rest (56px; 48px at <=360). */
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) {
    grid-area:qty!important; display:grid!important; grid-template-columns:44px minmax(0,1fr) 44px!important;
    width:100%!important; min-width:0!important; max-width:100%!important; height:44px!important; min-height:44px!important;
    margin:0!important; padding:0!important; border:0!important; border-radius:8px!important; background:transparent!important;
    overflow:visible!important; justify-self:stretch!important; align-self:center!important; align-items:stretch!important; box-sizing:border-box!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button {
    display:inline-flex!important; align-items:center!important; justify-content:center!important;
    width:100%!important; min-width:44px!important; height:44px!important; min-height:44px!important; line-height:1!important;
    padding:0!important; margin:0!important; flex:none!important; box-sizing:border-box!important;
    font-family:inherit!important; font-size:22px!important; font-weight:600!important;
    border:1px solid #cfd6df!important; border-radius:0!important; background:#fff!important; color:#1f2937!important;
    touch-action:manipulation; cursor:pointer; -webkit-tap-highlight-color:transparent;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button[data-act="-"] {
    border-radius:8px 0 0 8px!important; border-right:0!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button[data-act="+"] {
    border-radius:0 8px 8px 0!important; border-left:0!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button:active:not(:disabled) {
    background:#f6e7ee!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input {
    display:block!important; width:100%!important; min-width:0!important; height:44px!important; min-height:44px!important; line-height:normal!important;
    padding:0 2px!important; margin:0!important; flex:none!important; box-sizing:border-box!important;
    font-family:inherit!important; font-size:16px!important; font-weight:800!important; text-align:center!important; font-variant-numeric:tabular-nums;
    border:1px solid #cfd6df!important; border-radius:0!important; background:#fff!important; color:#111!important;
    -moz-appearance:textfield!important; appearance:textfield;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input:focus {
    outline:2px solid #9e2c5f!important; outline-offset:-2px!important; position:relative; z-index:1;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] button,
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] input,
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty.is-err button,
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty.is-err input {
    border-color:#9e2c5f!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] input {
    color:#9e2c5f!important; background:#fff7fb!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="zero"] button[data-act="-"] {
    color:#8a94a0!important;
  }

  /* Sold out: the restock bell fills the same 44px column (72x28 today); the empty ::after
     placeholder that reserves that column (quick-order-deferred.css:1704) follows its size. */
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-rsn-btn[data-source="qo"] {
    grid-area:qty!important; display:inline-flex!important; justify-content:center!important; align-items:center!important;
    width:100%!important; min-width:0!important; max-width:100%!important; height:44px!important; min-height:44px!important;
    padding:0 8px!important; margin:0!important; gap:6px!important; font-size:12px!important; border-radius:8px!important;
    align-self:center!important; justify-self:stretch!important; box-sizing:border-box!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-rsn-btn[data-source="qo"] .sst-rsn-btn__label {
    overflow:visible!important; text-overflow:clip!important; white-space:nowrap!important;
  }
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer[data-qo-action-state="unavailable"] .sst-qo__offer-cell[data-qo-action-state="unavailable"]::after {
    width:100%!important; height:44px!important;
  }

  /* <=360px: 136px stepper (48px field); <=340px: the price goes under the label so the
     label keeps its width (info column is ~130px at 320). */
  @media (max-width:360px) {
    html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"]:not([hidden]),
    html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) {
      grid-template-columns:minmax(0,1fr) 136px!important; column-gap:6px!important;
    }
  }
  @media (max-width:340px) {
    html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-info,
    html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-info {
      grid-template-columns:minmax(0,1fr)!important; grid-template-areas:"label" "price" "stock"!important; row-gap:0!important;
    }
    html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-price,
    html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-price {
      justify-self:start!important; text-align:left!important; line-height:1.2!important;
    }
  }

  /* Dark theme colours (dark-mode-qo.css values, as in the grid block). */
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button {
    border-color:#3d3d42!important; background:#1a1a1c!important; color:#c2c2c8!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button:active:not(:disabled) {
    background:#2a1c23!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input {
    border-color:#3d3d42!important; background:#1a1a1c!important; color:#e8e8e8!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input:focus {
    outline-color:#e58bb5!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] input,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty.is-err button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty.is-err input {
    border-color:#bd3d76!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="set"] input {
    color:#e58bb5!important; background:#2a1c23!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty[data-sst-qty-state="zero"] button[data-act="-"] {
    color:#6b6b73!important;
  }
  /* Disabled controls (PSA back order rows until the server validates them; - at 0): must look disabled. */
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button[data-act]:disabled,
  html body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input:disabled {
    background:#f1f3f5!important; color:#b4bbc4!important; cursor:not-allowed!important; opacity:1!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty button[data-act]:disabled,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo.sst-qo--list .sst-qo__group tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty input:disabled {
    background:#141416!important; color:#4a4a52!important;
  }
}
/* sst-qo-qty-mobile-list-20261007 end */
/* sst-qo-qty-mobile-psa-20261007 begin (PSA10 / PSA back order grid steppers, phones) */
/* Option A: 3 columns kept. Stepper 44px tall; - and + as wide as the card allows (26-44px), the field keeps >= 27px (2 digits at 16px, 3 from 360px). */
@media (max-width:749px) {
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"]:not([hidden]),
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]),
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"]:not([hidden]),
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) {
    padding-left:2px!important; padding-right:2px!important;
  }
  /* Control colours (light). The PSA grid only sets size; colours came from quick-order-critical. */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]),
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) {
    border:0!important; border-radius:8px!important; background:transparent!important; overflow:visible!important; box-sizing:border-box!important; margin:0!important; padding:0!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button {
    display:inline-flex!important; align-items:center!important; justify-content:center!important; min-width:0!important; height:44px!important; min-height:44px!important; line-height:1!important; padding:0!important; margin:0!important; box-sizing:border-box!important; font-family:inherit!important; font-size:20px!important; font-weight:600!important; border:1px solid #cfd6df!important; border-radius:0!important; background:#fff!important; color:#1f2937!important; touch-action:manipulation; cursor:pointer; -webkit-tap-highlight-color:transparent;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input {
    display:block!important; width:100%!important; min-width:0!important; height:44px!important; min-height:44px!important; line-height:normal!important; padding:0 1px!important; margin:0!important; box-sizing:border-box!important; font-family:inherit!important; font-size:16px!important; font-weight:800!important; text-align:center!important; font-variant-numeric:tabular-nums; letter-spacing:-0.02em!important; border:1px solid #cfd6df!important; border-radius:0!important; background:#fff!important; color:#111!important; -moz-appearance:textfield!important; appearance:textfield;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input::-webkit-outer-spin-button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input::-webkit-inner-spin-button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input::-webkit-outer-spin-button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input::-webkit-inner-spin-button {
    -webkit-appearance:none; margin:0;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input:focus,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input:focus {
    outline:2px solid #9e2c5f!important; outline-offset:-2px!important; position:relative; z-index:1;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button:active:not(:disabled),
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button:active:not(:disabled) {
    background:#f6e7ee!important;
  }
  /* In the order (value > 0): brand colour, as in the main grid. */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] input,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]).is-err button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]).is-err input,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] input,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]).is-err button,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]).is-err input {
    border-color:#9e2c5f!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] input,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] input {
    color:#9e2c5f!important; background:#fff7fb!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="zero"] button[data-act="-"],
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="zero"] button[data-act="-"] {
    color:#8a94a0!important;
  }
  /* Disabled (PSA back order: - at 0 until the server validates the row; all controls while unverified). Must stay visibly disabled. */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button[data-act]:disabled,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input:disabled,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button[data-act]:disabled,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input:disabled {
    background:#f1f3f5!important; color:#b4bbc4!important; cursor:not-allowed!important; opacity:1!important;
  }
  /* Dark theme (dark-mode-qo.css colours). */
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button {
    border-color:#3d3d42!important; background:#1a1a1c!important; color:#c2c2c8!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button:active:not(:disabled),
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button:active:not(:disabled) {
    background:#2a1c23!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input {
    border-color:#3d3d42!important; background:#1a1a1c!important; color:#e8e8e8!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input:focus,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input:focus {
    outline-color:#e58bb5!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] input,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]).is-err button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]).is-err input,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] input,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]).is-err button,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]).is-err input {
    border-color:#bd3d76!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] input,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="set"] input {
    color:#e58bb5!important; background:#2a1c23!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="zero"] button[data-act="-"],
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden])[data-sst-qty-state="zero"] button[data-act="-"] {
    color:#6b6b73!important;
  }
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button[data-act]:disabled,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input:disabled,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button[data-act]:disabled,
  html[data-sst-theme="dark"] body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) input:disabled {
    background:#141416!important; color:#4a4a52!important;
  }
  /* Sold out: the restock bell takes the same full-width row as the stepper (75-112 x 28 today). */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) .sst-rsn-btn[data-source="qo"],
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) .sst-rsn-btn[data-source="qo"] {
    display:inline-flex!important; justify-content:center!important; align-items:center!important; width:100%!important; min-width:0!important; max-width:100%!important; height:auto!important; min-height:44px!important; padding:2px 4px!important; margin:0!important; gap:4px!important; font-size:12px!important; line-height:1.15!important; border-radius:8px!important; box-sizing:border-box!important; justify-self:stretch!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) .sst-rsn-btn[data-source="qo"] .sst-rsn-btn__label,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"]:not([hidden]) .sst-rsn-btn[data-source="qo"] .sst-rsn-btn__label {
    overflow:visible!important; text-overflow:clip!important; white-space:normal!important; overflow-wrap:anywhere!important; text-align:center!important;
  }
  /* Notes and errors (over max, minimum, back order "Please try again.") stay under the control at full cell width. */
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-action > .sst-qo__row-err,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-action > .sst-qo__row-err,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-action > .sst-qo__row-err,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="unavailable"] .sst-qo__offer-action > .sst-qo__row-err {
    grid-column:1 / -1!important; justify-self:stretch!important; width:100%!important; max-width:100%!important; margin:0!important; box-sizing:border-box!important; font-size:11px!important; line-height:1.3!important; white-space:normal!important; overflow-wrap:anywhere!important; text-align:left!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-action > button.sst-qo__row-err,
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__offer-action > button.sst-qo__row-err {
    min-height:44px!important; text-align:center!important; cursor:pointer;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]),
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) {
    display:grid!important; grid-template-columns:clamp(26px, calc((100% - 32px) / 2), 44px) minmax(0,1fr) clamp(26px, calc((100% - 32px) / 2), 44px)!important; width:100%!important; min-width:0!important; max-width:100%!important; height:44px!important; min-height:44px!important; justify-self:stretch!important; align-items:stretch!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button[data-act="-"],
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button[data-act="-"] {
    width:100%!important; border-radius:8px 0 0 8px!important; border-right:0!important;
  }
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psa10"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button[data-act="+"],
  html body:not(.sst-app) .sst-qo:not(.sst-qo--list) .sst-qo__group[data-qo-subgroup="psabo"] .sst-qo__table tbody tr[data-handle] .sst-qo__offer-cell[data-qo-action-state="quantity"] .sst-qo__qty:not([hidden]) button[data-act="+"] {
    width:100%!important; border-radius:0 8px 8px 0!important; border-left:0!important;
  }
}
/* sst-qo-qty-mobile-psa-20261007 end */
