.cdpb-frontend-preview{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.2fr) minmax(190px,.72fr);gap:32px;align-items:start;width:100%;max-width:1400px;margin:0 auto}.cdpb-builder-controls,.cdpb-builder-preview,.cdpb-builder-summary{min-width:0}.cdpb-builder-preview{position:sticky;top:24px}.cdpb-builder-preview img{width:100%;object-fit:contain}.cdpb-order-lines-section{margin-top:24px}.cdpb-order-hint{font-size:13px}.cdpb-order-line{display:grid;grid-template-columns:1fr 1fr 80px auto;gap:8px;align-items:end;margin-bottom:12px}.cdpb-order-line label{display:block;font-size:12px}.cdpb-order-line select,.cdpb-order-line input{display:block;width:100%;min-width:0;margin-top:4px}.cdpb-remove-line{padding:7px 9px;cursor:pointer}.cdpb-remove-line:disabled{opacity:.45;cursor:not-allowed}.cdpb-add-line{margin-top:8px}@media(max-width:1050px){.cdpb-frontend-preview{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}.cdpb-builder-summary{grid-column:1/-1}}@media(max-width:780px){.cdpb-frontend-preview{grid-template-columns:1fr}.cdpb-builder-preview{position:static;grid-row:1}.cdpb-order-line{grid-template-columns:1fr 1fr}.cdpb-remove-line{align-self:end}}
.cdpb-order-summary{margin-top:0;padding:12px;border:1px solid #ddd;border-radius:4px}.cdpb-order-summary h4{margin:0 0 10px}.cdpb-summary-lines p{margin:4px 0}.cdpb-order-summary>p{margin:12px 0 0}

.cdpb-order-line.cdpb-line-active{background:#f1f6fc;outline:2px solid #2271b1;outline-offset:3px;border-radius:3px}

@media(max-width:780px){.cdpb-builder-summary{grid-column:auto}.cdpb-builder-preview{grid-row:auto}}

/* Step 23: consistent full-width controls, with responsive separators. */
.cdpb-builder-controls{width:100%;min-width:0}
.cdpb-builder-controls .cdpb-colour-options,.cdpb-builder-controls .cdpb-view-options,.cdpb-builder-controls .cdpb-size-options{display:grid!important;width:100%;box-sizing:border-box;gap:8px!important}
.cdpb-builder-controls .cdpb-colour-options{grid-template-columns:repeat(4,minmax(0,1fr))}
.cdpb-builder-controls .cdpb-view-options{grid-template-columns:repeat(2,minmax(0,1fr))}
.cdpb-builder-controls .cdpb-size-options{grid-template-columns:repeat(3,minmax(0,1fr))}
.cdpb-builder-controls .cdpb-colour-button,.cdpb-builder-controls .cdpb-view-button,.cdpb-builder-controls .cdpb-size-button{width:100%;min-width:0;min-height:40px;box-sizing:border-box;padding:8px 5px!important;white-space:normal;line-height:1.3;overflow-wrap:break-word;text-align:center}
.cdpb-builder-controls .cdpb-quantity-options,.cdpb-builder-controls .cdpb-order-lines-section{width:100%;box-sizing:border-box}
@media(max-width:1050px){
 .cdpb-builder-controls .cdpb-colour-options,.cdpb-builder-controls .cdpb-view-options,.cdpb-builder-controls .cdpb-size-options,.cdpb-builder-controls .cdpb-quantity-options,.cdpb-builder-controls .cdpb-order-lines-section{padding-bottom:14px;border-bottom:1px solid #ddd;margin-bottom:14px}
 .cdpb-builder-controls .cdpb-order-lines-section{border-bottom:0}
}
@media(max-width:480px){
 .cdpb-builder-controls .cdpb-colour-options{grid-template-columns:repeat(2,minmax(0,1fr))}
 .cdpb-builder-controls .cdpb-size-options{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* Step 24: display-only decoration location selection. */
.cdpb-decoration-locations{margin:24px 0 0;padding:14px;border:1px solid #ddd;border-radius:4px;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
.cdpb-decoration-locations legend{font-weight:700;padding:0 5px}
.cdpb-print-hint{grid-column:1/-1;font-size:13px;margin:0 0 6px}
.cdpb-print-location{display:flex;align-items:flex-start;gap:6px;font-size:14px;line-height:1.4;cursor:pointer}
.cdpb-print-location input{margin-top:3px;flex:none}
.cdpb-summary-location-heading{margin-top:16px!important}
.cdpb-summary-locations{overflow-wrap:anywhere}
@media(max-width:480px){.cdpb-decoration-locations{grid-template-columns:1fr}.cdpb-print-location{padding:4px 0;border-bottom:1px solid #eee}}

/* Step 25: garment controls | garment visual | artwork controls, full-width order summary below. */
.cdpb-builder-artwork{min-width:0}
.cdpb-builder-artwork h3{margin:0 0 12px}
.cdpb-builder-artwork .cdpb-decoration-locations{margin-top:0}
.cdpb-artwork-coming{font-size:13px;color:#555;margin:14px 0 0}
.cdpb-builder-summary{grid-column:1/-1;min-width:0;margin-top:8px}
.cdpb-builder-summary .cdpb-order-summary{padding:16px}
@media(min-width:1051px){.cdpb-frontend-preview{grid-template-columns:minmax(0,1.05fr) minmax(0,1.2fr) minmax(190px,.72fr)}}
@media(max-width:1050px){.cdpb-frontend-preview{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}.cdpb-builder-artwork{grid-column:1/-1}.cdpb-builder-summary{grid-column:1/-1}}
@media(max-width:780px){.cdpb-frontend-preview{grid-template-columns:1fr}.cdpb-builder-artwork,.cdpb-builder-summary{grid-column:1}.cdpb-builder-preview{grid-row:auto}}

/* Step 26: local artwork file preview in the right column. */
.cdpb-artwork-upload{margin-top:20px;padding-top:16px;border-top:1px solid #ddd}
.cdpb-artwork-upload label{display:block;margin-bottom:8px}
.cdpb-artwork-file{display:block;width:100%;max-width:100%;font-size:13px}
.cdpb-artwork-help{font-size:12px;line-height:1.5;color:#555;margin:8px 0}
.cdpb-artwork-error{font-size:13px;color:#a00}
.cdpb-artwork-file-preview{margin-top:12px}
.cdpb-artwork-thumbnail{display:block;width:100%;max-width:200px;max-height:180px;object-fit:contain;border:1px solid #ddd;border-radius:4px;background:#fafafa}
.cdpb-artwork-filename{font-size:12px;overflow-wrap:anywhere;margin:8px 0}
.cdpb-artwork-file-preview[hidden],.cdpb-artwork-error[hidden]{display:none!important}

/* Step 27: upload first, print locations below. */
.cdpb-builder-artwork .cdpb-artwork-upload{margin-top:0;padding-top:0;border-top:0}
.cdpb-builder-artwork .cdpb-decoration-locations{margin-top:20px}

/* Step 28: browser-only approximate logo placement and scaling. */
.cdpb-preview-stage{position:relative;width:100%}
.cdpb-preview-stage>.cdpb-frontend-preview-image{display:block;width:100%;height:auto}
.cdpb-logo-overlays{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.cdpb-logo-overlay{position:absolute;transform:translate(-50%,-50%);height:auto;max-height:38%;object-fit:contain;filter:drop-shadow(0 1px 1px rgba(0,0,0,.16))}
.cdpb-logo-size-controls{margin-top:18px;padding-top:12px;border-top:1px solid #ddd}
.cdpb-logo-size-controls label{display:block;margin-bottom:8px}
.cdpb-logo-width{width:calc(100% - 50px);vertical-align:middle}
.cdpb-logo-width-value{display:inline-block;min-width:42px;text-align:right;font-size:13px}

/* Step 29: per-line artwork details in the full-width order summary. */
.cdpb-summary-item{padding:9px 0;border-bottom:1px solid #e5e5e5}
.cdpb-summary-item p{margin:3px 0;overflow-wrap:anywhere}
.cdpb-summary-item p+p{font-size:13px;color:#555}
.cdpb-summary-location-heading,.cdpb-summary-locations{display:none}

/* Step 30: per-location inch measurements */
.cdpb-logo-size-controls .cdpb-size-location{display:block;width:100%;max-width:100%;margin:8px 0}
.cdpb-size-input-row{display:flex;align-items:center;gap:10px;margin:8px 0}
.cdpb-size-input-row input{width:100px;max-width:50%;padding:8px}

/* Step 32: one size slider per selected location, with readable limits. */
.cdpb-logo-size-controls h4{margin:0 0 6px}
.cdpb-size-cards{display:grid;gap:12px;margin-top:12px}
.cdpb-size-card{border:1px solid #ddd;border-radius:6px;padding:12px;min-width:0}
.cdpb-size-card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;font-weight:600;margin-bottom:10px}
.cdpb-size-card-head label{margin:0}
.cdpb-size-value{white-space:nowrap;font-variant-numeric:tabular-nums}
.cdpb-size-slider{display:block;width:100%;margin:0 0 9px;accent-color:#2271b1;cursor:pointer}
.cdpb-size-card-guide{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 8px;font-size:11px;color:#555}

/* Step 34: Keep the centre of each logo fixed while its width changes. */
.cdpb-logo-overlay{transform-origin:center center;transform:translate(-50%,-50%)}

.cdpb-location-upload-label{display:block;font-weight:600;font-size:12px;margin:8px 0 6px}
.cdpb-location-file{display:block;width:100%;max-width:100%;font-size:12px;margin-top:5px}
.cdpb-location-file-info{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:7px 0 12px;font-size:12px;overflow-wrap:anywhere}
.cdpb-location-thumbnail{max-width:76px;max-height:48px;object-fit:contain;border:1px solid #ddd}
.cdpb-location-thumbnail[hidden]{display:none}
.cdpb-location-remove{font-size:12px;padding:4px 7px}
.cdpb-location-remove:disabled{opacity:.45}

/* Step 39: compact dashboard, full-width order line selector and summary. */
.cdpb-frontend-preview{display:grid!important;grid-template-columns:minmax(0,45fr) minmax(0,55fr)!important;gap:18px 28px!important;max-width:1400px}
.cdpb-builder-order,.cdpb-builder-summary{grid-column:1/-1!important;min-width:0}
.cdpb-builder-order{background:#f7f8fa;border:1px solid #e0e2e6;border-radius:8px;padding:14px}
.cdpb-builder-order .cdpb-order-lines-section{margin:0}
.cdpb-builder-order h3{font-size:20px;margin:0 0 4px}
.cdpb-builder-order .cdpb-order-hint{margin:0 0 10px}
.cdpb-builder-order .cdpb-order-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:9px;align-items:stretch}
.cdpb-builder-order .cdpb-order-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:#fff;border:1px solid #d2d6dd;border-radius:6px;padding:9px;margin:0;cursor:pointer;min-width:0}
.cdpb-builder-order .cdpb-order-line.cdpb-line-active{outline:2px solid #2271b1;outline-offset:0;background:#f1f6fc}
.cdpb-line-card-label{font-size:13px;font-weight:600;flex:1 1 125px;overflow-wrap:anywhere}
.cdpb-builder-order .cdpb-order-line>label{display:none}
.cdpb-builder-order .cdpb-remove-line{font-size:12px;padding:4px 7px}
.cdpb-builder-order .cdpb-add-line{margin-top:10px;font-size:13px;padding:7px 12px}
.cdpb-builder-preview{grid-column:1;position:sticky;top:20px;align-self:start;min-width:0}
.cdpb-builder-preview .cdpb-view-options{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px!important;margin-top:7px!important}
.cdpb-builder-preview .cdpb-view-button{font-size:12px;line-height:1.2;padding:7px 3px!important;min-width:0;white-space:normal}
.cdpb-builder-settings{grid-column:2;min-width:0;background:#fafafa;border:1px solid #e1e1e1;border-radius:8px;padding:14px}
.cdpb-builder-settings>h3{font-size:20px;margin:0 0 10px}
.cdpb-builder-controls .cdpb-colour-options,.cdpb-builder-controls .cdpb-size-options{gap:5px!important;margin:6px 0!important;padding:0!important;border:0!important}
.cdpb-builder-controls .cdpb-colour-button,.cdpb-builder-controls .cdpb-size-button{min-height:32px;font-size:12px;padding:5px 3px!important}
.cdpb-builder-controls .cdpb-quantity-options{margin:10px 0!important;padding:0!important;border:0!important}
.cdpb-builder-controls .cdpb-quantity-input{padding:5px 7px}
.cdpb-builder-artwork{margin-top:14px;padding-top:12px;border-top:1px solid #ddd}
.cdpb-builder-artwork h3{font-size:19px;margin:0 0 4px}
.cdpb-builder-artwork .cdpb-decoration-locations{margin-top:10px;padding:10px;gap:5px 10px}
.cdpb-builder-artwork .cdpb-print-location{font-size:12px}
.cdpb-builder-artwork .cdpb-logo-size-controls{margin-top:10px;padding-top:10px}
.cdpb-builder-artwork .cdpb-size-cards{gap:8px}
.cdpb-builder-artwork .cdpb-size-card{padding:9px}
.cdpb-builder-artwork .cdpb-size-card-head{margin-bottom:4px;font-size:13px}
.cdpb-builder-artwork .cdpb-size-card-guide{font-size:10px}
.cdpb-builder-artwork .cdpb-location-file-info{margin:5px 0 7px}
.cdpb-builder-artwork .cdpb-size-slider{margin-bottom:5px}
@media(max-width:850px){.cdpb-frontend-preview{grid-template-columns:1fr!important}.cdpb-builder-order,.cdpb-builder-preview,.cdpb-builder-settings,.cdpb-builder-summary{grid-column:1!important}.cdpb-builder-preview{position:static}.cdpb-builder-preview .cdpb-preview-stage{max-width:520px;margin:0 auto}.cdpb-builder-order .cdpb-order-lines{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}}
@media(max-width:480px){.cdpb-builder-order .cdpb-order-lines{grid-template-columns:1fr 1fr}.cdpb-builder-preview .cdpb-view-options{grid-template-columns:repeat(2,minmax(0,1fr))}.cdpb-builder-settings{padding:10px}}

/* Step 40: one order-line interface in the bottom summary. */
.cdpb-builder-summary{grid-column:1/-1!important}
.cdpb-summary-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.cdpb-summary-heading h4{margin:0}
.cdpb-summary-heading .cdpb-add-line{margin:0;font-size:13px;padding:7px 12px}
.cdpb-builder-summary .cdpb-order-hint{margin:8px 0 12px;font-size:13px}
.cdpb-builder-summary .cdpb-order-lines[hidden]{display:none!important}
.cdpb-summary-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.cdpb-summary-item{border:1px solid #d2d6dd;border-radius:6px;padding:11px;cursor:pointer;min-width:0;background:#fff;overflow-wrap:anywhere}
.cdpb-summary-item:hover,.cdpb-summary-item:focus-visible{border-color:#2271b1}
.cdpb-summary-item.cdpb-summary-active{outline:2px solid #2271b1;outline-offset:-2px;background:#f1f6fc}
.cdpb-summary-item p:first-child{font-weight:600}
.cdpb-summary-item p:last-child{font-size:12px}
@media(max-width:480px){.cdpb-summary-lines{grid-template-columns:1fr}}

/* Step 41: one compact row per print location; original checkboxes are moved into rows. */
.cdpb-builder-artwork .cdpb-decoration-locations{display:none!important}
.cdpb-builder-artwork .cdpb-logo-size-controls{margin-top:8px;padding-top:0;border:0}
.cdpb-builder-artwork .cdpb-size-cards{display:grid;gap:5px;margin:0}
.cdpb-compact-logo-row{display:grid;grid-template-columns:minmax(110px,1.2fr) minmax(55px,1fr) 75px 62px 26px;align-items:center;gap:5px;padding:6px 7px;border:1px solid #dfe2e6;border-radius:5px;background:#fff;min-width:0;font-size:12px}
.cdpb-compact-logo-row.is-selected{background:#f3f8fd;border-color:#bad0e2}
.cdpb-compact-location-label{display:flex!important;align-items:center;gap:5px;min-width:0;margin:0!important;font-size:12px;line-height:1.2;cursor:pointer}
.cdpb-compact-location-label input{margin:0!important;flex:none}
.cdpb-compact-location-label span{overflow-wrap:anywhere}
.cdpb-compact-filename{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#555}
.cdpb-compact-width-select{width:100%!important;min-width:0!important;max-width:none!important;margin:0!important;padding:4px 2px!important;font-size:12px!important;height:32px}
.cdpb-compact-upload,.cdpb-compact-remove{margin:0!important;padding:5px 3px!important;min-height:30px;font-size:11px!important;line-height:1.1}
.cdpb-compact-remove{font-size:18px!important;padding:1px!important}
.cdpb-compact-remove:disabled{opacity:.35}
.cdpb-compact-file-input{display:none!important}
.cdpb-compact-unselected{grid-column:2/-1;color:#888;font-size:11px}
.cdpb-compact-error{grid-column:1/-1;margin:0;font-size:11px;color:#a00}
@media(max-width:540px){.cdpb-compact-logo-row{grid-template-columns:minmax(100px,1fr) minmax(50px,1fr) 70px 52px 24px;gap:3px;padding:5px 4px}.cdpb-compact-location-label{font-size:11px}}

/* Step 43: quantity in heading, colour/size divider, tighter artwork alignment. */
.cdpb-settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.cdpb-builder-settings .cdpb-settings-heading h3{font-size:20px;margin:0;line-height:1.25}
.cdpb-settings-heading .cdpb-quantity-options{display:flex;align-items:center;gap:7px;margin:0!important;padding:0!important;border:0!important;width:auto!important;flex:none}
.cdpb-settings-heading .cdpb-quantity-options label{font-size:12px;font-weight:600;margin:0;white-space:nowrap}
.cdpb-settings-heading .cdpb-quantity-input{width:72px!important;max-width:72px!important;margin:0!important;padding:5px 7px!important;min-height:32px}
.cdpb-builder-controls .cdpb-colour-options{padding-bottom:11px!important;margin-bottom:10px!important;border-bottom:1px solid #e1e3e6!important}
.cdpb-builder-controls .cdpb-size-options{margin-top:0!important;margin-bottom:0!important}
.cdpb-builder-artwork{margin-top:8px;padding-top:9px}
@media(max-width:480px){.cdpb-settings-heading{align-items:flex-start}.cdpb-settings-heading h3{font-size:17px!important}.cdpb-settings-heading .cdpb-quantity-options{gap:4px}.cdpb-settings-heading .cdpb-quantity-input{width:60px!important}}

/* Step 45: stretch the settings to the full preview + view-button height.
   Grid align-items:start otherwise stops the settings at their own content height. */
@media(min-width:851px){
  .cdpb-builder-settings{
    align-self:stretch;
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
    padding-bottom:14px;
  }
  .cdpb-builder-artwork{margin-top:auto}
}

/* Step 46: compact per-line delete button in the order summary. */
.cdpb-summary-item{position:relative;padding-right:39px}
.cdpb-summary-delete{position:absolute;top:8px;right:8px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid #cbd1d9;border-radius:5px;background:#fff;color:#555;font-size:20px;line-height:1;cursor:pointer}
.cdpb-summary-delete:hover:not(:disabled){border-color:#ad3030;color:#ad3030;background:#fff7f7}
.cdpb-summary-delete:disabled{opacity:.3;cursor:not-allowed}

/* Step 47: compact price details within each order summary item. */
.cdpb-summary-item .cdpb-summary-line-price{margin-top:8px;padding-top:7px;border-top:1px solid #e3e6eb;font-weight:600;font-size:13px}
.cdpb-pricing-summary{border-top:1px solid #e3e6eb;margin-top:12px;padding-top:10px}
.cdpb-pricing-summary p{margin:4px 0}
.cdpb-price-note{font-size:12px;color:#666}

/* Step 49: primary cart action below the order summary. */
.cdpb-cart-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:16px;padding-top:14px;border-top:1px solid #e5e5e5}
.cdpb-cart-actions .cdpb-add-to-cart{padding:10px 22px;cursor:pointer}
.cdpb-cart-actions .cdpb-add-to-cart:disabled{cursor:wait;opacity:.6}
.cdpb-cart-feedback{font-size:13px;margin:0;color:#a00}
