/* 2026-09-26 client journey: shared component geometry, no warm background tint. */
.theo-order { --theo-panel-gap: 24px; --theo-field-gap: 16px; }
.theo-order [hidden] { display: none !important; }
.theo-order :is(button,input,select,textarea) { font-family: var(--font-sans); }
.theo-order :is(button,.button) { white-space: normal; overflow-wrap: normal; text-wrap: balance; }
.theo-order :is(input,select,textarea) { max-width: 100%; min-width: 0; }
body:has(.theo-order[data-order-step="1"]) .site-header--order { display: none; }
.theo-order[data-order-step="1"] { padding-top: 0; }
.theo-order[data-order-step="1"] > .theo-order-hero,
.theo-order[data-order-step="1"] .theo-order-b2b-ribbon,
.theo-order[data-order-step="1"] .theo-order-toolbar,
.theo-order[data-order-step="1"] .theo-order-steps { display: none; }
.theo-order[data-order-step="1"] > .theo-order-layout { width: 100%; max-width: none; margin: 0; padding: 0; }
.theo-order[data-order-step="1"] .theo-order-panels { padding: 0; }
.theo-order [data-order-panel="1"] { margin: 0; padding: 0; }
.theo-order .theo-upload-layout { display: grid; grid-template-columns: minmax(350px,3fr) minmax(0,7fr); gap: 0; min-height: min(900px,100svh); margin: 0; }
.theo-order .theo-upload-primary { color: #fff; background: #111; display: flex; flex-direction: column; align-items: stretch; gap: 24px; padding: clamp(32px,4vw,64px) clamp(24px,3vw,48px); min-width: 0; }
.theo-order .theo-upload-brand { display: block; width: min(100%,290px); margin-bottom: clamp(24px,6vh,80px); }
.theo-order .theo-upload-brand img { display: block; width: 100%; height: auto; }
.theo-order .theo-upload-primary .theo-order-panel__heading { margin: 0; padding: 0; }
.theo-order .theo-upload-primary .theo-order-panel__heading :is(h2,p,span) { color: #fff; }
.theo-order .theo-upload-primary .theo-order-panel__heading h2 { font-size: clamp(24px,2.1vw,34px); line-height: 1.4; margin: 8px 0; font-weight: 400; }
.theo-order .theo-upload-primary .theo-order-panel__heading p { color: #bdbdbd; font-size: 16px; }
.theo-order .theo-dropzone { display: flex; flex-direction: column; align-items: stretch; text-align: center; gap: 16px; min-height: 190px; padding: 24px 16px; margin: 0; border: 1px dashed #777; background: #181818; color: #fff; }
.theo-order .theo-dropzone.is-dragover { border-color: #ffcc00; background: #242424; }
.theo-order .theo-dropzone.is-filled { display: flex; min-height: 0; padding: 16px; gap: 12px; }
body .theo-order .theo-dropzone.is-compact { display: flex; flex-direction: column; align-items: stretch; padding: 16px; min-height: 0; color: #fff; background: #181818; border: 1px solid #777; }
body .theo-order .theo-dropzone.is-compact :is(strong,p) { grid-column: auto; grid-row: auto; align-self: stretch; width: auto; text-align: center; color: #eee; }
body .theo-order .theo-dropzone.is-compact .theo-dropzone__actions { grid-column: auto; grid-row: auto; }
body .theo-order .theo-dropzone.is-compact .theo-dropzone__icon { display: none; }
.theo-order .theo-dropzone :is(strong,p) { color: inherit; width: auto; margin: 0; }
.theo-order .theo-dropzone > strong { font-size: 16px; line-height: 1.6; }
.theo-order .theo-dropzone > p { font-size: 14px; color: #bdbdbd; }
.theo-order .theo-dropzone__icon { align-self: center; color: #fff; background: transparent; font-size: 28px; width: 44px; height: 44px; }
.theo-order .theo-dropzone__actions { display: grid; gap: 12px; width: 100%; }
.theo-order .theo-upload-primary .button { min-width: 0; width: 100%; min-height: 48px; padding: 12px 16px; margin: 0; }
.theo-order .theo-upload-primary .button--secondary { color: #fff; background: transparent; border-color: #777; }
.theo-order .theo-member-file-dialog > header { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: start; gap: 16px; }
.theo-order .theo-upload-primary .theo-member-file-dialog .button--secondary { width: auto; color: #111; background: #fff; border-color: #999; }
.theo-order .theo-member-file-dialog > header p { margin: 8px 0 0; }
.theo-order .theo-member-file-dialog > [role="status"] { margin-block: 24px 16px; }
.theo-order .theo-upload-limits { font-size: 14px; line-height: 1.7; color: #fff; margin: -8px 0 0; text-align: center; }
.theo-order .theo-upload-limits span { color: #bdbdbd; }
.theo-order .theo-upload-links { display: flex; flex-direction: column; align-items: center; gap: 8px; font-size: 14px; line-height: 1.6; }
.theo-order .theo-upload-links a { color: #ddd; text-decoration: underline; text-underline-offset: 3px; }
.theo-order .theo-upload-intake { color: #fff; background: transparent; border: 1px solid #555; padding: 16px; margin: 0; display: grid; gap: 12px; }
.theo-order .theo-upload-intake :is(p,label) { color: #ccc; font-size: 14px; margin: 0; }
.theo-order .theo-upload-intake__consent { align-items: start; grid-template-columns: 20px minmax(0,1fr); }
.theo-order .theo-upload-intake__consent input { margin-top: 4px; width: 18px; height: 18px; }
.theo-order .theo-upload-intake a { color: #fff; }
.theo-order .theo-intake-summary { background: #242424; color: #ccc; border-color: #555; padding: 16px; font-size: 14px; margin: 0; }
.theo-order .theo-upload-queue { margin: 0; padding: 0; border: 0; }
.theo-order .theo-upload-queue > header { display: grid; gap: 12px; }
.theo-order .theo-upload-queue h3 { color: #fff; font-size: 16px; }
.theo-order .theo-upload-total { color: #ccc; width: 100%; }
.theo-order .theo-upload-list { display: grid; gap: 12px; margin: 16px 0 0; padding: 0; }
.theo-order .theo-upload-card { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 12px; color: #111; background: #fff; padding: 16px; min-width: 0; }
.theo-order .theo-upload-card__preview { width: 48px; height: 60px; }
.theo-order .theo-upload-card__body { min-width: 0; }
.theo-order .theo-upload-card__title { display: grid; gap: 8px; }
.theo-order .theo-upload-card__title strong { font-size: 14px; line-height: 1.5; }
.theo-order .theo-upload-card__title .theo-badge { width: fit-content; font-size: 12px; }
.theo-order .theo-upload-card__meta { font-size: 12px; }
.theo-order .theo-upload-card__actions { grid-column: 1/-1; flex-direction: row; justify-content: flex-end; }
.theo-order .theo-upload-card :is(strong,h4,p,span) { overflow-wrap: anywhere; }
.theo-order .theo-upload-card :is(button,.button) { width: auto; min-height: 36px; color: #111; background: #fff; }
.theo-order .theo-upload-reset { align-self: center; padding: 4px 0; border: 0; background: transparent; color: #ccc; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
.theo-order .theo-upload-artwork { margin: 0; min-width: 0; position: sticky; top: 0; height: 100svh; align-self: start; overflow: hidden; background: #f6f6f6; }
.theo-order .theo-upload-artwork img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.theo-order[data-order-step="1"] .theo-order-actions { margin-top: 0; border-top: 1px solid #dedede; padding-inline: clamp(20px,4vw,64px); }
@media(max-width:980px) {
 .theo-order .theo-upload-layout { grid-template-columns: 1fr; min-height: 0; }
 .theo-order .theo-upload-primary { padding: 32px 24px; gap: 20px; }
 .theo-order .theo-upload-brand { width: 224px; margin-bottom: 16px; }
 .theo-order .theo-upload-primary .theo-order-panel__heading h2 { font-size: 28px; }
 .theo-order .theo-upload-artwork { position: relative; top: auto; height: auto; min-height: 180px; aspect-ratio: 16/9; max-height: 360px; }
 .theo-order .theo-dropzone { min-height: 160px; }
 .theo-order .theo-upload-links { flex-direction: row; flex-wrap: wrap; gap: 12px 24px; justify-content: center; }
}
@media(prefers-reduced-motion:reduce) { .theo-order * { scroll-behavior: auto !important; } }
.theo-order .theo-production-constraints { margin: 0 0 24px; padding: 20px 24px; border: 1px solid #dedede; border-left: 4px solid #ffcc00; background: #fbfbfb; color: #111; }
.theo-order .theo-production-constraints > strong { font-size: 18px; line-height: 1.5; }
.theo-order .theo-production-constraints p { margin: 8px 0; font-size: 16px; line-height: 1.65; }
.theo-order .theo-production-constraints__actions { display: flex; align-items: end; flex-wrap: wrap; gap: 12px; margin-top: 16px; }
.theo-order .theo-production-constraints__actions .field { flex: 1 1 280px; max-width: 480px; }
.theo-order .theo-production-constraints__actions .button { min-height: 48px; margin: 0; padding: 12px 18px; }
.theo-order .theo-size-scale .is-neutral { color: #111; border-color: #dedede; background: #fff; }
/* All completion routes share one geometry; logical stages are driven by the state machine. */
.theo-order .theo-option-reuse { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:20px; margin-bottom:24px; border:1px solid #dedede; background:#fbfbfb; }
.theo-order .theo-option-reuse > div { min-width:0; }
.theo-order .theo-option-reuse > div:last-child { display:flex; flex-wrap:wrap; gap:10px; flex-shrink:0; }
.theo-order .theo-option-reuse p { margin:4px 0; overflow-wrap:anywhere; }
.theo-order .theo-option-reuse small { font-size:14px; line-height:1.6; }
.theo-order .theo-editor-artwork { position:relative; width:100%; height:100%; min-width:0; min-height:0; overflow:hidden; background:#fff; }
.theo-order .theo-editor-artwork img { position:absolute; left:50%; top:50%; max-width:none; max-height:none; object-fit:contain; background:#fff; }
@media(max-width:767px){.theo-order .theo-option-reuse{flex-direction:column;align-items:stretch;}}
.theo-order .theo-editor-journey ol { display: flex; width: 100%; gap: 8px; }
.theo-order .theo-editor-journey li { flex: 1 0 130px; min-width: 0; }
.theo-order .theo-editor-journey button { height: 100%; min-height: 60px; width: 100%; padding: 12px; display: flex; align-items: center; justify-content: center; border: 1px solid #dedede; }
.theo-order .theo-editor-journey strong { font-size: 15px; line-height: 1.4; }
.theo-order .theo-editor-journey button[aria-current="step"] { background: #111111; color: #fff; border-color: #111111; }
.theo-order [data-editor-stage-number] .theo-studio-controls { display: grid; gap: 20px; }
.theo-order [data-editor-stage-number] .theo-size-workspace { display: grid; gap: 20px; }
.theo-order [data-editor-stage-number] :is(.theo-size-editor,.theo-size-quality,.theo-studio-preview) { grid-column: auto; grid-row: auto; }
.theo-order .theo-studio-grid { display: grid; grid-template-columns: minmax(300px,1fr) minmax(340px,1.65fr) minmax(260px,.8fr); gap: 24px; align-items: start; }
.theo-order .theo-studio-controls .theo-option-panel { padding: 16px; gap: 12px; }
.theo-order .theo-studio-controls .theo-option-subgrid { padding: 16px; gap: 16px; background: #fbfbfb; }
.theo-order .theo-option-value > span { padding: 16px; }
.theo-order .theo-room-background { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.theo-order .theo-editor-stage.is-room { min-height: 0; }
.theo-order .theo-editor-stage.is-room::before { display: none; }
.theo-order .theo-editor-stage.is-room .theo-editor-product-view { padding: 0; display: block; }
.theo-order .theo-editor-stage.is-room .theo-editor-product { position: absolute; max-width: none; max-height: none; }
.theo-order .theo-editor-stage.is-room .theo-editor-size-lines { display: none; }
.theo-order .theo-editor-mat, .theo-order .theo-editor-mat img { background: #fff; }
.theo-order .theo-room-picker { display: flex; gap: 8px; overflow-x: auto; padding: 16px; border-top: 1px solid #dedede; }
.theo-order .theo-room-picker button { display: grid; flex: 0 0 84px; align-content: center; gap: 6px; padding: 4px; border: 1px solid #dedede; color: #111; background: #fff; font-size: 12px; line-height: 1.4; }
.theo-order .theo-room-picker button[aria-pressed="true"] { border: 2px solid #111111; padding: 3px; }
.theo-order .theo-room-picker img { display: block; width: 100%; height: 54px; object-fit: cover; }
.theo-order .theo-room-adjust { padding: 0 16px 16px; font-size: 14px; }
.theo-order .theo-room-adjust > div { display: grid; gap: 12px; margin-top: 16px; }
.theo-order .theo-room-adjust input { width: 100%; }
.theo-order .theo-room-adjust .button { font-size: 14px; }
@media(max-width:1199px) {
 .theo-order .theo-studio-grid { grid-template-columns: minmax(280px,1fr) minmax(0,1.5fr); }
 .theo-order .theo-studio-summary { grid-column: 1/-1; position: static; }
}
@media(max-width:767px) {
 .theo-order .theo-studio-grid { display: flex; flex-direction: column; gap: 20px; }
 .theo-order .theo-studio-grid > * { width: 100%; }
 .theo-order .theo-studio-controls { order: 1; }
 .theo-order .theo-studio-preview { order: 2; position: static; }
 .theo-order .theo-studio-summary { order: 3; }
 .theo-order .theo-editor-journey li { flex-basis: 116px; }
}
.theo-delivery-preview{padding:16px;border:1px solid #dedede;background:#fbfbfb;display:grid;gap:8px;font-size:14px;line-height:1.65;overflow-wrap:anywhere}
.theo-delivery-preview p,.theo-delivery-preview small{margin:0}.theo-delivery-preview small{display:block;color:#666}
.theo-delivery-actions{display:flex;flex-wrap:wrap;gap:8px}.theo-delivery-actions .button{min-height:44px;white-space:normal;line-height:1.5}
.theo-delivery-preview--options{grid-column:1/-1}
/* Every production stage shares the same reading rhythm and outside edges. */
.theo-order { --theo-section-gap: 32px; --theo-panel-gap: 24px; }
.theo-order .theo-order-layout { padding-top: 24px; }
.theo-order .theo-order-toolbar { margin-bottom: 16px; }
.theo-order .theo-order-steps { margin-bottom: 32px; }
.theo-order .theo-size-files { margin: 0 0 24px; }
.theo-order .theo-production-studio { display: grid; grid-template-columns: minmax(0,1fr); gap: var(--theo-panel-gap); margin: 0; min-width: 0; }
.theo-order .theo-production-studio > * { min-width: 0; }
.theo-order .theo-production-studio > :is(.theo-option-reuse,.theo-editor-journey,.theo-editor-screen-heading,.theo-production-constraints,.theo-delivery-preview) { margin: 0; }
.theo-order .theo-editor-journey { border: 0; overflow-x: auto; }
.theo-order .theo-editor-journey ol { margin: 0; padding: 0; }
.theo-order .theo-editor-journey button { min-height: 48px; box-shadow: none; }
.theo-order .theo-editor-screen-heading { display: grid; grid-template-columns: minmax(0,1fr); gap: 8px; padding: 0; border: 0; }
.theo-order .theo-editor-screen-heading h3 { margin: 0; font-size: 24px; line-height: 1.4; }
.theo-order .theo-editor-screen-heading > span { max-width: 80ch; margin: 0; font-size: 16px; line-height: 1.6; }
.theo-order .theo-delivery-preview--options { padding: 16px 20px; gap: 4px; }
.theo-order .theo-delivery-preview--options :is(p,small) { font-size: 14px; line-height: 1.6; }
.theo-order .theo-studio-controls { border: 1px solid #dedede; }
.theo-order .theo-studio-controls .theo-option-accordion { border-top-color: #dedede; }
.theo-order .theo-studio-controls .theo-option-accordion summary { grid-template-columns: minmax(0,1fr) auto; gap: 4px 12px; }
.theo-order .theo-studio-controls .theo-option-accordion summary > strong { grid-area: 1 / 1; min-width: 0; word-break: normal; overflow-wrap: normal; }
.theo-order .theo-studio-controls .theo-option-accordion summary > em { grid-area: 2 / 1; max-width: 100%; text-align: left; }
.theo-order .theo-studio-controls .theo-option-accordion summary::after { grid-column: 2; grid-row: 1 / span 2; }
.theo-order .theo-studio-controls .theo-option-panel { padding: 20px; gap: 16px; }
.theo-order :is(.theo-studio-preview,.theo-studio-summary) { top: calc(var(--sticky-header-height,56px) + 24px); }
.theo-order :is(.theo-studio-preview__header,.theo-studio-summary .theo-studio-quote) { padding: 20px; }
.theo-order .theo-studio-grid { gap: var(--theo-panel-gap); }
.theo-order .theo-option-subgrid > .field { margin: 0; }
.theo-order .theo-quote-tools { margin-top: 24px; }
.theo-order .theo-cart-card__options > strong { word-break: normal; overflow-wrap: normal; }
.theo-order .theo-order-actions { padding-block: 16px; gap: 16px; margin-top: 32px; }
.theo-order .theo-order-b2b { padding-top: 48px; padding-bottom: 48px; }
.theo-order .theo-order-b2b h2 { margin: 0 0 12px; }
.theo-order .theo-order-b2b__cards { margin-block: 24px; gap: 24px; }
.theo-checkout-modal .theo-checkout-section > header :is(h3,p) { margin-bottom: 0; }
.theo-checkout-modal .theo-checkout-section > header { display: grid; gap: 8px; }
.theo-checkout-modal .theo-checkout-flow__heading { gap: 16px; }
.theo-checkout-modal .theo-checkout-section .field { margin: 0; }
@media(max-width:1199px) {
 .theo-order :is(.theo-studio-preview,.theo-studio-summary) { position: static; }
}
@media(max-width:980px) {
 .theo-order .theo-editor-journey ol { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
 .theo-order .theo-editor-journey button { min-height: 56px; padding: 8px; }
 .theo-order .theo-editor-journey strong { font-size: 13px; }
}
@media(max-width:767px) {
 .theo-order { --theo-panel-gap: 20px; --theo-section-gap: 24px; }
 .theo-order .theo-order-layout { padding-top: 16px; }
 .theo-order .theo-order-steps { margin-bottom: 24px; }
 .theo-order .theo-production-studio { margin-inline: 0; }
 .theo-order .theo-editor-screen-heading h3 { font-size: 22px; }
 .theo-order .theo-editor-screen-heading > span { font-size: 14px; }
 .theo-order :is(.theo-studio-controls,.theo-studio-preview,.theo-studio-summary) { border: 1px solid #dedede; }
 .theo-order .theo-studio-controls .theo-option-panel { padding: 16px; }
 .theo-order :is(.theo-studio-preview__header,.theo-studio-summary .theo-studio-quote) { padding: 16px; }
 .theo-order .theo-order-actions { padding-block: 12px max(12px,env(safe-area-inset-bottom)); gap: 8px 12px; }
 .theo-order .theo-order-b2b__cards { gap: 16px; }
}
