.shm-workspace{display:grid;gap:1rem}
.shm-stage{display:grid;gap:1rem;padding-top:.25rem}
.shm-stage-copy{max-width:62rem}
.shm-bench{display:grid;grid-template-columns:minmax(20rem,1.35fr) minmax(15rem,.8fr);gap:1rem;align-items:stretch}
.shm-apparatus-panel,.shm-controls-panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--pale);padding:1rem}
.shm-apparatus{display:block;width:100%;max-height:25rem;background:var(--white);border:1px solid var(--line);border-radius:10px}
.shm-stand{stroke:#53636d;stroke-width:8;stroke-linecap:round}
.shm-spring{fill:none;stroke:var(--blue);stroke-width:5;stroke-linejoin:round;transform-origin:210px 45px}
.shm-mass{fill:var(--navy);stroke:#101820;stroke-width:2}
.shm-string{stroke:#49545b;stroke-width:2}
.shm-bob{fill:var(--navy);stroke:#101820;stroke-width:2}
.shm-pivot{fill:#49545b}
.shm-fiducial-post{stroke:#7a878d;stroke-width:3}
.shm-fiducial{stroke:#d65a31;stroke-width:4}
.shm-apparatus-label{fill:var(--ink);font:600 13px system-ui,-apple-system,"Segoe UI",sans-serif}
.shm-mass + .shm-apparatus-label{fill:#fff}
.shm-controls-panel{display:grid;grid-template-columns:1fr;gap:.55rem;align-content:start;background:var(--white)}
.shm-controls-panel label,.shm-analysis-form label{font-weight:800;color:var(--navy)}
.shm-controls-panel select,.shm-analysis-form input,.shm-calculation-form input{width:100%;min-height:2.7rem;padding:.45rem .55rem;border:1px solid #9faeb6;border-radius:8px;background:var(--white);color:var(--ink);font:inherit}
.shm-button-row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:.4rem}
.shm-stopwatch{margin-top:.4rem;padding:.7rem .9rem;border-radius:9px;background:#182127;color:#eef8ef;font:700 1.65rem "Courier New",monospace;font-variant-numeric:tabular-nums;text-align:center;letter-spacing:.03em}
.shm-calculation-form{display:grid;gap:.75rem}
.shm-calculation-form .simulation-results-table input{min-width:7.3rem;font-variant-numeric:tabular-nums}
.simulation-corrected{background:#fff5cc!important;box-shadow:inset 0 0 0 2px #bb7f00}
.simulation-corrected input{border-color:#8f6200!important;background:#fffdf2!important}
.simulation-correction-note{display:block;margin-top:.25rem;font-size:.8rem;font-weight:800;color:#6f4b00}
.shm-graph-frame{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--white);padding:.5rem}
.shm-graph-frame svg{display:block;width:100%;min-width:42rem;min-height:28rem}
.simulation-graph-grid-minor{stroke:#e3e7e9;stroke-width:.65}
.simulation-graph-grid-major{stroke:#b7c0c5;stroke-width:1.15}
.simulation-graph-axis{stroke:var(--ink);stroke-width:2}
.simulation-graph-fit{stroke:var(--blue);stroke-width:2.5}
.simulation-graph-point{fill:var(--navy);stroke:var(--white);stroke-width:1.5}
.simulation-graph-tick,.simulation-graph-label,.simulation-graph-empty{fill:var(--ink);font:12px system-ui,-apple-system,"Segoe UI",sans-serif}
.simulation-graph-label{font-size:14px;font-weight:800}
.simulation-graph-empty{font-size:15px}
.shm-analysis-form{display:grid;grid-template-columns:minmax(14rem,22rem);gap:.65rem;align-items:start}
.shm-analysis-form p{margin:.15rem 0 .35rem}
.shm-workspace-actions{padding-top:.5rem;border-top:1px solid var(--line)}
.simulation-check{display:flex;gap:.55rem;align-items:flex-start;margin-bottom:.8rem}
.simulation-check input{margin-top:.25rem}
.shm-workspace button:focus-visible,.shm-workspace select:focus-visible,.shm-workspace input:focus-visible{outline:3px solid #ffbf47;outline-offset:3px}
.simulation-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(16rem,1fr));gap:1.25rem}
@media(max-width:800px){.shm-bench{grid-template-columns:1fr}.simulation-summary-grid{grid-template-columns:1fr}.shm-apparatus{max-height:22rem}}
@media(max-width:620px){.shm-button-row{flex-direction:column}.shm-button-row .button{width:100%;justify-content:center}.shm-calculation-form .simulation-table-wrap{overflow-x:auto}}
@media(prefers-reduced-motion:reduce){.shm-workspace *{animation:none!important;transition:none!important}}
.shm-draggable{cursor:grab;touch-action:none;outline:none}
.shm-draggable:active{cursor:grabbing}
.shm-draggable:focus-visible{stroke:#d78900;stroke-width:5;filter:drop-shadow(0 0 3px #ffbf47)}
.shm-draggable[aria-disabled="true"]{cursor:wait;opacity:.65}
.shm-mass-label{fill:#fff;font:700 12px system-ui;pointer-events:none}
.shm-ruler{fill:none;stroke:#74828c;stroke-width:2}
.shm-length-handle{fill:#d65a31;stroke:#8f361c;stroke-width:2}
.shm-apparatus-help{font-size:.9rem;line-height:1.5;margin:.75rem 0 0}
.shm-mass-rack{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}
.shm-mass-rack button{min-height:44px;min-width:65px;border:1px solid #71828c;border-radius:6px;background:#fff;font:inherit;cursor:pointer}
.shm-mass-rack button[aria-pressed="true"]{background:var(--navy);color:#fff}
.shm-cycle-count{font-weight:800;margin:.6rem 0 0}
.shm-controls-panel [data-shm-pace]{margin:.1rem 0;font-size:.9rem}

.shm-ruler-label{fill:var(--ink);font:10px system-ui;pointer-events:none}

.shm-rack-label{font:600 11px system-ui;fill:#fff;pointer-events:none}.shm-draggable[aria-pressed="true"] .shm-mass{stroke:#f59e0b;stroke-width:4}
