.pbp-print-builder {
    --pbp-space: .75rem;
    --pbp-border: #d2d2d2;
    --pbp-radius: .25rem;
    --pbp-muted: #595959;
    --pbp-surface: #fff;
    --pbp-accent: currentColor;
    --pbp-focus: #333;
    box-sizing: border-box;
    width: 100%; max-width: 48rem; min-width: 0;
    margin-block: 1.25rem; padding: var(--pbp-space);
    color: inherit; font-family: inherit; background: var(--pbp-surface);
    scroll-margin-block-start: var(--pbp-header-offset, 2rem);
}
.pbp-print-builder.pbp-builder [hidden] { display: none; }
.pbp-print-builder h2, .pbp-print-builder h3, .pbp-print-builder p { margin: 0 0 var(--pbp-space); }
.pbp-print-builder h2 { font-size: 1.4rem; line-height: 1.35; position: static; transform: none; height: auto; overflow: visible; }
.pbp-print-builder h3 { font-size: 1.05rem; line-height: 1.4; }
.pbp-print-builder .pbp-primary, .pbp-print-builder .pbp-finishing-choices { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--pbp-space); }
.pbp-print-builder .pbp-field { min-width: 0; border: 0; border-bottom: 1px solid var(--pbp-border); margin: 0; padding: 0 0 var(--pbp-space); }
.pbp-print-builder .pbp-field legend { float: none; width: auto; font-size: 1rem; font-weight: 600; padding: 0; margin-bottom: .25rem; }
.pbp-print-builder .pbp-options { display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.pbp-print-builder .pbp-choice { display: inline-flex; align-items: center; gap: .5rem; min-height: 44px; padding: .25rem; margin: 0; font-size: 1rem; font-weight: 400; cursor: pointer; }
.pbp-print-builder .pbp-choice input { appearance: auto; position: static; opacity: 1; flex: 0 0 auto; width: 1.1rem; height: 1.1rem; margin: 0; accent-color: var(--pbp-accent); }
.pbp-print-builder .pbp-field select { box-sizing: border-box; width: 100%; max-width: 32rem; min-height: 44px; padding: .5rem; margin: 0; font: inherit; color: inherit; background-color: var(--pbp-surface); border: 1px solid var(--pbp-border); border-radius: var(--pbp-radius); }
.pbp-print-builder .pbp-test-note, .pbp-print-builder .pbp-status, .pbp-print-builder .pbp-field-message, .pbp-print-builder .pbp-price-note { font-size: .9rem; line-height: 1.45; color: var(--pbp-muted); }
.pbp-print-builder .pbp-finishing, .pbp-print-builder .pbp-summary, .pbp-print-builder .pbp-price { margin-top: 1rem; }
.pbp-print-builder .pbp-summary-items { display: grid; grid-template-columns: minmax(0, 1fr); gap: .3rem; margin: 0; font-size: .95rem; }
.pbp-print-builder .pbp-summary-items > div { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr); column-gap: var(--pbp-space); align-items: baseline; }
.pbp-print-builder dt, .pbp-print-builder dd { float: none; width: auto; padding: 0; margin: 0; line-height: 1.5; overflow-wrap: anywhere; }
.pbp-print-builder dt { font-weight: 600; }
.pbp-print-builder .pbp-price { border-top: 1px solid var(--pbp-border); padding-top: var(--pbp-space); }
.pbp-print-builder .pbp-result { display: block; margin-block: .25rem; font-size: 2rem; line-height: 1.3; font-weight: 700; }
.pbp-print-builder .pbp-price-stale { color: var(--pbp-muted); text-decoration: line-through; }
.pbp-print-builder .button, .pbp-print-builder .pbp-confirm { min-height: 44px; margin: .25rem .5rem .25rem 0; padding: .6rem 1rem; font: inherit; cursor: pointer; }
.pbp-print-builder .pbp-add-cart { display: block; }
.pbp-print-builder :focus-visible { outline: 3px solid var(--pbp-focus); outline-offset: 3px; scroll-margin-block-start: var(--pbp-header-offset, 2rem); }
.pbp-print-builder button:disabled, .pbp-print-builder input:disabled { cursor: not-allowed; opacity: .65; }
.pbp-print-builder .pbp-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 480px) {
    .pbp-print-builder .pbp-summary-items > div { grid-template-columns: minmax(0, 1fr); }
    .pbp-print-builder .button { width: 100%; margin-inline: 0; }
}

.pbp-print-builder .pbp-legend-instruction { margin-left: .5em; font-size: .9em; font-weight: 400; color: var(--pbp-muted); }
.pbp-print-builder .pbp-legend-instruction::before { content: "— "; }

.pbp-print-builder .pbp-designs { margin-top: 1rem; }
.pbp-print-builder .pbp-designs-instruction, .pbp-print-builder .pbp-designs-help { font-size: .9rem; font-weight: 400; color: var(--pbp-muted); }
.pbp-print-builder .pbp-designs .pbp-set-count { box-sizing: border-box; width: 6rem; max-width: 100%; min-height: 44px; margin: .25rem 0 .5rem; padding: .5rem; font: inherit; }

/* Builder-local loading and action structure; themes may override the palette. */
.pbp-print-builder {
    --pbp-action-primary: #262626;
    --pbp-action-secondary: #555555;
    --pbp-action-light: #eeeeee;
    --pbp-action-complete: #626262;
    --pbp-action-ink: #262626;
    --pbp-action-text: #ffffff;
    --pbp-action-border: #767676;
    --pbp-action-disabled: #eeeeee;
    --pbp-action-disabled-text: #595959;
    --pbp-action-disabled-border: #cccccc;
    --pbp-action-focus: #333333;
    --pbp-cart-badge-background: #eeeeee;
    --pbp-cart-badge-text: #262626;
    --pbp-cart-badge-border: #767676;
}
.pbp-print-builder .pbp-loader { display:flex; align-items:center; gap:.65rem; min-height:3rem; }
.pbp-print-builder .pbp-loader::before { content:""; width:.75rem; height:.75rem; border-radius:50%; background:currentColor; animation:pbp-loading 1.4s ease-in-out infinite; }
@keyframes pbp-loading { 0% { opacity:.35; } 100% { opacity:1; } }
@media (prefers-reduced-motion: reduce) { .pbp-print-builder .pbp-loader::before { animation:none; } }
.pbp-print-builder .pbp-action-area { margin-block:1rem; }
.pbp-print-builder .pbp-action-bar { display:flex; flex-direction:column; gap:.75rem; min-width:0; }
.pbp-print-builder .pbp-action-totals { display:grid; gap:.35rem; min-width:0; }
.pbp-print-builder .pbp-action-primary { display:flex; min-width:0; }
.pbp-print-builder .pbp-action-primary .button { box-sizing:border-box; display:inline-flex; justify-content:center; align-items:center; width:100%; min-height:44px; margin:0; padding:.75rem 1rem; border:1px solid var(--pbp-action-border); border-radius:.25rem; font:inherit; text-decoration:none; background:var(--pbp-action-primary); color:var(--pbp-action-text); }
.pbp-print-builder .pbp-action-primary .button:disabled { background:var(--pbp-action-disabled); color:var(--pbp-action-disabled-text); border-color:var(--pbp-action-disabled-border); cursor:default; }
.pbp-print-builder .pbp-action-primary .pbp-pending:disabled { background:var(--pbp-action-primary); color:var(--pbp-action-text); cursor:wait; }
.pbp-print-builder .pbp-action-primary .pbp-completed:disabled { background:var(--pbp-action-complete); color:#fff; }
.pbp-print-builder .pbp-action-secondary { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .75rem; }
.pbp-print-builder .pbp-action-secondary .button { min-height:36px; margin:0; padding:.35rem 0; border:0; background:transparent; color:var(--pbp-action-secondary); text-decoration:underline; }
.pbp-print-builder .pbp-action-error { margin-block:0 .75rem; }

/* 0.7.16 — cart count is a real badge; palette remains theme-overridable. */
.pbp-print-builder .pbp-cart-count-badge { display:inline-flex; align-items:center; justify-content:center; min-width:1.45em; height:1.45em; margin-left:.4em; padding:0 .35em; box-sizing:border-box; border-radius:999px; font-size:.78em; font-weight:700; line-height:1; background:var(--pbp-cart-badge-background); color:var(--pbp-cart-badge-text); border:1px solid var(--pbp-cart-badge-border); }

/* Opt-in, per-job delivery estimates; native labelled controls match the Builder. */
.pbp-print-builder .pbp-shipping { margin-block: 1.5rem; padding-block: 1rem; border-top: 1px solid var(--pbp-action-border); }
.pbp-print-builder .pbp-shipping-address { display: grid; grid-template-columns: minmax(0, 1fr); gap: .8rem 1rem; }
.pbp-print-builder .pbp-shipping-address label { display: block; font-weight: 600; }
.pbp-print-builder .pbp-shipping-address input { width: 100%; min-width: 0; box-sizing: border-box; }
.pbp-print-builder .pbp-shipping-quote { margin-top: 1rem; }
.pbp-print-builder .pbp-shipping-methods { margin-block: 1rem; padding: 0; border: 0; }
.pbp-print-builder .pbp-shipping-choice { display: flex; align-items: flex-start; gap: .75rem; padding: 1rem; margin-block: .5rem; border: 1px solid var(--pbp-action-border); border-radius: .25rem; cursor: pointer; }
.pbp-print-builder .pbp-shipping-choice:focus-within { outline: 2px solid currentColor; outline-offset: 2px; }
.pbp-print-builder .pbp-shipping-choice input { margin-top: .3rem; }
.pbp-print-builder .pbp-shipping-choice span span { display: block; }
.pbp-print-builder .pbp-shipping-amount { font-weight: 700; }
.pbp-print-builder .pbp-shipping-note, .pbp-print-builder .pbp-shipping-date { font-size: .9em; }
@media (max-width: 600px) { .pbp-print-builder .pbp-shipping-address { grid-template-columns: minmax(0, 1fr); } }


/* 0.8.0 — unified review, compact command interface, and Ship To state. */
.pbp-print-builder .pbp-action-total-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.75rem; align-items:baseline; }
.pbp-print-builder .pbp-action-total-label { font-weight:600; }
.pbp-print-builder .pbp-shipping-destination { margin-bottom:1rem; }
.pbp-print-builder .pbp-shipping-destination-title { margin-bottom:.25rem; }
.pbp-print-builder .pbp-shipping-destination-text { margin-bottom:.5rem; }
.pbp-print-builder .pbp-shipping-address-actions { display:flex; flex-wrap:wrap; gap:.4rem .75rem; }
.pbp-print-builder .pbp-shipping-address-actions .button { min-height:36px; margin:0; padding:.4rem .65rem; }
.pbp-print-builder .pbp-job-name { scroll-margin-block-start:var(--pbp-header-offset, 7rem); }

/* 0.8.0 — command footer semantics. Vertical hierarchy is intentional even in narrow desktop columns. */
.pbp-print-builder .pbp-command { display:grid; grid-template-columns:minmax(0,1fr); gap:.75rem; align-items:stretch; min-width:0; }
.pbp-print-builder .pbp-action-complete-status { margin:0; font-weight:700; }
.pbp-print-builder .pbp-action-primary { justify-content:flex-end; }
.pbp-print-builder .pbp-action-primary .button { width:auto; }
.pbp-print-builder[data-action-state="complete"] .pbp-action-primary { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:.5rem; }
.pbp-print-builder[data-action-state="complete"] .pbp-action-primary .button { width:auto; flex:0 1 auto; }
@media (max-width: 480px) {
    .pbp-print-builder .pbp-action-primary .button { width:100%; }
    .pbp-print-builder[data-action-state="complete"] .pbp-action-primary .button { flex:1 1 calc(50% - .25rem); }
}
