/* V3 equipment-lab composition; business controls continue using style.css. */
.skip-link{position:fixed;top:8px;left:16px;z-index:30;padding:12px 18px;background:var(--surface);border:2px solid var(--accent);border-radius:8px;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.topbar{height:76px;padding-inline:32px}
.header-right{gap:14px}
.header-consult{min-height:44px;padding:8px 18px;background:var(--accent-soft);border:1px solid var(--line);border-radius:8px;color:var(--accent);font-size:15px;font-weight:600}
main{max-width:2048px;padding:24px 28px calc(96px + env(safe-area-inset-bottom))}
.page-heading{margin-bottom:24px;gap:24px}
.page-heading{flex-wrap:wrap;align-items:center}
.machine-settings{display:flex;flex-wrap:wrap;gap:12px 20px;max-width:100%}
.machine-settings fieldset{margin:0;padding:0;border:0;min-width:0}
.machine-settings legend{padding:0 0 8px;font-size:14px;color:var(--muted)}
.machine-settings .machine-choice button{min-width:150px}
.layout-warning{flex-basis:100%;font-size:14px;color:var(--ink);background:var(--accent-soft);padding:8px 12px;border-radius:8px}
.layout-warning button{min-height:44px;margin-left:8px}
h1{font-size:32px;letter-spacing:0}
.page-heading p{font-size:16px;margin-top:7px}
.machine-choice{box-shadow:none;border-radius:12px}
.machine-choice button{min-width:184px;padding:9px 16px;border-radius:8px}
.machine-choice strong{font-size:17px}
.machine-choice span{font-size:13px}
.workbench{grid-template-columns:420px minmax(0,1fr);grid-template-areas:"configuration machine";gap:20px;align-items:start}
.task-panel{grid-area:configuration;min-width:0;border-radius:14px;box-shadow:none;display:flex;flex-direction:column;max-height:calc(100dvh - 32px);position:sticky;top:16px}
.task-panel>[role=tabpanel]{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.task-tabs{padding:0 22px;gap:26px;flex-shrink:0}
.task-tabs button{font-size:20px;height:64px}
.part-nav{padding:16px 16px 0;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.part-nav button{font-size:16px;padding:8px;min-height:44px;background:var(--soft);border:1px solid transparent}
.part-nav button[aria-current=step]{border-color:var(--accent)}
.controls{padding:24px 22px}
.control-heading{gap:8px}
.control-heading h3{font-size:22px}
.control-heading span{font-size:14px;white-space:nowrap}
.option-button{padding:14px 12px;min-height:72px;border-radius:9px}
.option-button strong{font-size:17px}
.option-button small{font-size:14px}
.hardware-bottom{padding:4px 22px 22px}
.selection-note{font-size:14px}
.task-footer{padding:8px 22px;flex-shrink:0}
.field-grid{gap:12px}
.field select,.field input{font-size:16px;padding:10px}
.review-back{padding:12px 22px 0;gap:8px}
.model-result{margin:0 22px 22px}
.model-result .field-grid{grid-template-columns:1fr}
.machine-column{grid-area:machine;min-width:0;border-radius:14px;box-shadow:var(--shadow);position:sticky;top:16px}
.machine-heading{padding:18px 22px;min-height:68px;display:flex}
.machine-heading h2{font-size:20px}
.machine-heading>span{margin:0}
.viewer-wrap{height:clamp(580px,calc(100dvh - 264px),760px)}
.machine-numbers{padding:18px 22px 8px;gap:16px}
.machine-numbers strong{font-size:26px}
.machine-numbers span{font-size:14px}
.scene-note{padding:0 22px 10px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.scene-note button{min-height:44px}
.quote-panel{margin-top:20px;border-radius:14px}
.consult-fab{left:auto;right:24px;bottom:24px}
@media(min-width:1700px){.workbench{grid-template-columns:448px minmax(0,1fr)}.controls{padding:24px}.part-nav{padding:18px 20px 0}.machine-heading h2{font-size:22px}}
@media(min-width:901px) and (max-width:1250px){
 .workbench{grid-template-columns:360px minmax(0,1fr);gap:16px}
 main{padding-inline:18px}
 .machine-heading{display:block;padding:16px}
 .machine-heading>span{display:block;margin-top:8px}
 .machine-heading h2{font-size:18px}
 .controls{padding:20px 16px}
 .option-button strong{font-size:16px}
 .task-tabs{padding-inline:18px;gap:22px}
 .hardware-bottom{padding-inline:16px}
 .machine-numbers{padding-inline:16px;gap:10px}
 .machine-numbers>div+div{padding-left:12px}
 .scene-note{padding-inline:16px}
 .field-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
 .topbar{padding-inline:20px}
 main{padding:22px 20px calc(104px + env(safe-area-inset-bottom))}
 .page-heading{flex-direction:column;align-items:flex-start;gap:20px}
 .machine-choice{width:100%}
 .machine-choice button{width:50%;min-width:0}
 .machine-settings{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .machine-settings .machine-choice button{min-width:0}
 .layout-warning{grid-column:1/-1}
 .workbench{grid-template-columns:minmax(0,1fr);grid-template-areas:"machine" "configuration";gap:20px}
 .machine-column,.task-panel{position:static}
 .task-panel{max-height:none}
 .task-panel>[role=tabpanel]{overflow:visible}
 .viewer-wrap{height:540px}
 .machine-heading{padding:16px 20px}
 .machine-heading>span{font-size:13px}
 .machine-numbers{padding:16px 20px 8px}
 .scene-note{padding:0 20px 8px}
 .part-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;padding:18px 20px 0;gap:8px}
 .part-nav button{padding:9px 8px}
 .controls{padding:24px}
 .model-result{margin:0 24px 24px}
 .hardware-bottom{padding:4px 24px 24px}
 .quantity-row button{min-width:44px;min-height:44px}
 .consult-fab{left:auto;right:20px;bottom:20px}
}
@media(max-width:600px){
 .topbar{height:auto;min-height:72px;padding:12px 16px;gap:12px}
 .brand small{display:none}
 .brand strong{font-size:18px;letter-spacing:1px}
 .brand-symbol{width:34px;height:34px;font-size:21px}
 .brand{gap:9px}
 .header-right{gap:8px}
 .header-consult{display:none}
 .local-label{font-size:12px;max-width:52px;line-height:1.5}
 .icon-button{font-size:14px;padding:8px 10px}
 main{padding:20px 12px calc(110px + env(safe-area-inset-bottom))}
 h1{font-size:28px}
 .page-heading p{font-size:15px;max-width:26em}
 .machine-settings{grid-template-columns:1fr;gap:14px}
 .machine-choice strong{font-size:16px}
 .machine-choice span{font-size:12px}
 .machine-choice button{padding:10px 9px}
 .machine-heading{display:block;padding:16px}
 .machine-heading>div{gap:12px}
 .machine-heading h2{font-size:18px}
 .machine-heading>span{display:block;margin-top:6px}
 .viewer-wrap{height:520px}
 .machine-numbers{padding:14px 16px 6px;gap:8px}
 .machine-numbers>div+div{padding-left:12px}
 .machine-numbers strong{font-size:21px;display:flex;align-items:baseline;gap:4px;white-space:nowrap}
 .machine-numbers span{font-size:12px}
 .machine-numbers strong small{font-size:12px}
 .scene-note{padding:0 16px 6px;font-size:12px;gap:0}
 .scene-note button{font-size:13px}
 .task-tabs{padding-inline:18px}
 .task-tabs button{font-size:20px}
 .part-nav{padding:16px 16px 0;gap:7px}
 .part-nav button{font-size:15px}
 .controls{padding:22px 18px}
 .option-button strong{font-size:16px}
 .option-button small{font-size:14px}
 .field-grid{gap:12px}
 .hardware-bottom{padding:4px 18px 22px}
 .model-result{margin:0 18px 22px}
 .task-footer{padding:8px 18px;font-size:13px}
 .quote-panel{grid-template-columns:1fr;padding:20px}
 .quote-panel>.primary{width:100%}
 .quote-panel details{grid-column:1}
 .consult-fab{left:0;right:0;bottom:0;justify-content:center;border-radius:0;border:0;border-top:1px solid var(--line);padding:12px 18px calc(12px + env(safe-area-inset-bottom))}
 .consult-fab small{display:none}
 #toast{bottom:90px}
}
@media(max-width:420px){.machine-numbers strong{font-size:19px}.machine-numbers>div+div{padding-left:9px}.field-grid{grid-template-columns:1fr}.viewer-wrap{height:500px}}
@media(max-height:600px) and (min-width:901px){.task-panel,.machine-column{position:static}.task-panel{max-height:none}.task-panel>[role=tabpanel]{overflow:visible}}
