/* Reference composition. Kept separate from the legacy theme overrides. */
html body.nexgen-v5 #app .ng3d-reference {background:#050709!important;}
html body.nexgen-v5 #app #ng3dStage.ng3d-studio {background:#07090c!important;}
html body.nexgen-v5 #app #ng3dStage .ng3d-studio-image {display:none;}
html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-studio-image {display:block!important;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;z-index:2;pointer-events:none;}
html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-webgl-host,
html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-scene,
html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-floor,
html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-stage-glow {visibility:hidden!important;opacity:0!important;}
html body.nexgen-v5 #app #ng3dStage.ng3d-studio:before {display:none!important;}
html body.nexgen-v5 #app #ng3dStage .ng3d-stage-measures {z-index:4!important;pointer-events:none;}
html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-orientation-label {display:none!important;}
html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-focus-chip {display:none!important;}
html body.nexgen-v5 #app #ng3dStage .ng3d-drag-hint {z-index:5!important;font-weight:400!important;}
html body.nexgen-v5 #app .ng3d-line-icon {display:inline-flex;flex:none;width:20px;height:20px;align-items:center;justify-content:center;margin-right:12px;vertical-align:middle;}
html body.nexgen-v5 #app .ng3d-line-icon svg {width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
html body.nexgen-v5 #app .ng3d-viewer-spec .ng3d-line-icon {float:left;width:46px;height:46px;padding:11px;border:1px solid #303941;border-radius:7px;margin-right:26px;}
html body.nexgen-v5 #app .ng3d-viewer-spec small {display:block;color:#b9c4cc;font-size:13px;margin-top:4px;}
html body.nexgen-v5 #app .ng3d-config-label {text-transform:none!important;font-size:14px!important;color:#f4f6f7!important;font-weight:700!important;letter-spacing:0!important;}
html body.nexgen-v5 #app .ng3d-reference-segment>button {position:relative!important;padding-left:44px!important;}
html body.nexgen-v5 #app .ng3d-reference-segment>button .ng3d-line-icon {position:absolute;left:12px;top:50%;transform:translateY(-50%);margin:0;}
html body.nexgen-v5 #app .ng3d-reference-segment>button b {font-size:13px!important;}
html body.nexgen-v5 #app .ng3d-reference-segment>button small {font-size:11px!important;line-height:1.25!important;}
html body.nexgen-v5 #app .ng3d-reference-segment>button.active:after {content:'✓'!important;color:white!important;font-size:12px!important;display:grid!important;place-items:center!important;width:18px!important;height:18px!important;border:0!important;box-shadow:none!important;right:8px!important;top:8px!important;}
html body.nexgen-v5 #app #ng3dColors button.active .ng3d-color-selected {display:grid!important;place-items:center;font-size:0!important;width:18px!important;height:18px!important;right:8px!important;top:8px!important;padding:0!important;border-radius:50%;background:#ff1888!important;}
html body.nexgen-v5 #app #ng3dColors button.active .ng3d-color-selected:after {content:'✓';font-size:12px;color:#fff;}
html body.nexgen-v5 #app .ng3d-dimension-cards>div:first-child {border:2px solid #ff1888!important;background:linear-gradient(135deg,#21101b,#0a0d10)!important;}
html body.nexgen-v5 #app .ng3d-wizard-next:after {content:'→';position:absolute;right:24px;font-weight:400;font-size:28px;}
html body.nexgen-v5 #app .ng3d-camera-presets button.active {border:1px solid #ff1888!important;border-radius:8px!important;background:linear-gradient(135deg,#3a0d26,#160b12)!important;color:#fff!important;box-shadow:0 0 20px #ff188818!important;}
@media(min-width:1100px){
 html body.nexgen-v5 #app .ng3d-reference {width:100%!important;min-height:100dvh!important;margin:0!important;padding:0 26px 20px!important;box-sizing:border-box!important;}
 html body.nexgen-v5 #app .ng3d-reference>.ng3d-reference-topbar {height:64px!important;min-height:64px!important;width:calc(100% + 52px)!important;margin:0 -26px!important;padding:0 42px!important;display:flex!important;justify-content:space-between!important;align-items:center!important;border-top:2px solid #ff1888!important;z-index:20!important;}
 html body.nexgen-v5 #app .ng3d-brand-logo {height:50px!important;max-height:50px!important;width:auto!important;}
 html body.nexgen-v5 #app .ng3d-brand-lockup small {font-size:18px!important;}
 html body.nexgen-v5 #app .ng3d-reference-topbar .ng3d-wizard-progress {position:static!important;display:grid!important;visibility:visible!important;opacity:1!important;width:390px!important;height:54px!important;padding:0!important;margin:0!important;grid-template-columns:auto 1fr auto 1fr auto!important;gap:12px!important;}
 html body.nexgen-v5 #app .ng3d-wizard-progress>button {display:flex!important;align-items:center!important;gap:9px!important;font-size:11px!important;padding:0!important;}
 html body.nexgen-v5 #app .ng3d-wizard-progress>button i {width:32px!important;height:32px!important;display:grid!important;place-items:center!important;font-size:14px!important;}
 html body.nexgen-v5 #app .ng3d-reference-layout {height:calc(100dvh - 100px)!important;min-height:680px!important;margin:16px 0 0!important;grid-template-columns:minmax(0,1fr) 430px!important;gap:20px!important;align-items:stretch!important;}
 html body.nexgen-v5 #app .ng3d-visual-side {height:100%!important;gap:0!important;}
 html body.nexgen-v5 #app .ng3d-reference-stage-card {height:100%!important;display:flex!important;flex-direction:column!important;}
 html body.nexgen-v5 #app .ng3d-stage-top {height:104px!important;min-height:104px!important;flex:none!important;padding:16px 24px!important;}
 html body.nexgen-v5 #app .ng3d-stage-top #ng3dTitle {font-size:23px!important;}
 html body.nexgen-v5 #app .ng3d-stage-top>div:first-child>small {font-size:11px!important;}
 html body.nexgen-v5 #app .ng3d-view-actions {gap:18px!important;}
 html body.nexgen-v5 #app .ng3d-view-actions label {font-size:12px!important;gap:12px!important;}
 html body.nexgen-v5 #app .ng3d-camera-presets button[data-camera="overview"] {display:none!important;}
 html body.nexgen-v5 #app #ng3dStage {height:auto!important;min-height:0!important;flex:1!important;}
 html body.nexgen-v5 #app .ng3d-viewer-footer {height:96px!important;min-height:96px!important;flex:none!important;padding:18px 20px!important;align-items:center!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec {padding:0 16px 0 0!important;border-right:1px solid #343d44!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec span {font-size:10px!important;letter-spacing:.1em!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec b {font-size:20px!important;}
 html body.nexgen-v5 #app .ng3d-reference-wizard {margin:0!important;width:430px!important;min-width:0!important;height:100%!important;min-height:0!important;display:grid!important;grid-template-rows:auto minmax(0,1fr) auto!important;overflow:hidden!important;}
 html body.nexgen-v5 #app .ng3d-wizard-header {padding:6px 10px 10px!important;height:auto!important;min-height:0!important;}
 html body.nexgen-v5 #app .ng3d-wizard-header:has(#ng3dDraftStrip[hidden]) {display:none!important;}
 html body.nexgen-v5 #app .ng3d-reference-wizard:has(#ng3dDraftStrip[hidden]) {grid-template-rows:minmax(0,1fr) auto!important;}
 html body.nexgen-v5 #app .ng3d-draft-strip {height:54px!important;padding:8px 12px!important;}
 html body.nexgen-v5 #app .ng3d-wizard-scroll {height:auto!important;min-height:0!important;max-height:none!important;padding:12px 18px 16px!important;overflow:auto!important;}
 html body.nexgen-v5 #app .ng3d-wizard-title {padding:0 0 12px!important;margin:0!important;}
 html body.nexgen-v5 #app .ng3d-wizard-title small {font-size:13px!important;}
 html body.nexgen-v5 #app .ng3d-wizard-title h1 {font-size:36px!important;line-height:1.1!important;margin:5px 0!important;}
 html body.nexgen-v5 #app .ng3d-wizard-title p {font-size:14px!important;line-height:1.5!important;margin:0!important;}
 html body.nexgen-v5 #app .ng3d-config-section {padding-top:14px!important;margin-top:0!important;}
 html body.nexgen-v5 #app .ng3d-config-section h2 {font-size:16px!important;margin:0 0 12px!important;}
 html body.nexgen-v5 #app .ng3d-dimension-cards {gap:8px!important;margin:0 0 10px!important;}
 html body.nexgen-v5 #app .ng3d-dimension-cards>div {height:66px!important;min-height:66px!important;}
 html body.nexgen-v5 #app .ng3d-dimension-cards b {font-size:20px!important;}
 html body.nexgen-v5 #app .ng3d-config-label {margin:10px 0 8px!important;}
 html body.nexgen-v5 #app .ng3d-reference-segment {gap:10px!important;margin:0!important;}
 html body.nexgen-v5 #app .ng3d-reference-segment>button {height:58px!important;min-height:58px!important;border-radius:12px!important;}
 html body.nexgen-v5 #app .ng3d-config-section:has(#ng3dCondition) {border:0!important;padding-top:14px!important;}
 html body.nexgen-v5 #app .ng3d-config-section:has(#ng3dCondition)>h2 {margin-bottom:8px!important;}
 html body.nexgen-v5 #app .ng3d-config-section:has(#ng3dCondition)>h2+.ng3d-config-label {display:none!important;}
 html body.nexgen-v5 #app #ng3dColors {gap:8px!important;}
 html body.nexgen-v5 #app #ng3dColors>button {min-height:68px!important;height:68px!important;border-radius:12px!important;padding:8px!important;gap:10px!important;}
 html body.nexgen-v5 #app #ng3dColors .ng3d-color-panel {width:66px!important;height:48px!important;flex:none!important;}
 html body.nexgen-v5 #app #ng3dColors .ng3d-color-copy b {font-size:12px!important;}
 html body.nexgen-v5 #app #ng3dColors .ng3d-color-copy small {font-size:11px!important;line-height:1.15!important;}
 html body.nexgen-v5 #app .ng3d-wizard-actions {min-height:78px!important;height:78px!important;padding:12px 16px!important;border-top:1px solid #303840!important;}
 html body.nexgen-v5 #app .ng3d-wizard-next {position:relative!important;height:54px!important;min-height:54px!important;width:100%!important;border-radius:30px!important;font-size:18px!important;}
 html body.nexgen-v5 #app .ng3d-reference-wizard[data-wizard-current="1"] .ng3d-wizard-back {display:none!important;}
 html body.nexgen-v5 #app .ng3d-reference-wizard[data-wizard-current="2"] .ng3d-config-section {border-top:0!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-length {left:31%!important;right:21%!important;bottom:9%!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-width {left:16%!important;bottom:24%!important;width:16%!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-height {right:9%!important;top:17%!important;height:49%!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-height span {left:12px!important;white-space:nowrap!important;width:56px!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-height small {left:12px!important;}
}
html body.nexgen-v5 #ng3dOptionModal {background:rgba(0,0,0,.42)!important;backdrop-filter:blur(3px)!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-dialog {width:min(1192px,calc(100vw - 80px))!important;max-width:1192px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-dialog-head {height:122px!important;min-height:122px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-dialog-head h2 {font-size:34px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-dialog-head p {font-size:17px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-dialog-head small {font-size:14px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-body {padding:0 24px 24px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories {gap:16px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button {grid-template-rows:auto 100px!important;min-height:0!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-category-schematic {height:auto!important;min-height:0!important;aspect-ratio:1.87!important;background-size:cover!important;}
html body.nexgen-v5 #ng3dOptionModal [data-addon-category="doors"] .ng3d-category-schematic {background-image:url('/assets/nexgen-reference28-doors.webp')!important;}
html body.nexgen-v5 #ng3dOptionModal [data-addon-category="windows"] .ng3d-category-schematic {background-image:url('/assets/nexgen-reference28-windows.webp')!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button>span:last-child {min-height:100px!important;padding:22px 76px 16px 114px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button>span:last-child>b {font-size:27px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button>span:last-child>small {font-size:16px!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-category-icon {position:absolute;left:22px;top:50%;transform:translateY(-50%);width:68px;height:68px;border:1px solid #677781;border-radius:10px;display:grid;place-items:center;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-category-icon svg {width:32px;height:32px;stroke:#fff;stroke-width:1.7;fill:none;}
@media(max-width:1099px){
 html body.nexgen-v5 #app .ng3d-reference>.ng3d-reference-topbar {width:100%!important;flex-wrap:wrap!important;height:auto!important;min-height:64px!important;}
 html body.nexgen-v5 #app .ng3d-reference-topbar .ng3d-wizard-progress {position:static!important;width:100%!important;display:grid!important;visibility:visible!important;opacity:1!important;margin:8px 0!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec .ng3d-line-icon {display:none;}
 html body.nexgen-v5 #app .ng3d-viewer-spec small {display:none;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-option-dialog {width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-option-dialog-head h2 {font-size:25px!important;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-option-dialog-head p {font-size:13px!important;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories {grid-template-columns:1fr!important;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button>span:last-child {padding-left:78px!important;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-category-icon {left:14px;width:48px;height:48px;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button>span:last-child>b {font-size:23px!important;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button>span:last-child>small {font-size:13px!important;}
}


/* Final composition adjustments after visual comparison at 1672 × 941. */
@media(min-width:1100px){
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio {background:radial-gradient(ellipse at 0% 77%,#661331 0%,#24101b 26%,transparent 58%),#080a0d!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-studio-image {inset:auto!important;left:6.5%!important;top:-15%!important;width:87%!important;height:119%!important;object-fit:fill!important;mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);}
 html body.nexgen-v5 #app .ng3d-viewer-spec {display:grid!important;grid-template-columns:46px minmax(0,1fr)!important;column-gap:26px!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec .ng3d-line-icon {grid-column:1;grid-row:1/4;margin:0!important;float:none!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec>span,html body.nexgen-v5 #app .ng3d-viewer-spec>b,html body.nexgen-v5 #app .ng3d-viewer-spec>small {grid-column:2;}
 html body.nexgen-v5 #app .ng3d-wizard-title p {max-width:none!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-height {border-left:1px solid #c5ccd0!important;right:9%!important;top:17%!important;height:49%!important;transform:none!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-height:before,html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-height:after {content:''!important;position:absolute!important;left:-7px!important;width:14px!important;height:1px!important;background:#c5ccd0!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-height:before {top:0!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-height:after {bottom:0!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-width {bottom:21%!important;}
 html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-dimension-length {bottom:9%!important;}
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-config-section:has(#ng3dWallTabs),
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-addon-head,
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-clearance-note,
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-tool-row,
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] #ng3dWizardBack {display:none!important;}
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-opening-rail {display:flex!important;flex-direction:column!important;gap:22px!important;}
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] #ng3dOpenAddonPicker {order:-1!important;height:44px!important;min-height:44px!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;padding:0!important;margin:0!important;}
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] #ng3dOpenAddonPicker:before {content:'+';font-size:22px;color:white;}
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-openings-empty {height:auto!important;min-height:164px!important;padding:20px 16px!important;text-align:left!important;border:1px solid #29353d!important;border-radius:12px!important;background:linear-gradient(135deg,#10161a,#090d11)!important;}
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-openings-empty:before {content:'♧';display:block;font-size:27px;color:#c7d0d8;margin-bottom:12px;}
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-openings-empty b {font-size:14px!important;line-height:1.4!important;}
 html body.nexgen-v5 #app .ng3d-no-openings[data-wizard-current="2"] .ng3d-openings-empty small {font-size:13px!important;line-height:1.4!important;margin-top:8px!important;color:#99a9b7!important;}
 html body.nexgen-v5 #ng3dOptionModal:has(.ng3d-option-categories) {backdrop-filter:none!important;}
 html body.nexgen-v5 #ng3dOptionModal:has(.ng3d-option-categories) .ng3d-option-body {padding-top:0!important;}
 html body.nexgen-v5 #ng3dOptionModal:has(.ng3d-option-categories) .ng3d-option-dialog-head {border-bottom:0!important;}
 html body.nexgen-v5 #ng3dOptionModal:has(.ng3d-option-categories) .ng3d-option-footer {display:none!important;}
 html body.nexgen-v5 #ng3dOptionModal .ng3d-category-schematic {aspect-ratio:1.78!important;}
}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button>span:last-child>b:after {content:none!important;display:none!important;}
html body.nexgen-v5 #ng3dOptionModal .ng3d-option-categories>button>span:last-child:after {width:60px!important;height:60px!important;right:18px!important;font-size:36px!important;}

@media(min-width:1100px){
 html body.nexgen-v5 #app #ng3dDraftStrip {margin:0!important;}
 html body.nexgen-v5 #app .ng3d-config-section {padding-bottom:0!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec {grid-template-rows:14px 24px 18px!important;align-content:center!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec>span {grid-row:1!important;line-height:14px!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec>b {grid-row:2!important;line-height:24px!important;}
 html body.nexgen-v5 #app .ng3d-viewer-spec>small {grid-row:3!important;margin-top:0!important;line-height:18px!important;}
}

html body.nexgen-v5 #app .ng3d-reference-segment>button.active:after {transform:none!important;line-height:18px!important;font-weight:700!important;font-style:normal!important;}

html body.nexgen-v5 #app #ng3dStage.ng3d-studio .ng3d-studio-image {object-fit:contain!important;}
html body.nexgen-v5 #app .ng3d-openings-empty:before {display:none!important;}
html body.nexgen-v5 #app .ng3d-openings-empty>.ng3d-line-icon {display:block;margin-bottom:12px;color:#d4dce3;}