/* Isolated educational shoulder prototype; no estimator or global styles. */
.shoulder-rom-page .cinema-scene .hero-command { min-height: 0; padding-block: 34px; }
.shoulder-rom-page .cinema-scene .hero-copy { max-width: 1000px; }
.shoulder-rom-page .cp-lander-hero h1 { font-size: 32px; max-width: 980px; }
.shoulder-rom-page .cp-lander-hero .lead { max-width: 850px; font-size: 16px; }
.rom-section { padding-block: 32px; background: #fff; color: #17283b; scroll-margin-top: 110px; }
.rom-section h2 { font-size: 26px; margin: 0 0 10px; }
.rom-heading { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.rom-heading h2 { margin: 0; }
.rom-heading [data-rom-actions]:empty { display: none; }
.shoulder-rom-page .rom-heading .cp-action-dock { position: static; width: auto; max-width: 100%; margin: 0; box-shadow: none; transform: none; }
.rom-intro { margin: 0 0 24px; max-width: 900px; color: #46576a; }
.rom-controls { display: flex; flex-wrap: wrap; gap: 20px 32px; padding-bottom: 22px; }
.rom-controls fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.rom-controls legend { font-weight: 700; font-size: 14px; padding: 0 0 8px; }
.rom-segment { display: flex; border: 1px solid #94a8b5; border-radius: 6px; overflow: hidden; }
.rom-segment label { position: relative; margin: 0; padding: 0; flex: 1 0 auto; display: block; cursor: pointer; }
.rom-segment label + label { border-left: 1px solid #94a8b5; }
.rom-segment input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.rom-segment span { display: flex; align-items: center; justify-content: center; min-height: 44px; height: 100%; width: 100%; white-space: nowrap; padding: 10px 16px; color: #233449; font-size: 14px; background: #f3f6f6; }
.rom-segment input:checked + span { background: #153e46; color: #fff; }
.rom-segment input:focus-visible + span { box-shadow: inset 0 0 0 3px #dcab41; }
.rom-workspace { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 32px; align-items: start; }
.rom-figure { margin: 0; min-width: 0; background: #f6f7f8; border: 1px solid #c8cfd3; border-radius: 8px; overflow: hidden; }
.rom-figure-heading { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 8px; padding: 18px 20px 0; font-size: 13px; color: #314b53; }
.rom-figure-heading b { display: inline-block; width: 38px; text-align: right; font-variant-numeric: tabular-nums; }
.rom-diagram { display: block; width: 100%; max-height: 520px; aspect-ratio: 1; }
.rom-diagram [hidden] { display: none; }
.rom-reference-arc { stroke: #a7bcb9; stroke-width: 1.5; stroke-dasharray: 3 6; fill: none; }
.rom-reference-lines { stroke: #b9c9c7; stroke-width: 1; fill: none; }
.rom-ticks { fill: #3a525c; font: 600 15px Inter, sans-serif; }
.rom-clinical-part { overflow: hidden; pointer-events: none; }
.rom-motion-axis { stroke: #fff; stroke-width: 1; stroke-dasharray: 2 5; opacity: .6; }
.rom-pivot { fill: #efbb4d; stroke: #573f13; stroke-width: 1.5; }
.rom-selected-arc { stroke: #987020; stroke-width: 3; fill: none; }
.rom-endpoint-line { stroke: #987020; stroke-width: 2; stroke-dasharray: 4 4; fill: none; }
.rom-endpoint-dot { fill: #987020; }
.rom-figure figcaption { border-top: 1px solid #c1d2cd; padding: 14px 20px; font-size: 13px; color: #3f565e; }
.rom-settings { min-width: 0; }
.rom-endpoint-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rom-endpoint-heading label { font-weight: 700; margin: 0; }
.rom-endpoint-heading output { font: 800 32px Archivo, sans-serif; font-variant-numeric: tabular-nums; min-width: 90px; text-align: right; color: #153e46; }
.rom-slider { width: 100%; min-height: 44px; padding: 0; margin: 0; accent-color: #17616a; cursor: pointer; }
.rom-scale { display: flex; justify-content: space-between; gap: 12px; font-size: 12px; color: #46576a; }
.rom-help { color: #46576a; font-size: 13px; line-height: 1.6; margin: 10px 0; }
.rom-playback { display: flex; gap: 12px; margin: 18px 0; }
.rom-playback .btn { box-shadow: none; min-height: 44px; border: 1px solid #637d87; border-radius: 6px; padding: 10px 16px; font-size: 14px; }
.rom-playback [data-rom-play] { min-width: 150px; }
.rom-playback .btn:disabled { opacity: .65; cursor: not-allowed; }
.rom-result { border-block: 1px solid #bfcdd1; padding: 18px 0; margin-block: 18px; min-height: 173px; }
.rom-result .rom-result-label { margin: 0 0 5px; color: #46576a; font-size: 13px; font-weight: 700; }
.rom-result > strong { display: block; font: 800 30px Archivo, sans-serif; color: #153e46; }
.rom-result p:last-child { font-size: 14px; line-height: 1.6; margin: 8px 0 0; }
.rom-thresholds { display: grid; gap: 6px; }
.rom-threshold-heading { display: grid; grid-template-columns: 42px 1fr 50px; gap: 12px; padding: 0 15px 8px; font-size: 13px; font-weight: 700; color: #314b53; }
.rom-threshold-heading strong { text-align: right; }
.rom-thresholds button { display: grid; grid-template-columns: 42px 1fr 50px; gap: 12px; align-items: center; text-align: left; min-height: 46px; border: 1px solid #acbfc3; border-radius: 4px; padding: 10px 14px; background: #fff; color: #233449; font: 500 14px Inter, sans-serif; cursor: pointer; }
.rom-thresholds button strong { text-align: right; }
.rom-thresholds button:hover { background: #edf5f2; }
.rom-thresholds button[aria-pressed=true] { border-color: #17616a; background: #e8f4ef; box-shadow: inset 3px 0 #17616a; }
.rom-section button:focus-visible, .rom-section input:focus-visible, .rom-section a:focus-visible { outline: 3px solid #87651b; outline-offset: 3px; }
.rom-notice { border-left: 3px solid #b58a33; padding: 4px 0 4px 18px; margin-top: 28px; font-size: 14px; max-width: 1000px; }
.rom-notice p { margin: 6px 0; }
.rom-sources { font-size: 13px; line-height: 1.8; margin-top: 18px; }
.rom-sources a { color: #185363; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 760px) {
  .rom-workspace { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .rom-controls { gap: 16px; }
  .rom-heading [data-rom-actions] { width: 100%; }
  .shoulder-rom-page .rom-heading .cp-action-dock { display: flex; flex-wrap: wrap; }
  .rom-controls fieldset { width: 100%; }
  .rom-figure-heading { padding: 14px 12px 0; font-size: 12px; }
  .rom-diagram { max-height: 375px; }
  .rom-figure figcaption { padding: 12px; }
  .rom-section h2 { font-size: 24px; }
  .shoulder-rom-page .cp-lander-hero h1 { font-size: 27px; }
  .shoulder-rom-page .cinema-scene .hero-command { padding-block: 26px; }
}
@media print {
  .rom-controls, .rom-playback, .rom-slider, .rom-thresholds, .rom-threshold-heading { display: none; }
  .rom-workspace { grid-template-columns: 1fr 1fr; }
  .rom-section { break-inside: avoid; }
}
