/* 2026-09-28: the four-stage production workspace. Width owns preview size.
 * The existing calculator and checkout retain their validation/data contracts. */
body.theo-order-page { --workspace-header: 64px; --workspace-bar: 88px; }
.theo-order-boot { display: none; }
html.theo-order-booting .theo-order { visibility: hidden; }
html.theo-order-booting { overflow: hidden; }
html.theo-order-booting .theo-order-boot { position: fixed; inset: 0; z-index: 1000; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 32px; background: #fff; color: #6b6b6b; text-align: center; }
.theo-order-boot p { margin: 0; font: 400 14px/1.6 Pretendard,sans-serif; }
.theo-order-boot__indicator { width: 24px; height: 24px; border: 2px solid #ebebeb; border-top-color: #111; border-radius: 50%; animation: theo-boot-spin .8s linear infinite; }
@keyframes theo-boot-spin { to { transform: rotate(360deg); } }
body.theo-order-page .site-header--order .primary-bar--order { display: flex; justify-content: space-between; min-height: 64px; }
body.theo-order-page .order-header-actions { display: flex; gap: 12px; align-items: center; }
.order-header-icon { display: inline-flex; position: relative; width: 44px; height: 44px; align-items: center; justify-content: center; padding: 10px; color: #111; border: 0; background: #fff; }
.order-header-icon svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.order-header-icon [data-theo-header-cart-count] { position: absolute; top: 1px; right: 0; min-width: 17px; height: 17px; padding-inline: 3px; border-radius: 50%; color: #fff; background: #111; font-size: 11px; line-height: 17px; text-align: center; }
.theo-order { padding-top: var(--workspace-header); padding-bottom: var(--workspace-bar); }
.theo-order .theo-order-layout { width: min(1440px,calc(100% - 64px)); max-width: 1440px; padding-block: 24px; }
.theo-order :is(.theo-order-toolbar,.theo-order-steps,.theo-order-b2b-ribbon,.theo-order-b2b,.theo-editor-screen-heading) { display: none; }
.theo-order .theo-order-panel { padding: 0; }
body:has(.theo-order:not([data-order-step="4"])) .site-footer { display: none; }
.theo-order-legal { display: none; }
.theo-order[data-order-step="1"] { padding: 0 0 116px; }
.theo-order[data-order-step="1"] .theo-order-legal { position: fixed; inset: auto 0 0; z-index: 21; display: flex; align-items: center; justify-content: center; gap: 24px; min-height: 32px; padding: 4px 16px max(4px,env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid #ebebeb; }
.theo-order-legal a { font-size: 12px; line-height: 1.6; color: #6b6b6b; text-decoration: underline; text-underline-offset: 3px; }
.theo-order .theo-order-actions { position: fixed; z-index: 20; left: 0; right: 0; bottom: 0; display: grid; grid-template-columns: 160px minmax(0,1fr) auto 200px; align-items: center; gap: 24px; width: 100%; min-height: var(--workspace-bar); margin: 0; padding: 16px max(32px,calc((100vw - 1440px)/2)); background: #fff; border-top: 1px solid #dedede; box-shadow: none; backdrop-filter: none; }
.theo-order .theo-order-actions > .button { height: auto; min-width: 0; font-size: 14px; }
.theo-order .theo-order-actions [data-order-next] { grid-column: 4; }
.theo-order .theo-order-actions [data-order-help] { grid-column: 2 / 4; }
.theo-order .theo-order-actions .button--primary { color: #fff; background: #1f7a3e; border-color: #1f7a3e; }
.theo-order .theo-order-actions .button:disabled { color: #6b6b6b; background: #ebebeb; border-color: #ebebeb; opacity: 1; }
.theo-order .theo-order-actions .theo-workspace-selection { display: none; }
.theo-order[data-order-step="2"] .theo-order-actions .theo-workspace-selection { display: block; grid-column: 2; margin: 0; font-size: 14px; line-height: 1.6; text-align: left; color: #111; }
.theo-order :is(.theo-workspace-action-total,.theo-cart-action-total) { grid-column: 3; gap: 4px 12px; align-items: center; flex-wrap: wrap; }
.theo-workspace-action-total button { padding: 6px 0; border: 0; background: none; color: #111; text-decoration: underline; text-underline-offset: 3px; font-size: 14px; }
.theo-order:not([data-order-step="2"]) [data-workspace-toggle] { display: none; }
.theo-order[data-order-step="1"] .theo-order-actions { bottom: 32px; }

/* Twelve columns: 4 + 8, expanding to 4 + 5 + 3. */
.theo-order .theo-workspace-v2 { display: block; margin: 0; }
.theo-order .theo-workspace-v2 .theo-studio-grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 24px; align-items: start; margin: 0; }
.theo-order .theo-workspace-v2 .theo-studio-controls { position: sticky; top: calc(var(--workspace-header) + 24px); grid-column: span 4; display: block; min-width: 0; min-height: 0; max-height: calc(100svh - var(--workspace-header) - var(--workspace-bar) - 48px); overflow: auto; contain: layout paint; overscroll-behavior: contain; scrollbar-gutter: stable; border: 0; padding: 0 4px 8px 0; }
.theo-order .theo-workspace-v2 .theo-studio-controls > * + * { margin-top: 16px; }
.theo-order .theo-workspace-v2 .theo-studio-controls { background: #ebebeb; }
.theo-order .theo-workspace-v2 :is(.theo-option-builder,.theo-option-accordion) { background: transparent; }
.theo-order .theo-workspace-v2 .theo-option-builder { display: block; border: 0; padding: 0; }
.theo-workspace-central { grid-column: span 8; min-width: 0; display: grid; gap: 16px; }
.theo-workspace-v2:not([data-detail-panel=""]) .theo-workspace-central { grid-column: span 5; }
.theo-order .theo-workspace-v2 .theo-studio-summary { grid-column: span 3; position: static; display: block; min-width: 0; max-height: calc(100svh - var(--workspace-header) - var(--workspace-bar) - 48px); overflow: auto; scrollbar-gutter: stable; border: 1px solid #dedede; background: #fff; }
.theo-order .theo-workspace-v2 :is(.theo-option-current,.theo-studio-dimensions,.theo-option-builder__heading) { display: none; }
.theo-order .theo-workspace-v2 .theo-studio-preview { position: static; min-width: 0; margin: 0; border: 1px solid #dedede; }
.theo-order .theo-workspace-v2 .theo-studio-preview__header { display: none; }
.theo-order .theo-workspace-v2 .theo-studio-preview__header h3 { margin: 0; font-size: 16px; line-height: 1.5; }
.theo-order .theo-workspace-v2 .theo-editor-stage { width: 100%; height: auto; min-height: 0; max-height: none; aspect-ratio: 16 / 9; overflow: hidden; background: #f6f6f6; }
.theo-order .theo-workspace-v2 .theo-editor-product-view { position: absolute; inset: 0; min-height: 0; }
.theo-order .theo-workspace-v2 .theo-room-background { object-fit: cover; object-position: center; }
.theo-order .theo-workspace-v2 .is-room .theo-editor-product { cursor: grab; touch-action: none; user-select: none; }
.theo-order .theo-workspace-v2 .is-room .theo-editor-product.is-dragging { cursor: grabbing; }
.theo-order .theo-workspace-v2 .theo-room-picker { padding: 8px; gap: 8px; align-items: start; scroll-snap-type: x proximity; scroll-padding-inline: 8px; scrollbar-width: thin; }
/* Both rows are explicit: a one-line caption must never vertically recenter its image. */
.theo-order .theo-workspace-v2 .theo-room-picker button { display: grid; grid-template-columns: minmax(0,1fr); grid-template-rows: 48px 36px; align-content: start; align-items: start; gap: 6px; flex: 1 0 88px; min-width: 88px; max-width: 112px; height: 104px; box-sizing: border-box; font-size: 12px; line-height: 18px; border: 1px solid #dedede; padding: 6px; scroll-snap-align: start; }
.theo-order .theo-workspace-v2 .theo-room-picker button[aria-pressed="true"] { border: 1px solid #111; padding: 6px; box-shadow: inset 0 0 0 1px #111; }
.theo-order .theo-workspace-v2 .theo-room-picker button:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.theo-order .theo-workspace-v2 .theo-room-picker img,
.theo-order .theo-workspace-v2 .theo-room-picker-product { grid-row: 1; display: block; width: 100%; height: 48px; min-height: 0; aspect-ratio: auto; object-fit: cover; background: #f6f6f6; }
.theo-order .theo-workspace-v2 .theo-room-picker-label { grid-row: 2; display: block; width: 100%; height: 36px; margin: 0; padding: 0; font-size: 12px; line-height: 18px; text-align: center; overflow-wrap: normal; }
.theo-order .theo-workspace-v2 .theo-room-picker-product { position: relative; }
.theo-room-picker-product::before { content: ''; position: absolute; width: 24px; height: 20px; top: 50%; left: 50%; transform: translate(-50%,-50%); border: 1px solid #6b6b6b; background: #fff; box-shadow: inset 0 0 0 3px #f6f6f6; }
.theo-order .theo-workspace-v2 .theo-editor-note { display: block; padding: 8px 12px; margin: 0; font-size: 12px; line-height: 1.6; color: #6b6b6b; border-top: 1px solid #ebebeb; }
.theo-order .theo-workspace-v2 .theo-editor-placeholder { padding: 16px; }

/* Files are visual selectors, not another filename navigation bar. */
.theo-order .theo-workspace-v2 .theo-size-files { display: block; margin: 0; padding: 0; border: 0; }
.theo-order .theo-workspace-v2 .theo-size-file-list { display: flex; gap: 16px; overflow-x: auto; padding: 14px 14px 4px 0; margin: 0; scroll-snap-type: x proximity; scrollbar-width: thin; }
.theo-order .theo-workspace-v2 .theo-size-file { position: relative; flex: 0 0 64px; width: 64px; min-width: 0; }
.theo-order .theo-workspace-v2 .theo-size-file > button:first-child { min-height: 0; height: 64px; display: flex; align-items: center; justify-content: center; padding: 4px; border: 1px solid #dedede; background: #f6f6f6; color: #111; }
.theo-order .theo-workspace-v2 .theo-size-file > button.is-active { border: 2px solid #111; padding: 3px; background: #fff; }
.theo-order .theo-workspace-v2 .theo-size-file img { width: 100%; height: 100%; object-fit: contain; }
.theo-order .theo-workspace-v2 .theo-size-file .theo-artwork-remove { position: absolute; top: -14px; right: -14px; width: 44px; min-height: 44px; height: 44px; padding: 0; display: block; gap: 0; border: 0; background: transparent; color: #111; font-size: 0; line-height: 0; cursor: pointer; }
/* Circle and icon share the exact same center; no anonymous text/grid row participates. */
.theo-artwork-remove::before { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); box-sizing: border-box; width: 26px; height: 26px; border-radius: 50%; border: 1px solid #dedede; background: #fff; box-shadow: 0 1px 3px #00000014; }
.theo-artwork-remove::after,
.theo-workspace-close::after { content: ''; position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 12px; height: 12px; pointer-events: none; background: currentColor; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3l10 10M13 3L3 13' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 3l10 10M13 3L3 13' fill='none' stroke='black' stroke-width='1.75' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat; }
.theo-artwork-remove:hover::before { background: #ebebeb; border-color: #6b6b6b; }
.theo-order .theo-workspace-v2 .theo-size-file > button:focus-visible { outline: 2px solid #111; outline-offset: -2px; }
.theo-order .theo-workspace-v2 .theo-artwork-add { display: flex; flex-direction: column; align-items: center; justify-content: center; flex: 0 0 64px; min-height: 64px; border: 1px dashed #a3a3a3; font-size: 14px; line-height: 1.6; cursor: pointer; }
.theo-order .theo-workspace-v2 .theo-option-reuse { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; padding: 12px; }
.theo-order .theo-workspace-v2 .theo-option-reuse strong { font-size: 14px; font-weight: 400; }
.theo-workspace-v2 .theo-option-reuse p { display: none; }
.theo-workspace-v2 .theo-option-reuse small { display: none; }
.theo-order .theo-workspace-v2 .theo-option-reuse .button { min-height: 40px; padding: 8px 12px; font-size: 14px; }

/* One expanded stage; completed rows expose an explicit change action. */
.theo-order .theo-workspace-v2 .theo-editor-journey { position: sticky; top: 0; z-index: 2; overflow: visible; margin: 0; border: 0; padding: 16px 4px 12px; background: #ebebeb; }
.theo-order .theo-workspace-v2 .theo-editor-journey ol { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; padding: 0; margin: 0; }
.theo-order .theo-workspace-v2 .theo-editor-journey li { position: relative; min-width: 0; }
.theo-order .theo-workspace-v2 .theo-editor-journey li + li::before { content: ''; position: absolute; top: 12px; left: calc(-50% + 20px); right: calc(50% + 20px); height: 1px; background: #c4c4c4; }
.theo-order .theo-workspace-v2 .theo-editor-journey li:has(.is-complete)::before,
.theo-order .theo-workspace-v2 .theo-editor-journey li:has([aria-current="step"])::before { background: #111; }
.theo-order .theo-workspace-v2 .theo-editor-journey button { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: start; gap: 10px; width: 100%; min-height: 62px; padding: 0 4px 4px; border: 0; border-radius: 0; background: transparent; color: #6b6b6b; box-shadow: none; }
.theo-workspace-number { display: inline-flex; flex: 0 0 auto; width: 24px; height: 24px; align-items: center; justify-content: center; color: #6b6b6b; background: #fff; border: 1px solid #dedede; border-radius: 50%; font-size: 12px; line-height: 1; }
.theo-workspace-progress-label { font-size: 12px; line-height: 1.5; text-align: center; }
.theo-order .theo-workspace-v2 .theo-editor-journey button[aria-current="step"] { color: #111; background: transparent; }
.theo-workspace-progress[aria-current="step"] .theo-workspace-number { color: #fff; background: #111; border-color: #111; box-shadow: 0 0 0 4px #11111114; }
.theo-workspace-progress[aria-current="step"] .theo-workspace-progress-label { font-weight: 600; }
.theo-workspace-progress.is-complete .theo-workspace-number { color: #fff; background: #111; border-color: #111; }
.theo-workspace-progress.is-complete .theo-workspace-progress-label { color: #111; }
.theo-workspace-progress:not(:disabled):hover .theo-workspace-progress-label { text-decoration: underline; text-underline-offset: 3px; }
.theo-workspace-progress:focus-visible { outline: 2px solid #111; outline-offset: -2px; }
.theo-order .theo-workspace-progress:disabled { cursor: default; opacity: 1; }
.theo-workspace-progress:disabled .theo-workspace-number { color: #6b6b6b; background: #ebebeb; }
.theo-workspace-groups { display: grid; gap: 12px; }
.theo-workspace-group { border: 1px solid #dedede; min-width: 0; background: #fff; }
.theo-workspace-group-head { display: grid; grid-template-columns: 24px minmax(100px,1fr) minmax(40px,1.1fr) auto; align-items: center; gap: 8px; width: 100%; min-height: 56px; padding: 12px; border: 0; background: #fff; text-align: left; font-size: 14px; }
.theo-workspace-group-head:focus-visible { outline: 2px solid #111; outline-offset: -2px; }
.theo-workspace-group-head:hover { box-shadow: inset 3px 0 #111; }
.theo-workspace-group-head strong { color: #111; font-size: 14px; font-weight: 600; }
.theo-workspace-group-head .theo-workspace-change { grid-column: 4; grid-row: 1; }
.theo-workspace-group-value { grid-column: 3; color: #6b6b6b; font-weight: 400; font-size: 12px; line-height: 1.5; }
.theo-workspace-group-value:empty { display: none; }
.theo-workspace-group.is-current > .theo-workspace-group-head { border-bottom: 1px solid #ebebeb; }
.theo-workspace-group:not(.is-current),
.theo-workspace-group:not(.is-current) > .theo-workspace-group-head { background: #f6f6f6; }
.theo-workspace-group.is-current > .theo-workspace-group-head strong { grid-column: 2 / -1; }
.theo-workspace-group.is-current > .theo-workspace-group-head .theo-workspace-number { background: #111; border-color: #111; color: #fff; }
.theo-workspace-change { color: #6b6b6b; font-size: 12px; font-weight: 400; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.theo-order .theo-workspace-v2 .theo-option-accordion { border: 0; }
.theo-order .theo-workspace-v2 [data-option-section] { border: 0; border-bottom: 1px solid #ebebeb; margin: 0; }
.theo-order .theo-workspace-v2 [data-option-section]:last-child { border-bottom: 0; }
.theo-order .theo-workspace-v2 .theo-option-accordion summary { display: grid; grid-template-columns: minmax(0,1fr) auto; min-height: 48px; padding: 12px 16px; gap: 4px 12px; border: 0; }
.theo-order .theo-workspace-v2 .theo-option-accordion summary strong { grid-area: 1 / 1; font-size: 14px; }
.theo-order .theo-workspace-v2 .theo-option-accordion summary em { grid-area: 2 / 1; max-width: none; white-space: normal; overflow: visible; color: #6b6b6b; font-size: 14px; font-style: normal; }
.theo-order .theo-workspace-v2 .theo-option-accordion summary::after { display: none; }
.theo-order .theo-workspace-v2 .theo-option-accordion summary > .theo-workspace-change { display: inline; grid-column: 2; grid-row: 1 / span 2; }
.theo-order .theo-workspace-v2 [data-option-section][open] > summary .theo-workspace-change { display: none; }
.theo-order .theo-workspace-v2 [data-option-section][open] > summary em { display: none; }
.theo-order .theo-workspace-v2 [data-option-section]:not([open]) > summary { grid-template-columns: auto minmax(0,1fr) auto; align-items: baseline; }
.theo-order .theo-workspace-v2 [data-option-section]:not([open]) > summary em { grid-area: 1 / 2; font-size: 12px; }
.theo-order .theo-workspace-v2 [data-option-section]:not([open]) > summary > .theo-workspace-change { grid-area: 1 / 3; }
.theo-workspace-group-body > .theo-workspace-info-link { margin: 0 16px; }
.theo-order .theo-workspace-v2 .theo-option-panel { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; padding: 0 16px 16px; }
.theo-order .theo-workspace-v2 .theo-coa-grid:not(.theo-coa-grid--edition) { grid-template-columns: minmax(0,1fr); }
.theo-order .theo-workspace-v2 .theo-coa-grid--edition > .field:nth-child(2),
.theo-order .theo-workspace-v2 .theo-coa-grid--edition > .field:nth-child(3) { grid-template-rows: minmax(42px,auto) 48px; }
.theo-order .theo-workspace-v2 .theo-coa-grid--edition > .field:nth-child(2) > span,
.theo-order .theo-workspace-v2 .theo-coa-grid--edition > .field:nth-child(3) > span { align-self: end; font-size: 14px; line-height: 1.5; }
.theo-order .theo-workspace-v2 .theo-option-subgrid { background: #fbfbfb; padding: 16px; gap: 16px; }
.theo-order .theo-workspace-v2 .theo-additional-services { display: grid; gap: 12px; margin: 0; padding-top: 16px; }
.theo-order .theo-workspace-v2 .theo-additional-services :is(h4,p,.theo-check) { margin: 0; }
.theo-order .theo-workspace-v2 .theo-additional-services h4 { font-size: 14px; }
.theo-order .theo-workspace-v2 .theo-additional-services p { font-size: 12px; line-height: 1.6; }
.theo-order .theo-workspace-v2 .theo-additional-services .theo-check { min-height: 40px; }
.theo-order .theo-workspace-v2 .theo-face-bases { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.theo-order .theo-workspace-v2 .theo-workspace-field { width: 100%; min-width: 0; border: 0; }
.theo-order .theo-workspace-v2 .theo-workspace-field > summary { display: block; padding: 12px 0; min-height: 44px; font-size: 14px; line-height: 1.6; }
.theo-order .theo-workspace-v2 .theo-workspace-field[open] > summary { display: none; }
.theo-order .theo-workspace-v2 .theo-workspace-field > .field { width: 100%; }
.theo-order .theo-workspace-v2 .theo-production-instructions small { display: none; }
.theo-order .theo-workspace-v2 [data-option-canvas-size-fields] { display: grid; gap: 16px; }
.theo-order .theo-workspace-v2 .theo-checkbox { display: flex; align-items: center; gap: 8px; min-height: 40px; font-size: 14px; }
.theo-order .theo-workspace-v2 .theo-checkbox input { width: 20px; height: 20px; }
.theo-order .theo-workspace-v2 .theo-option-values { gap: 8px; }
.theo-order .theo-workspace-v2 :is(.theo-choice-card,.theo-option-value) > span { min-height: 48px; padding: 12px; border-color: #dedede; }
.theo-order .theo-workspace-v2 :is(.theo-choice-card,.theo-option-value) strong { font-size: 14px; line-height: 1.5; font-weight: 500; }
.theo-order .theo-workspace-v2 :is(.theo-choice-card,.theo-option-value) input:checked + span { color: #fff; background: #111; border-color: #111; }
.theo-order .theo-workspace-v2 :is(.theo-choice-card,.theo-option-value) input:checked + span :is(strong,small) { color: inherit; }
.theo-order .theo-workspace-v2 .theo-option-value small { font-size: 12px; line-height: 1.5; }
.theo-order .theo-workspace-v2 :is(.theo-choice-card,.theo-option-value):not(.theo-option-value--paper) small { display: none; }
.theo-order .theo-workspace-v2 .theo-option-value--paper > span { display: grid; grid-template-columns: 40px minmax(0,1fr); column-gap: 12px; min-height: 68px; }
.theo-order .theo-workspace-v2 .theo-option-value--paper .theo-option-value__body { grid-template-rows: auto auto; row-gap: 2px; }
.theo-order .theo-workspace-v2 .theo-option-value--paper img { grid-row: 1 / span 2; width: 40px; height: 44px; }
.theo-order .theo-workspace-v2 .theo-option-value--paper .theo-option-swatch { grid-column: 1; grid-row: 1 / span 2; width: 40px; height: 44px; min-height: 0; }
.theo-order .theo-workspace-v2 .theo-option-value--paper :is(strong,small,em) { grid-column: 2; }
.theo-order .theo-workspace-v2 .theo-option-value--paper strong { align-self: end; }
.theo-order .theo-workspace-v2 .theo-option-value--paper small { color: #6b6b6b; }
.theo-order .theo-workspace-v2 .theo-option-filter { gap: 8px; }
.theo-order .theo-workspace-v2 .theo-option-filter button { min-height: 40px; padding: 8px; font-size: 12px; }
.theo-order .theo-workspace-v2 .theo-option-filter button :is(strong,small) { font-size: 12px; }
.theo-order .theo-workspace-v2 :is(.theo-paper-picker__heading,.theo-paper-picker__guide,[data-option-paper-help],[data-option-paper-badge-help],.theo-size-editor__header,.theo-size-reference,.theo-size-swap,.theo-margin-head > p) { display: none; }
.theo-order .theo-workspace-v2 .theo-size-workspace { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; padding: 16px; border: 0; }
.theo-workspace-group-body > #size-input-help { margin: 0; padding: 12px 16px; font-size: 12px; line-height: 1.6; color: #6b6b6b; }
.theo-order .theo-workspace-v2 .theo-size-editor { padding: 0; border: 0; }
.theo-order .theo-workspace-v2 .theo-size-controls { margin: 0; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.theo-order .theo-workspace-v2 .theo-size-input input[type="number"] { padding: 10px 40px 10px 10px; appearance: textfield; -moz-appearance: textfield; }
.theo-order .theo-workspace-v2 .theo-size-input input[type="number"]::-webkit-inner-spin-button,
.theo-order .theo-workspace-v2 .theo-size-input input[type="number"]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.theo-order .theo-workspace-v2 .theo-size-input b { right: 10px; }
.theo-order .theo-workspace-v2 .theo-size-lock { grid-column: 1/-1; min-height: 40px; }
.theo-order .theo-workspace-v2 .theo-size-lock :is(span,label) { font-size: 14px; }
.theo-order .theo-workspace-v2 :is(.theo-size-workspace .field-help,.theo-option-panel .field-help) { font-size: 12px; margin: 0; line-height: 1.6; }
.theo-order .theo-workspace-v2 [data-workspace-confirm] { width: fit-content; min-height: 40px; font-size: 14px; padding: 8px 16px; }
.theo-order .theo-workspace-v2 [data-option-section] > [data-workspace-confirm] { margin: 0 16px 16px; }
.theo-size-confirmed { width: 100%; padding: 8px 0; border: 0; background: #fff; text-align: left; font-size: 14px; line-height: 1.6; }
.theo-workspace-quality-link { width: 100%; min-height: 40px; padding: 8px 12px; border: 0; border-left: 3px solid #33ff66; background: #fbfbfb; color: #1f7a3e; text-align: left; font-size: 14px; }
.theo-workspace-quality-link[data-quality*="is-yellow"] { border-color: #ffcc00; color: #111; }
.theo-workspace-quality-link[data-quality*="is-red"] { border-color: #f95150; color: #d63b3a; }
.theo-workspace-quality-link[data-quality*="is-neutral"] { border-color: #6b6b6b; color: #111; }
.theo-workspace-group-body > [data-editor-ratio-note] { margin: 0; padding: 12px 16px; border-left: 3px solid #ffcc00; background: #fbfbfb; font-size: 12px; line-height: 1.6; }
.theo-workspace-info-link, .theo-workspace-consult { padding: 8px 0; border: 0; background: #fff; color: #111; text-align: left; font-size: 14px; line-height: 1.6; text-decoration: underline; text-underline-offset: 3px; }
.theo-order .theo-workspace-v2 :is(.theo-workspace-validation,.theo-option-error,.theo-production-constraints) { margin: 0; padding: 16px; font-size: 14px; line-height: 1.6; border: 1px solid #dedede; border-left: 3px solid #f95150; background: #fbfbfb; color: #111; }
.theo-order .theo-workspace-v2 .theo-production-constraints { border-left-color: #ffcc00; }
.theo-order .theo-workspace-v2 .theo-production-constraints :is(strong,p) { font-size: 14px; line-height: 1.6; }

/* The optional information slot has one heading and one close control. */
.theo-workspace-detail-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; border-bottom: 1px solid #dedede; }
.theo-workspace-detail-head h3 { margin: 0; font-size: 16px; font-weight: 600; }
.theo-workspace-close { position: relative; display: block; flex: 0 0 44px; width: 44px; height: 44px; padding: 0; border: 1px solid #dedede; background: #fff; color: #111; font-size: 0; line-height: 0; cursor: pointer; }
.theo-workspace-close::after { width: 16px; height: 16px; }
.theo-workspace-close:hover { background: #f6f6f6; border-color: #6b6b6b; }
.theo-workspace-close:focus-visible { outline: 2px solid #111; outline-offset: 2px; }
.theo-order .theo-workspace-v2 .theo-studio-quote { padding: 16px; margin: 0; }
.theo-order .theo-workspace-v2 .theo-studio-quote > header { display: none; }
.theo-order .theo-workspace-v2 .theo-studio-quote dl > div { font-size: 14px; line-height: 1.6; gap: 8px; }
.theo-order .theo-workspace-v2 .theo-workspace-quantity { margin-bottom: 12px; }
.theo-workspace-discount { margin: 0 0 16px; font-size: 12px; }
.theo-workspace-discount summary { cursor: pointer; color: #6b6b6b; }
.theo-workspace-discount [data-option-quantity-help] { display: block; padding-top: 8px; font-size: 12px; line-height: 1.6; }
.theo-order .theo-workspace-v2 .theo-delivery-preview { padding: 12px 0 0; border: 0; background: #fff; font-size: 12px; }
.theo-order .theo-workspace-v2 .theo-studio-quote > p { display: none; }
.theo-workspace-info { padding: 16px; }
.theo-workspace-info h4 { margin: 0 0 16px; font-size: 16px; }
.theo-workspace-info p { font-size: 14px; line-height: 1.7; }
.theo-workspace-info a { font-size: 14px; }
.theo-order .theo-workspace-v2 .theo-size-quality { position: static; border: 0; }

@media(max-width:1199px) {
 .theo-order .theo-order-layout { width: calc(100% - 40px); }
 .theo-order .theo-workspace-v2 .theo-studio-grid { grid-template-columns: minmax(280px,4fr) minmax(0,8fr); gap: 20px; }
 .theo-order .theo-workspace-v2 .theo-studio-controls { grid-column: 1; grid-row: 1 / span 2; }
 .theo-order .theo-workspace-v2 .theo-workspace-central { grid-column: 2; grid-row: 1; }
 .theo-order .theo-workspace-v2 .theo-studio-summary { grid-column: 2; grid-row: 2; max-height: none; }
 .theo-order .theo-order-actions { grid-template-columns: 140px minmax(0,1fr) 180px; gap: 16px; padding-inline: 20px; }
 .theo-order .theo-order-actions [data-order-next] { grid-column: 3; }
 .theo-order .theo-order-actions [data-order-help] { grid-column: 2; }
 .theo-order .theo-order-actions :is(.theo-workspace-action-total,.theo-cart-action-total) { grid-column: 2; grid-row: 1; }
 .theo-order[data-order-step="2"] .theo-order-actions .theo-workspace-selection { display: none; }
}
@media(max-width:767px) {
 body.theo-order-page { --workspace-header: 64px; --workspace-bar: 132px; }
 .theo-order .theo-order-layout { width: calc(100% - 32px); padding-block: 16px; }
 .theo-order .theo-workspace-v2 .theo-studio-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; }
 .theo-order .theo-workspace-v2 .theo-studio-controls { position: static; grid-column: 1; grid-row: 3; padding: 0; max-height: none; overflow: visible; contain: none; }
 .theo-order .theo-workspace-v2 .theo-workspace-central { grid-column: 1; grid-row: 1; width: 100%; }
 .theo-order .theo-workspace-v2 .theo-studio-summary { grid-column: 1; grid-row: 2; }
 .theo-order .theo-workspace-v2[data-detail-panel=""] .theo-studio-controls { grid-row: 2; }
 .theo-order .theo-order-actions { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px 16px; padding: 12px 16px max(12px,env(safe-area-inset-bottom)); min-height: 0; }
 .theo-order .theo-order-actions [data-order-prev] { grid-column: 1; grid-row: 2; }
 .theo-order .theo-order-actions [data-order-next] { grid-column: 2; grid-row: 2; }
 .theo-order .theo-order-actions :is(.theo-workspace-action-total,.theo-cart-action-total) { grid-column: 1/-1; grid-row: 1; justify-content: space-between; }
 .theo-order .theo-workspace-action-total > span { display: none; }
 .theo-order .theo-workspace-action-total > strong { font-size: 20px; }
 .theo-order[data-order-step="1"] { padding-bottom: 100px; }
 .theo-order[data-order-step="1"] .theo-order-actions :is([data-order-prev],[data-order-next]) { grid-row: 1; }
 .theo-order .theo-order-legal { gap: 12px; padding-inline: 8px; }
 .theo-order-legal a { font-size: 11px; white-space: nowrap; }
 .theo-order .theo-workspace-v2 .theo-editor-journey { position: static; }
 .theo-order .theo-workspace-v2 .theo-editor-journey button { min-height: 68px; }
 .theo-order .theo-workspace-v2 .theo-room-picker button { flex-basis: 88px; }
}
/* The fixed action bar owns progression; preserve legacy click targets only for routing. */
.theo-order .theo-dropzone.is-compact [data-upload-select-label] { background: #fff; border-color: #111; color: #111; }
.theo-order[data-order-step="3"] [data-cart-add],
.theo-order[data-order-step="4"] [data-cart-order] { display: none; }
@media(prefers-reduced-motion:reduce) { body .site-header { transition: none; } .theo-order-boot__indicator { animation: none; } }

/* New orders and resuming a browser draft are explicit, non-destructive actions. */
.theo-order-workspace-nav, .theo-upload-workspace-nav { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; }
.theo-order-workspace-nav { justify-content:flex-end; margin-bottom:20px; }
.theo-order-workspace-nav :is(a,button), .theo-upload-workspace-nav :is(a,button) { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:8px 0; border:0; background:transparent; color:inherit; font:inherit; font-size:14px; line-height:1.5; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.theo-order[data-order-step="1"] .theo-order-workspace-nav { display:none; }
.theo-order .theo-upload-brand { margin-bottom:0; }
.theo-upload-workspace-nav { color:#ddd; margin:0; }
.theo-order-drafts-dialog { width:min(620px,calc(100% - 32px)); max-height:calc(100dvh - 48px); padding:24px; border:1px solid #d6d6d6; background:#fff; color:#111; overflow:auto; }
.theo-order-drafts-dialog::backdrop { background:rgb(0 0 0 / .45); }
.theo-order-drafts-dialog header { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:16px; }
.theo-order-drafts-dialog h2 { margin:0; font-size:22px; line-height:1.4; }
.theo-order-drafts-dialog p { margin:0 0 20px; color:#666; line-height:1.65; font-size:14px; }
.theo-order-drafts-dialog ul { display:grid; gap:12px; padding:0; margin:0; list-style:none; }
.theo-order-drafts-dialog li a { display:grid; gap:6px; padding:16px; border:1px solid #ddd; color:#111; text-decoration:none; overflow-wrap:anywhere; }
.theo-order-drafts-dialog li a:hover { border-color:#1f7a3e; background:#fbfbfb; }
.theo-order-drafts-dialog li span { color:#666; font-size:13px; }
.theo-cart-empty__actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.theo-cart-empty__actions .button { max-width:100%; white-space:normal; }
@media(max-width:600px) {
 .theo-order-workspace-nav { justify-content:flex-start; gap:8px 20px; margin-bottom:12px; }
 .theo-cart-empty__actions { flex-direction:column; align-items:stretch; }
 .theo-order-drafts-dialog { padding:20px; }
}
