/* Printed Workshop extension. All interface colors belong to theme.css. */
.virtual-bench{display:grid;grid-template-columns:224px minmax(0,1fr);gap:24px;align-items:start}
.bench-main{min-width:0;display:grid;gap:24px}.bench-shelf{min-width:0}.bench-shelf .shelf{padding:12px}
.weight-shelf{padding:16px;display:grid;gap:18px}.weight-item{min-width:0}
.weight-item>button{width:100%;display:grid;grid-template-columns:58px 1fr;text-align:left;gap:0 8px;padding:8px}
.weight-item svg{grid-row:span 2;width:58px;fill:var(--line);stroke:var(--ink);stroke-width:1.5}.weight-item .weight-hole{fill:var(--surface)}
.weight-item span{font-size:13px}.weight-item .field{margin-top:8px;font-size:13px}
.bench-shelf>[data-reset]{margin:0 16px 16px}
.bench-views{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--rule)}
.bench-views button{font-size:13px}.render-quality{display:flex;gap:8px;align-items:center;margin-left:auto;font-size:13px;color:var(--muted)}
.quality-picker,.dimension-picker{position:relative}
#render-quality,.themed-picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:112px;min-height:44px;padding:8px 10px;background:var(--surface);color:var(--ink);border:1px solid var(--field-border);border-radius:2px;font:600 13px Arial,Helvetica,sans-serif;text-align:left;cursor:pointer}
.themed-picker-trigger{width:100%;}
#render-quality svg,.themed-picker-trigger svg{width:12px;height:12px;flex:none;transition:transform .15s ease-out}
#render-quality[aria-expanded=true] svg,.themed-picker-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
#render-quality:hover,.themed-picker-trigger:hover{border-color:var(--ink);background-color:var(--hover)}
#render-quality:focus,.themed-picker-trigger:focus{outline:none;box-shadow:none;border-color:var(--ink);background-color:var(--selected)}
.quality-menu,.themed-picker-menu{position:absolute;z-index:8;top:calc(100% + 6px);right:0;min-width:100%;padding:4px;border:2px solid var(--ink);background:var(--surface);box-shadow:var(--panel-shadow)}
.themed-picker-menu{left:0;right:auto;width:100%}
.quality-menu button,.themed-picker-menu button{display:block;width:100%;min-height:44px;padding:10px 12px;text-align:left;border:0;background:transparent;font-size:13px}
.quality-menu button:hover,.quality-menu button:focus,.themed-picker-menu button:hover,.themed-picker-menu button:focus{outline:none;box-shadow:none;background:var(--hover);border-color:transparent}
.quality-menu button[aria-checked=true],.themed-picker-menu button[aria-checked=true]{background:var(--selected);box-shadow:inset 3px 0 0 var(--ink)}
.dimension-field{margin-bottom:12px}.dimension-field>span{display:block;margin-bottom:6px}
.scene-stage{position:relative;background:var(--paper);overflow:hidden}
#bench-scene{height:clamp(430px,42vw,570px);touch-action:none}#bench-scene canvas{display:block;width:100%;height:100%}
#bench-scene canvas:focus-visible{outline:3px solid var(--focus);outline-offset:-4px}
.scene-loading{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;padding:24px;margin:0;background:var(--paper);color:var(--muted);font-size:14px;text-align:center}
.scene-loading strong{color:var(--ink);font-size:18px;font-weight:600}.scene-loading p{margin:4px 0 0;max-width:32ch}
.loading-indicator{display:flex;align-items:end;gap:6px;height:24px;margin-bottom:4px}
.loading-indicator span{width:6px;height:20px;background:var(--ink);transform-origin:bottom;animation:bench-loading 1.2s ease-in-out infinite}
.loading-indicator span:nth-child(2){background:var(--accent);animation-delay:.15s}.loading-indicator span:nth-child(3){animation-delay:.3s}
.scene-loading[data-paused="true"] .loading-indicator span{animation-play-state:paused}
#bench-scene[aria-busy="true"] canvas{visibility:hidden}
@keyframes bench-loading{0%,100%{transform:scaleY(.45);opacity:.45}50%{transform:scaleY(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.loading-indicator span{animation:none}}
#retry-3d{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.scene-loading[hidden],#retry-3d[hidden]{display:none}
.camera-help{margin:0;padding:10px 16px;border-top:1px solid var(--rule);font-size:13px;color:var(--muted)}
.bench-operation{padding:20px;border-top:1px solid var(--line)}
.bench-steps{display:flex;flex-wrap:wrap;gap:12px 24px;list-style:none;margin:0 0 20px;padding:0 0 16px;border-bottom:1px solid var(--rule)}
.bench-steps li{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.bench-steps li>span{display:grid;place-items:center;width:24px;height:24px;border:1px solid var(--line);font-variant-numeric:tabular-nums}
.bench-steps li[data-state="current"]{color:var(--ink);font-weight:700}
.bench-steps li[data-state="current"]>span{background:var(--accent);border-color:var(--ink)}
.bench-steps li[data-state="complete"]>span{background:var(--paper);border-color:var(--ink)}
.bench-task-row{display:flex;justify-content:space-between;align-items:center;gap:16px 24px;flex-wrap:wrap}
.bench-task-copy{flex:1 1 300px;min-width:0}#bench-task{margin:0 0 6px;font-size:18px;line-height:1.3}
#bench-status{margin:0;max-width:65ch;font-size:14px;color:var(--muted)}
.apparatus-actions,.bench-secondary-actions{display:flex;gap:8px;flex-wrap:wrap}
.apparatus-actions button{font-size:14px;background:var(--ink);color:var(--surface);border-color:var(--ink)}
.apparatus-actions button:hover{background:var(--primary-hover)}
.bench-operation button[hidden],.bench-operation [hidden]{display:none}
.bench-load-choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.bench-load-choices button{font-size:14px;text-align:left}.bench-load-choices small{display:block;font-size:13px;font-weight:400;color:var(--muted);margin-top:4px}
.bench-load-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;border-top:1px solid var(--rule);margin-top:20px;padding-top:12px}
.bench-load-footer .quiet{flex:1 1 240px;margin:0;font-size:13px;max-width:65ch}
.bench-secondary-actions button{font-size:13px}
.instrument-workspace{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(300px,1.2fr);gap:24px}
.instrument-tabs{display:flex;gap:8px;padding:16px 20px 0}.instrument-tabs button{flex:1;font-size:14px}
#dial-instrument,#caliper-instrument{padding:20px}#dial-instrument[hidden],#caliper-instrument[hidden]{display:none}
#dial-instrument .quiet,#caliper-instrument .quiet{font-size:14px;margin:0 0 16px;max-width:65ch}
.instrument-access{margin-top:16px;padding-top:12px;border-top:1px solid var(--rule);font-size:14px}
.instrument-access summary{cursor:pointer;min-height:44px;display:list-item;padding-block:10px}
.instrument-access output{font-size:18px;font-variant-numeric:tabular-nums}
.caliper-actions{display:flex;gap:8px;margin-bottom:16px}.caliper-actions button{flex:1;font-size:13px}
#jaw-opening{--jaw-progress:0%;appearance:none;-webkit-appearance:none;display:block;width:100%;height:36px;margin:0 0 8px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;cursor:pointer}
#jaw-opening::-webkit-slider-runnable-track{height:6px;border:1px solid var(--ink);border-radius:0;background:linear-gradient(to right,var(--accent) 0 var(--jaw-progress),var(--hover) var(--jaw-progress) 100%)}
#jaw-opening::-moz-range-track{height:4px;border:1px solid var(--ink);border-radius:0;background:var(--hover)}
#jaw-opening::-moz-range-progress{height:4px;background:var(--accent)}
#jaw-opening::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:16px;height:20px;margin-top:-8px;border:2px solid var(--ink);border-radius:2px;background:var(--surface);box-shadow:2px 2px 0 var(--ink)}
#jaw-opening::-moz-range-thumb{width:12px;height:16px;border:2px solid var(--ink);border-radius:2px;background:var(--surface);box-shadow:2px 2px 0 var(--ink)}
#jaw-opening:hover::-webkit-slider-thumb,#jaw-opening:active::-webkit-slider-thumb,#jaw-opening:hover::-moz-range-thumb,#jaw-opening:active::-moz-range-thumb{background:var(--selected)}
#jaw-opening:focus{outline:none}#jaw-opening:focus-visible::-webkit-slider-thumb{background:var(--selected);border-color:var(--ink)}#jaw-opening:focus-visible::-moz-range-thumb{background:var(--selected);border-color:var(--ink)}
#jaw-opening:disabled{cursor:default;opacity:.45}
#bench-notebook{padding:20px}#bench-notebook h3{font-size:16px;margin:0 0 14px}#bench-notebook h3:not(:first-child){margin-top:24px}
.bench-readings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}#bench-notebook .quiet{font-size:13px;margin:16px 0}
.bench-notebook input{width:100%;font-variant-numeric:tabular-nums}
.virtual-bench button[aria-pressed="true"]{background:var(--selected);border-color:var(--ink)}
.virtual-bench button:disabled,.virtual-bench select:disabled{cursor:default;opacity:.45}
@media(max-width:1150px){
 .virtual-bench{grid-template-columns:190px minmax(0,1fr);gap:16px}.instrument-workspace{gap:16px;grid-template-columns:minmax(220px,.9fr) minmax(230px,1.1fr)}
 .render-quality{margin-left:0}
}
@media(max-width:900px){.instrument-workspace{grid-template-columns:1fr}#bench-scene{height:430px}}
@media(max-width:700px){
 .virtual-bench{grid-template-columns:1fr}.bench-shelf .shelf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible}.bench-shelf .beam-choice{min-width:0}
 .weight-shelf{grid-template-columns:repeat(5,140px);overflow-x:auto;gap:12px}.bench-shelf .panel-title{padding-block:10px}.bench-shelf .weight-item>button{grid-template-columns:1fr}
 .weight-item svg{width:50px;height:29px}#bench-scene{height:390px}
 .bench-views{gap:4px;padding:10px}.bench-views button{padding:8px}.bench-main{gap:16px}.render-quality{width:100%;justify-content:space-between}
 #render-quality,.quality-menu button,.themed-picker-trigger,.themed-picker-menu button{font-size:16px}.instrument-tabs{padding:12px 16px 0}#dial-instrument,#caliper-instrument,#bench-notebook{padding:16px}
.bench-operation{padding:16px}.bench-readings{gap:10px}.caliper-actions button{font-size:14px}
}
.virtual-guide{max-width:76ch;margin:0 0 32px;padding-bottom:24px;border-bottom:1px solid var(--line)}.virtual-guide h2{margin-top:0}.virtual-guide h3{margin:24px 0 12px}.virtual-guide li{margin-block:8px}
#bench-notebook [data-notebook]{margin-top:16px}

#dial-instrument .instrument-access output{display:flex;align-items:baseline;gap:8px;width:fit-content;max-width:100%;margin-top:10px;padding:12px 16px;border:1px solid var(--ink);background:var(--paper);box-shadow:2px 2px 0 var(--ink);font-size:24px;font-weight:700;letter-spacing:.01em}
#dial-instrument .instrument-access .reading-unit{color:var(--muted);font-size:13px;font-weight:600;letter-spacing:0}

/* Guided scene replaces the former camera/action strip. */
.bench-sequence{padding:16px 20px 0;margin:0;font-size:13px;line-height:1.5}
.virtual-bench #scene-frame{width:100%}

/* A ruled paper mount connects the immersive view to the notebook. */
.virtual-bench .activity-shell{border:2px solid var(--ink);padding:6px;background:var(--paper)}
.virtual-bench #scene-frame{border:1px solid var(--ink);border-radius:0}
@media(min-width:701px){
 .virtual-bench{align-items:stretch}
 .bench-main{grid-template-rows:auto 1fr}
 .bench-shelf{display:flex;flex-direction:column}
 .bench-shelf>[data-reset]{align-self:flex-start;margin-top:auto}
}
