.ftp-hidden-option{display:none!important}
.ftp-hidden-option.ftp-ocs-keep{display:block!important;position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;margin:-1px!important;padding:0!important;border:0!important}
/* ── V3.23 TRIPLE COMBO-SUPER ─────────────────────────────────────── */
/* Reuses existing .ftp-super-cyc-row / .ftp-super-cyc-divider / .ftp-error-msg / cyclers / pills / bin.
   Adds: stepper control (build + confirmed rows), per-line price, serves readout, title info host. */
.ftp-tri-title-info{display:-webkit-inline-flex;display:inline-flex;align-items:center;margin-left:6px;vertical-align:middle}
.ftp-tri-stepper{display:-webkit-inline-flex;display:inline-flex;align-items:center;border:1px solid #ccc;border-radius:6px;overflow:hidden;background:#fff;flex-shrink:0}
.ftp-tri-step-btn{background:#fff;border:none;color:#555;width:30px;height:32px;font-size:16px;line-height:1;cursor:pointer;font-family:inherit;outline:none;padding:0;transition:background .12s,color .12s}
.ftp-tri-step-btn:hover{background:#f3f3f3;color:#000}
.ftp-tri-step-btn:disabled{opacity:.4;cursor:not-allowed}
.ftp-tri-step-val{min-width:30px;text-align:center;font-size:14px;font-weight:600;color:#333;padding:0 4px;border-left:1px solid #eee;border-right:1px solid #eee;line-height:32px}
button.ftp-ss-rval{-webkit-appearance:none;appearance:none;border-top:0;border-bottom:0;background:transparent;font-family:inherit;cursor:pointer;outline:none}
.ftp-tri-price{font-size:13px;font-weight:400;color:#444;white-space:nowrap;flex-shrink:0}
.ftp-tri-confirmed-row{display:-webkit-flex;display:flex;align-items:center;gap:6px;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-bottom:8px}
.ftp-tri-confirmed-row .ftp-tri-confirmed-pill{-ms-flex-negative:1;flex-shrink:1;min-width:0}
.ftp-tri-confirmed-row .ftp-super-pill-half{padding:6px 10px;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ftp-tri-confirmed-row .ftp-tri-price{margin-left:auto;-ms-flex-negative:0;flex-shrink:0;font-size:13px}
.ftp-tri-confirmed-row:last-child{margin-bottom:0}
.ftp-tri-confirmed-pill{display:-webkit-inline-flex;display:inline-flex;border-radius:999px;overflow:hidden;border:0;align-items:center;flex:0 0 auto}
.ftp-tri-confirmed-pill .ftp-super-pill-half{padding:7px 14px}
/* V3.31: mobile pill compaction - full labels on desktop; on phones the flavour shows its first 4
   chars and the base shows its icon (or first 4 chars if it has none), so a built config fits one line. */
.ftp-super-pill-half .ftp-pf,.ftp-super-pill-half .ftp-pa{display:-webkit-inline-flex;display:inline-flex;align-items:center;gap:5px}
/* V3.170 task 3: tap-and-hold pill peek (full label floated above everything) */
.ftp-pillpeek{position:fixed;z-index:100000;pointer-events:none;background:#fff;border:1px solid #e3e3e3;border-radius:999px;-webkit-box-shadow:0 8px 22px rgba(0,0,0,.24);box-shadow:0 8px 22px rgba(0,0,0,.24);padding:4px 5px;max-width:92vw}
.ftp-pillpeek .ftp-pf{display:-webkit-inline-flex!important;display:inline-flex!important}
.ftp-pillpeek .ftp-pa{display:none!important}
.ftp-pillpeek .ftp-super-pill-half,.ftp-pillpeek .ftp-ss-pname{white-space:nowrap}
.ftp-pillpeek .ftp-super-pill-half{border-radius:999px}
/* V3.171: stop the phone long-press from firing native text selection / iOS callout on the pill text (peek only) */
.ftp-super-pill-half,.ftp-ss-pname{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}
.ftp-pillpeek,.ftp-pillpeek *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}
/* V3.170 task 4: combo-super tile fly-up into the build pill */
.ftp-cb-tilefly{display:block;box-sizing:border-box}
.ftp-cb-tilefly .ftp-cb-tile{width:100%;height:100%;margin:0;pointer-events:none}
.ftp-super-pill-half .ftp-pa{display:none}
@media (max-width:767px){
.ftp-super-pill-half .ftp-pf{display:none}
.ftp-super-pill-half .ftp-pa{display:-webkit-inline-flex;display:inline-flex}
}
.ftp-tri-serves{margin-top:10px;font-size:13px;font-weight:600;color:#444;padding:8px 12px;background:#f3f1f0;border-radius:6px;display:inline-block}
.ftp-tri-serves.ftp-ss-hasing{display:block;width:100%;box-sizing:border-box}
.ftp-ss-srvmain{display:block}
.ftp-ss-ingline{display:-webkit-flex;display:flex;-webkit-justify-content:space-between;justify-content:space-between;gap:12px;margin-top:5px;font-weight:500}
.ftp-ss-inglbl{color:#6f5520;font-weight:600}
.ftp-tri-advisory{font-size:12px;color:#856404;margin-top:8px;padding:6px 10px;background:#fff3cd;border-left:3px solid #ffc107;border-radius:3px}
/* V3.5 Q5: harmonise native form fields inside product/QAP scopes — rounded-corner FTP look.
   Cart/checkout naturally excluded since neither #product nor #oc-pop-inner exists there. */
#product .form-group select.form-control,
#product .form-group input.form-control,
#product .form-group textarea.form-control,
#oc-pop-inner .form-group select.form-control,
#oc-pop-inner .form-group input.form-control,
#oc-pop-inner .form-group textarea.form-control{border-radius:6px;border:1px solid #ccc;padding:9px 14px;font-family:inherit;font-size:14px;height:auto;background:#fff;line-height:1.4;-webkit-appearance:none;-moz-appearance:none}
.ftp-picker{margin-bottom:18px}
.ftp-picker>.control-label{display:block;margin-bottom:6px}
.ftp-tags{min-height:38px;padding:6px 8px;border:1px solid #ddd;border-radius:6px;margin-bottom:6px;background:#f3f1f0;display:-webkit-flex;display:flex;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:6px;align-items:center;transition:border-color .15s,background .15s}
.ftp-tags-error{border-color:#e57373;background:#fff5f5}
.ftp-tag{display:-webkit-inline-flex;display:inline-flex;align-items:center;color:#444;border-radius:14px;padding:4px 11px;font-size:13px;line-height:1.4;gap:6px;border:1px solid rgba(0,0,0,.08)}
.ftp-tag-x{cursor:pointer;font-size:15px;line-height:1;font-weight:bold;color:#888;padding-left:1px;transition:color .12s}
.ftp-tag-x:hover{color:#444}
.ftp-tags-hint{color:#888;font-size:13px;font-style:italic}
.ftp-error-msg{display:none;color:#c62828;font-size:13px;margin:0 0 8px;padding:6px 10px;background:#fff0f0;border-left:3px solid #e57373;border-radius:3px}
.ftp-error-msg.ftp-show{display:block}
.ftp-counter-row{display:-webkit-flex;display:flex;-webkit-justify-content:space-between;justify-content:space-between;align-items:center;margin-bottom:6px}
.ftp-counter{font-size:12px;color:#888}
.ftp-counter.ftp-done{color:#4caf50;font-weight:bold}
.ftp-clear-btn{visibility:hidden;cursor:pointer;color:#888;padding:8px 10px;background:#fafafa;border:1px solid #e0e0e0;border-radius:6px;line-height:0;display:-webkit-inline-flex;display:inline-flex;align-items:center;transition:color .12s,background .12s,border-color .12s}
.ftp-clear-btn:hover{color:#c62828;background:#fff5f5;border-color:#e0bcbc}
.ftp-clear-btn.ftp-show{visibility:visible}
.ftp-clear-btn svg{width:16px;height:16px;display:block}
.ftp-summary{overflow:hidden;max-height:300px;opacity:1}
.ftp-multi.ftp-summary-hidden .ftp-summary,.ftp-combo.ftp-summary-hidden .ftp-summary{max-height:0;opacity:0}
.ftp-custom{position:relative;display:block}
.ftp-custom-trigger{width:100%;padding:9px 36px 9px 14px;border:1px solid #ccc;border-radius:6px;background:#fff;color:#666;font-size:14px;text-align:left;cursor:pointer;position:relative;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none;font-family:inherit;line-height:1.4}
.ftp-custom-trigger.ftp-has-value{color:#444;display:-webkit-flex;display:flex;align-items:center;gap:10px}
.ftp-custom-trigger:hover{border-color:#999}
.ftp-custom-trigger:focus{outline:none;border-color:#999;box-shadow:0 0 0 3px rgba(0,0,0,.05)}
.ftp-custom-trigger.ftp-disabled{background:#f5f5f5;color:#aaa;cursor:not-allowed;border-color:#e0e0e0}
.ftp-custom-trigger:after{content:'';position:absolute;right:14px;top:50%;width:8px;height:8px;border-right:2px solid #888;border-bottom:2px solid #888;-webkit-transform:translateY(-70%) rotate(45deg);transform:translateY(-70%) rotate(45deg);transition:transform .15s}
/* V2.10: container for N-circle swatches (replaces gradient single-circle for split flavours) */
.ftp-swatch-group{display:-webkit-inline-flex;display:inline-flex;gap:2px;-webkit-flex-shrink:0;flex-shrink:0}
/* V2.13: combo-pill — split rounded pill, one segment per chosen flavour, each its own colour bg */
.ftp-combo-pill{display:-webkit-inline-flex;display:inline-flex;border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.12);max-width:100%;flex-wrap:wrap}
.ftp-combo-seg{display:-webkit-inline-flex;display:inline-flex;align-items:center;gap:6px;padding:4px 11px;color:#444;font-size:13px;line-height:1.4;border-right:1px solid rgba(0,0,0,.18)}
.ftp-combo-seg:last-child{border-right:none}
.ftp-combo-seg-x{cursor:pointer;font-size:15px;line-height:1;font-weight:bold;color:#888;padding-left:1px;transition:color .12s}
.ftp-combo-seg-x:hover{color:#444}
/* V2.13: combo price-modifier message — visible when matched combo has a (+/-)$X.XX price set in OC admin */
.ftp-price-msg{display:none;color:#5d4037;font-size:14px;font-weight:600;margin:6px 0 8px;padding:8px 12px;background:#fff8e1;border-left:3px solid #ffa000;border-radius:3px}
.ftp-price-msg.ftp-show{display:block}
/* V3.5: COMBO SUPER picker — batch builder with variant A picker + variant B toggle + Add button */
.ftp-super-builder{margin-top:8px}
/* V3.5: row-based batch UI for combo super. Each batch is its own row. */
.ftp-super-batches{display:block;margin-top:6px}
.ftp-super-batch{display:-webkit-flex;display:flex;align-items:center;gap:10px;margin-bottom:8px;flex-wrap:wrap}
.ftp-super-batch:last-child{margin-bottom:0}
/* V3.5: cluster — single rounded container holding all toggle buttons in two visual sections */
.ftp-super-cluster{display:-webkit-inline-flex;display:inline-flex;align-items:center;background:#fff;border:1.5px solid #d0d0d0;border-radius:8px;padding:4px;gap:3px;flex-wrap:nowrap;flex:1 1 auto;min-width:0}
.ftp-super-cluster-divider{width:1px;height:26px;background:#ddd;margin:0 6px;flex-shrink:0}
/* V3.5: toggle button — clean white default, unambiguous dark active state */
.ftp-super-toggle-opt{display:-webkit-inline-flex;display:inline-flex;align-items:center;justify-content:center;padding:7px 14px;background:transparent;border:1.5px solid transparent;border-radius:5px;cursor:pointer;font-size:13px;color:#555;font-family:inherit;font-weight:500;line-height:1.4;transition:background .12s,color .12s,border-color .12s;white-space:nowrap;outline:none}
.ftp-super-toggle-opt:hover:not(.ftp-super-toggle-opt-active){background:#f3f3f3;color:#000}
.ftp-super-toggle-opt-active{background:#333!important;color:#fff!important;border-color:#333!important;font-weight:700}
.ftp-super-toggle-opt.ftp-disabled{opacity:.5;cursor:not-allowed}
/* V3.5: batch action buttons — Confirm (primary), Add (primary), × (subtle remove) */
.ftp-super-batch-btn{flex-shrink:0;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:background .12s,opacity .12s;line-height:1.4;outline:none}
.ftp-super-batch-btn-confirm{background:#333;color:#fff;border-color:#333}
.ftp-super-batch-btn-confirm:hover:not(.ftp-disabled){background:#000;border-color:#000}
.ftp-super-batch-btn-confirm.ftp-disabled{opacity:.4;cursor:not-allowed}
.ftp-super-batch-btn-add{background:#333;color:#fff;border-color:#333}
.ftp-super-batch-btn-add:hover{background:#000;border-color:#000}
.ftp-super-batch-btn-remove{background:#fff;color:#777;border:1px solid #ccc;padding:6px 12px;font-size:16px;line-height:1}
.ftp-super-batch-btn-remove:hover{background:#f5f5f5;color:#444;border-color:#999}
/* V3.5: confirmed batch pills (selection display) — single rounded pill split into two halves */
.ftp-super-batch-pills{display:-webkit-inline-flex;display:inline-flex;border-radius:14px;overflow:hidden;border:1px solid rgba(0,0,0,.12);align-items:center;flex:1 1 auto;min-width:0;max-width:100%}
.ftp-super-pill-half{display:-webkit-inline-flex;display:inline-flex;align-items:center;padding:6px 14px;color:#444;font-size:13px;line-height:1.4;font-weight:500}
.ftp-super-pill-half:first-of-type{border-right:1px solid rgba(0,0,0,.18)}
/* V3.5: variant B half — neutral bg distinct from variant A's flavour-colour bg */
.ftp-super-pill-half-b{background:#f0f0f0;color:#444}
/* V3.5: notice (invalid base click) — soft yellow inline */
.ftp-super-notice{display:none;flex-basis:100%;color:#856404;font-size:13px;margin:4px 0 0;padding:6px 10px;background:#fff3cd;border-left:3px solid #ffc107;border-radius:3px}
.ftp-super-notice.ftp-show{display:block}
/* V3.5: info icon — black "i" in light blue circle (operator spec) */
/* V3.8: info icon — fa-info-circle in Flossy info-blue. Replaces V3.6 manual circle + Georgia italic. */
.ftp-info-icon{color:#5bc0de !important;font-size:14px !important;cursor:pointer !important;margin-left:6px !important;vertical-align:middle !important;position:relative !important;display:inline-block !important;background:transparent !important;border-radius:0 !important;width:auto !important;height:auto !important;font-style:normal !important;font-weight:normal !important;line-height:1 !important}
.ftp-info-icon:hover{color:#46b8da !important}
/* V3.8: hover box — Montserrat body, white bg, soft shadow. Replaces V3.6 dark tooltip. */
.ftp-info-icon::after{content:attr(data-info);position:absolute;top:130%;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);background:#fff;color:#555;padding:13px 15px;border-radius:8px;font-family:'Montserrat',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;font-style:normal;white-space:normal;width:240px;z-index:1060;line-height:1.55;opacity:0;pointer-events:none;transition:opacity .15s;text-align:left;text-transform:none;box-shadow:0 6px 22px rgba(0,0,0,.18);border:.5px solid rgba(0,0,0,.08)}
.ftp-info-icon.ftp-info-open::after,.ftp-info-icon:hover::after{opacity:1;pointer-events:auto}
/* V3.5 Q2: soft yellow warning shown when batches added > qty selected */
.ftp-super-qty-warn{display:none;color:#856404;font-size:13px;margin:6px 0 8px;padding:8px 12px;background:#fff3cd;border-left:3px solid #ffc107;border-radius:3px}
.ftp-super-qty-warn.ftp-show{display:block}
/* V3.5 Q3: soft notice shown on invalid base click (e.g. "Oat Milk only available with Vanilla, Chocolate") */
.ftp-super-notice{display:none;color:#856404;font-size:13px;margin:6px 0;padding:6px 10px;background:#fff3cd;border-left:3px solid #ffc107;border-radius:3px}
.ftp-super-notice.ftp-show{display:block}
.ftp-custom.ftp-open .ftp-custom-trigger:after{-webkit-transform:translateY(-30%) rotate(-135deg);transform:translateY(-30%) rotate(-135deg)}
.ftp-custom-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 14px rgba(0,0,0,.08);max-height:240px;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:1050;display:none;padding:4px 0}
#oc-pop-inner .ftp-custom-menu{max-height:160px}
.ftp-custom.ftp-open .ftp-custom-menu{display:block;-webkit-animation:ftpFade .12s ease-out;animation:ftpFade .12s ease-out}
@-webkit-keyframes ftpFade{from{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}
@keyframes ftpFade{from{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}
.ftp-custom-item{display:-webkit-flex;display:flex;align-items:center;gap:10px;padding:9px 14px;font-size:14px;color:#444;cursor:pointer;transition:background .1s}
.ftp-custom-item:hover{background:#f5f7fa}
.ftp-custom-item.ftp-selected{background:#f5f7fa;font-weight:600}
/* V3.5: visual key for selected items in dropdown */
.ftp-count-badge{margin-left:auto;font-size:12px;line-height:1;padding:3px 8px;border-radius:10px;background:rgba(0,0,0,.06);color:#555;min-width:22px;text-align:center;font-weight:600}
.ftp-check-mark{margin-left:auto;color:#4caf50;font-weight:bold;font-size:16px;line-height:1;padding:0 6px}
.ftp-swatch{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.12);-webkit-flex-shrink:0;flex-shrink:0}
/* V3.6: cluster two-column layout (replaces V3.5 single-row cluster) */
.ftp-super-cluster{align-items:stretch}
.ftp-super-cluster-col{display:-webkit-inline-flex;display:inline-flex;flex-direction:column;align-items:stretch;gap:6px;flex:1 1 0;min-width:0}
.ftp-super-cluster-prompt{font-size:11px;font-style:italic;color:#888;text-align:center;padding:2px 4px 0}
.ftp-super-cluster-toggles{display:-webkit-flex;display:flex;flex-wrap:wrap;gap:3px;justify-content:center;align-items:center}
/* V3.6: greyed toggle — settled-side unselected option */
.ftp-super-toggle-opt-greyed{background:#f0f0f0;color:#999;font-weight:400;border-color:transparent}
/* V3.6: bin button (replaces V3.5 × button) — neutral, trash-icon */
.ftp-super-batch-btn-remove-bin{flex-shrink:0;background:#fafafa;color:#888;border:1px solid #e0e0e0;border-radius:6px;padding:6px 10px;cursor:pointer;display:-webkit-inline-flex;display:inline-flex;align-items:center;justify-content:center;line-height:0;font-family:inherit;outline:none;transition:color .12s,background .12s,border-color .12s}
.ftp-super-batch-btn-remove-bin:hover{color:#c62828;background:#fff5f5;border-color:#e0bcbc}
.ftp-super-batch-btn-remove-bin svg{width:16px;height:16px;display:block}
/* V3.6: Add button — neutral system style (replaces V3.5 dark Confirm/Add) */
.ftp-super-batch-btn-add{flex-shrink:0;background:#fff;color:#444;border:1px solid #ccc;border-radius:6px;padding:6px 16px;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;line-height:1.4;outline:none;transition:background .12s,color .12s,border-color .12s}
.ftp-super-batch-btn-add:hover{background:#f5f5f5;color:#000;border-color:#999}
/* V3.6: pill halves — vibrant + bold + white text (overrides V3.5's grey-B variant) */
.ftp-super-pill-half{color:#fff;font-weight:700}
.ftp-super-pill-half-b{background:transparent;color:#fff}
/* V3.111 item A: pill halves equal height (stretch plus block svg removes the inline baseline bump) */
.ftp-super-pill-half{align-self:stretch}
.ftp-super-pill-half svg{display:block}
.ftp-super-batch-pills-clickable{cursor:pointer}
.ftp-super-batch-pills-clickable:hover{filter:brightness(1.05)}

/* === V3.7 CSS — single-theme combo-super redesign (overrides V3.6) === */
/* Cluster: auto-sized two-column grid, single-line per column (no wrap). */
.ftp-super-cluster{display:grid!important;grid-template-columns:auto 1px auto;gap:6px;justify-content:center;align-items:stretch;background:#fff;border:1.5px solid #d0d0d0;border-radius:10px;padding:10px 8px;flex-wrap:nowrap}
.ftp-super-cluster-col{display:flex;flex-direction:column;gap:5px;align-items:center;flex:0 0 auto;min-width:0}
.ftp-super-cluster-divider{width:1px;height:auto;min-height:38px;background:rgba(0,0,0,.08);margin:0;align-self:stretch;flex-shrink:0}
.ftp-super-cluster-prompt{font-size:11px;font-style:italic;color:#999;text-align:center;padding:0;margin:0;min-height:14px;line-height:14px}
.ftp-super-cluster-toggles{display:flex;flex-wrap:nowrap;gap:3px;justify-content:center;align-items:center}
/* Toggles: smaller / tighter for single-line fit. */
.ftp-super-toggle-opt{padding:5px 9px;font-size:11px;font-weight:500;border-radius:999px;border:0;line-height:1.2;white-space:nowrap}
.ftp-super-toggle-opt:hover:not(.ftp-super-toggle-opt-active){filter:brightness(1.04)}
.ftp-super-toggle-opt-active{font-weight:500!important;border:0!important;background:transparent}
.ftp-super-toggle-opt-faded{opacity:.4}
.ftp-super-toggle-opt-greyed{display:none}
/* Base toggles: neutral cream (no flavour colour). Icon prefix renders inline. */
.ftp-super-toggle-opt-base{background:#f6efe3;color:#5a4520;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:5px 10px}
.ftp-super-toggle-opt-base.ftp-super-toggle-opt-active{background:#cdb88e;color:#2c1f0a}
.ftp-super-toggle-opt-base svg{width:13px;height:13px;flex-shrink:0;display:inline-block;vertical-align:middle}
/* Pill (confirmed + building State 3): joined halves, full pill rounding, uniform widths via min-width. */
.ftp-super-batch-pills{border-radius:999px;border:0;overflow:hidden;align-items:stretch}
.ftp-super-pill-half{padding:7px 12px;font-size:12px;line-height:1;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.ftp-super-pill-half:first-of-type{border-right:0}
.ftp-super-pill-half-flavour{min-width:84px;color:#fff;font-weight:500;border-radius:999px 0 0 999px}
.ftp-super-pill-half-b,.ftp-super-pill-half-base{background:#f6efe3;color:#5a4520;font-weight:500;min-width:95px;border-radius:0 999px 999px 0;display:inline-flex;align-items:center;justify-content:center;gap:5px}
/* V3.32: on phones drop the desktop min-width floor so the abbreviated confirmed pills actually
   shrink (equalizePills/grid then size the halves to the short content, not the full-name minimum). */
@media (max-width:767px){
.ftp-super-pill-half-flavour{min-width:0}
.ftp-super-pill-half-b,.ftp-super-pill-half-base{min-width:0}
}
.ftp-super-pill-half svg{width:13px;height:13px;flex-shrink:0;display:inline-block;vertical-align:middle}
/* Qty advisory polish (V3.6 placement preserved — appended into qty form-group). */
.ftp-super-qty-warn{background:#fff4d6;border-left:3px solid #d4a73a;color:#6b4d10;border-radius:0 6px 6px 0;padding:8px 12px;font-size:12px;line-height:1.5}

/* === V3.8: cycler replaces multi-toggle (overrides V3.6/V3.7 cluster CSS) === */
/* Reserved advisory slot — no scroll jump on show/hide */
.ftp-super-advisory-slot{min-height:0;padding:0;transition:min-height .15s ease}
.ftp-super-advisory-slot:not(:empty){min-height:42px;padding:4px 0 6px}
/* Cycler row container */
.ftp-super-cyc-row{display:flex;align-items:center;gap:6px;padding:10px 8px;background:#fff;border-radius:10px;border:1.5px solid #d0d0d0;flex-wrap:wrap}
/* Cycler unit (one per side) — joined arrows + current pill */
.ftp-super-cyc{display:-webkit-inline-flex;display:inline-flex;align-items:stretch;border-radius:999px;overflow:hidden;line-height:1}
/* Arrows — neutral grey, do NOT change with pill colour */
.ftp-super-cyc-arrow{background:#e8e8e8 !important;border:0 !important;padding:0 9px !important;cursor:pointer;display:-webkit-inline-flex;display:inline-flex;align-items:center;justify-content:center;color:#555 !important;outline:none !important;font-family:inherit !important}
.ftp-super-cyc-arrow:hover{background:#d8d8d8 !important}
.ftp-super-cyc-arrow svg{width:11px;height:11px;display:block}
/* Current selection pill body */
.ftp-super-cyc-current{padding:8px 12px;font-size:12px;font-weight:500;display:-webkit-inline-flex;display:inline-flex;align-items:center;gap:5px;min-width:84px;justify-content:center;white-space:nowrap}
.ftp-super-cyc-current svg{width:14px;height:14px;flex-shrink:0}
.ftp-super-cyc-flavour .ftp-super-cyc-current{color:#fff}
.ftp-super-cyc-base{background:#f6efe3;color:#5a4520}
.ftp-super-cyc-clickable{cursor:pointer}
/* Divider between two cyclers */
.ftp-super-cyc-divider{width:1px;align-self:stretch;background:rgba(0,0,0,.1);margin:4px 2px;flex-shrink:0}
/* Add button — V3.8 round pill style (overrides V3.6 square) */
.ftp-super-batch-btn-add{background:#fff !important;border:.5px solid rgba(0,0,0,.2) !important;border-radius:999px !important;padding:7px 14px !important;font-size:12px !important;font-weight:500 !important;color:#444 !important;cursor:pointer !important;margin-left:auto !important;transition:opacity .15s !important;font-family:inherit !important;line-height:1.2 !important;outline:none !important}
.ftp-super-batch-btn-add:hover:not([disabled]){background:#f5f5f5 !important;color:#000 !important;border-color:#999 !important}
.ftp-super-batch-btn-add.ftp-super-add-pending{font-weight:700 !important;color:#2f2f2f !important}
.ftp-super-batch-btn-add.ftp-super-add-settled{opacity:.5 !important;color:#9a9a9a !important;border-color:rgba(0,0,0,.12) !important}
.ftp-super-batch-btn-add[disabled]{opacity:.4 !important;cursor:not-allowed !important}
/* Popup (only used when N > 5) */
.ftp-super-popup{background:#fff;border:1px solid rgba(0,0,0,.15);border-radius:8px;padding:6px;margin:6px 0 0;box-shadow:0 4px 14px rgba(0,0,0,.12);display:flex;flex-direction:column;gap:2px;max-height:220px;overflow-y:auto}
.ftp-super-popup-item{background:transparent;border:0;padding:8px 12px;text-align:left;font-family:inherit;font-size:13px;cursor:pointer;border-radius:4px;color:#444;outline:none}
.ftp-super-popup-item:hover{background:#f5f5f5}
.ftp-super-popup-item-current{background:#e8e8e8;font-weight:500}
.ftp-super-popup.ftp-jump-grid{display:-webkit-grid;display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));gap:4px;max-width:472px;max-height:140px;overflow-y:auto}
.ftp-super-popup.ftp-jump-grid .ftp-super-popup-item{text-align:left;padding:7px 4px;font-weight:500}
.ftp-super-popup.ftp-jump-priced{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.ftp-super-popup.ftp-jump-priced .ftp-super-popup-item{padding:7px 10px}
.ftp-super-popup.ftp-jump-flow{display:-webkit-flex;display:flex;-webkit-flex-direction:row;flex-direction:row;-webkit-flex-wrap:wrap;flex-wrap:wrap;gap:4px;max-height:140px;overflow-y:auto;overflow-x:hidden}
.ftp-super-popup.ftp-jump-flow .ftp-super-popup-item{-webkit-flex:0 1 auto;flex:0 1 auto;max-width:100%;text-align:left;padding:7px 11px;font-weight:500}
.ftp-ss-jchip.ftp-ss-jbin{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;color:#c62828}
.ftp-ss-jbin svg{width:16px;height:16px}
/* Notice (validation messages inside building row) */
.ftp-super-batch-building .ftp-super-notice{display:none;color:#856404;font-size:12px;margin:6px 0 0;padding:6px 10px;background:#fff3cd;border-left:3px solid #ffc107;border-radius:3px}
.ftp-super-batch-building .ftp-super-notice.ftp-show{display:block}
/* Building row spacing */
.ftp-super-batch-building{margin:0 0 10px;background:#fff;border:1px solid #ccc;border-radius:10px;padding:10px 8px;box-sizing:border-box}
/* Confirmed pill stack — CSS grid for uniform widths across rows */
.ftp-super-pill-stack{display:grid;grid-template-columns:max-content max-content auto;column-gap:0;row-gap:6px;align-items:center;margin:0}
.ftp-tri-stack{display:block}
.ftp-super-pill-stack .ftp-super-pill-half{padding:7px 14px;font-size:12px;font-weight:500;line-height:1;display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap;border-right:0}
.ftp-super-pill-stack .ftp-super-pill-half-flavour{color:#fff;font-weight:500;border-radius:999px 0 0 999px}
.ftp-super-pill-stack .ftp-super-pill-half-base{background:#f6efe3;color:#5a4520;border-radius:0 999px 999px 0}
.ftp-super-pill-stack .ftp-super-pill-half svg{width:13px;height:13px;flex-shrink:0}
.ftp-super-pill-actions{display:inline-flex;gap:6px;padding-left:8px}
/* Bin button — V3.8 round style (overrides V3.6 square) */
.ftp-super-pill-stack .ftp-super-batch-btn-remove-bin,.ftp-super-batch-building .ftp-super-batch-btn-remove-bin{background:#fff !important;border:.5px solid rgba(0,0,0,.2) !important;border-radius:999px !important;width:30px !important;height:30px !important;padding:0 !important;display:-webkit-inline-flex;display:inline-flex;align-items:center;justify-content:center;color:#666 !important;cursor:pointer !important;outline:none !important}
.ftp-super-pill-stack .ftp-super-batch-btn-remove-bin:hover,.ftp-super-batch-building .ftp-super-batch-btn-remove-bin:hover{color:#c62828 !important;background:#fff5f5 !important;border-color:#e0bcbc !important}
.ftp-super-pill-stack .ftp-super-batch-btn-remove-bin svg,.ftp-super-batch-building .ftp-super-batch-btn-remove-bin svg{width:15px;height:15px;display:block}

/* === V3.9 additions === */
/* Visual disabled state for Add button (still clickable so toast fires) */
.ftp-super-batch-btn-add-disabled{opacity:.4 !important;cursor:not-allowed !important}
.ftp-super-batch-btn-add-disabled:hover{background:#fff !important;color:#444 !important;border-color:rgba(0,0,0,.2) !important}
/* Floating toast (2-second auto-dismiss) for duplicate/invalid Add */
.ftp-super-toast{position:fixed;bottom:24px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);background:#fff4d6;border-left:3px solid #d4a73a;color:#6b4d10;padding:10px 18px;border-radius:6px;font-family:'Montserrat',system-ui,-apple-system,sans-serif;font-size:13px;font-weight:500;line-height:1.5;box-shadow:0 4px 20px rgba(0,0,0,.18);z-index:99999;pointer-events:none;max-width:340px;-webkit-animation:ftp-super-toast-fade 2.4s forwards;animation:ftp-super-toast-fade 2.4s forwards}
@-webkit-keyframes ftp-super-toast-fade{0%{opacity:0;-webkit-transform:translate(-50%,12px);transform:translate(-50%,12px)}10%{opacity:1;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}85%{opacity:1;-webkit-transform:translate(-50%,0);transform:translate(-50%,0)}100%{opacity:0;-webkit-transform:translate(-50%,-8px);transform:translate(-50%,-8px)}}
@keyframes ftp-super-toast-fade{0%{opacity:0;transform:translate(-50%,12px)}10%{opacity:1;transform:translate(-50%,0)}85%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-8px)}}
/* V3.9: remove transition on advisory slot — was a possible source of QAP layout jitter */
.ftp-super-advisory-slot{transition:none !important}

/* === V3.33: minus-as-bin on confirmed rows (mobile compaction) ===
   Desktop: qty-1 minus looks disabled (the separate bin handles removal).
   Mobile (max-width 767px): separate bin hidden; qty-1 minus shows a trash glyph and removes. */
.ftp-tri-step-btn.ftp-tri-step-minus1{opacity:.4;cursor:not-allowed}
.ftp-tri-step-btn.ftp-tri-step-minus1 .ftp-step-g-bin{display:none}
.ftp-tri-step-btn.ftp-tri-step-minus1:hover{background:#fff}
.ftp-tri-step-btn.ftp-tri-step-minus1 .ftp-step-g-bin svg{width:15px;height:15px;display:block}
@media (max-width:767px){
.ftp-tri-step-btn.ftp-tri-step-minus1{opacity:1;cursor:pointer}
.ftp-tri-step-btn.ftp-tri-step-minus1 .ftp-step-g-minus{display:none}
.ftp-tri-step-btn.ftp-tri-step-minus1 .ftp-step-g-bin{display:-webkit-inline-flex;display:inline-flex;align-items:center;justify-content:center}
.ftp-tri-step-btn.ftp-tri-step-minus1:hover{color:#c62828;background:#fff5f5}
}

/* === V3.34: {stepper} single-select picker bar === */
.ftp-stepper-bar{display:-webkit-flex;display:flex;align-items:stretch;border:1px solid #ccc;border-radius:6px;overflow:hidden;background:#fff}
.ftp-stepper-line{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;gap:10px}
.ftp-stepper-line .ftp-stepper-bar{-webkit-flex:1 1 auto;flex:1 1 auto}
.ftp-stepper-line .ftp-stepper-bar-narrow{-webkit-flex:0 1 auto;flex:0 1 auto;min-width:0}
@media (max-width:767px){.ftp-stepper-line .ftp-stepper-bar-narrow .ftp-tri-step-btn{width:48px}}
.ftp-stepper-inlineprice{font-size:14px;font-weight:500;color:#444;white-space:nowrap;-webkit-flex:0 0 auto;flex:0 0 auto}
.ftp-stepper-bar .ftp-tri-step-btn{height:34px;width:60px}
.ftp-stepper-val{-webkit-flex:1 1 auto;flex:1 1 auto;min-width:0;border:none;background:#fff;color:#333;font-size:14px;font-weight:500;font-family:inherit;text-align:left;padding:0 12px;height:34px;cursor:pointer;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:flex-start;justify-content:flex-start;gap:4px;border-left:1px solid #eee;border-right:1px solid #eee;outline:none;line-height:1.2}
.ftp-stepper-val:hover{background:#f7f7f7}
.ftp-stepper-val-empty{color:#777;font-weight:400}
.ftp-stepper-val-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* v3.115: chevron jump affordance on every picker's value button (rotated-border line chevron) */
.ftp-stepper-val::after{content:"";display:inline-block;width:6px;height:6px;margin-left:6px;border-right:2px solid #b08a2a;border-bottom:2px solid #b08a2a;-webkit-transform:rotate(45deg) translateY(-2px);transform:rotate(45deg) translateY(-2px);flex-shrink:0}
.ftp-ss-taphint,.ftp-cb-taphint,.ftp-stepper-val-tap{display:none!important}
/* v3.120: committed +$ prices match {stepper} (weight 500, colour #444); sizes unchanged */
.ftp-stepper-inlineprice,.ftp-tri-price,.ftp-ts-price{font-weight:500;color:#444;font-family:inherit}
/* live-preview prices inside the SS/CS build steppers keep a distinct colour as a visual cue */
.ftp-ss-liveprice,.ftp-tri-build-price{color:#6b4a2e;font-weight:500;font-family:inherit}
.ftp-stepper-val-tap{font-size:9px;color:#999;letter-spacing:.3px;-webkit-flex:0 0 auto;flex:0 0 auto;white-space:nowrap}
.ftp-stepper-caret{color:#888;-webkit-flex-shrink:0;flex-shrink:0;display:-webkit-inline-flex;display:inline-flex;align-items:center}
/* v3.56 #4: tap-to-add textarea collapse ({tta}) */
.ftp-tta-collapsed label.control-label,.ftp-tta-collapsed textarea{display:none !important}
.ftp-optcap-warn{display:none;font-size:11px;color:#cc3333;margin-top:4px;line-height:1.3}
.ftp-optcap-warn.ftp-show{display:block}
.ftp-tta-collapsed .ftp-optcap-warn{display:none !important}
.ftp-tta-trigger{display:block;width:100%;box-sizing:border-box;text-align:left;background:#fff;border:1px solid #ccc;border-radius:6px;color:#333;font-family:inherit;font-size:14px;font-weight:500;padding:11px 14px;cursor:pointer;outline:none;-webkit-transition:background .12s,border-color .12s;transition:background .12s,border-color .12s}
.ftp-tta-trigger:hover{border-color:#999}
/* ── v3.51 STEPPER SUPER ─────────────────────────────────────────── */
/* One descriptive axis (Style tiles) + a hero qty stepper over a discrete ladder, multi-line
   build. Reuses .ftp-stepper-bar / .ftp-tri-step-btn / .ftp-stepper-val / .ftp-super-popup /
   .ftp-tri-confirmed-row / .ftp-tri-price / .ftp-tri-serves; adds the .ftp-ss-* surface below. */
.ftp-ss-build{margin-top:6px;background:#fff;border:1px solid #ccc;border-radius:10px;padding:10px 8px;box-sizing:border-box}
.ftp-flow-box .ftp-super-batch-building,.ftp-flow-box .ftp-ss-build{border:0;border-radius:0;padding-top:0}
.ftp-flow-box .ftp-super-batches{margin-top:0}
.ftp-ss-stack{margin-top:4px}
.ftp-ss-sublabel{font-size:11.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#b09a72;margin:14px 0 8px}
.ftp-ss-header{font-size:12.5px;font-weight:600;color:#5a4520;margin:0 0 9px;letter-spacing:.01em}
.ftp-ss-tiles{display:-webkit-grid;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
@media(max-width:339px){.ftp-ss-tiles{grid-template-columns:1fr 1fr}}
.ftp-ss-tile{position:relative;background:#f6efe3;border:1.5px solid #e6d8c2;border-radius:12px;padding:9px 4px 8px;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;gap:5px;min-height:74px;cursor:pointer;color:#5a4520;font-family:inherit;outline:none;-webkit-transition:background .12s,border-color .12s;transition:background .12s,border-color .12s}
.ftp-ss-tile:hover{border-color:#cdb892}
.ftp-ss-sel{background:#e8d4af !important;border-color:#2b2b2b !important;-webkit-box-shadow:inset 0 0 0 2px #2b2b2b;box-shadow:inset 0 0 0 2px #2b2b2b}
.ftp-ss-pill.ftp-ss-rowpill{background:#f6dca0;border-color:#c8901f;gap:4px;-webkit-flex:0 1 auto;flex:0 1 auto;width:auto;min-width:0;overflow:hidden}
.ftp-ss-rqty{font-weight:500;color:#5a4520;-webkit-flex:none;flex:none;font-size:11.7px}
.ftp-ss-qtychip{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;min-width:40px;background:#ece1cd;border:1px solid #ddcfb6;border-radius:999px;padding:4px 11px;font-weight:500;font-size:13px;color:#5a4520;-webkit-flex:0 0 auto;flex:0 0 auto;box-sizing:border-box}
.ftp-ss-rowwt{font-size:10.8px;color:#6f5520;-webkit-flex:0 0 auto;flex:0 0 auto}
.ftp-ss-wtlabel{display:none}
.ftp-ss-tile .ftp-ss-ic,.ftp-ss-tile svg{width:26px;height:26px;color:#5a4520}
.ftp-ss-lbl{font-size:12.5px;font-weight:500;line-height:1.15;text-align:center;height:30px;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}
.ftp-ss-tick{position:absolute;top:6px;right:6px;width:15px;height:15px;border-radius:50%;background:#c8901f;color:#fff;display:none;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-size:9px}
.ftp-ss-editing .ftp-ss-tick{display:-webkit-flex;display:flex}
.ftp-ss-stepper{margin-top:2px}
.ftp-ss-stepper.ftp-stepper-bar .ftp-tri-step-btn.ftp-ss-step{width:38px;height:38px;font-size:18px}
.ftp-ss-stepper .ftp-tri-step-btn:first-child{border-top-left-radius:6px;border-bottom-left-radius:6px}
.ftp-ss-stepper .ftp-tri-step-btn:last-child{border-top-right-radius:6px;border-bottom-right-radius:6px}
.ftp-ss-stepper .ftp-stepper-val.ftp-ss-val{height:38px;padding:0 10px;text-align:center;-webkit-justify-content:center;justify-content:center}
.ftp-ss-stepper .ftp-stepper-val.ftp-ss-val{min-width:120px}
@media(max-width:767px){.ftp-ss-stepper .ftp-stepper-val.ftp-ss-val{min-width:64px}}
.ftp-ss-val .ftp-stepper-val-text{font-size:15px;font-weight:500;color:#3a2a14}
.ftp-ss-strip .ftp-ss-stepper.ftp-stepper-bar{border:0}
.ftp-ss-strip .ftp-ss-stepper.ftp-stepper-bar .ftp-tri-step-btn.ftp-ss-step{background:#e8e8e8;color:#555}
.ftp-ss-strip .ftp-ss-stepper.ftp-stepper-bar .ftp-stepper-val.ftp-ss-val{background:#f5f5f5;border-left:0;border-right:0}
.ftp-ss-hint{font-size:10.5px;font-weight:500;color:#b09a72;-webkit-flex-shrink:0;flex-shrink:0;white-space:nowrap}
.ftp-ss-jump{margin-top:8px}
.ftp-ss-jhead{grid-column:1/-1;font-size:12.5px;font-weight:600;color:#5a4520;padding:1px 4px 5px;letter-spacing:.02em}
.ftp-ss-strip{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;gap:8px;-webkit-flex-wrap:wrap;flex-wrap:wrap;margin-top:12px}
.ftp-ss-strip .ftp-ss-stepper{margin-top:0}
.ftp-ss-strip-right{margin-left:auto;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;gap:10px}
.ftp-ss-liveprice{font-size:13px;font-weight:500;color:#6b4a2e;white-space:nowrap}
.ftp-ss-jumphint{text-align:left;font-size:10.5px;font-weight:500;color:#b09a72;margin:6px 2px 0}
.ftp-stepper-jumphint{text-align:center;font-size:10.5px;font-weight:500;color:#b09a72;margin:6px 2px 0}
.ftp-ss-add{background:#fff;border:.5px solid rgba(0,0,0,.2);border-radius:999px;padding:7px 15px;font-size:12.5px;font-family:inherit;line-height:1.2;white-space:nowrap;cursor:pointer;outline:none;-webkit-transition:opacity .18s,color .12s,border-color .12s;transition:opacity .18s,color .12s,border-color .12s}
.ftp-ss-add.ftp-ss-pending{font-weight:700;color:#2f2f2f;opacity:1}
.ftp-ss-add.ftp-ss-settled{font-weight:500;color:#9a9a9a;opacity:.5;border-color:rgba(0,0,0,.12)}
.ftp-ss-add:hover{background:#f5f5f5;border-color:#999}
.ftp-ss-add.ftp-ss-pending:hover{color:#000}
.ftp-ss-trash{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;width:40px;height:36px;background:#fff;border:1px solid #e0b4b4;border-radius:8px;color:#b84a4a;cursor:pointer;outline:none;-webkit-flex:none;flex:none}
.ftp-ss-trash:hover{background:#fff5f5;border-color:#d09090}
.ftp-ss-trash svg{width:18px;height:18px;display:block}
.ftp-ss-row-cur .ftp-ss-rowpill{box-shadow:inset 0 0 0 2px #2b2b2b;border-color:#2b2b2b}
.ftp-ss-step[data-ss-dir="1"]:not(:disabled):not(.ftp-cb-step){animation:ftpPlusGlimmer 1.9s ease-in-out infinite}
@keyframes ftpPlusGlimmer{0%,100%{box-shadow:0 0 0 0 rgba(202,162,63,0)}50%{box-shadow:0 0 5px 1px rgba(202,162,63,.55)}}
.ftp-ss-rowpill.ftp-ss-flash{animation:ftpPillFlash .4s ease}
@keyframes ftpPillFlash{0%{filter:brightness(1);transform:scale(1)}35%{filter:brightness(1.15);transform:scale(1.04)}100%{filter:brightness(1);transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.ftp-ss-step[data-ss-dir="1"]:not(:disabled),.ftp-ss-rowpill.ftp-ss-flash{animation:none}}
.ftp-ss-list{margin-top:6px;display:block}
.ftp-ss-row{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;gap:8px;padding:2px 0}
.ftp-ss-row:last-child{border-bottom:none}
.ftp-ss-pill{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;gap:7px;background:#f1e7d7;border:1px solid #e6d8c2;border-radius:999px;padding:3px 10px 3px 7px;-webkit-flex:0 1 124px;flex:0 1 124px;min-width:64px;box-sizing:border-box}
.ftp-ss-pill .ftp-ss-ic,.ftp-ss-pill svg{width:17px;height:17px;color:#5a4520;-webkit-flex:none;flex:none}
.ftp-ss-pname{font-size:11.7px;font-weight:600;color:#4a3820;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-flex:1 1 auto;flex:1 1 auto;min-width:0}
.ftp-ss-pname .ftp-pa{display:none}
.ftp-ss-rval{min-width:50px;font-weight:500;line-height:30px}
.ftp-ss-stepper-row .ftp-tri-step-btn{height:30px}
.ftp-ss-stepwrap{display:-webkit-inline-flex;display:inline-flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:stretch;align-items:stretch}
.ftp-ss-taphint{text-align:center;font-size:11px;font-weight:600;line-height:1;color:#999;letter-spacing:.3px;margin-top:3px}
.ftp-ss-rval small{font-weight:500;color:#b09a72;margin-left:3px;font-size:10px}
.ftp-ss-row .ftp-tri-price{margin-left:auto;width:72px;text-align:right}
.ftp-ss-serves{margin-top:14px}
/* v3.57 #1: mobile layout (stepper super only) */
@media (max-width:767px){
.ftp-ss-tile{padding:8px 2px 7px;min-height:66px;gap:4px;border-radius:10px}
.ftp-ss-tile .ftp-ss-ic,.ftp-ss-tile svg{width:22px;height:22px}
.ftp-ss-lbl{font-size:11px;height:28px}
.ftp-ss-strip{-webkit-flex-wrap:wrap;flex-wrap:wrap}
.ftp-ss-strip-right{margin-left:0}
.ftp-ss-unit{display:none}
.ftp-ss-rval small{display:none}
.ftp-ss-row .ftp-tri-price{margin-left:0;width:auto;text-align:left;-webkit-flex-shrink:0;flex-shrink:0}
.ftp-tri-confirmed-row.ftp-ss-row{padding:0;-webkit-flex-wrap:nowrap;flex-wrap:nowrap}
.ftp-ss-row .ftp-ss-pill{-webkit-flex:0 0 auto;flex:0 0 auto;width:auto;min-width:0}
.ftp-ss-pname .ftp-pf{display:none}
.ftp-ss-pname .ftp-pa{display:-webkit-inline-flex;display:inline-flex}
}
/* ── v3.74 COMBO SUPER: 2 stage tile selector (flavour colour tiles then base icon tiles) ── */
.ftp-cb-header{font-size:12.5px;font-weight:600;color:#5a4520;margin:0 0 9px;letter-spacing:.01em}
.ftp-cb-header-todo{color:#cc3333}
.ftp-cb-back{background:none;border:none;color:#8a7559;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;padding:0;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;gap:5px;outline:none;white-space:nowrap;-webkit-flex:0 0 auto;flex:0 0 auto}
.ftp-cb-header-row{display:-webkit-flex;display:flex;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;align-items:center;gap:10px}
.ftp-cb-back:hover{color:#5a4520}
.ftp-cb-back-ar{font-size:15px;line-height:1}
.ftp-cb-thirdrow{margin-top:12px;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;gap:8px}
.ftp-cb-thirdrow .ftp-cb-binbox{margin-left:auto;-webkit-align-self:auto;align-self:auto;justify-self:auto}
.ftp-cb-stepbar{display:-webkit-inline-flex;display:inline-flex;border:1px solid #ccc;border-radius:8px;overflow:hidden;background:#fff}
.ftp-cb-stepwrap{display:-webkit-inline-flex;display:inline-flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center}
.ftp-cb-step{background:#fff;border:none;color:#555;width:38px;height:38px;font-size:18px;line-height:1;cursor:pointer;font-family:inherit;outline:none}
.ftp-cb-step:disabled{opacity:.35;cursor:default}
.ftp-cb-val{background:#fff;border:none;border-left:1px solid #eee;border-right:1px solid #eee;min-width:120px;height:38px;font-size:13px;font-weight:600;color:#333;cursor:pointer;font-family:inherit;outline:none;padding:0 8px}
@media(max-width:767px){.ftp-cb-val{min-width:64px}}
.ftp-cb-taphint{font-size:10.5px;color:#b09a72;text-align:center;margin-top:3px}
.ftp-cb-jump{margin-top:8px;overflow:hidden;border:1px solid #ecdcc0;border-radius:8px;background:#fffdf8}
.ftp-cb-jinner{display:-webkit-grid;display:grid;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:4px;max-height:130px;overflow-y:auto;padding:0 6px 6px;background:#fffdf8}
.ftp-cb-jhead{grid-column:1/-1;font-size:12.5px;font-weight:600;color:#5a4520;padding:7px 4px 5px;letter-spacing:.02em;position:-webkit-sticky;position:sticky;top:0;background:#fffdf8}
.ftp-cb-jhead.ftp-cb-jtodo{color:#cc3333}
.ftp-cb-jsub{color:#5a4520}
.ftp-cb-jchip{text-align:left;padding:8px 6px;font-size:13px;font-weight:500;border:1px solid #e6d8c2;border-radius:6px;background:#fff;color:#5a4520;cursor:pointer;font-family:inherit;outline:none}
.ftp-cb-jchip.ftp-cb-jcur{background:#e8e8e8;border-color:#cdb892}
.ftp-cb-readout{font-size:11.3px;color:#6a5a44;font-weight:500;white-space:nowrap}
.ftp-cb-rq{font-weight:750;font-size:1.33em}
.ftp-cb-readout .ftp-ra{display:none}
@media (max-width:767px){.ftp-cb-readout .ftp-rf{display:none}.ftp-cb-readout .ftp-ra{display:inline}}
.ftp-cb-tiles{display:-webkit-grid;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
@media(max-width:339px){.ftp-cb-tiles{grid-template-columns:1fr 1fr}}
.ftp-cb-tile{position:relative;border:1.5px solid #e6d8c2;border-radius:12px;padding:9px 4px 8px;display:-webkit-flex;display:flex;-webkit-flex-direction:column;flex-direction:column;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;gap:5px;min-height:64px;cursor:pointer;font-family:inherit;outline:none;-webkit-transition:border-color .12s,box-shadow .12s,filter .12s;transition:border-color .12s,box-shadow .12s,filter .12s}
.ftp-cb-tile-flavour{color:#fff}
.ftp-cb-tile-base{background:#f6efe3;color:#5a4520}
.ftp-cb-tile:hover{filter:brightness(1.04)}
.ftp-cb-tile-base:hover{border-color:#cdb892;filter:none}
.ftp-cb-tile-flavour.ftp-cb-sel{-webkit-box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #2b2b2b;box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #2b2b2b}
.ftp-cb-lbl{font-size:12.5px;font-weight:600;line-height:1.15;text-align:center}
.ftp-cb-tile-base .ftp-cb-lbl{font-weight:500}
.ftp-cb-tile svg{width:24px;height:24px}
.ftp-cb-tile-base svg{color:#5a4520}
.ftp-cb-tick{position:absolute;top:6px;right:6px;width:15px;height:15px;border-radius:50%;background:#fff;color:#2b2b2b;display:none;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;font-size:9px}
.ftp-cb-tile.ftp-cb-done .ftp-cb-tick{display:-webkit-flex;display:flex}
.ftp-cb-tile-base.ftp-cb-sel{background:#efe1c8;-webkit-box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #2b2b2b;box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #2b2b2b}
.ftp-cb-pl{display:block;font-size:10.5px;font-weight:700;line-height:1;margin-top:1px;letter-spacing:.01em;opacity:.95}
.ftp-cb-pl .ftp-cb-plu{opacity:.65;font-weight:600}
@media (max-width:767px){.ftp-cb-pl{font-size:9.5px}}
.ftp-cb-addtile{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;gap:8px;width:100%;border:1.5px dashed #d3b3ba;background:#fef6f7;border-radius:12px;padding:16px 8px;font-size:14px;font-weight:600;color:#a23b4e;cursor:pointer;font-family:inherit;line-height:1.2;outline:none;-webkit-transition:border-color .12s,background .12s;transition:border-color .12s,background .12s}
.ftp-cb-addtile:hover{border-color:#c79aa4;background:#fdeef1}
.ftp-cb-addtile-plus{font-size:19px;line-height:1;font-weight:700}
.ftp-cb-buildwrap{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;gap:9px;margin:0 0 12px;-webkit-flex-wrap:wrap;flex-wrap:wrap}
.ftp-cb-buildcap{font-size:11px;color:#b3a890;text-transform:uppercase;letter-spacing:.05em;font-weight:600;-webkit-flex:0 0 auto;flex:0 0 auto}
.ftp-cb-buildpill{display:-webkit-inline-flex;display:inline-flex;border-radius:999px;overflow:hidden;vertical-align:middle}
.ftp-cb-buildpill .ftp-super-pill-half{padding:7px 14px}
.ftp-cb-buildslot{color:#b3a890;background:#f4eee2;border-left:1.5px dashed #cdbfa3;font-weight:600;font-style:italic}
.ftp-cb-flypill{display:-webkit-inline-flex;display:inline-flex}

@media (max-width:767px){.ftp-cb-tile{padding:8px 2px 7px;min-height:58px;gap:4px;border-radius:10px}.ftp-cb-tile svg{width:22px;height:22px}.ftp-cb-lbl{font-size:11px}}
/* V3.111 item E: clone the stepper super fixed height label box, scoped to grouped pickers so one line and two line tiles align; 420 is ungrouped and untouched */
.ftp-cb-grouped .ftp-cb-lbl{height:30px;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}
@media (max-width:767px){.ftp-cb-grouped .ftp-cb-lbl{height:28px}}
/* SVG icons carry class="ftp-ss-ic"; stroke=currentColor so the selected tile colour applies. */
/* === v3.75 deltas === */
@media (min-width:768px){
.ftp-ss-row .ftp-ss-pill{display:-webkit-grid;display:grid;-webkit-box-align:center;-webkit-align-items:center;align-items:center;grid-template-columns:var(--ftp-ss-qw,auto) 17px var(--ftp-ss-nw,auto) var(--ftp-ss-kw,auto)}
.ftp-ss-row .ftp-ss-rqty,.ftp-ss-row .ftp-ss-pname,.ftp-ss-row .ftp-ss-rowwt{-webkit-flex:none;flex:none;white-space:nowrap}
}
@media (max-width:767px){.ftp-ss-trash{width:30px;height:27px}.ftp-ss-trash svg{width:13.5px;height:13.5px}}
.ftp-ss-jump-pending .ftp-ss-jhead{font-size:12.5px;color:#cc3333}
.ftp-tri-confirmed-row .ftp-super-batch-btn-remove-bin{-webkit-order:-1;order:-1}
@media (max-width:767px){.ftp-tri-confirmed-row .ftp-super-batch-btn-remove-bin[data-action="tri-bin"]{width:24px !important;height:24px !important}.ftp-tri-confirmed-row .ftp-super-batch-btn-remove-bin[data-action="tri-bin"] svg{width:12px;height:12px}}
@-webkit-keyframes ftpCbFade{from{opacity:.15}to{opacity:1}}
@keyframes ftpCbFade{from{opacity:.15}to{opacity:1}}
.ftp-tri-confirmed-row.ftp-cb-flash .ftp-tri-confirmed-pill{-webkit-animation:ftpCbFade .42s ease;animation:ftpCbFade .42s ease}
.ftp-tri-confirmed-row.ftp-cb-cur .ftp-tri-confirmed-pill{-webkit-box-shadow:0 0 0 3px #2b2b2b;box-shadow:0 0 0 3px #2b2b2b}
.ftp-cb-binbox{grid-column:-2 / -1;-webkit-align-self:end;align-self:end;justify-self:end;display:-webkit-inline-flex;display:inline-flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;width:40px;height:36px;background:#fff;border:1px solid #e0b4b4;border-radius:8px;color:#b84a4a;cursor:pointer;outline:none}
.ftp-cb-binbox:hover{background:#fff5f5;border-color:#d09090}
.ftp-cb-binbox svg{width:18px;height:18px;display:block}
@media(prefers-reduced-motion:reduce){.ftp-tri-confirmed-row.ftp-cb-flash .ftp-tri-confirmed-pill{-webkit-animation:none;animation:none}}
/* v3.115 Toggle / Toggle-Super — standard options box, shared stepper */
/* v3.118: toggle-super carbon-copies the CS stepper (.ftp-cb-step / .ftp-cb-val), compact-sized */
.ftp-ts-row .ftp-stepper-bar{-ms-flex-negative:0;flex-shrink:0}
.ftp-ts-row .ftp-cb-step{width:30px;height:32px;font-size:16px}
.ftp-ts-row .ftp-cb-val.ftp-ts-val{min-width:54px;height:32px;font-size:13px;padding:0 8px}
.ftp-ts-box{margin-top:6px;background:#fff;border:1px solid #ccc;border-radius:10px;padding:4px 10px;box-sizing:border-box}
.ftp-ts-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:6px 0;min-height:36px}
.ftp-ts-row + .ftp-ts-row{border-top:1px solid #f0ebe5}
.ftp-ts-box.ftp-ts-alloff{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px 18px}
.ftp-ts-box.ftp-ts-alloff .ftp-ts-row{border-top:none;padding:4px 0;min-height:0;width:auto}
.ftp-ios-switch{position:relative;display:inline-block;width:44px;height:26px;-ms-flex-negative:0;flex-shrink:0}
.ftp-ios-switch input{opacity:0;width:0;height:0;position:absolute}
.ftp-ios-knob{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ccc;-webkit-transition:.25s;transition:.25s;border-radius:26px}
.ftp-ios-knob:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background:#fff;-webkit-transition:.25s;transition:.25s;border-radius:50%;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.3);box-shadow:0 1px 2px rgba(0,0,0,.3)}
.ftp-ios-switch input:checked + .ftp-ios-knob{background:#d4a017}
.ftp-ios-switch input:checked + .ftp-ios-knob:before{-webkit-transform:translateX(18px);transform:translateX(18px)}
.ftp-ts-name{font-size:14px;color:#333;line-height:1.3;white-space:nowrap}
.ftp-ts-right{display:none;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;margin-left:auto}
.ftp-ts-row.ftp-ts-on .ftp-ts-right{display:-webkit-box;display:-ms-flexbox;display:flex}
.ftp-ts-price{font-size:13px;font-weight:500;color:#444;min-width:60px;text-align:right}
.ftp-ts-jumper{background:#fff;border:1px solid #ddd;border-radius:6px;padding:7px;margin:0 0 6px;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:5px}
.ftp-ts-tile{padding:5px 10px;border:1px solid #ccc;border-radius:4px;background:#f8f8f8;cursor:pointer;font-size:12px;font-weight:600;min-width:38px;text-align:center}
.ftp-ts-tile.ftp-ts-tile-sel{background:#d4a017;color:#fff;border-color:#d4a017}
/* toggle-simple pill (unchanged role) */
.ftp-tog-pill{display:block;width:100%;text-align:left;padding:8px 12px;border:1px solid #ccc;border-radius:20px;background:#fff;cursor:pointer;font-size:14px;margin-bottom:6px}
.ftp-tog-pill.ftp-tog-on{background:#d4a017;color:#fff;border-color:#d4a017}
/* v3.120 {total} live total display */
.ftp-total{margin-bottom:18px}
.ftp-total-box{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline;gap:10px;background:#fff8e8;border:1px solid #e8d9b5;border-radius:8px;padding:10px 14px}
.ftp-total-cap{font-size:14px;font-weight:600;color:#5a4520}
.ftp-total-val{font-size:20px;font-weight:700;color:#3a2a14;margin-left:auto}
/* v3.117 toggle-super mobile: shrink + allow shrink/wrap so the ON row stays inside the box */
@media (max-width:767px){
.ftp-ts-row{-ms-flex-wrap:wrap;flex-wrap:wrap}
.ftp-ts-name{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.ftp-ts-right{gap:4px;min-width:0}
.ftp-ts-row .ftp-cb-step{width:26px;height:28px;font-size:14px}
.ftp-ts-row .ftp-cb-val.ftp-ts-val{min-width:0;height:28px;font-size:12px;padding:0 4px;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center}
.ftp-ts-row .ftp-stepper-val .ftp-stepper-val-text{font-size:12px}
.ftp-stepper-val::after{margin-left:3px}
.ftp-ts-row .ftp-stepper-val::after{margin-left:2px}
.ftp-ts-price{min-width:0;font-size:12px}
.ftp-ios-switch{width:40px;height:24px}
.ftp-ios-knob:before{height:18px;width:18px}
.ftp-ios-switch input:checked + .ftp-ios-knob:before{-webkit-transform:translateX(16px);transform:translateX(16px)}
.ftp-ts-box.ftp-ts-alloff{gap:6px 14px}
}
/* ===== v3.128 {flow} orchestration chrome (scoped .ftp-flow-*) ===== */
/* Colour-neutral system-dialogue palette: greys/whites; green kept only for
   done dots + prices. */
.ftp-flow{margin:0 0 8px}
.ftp-flow-selector{border:1px solid #ddd;border-radius:14px;background:#fff;margin-bottom:12px}
.ftp-flow-seltop{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:8px;padding:9px 12px;background:#f5f5f5;border-bottom:1px solid #e6e6e6;border-top-left-radius:13px;border-top-right-radius:13px}
.ftp-flow-dots{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px;-ms-flex-wrap:wrap;flex-wrap:wrap}
.ftp-flow-dot{height:24px;min-width:24px;border-radius:999px;background:#ececec;color:#b0b0b0;font-weight:700;font-size:12px;line-height:1;border:0;cursor:pointer;padding:0;-webkit-box-pack:center;-ms-flex-pack:center;text-align:center}
.ftp-flow-dot.done{background:#3aa76d;color:#fff}
.ftp-flow-dot-active{width:auto;background:#3a3a3a;color:#fff;padding:0 13px;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;font-weight:700;font-size:12px}
.ftp-flow-dot-active .ocs-info{background:#fff !important;color:#98576b !important;width:19px !important;height:19px !important;border-radius:50% !important;display:-webkit-inline-flex !important;display:inline-flex !important;-webkit-align-items:center;align-items:center !important;-webkit-justify-content:center;justify-content:center !important;margin-left:7px !important;font-size:15px !important;line-height:1 !important;vertical-align:middle !important;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.25);box-shadow:0 1px 2px rgba(0,0,0,.25)}
.ftp-flow-selbody{padding:12px}
.ftp-flow-box{margin:0}
.ftp-flow-box .ftp-picker > label.control-label{display:none!important}
.ftp-flow-box .form-group{margin-bottom:10px}
.ftp-flow-box .form-group:last-child{margin-bottom:0}
.ftp-flow-selnav{display:-webkit-box;display:-ms-flexbox;display:flex;gap:10px;padding:0 12px 12px}
.ftp-flow-nb{-webkit-box-flex:1;-ms-flex:1;flex:1;border:1px solid #ddd;border-radius:10px;padding:11px;font:inherit;font-weight:700;font-size:14px;cursor:pointer;background:#f4f4f4;color:#555}
.ftp-flow-nb.ftp-flow-next{background:#fff;border:1px solid #ccc;color:#333;font-weight:800}
.ftp-flow-nb.ftp-flow-back{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;background:transparent;border-color:transparent;color:#999;padding:0 14px}
.ftp-flow-nb.ftp-flow-caadd{-webkit-box-flex:2;-ms-flex:2;flex:2}
.ftp-flow-outside{margin:0}
.ftp-flow-summary{margin:0 0 14px}
.ftp-flow-untagged{margin:0}

/* single zebra-striped summary card */
.ftp-flow-sumcard{border:1px solid #e8d9b5;border-radius:0;background:#fff8e8;overflow:hidden;-webkit-box-shadow:inset 0 1px 3px rgba(90,69,32,.06);box-shadow:inset 0 1px 3px rgba(90,69,32,.06)}
.ftp-flow-sumrow{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;gap:10px;padding:12px 8px}
.ftp-flow-sumhead{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#a8966f;padding:8px 15px 7px;border-bottom:1px solid #ece0c4}
.ftp-flow-sumrow:nth-child(even){background:#fff8e8}
.ftp-flow-sumrow:nth-child(odd){background:#f6ecd2}
.ftp-flow-sumrow + .ftp-flow-sumrow{border-top:1px solid #ece0c4}
.ftp-total-flowsrc{display:none!important}
.ftp-crossadd{padding:2px 0}
.ftp-flow-box .ftp-ca-toggle{display:none}
.ftp-ca-imgwrap{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;height:170px;background:#f6efe3;border:1px solid #ecdcc0;border-radius:10px;overflow:hidden;color:#8a6d3a;font-size:13px}
.ftp-ca-imgwrap img{max-height:160px;max-width:92%;-o-object-fit:contain;object-fit:contain}
.ftp-ca-msg{margin:12px 2px 10px;font-size:14px;line-height:1.35;font-weight:500;color:#4a3820}
.ftp-ca-toggle{display:-webkit-flex;display:flex;gap:8px}
.ftp-ca-opt{-webkit-flex:1;flex:1;text-align:center;padding:7px 0;border:1px solid #ddd;border-radius:8px;background:#f4f4f4;color:#777;font-size:13px;font-weight:500;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}
.ftp-ca-opt.ftp-ca-sel{border-color:#d8a4ab;background:#FADADD;color:#5a2531}
.ftp-ca-priceline{display:-webkit-flex;display:flex;-webkit-align-items:baseline;align-items:baseline;-webkit-justify-content:space-between;justify-content:space-between;margin-top:10px;padding-top:9px;border-top:1px solid #eee}
.ftp-ca-plabel{font-size:12px;color:#8a8a8a}
.ftp-ca-price{font-size:14px;font-weight:500;color:#444}
.ftp-ca-unavail{margin-top:10px;font-size:12px;color:#b0524e}
.ftp-flow-sumtotal{display:-webkit-flex;display:flex;-webkit-align-items:baseline;align-items:baseline;-webkit-justify-content:space-between;justify-content:space-between;gap:10px;padding:14px 15px;background:#f3e8cb;border-top:2px solid #e0cfa8}
.ftp-flow-sumtotal.ftp-total{margin:0}
.ftp-flow-sumtotal-cap{font-size:13.5px;font-weight:700;color:#5a4520;letter-spacing:.04em}
.ftp-flow-sumtotal .ftp-total-val{font-size:21px;font-weight:800}
/* V3.149: in-page file-upload button styled to match the QAP popup. button-upload is OpenCart's file-option button; the QAP rule (#oc-pop-body ...) is more specific, so the popup keeps its own copy and only the page picks this up. */
button[id^="button-upload"]{display:block;width:100%;background:#FADADD !important;border:1px solid #d8a4ab !important;color:#333 !important;padding:9px 14px;border-radius:4px;font-family:'Comfortaa',cursive,sans-serif !important;font-size:13px;font-weight:700;cursor:pointer}
button[id^="button-upload"] i{margin-right:6px;font-family:FontAwesome !important}
.ftp-flow-sumnum{-ms-flex-negative:0;flex-shrink:0;width:24px;height:24px;border-radius:999px;background:#3a3a3a;color:#fff;font-weight:700;font-size:12px;line-height:1;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;margin-top:1px}
.ftp-flow-summid{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:0}
.ftp-flow-sumtitle{font-weight:800;font-size:14px;color:#2a2a2a;margin-bottom:6px}
.ftp-flow-sumvals{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px}
.ftp-flow-sumpill{display:inline-block;background:#f0f0f0;color:#555;border-radius:999px;padding:5px 11px;font-weight:700;font-size:13px}
.ftp-flow-sumprice{color:#3aa76d;font-weight:700}
.ftp-flow-sumdash{color:#b0b0b0;font-weight:700;font-size:15px}
/* rebuilt combo/stepper-super summary row: [qty x] [coloured pill] [. +$price] */
.ftp-flow-sumcs{-ms-flex-preferred-size:100%;flex-basis:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;gap:6px}
.ftp-flow-sumcsqty{-ms-flex-negative:0;flex-shrink:0;font-weight:700;font-size:13px;color:#555}
.ftp-flow-cloneserves{-ms-flex-preferred-size:100%;flex-basis:100%;margin-top:6px}
.ftp-flow-cspill{display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;position:relative}
.ftp-flow-csconfig{position:relative;z-index:2}
.ftp-flow-csprice{position:relative;z-index:1;box-sizing:border-box;background:#f0f0f0;border:0;border-radius:999px;padding:5px 11px 5px 26px;margin-left:-18px;font-size:13px}
.ftp-cb-srv-n{font-weight:800;color:#2c2c2a}
.ftp-cb-srv-or{font-size:11px;font-weight:600;color:#9a9a93;letter-spacing:.04em;margin:0 5px;vertical-align:1px}
/* Edit = round icon-only button, matching the bin button */
.ftp-flow-editbtn{-ms-flex-negative:0;flex-shrink:0;margin-left:auto;width:34px;height:34px;padding:0;border-radius:999px;border:1px solid rgba(0,0,0,.15);background:#fff;color:#666;cursor:pointer;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center}
.ftp-flow-editbtn:hover{color:#333;border-color:rgba(0,0,0,.32);background:#fafafa}
.ftp-flow-editbtn svg{display:block}

@media (max-width:767px){
.ftp-flow-nb{padding:10px;font-size:13px}
.ftp-flow-dot{height:22px;min-width:22px;font-size:11px}
.ftp-flow-dot-active{font-size:11px;padding:0 11px}
}

/* QAP popup is narrow (window-in-window): compact the flow chrome so the nested
   picker controls keep their horizontal room and stop wrapping to two lines. */
#oc-pop-inner .ftp-flow{margin:0 0 6px}
#oc-pop-inner .ftp-flow-selector{border-radius:10px;margin-bottom:8px}
#oc-pop-inner .ftp-flow-seltop{padding:7px 8px}
#oc-pop-inner .ftp-flow-selbody{padding:8px 6px}
#oc-pop-inner .ftp-flow-box .form-group{margin-bottom:8px}
#oc-pop-inner .ftp-flow-selnav{padding:0 6px 8px;gap:8px}
#oc-pop-inner .ftp-flow-nb{padding:9px;font-size:13px}
#oc-pop-inner .ftp-flow-sumcard{border-radius:0}
#oc-pop-inner .ftp-flow-sumrow{padding:9px 7px;gap:8px}
#oc-pop-inner .ftp-flow-editbtn{width:30px;height:30px}
.ftp-date-labhide{display:none!important}
.ftp-date-ctl{position:relative;display:-webkit-inline-flex;display:inline-flex;-webkit-align-items:stretch;align-items:stretch;max-width:100%;width:auto;height:38px;border:1px solid #ccc;border-radius:6px;overflow:hidden;background:#fff;cursor:pointer;vertical-align:top}
#oc-pop-inner .input-group.ftp-date-ctl{display:-webkit-inline-flex!important;display:inline-flex!important;width:auto!important;max-width:100%!important;-webkit-flex:0 0 auto!important;flex:0 0 auto!important}
#oc-pop-inner .input-group.ftp-date-ctl .ftp-date-input{-webkit-flex:0 0 auto!important;flex:0 0 auto!important;width:160px!important;border:none!important;border-radius:0!important;padding:0 12px!important}
#oc-pop-inner .input-group.ftp-date-ctl .input-group-btn .btn{-webkit-flex:0 0 auto!important;flex:0 0 auto!important;width:44px!important;min-width:44px!important;height:38px!important;min-height:0!important;padding:0!important;border:none!important;border-right:1px solid #d8a4ab!important;border-radius:0!important}
.ftp-date-ctl .ftp-date-input{-webkit-flex:0 0 auto;flex:0 0 auto;width:160px;border:none!important;border-radius:0;background:#fff;color:transparent!important;font-size:14px;font-family:inherit;padding:0 12px;height:38px;line-height:38px;cursor:pointer;outline:none!important;box-shadow:none!important;caret-color:transparent;-webkit-appearance:none;-moz-appearance:none}
.ftp-date-ctl .ftp-date-face{position:absolute;left:44px;top:0;bottom:0;right:0;line-height:38px;padding:0 12px;pointer-events:none;font-size:14px;color:#333;white-space:nowrap;overflow:hidden;z-index:5}
.ftp-date-ctl .ftp-date-face.ftp-date-empty{color:#9a948d}
.ftp-date-ctl .ftp-date-face .ftp-date-req{color:#e2231a;margin-right:3px}
.ftp-date-ctl .input-group-btn{-webkit-flex:0 0 auto;flex:0 0 auto;display:-webkit-flex;display:flex;width:auto;-webkit-order:-1;-ms-flex-order:-1;order:-1}
.ftp-date-ctl .input-group-btn .btn{margin:0;width:44px;min-width:44px;height:38px;display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-justify-content:center;justify-content:center;background:#FADADD;border:none;border-right:1px solid #d8a4ab;border-radius:0;color:#5a2531;padding:0;-webkit-box-shadow:none;box-shadow:none}
.ftp-date-ctl .input-group-btn .btn:hover{background:#f6cdd2}
.ftp-date-ctl .input-group-btn .btn i{margin:0;color:#5a2531}
