/* Isolated from the catalogue and the external-provider editor. */
html.pw-is-open { overflow: hidden; }
.personalization-workspace .pw-footer-actions .pw-launch { background: #172554; border: 2px solid #172554; color: #fff; font-weight: 750; box-shadow: 0 5px 14px #17255430; }
.personalization-workspace .pw-footer-actions .pw-launch:hover { background: #243e86; border-color: #243e86; }
.personalization-workspace[data-step="configuration"] .pw-logo { max-width: 780px; margin: 0 auto; }
.personalization-workspace .pc-analysis { margin: 14px 0; padding: 16px; border: 1px solid #cdd3e2; border-radius: 10px; background: #f7f8fc; }
.personalization-workspace .pc-analysis p, .personalization-workspace .pc-results p { font-size: 13px; }
.personalization-workspace .pc-results { display: grid; grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); gap: 8px; margin: 10px 0; max-height: 260px; overflow: auto; }
.personalization-workspace .pc-swatch { display: flex; gap: 9px; align-items: center; padding: 10px; background: white; color: #172554; border: 1px solid #cdd3e2; border-radius: 6px; text-align: left; cursor: pointer; min-height: 44px; }
.personalization-workspace .pc-swatch > span:first-child { width: 24px; height: 24px; border: 1px solid #aeb6c7; border-radius: 50%; flex-shrink: 0; }
.personalization-workspace .pc-palette-note { display: block; font-size: 12px; color: #58647c; }
.personalization-workspace [hidden] { display: none !important; }
.personalization-workspace[data-step="configuration"] .pw-body { display: block; }
.personalization-workspace[data-step="configuration"] .pw-settings { max-width: 780px; margin: 0 auto; }
.personalization-workspace[data-step="configuration"] { width: calc(100vw - 24px); }
.personalization-workspace .pw-configure { width: 100%; margin-bottom: 20px; white-space: normal; }
.personalization-workspace {
    --pw-ink: #232f5d;
    --pw-line: #dce0eb;
    width: calc(100vw - 24px);
    height: calc(100dvh - 24px);
    max-width: none;
    max-height: none;
    padding: 0;
    border: 1px solid var(--pw-line);
    border-radius: 18px;
    color: var(--pw-ink);
    background: #fff;
    box-shadow: 0 24px 100px #111c4050;
    overflow: hidden;
    margin: auto;
}
.personalization-workspace[data-step="design"] .pw-body {
    grid-template-columns: 290px minmax(300px, 1fr) 310px;
    grid-template-areas: 'logo flat preview' 'settings flat preview';
}
.personalization-workspace .pw-flat { grid-area: flat; position: sticky; top: 0; align-self: start; background: #e9ebf0; text-align: center; }
.personalization-workspace .pw-artboard { width: min(100%, calc(100dvh - 310px)); height: auto; aspect-ratio: 1; touch-action: none; }
.personalization-workspace .pw-artboard-caption { font-size: 13px; }
.personalization-workspace .pw-precise { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.personalization-workspace .pw-precise p { grid-column: 1 / -1; }
.personalization-workspace .pw-align { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 12px 0; }
.personalization-workspace .pw-align .btn { min-height: 44px; padding: 7px; font-size: 12px; white-space: normal; }
@media (max-width: 1150px) {
    .personalization-workspace[data-step="design"] .pw-body { grid-template-columns: 280px minmax(0,1fr); grid-template-areas: 'logo flat' 'settings flat' 'settings preview'; }
    .personalization-workspace .pw-preview { position: static; }
}
@media (max-width: 760px) {
    .personalization-workspace[data-step] { width: 100vw; height: 100dvh; }
    .personalization-workspace[data-step="design"] .pw-body { grid-template-columns: minmax(0,1fr); grid-template-areas: 'logo' 'flat' 'settings' 'preview'; }
    .personalization-workspace .pw-flat { position: static; }
}
.personalization-workspace:not([open]) { display: none; }
.personalization-workspace[open] { display: flex; flex-direction: column; }
.personalization-workspace::backdrop { background: #111b38b8; }
.personalization-workspace *, .personalization-workspace *::before, .personalization-workspace *::after { box-sizing: border-box; }
.personalization-workspace .pw-header {
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    padding: 18px 24px; border-bottom: 1px solid var(--pw-line); flex: 0 0 auto;
}
.personalization-workspace .pw-heading { min-width: 0; }
.personalization-workspace .pw-kicker { display: block; font-size: 10px; font-weight: 750; letter-spacing: .1em; color: #626b84; }
.personalization-workspace h2 { font-size: clamp(19px, 2vw, 25px); line-height: 1.2; margin: 4px 0; }
.personalization-workspace .pw-product-name { margin: 0; font-size: 13px; line-height: 1.4; overflow-wrap: anywhere; }
.personalization-workspace .pw-close {
    flex: 0 0 auto; border: 1px solid var(--pw-line); border-radius: 8px;
    padding: 11px 14px; min-height: 44px; color: var(--pw-ink); background: #fff;
    cursor: pointer; font: inherit; font-size: 13px;
}
.personalization-workspace .pw-form { display: flex; flex-direction: column; flex: 1; min-height: 0; min-width: 0; margin: 0; padding: 0; border: 0; }
.personalization-workspace .pw-form[hidden] { display: none; }
.personalization-workspace .pw-body {
    flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain;
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 440px);
    grid-template-areas: 'preview logo' 'preview settings';
    grid-template-rows: auto 1fr; align-items: start; background: #f5f6fa;
}
.personalization-workspace .pw-section { min-width: 0; padding: 22px; background: #fff; }
.personalization-workspace .pw-section-title { font-size: 16px; margin: 0 0 16px; line-height: 1.4; letter-spacing: 0; }
.personalization-workspace .pw-logo { grid-area: logo; border-bottom: 1px solid var(--pw-line); }
.personalization-workspace .pw-settings { grid-area: settings; min-width: 0; background: #fff; }
.personalization-workspace .pw-settings > .pw-section { border-bottom: 1px solid var(--pw-line); }
.personalization-workspace .pw-preview { grid-area: preview; position: sticky; top: 0; background: transparent; align-self: start; }
.personalization-workspace .commercial-simulation { margin: 0; padding: 0; border: 0; background: transparent; }
.personalization-workspace .simulation-stage { width: min(100%, 62dvh); aspect-ratio: 1; height: auto; max-height: none; margin: 0 auto; position: relative; border-radius: 12px; overflow: hidden; background: #fff; }
.personalization-workspace #internal-visualizer { display: block; position: relative; width: 100%; height: 100%; touch-action: none; }
.personalization-workspace #simulation-product { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; padding: 0; }
.personalization-workspace #simulation-logo { display: none; }
.personalization-workspace #internal-visualizer.visualizer-unavailable { visibility: hidden; }
.personalization-workspace #simulation-stage:has(#internal-visualizer.visualizer-unavailable) #simulation-product { opacity: 1; padding: 0; }
.personalization-workspace .visualizer-position-status { font-size: 12px; line-height: 1.5; margin: 8px 0 0; }
.personalization-workspace .commercial-simulation > span { display: none; }
.personalization-workspace .pw-render-note { font-size: 13px; line-height: 1.65; color: #414a60; margin: 14px 0 0; padding: 16px; background: #f7f8fa; border: 1px solid #dce0e8; border-radius: 10px; text-align: left; }
.personalization-workspace label { display: block; margin: 12px 0 7px; font-size: 13px; font-weight: 650; }
.personalization-workspace select,
.personalization-workspace input:not([type=hidden]):not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]) {
    display: block; width: 100%; max-width: 100%; min-width: 0; min-height: 44px;
    font: inherit; font-size: 16px; border: 1px solid #cdd3e2; border-radius: 8px; padding: 10px; color: var(--pw-ink); background: #fff;
}
.personalization-workspace input[hidden] { display: none !important; }
.personalization-workspace #custom-logo { border: 1px dashed #9ba6c4; background: #f7f8fc; font-size: 13px; }
.personalization-workspace #custom-logo::file-selector-button { padding: 10px; margin-right: 8px; border: 0; border-radius: 6px; background: var(--pw-ink); color: #fff; font-weight: 650; cursor: pointer; }
.personalization-workspace .muted, .personalization-workspace .print-colours p { font-size: 12px; line-height: 1.5; }
.personalization-workspace fieldset { min-width: 0; }
.personalization-workspace .print-colours { padding: 12px; margin-top: 16px; border: 1px solid var(--pw-line); border-radius: 8px; }
.personalization-workspace .visualizer-controls { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 12px 0 0; padding: 0; }
.personalization-workspace .visualizer-controls input[type=range] { width: 100%; }
.personalization-workspace #visualizer-help { grid-column: 1 / -1; font-size: 12px; margin: 0; line-height: 1.5; }
.personalization-workspace .pw-fit { width: 100%; white-space: normal; }
.personalization-workspace .pw-details { margin: 0; padding: 16px 22px; border-bottom: 1px solid var(--pw-line); }
.personalization-workspace .pw-section .pw-details { margin-top: 12px; padding: 12px 0 0; border-bottom: 0; }
.personalization-workspace .pw-details summary { cursor: pointer; font-size: 13px; font-weight: 650; min-height: 32px; }
.personalization-workspace .pw-details .price-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.personalization-workspace .price-tier { min-width: 0; }
.personalization-workspace .saved-logo-picker img { max-height: 60px; max-width: 100px; object-fit: contain; }
.personalization-workspace .pw-session-note { font-size: 12px; line-height: 1.5; padding: 0 22px 20px; margin: 12px 0 0; color: #667089; }
.personalization-workspace .bat-separation { margin: 16px 22px; font-size: 12px; }
.personalization-workspace .pw-footer { display: flex; flex: 0 0 auto; justify-content: space-between; align-items: center; gap: 18px; padding: 14px 24px; border-top: 1px solid var(--pw-line); background: #fff; }
.personalization-workspace .custom-quote { min-width: 0; flex: 1; padding: 0; margin: 0; border: 0; background: none; }
.personalization-workspace .custom-quote span, .personalization-workspace .custom-quote small { display: block; font-size: 12px; line-height: 1.4; }
.personalization-workspace .custom-quote strong { display: block; font-size: 24px; line-height: 1.3; color: var(--pw-ink); }
.personalization-workspace .pw-footer-actions { flex: 0 1 340px; text-align: center; }
.personalization-workspace .pw-footer-actions .btn { width: 100%; min-height: 46px; white-space: normal; }
.personalization-workspace .pw-footer-actions small { display: block; font-size: 11px; margin-top: 5px; }
.personalization-workspace :focus-visible { outline: 3px solid #326de0; outline-offset: 3px; }
@media (max-width: 760px) {
    .personalization-workspace { width: 100%; height: 100dvh; border: 0; border-radius: 0; }
    .personalization-workspace .pw-header { padding: max(12px, env(safe-area-inset-top)) 14px 12px; gap: 10px; }
    .personalization-workspace .pw-close { max-width: 115px; padding: 8px; font-size: 12px; }
    .personalization-workspace .pw-body { grid-template-columns: minmax(0, 1fr); grid-template-areas: 'logo' 'preview' 'settings'; grid-template-rows: auto auto auto; }
    .personalization-workspace .pw-preview { position: static; }
    .personalization-workspace .pw-section { padding: 16px; }
    .personalization-workspace .simulation-stage { width: min(100%, 340px); }
    .personalization-workspace .pw-footer { padding: 10px 14px max(10px, env(safe-area-inset-bottom)); gap: 10px; flex-wrap: wrap; }
    .personalization-workspace .pw-footer-actions { flex-basis: 100%; }
    .personalization-workspace .custom-quote strong { font-size: 21px; }
    .personalization-workspace .pw-footer-actions small { display: none; }
}
@media (max-height: 540px) and (min-width: 761px) {
    .personalization-workspace { height: 100dvh; }
    .personalization-workspace .pw-header { padding: 10px 18px; }
    .personalization-workspace .pw-kicker, .personalization-workspace .pw-product-name { display: none; }
    .personalization-workspace .pw-footer { padding: 8px 18px; }
}
/* Compact individual ink replacements, desktop and mobile. */
.personalization-workspace .po-colour-list { display:flex; flex-direction:column; gap:10px; }
.personalization-workspace .po-colour-card { display:block; padding:10px; min-width:0; }
.personalization-workspace .po-colour-card > label { display:block; margin-bottom:6px; font-size:12px; }
.personalization-workspace .pc-selected { display:flex; width:100%; align-items:center; gap:12px; padding:12px; min-height:48px; background:#f5f6fa; color:#172554; border:1px solid #cdd3e2; border-radius:6px; text-align:left; cursor:pointer; }
.personalization-workspace .pc-selected > span:nth-child(2) { flex:1; overflow-wrap:anywhere; }
.personalization-workspace .pc-dot { width:24px; height:24px; border:1px solid #aeb6c7; border-radius:50%; flex-shrink:0; }
.personalization-workspace .pc-editor { padding-top:10px; }
.personalization-workspace .pc-basics { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:10px; }
.personalization-workspace .pc-results { grid-template-columns:1fr; }
.personalization-workspace .pc-editor[hidden], .personalization-workspace .po-colour-quick[hidden] { display:none !important; }
.pa-review,.pa-prompt { border:1px solid #d1d7e4; border-radius:12px; padding:24px; max-width:90vw; max-height:90dvh; color:#172554; }
.pa-review::backdrop,.pa-prompt::backdrop { background:#1c264b99; }
.pa-review img { display:block; max-width:70vw; width:600px; height:55dvh; object-fit:contain; background:repeating-conic-gradient(#eee 0% 25%,white 0% 50%) 0/20px 20px; }
.pa-review button,.pa-prompt button { margin:10px; padding:12px; }
.pa-panel { padding:12px; min-width:0; }
.pa-panel > button { margin:4px 0; font-size:12px; }
.pa-rows { display:flex; flex-direction:column; gap:8px; }
.pa-rows details { border:1px solid #cdd3e2; border-radius:5px; padding:8px; background:white; }
.pa-rows summary { display:flex; align-items:center; gap:8px; cursor:pointer; min-height:36px; }
.pa-rows summary span:last-child { flex:1; }
.pa-rows summary::after { content:'⌄'; }
.pa-rows input { width:100%; min-width:0; }
.pa-rows small { display:block; overflow-wrap:anywhere; font-size:10px; }
.pa-rows .pc-results button { display:flex; gap:8px; text-align:left; }
.pv-grid { margin:16px 0; display:flex; flex-direction:column; gap:10px; }
.pv-row { display:grid; grid-template-columns:50px 1fr auto; align-items:center; gap:10px; padding:10px; border:1px solid #d1d7e4; border-radius:8px; }
.pv-row img { object-fit:contain; }
.pv-row input { width:100px; display:block; }
.pv-row small { font-size:12px; }
.pv-row[hidden] { display:none; }
@media(max-width:600px) { .pv-row { grid-template-columns:40px 1fr; } }
.personalization-workspace[data-step=configuration] .pw-body { display:grid; grid-template-columns:minmax(0,1fr) minmax(320px,480px); grid-template-areas:'preview logo' 'preview settings'; align-items:start; grid-template-rows:auto 1fr; }
.personalization-workspace[data-step=configuration] .pw-preview { grid-area:preview; }
.personalization-workspace[data-step=configuration] .pw-logo { grid-area:logo; }
.personalization-workspace[data-step=configuration] .pw-settings { grid-area:settings; }
.personalization-workspace[data-step=design] .pw-logo .pw-section { padding:10px 0; }
.pw-variant-choices { display:flex; flex-wrap:wrap; gap:8px; }
.pw-variant-choices button { display:flex; align-items:center; gap:6px; padding:8px; }
.pw-variant-choices button[aria-pressed=true] { outline:2px solid #1b2758; }
.pw-variant-choices img { object-fit:contain; }
@media(max-width:760px){.personalization-workspace[data-step=configuration] .pw-body { grid-template-columns:minmax(0,1fr); grid-template-areas:'logo' 'preview' 'settings'; grid-template-rows:auto auto auto; }}

#product-form [hidden],.personalization-workspace [hidden]{display:none!important}.pv-selected{border-color:#143f92;background:#edf4ff}.pv-total{font-weight:700;font-size:1.15rem;padding:1rem;background:#edf4ff}
/* Dense tools; previews remain separate from the product configuration screen. */
.personalization-workspace[data-step=design] .pw-logo { padding:12px; }
.personalization-workspace[data-step=design] .pw-logo h3 { font-size:14px; margin:8px 0; }
.personalization-workspace[data-step=design] .pw-logo p,.personalization-workspace[data-step=design] .pw-logo label { font-size:12px; line-height:1.4; }
.personalization-workspace[data-step=design] .pw-logo .btn { padding:7px 9px; min-height:32px; font-size:12px; border-radius:5px; white-space:normal; }
.personalization-workspace[data-step=design] .pw-logo input { padding:7px 8px; min-height:34px; font-size:13px; border-radius:4px; }
.personalization-workspace[data-step=design] .pw-configure { margin-bottom:8px; }
.personalization-workspace .pa-panel { padding:8px 0; }
.personalization-workspace .pa-rows { gap:4px; max-height:340px; overflow:auto; padding:3px; }
.personalization-workspace .pa-rows details { padding:4px 7px; }
.personalization-workspace .pa-rows summary { min-height:28px; font-size:12px; }
.personalization-workspace .pa-rows .pc-dot { width:17px; height:17px; }
.personalization-workspace .pa-rows .pc-results { max-height:220px; }
.personalization-workspace .pa-panel > button { margin:3px 4px 5px 0; }
.personalization-workspace .pa-transparency { padding:8px 0; border-bottom:1px solid #dce0eb; }
.personalization-workspace .pa-transparency > button { display:block; width:100%; margin:5px 0; text-align:left; }
.personalization-workspace .pa-transparency details,.personalization-workspace .pa-palette-note { font-size:11px; margin:7px 0; line-height:1.4; }
.personalization-workspace .pa-transparency input { max-width:100px; }
.personalization-workspace .pa-alerts { text-align:left; margin:8px 0 12px; }
.personalization-workspace .pa-alerts p { padding:8px 12px; margin:6px 0; border-radius:6px; font-size:13px; line-height:1.4; }
.pa-success { background:#e7f6eb; color:#145c2b; border:1px solid #92c8a1; }
.pa-error { background:#ffebed; color:#9a1524; border:1px solid #e3a0a8; }
.pa-notice { background:#fff3dc; color:#754600; border:1px solid #dfbc79; }
.personalization-workspace[data-step=design] .pw-logo .pw-details { margin:4px 0; padding:5px 0; }
.personalization-workspace[data-step=design] .pw-precise { gap:6px; margin-top:8px; }
.personalization-workspace[data-step=design] .pw-precise p { margin:0; font-size:11px; }
.personalization-workspace[data-step=design] .pw-align { grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; margin:6px 0; }
.pa-review .pa-region-image { width:auto; height:auto; max-width:70vw; max-height:60dvh; cursor:crosshair; }
.pv-row { grid-template-columns:50px minmax(100px,1fr) minmax(120px,auto); grid-template-areas:'image quantity stock' 'image quantity price' 'action action action'; }
.pv-row > img { grid-area:image; }
.pv-row > label { grid-area:quantity; }
.pv-row > small:nth-of-type(1) { grid-area:stock; text-align:right; }
.pv-row > small:nth-of-type(2) { grid-area:price; text-align:right; }
.pv-row > button { grid-area:action; justify-self:end; background:transparent; color:#425579; border:0; text-decoration:underline; font-size:12px; cursor:pointer; padding:4px; }
.pv-row input { padding:8px; border:1px solid #aeb8c9; border-radius:5px; margin-top:5px; width:100px; }
.pv-actions { display:flex; gap:12px; margin:12px 0; }
.pv-actions .btn { flex:1; white-space:normal; min-height:52px; padding:12px; border-radius:7px; text-align:center; font-size:15px; font-weight:700; }
.pv-actions .pv-blank { border:2px solid #172554; background:white; color:#172554; }
.pv-actions .pv-marked { border:2px solid #172554; background:#172554; color:white; }
.pv-tier-label { font-size:13px; font-weight:600; }
@media(max-width:600px){.pv-actions{flex-direction:column}.pv-row{grid-template-columns:40px minmax(80px,1fr) minmax(100px,auto);gap:8px}.pv-row small{font-size:11px}}
#personalization-workspace[data-step=design] .pw-logo section { margin:0; }
#personalization-workspace[data-step=design] .pw-logo label { margin:4px 0; font-size:11px; }
#personalization-workspace[data-step=design] .pw-logo input:not([type=hidden]) { min-height:32px; padding:6px 7px; font-size:13px; border-radius:4px; }
#personalization-workspace[data-step=design] .pw-logo input::file-selector-button { padding:6px; font-size:12px; }
#personalization-workspace[data-step=design] .pw-precise { grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px; }
#personalization-workspace[data-step=design] .pw-logo p { margin:5px 0; }
#personalization-workspace[data-step=design] .pw-logo .pw-details summary { min-height:24px; }

#personalization-workspace[data-step=design] .pw-align[role=group] { grid-template-columns:repeat(6,minmax(0,1fr)); }
#personalization-workspace[data-step=design] .pw-align[role=group] .btn { padding:4px; min-height:32px; display:grid; place-items:center; }

/* Configuration and purchase remain a single centred reading group. */
#personalization-workspace .pw-footer{display:flex;justify-content:center;padding:14px 20px}
#personalization-workspace .pw-purchase{width:min(100%,980px);display:flex;align-items:center;justify-content:center;gap:32px}
#personalization-workspace .pw-purchase .custom-quote{flex:1;min-width:0}
#personalization-workspace .pw-purchase details{font-size:12px;max-height:100px;overflow:auto}
#personalization-workspace .pw-purchase details p{margin:4px 0}
.checkout-blockers{border:1px solid #e0b778;background:#fff8ec;padding:16px;border-radius:12px;text-align:left;margin:12px 0}
.checkout-blockers ul{padding-left:20px}.checkout-blockers p{font-size:13px;text-align:left;margin:8px 0}
.checkout-blockers a{display:block;margin:8px 0;color:#164cad;text-decoration:underline}
.catalogue-price-condition{display:block;font-size:12px;color:#5e6370;padding-top:6px}
@media(max-width:760px){#personalization-workspace .pw-purchase{flex-direction:column;gap:8px;align-items:stretch}#personalization-workspace .pw-footer{padding:10px 14px}#personalization-workspace .pw-purchase .pw-footer-actions{width:100%}}

#personalization-purchase-reason{font-size:12px;max-width:340px;margin:4px 0;color:#8d3023}
.pw-lifestyle{margin-top:18px;border-top:1px solid #d6dcec;padding-top:16px}
.pw-lifestyle label,.pw-lifestyle select{display:block;width:100%;margin-bottom:8px}
.pw-lifestyle p{font-size:12px;line-height:1.5}.pw-lifestyle button{white-space:normal;width:100%}

@media(max-width:760px){#personalization-workspace .pw-purchase .pw-footer-actions{flex:0 0 auto}#personalization-workspace .pw-footer{max-height:45dvh;overflow:auto}}

/* Single workspace: preview and flat placement share the same controls/state. */
#personalization-workspace[data-step=unified] .pw-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,380px);grid-template-areas:'preview settings';align-items:start}
#personalization-workspace[data-step=unified] .pw-preview{grid-area:preview;position:static;min-width:0}
#personalization-workspace[data-step=unified] .pw-settings{grid-area:settings;min-width:0}
#personalization-workspace[data-step=unified] .pw-logo{padding:0;margin:0;max-width:none}
#personalization-workspace[data-step=unified] .pw-flat{position:static;margin-top:16px;padding:12px;border-radius:12px}
#personalization-workspace[data-step=unified] .pw-artboard{width:min(100%,520px);max-height:none;touch-action:none}
#personalization-workspace[data-step=unified] .simulation-stage{max-width:520px;margin:auto}
#personalization-workspace .pw-logo-thumbnail{width:100%;height:90px;object-fit:contain;background:repeating-conic-gradient(#eee 0% 25%,white 0% 50%) 0/16px 16px;margin:8px 0}
#personalization-workspace[data-step=unified] .pw-section{padding:14px}
#personalization-workspace[data-step=unified] .pw-section h3{font-size:16px;margin:0 0 12px}
#personalization-workspace[data-step=unified] .pw-section p{font-size:13px;line-height:1.5}
#personalization-workspace[data-step=unified] .pw-section .btn{padding:9px 12px;min-height:44px;font-size:13px;white-space:normal}
#personalization-workspace[data-step=unified] .pw-align{grid-template-columns:repeat(3,minmax(0,1fr))}
#personalization-workspace[data-step=unified] .pw-precise{grid-template-columns:repeat(3,minmax(0,1fr))}
#personalization-workspace[data-step=unified] .pw-precise input{width:100%;min-width:0}
@media(max-width:760px){
 #personalization-workspace[data-step=unified] .pw-body{grid-template-columns:minmax(0,1fr);grid-template-areas:'preview' 'settings';overflow:auto}
 #personalization-workspace[data-step=unified] .simulation-stage{max-width:220px}
 #personalization-workspace[data-step=unified] .pw-artboard{width:min(100%,340px)}
 #personalization-workspace .pw-footer{max-height:32dvh}
 #personalization-workspace .pw-header{padding:10px;gap:8px}
 #personalization-workspace .pw-header h2{font-size:20px}
}
#personalization-workspace[data-step=unified] .pw-body{overflow:hidden;grid-template-rows:minmax(0,1fr)}
#personalization-workspace[data-step=unified] .pw-preview,#personalization-workspace[data-step=unified] .pw-settings{height:100%;overflow:auto;box-sizing:border-box}
#personalization-workspace[data-step=unified] .pw-artboard{width:min(100%,calc(100dvh - 410px));min-width:240px}
.pw-view-choices{display:flex;gap:8px;justify-content:center}.pw-view-choices button[aria-pressed=true]{background:#172554;color:white}
@media(max-width:760px){#personalization-workspace[data-step=unified] .pw-body{overflow:auto;grid-template-rows:auto auto}#personalization-workspace[data-step=unified] .pw-preview,#personalization-workspace[data-step=unified] .pw-settings{height:auto;overflow:visible}#personalization-workspace[data-step=unified] .pw-artboard{width:100%;max-width:340px;min-width:0}}

.pw-mobile-panel>summary{display:none}.pw-mobile-panel{border:0;margin:0;padding:0}@media(max-width:700px){.pw-mobile-panel>summary{display:list-item;padding:16px;font-weight:700;cursor:pointer}.pw-mobile-panel>section>h3{display:none}.pw-mobile-panel{border-bottom:1px solid #dde1ec}.pw-mobile-panel .pw-section{border:0}}

@media(min-width:761px){#personalization-workspace[data-step=unified] .simulation-stage{width:min(100%,max(220px,calc(100dvh - 410px)))}}

/* Three-column studio: tools / artwork / positions and product preview. */
#personalization-workspace[data-step=unified] .pw-body{grid-template-columns:260px minmax(0,1fr) 310px;grid-template-areas:'tools artwork settings';align-items:stretch}
#personalization-workspace[data-step=unified] .pw-body>.pw-mobile-panel{grid-area:tools;overflow:auto;min-height:0}
#personalization-workspace[data-step=unified] .pw-flat{grid-area:artwork;overflow:auto;min-height:0;margin:0;background:#e9e9ec;display:flex;flex-direction:column;align-items:center;justify-content:center}
#personalization-workspace[data-step=unified] .pw-settings{grid-area:settings}
#personalization-workspace[data-step=unified] .pw-artboard{width:min(100%,800px);min-width:0}
#personalization-workspace[data-step=unified] .pw-preview{height:auto;overflow:visible;max-width:100%}
#personalization-workspace[data-step=unified] .simulation-stage{width:100%;max-width:260px}
#personalization-workspace[data-step=unified] .pw-section{padding:10px}
#personalization-workspace[data-step=unified] .pw-section h3{font-size:14px;margin-bottom:8px}
#personalization-workspace .pw-logo-thumbnail{height:65px}
#personalization-workspace .pw-footer-quantity{max-width:200px;margin-right:18px;font-size:12px}
#personalization-workspace .pw-footer-quantity input{width:100%;min-height:38px}
#personalization-workspace .pw-footer-quantity small{display:block;font-size:11px}
.pw-center-upload{position:absolute;z-index:2}.pa-notice{background:#fff3db;color:#754908;padding:9px;border-radius:6px}
@media(max-width:1000px){#personalization-workspace[data-step=unified] .pw-body{grid-template-columns:220px minmax(0,1fr) 260px}}
@media(max-width:760px){#personalization-workspace[data-step=unified] .pw-body{display:flex;flex-direction:column;overflow:auto}#personalization-workspace[data-step=unified] .pw-flat{order:-1;min-height:270px;overflow:visible}#personalization-workspace[data-step=unified] .pw-body>.pw-mobile-panel{overflow:visible}#personalization-workspace .pw-footer{flex-wrap:wrap;max-height:35dvh}#personalization-workspace .pw-footer-quantity{max-width:none;width:100%;margin:0}#personalization-workspace .pw-footer-quantity label{display:flex;align-items:center;gap:12px}#personalization-workspace .pw-footer-quantity input{max-width:100px}#personalization-workspace[data-step=unified] .pw-artboard{width:100%;max-width:400px}}

@media(min-width:761px){#personalization-workspace[data-step=unified] .pw-artboard{width:min(100%,max(240px,calc(100dvh - 320px)));flex-shrink:0}#personalization-workspace .pw-flat .pa-alerts{font-size:12px;margin:4px}#personalization-workspace .pw-section button{font-size:12px;padding:7px 10px}#personalization-workspace .pw-section input{min-height:32px;padding:6px}#personalization-workspace .pw-variant-grid img{max-height:28px}#personalization-workspace .pw-section label{font-size:12px}#personalization-workspace .pw-logo p{font-size:11px;margin:7px 0}}

@media(min-width:761px) and (max-width:1100px){#personalization-workspace[data-step=unified] .pw-body{display:flex;flex-direction:column;overflow:auto}#personalization-workspace[data-step=unified] .pw-flat{order:-1;min-height:350px;overflow:visible}#personalization-workspace[data-step=unified] .pw-body>.pw-mobile-panel{overflow:visible}#personalization-workspace[data-step=unified] .pw-settings{height:auto;overflow:visible}#personalization-workspace[data-step=unified] .pw-artboard{max-width:380px}#personalization-workspace .pw-logo-thumbnail{max-width:300px}}

/* Targeted UX: readable side panels; canvas notices occupy their own row. */
#personalization-workspace[data-step=unified] .pw-body{grid-template-columns:300px minmax(0,1fr) 340px}
#personalization-workspace[data-step=unified] .pw-section{padding:18px;min-width:0}
#personalization-workspace[data-step=unified] .pw-section h3{font-size:16px}
#personalization-workspace[data-step=unified] .pw-section p,#personalization-workspace .pw-section label,#personalization-workspace .pw-section button{font-size:14px;line-height:1.45}
#personalization-workspace .pw-section input,#personalization-workspace .pw-section select{min-height:42px;min-width:0;font-size:14px;box-sizing:border-box;max-width:100%}
#personalization-workspace .pw-section button{padding:9px 12px;white-space:normal}
#personalization-workspace .pw-logo p{font-size:13px}
#personalization-workspace .pw-logo-thumbnail{height:auto;max-height:100px;max-width:100%;object-fit:contain}
#personalization-workspace .pw-precise{gap:8px}#personalization-workspace .pw-precise label{font-size:13px}
#personalization-workspace[data-step=unified] .pw-flat{justify-content:flex-start;gap:12px;padding:18px}
#personalization-workspace .pw-flat .pa-alerts{align-self:flex-start;width:min(100%,310px);font-size:13px;margin:0;flex-shrink:0;text-align:left}
#personalization-workspace .pa-alerts p{padding:8px 10px;margin:0 0 6px;border-radius:8px;font-size:13px;line-height:1.35}
#personalization-workspace .pa-alerts .pc-analysis{padding:0;margin:0;border:0;background:none}
#personalization-workspace .pa-alerts .pc-analysis>strong{display:none}
#personalization-workspace .pa-alerts .pc-analysis p:not(.pa-notice){display:none}
#personalization-workspace form[data-editable-artwork='1'] .pc-analysis{display:none}
#personalization-workspace .pw-flat .pw-artboard{flex-shrink:0;width:min(100%,max(240px,calc(100dvh - 450px)));margin:auto}
#personalization-workspace .pw-canvas-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:stretch;flex-shrink:0}
#personalization-workspace .pw-canvas-actions[hidden],#personalization-workspace .pw-dropzone[hidden]{display:none}
#personalization-workspace .pw-dropzone{position:relative;border:2px dashed #a8b4d0;background:#fff;border-radius:14px;padding:24px;text-align:center;max-width:480px}
#personalization-workspace .pw-center-upload{position:static}
#personalization-workspace .pw-dropzone.is-dragging{border-color:#326de0;background:#edf3ff}
#personalization-workspace .pw-footer{gap:18px;padding:12px 24px}
#personalization-workspace .pw-footer-quantity{flex-shrink:0}
#personalization-workspace .pw-purchase{min-width:0}
#personalization-workspace .pp-current{grid-template-columns:80px minmax(0,1fr)}
#personalization-workspace .pp-current strong{overflow-wrap:break-word}
.pa-email-dialog{box-sizing:border-box;width:min(580px,calc(100vw - 32px));max-width:580px;max-height:90dvh;padding:30px;border:0;border-radius:20px;color:#202a50;overflow:auto}
.pa-email-dialog::backdrop{background:rgba(20,29,58,.55)}
.pa-email-dialog h2{font-size:26px;line-height:1.2;margin:0 32px 14px 0}
.pa-email-dialog p{font-size:15px;line-height:1.5;margin:12px 0}
.pa-email-dialog form{display:flex;flex-direction:column;gap:12px}
.pa-email-dialog .pa-email-label{display:flex;flex-direction:column;gap:8px;font-weight:600}
.pa-email-dialog input[type=email]{box-sizing:border-box;width:100%;height:50px;font-size:16px;padding:12px;border:1px solid #aeb8ce;border-radius:9px}
.pa-email-dialog .pa-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.45;font-weight:400}
.pa-email-dialog .pa-consent input{width:18px;height:18px;flex-shrink:0;margin-top:2px}
.pa-email-dialog .pa-privacy{font-size:12px;color:#525b70}
.pa-email-dialog .pa-dialog-actions{display:flex;gap:12px;flex-wrap:wrap}
.pa-email-dialog .btn{min-height:48px;font-size:15px;padding:12px 18px}
.pa-email-dialog .pa-dialog-close{position:absolute;right:14px;top:12px;background:none;border:0;padding:8px;font-size:24px;cursor:pointer}
.pa-email-dialog .pa-error:empty{display:none}.pa-email-dialog .pa-error{color:#a52020;font-size:14px}
.price-components p{margin:8px 0;font-size:14px}.price-components small{display:block;font-size:12px}
@media(min-width:1600px){#personalization-workspace[data-step=unified] .pw-body{grid-template-columns:340px minmax(0,1fr) 380px}}
@media(max-width:1100px){#personalization-workspace[data-step=unified] .pw-body{display:flex;flex-direction:column;overflow:auto}#personalization-workspace[data-step=unified] .pw-flat{order:-1;overflow:visible;min-height:360px;flex-shrink:0}#personalization-workspace[data-step=unified] .pw-settings{height:auto;overflow:visible}#personalization-workspace[data-step=unified] .pw-body>.pw-mobile-panel{overflow:visible;flex-shrink:0}#personalization-workspace .pw-flat .pw-artboard{max-width:420px}#personalization-workspace .pa-alerts{position:static}#personalization-workspace .pw-footer{padding:10px 14px}}
@media(max-width:600px){.pa-email-dialog{padding:24px 18px}.pa-email-dialog h2{font-size:23px}.pa-email-dialog .pa-dialog-actions{flex-direction:column}#personalization-workspace .pw-footer{max-height:40dvh;overflow:auto;gap:8px}#personalization-workspace .pw-footer-quantity small{font-size:11px}#personalization-workspace .pw-purchase{flex-direction:column;gap:8px}#personalization-workspace .pw-footer-actions{min-width:0;width:100%}}

#personalization-workspace .pw-flat[data-empty='1'] .pw-artboard,#personalization-workspace .pw-flat[data-empty='1'] .pw-artboard-caption{display:none}
#personalization-workspace .pw-dropzone{box-sizing:border-box;width:100%;min-height:260px;margin:auto;background:repeating-conic-gradient(#eef0f5 0% 25%,white 0% 50%) 0/24px 24px;display:flex;flex-direction:column;justify-content:center;align-items:center}
#personalization-workspace .pw-dropzone p{background:rgba(255,255,255,.93);padding:8px;border-radius:6px}

#personalization-workspace .pa-alerts p:empty{display:none}

/* The preview does not participate in order selection. */
.detail-visual .product-personalized-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.detail-visual .product-personalized-preview[hidden]{display:none}
.product-preview-controls{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.product-preview-controls[hidden]{display:none}
.product-preview-controls small{flex-basis:100%;color:#526078}
.product-preview-controls [aria-pressed=true]{background:#eef3ff;border-color:#232f5d}

#personalization-workspace .pw-flat{position:relative}
#personalization-workspace .pw-lifestyle,#personalization-workspace .pw-prebat{flex:none;background:#fff;border:1px solid #dce1eb;border-radius:12px;padding:10px 14px;margin:4px auto;box-sizing:border-box;width:min(100%,720px);font-size:12px;line-height:1.4}
#personalization-workspace .pw-lifestyle{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#personalization-workspace .pw-lifestyle label{display:flex;gap:8px;align-items:center;font-size:12px}
#personalization-workspace .pw-lifestyle select{max-width:100%;min-width:0;box-sizing:border-box}
#personalization-workspace .pw-lifestyle p,#personalization-workspace .pw-prebat p{font-size:12px;line-height:1.4;margin:4px 0}
#personalization-workspace .pw-lifestyle p{flex-basis:100%}
#personalization-workspace .pw-lifestyle p:empty,#personalization-workspace .pw-prebat p:empty{display:none}
#personalization-workspace .pw-flat .btn{font-size:12px;min-height:40px;padding:8px 12px}
#personalization-workspace .pw-prebat details{margin-top:4px}
#personalization-workspace .pw-prebat li{margin:8px 0}
#personalization-workspace .pw-prebat li button{margin-left:8px}
#personalization-workspace .pw-lifestyle img{max-height:240px;object-fit:contain}
#personalization-workspace .pw-flat .pw-artboard{min-height:0;flex:1}
@media(max-width:600px){#personalization-workspace .pw-flat .btn{min-height:44px}#personalization-workspace .pw-lifestyle label{flex-wrap:wrap}#personalization-workspace .pw-flat{padding:12px}}
#personalization-workspace .pw-document-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:760px;margin:5px auto;flex:none}
#personalization-workspace .pw-document-actions section{display:block;margin:0;width:100%;padding:8px;text-align:left;border-radius:8px}
#personalization-workspace .pw-document-actions .btn{display:block;width:100%;font-size:12px;min-height:38px;margin:0 0 4px}
#personalization-workspace .pw-document-actions p{font-size:12px;text-align:left;line-height:1.4}
#personalization-workspace .pw-document-actions details{font-size:11px;text-align:left}
#personalization-workspace .pw-document-actions summary{cursor:pointer}
#personalization-workspace .pw-document-actions label{display:flex;flex-direction:column;gap:4px}
@media(max-width:450px){#personalization-workspace .pw-document-actions .btn{font-size:11px;padding:8px 4px;min-height:48px}#personalization-workspace .pw-flat .pw-view-choices{flex-wrap:wrap}}
/* Keep the artwork visible alongside the document actions on short desktop screens. */
@media(min-width:761px) and (max-width:1100px){
 #personalization-workspace .pw-footer-quantity{max-width:140px;margin-right:0}
 #personalization-workspace .pw-purchase{gap:14px}
 #personalization-workspace .pw-footer-actions{flex-basis:250px}
}
@media(min-width:1101px){
 #personalization-workspace[data-step=unified] .pw-flat{gap:6px;padding:10px;align-self:stretch;height:100%;box-sizing:border-box}
 #personalization-workspace .pw-flat>.pw-section-title{margin:0;font-size:14px}
 #personalization-workspace .pw-flat .commercial-simulation{container-type:size;flex:1 1 0;min-height:180px;width:100%;display:flex;flex-direction:column;justify-content:center}
 #personalization-workspace .pw-flat .commercial-simulation[hidden]{display:none}
 #personalization-workspace[data-step=unified] .simulation-stage{height:auto;width:min(100cqw,calc(100cqh - 40px));max-width:100%;min-height:0;aspect-ratio:1;flex:none}
 #personalization-workspace .pw-flat .visualizer-position-status{font-size:11px!important}
 #personalization-workspace .pw-flat .pw-artboard{flex:none;width:min(100%,max(180px,calc(100dvh - 480px)))}
}
/* The native input remains accessible through the labelled visual-library action. */
.pw-upload-input,.pw-upload-label{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap;}
.pw-visual-library{display:grid;gap:12px;margin:12px 0;}
.pw-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.pw-visual-item{min-width:44px;min-height:64px;width:100%;padding:8px;border:1px solid #cbd0dd;border-radius:8px;background:repeating-conic-gradient(#fff 0% 25%,#eef0f4 0% 50%) 0 0/16px 16px;cursor:pointer;}
.pw-visual-item[aria-pressed="true"]{outline:2px solid #007aff;outline-offset:2px;}
.pw-visual-item.is-white{background:#636c7a;}
.pw-visual-item img{display:block;width:100%;height:54px;object-fit:contain;}
.pw-visual-item:focus-visible{outline:3px solid #172554;outline-offset:3px;}

/* Zone and artwork cards stay compact while keeping touch targets usable. */
.pw-zone-list{display:grid;gap:12px;margin:12px 0}.pw-zone-row{display:flex;gap:8px;align-items:center}.pw-zone-row>button:first-child{display:flex;gap:8px;align-items:center;flex:1;text-align:left}.pw-zone-row img{width:44px;height:44px;object-fit:contain;background:#eef0f4}.pw-zone-row [aria-pressed="true"]{outline:2px solid #326de0;outline-offset:1px}.pw-logo-thumbnail{max-height:64px;object-fit:contain}.pw-canvas-actions{display:flex;flex-wrap:wrap;gap:12px}
#personalization-workspace .pw-zone-row>button:first-child{min-width:0;min-height:44px;border-radius:12px;padding:10px;justify-content:flex-start;white-space:normal;overflow-wrap:anywhere;font-size:13px;line-height:1.35}
#personalization-workspace .pw-zone-row img{flex:0 0 36px;width:36px;height:36px;border-radius:4px}
#personalization-workspace .pw-zone-row>button:last-child{flex:none;min-height:44px;padding:8px;font-size:12px}

.logo-library-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.logo-library-list button{display:grid;gap:8px;overflow-wrap:anywhere}.logo-library-list img{width:100%;height:80px;object-fit:contain;background:#d9dce2}

#personalization-workspace .pw-upload-input,#personalization-workspace .pw-upload-label{width:1px;min-width:0;max-width:1px;height:1px;left:0;}
@media(max-width:760px){
 #personalization-workspace .pw-footer{display:grid;grid-template-columns:92px minmax(0,1fr);gap:8px 12px;align-items:start;}
 #personalization-workspace .pw-footer-quantity{display:block;max-width:92px;margin:0;}
 #personalization-workspace .pw-footer-quantity small{font-size:10px;line-height:1.3;margin-top:5px;}
 #personalization-workspace .pw-purchase{display:contents;}
 #personalization-workspace .custom-quote{min-width:0;grid-column:2;}
 #personalization-workspace .pw-footer-actions{grid-column:1/-1;}
}

/* Keep the product view beside the physical editing plane. */
#personalization-workspace .pw-live-product { display:block; width:100%; max-height:270px; aspect-ratio:1; object-fit:contain; background:#f7f7f9; border-radius:12px; }
#personalization-workspace .pw-preview { position:static; padding:16px; background:#fff; border-bottom:1px solid var(--pw-line); }
#personalization-workspace .pw-preview .pw-section-title { font-size:16px; margin-bottom:12px; }
#personalization-workspace .pw-workshop-advice { padding:12px 0 0; display:grid; gap:12px; }
#personalization-workspace .pw-workshop-advice p { font-size:13px; margin:0; }
#personalization-workspace .pw-history-actions { display:flex; flex-wrap:wrap; gap:12px; margin-block:12px; }
#personalization-workspace .pw-history-actions .btn, #personalization-workspace .pw-canvas-actions .btn { flex:1 1 130px; min-height:44px; margin:0; }
#personalization-workspace .pw-workshop-advice .btn { min-height:44px; padding:8px 12px; font-size:12px; }
#personalization-workspace .pw-zone-row { align-items:stretch; flex-wrap:wrap; }
#personalization-workspace .pw-zone-row>button:first-child { flex-basis:100%; }
#personalization-workspace .pw-zone-row>button:last-child { margin-left:auto; }
#personalization-workspace .pw-document-actions p { font-size:12px; }
.product-gallery-panel { min-width:0; }
.product-gallery-panel .detail-visual { position:relative; top:auto; }
.product-gallery-panel .product-gallery { display:flex; flex-wrap:nowrap; overflow-x:auto; gap:12px; padding-block:8px; }
.product-gallery-panel .product-gallery button { flex:0 0 72px; min-width:44px; min-height:64px; }
.product-gallery-panel .product-preview-notice { display:block; font-size:13px; padding-top:8px; }
@media(min-width:901px) {
 .product-gallery-panel { position:sticky; top:var(--gallery-top,160px); align-self:start; }
 .product-gallery-panel .detail-visual>img { height:clamp(140px,calc(100dvh - var(--gallery-top,160px) - var(--gallery-extra,130px)),650px); width:100%; padding:24px; object-fit:contain; }
}
@media(max-width:900px) { .product-gallery-panel { position:static; } }
/* Four tool steps leave the canvas and purchase column independent. */
#personalization-workspace .pw-guided-step{border-top:1px solid #dce1eb;margin:0;padding:0;min-width:0}
#personalization-workspace .pw-guided-step>summary{display:list-item;cursor:pointer;padding:14px 4px;font-size:14px;line-height:1.45;font-weight:700;overflow-wrap:anywhere}
#personalization-workspace .pw-step-summary{display:block;font-size:12px;line-height:1.5;font-weight:400;color:#5d6575;margin-top:6px}
#personalization-workspace .pw-step-content{padding:0 4px 12px;min-width:0}
#personalization-workspace .pw-step-content .pw-section{padding:0;border:0}
#personalization-workspace .pw-step-content .pw-section-title,#personalization-workspace .pw-step-content .pa-panel>h3,#personalization-workspace .pw-step-content .pa-transparency>h3{display:none}
#personalization-workspace .pw-step-content>.pw-mobile-panel>summary{display:none}
#personalization-workspace .pw-guided-step summary:focus-visible{outline:2px solid #0672dc;outline-offset:-2px}
#personalization-workspace .pw-step-content .pw-canvas-actions{display:flex;flex-wrap:wrap;gap:8px}

/* Colour is a viewing choice; the order's size matrix stays in its own editor. */
#personalization-workspace .pw-variant-choices { display:grid; grid-template-columns:repeat(auto-fit,minmax(108px,1fr)); gap:8px; }
#personalization-workspace .pw-variant-choices button { min-height:54px; min-width:0; border-radius:10px; justify-content:flex-start; text-align:left; overflow-wrap:anywhere; }
#personalization-workspace .pw-variant-choices img { flex:none; width:34px; height:40px; object-fit:contain; }
#personalization-workspace .pw-colour-label { font-weight:700; margin:0 0 10px; }
#personalization-workspace .pw-reference-note { color:#5b6475; font-size:13px; margin:12px 0; }
#personalization-workspace .pw-selection-summary { margin:8px 0; }
#personalization-workspace .pw-selection-lines { padding-left:18px; font-size:13px; line-height:1.5; }
#personalization-workspace .pw-quantity-editor { max-height:390px; overflow:auto; padding:4px; }
#personalization-workspace .pw-quantity-editor fieldset { border:1px solid var(--pw-line); border-radius:8px; padding:10px; margin:12px 0; }
#personalization-workspace .pw-quantity-editor legend { font-size:14px; font-weight:700; padding:0 4px; }
#personalization-workspace .pw-quantity-editor label { display:grid; grid-template-columns:minmax(0,1fr) 90px; align-items:center; gap:4px 10px; margin:8px 0; }
#personalization-workspace .pw-quantity-editor small { grid-column:1; font-size:11px; font-weight:400; color:#5b6475; }
#personalization-workspace .pw-quantity-editor input { grid-column:2; grid-row:1/3; }
#personalization-workspace .pw-size-row { padding:8px 0; border-bottom:1px solid var(--pw-line); }
#personalization-workspace .pw-size-row:last-child { border-bottom:0; }
#personalization-workspace .pw-size-row .pw-view-size { min-height:36px; padding:5px 9px; font-size:12px; }
#personalization-workspace .pw-quantity-actions { display:flex; flex-wrap:wrap; gap:8px; }
#personalization-workspace .pw-matrix-quantity { flex:0 1 180px; }
#personalization-workspace .pw-quantity-total { display:block; font-size:16px; margin-bottom:8px; }
#personalization-workspace .pw-matrix-quantity .btn { padding:8px 10px; min-height:44px; white-space:normal; font-size:13px; }
/* Keep compound colour names readable inside the compact two-column selector. */
#personalization-workspace .pw-variant-choices button { display:grid; grid-template-columns:24px minmax(0,1fr); gap:6px; padding:8px; overflow-wrap:normal; word-break:normal; }
#personalization-workspace .pw-variant-choices img { width:24px; height:34px; }
#personalization-workspace .pw-precise input { appearance:textfield; }
#personalization-workspace .pw-precise input::-webkit-inner-spin-button, #personalization-workspace .pw-precise input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
@media(max-width:1100px) { #personalization-workspace[data-step=unified] .pw-flat { align-self:stretch; width:100%; box-sizing:border-box; } }
/* Fit the complete dimensioned plan into the space left by the real document
   controls and purchase footer. Resizing the display never changes millimetres. */
#personalization-workspace .pw-artboard-frame { container-type:size; width:100%; min-height:120px; flex:1 1 0; display:grid; place-items:center; }
#personalization-workspace .pw-artboard-frame:has(>.pw-artboard[hidden]),
#personalization-workspace .pw-flat[data-empty='1'] .pw-artboard-frame { display:none; }
#personalization-workspace[data-step=unified] .pw-artboard-frame>.pw-artboard { width:min(100cqw,100cqh); height:auto; max-width:100%; min-width:0; aspect-ratio:1; margin:0; flex:none; }
#personalization-workspace .pw-artboard-caption { flex:none; margin:0; }
@media(min-width:1101px) {
 #personalization-workspace .pw-workshop-advice p { font-size:12px; line-height:1.35; margin:6px 0 2px; }
 #personalization-workspace .pw-workshop-advice .btn { min-height:32px; padding:5px 8px; }
}
@media(max-width:1100px) {
 #personalization-workspace[data-step=unified] .pw-flat { height:auto; }
 #personalization-workspace .pw-artboard-frame { flex:none; height:clamp(180px,45dvh,500px); }
}

/* Grille couleurs × tailles et barre de prix fixe (fiche produit, 19/10/2026). */
.pv-grid { margin:18px 0 10px; gap:12px; }
.pv-grid .pv-title { margin:0; font-size:17px; font-weight:700; letter-spacing:-.01em; color:#1d1d1f; }
.pv-picker-hint { margin:0; font-size:13px; color:#6e6e73; }
.pv-colour-picker { display:flex; flex-wrap:wrap; gap:6px; }
.pv-chip { display:inline-flex; align-items:center; gap:6px; padding:4px 10px 4px 4px; border:1px solid #dedee3; border-radius:999px; background:#fff; color:#1d1d1f; font:inherit; font-size:13px; cursor:pointer; transition:border-color .15s, background .15s; }
.pv-chip img { width:28px; height:28px; border-radius:50%; object-fit:contain; background:#f5f5f7; }
.pv-chip:hover { border-color:#86868b; }
.pv-chip.active { border-color:#1d1d1f; background:#f5f5f7; font-weight:600; }
.pv-chip.pv-chip-out { opacity:.45; }
.pv-chip:focus-visible, .pv-remove:focus-visible { outline:2px solid #0071e3; outline-offset:2px; }
.pv-blocks { display:flex; flex-direction:column; gap:10px; }
.pv-colour { border:1px solid #dedee3; border-radius:16px; padding:12px; background:#fff; }
.pv-colour-head { display:flex; align-items:center; gap:10px; margin-bottom:10px; }
.pv-colour-head img { width:44px; height:44px; object-fit:contain; border-radius:10px; background:#f5f5f7; }
.pv-colour-name { flex:1; min-width:0; display:flex; flex-direction:column; }
.pv-colour-name strong { font-size:15px; }
.pv-colour-sub { font-size:12px; color:#6e6e73; }
.pv-remove { background:none; border:0; padding:4px; color:#6e6e73; font:inherit; font-size:12px; text-decoration:underline; cursor:pointer; }
.pv-sizes { display:grid; grid-template-columns:repeat(auto-fill,minmax(78px,1fr)); gap:6px; }
.pv-sizes .pv-row { display:flex; flex-direction:column; align-items:stretch; gap:3px; padding:7px; border:1px solid #e8e8ed; border-radius:10px; background:#fbfbfd; grid-template-areas:none; grid-template-columns:none; cursor:text; }
.pv-sizes .pv-row > * { grid-area:auto; }
.pv-size { font-size:12px; font-weight:700; text-align:center; color:#1d1d1f; }
.pv-sizes .pv-row input { width:100%; margin:0; padding:7px 4px; border:1px solid #c7c7cc; border-radius:7px; text-align:center; font-size:15px; font-variant-numeric:tabular-nums; background:#fff; -moz-appearance:textfield; }
.pv-sizes .pv-row input::-webkit-outer-spin-button, .pv-sizes .pv-row input::-webkit-inner-spin-button { -webkit-appearance:none; margin:0; }
.pv-sizes .pv-row input:focus { outline:2px solid #0071e3; outline-offset:0; border-color:#0071e3; }
.pv-sizes .pv-row small { font-size:10.5px; line-height:1.25; text-align:center; color:#6e6e73; }
.pv-sizes .pv-row .pv-price { display:none; }
.pv-sizes .pv-row.pv-selected { border-color:#1d1d1f; background:#f5f5f7; }
.pv-sizes .pv-row.pv-selected .pv-price { display:block; color:#1d1d1f; }
.pv-sizes .pv-row.pv-out { opacity:.5; cursor:not-allowed; }
.pv-sizes .pv-row.pv-over .pv-stock { color:#b25000; font-weight:600; }
.pv-sizes .pv-row input:invalid { border-color:#e6383f; }
.pv-grid .pv-total { margin:0; border-radius:12px; font-size:15px; background:#f5f5f7; color:#1d1d1f; }

.pv-sticky { position:fixed; left:0; right:0; bottom:0; z-index:60; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px max(16px, calc((100vw - 1180px) / 2)); background:rgba(255,255,255,.92); -webkit-backdrop-filter:saturate(180%) blur(20px); backdrop-filter:saturate(180%) blur(20px); border-top:1px solid #dedee3; box-shadow:0 -6px 24px rgba(0,0,0,.06); transition:transform .25s ease, opacity .25s ease; }
.pv-sticky.pv-sticky-hidden { transform:translateY(110%); opacity:0; pointer-events:none; }
.pv-sticky-info { display:flex; flex-direction:column; min-width:0; }
.pv-sticky-count { font-size:12px; color:#6e6e73; }
.pv-sticky-total { font-size:19px; font-weight:700; letter-spacing:-.01em; font-variant-numeric:tabular-nums; color:#1d1d1f; }
.pv-sticky-ttc, .pv-sticky-unit { font-size:12px; color:#6e6e73; }
.pv-sticky-info { flex-flow:row wrap; column-gap:8px; align-items:baseline; }
.pv-sticky-count { flex-basis:100%; }
.pv-sticky .pv-sticky-cta { flex:0 0 auto; min-height:46px; padding:0 26px; border-radius:999px; border:0; background:#1d1d1f; color:#fff; font-size:15px; font-weight:600; cursor:pointer; }
.pv-sticky .pv-sticky-cta:hover { background:#000; }
.pv-sticky .pv-sticky-cta:disabled { opacity:.6; cursor:progress; }
body.has-pv-sticky { padding-bottom:84px; }
@media (max-width:600px) {
  .pv-sizes { grid-template-columns:repeat(auto-fill,minmax(64px,1fr)); }
  .pv-sticky { padding:10px 14px; gap:10px; }
  .pv-sticky-total { font-size:17px; }
  .pv-sticky-unit { display:none; }
  .pv-sticky .pv-sticky-cta { padding:0 18px; font-size:14px; }
}
@media (prefers-reduced-motion:reduce) { .pv-sticky { transition:none; } }
.pa-review .pa-review-intro{font-size:14px;line-height:1.45;margin:4px 0 12px}
.pa-review-compare{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.pa-review-compare figure{margin:0;padding:10px;border:1px solid #dedee3;border-radius:12px;background:#f5f5f7;text-align:center}
.pa-review-compare img{width:100%;height:160px;object-fit:contain}
.pa-review-compare figcaption{font-size:12px;color:#6e6e73;margin-top:6px}
.pa-review .pa-review-note{font-size:12px;color:#6e6e73}
/* Mobile : pied de Studio compact pour laisser la place à la création. */
@media (max-width:760px){
#personalization-workspace .pw-footer{gap:6px 10px!important;padding:8px 12px calc(8px + env(safe-area-inset-bottom))!important;max-height:none!important}
#personalization-workspace .pw-footer-quantity{display:flex!important;align-items:center;flex-wrap:nowrap;gap:10px;width:100%}
#personalization-workspace .pw-footer-quantity>label,#personalization-workspace .pw-footer-quantity>small{display:none!important}
#personalization-workspace .pw-footer-quantity .pw-quantity-total{flex:1;font-size:14px;line-height:1.25;margin:0}
#personalization-workspace .pw-footer-quantity .btn{flex:0 0 auto;padding:8px 14px;font-size:13px;min-height:0}
#personalization-workspace .pw-footer .custom-quote{font-size:12px;line-height:1.35;max-height:3.2em;overflow:hidden;margin:0}
#personalization-workspace .pw-footer-actions{gap:4px}
#personalization-workspace .pw-footer-actions .btn.primary{width:100%;padding:10px 14px;font-size:14px;min-height:0}
#personalization-workspace .pw-footer-actions p{font-size:11px;margin:0}
}
/* Ordinateur : pied de Studio sur une seule ligne. */
@media (min-width:761px) and (max-height:1000px){
#personalization-workspace .pw-footer-quantity>label,#personalization-workspace .pw-footer-quantity>small{display:none!important}
#personalization-workspace .pw-footer-quantity{display:flex!important;align-items:center;gap:10px}
#personalization-workspace .pw-footer-quantity .pw-quantity-total{font-size:14px;margin:0}
#personalization-workspace .pw-footer{padding-top:8px!important;padding-bottom:8px!important}
}
/* Écrans de portable (≤ 1000 px de haut) : en-tête sur une ligne, plus de place pour la création. */
@media (min-width:761px) and (max-height:1000px){
#personalization-workspace .pw-header{padding-top:10px!important;padding-bottom:10px!important}
#personalization-workspace .pw-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 12px}
#personalization-workspace .pw-heading .pw-kicker{display:none}
#personalization-workspace .pw-heading h2{font-size:20px;margin:0}
#personalization-workspace .pw-heading .pw-product-name{margin:0;font-size:13px}
#personalization-workspace .pw-close{min-height:0;padding:6px 12px}
#personalization-workspace .pw-flat>.pw-section-title{display:none}
}
.pw-zone-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px;margin-top:8px}
.pw-zone-gallery[hidden]{display:none}
.pw-zone-gallery>p{grid-column:1/-1;margin:0;font-size:12px;font-weight:600;color:#1d1d1f}
.pw-zone-gallery .pw-zone-thumb{display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px;border:1px solid #dedee3;border-radius:10px;background:#fff;font-size:10px;line-height:1.2;color:#1d1d1f;cursor:pointer;min-height:0}
.pw-zone-gallery .pw-zone-thumb img{width:100%;aspect-ratio:1;object-fit:contain}
.pw-zone-gallery .pw-zone-thumb.is-active{border:2px solid #0071e3;padding:3px}
#personalization-workspace .pw-logo-colours{display:flex;align-items:center;gap:6px;flex-basis:100%;justify-content:center;font-size:12px;color:#6e6e73}
#personalization-workspace .pw-logo-colours .pw-logo-swatch{width:24px;height:24px;min-height:0;padding:0;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #c7c7cc;background:var(--swatch);cursor:pointer}
#personalization-workspace .pw-logo-colours .pw-logo-swatch:hover{box-shadow:0 0 0 2px #0071e3}
#personalization-workspace .pw-detail-alert{order:3;align-self:center;max-width:560px;margin:4px auto;padding:8px 12px;border-radius:10px;background:#fff4e5;border:1px solid #ffb340;color:#7a4b00;font-size:12px;line-height:1.4;text-align:left}
#personalization-workspace .pw-detail-alert[hidden]{display:none}
/* Logo adapté au nombre de couleurs de la technique : bandeau non bloquant au-dessus du plan. */
#personalization-workspace .pw-colour-limit{order:3;align-self:center;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:start;max-width:620px;margin:4px auto;padding:10px 14px;border-radius:10px;background:#f1f6ff;border:1px solid #9dbdf0;color:var(--navy);font-size:12px;line-height:1.45;text-align:left}
#personalization-workspace .pw-colour-limit[hidden]{display:none}
#personalization-workspace .pw-colour-limit-swatches{display:flex;gap:4px;padding-top:2px}
#personalization-workspace .pw-colour-limit-dot{width:18px;height:18px;border-radius:50%;background:var(--swatch);border:2px solid #fff;box-shadow:0 0 0 1px #c7c7cc}
#personalization-workspace .pw-colour-limit-text{margin:0}
#personalization-workspace .pw-colour-limit-actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}
#personalization-workspace .pw-colour-limit-actions .btn{flex:1 1 180px;min-height:38px;padding:7px 12px;font-size:12px}
#personalization-workspace .pw-colour-limit-actions .btn[hidden]{display:none}
#personalization-workspace .pw-footer-quantity input[readonly]{background:#f5f6f8;color:var(--muted)}
#personalization-workspace .pw-footer-quantity .btn[hidden]{display:none}

/* Scene picker: visible choices, one tap (real-world scenes first, exact render last). */
.pw-lifestyle .pw-scene-choices{border:0;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%;min-width:0}
.pw-lifestyle .pw-scene-choices legend{font-weight:600;font-size:13px;margin-bottom:6px;padding:0}
.pw-lifestyle .pw-scene-choice{display:inline-flex!important;align-items:center;gap:6px;width:auto!important;margin:0!important;padding:7px 12px;border:1px solid #cfd6e6;border-radius:999px;background:#fff;cursor:pointer;font-size:12px;line-height:1.2}
.pw-lifestyle .pw-scene-choice input{position:absolute;opacity:0;width:1px;height:1px}
.pw-lifestyle .pw-scene-choice:has(input:checked){border-color:#232f5d;background:#eef3ff;color:#16204a;font-weight:600}
.pw-lifestyle .pw-scene-choice:has(input:focus-visible){outline:2px solid #3b5bdb;outline-offset:2px}
.pw-lifestyle .pw-scene-choice.is-faithful{border-style:dashed}
.pw-lifestyle .pw-scene-note{color:#526078}
#personalization-workspace .pw-lifestyle .pw-scene-choices{flex-basis:100%}
/* Vectorisation non recommandée (photo, dégradés) : le bouton reste utilisable, l'avertissement est visible sans survol. */
.pa-vector-unadvised{opacity:.8}
.pa-vector-unadvised::after{content:' · non recommandé';font-size:12px;font-weight:400}
