/* Isolated from the catalogue and the external-provider editor. */
html.pw-is-open { overflow: hidden; }
.personalization-workspace {
    --pw-ink: #232f5d;
    --pw-line: #dce0eb;
    width: min(1380px, calc(100vw - 32px));
    height: min(980px, calc(100dvh - 32px));
    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: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: 12px; line-height: 1.5; color: #667089; margin: 14px 0 0; }
.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; }
}
