/* Scoped module; the shared theme owns cards, practice, and printable page layout. */
[data-interactive="assembly-motion-lab"] { min-width: 0; }
.am-live > .am-static { display: none; }
.am-lab { font-family: var(--f-display); line-height: 1.5; }
.am-lab p { margin-block: .6rem; }
.am-setup, .am-coordinates { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.am-lab label { display: grid; gap: .3rem; min-width: 0; }
.am-lab :is(button,select,input[type="number"]) { font: inherit; color: var(--ink); background: var(--surface); border: 1px solid var(--rule); border-radius: var(--radius-xs); min-height: 44px; min-width: 0; max-width: 100%; padding: .4rem .55rem; }
.am-lab :is(button,select,summary) { cursor: pointer; }
.am-lab :is(button,select,input,summary):focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; }
.am-lab fieldset { border: 1px solid var(--rule); min-width: 0; margin: .8rem 0; }
.am-lab fieldset label { display: flex; align-items: center; gap: .6rem; min-height: 44px; }
.am-lab input[type="checkbox"] { width: 22px; height: 22px; accent-color: var(--accent); flex: none; }
.am-lab input[type="range"] { width: 100%; min-width: 0; height: 44px; accent-color: var(--accent); }
.am-views { display: grid; grid-template-columns: 1.65fr 1fr; gap: .6rem; }
.am-views figure { margin: 0; min-width: 0; border: 1px solid var(--rule); background: var(--paper); }
.am-views svg { display: block; width: 100%; height: auto; }
.am-views svg text { font: 15px var(--f-display); fill: var(--ink); }
.am-views figcaption { font-size: .9rem; padding: .5rem; }
.am-housing { fill: var(--surface); stroke: var(--ink); stroke-width: 2; }
.am-ground { stroke: var(--ink); stroke-width: 2; fill: none; }
.am-shaft { fill: var(--paper); stroke: var(--accent); stroke-width: 2; }
.am-selected { stroke: var(--accent); stroke-width: 5; }
.am-datum { stroke: var(--ink); stroke-width: 2; stroke-dasharray: 5 4; }
.am-axis { stroke: var(--accent); stroke-width: 2; fill: none; }
.am-lever { stroke: var(--accent); stroke-width: 12; stroke-linecap: round; }
.am-knob { stroke: var(--accent); stroke-width: 3; fill: var(--paper); }
.am-status { display: block; font-weight: 700; padding: .65rem; border-left: 4px solid var(--accent); background: var(--surface); margin-block: .75rem; }
.am-readings { font-weight: 700; margin-bottom: .75rem; }
.am-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.am-feedback, .am-goal { padding: .5rem; border: 1px solid var(--rule); }
.am-goal { font-weight: 700; }
.am-edit { margin-top: .8rem; padding: .6rem; border: 1px solid var(--rule); }
.am-edit summary { min-height: 44px; }
.am-edit label { margin-bottom: .5rem; }
.am-limits, .am-help { font-size: .9rem; }
@media (max-width: 40rem) { .am-setup, .am-coordinates, .am-views { grid-template-columns: minmax(0,1fr); } .am-actions button { width: 100%; } .am-views figure:nth-child(2) svg { max-height: 230px; } }
@media print { .am-live > .am-static { display: block !important; } .am-lab { display: none !important; } }
