/* UX V3 refinement: same two-screen structure with a comfortable lower margin. */
:root{--screen-height:calc(100svh - 112px)}
.product-layout{padding-bottom:36px}.configuration{gap:36px}
@media(min-width:901px){.commercial-stage{height:calc(100svh - 262px)}}
.functional-screen{min-height:570px}
.selection-screen{grid-template-rows:66px minmax(0,1fr)}
.selection-actions{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:9px;min-height:48px}
.selection-actions button{height:48px;min-height:48px;font-size:14px;line-height:1.15;padding:8px 12px}
.configuration-screen .preview-section{grid-template-rows:30px 62px 20px minmax(215px,1fr) 114px 96px;gap:6px}
.finishes button{min-height:62px}.finish-options{min-height:0}
.personal-heading>span:first-child{font-weight:400}
.generation-state{grid-template-rows:30px minmax(0,1fr);height:114px;padding:2px 0}
.generation-phases{gap:16px}
.generation-state .orbital-controls{position:static;grid-column:1;grid-row:2;display:flex;align-items:start;justify-content:flex-start;gap:10px;pointer-events:none;min-width:0}
.generation-state .orbital-controls:not(:has(button:not([hidden]))),.generation-state:has(#error-actions:not([hidden])) .orbital-controls{display:none}
.orbital-controls button{background:transparent;border:1px solid #bdc3b9;box-shadow:none;min-height:44px;font-size:14px;padding:8px 14px;gap:8px}
.orbital-controls button:before{content:'↻';font-size:22px;line-height:1}
.orbital-controls #orbital-status{position:static;max-width:180px;width:auto;background:none;padding:3px 0;font-size:12px;align-self:center;line-height:1.3}
.generation-state:has(#error-actions[hidden]):has(.orbital-controls button:not([hidden])) #preview-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.generation-state:has(#error-actions[hidden]):has(.orbital-controls button:not([hidden])) #palette-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.generation-state .activity-row,.generation-state>#preview-status{grid-column:1;grid-row:2}
.generation-state>#preview-status{max-width:100%;font-size:14px;line-height:1.35;margin:3px 0}
#error-actions{height:44px;gap:12px;bottom:0}#error-actions .secondary,#error-actions .link{min-height:44px}
.generation-state:has(#error-actions:not([hidden]))>#preview-status{font-size:13px;line-height:1.25;margin:0}
.purchase{grid-template-columns:112px 78px minmax(0,1fr);grid-template-rows:16px 44px 32px;row-gap:2px;position:relative}
#add-cart{grid-row:1/3;min-height:50px;align-self:end}
#cart-feedback{position:static!important;grid-row:3;grid-column:1/4;display:flex;align-items:center;justify-content:space-between;gap:14px;width:auto!important;height:32px!important;overflow:visible;clip:auto;margin:0;padding:0!important;background:none;font-size:13px}
#cart-feedback .link{display:inline-flex;align-items:center;font-size:13px;min-height:32px;padding:3px 0}
#purchase-feedback{grid-row:3;grid-column:1/4;margin:0;font-size:13px;line-height:1.2}#purchase-feedback:empty{display:none}
#cart-dialog{width:min(94vw,680px);max-height:88svh;overflow:auto;scrollbar-gutter:stable}
#cart-content .cart-item{grid-template-columns:105px minmax(0,1fr);gap:16px;padding-bottom:17px;margin-bottom:17px;border-bottom:1px solid var(--line)}
#cart-content img,.cart-no-image{width:105px;height:100px;object-fit:contain;background:#e9e6df;border-radius:3px}.cart-no-image{display:grid;place-items:center;font:42px Georgia,serif;color:#5f6c6a}
#cart-content .cart-item>div>strong{font:22px Georgia,serif}
#cart-content p{font-size:14px;margin:5px 0}.cart-visual-note{font-size:13px!important;color:#5f6c6a;line-height:1.35}
.cart-line-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:8px}.cart-line-actions label{font-size:13px;display:flex;align-items:center;gap:7px}.cart-line-actions input{width:55px;min-height:40px;padding:5px;text-align:center;border:1px solid #bdc3b9;border-radius:3px;background:transparent}.cart-line-actions>strong{margin-left:auto;font-size:18px}.cart-line-actions .link{min-height:40px;font-size:13px}
#cart-dialog>[data-i18n=localCart]{font-size:14px;line-height:1.5}
@media(max-width:900px){
 :root{--screen-height:calc(100svh - 162px)}
 .functional-screen{min-height:596px}.configuration-screen{min-height:602px}
 .selection-screen{grid-template-rows:60px minmax(0,1fr)}
 .territory{grid-template-rows:46px 54px minmax(215px,1fr) 44px 24px 48px}
 .selection-actions{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:7px}.selection-actions button{font-size:13px;padding:7px 8px}
 .configuration-screen .preview-section{grid-template-rows:30px 62px 20px minmax(210px,1fr) 114px 136px;gap:6px}
 .purchase{grid-template-columns:112px 1fr;grid-template-rows:44px 48px 32px;row-gap:6px}#add-cart{grid-row:2;min-height:48px}
 #cart-feedback,#purchase-feedback{grid-row:3;grid-column:1/3}.generation-phases{gap:12px}
 .orbital-controls button{font-size:14px;padding:7px 10px}.orbital-controls #orbital-status{max-width:120px;font-size:12px}
 .generation-state>#preview-status{font-size:14px}
 #cart-content .cart-item{grid-template-columns:76px minmax(0,1fr);gap:10px}#cart-content img,.cart-no-image{width:76px;height:84px}.cart-line-actions{gap:8px}
}
@media(max-width:370px){.functional-screen{min-height:620px}.configuration-screen{min-height:602px}.configuration-screen .preview-section{grid-template-rows:30px 62px 20px minmax(210px,1fr) 114px 136px}.generation-phases{gap:7px}.orbital-controls #orbital-status{max-width:95px}}

/* Reserve actual finish feedback in the final layout layer; no overlap. */
.configuration-screen .preview-section{grid-template-rows:30px 104px 20px minmax(215px,1fr) 114px 96px}
@media(max-width:750px){.configuration-screen .preview-section{grid-template-rows:30px 104px 20px minmax(210px,1fr) 114px 136px}}

/* The event-driven finish feedback replaces the previous readiness note. */
.colour-readiness-note{display:none!important}

/* Finish icons are introduced only once the current view supports them. */
.finish-options:not([data-finishes-available=true]) .finishes{visibility:hidden}
.finish-options:not([data-finishes-available=true]) .finish-feedback{position:absolute;inset:0;margin:0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:14px;line-height:1.4}
