/* 26—36：与前面新版同一布局，样式仅作用于第四组。 */
.app-shell:has(.is-magnet-lab){width:min(1600px,100%)}
.is-magnet-lab .experiment-layout{grid-template-columns:minmax(0,1fr) 250px;gap:16px;align-items:start}
.is-magnet-lab .operation-panel{padding:16px;min-width:0}
.is-magnet-lab .experiment-canvas{display:block;min-height:0;background:#f5f9fe}
.is-magnet-lab .experiment-canvas>.ml-workspace{display:block;width:100%;min-width:0;justify-self:stretch;align-self:stretch}
.ml-workspace{background:linear-gradient(150deg,#fbfdff,#edf5fd)}
.ml-board{display:block;width:100%;height:auto;min-height:420px;max-height:none;user-select:none;touch-action:pan-y}
.ml-board [data-ml-action],.ml-board [data-action]{cursor:pointer}
.ml-board [data-ml-drag]{cursor:grab;touch-action:none}
.ml-board text{font-family:"Microsoft YaHei","PingFang SC",sans-serif}
.ml-board .fl-label{font-size:17px}.ml-board .fl-label.tiny{font-size:13px}
.ml-wire{fill:none;stroke:#64829b;stroke-width:5;stroke-linecap:round;stroke-linejoin:round}
.ml-wire.live{stroke:#db7167}.ml-wire.neutral{stroke:#4189cf}.ml-wire.earth{stroke:#44a283;stroke-dasharray:12 4}
.ml-field{fill:none;stroke:#89abc9;stroke-width:2;marker-end:url(#mlArrow)}
.ml-force{fill:none;stroke:#d58644;stroke-width:4;marker-end:url(#mlForce)}
.ml-coil{fill:none;stroke:#af7d49;stroke-width:4;stroke-linecap:round}
.ml-rotor{transform-origin:450px 235px}.ml-rotor.running{animation:mlRotate 2.5s linear infinite}.ml-rotor.reverse{animation-direction:reverse}
@keyframes mlRotate{to{transform:rotate(360deg)}}
.ml-arm{transition:y2 .2s,stroke .2s}.ml-conductor{stroke:#d49a40;stroke-width:12;stroke-linecap:round;cursor:ew-resize}
.ml-legend{padding:14px 18px;background:#edf5ff;color:#5a7899;font-size:13px;line-height:1.7;border-top:1px solid #dde9f4}
.is-magnet-lab .information-column,.is-magnet-lab .data-grid{display:block}
.is-magnet-lab .explanation-panel,.is-magnet-lab .feedback-panel{display:none}
.ml-explanation{padding:14px;background:#f0f6fc;border-radius:12px;color:#4b6c8b;font-size:13px;line-height:1.75}
.ml-explanation p{margin:0 0 10px}.ml-explanation p:last-child{margin-bottom:0}.ml-explanation .knowledge-formula{font-size:15px}
.ml-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.ml-controls>.record-actions,.ml-controls>.record-table-wrap,.ml-controls>.fl-hint,.ml-controls>.ml-wide{grid-column:1/-1}
.ml-controls>.control-block{margin:0;padding:12px;background:#f7fafd;border:1px solid #e1ebf4;border-radius:12px}
.ml-controls .button-row{gap:8px}.ml-controls button{min-height:44px;font-size:14px}.ml-controls input[type=range]{min-height:30px}
.ml-readings{display:grid;gap:12px}.ml-readings .data-item{background:#f7fafd;border:1px solid #e3edf7;border-radius:12px;padding:12px}.ml-readings .data-value{font-size:23px}
.is-magnet-lab .stage2-workspace{display:block;width:100%;padding:0}.is-magnet-lab .stage4-visual-card{width:100%;border:none;background:transparent;min-height:420px;padding:24px}
.is-magnet-lab .safety-card{min-height:70px;border-radius:12px;background:#fff}.is-magnet-lab .safety-card.active{background:#edf6ff}.is-magnet-lab .safety-question{padding:22px;margin-top:16px;border-radius:16px;background:#fff}.is-magnet-lab .safety-question h3{font-size:23px}
.is-magnet-lab .training-card p{font-size:23px;line-height:1.8}.is-magnet-lab .training-choices button{min-height:60px;text-align:left;font-size:17px}.is-magnet-lab .training-result{font-size:17px;line-height:1.8}
@media(max-width:1280px){.is-magnet-lab .experiment-layout{grid-template-columns:1fr}.ml-readings{grid-template-columns:repeat(2,minmax(0,1fr))}.ml-explanation,.ml-readings>.fl-hint{grid-column:1/-1}.ml-readings>.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-column:1/-1}}
@media(max-width:760px){.is-magnet-lab .operation-panel{padding:10px}.ml-board{min-height:0}.ml-controls{grid-template-columns:1fr}.is-magnet-lab .stage4-visual-card{padding:14px}.is-magnet-lab .safety-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.ml-rotor.running{animation:none}.ml-arm{transition:none}}
