.rv-shell [hidden] { display: none !important; }
.rv-model-warning { grid-column: 1 / -1; margin: 0; padding: 13px 15px; color: var(--ink) !important; background: var(--wash); border-left: 4px solid var(--blue); border-radius: 0 var(--radius-sm) var(--radius-sm) 0; font-size: 13px; font-weight: 600; }
.rv-shell { display: grid; grid-template-columns: clamp(300px, 25vw, 380px) minmax(0, 1fr); align-items: start; width: min(calc(100% - 32px), 1580px); margin: 24px auto 32px; overflow: hidden; background: var(--surface); border: 1px solid var(--ink); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
.rv-panel { display: contents; color: var(--ink); }
.rv-sheet-header, .rv-context-bar, .rv-sheet-backdrop, .rv-mobile-dock, .rv-focused-essentials, .rv-focused-guidance, .rv-focused-more, .rv-focused-advanced { display: none; }
.rv-panel-head { grid-column: 1; grid-row: 1; align-self: center; padding: 18px 20px; }
.rv-panel-head, .rv-section-title, .rv-range-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.rv-overline { color: var(--muted); font: 600 10px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.rv-panel h2 { margin: 4px 0 0; font-size: 24px; }
.rv-module-selector { display: grid; gap: 7px; margin-top: 12px; color: var(--muted); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.rv-module-selector[hidden] { display: none; }
.rv-anatomy-tags { display: flex; flex-wrap: wrap; gap: 7px; }
.rv-anatomy-tag { min-height: 44px; padding: 7px 12px; color: var(--muted); background: var(--surface); border: 1px solid var(--line); border-radius: 999px; font: 750 12px/1 var(--sans); text-transform: none; letter-spacing: 0; cursor: pointer; box-shadow: var(--shadow-sm); }
.rv-anatomy-tag:hover { color: var(--blue); border-color: rgba(36,119,197,.45); transform: translateY(-1px); }
.rv-anatomy-tag.is-active { color: #fff; background: var(--blue); border-color: var(--blue); box-shadow: 0 5px 14px rgba(36,119,197,.24); }
.rv-status { position: fixed; z-index: 100; top: 18px; left: 50%; width: min(620px, calc(100% - 32px)); padding: 12px 15px; color: var(--red); background: var(--danger-wash); border: 1px solid var(--danger-line); border-radius: 9px; box-shadow: var(--shadow-md); font-size: 12px; transform: translateX(-50%); }
.rv-mode-switch { display: grid; grid-column: 1; grid-row: 2; grid-template-columns: 1fr 1fr; gap: 4px; align-self: center; margin: 14px 20px; padding: 4px; background: var(--line); border-radius: 10px; }
.rv-mode-switch button { min-height: 44px; color: var(--muted); background: transparent; border: 0; border-radius: 7px; font-weight: 700; cursor: pointer; }
.rv-mode-switch button.is-active { color: #fff; background: var(--blue); box-shadow: 0 2px 8px rgba(39,92,161,.22); }
.rv-control-section { padding: 20px 0; border-bottom: 1px solid var(--line); }
.rv-section-title h3 { margin: 0; font: 700 13px/1 var(--sans); }
.rv-text-button { min-height: 44px; padding: 7px 8px; color: var(--blue); background: transparent; border: 0; border-radius: 7px; font-size: 11px; font-weight: 700; cursor: pointer; }
.rv-preset-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.rv-preset-grid button { min-height: 44px; padding: 5px 7px; color: var(--muted); background: var(--surface-subtle); border: 1px solid var(--line); border-radius: 8px; font-size: 11px; line-height: 1.2; font-weight: 600; cursor: pointer; }
.rv-preset-grid button:hover, .rv-preset-grid button.is-active { color: #fff; background: var(--blue); border-color: var(--blue); }
.rv-view-section { grid-column: 1; grid-row: 3; max-height: 430px; padding: 14px 20px 16px; overflow-y: auto; border-top: 1px solid var(--line); border-bottom: 0; }
.rv-shell #studyPanel { display: contents; }
.rv-lesson { display: grid; grid-column: 1 / -1; grid-row: 5; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 24px; margin: 20px; padding: 18px 20px; background: linear-gradient(145deg, #f5f8fb, #edf3f8); border: 1px solid #d8e2ec; border-radius: 12px; }
.rv-lesson-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid #d5e0e9; }
.rv-lesson-head { grid-column: 1 / -1; }
.rv-lesson-head h3 { margin: 4px 0 0; color: var(--ink); font-size: 19px; line-height: 1.15; }
.rv-angle { flex: none; padding: 6px 8px; color: var(--blue-dark); background: #dce9f7; border-radius: 7px; font: 600 10px/1 var(--mono); }
.rv-lesson-block { padding-top: 13px; }
.rv-lesson-block h4 { margin: 0 0 5px; color: var(--blue-dark); font: 700 11px/1.2 var(--sans); text-transform: uppercase; letter-spacing: .04em; }
.rv-lesson-block p, .rv-lesson-block li { color: #465967; font-size: 12px; line-height: 1.48; }
.rv-lesson-block p { margin: 0; }
.rv-lesson-block ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.rv-lesson-block li { position: relative; padding-left: 17px; }
.rv-lesson-block li::before { position: absolute; left: 0; color: var(--verified); content: "✓"; font-weight: 800; }
.rv-look-for { display: grid; gap: 3px; margin-top: 9px; padding: 9px 10px; background: #fff; border-left: 3px solid var(--teal); border-radius: 0 7px 7px 0; }
.rv-look-for strong { color: var(--ink); font-size: 10px; text-transform: uppercase; letter-spacing: .05em; }
.rv-look-for span { color: #536875; font-size: 11px; line-height: 1.45; }
.rv-feature-block { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(190px, .65fr) minmax(0, 2.35fr); gap: 18px; margin-top: 15px; padding-top: 14px; border-top: 1px solid #d5e0e9; }
.rv-feature-block h4 { margin: 0 0 5px; color: var(--blue-dark); font: 700 11px/1.2 var(--sans); text-transform: uppercase; letter-spacing: .04em; }
.rv-feature-block > div > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.rv-feature-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(190px, 100%), 1fr)); min-width: 0; gap: 8px; }
.rv-parameter-block { display: grid; grid-column: 1 / -1; grid-template-columns: minmax(190px, .65fr) minmax(0, 2.35fr); gap: 18px; margin-top: 15px; padding-top: 14px; border-top: 1px solid #d5e0e9; }
.rv-parameter-block > div > h4 { margin: 0 0 5px; color: var(--blue-dark); font: 700 11px/1.2 var(--sans); text-transform: uppercase; letter-spacing: .04em; }
.rv-parameter-block > div > p { margin: 0; color: var(--muted); font-size: 10px; line-height: 1.45; }
.rv-parameter-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(220px, 100%), 1fr)); min-width: 0; gap: 8px; }
.rv-parameter-list .rv-parameter { display: block; width: 100%; padding: 10px 11px; background: #fff; border: 1px solid #d6e2ec; border-radius: 8px; text-align: left; font: inherit; }
.rv-parameter-list .rv-parameter:not(:disabled) { cursor: pointer; }
.rv-parameter-list .rv-parameter.is-active { border-color: var(--blue); box-shadow: 0 0 0 2px rgba(38,113,184,.16); }
.rv-parameter-list .rv-parameter:disabled { opacity: .72; cursor: default; }
.rv-parameter-list h5 { margin: 0; color: var(--ink); font-size: 11px; }
.rv-parameter-list p { margin: 5px 0 0; color: #536875; font-size: 10px; line-height: 1.45; }
.rv-parameter-list small { display: block; margin-top: 7px; color: #176443; font-size: 9px; line-height: 1.4; font-weight: 700; }
.rv-feature { width: 100%; padding: 10px; color: inherit; background: #fff; border: 1px solid #d6e2ec; border-radius: 8px; font: inherit; text-align: left; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.rv-feature:hover, .rv-feature:focus-visible { border-color: #80aada; box-shadow: 0 4px 12px rgba(39,92,161,.12); transform: translateY(-1px); outline: none; }
.rv-feature.is-active { background: #edf5ff; border-color: var(--blue); box-shadow: inset 3px 0 0 var(--blue); }
.rv-feature.is-active strong::after { margin-left: 6px; color: var(--blue); content: "Shown on DRR"; font: 600 8px/1 var(--mono); letter-spacing: .04em; text-transform: uppercase; }
.rv-feature strong { display: block; color: var(--ink); font-size: 11px; }
.rv-feature p { margin: 4px 0 0; color: #536875; font-size: 10px; line-height: 1.4; }
.rv-feature small { display: block; margin-top: 6px; color: var(--teal); font-size: 9px; line-height: 1.4; font-weight: 700; }
.rv-lesson > *, .rv-feature-block > *, .rv-parameter-block > *, .rv-feature, .rv-parameter { min-width: 0; }
.rv-feature, .rv-parameter { overflow-wrap: anywhere; }
.rv-pitfall { grid-column: 1 / -1; margin: 15px 0 0; padding: 10px; color: #76551e; background: #fff8e8; border: 1px solid #ecdcae; border-radius: 8px; font-size: 11px; line-height: 1.45; }
.rv-pitfall::before { content: "Common pitfall · "; font-weight: 800; }
.rv-quiz { grid-column: 1; grid-row: 3; max-height: 460px; margin: 12px 20px 20px; padding: 18px 20px; overflow-y: auto; background: #f3f7fb; border: 1px solid #d6e2ee; border-radius: 12px; }
.rv-quiz h3 { margin: 5px 0 12px; font-size: 20px; }
.rv-quiz-type { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.rv-quiz-type button, .rv-quiz-choices button { padding: 9px; color: var(--blue-dark); background: #fff; border: 1px solid #cbd9e6; border-radius: 8px; font-size: 11px; font-weight: 700; cursor: pointer; }
.rv-quiz-type button.is-active { color: #fff; background: var(--blue); border-color: var(--blue); }
.rv-quiz-prompt { min-height: 54px; margin: 16px 0 10px; color: #344958; font-size: 13px; line-height: 1.5; }
.rv-quiz-choices { display: grid; gap: 6px; }
.rv-quiz-choices button { text-align: left; }
.rv-quiz-choices button:hover { border-color: var(--blue); }
.rv-quiz-choices button.is-correct { color: #176443; background: #e8f7ef; border-color: #8ac9a9; }
.rv-quiz-choices button.is-incorrect { color: #9e3d36; background: #fff0ef; border-color: #e9aaa6; }
.rv-quiz-toggle { display: flex; gap: 7px; align-items: flex-start; margin-top: 12px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.rv-quiz-toggle input { flex: none; accent-color: var(--blue); }
.rv-quiz-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 14px; }
.rv-primary-button, .rv-secondary-button { min-height: 44px; padding: 8px 11px; border-radius: 8px; font-size: 11px; font-weight: 700; cursor: pointer; }
.rv-primary-button { color: #fff; background: var(--blue); border: 1px solid var(--blue); }
.rv-secondary-button { color: var(--blue-dark); background: #fff; border: 1px solid #c7d6e4; }
.rv-quiz-feedback { min-height: 0; margin-top: 13px; color: #4d616e; font-size: 12px; line-height: 1.45; }
.rv-quiz-feedback:not(:empty) { padding: 10px; background: #fff; border-radius: 8px; }
.rv-quiz-feedback.is-correct { color: #176443; background: #e8f7ef; }
.rv-quiz-feedback.is-close { color: #76551e; background: #fff8e8; }
.rv-quiz-feedback.is-incorrect { color: #9e3d36; background: #fff0ef; }
.rv-quiz-score { display: flex; gap: 18px; margin-top: 13px; padding-top: 11px; color: var(--muted); border-top: 1px solid #d5e0e9; font: 600 10px/1 var(--mono); text-transform: uppercase; }
.rv-quiz-score strong { color: var(--ink); }
.rv-structure-list { display: grid; gap: 5px; margin-top: 12px; }
.rv-structure { display: grid; grid-template-columns: auto 14px 1fr; gap: 9px; align-items: center; min-height: 44px; padding: 4px 5px; border-radius: 7px; }
.rv-structure:hover { background: var(--surface-subtle); }
.rv-structure input { width: 16px; height: 16px; accent-color: var(--blue); }
.rv-colour { width: 11px; height: 11px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
.rv-structure label { font-size: 12px; cursor: pointer; }
.rv-structure small { color: var(--muted); font: 500 9px/1 var(--mono); }
.rv-range-label { margin-bottom: 8px; color: var(--muted); font-size: 12px; }
.rv-range-label--stacked { margin-top: 13px; }
.rv-range-label output { color: var(--ink); font: 600 11px/1 var(--mono); }
.rv-panel input[type="range"], .rv-model-tool input[type="range"], .rv-image-overlay input[type="range"] { width: 100%; margin-inline: 0; accent-color: var(--blue); }
.rv-control-note { margin: 7px 0 0; color: var(--muted); font-size: 10px; line-height: 1.4; }
.rv-model-accessibility { grid-column: 1; grid-row: 4; margin: 10px 18px 18px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface-subtle); }
.rv-model-accessibility > summary { min-height: 44px; box-sizing: border-box; padding: 13px 14px; color: var(--blue-dark); font-size: 11px; font-weight: 750; cursor: pointer; }
.rv-model-accessibility[open] > summary { border-bottom: 1px solid var(--line); }
.rv-model-accessibility-body { padding: 0 14px 12px; }
.rv-model-accessibility .rv-control-section { padding: 12px 0; }
.rv-model-accessibility .rv-structure-list { max-height: 240px; padding-right: 4px; overflow-y: auto; overscroll-behavior: contain; }
.rv-model-accessibility .rv-text-button:disabled { color: var(--muted); cursor: not-allowed; opacity: .55; }
.rv-help { z-index: 4; display: grid; grid-column: 2; grid-row: 1 / 4; align-self: end; justify-self: center; gap: 4px; margin-bottom: 14px; padding: 10px 12px; color: #d9e2ec; background: rgba(18,32,43,.86); border: 1px solid rgba(255,255,255,.12); border-radius: 9px; font-size: 10px; pointer-events: none; backdrop-filter: blur(7px); }
.rv-help strong { color: #fff; }
.rv-stage-wrap { position: relative; display: grid; grid-column: 2; grid-row: 1 / 4; grid-template-rows: minmax(0, 1fr); min-width: 0; height: clamp(600px, 72dvh, 760px); overflow: hidden; border-left: 1px solid rgba(18,32,43,.16); }
.rv-shell.is-landmark-authoring .rv-stage-wrap { grid-template-rows: auto minmax(0, 1fr); height: clamp(640px, 54vw, 810px); }
.rv-view-grid { display: grid; grid-template-columns: 1fr 1fr; min-height: 0; height: 100%; }
.rv-view-grid.is-model-hidden { grid-template-columns: 1fr; }
.rv-view-grid.is-model-hidden .rv-viewport:first-child { display: none; }
.rv-viewport { position: relative; min-width: 0; overflow: hidden; border-right: 1px solid rgba(255,255,255,.12); }
.rv-viewport:last-child { border-right: 0; }
.rv-viewport > header { position: absolute; z-index: 3; top: 14px; left: 14px; display: grid; grid-template-columns: auto auto; gap: 2px 10px; align-items: center; padding: 4px 4px 4px 10px; color: #fff; background: rgba(8,13,18,.68); border: 1px solid rgba(255,255,255,.12); border-radius: 8px; pointer-events: none; backdrop-filter: blur(7px); }
.rv-viewport > header span { grid-column: 1; grid-row: 1; font-size: 11px; font-weight: 700; }
.rv-viewport > header small { grid-column: 1; grid-row: 2; color: rgba(255,255,255,.6); font: 500 8px/1 var(--mono); text-transform: uppercase; }
.rv-reset-coronal { grid-column: 2; grid-row: 1 / 3; min-width: 44px; min-height: 44px; padding: 7px 10px; color: #eef7ff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 7px; font-size: 10px; font-weight: 750; white-space: nowrap; cursor: pointer; pointer-events: auto; }
.rv-reset-coronal:hover, .rv-reset-coronal:focus-visible { color: #10212a; background: #7ff4e9; border-color: #b7fff8; }
.rv-stage { position: absolute; inset: 0; cursor: grab; touch-action: none; }
.rv-stage:active { cursor: grabbing; }
.rv-stage.is-anatomy-navigation { cursor: pointer; }
.rv-stage.is-anatomy-navigation:active { cursor: pointer; }
.rv-structure-popover { position: absolute; z-index: 7; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 4px; align-items: center; width: min(224px, calc(100% - 20px)); min-height: 48px; padding: 4px; color: #eef7ff; background: rgba(9,22,32,.94); border: 1px solid rgba(127,225,255,.42); border-radius: 10px; box-shadow: 0 10px 24px rgba(0,0,0,.34); backdrop-filter: blur(9px); }
.rv-structure-popover[hidden] { display: none; }
.rv-structure-popover-name { display: flex; gap: 8px; align-items: center; min-width: 0; padding-left: 7px; }
.rv-structure-popover-name > span { flex: none; width: 12px; height: 12px; border: 2px solid rgba(255,255,255,.78); border-radius: 50%; box-shadow: 0 0 0 3px rgba(127,225,255,.12); }
.rv-structure-popover-name strong { display: block; overflow: hidden; color: #fff; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.rv-structure-popover-close { width: 44px; height: 44px; padding: 0; color: #d9e9f7; background: transparent; border: 1px solid transparent; border-radius: 8px; font-size: 20px; line-height: 1; cursor: pointer; }
.rv-structure-popover-close:hover, .rv-structure-popover-close:focus-visible { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.16); }
.rv-structure-visibility-toggle { min-width: 48px; min-height: 44px; padding: 0 9px; color: #fff; background: var(--blue); border: 1px solid #6ea2ed; border-radius: 8px; font-size: 10px; font-weight: 750; cursor: pointer; }
.rv-structure-visibility-toggle:hover { background: var(--blue-dark); }
.rv-structure-popover.is-hidden-structure .rv-structure-visibility-toggle { color: #10212a; background: #7ff4e9; border-color: #b7fff8; }
.rv-model-tools { position: absolute; z-index: 6; bottom: 14px; left: 14px; display: flex; gap: 7px; align-items: flex-end; max-width: calc(100% - 28px); }
.rv-model-tool { position: relative; color: #e7eef5; }
.rv-model-tool[hidden] { display: none; }
.rv-model-tool > summary { display: flex; gap: 7px; align-items: center; min-height: 44px; box-sizing: border-box; padding: 8px 11px; color: #eff7ff; background: rgba(12,25,35,.88); border: 1px solid rgba(255,255,255,.18); border-radius: 9px; box-shadow: 0 6px 18px rgba(0,0,0,.26); font-size: 10px; font-weight: 750; list-style: none; white-space: nowrap; cursor: pointer; backdrop-filter: blur(8px); }
.rv-model-tool > summary::-webkit-details-marker { display: none; }
.rv-model-tool > summary:hover, .rv-model-tool > summary:focus-visible, .rv-model-tool[open] > summary { background: rgba(24,54,75,.96); border-color: rgba(127,225,255,.45); }
.rv-model-tool > summary output { color: #8fd8ff; font: 700 9px/1 var(--mono); }
.rv-tool-count { display: grid; place-items: center; min-width: 19px; height: 19px; padding: 0 4px; color: #10212a; background: #7ff4e9; border-radius: 999px; font: 800 9px/1 var(--mono); }
.rv-model-tool-panel { position: absolute; bottom: calc(100% + 8px); left: 0; width: 230px; max-width: 100%; box-sizing: border-box; padding: 12px; color: #dce8f3; background: rgba(9,22,32,.96); border: 1px solid rgba(255,255,255,.18); border-radius: 10px; box-shadow: 0 12px 30px rgba(0,0,0,.38); backdrop-filter: blur(10px); }
.rv-model-tool-panel .rv-range-label, .rv-model-tool-panel .rv-control-note { color: #b8c7d3; }
.rv-model-tool-panel .rv-range-label output, .rv-model-tool-panel label { color: #fff; }
.rv-hidden-structures-panel { width: 250px; max-height: min(320px, calc(50vh - 20px)); overflow-y: auto; }
.rv-hidden-structure-list { display: grid; gap: 5px; }
.rv-hidden-structure { display: grid; grid-template-columns: 12px minmax(0,1fr) auto; gap: 8px; align-items: center; min-height: 44px; }
.rv-hidden-structure > span:nth-child(2) { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.rv-hidden-structure button, .rv-show-all-hidden { min-width: 54px; min-height: 40px; color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 7px; font-size: 10px; font-weight: 750; cursor: pointer; }
.rv-hidden-structure button:hover, .rv-hidden-structure button:focus-visible, .rv-show-all-hidden:hover, .rv-show-all-hidden:focus-visible { background: var(--blue); border-color: #6ea2ed; }
.rv-show-all-hidden { width: 100%; min-height: 44px; margin-top: 8px; }
.rv-joint-tool .rv-model-tool-panel { width: 272px; }
.rv-overview-prompt { position: absolute; z-index: 4; left: 50%; bottom: 22px; display: grid; gap: 4px; width: min(420px, calc(100% - 40px)); padding: 12px 16px; color: #dce8f3; background: rgba(10,20,29,.88); border: 1px solid rgba(127,190,244,.28); border-radius: 10px; box-shadow: 0 8px 26px rgba(0,0,0,.28); text-align: center; pointer-events: none; transform: translateX(-50%); backdrop-filter: blur(8px); }
.rv-overview-prompt strong { color: #fff; font-size: 13px; }
.rv-overview-prompt span { font-size: 10px; line-height: 1.4; }
.rv-anatomy-hotspots { position: absolute; z-index: 5; inset: 0; pointer-events: none; }
.rv-anatomy-hotspot { position: absolute; display: flex; align-items: center; gap: 6px; max-width: calc(100% - 16px); min-height: 44px; box-sizing: border-box; padding: 7px 10px; color: #fff; background: rgba(19,48,72,.9); border: 1px solid rgba(151,208,255,.6); border-radius: 999px; box-shadow: 0 5px 16px rgba(0,0,0,.34); font: 750 10px/1 var(--sans); white-space: nowrap; cursor: pointer; pointer-events: auto; transform: translate(-50%, -50%); backdrop-filter: blur(7px); }
.rv-anatomy-hotspot::before { flex: none; width: 7px; height: 7px; background: #7fe1ff; border: 2px solid rgba(255,255,255,.9); border-radius: 50%; box-shadow: 0 0 0 3px rgba(127,225,255,.2); content: ""; }
.rv-anatomy-hotspot:hover, .rv-anatomy-hotspot:focus-visible { background: var(--blue); border-color: #fff; outline: none; transform: translate(-50%, -50%) scale(1.05); }
.rv-overview-back { position: absolute; z-index: 5; top: 14px; right: 14px; min-height: 44px; padding: 8px 11px; color: #fff; background: rgba(12,28,41,.82); border: 1px solid rgba(255,255,255,.2); border-radius: 8px; font: 700 10px/1 var(--sans); cursor: pointer; backdrop-filter: blur(7px); }
.rv-overview-back:hover { background: var(--blue); border-color: var(--blue); }
.rv-shell.is-scan-overview .rv-mode-switch,
.rv-shell.is-scan-overview .rv-view-section,
.rv-shell.is-scan-overview .rv-lesson,
.rv-shell.is-scan-overview .rv-quiz,
.rv-shell.is-scan-overview .rv-help { display: none !important; }
.rv-shell.is-scan-overview .rv-view-grid { grid-template-columns: 1fr; grid-template-rows: 1fr; }
.rv-shell.is-scan-overview .rv-viewport--projection { display: none !important; }
.rv-stage canvas { display: block; width: 100% !important; height: 100% !important; }
.rv-stage .rv-drr-canvas { position: absolute; inset: 0; pointer-events: none; z-index: 1; }
.rv-anatomy-landmark-overlay { position: absolute; z-index: 5; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.rv-anatomy-landmark-overlay[hidden] { display: none; }
.rv-shell.is-anatomy-marking .rv-anatomy-landmark-overlay { background: rgba(0,0,0,.001); pointer-events: all; cursor: crosshair; touch-action: none; }
.rv-spatial-halo { display: none; }
.rv-spatial-line { fill: none; stroke: #ffd166; stroke-width: 2.5px; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.rv-spatial-node { fill: #ffd166; stroke: #16232d; stroke-width: 2px; vector-effect: non-scaling-stroke; cursor: grab; pointer-events: all; filter: drop-shadow(0 2px 3px rgba(0,0,0,.7)); }
.rv-spatial-node.is-endpoint { fill: #7ff4e9; }
.rv-spatial-node.is-dragging { fill: #fff; cursor: grabbing; }
.rv-joint-gizmo { position: absolute; z-index: 4; width: 220px; height: 220px; pointer-events: none; transform: translate(-110px, -110px); }
.rv-joint-gizmo[hidden] { display: none; }
.rv-joint-rings { position: absolute; inset: 0; width: 220px; height: 220px; overflow: visible; filter: drop-shadow(0 3px 4px rgba(0,0,0,.62)); }
.rv-joint-ring { cursor: grab; pointer-events: auto; touch-action: none; user-select: none; }
.rv-joint-ring-track { fill: none; stroke: currentColor; stroke-width: 5; stroke-opacity: .68; vector-effect: non-scaling-stroke; pointer-events: none; transition: filter 120ms ease, stroke-opacity 120ms ease, stroke-width 120ms ease; }
.rv-joint-ring-hit { fill: none; stroke: transparent; stroke-width: 18; pointer-events: stroke; vector-effect: non-scaling-stroke; }
.rv-joint-ring-handle { fill: currentColor; fill-opacity: .78; stroke: rgba(255,255,255,.8); stroke-width: 2; pointer-events: all; vector-effect: non-scaling-stroke; }
.rv-joint-ring:hover .rv-joint-ring-track, .rv-joint-ring:focus .rv-joint-ring-track, .rv-joint-ring.is-dragging .rv-joint-ring-track { filter: drop-shadow(0 0 5px currentColor); stroke-opacity: 1; stroke-width: 7; }
.rv-joint-ring.is-dragging { cursor: grabbing; }
.rv-joint-ring--flexion { color: #ef5350; }
.rv-joint-ring--abduction { color: #62cf6a; }
.rv-joint-ring--rotation { color: #4e9cff; }
.rv-joint-gizmo-center { fill: #fff; stroke: #152331; stroke-width: 3; filter: drop-shadow(0 2px 5px rgba(0,0,0,.72)); pointer-events: none; vector-effect: non-scaling-stroke; }
.rv-joint-position { position: absolute; top: 211px; left: 50%; display: flex; gap: 4px; width: max-content; padding: 5px; color: #fff; background: rgba(8,16,22,.88); border: 1px solid rgba(255,255,255,.18); border-radius: 7px; box-shadow: 0 5px 16px rgba(0,0,0,.34); font: 600 8px/1 var(--mono); transform: translateX(-50%); backdrop-filter: blur(6px); }
.rv-joint-position span { display: flex; align-items: center; gap: 4px; padding: 4px 5px; border-radius: 4px; background: rgba(255,255,255,.06); }
.rv-joint-position b { font: inherit; text-transform: uppercase; }
.rv-joint-position output { min-width: 30px; color: #fff; text-align: right; font-variant-numeric: tabular-nums; }
.rv-joint-position--flexion b { color: #ff7975; }
.rv-joint-position--abduction b { color: #79e482; }
.rv-joint-position--rotation b { color: #72b1ff; }
.rv-joint-gizmo-hint { position: absolute; top: 249px; left: 50%; width: max-content; padding: 5px 7px; color: #fff; background: rgba(8,16,22,.82); border: 1px solid rgba(255,255,255,.16); border-radius: 5px; font: 600 8px/1 var(--mono); transform: translateX(-50%); }
.rv-viewport--projection { background: #050607; }
.rv-landmark-overlay { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.rv-landmark-overlay[hidden] { display: none; }
.rv-landmark-halo, .rv-landmark-region-halo { display: none; }
.rv-landmark-trace, .rv-landmark-point-crosshair { vector-effect: non-scaling-stroke; fill: none; stroke: #ffd166; stroke-width: 2.2px; stroke-linecap: round; stroke-linejoin: round; }
.rv-landmark-guide--measurement .rv-landmark-trace { stroke: #7fe1ff; stroke-width: 1.9px; }
.rv-landmark-guide--alignment .rv-landmark-trace { stroke: #ff9f6e; stroke-dasharray: 5 3; }
.rv-measurement-value { fill: #7fe1ff; stroke: rgba(0,0,0,.8); stroke-width: .7px; paint-order: stroke fill; font: 700 4px/1 var(--mono); text-anchor: start; dominant-baseline: central; pointer-events: none; }
.rv-landmark-region { fill: none; stroke: rgba(255,209,102,.52); stroke-linecap: round; stroke-linejoin: round; }
.rv-landmark-point { fill: #ffd166; stroke: #17222b; stroke-width: 1.5px; vector-effect: non-scaling-stroke; }
.rv-landmark-point-crosshair { stroke-width: 1.25px; }
.rv-shell.is-landmark-authoring .rv-landmark-draft .rv-landmark-trace { stroke: #fff; stroke-width: 2.5px; stroke-dasharray: 4 3; }
.rv-shell.is-landmark-authoring .rv-landmark-draft .rv-landmark-region { stroke: rgba(255,255,255,.65); }
.rv-landmark-overlay .is-dashed .rv-landmark-trace { stroke-dasharray: 6 4; }
.rv-landmark-overlay .is-dashed .rv-landmark-halo { stroke-dasharray: 6 4; }
.rv-landmark-label { position: absolute; z-index: 3; display: grid; gap: 2px; max-width: min(180px, 34%); padding: 7px 9px; color: #fff; background: rgba(8,16,22,.88); border: 1px solid rgba(88,217,208,.7); border-radius: 7px; box-shadow: 0 6px 18px rgba(0,0,0,.28); pointer-events: none; transform: translate(-50%, -50%); backdrop-filter: blur(6px); }
.rv-landmark-label[hidden] { display: none; }
.rv-landmark-label strong { font-size: 10px; line-height: 1.2; }
.rv-landmark-label small { color: #79e5dc; font: 600 7px/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.rv-landmark-author { z-index: 7; display: grid; grid-template-columns: minmax(190px, .8fr) auto minmax(330px, 1.4fr) auto; gap: 8px 12px; align-items: center; min-width: 0; padding: 10px 14px; color: #eef8f7; background: #0b1922; border-bottom: 1px solid rgba(127,244,233,.56); box-shadow: 0 8px 20px rgba(0,0,0,.24); }
.rv-landmark-author[hidden] { display: none; }
.rv-landmark-author strong { font-size: 11px; }
.rv-landmark-author span { color: #b8d1d2; font-size: 9px; line-height: 1.35; }
.rv-landmark-author div { display: flex; flex-wrap: wrap; gap: 6px; }
.rv-landmark-author .rv-landmark-author-intro { display: grid; gap: 3px; }
.rv-landmark-author button { padding: 6px 8px; color: #e9ffff; background: rgba(71,150,174,.18); border: 1px solid rgba(127,244,233,.35); border-radius: 6px; font-size: 9px; cursor: pointer; }
.rv-landmark-author button:disabled { opacity: .42; cursor: default; }
.rv-landmark-tools button.is-active, .rv-landmark-space button.is-active { color: #10212a; background: #7ff4e9; border-color: #b7fff8; }
.rv-landmark-space { padding-right: 12px; border-right: 1px solid rgba(127,244,233,.18); }
.rv-landmark-history { justify-content: flex-end; }
.rv-landmark-brush-size { display: grid; grid-template-columns: auto minmax(90px, 1fr) 24px; align-items: center; gap: 8px; padding: 6px 8px; background: rgba(255,255,255,.045); border-radius: 6px; }
.rv-landmark-brush-size span, .rv-landmark-brush-size output { color: #cce0e1; font: 600 8px/1 var(--mono); }
.rv-landmark-brush-size input { width: 100%; accent-color: #7ff4e9; }
.rv-landmark-brush-size output { text-align: right; font-variant-numeric: tabular-nums; }
.rv-projection-curve-draft { fill: none; stroke: #fff; stroke-width: 2.4px; stroke-dasharray: 4 3; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.rv-projection-node { fill: #7ff4e9; stroke: #10212a; stroke-width: 1.6px; vector-effect: non-scaling-stroke; cursor: grab; pointer-events: all; filter: drop-shadow(0 1px 2px rgba(0,0,0,.72)); }
.rv-projection-node.is-endpoint { fill: #ffd166; }
.rv-projection-node.is-dragging { fill: #fff; cursor: grabbing; }
.rv-shell.is-landmark-authoring.is-projection-authoring .rv-landmark-overlay { z-index: 6; background: rgba(0,0,0,.001); pointer-events: all; cursor: crosshair; touch-action: none; }
.rv-shell.is-landmark-authoring .rv-feature.is-unreviewed { opacity: 1; border-style: dashed; }
.rv-feature.is-unreviewed { opacity: .58; }
.rv-feature .rv-feature-status { color: #c18740; }
.rv-feature-kind { justify-self: start; padding: 3px 5px; color: #9fe7e1; background: rgba(58,151,159,.12); border: 1px solid rgba(127,244,233,.2); border-radius: 4px; font: 700 7px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.rv-feature-kind--quality { color: #ffc88c; border-color: rgba(255,185,112,.25); background: rgba(187,111,43,.12); }
.rv-feature-kind--measurement { color: #a9eaff; border-color: rgba(127,225,255,.25); background: rgba(64,146,177,.12); }
.rv-projection-loading { position: absolute; z-index: 2; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.72); background: #050607; font: 600 11px/1 var(--mono); }
.rv-projection-loading.is-hidden { display: none; }
.rv-orientation span { position: absolute; z-index: 1; padding: 4px 6px; color: rgba(255,255,255,.72); background: rgba(8,13,18,.52); border-radius: 4px; font: 600 10px/1 var(--mono); pointer-events: none; }
.rv-orientation span:nth-child(1) { top: 14px; left: 50%; transform: translateX(-50%); }
.rv-orientation span:nth-child(2) { top: 50%; left: 14px; transform: translateY(-50%); }
.rv-orientation span:nth-child(3) { top: 50%; right: 14px; transform: translateY(-50%); }
.rv-orientation span:nth-child(4) { bottom: 14px; left: 50%; transform: translateX(-50%); }
.rv-fullscreen { position: absolute; z-index: 4; top: 14px; right: 14px; min-height: 44px; padding: 8px 10px; color: rgba(255,255,255,.82); background: rgba(8,13,18,.66); border: 1px solid rgba(255,255,255,.14); border-radius: 8px; font-size: 11px; cursor: pointer; backdrop-filter: blur(7px); }
.rv-image-overlay { position: absolute; z-index: 5; right: 14px; bottom: 14px; width: min(260px, calc(50% - 28px)); color: #e7eef5; background: rgba(12,20,28,.9); border: 1px solid rgba(255,255,255,.16); border-radius: 9px; box-shadow: 0 10px 28px rgba(0,0,0,.28); backdrop-filter: blur(9px); }
.rv-image-overlay summary { position: sticky; z-index: 1; top: 0; padding: 10px 12px; color: #fff; background: rgba(12,20,28,.96); font-size: 11px; font-weight: 700; cursor: pointer; }
.rv-image-overlay[open] summary { border-bottom: 1px solid rgba(255,255,255,.12); }
.rv-motion-controls[hidden] { display: none; }
.rv-motion-controls .rv-section-title small { color: #8fb5e7; font: 600 8px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.rv-motion-select { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: center; color: #b8c7d3; font-size: 11px; }
.rv-motion-select select { min-width: 0; padding: 6px 8px; color: #fff; background: #182735; border: 1px solid rgba(255,255,255,.16); border-radius: 6px; }
.rv-pose-buttons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; margin-top: 9px; }
.rv-pose-buttons button { min-height: 44px; padding: 6px 7px; color: #dbe8f5; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: 6px; font-size: 10px; font-weight: 700; cursor: pointer; }
.rv-pose-buttons button:hover, .rv-pose-buttons button.is-active { color: #fff; background: var(--blue); border-color: #6ea2ed; }
.rv-motion-precision { margin-top: 10px; padding-top: 9px; border-top: 1px solid rgba(255,255,255,.12); }
.rv-motion-precision summary { color: #c9d8e6; font-size: 10px; font-weight: 700; cursor: pointer; }
.rv-image-overlay-body { padding: 12px; }
.rv-image-overlay .rv-range-label { color: #c9d5df; }
.rv-image-overlay .rv-range-label output { color: #fff; }
.rv-image-overlay .rv-control-note { color: #aebdca; }
.rv-progress { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; height: 4px; background: rgba(255,255,255,.08); }
.rv-progress span { display: block; width: 0; height: 100%; background: #6ea2ed; transition: width .2s ease; }
.rv-progress.is-done { opacity: 0; transition: opacity .4s ease .3s; }
.rv-loading-state { position: absolute; z-index: 10; inset: 0; display: grid; place-items: center; padding: 20px; color: #eef7ff; background: radial-gradient(circle at 50% 38%, rgba(32,66,92,.98), rgba(6,15,22,.995) 68%); transition: opacity .35s ease, visibility .35s ease; }
.rv-loading-state[hidden] { display: none; }
.rv-loading-state.is-complete { opacity: 0; visibility: hidden; pointer-events: none; }
.rv-loading-card { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px 14px; align-items: center; width: min(460px, 100%); padding: 22px; background: rgba(12,26,37,.9); border: 1px solid rgba(143,181,231,.34); border-radius: 14px; box-shadow: 0 18px 48px rgba(0,0,0,.42); backdrop-filter: blur(10px); }
.rv-loading-card .rv-overline { color: #8fb5e7; }
.rv-loading-card strong, .rv-loading-card small { display: block; }
.rv-loading-card strong { margin-top: 5px; color: #fff; font-size: 16px; }
.rv-loading-card small { margin-top: 5px; color: #b9cbd8; font-size: 11px; line-height: 1.4; }
.rv-loading-spinner { width: 28px; height: 28px; border: 3px solid rgba(143,181,231,.2); border-top-color: #7ff4e9; border-radius: 50%; animation: rv-loading-spin .8s linear infinite; }
.rv-loading-meter { grid-column: 1 / 3; height: 8px; overflow: hidden; background: rgba(255,255,255,.12); border-radius: 999px; }
.rv-loading-meter span { display: block; width: 2%; height: 100%; background: linear-gradient(90deg, #4b87d1, #7ff4e9); border-radius: inherit; transition: width .18s ease; }
.rv-loading-card output { color: #d8ebfb; font: 700 11px/1 var(--mono); font-variant-numeric: tabular-nums; }
.rv-loading-card button { grid-column: 1 / -1; min-height: 44px; color: #fff; background: var(--blue); border: 0; border-radius: 8px; font-weight: 750; }
.rv-loading-state.is-error .rv-loading-spinner { border-color: rgba(255,138,129,.25); border-top-color: #ff8a81; animation: none; }
.rv-loading-state.is-error .rv-loading-meter, .rv-loading-state.is-error output { display: none; }
@keyframes rv-loading-spin { to { transform: rotate(360deg); } }
.rv-evidence { display: grid; grid-template-columns: minmax(250px, .8fr) minmax(300px, 1.2fr); gap: 22px 42px; margin-bottom: 52px; padding: 25px 28px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius-lg); }
.rv-evidence h2 { max-width: 440px; margin: 6px 0 0; font-size: clamp(25px, 3vw, 36px); line-height: 1.08; }
.rv-evidence > p { margin: 0; color: var(--muted); line-height: 1.65; }
.rv-objectives { display: grid; grid-column: 2; gap: 8px; margin: 0; padding: 0; list-style: none; }
.rv-objectives li { position: relative; padding-left: 20px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.rv-objectives li::before { position: absolute; left: 0; color: var(--verified); content: "✓"; font-weight: 800; }
.rv-dataset-citation { display: grid; grid-template-columns: minmax(0, 1fr); gap: 14px; padding: 25px 0 22px; border-bottom: 1px solid rgba(255,255,255,.08); }
.rv-dataset-citation[hidden] { display: none; }
.rv-dataset-citation .rv-overline { color: #8fb5e7; }
.rv-dataset-citation-summary p { margin: 7px 0 0; color: rgba(255,255,255,.7); font-size: 12px; line-height: 1.6; }
.rv-dataset-citation a { color: #b9d5f7; font-weight: 600; text-decoration: underline; text-decoration-color: rgba(185,213,247,.35); text-underline-offset: 3px; }
.rv-dataset-citation a:hover, .rv-dataset-citation a:focus-visible { color: #fff; text-decoration-color: currentColor; }
.rv-dataset-citation-details { width: 100%; color: rgba(255,255,255,.68); font-size: 11px; line-height: 1.58; }
.rv-dataset-citation-details summary { width: fit-content; color: #d7e5f5; font-weight: 700; cursor: pointer; }
.rv-dataset-citation-details[open] { box-sizing: border-box; padding: 14px 16px 16px; background: rgba(255,255,255,.045); border: 1px solid rgba(255,255,255,.09); border-radius: 9px; }
.rv-dataset-citation-details[open] summary { margin-bottom: 4px; }
.rv-dataset-citation-details p { max-width: 1120px; margin: 9px 0 0; }

.rv-shell button:focus-visible,
.rv-shell a:focus-visible,
.rv-shell summary:focus-visible,
.rv-shell select:focus-visible,
.rv-shell input:focus-visible,
.module-start a:focus-visible,
.module-evidence a:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }

.module-evidence-grid > #evidence-and-references { order: 3; }
.module-evidence-grid > #attribution-and-provenance { order: 4; }

@media (min-width: 981px) {
  .rv-shell { grid-template-columns: minmax(230px, 300px) minmax(0, 1fr); }
  .rv-panel-head { grid-column: 1 / -1; grid-row: 1; padding: 16px 20px; border-bottom: 1px solid var(--line); }
  .rv-panel-head > div { display: grid; grid-template-columns: minmax(220px, .55fr) minmax(0, 1.45fr); gap: 4px 24px; align-items: center; width: 100%; }
  .rv-panel-head .rv-overline { grid-column: 1; grid-row: 1; }
  .rv-panel-head h2 { grid-column: 1; grid-row: 2; }
  .rv-panel-head .rv-module-selector { grid-column: 2; grid-row: 1 / 3; margin-top: 0; }
  .rv-mode-switch { grid-column: 1; grid-row: 2; margin: 14px 16px; }
  .rv-view-section { grid-column: 2; grid-row: 2; max-height: none; padding: 12px 18px 14px; overflow: visible; border-top: 0; border-left: 1px solid var(--line); }
  .rv-preset-grid { grid-template-columns: repeat(auto-fit, minmax(118px, 1fr)); }
  .rv-quiz { grid-column: 2; grid-row: 2; max-height: 270px; margin: 12px 18px; }
  .rv-stage-wrap,
  .rv-shell.is-landmark-authoring .rv-stage-wrap { grid-column: 1 / -1; grid-row: 3; height: clamp(640px, 74dvh, 820px); border-top: 1px solid rgba(18,32,43,.16); border-left: 0; }
  .rv-help { grid-column: 1 / -1; grid-row: 3; }
  .rv-model-accessibility { grid-column: 1 / -1; grid-row: 4; }
}

@media (max-width: 980px) and (min-width: 641px) {
  .rv-shell { grid-template-columns: minmax(250px, 34vw) minmax(0, 1fr); }
  .rv-panel h2 { font-size: 20px; }
  .rv-stage-wrap { height: clamp(640px, 78dvh, 760px); }
  .rv-shell.is-landmark-authoring .rv-stage-wrap { height: clamp(700px, 86dvh, 840px); }
  .rv-view-grid { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; }
  .rv-viewport { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .rv-viewport:last-child { border-bottom: 0; }
  .rv-image-overlay { width: min(260px, calc(100% - 28px)); }
  .rv-image-overlay { right: 14px; }
  .rv-lesson { grid-template-columns: 1fr; }
  .rv-lesson-head, .rv-feature-block, .rv-parameter-block, .rv-pitfall { grid-column: auto; }
  .rv-feature-block, .rv-parameter-block { grid-template-columns: 1fr; }
  .rv-landmark-author { grid-template-columns: 1fr; align-items: start; }
  .rv-landmark-space { padding-right: 0; border-right: 0; }
  .rv-landmark-history { justify-content: flex-start; }
}

@media (max-width: 980px) {
  .rv-shell.is-scan-overview .rv-overview-prompt,
  .rv-shell.is-scan-overview .rv-model-tools { display: none; }
}

@media (max-width: 640px), (max-width: 900px) and (max-height: 500px) {
  .rv-shell:not(.is-focused-workspace) { grid-template-columns: 1fr; width: 100%; border-inline: 0; border-radius: 0; }
  .rv-shell:not(.is-focused-workspace) .rv-panel-head,
  .rv-shell:not(.is-focused-workspace) .rv-mode-switch,
  .rv-shell:not(.is-focused-workspace) .rv-view-section,
  .rv-shell:not(.is-focused-workspace) .rv-stage-wrap,
  .rv-shell:not(.is-focused-workspace) .rv-lesson,
  .rv-shell:not(.is-focused-workspace) .rv-quiz { grid-column: 1; }
  .rv-shell:not(.is-focused-workspace) .rv-panel-head { grid-row: 1; }
  .rv-shell:not(.is-focused-workspace) .rv-mode-switch { grid-row: 2; }
  .rv-shell:not(.is-focused-workspace) .rv-view-section { grid-row: 3; max-height: none; }
  .rv-shell:not(.is-focused-workspace) .rv-stage-wrap { grid-row: 4; height: 70svh; min-height: 460px; border-left: 0; }
  .rv-shell:not(.is-focused-workspace) .rv-lesson,
  .rv-shell:not(.is-focused-workspace) .rv-quiz { grid-row: 5; }
  .rv-shell:not(.is-focused-workspace) .rv-model-accessibility { grid-row: 6; }
  .rv-shell:not(.is-focused-workspace) .rv-view-grid { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; }
  .rv-shell:not(.is-focused-workspace) .rv-help { display: none; }
  .rv-evidence { grid-template-columns: 1fr; margin-inline: 16px; }
  .rv-objectives { grid-column: auto; }
  .rv-dataset-citation { margin-inline: 16px; }

  body.rv-focused-workspace-open { overflow: hidden; overscroll-behavior: none; }
  .rv-shell.is-focused-workspace { position: fixed; z-index: 1000; inset: 0; display: block; width: 100%; height: 100dvh; min-height: 100svh; margin: 0; overflow: hidden; background: #071018; border: 0; border-radius: 0; box-shadow: none; }
  .rv-shell.is-focused-workspace .rv-context-bar { position: absolute; z-index: 12; top: 0; right: 0; left: 0; box-sizing: border-box; display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 6px; align-items: center; height: calc(64px + env(safe-area-inset-top)); padding: calc(7px + env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) 7px max(8px, env(safe-area-inset-left)); color: #fff; background: rgba(9,22,32,.96); border-bottom: 1px solid rgba(255,255,255,.14); box-shadow: 0 4px 18px rgba(0,0,0,.3); }
  .rv-context-bar button { min-width: 44px; min-height: 44px; padding: 7px 9px; color: #e9f4ff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); border-radius: 8px; font-size: 11px; font-weight: 750; cursor: pointer; }
  .rv-context-bar button:hover, .rv-context-bar button:focus-visible { background: rgba(255,255,255,.15); }
  .rv-context-result { min-width: 0; }
  .rv-context-result small, .rv-context-result strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .rv-context-result small { color: #8fb5e7; font: 700 8px/1.2 var(--mono); letter-spacing: .07em; text-transform: uppercase; }
  .rv-context-result strong { margin-top: 3px; font-size: 11px; }
  .rv-context-views { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; padding: 2px; background: rgba(0,0,0,.28); border-radius: 9px; }
  .rv-context-views button { min-width: 42px; border: 0; }
  .rv-context-views button.is-active { color: #10212a; background: #7ff4e9; }
  .rv-context-controls { min-width: 62px !important; }
  .rv-shell.is-focused-workspace .rv-stage-wrap,
  .rv-shell.is-focused-workspace.is-landmark-authoring .rv-stage-wrap { position: absolute; inset: calc(64px + env(safe-area-inset-top)) 0 calc(58px + env(safe-area-inset-bottom)); display: block; width: 100%; height: auto; min-height: 0; border: 0; }
  .rv-shell.is-focused-workspace .rv-view-grid { position: absolute; inset: 0; display: block; width: 100%; min-height: 0; height: 100%; }
  .rv-shell.is-focused-workspace .rv-viewport { position: absolute; inset: 0; display: block; border: 0; }
  .rv-shell.is-focused-workspace.is-focused-model-view .rv-viewport--projection,
  .rv-shell.is-focused-workspace.is-focused-projection-view .rv-viewport:first-child { display: none; }
  .rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden .rv-viewport:first-child { display: none; }
  .rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden .rv-viewport--projection { display: block; }
  .rv-shell.is-focused-workspace .rv-help,
  .rv-shell.is-focused-workspace .rv-fullscreen { display: none; }
  .rv-shell.is-focused-workspace .rv-overview-back { top: 12px; }
  .rv-shell.is-focused-workspace .rv-image-overlay { display: none; }
  .rv-shell.is-focused-workspace .rv-image-overlay summary { position: static; min-height: 44px; color: var(--ink); background: transparent; }
  .rv-shell.is-focused-workspace .rv-image-overlay .rv-range-label output { color: var(--ink); }
  .rv-shell.is-focused-workspace .rv-image-overlay .rv-range-label,
  .rv-shell.is-focused-workspace .rv-image-overlay .rv-control-note { color: var(--muted); }
  .rv-shell.is-focused-workspace .rv-opacity-tool { display: none; }
  .rv-shell.is-focused-workspace .rv-sheet-backdrop { position: absolute; z-index: 18; inset: 0 0 calc(58px + env(safe-area-inset-bottom)); display: block; width: 100%; height: auto; padding: 0; background: rgba(0,0,0,.48); border: 0; }
  .rv-shell.is-focused-workspace .rv-sheet-backdrop[hidden] { display: none; }
  .rv-shell.is-focused-workspace .rv-mobile-dock { position: absolute; z-index: 22; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); height: calc(58px + env(safe-area-inset-bottom)); padding: 4px max(6px, env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(6px, env(safe-area-inset-left)); background: rgba(9,22,32,.98); border-top: 1px solid rgba(255,255,255,.15); box-shadow: 0 -5px 18px rgba(0,0,0,.28); }
  .rv-shell.is-focused-workspace .rv-mobile-dock button { display: grid; grid-template-rows: 18px auto; place-items: center; min-width: 0; min-height: 50px; padding: 3px 4px; color: #b9c9d8; background: transparent; border: 0; border-radius: 8px; font-size: 10px; font-weight: 750; line-height: 1; cursor: pointer; }
  .rv-shell.is-focused-workspace .rv-mobile-dock button > span { color: #7fe1ff; font: 800 15px/1 var(--mono); letter-spacing: -.08em; }
  .rv-shell.is-focused-workspace .rv-mobile-dock button.is-active { color: #fff; background: rgba(127,225,255,.13); }
  .rv-shell.is-focused-workspace .rv-context-controls { display: none; }
  .rv-shell.is-focused-workspace .rv-panel { position: absolute; z-index: 20; right: 0; bottom: calc(58px + env(safe-area-inset-bottom)); left: 0; display: block; max-height: min(calc(100dvh - 132px - env(safe-area-inset-top) - env(safe-area-inset-bottom)), 720px); padding: 0 max(12px, env(safe-area-inset-right)) 14px max(12px, env(safe-area-inset-left)); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scroll-padding-block: 58px 24px; color: var(--ink); background: var(--surface); border-radius: 16px 16px 0 0; box-shadow: 0 -12px 36px rgba(0,0,0,.38); transform: translateY(105%); transition: transform 180ms ease; -webkit-overflow-scrolling: touch; touch-action: pan-y; }
  .rv-shell.is-focused-workspace.is-controls-open .rv-panel { transform: translateY(0); }
  .rv-shell.is-focused-workspace .rv-sheet-header { position: sticky; z-index: 2; top: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; margin-inline: -12px; padding: 8px 12px; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); }
  .rv-sheet-header div { display: grid; gap: 2px; }
  .rv-sheet-header small { color: var(--muted); font: 700 8px/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
  .rv-sheet-header strong { font-size: 14px; }
  .rv-sheet-header button { min-width: 52px; min-height: 44px; color: var(--blue); background: transparent; border: 1px solid var(--line); border-radius: 8px; font-weight: 750; }
  .rv-shell.is-focused-workspace .rv-panel-head { display: block; padding: 14px 2px 10px; }
  .rv-shell.is-focused-workspace .rv-panel h2 { font-size: 20px; }
  .rv-shell.is-focused-workspace .rv-mode-switch { margin: 8px 0 12px; }
  .rv-shell.is-focused-workspace .rv-mode-switch button,
  .rv-shell.is-focused-workspace .rv-preset-grid button,
  .rv-shell.is-focused-workspace .rv-quiz-type button,
  .rv-shell.is-focused-workspace .rv-quiz-choices button,
  .rv-shell.is-focused-workspace .rv-primary-button,
  .rv-shell.is-focused-workspace .rv-secondary-button { min-height: 44px; }
  .rv-shell.is-focused-workspace #studyPanel { display: block; }
  .rv-shell.is-focused-workspace .rv-view-section { max-height: none; padding: 12px 0 16px; overflow: visible; }
  .rv-shell.is-focused-workspace .rv-preset-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rv-shell.is-focused-workspace .rv-lesson,
  .rv-shell.is-focused-workspace .rv-quiz { display: grid; grid-template-columns: 1fr; gap: 0; max-height: none; margin: 12px 0; padding: 15px; overflow: visible; }
  .rv-shell.is-focused-workspace .rv-lesson-head,
  .rv-shell.is-focused-workspace .rv-feature-block,
  .rv-shell.is-focused-workspace .rv-parameter-block,
  .rv-shell.is-focused-workspace .rv-pitfall { grid-column: auto; }
  .rv-shell.is-focused-workspace .rv-feature-block,
  .rv-shell.is-focused-workspace .rv-parameter-block { grid-template-columns: 1fr; }
  .rv-shell.is-focused-workspace .rv-feature,
  .rv-shell.is-focused-workspace .rv-parameter { min-height: 44px; }
  .rv-shell.is-focused-workspace .rv-quiz[hidden],
  .rv-shell.is-focused-workspace #studyPanel[hidden] { display: none !important; }
  .rv-shell.is-focused-workspace .rv-focused-essentials { display: grid; gap: 8px; padding: 14px 0; border-top: 1px solid var(--line); }
  .rv-shell.is-focused-workspace .rv-focused-essentials[hidden],
  .rv-shell.is-focused-workspace .rv-focused-guidance[hidden] { display: none; }
  .rv-shell.is-focused-workspace #workspaceEssentialControls { display: grid; gap: 6px; }
  .rv-shell.is-focused-workspace #workspaceEssentialControls > .rv-control-section,
  .rv-shell.is-focused-workspace #workspaceEssentialControls > .rv-model-tool-panel,
  .rv-shell.is-focused-workspace #workspaceEssentialControls > .rv-image-overlay-body { padding: 10px 0; }
  .rv-shell.is-focused-workspace #workspaceEssentialControls > .rv-model-tool-panel { position: static; width: auto; color: var(--ink); background: transparent; border: 0; border-radius: 0; box-shadow: none; backdrop-filter: none; }
  .rv-shell.is-focused-workspace #workspaceEssentialControls > .rv-model-tool-panel .rv-range-label { color: var(--muted); }
  .rv-shell.is-focused-workspace #workspaceEssentialControls > .rv-motion-controls { padding: 12px 0 4px; border-top: 1px solid var(--line); border-bottom: 0; }
  .rv-shell.is-focused-workspace #workspaceEssentialControls .rv-motion-select { color: var(--muted); }
  .rv-shell.is-focused-workspace #workspaceEssentialControls .rv-motion-select select { min-height: 44px; color: var(--ink); background: #fff; border-color: var(--line); }
  .rv-shell.is-focused-workspace #workspaceEssentialControls .rv-pose-buttons button { color: var(--blue-dark); background: #fff; border-color: #c7d6e4; }
  .rv-shell.is-focused-workspace #workspaceEssentialControls .rv-pose-buttons button:hover,
  .rv-shell.is-focused-workspace #workspaceEssentialControls .rv-pose-buttons button.is-active { color: #fff; background: var(--blue); border-color: var(--blue); }
  .rv-shell.is-focused-workspace #workspaceEssentialControls .rv-motion-precision { border-top-color: var(--line); }
  .rv-shell.is-focused-workspace #workspaceEssentialControls .rv-motion-precision summary { display: flex; align-items: center; min-height: 44px; color: var(--blue-dark); }
  .rv-shell.is-focused-workspace .rv-focused-guidance,
  .rv-shell.is-focused-workspace .rv-focused-more { display: block; margin: 10px 0; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-subtle); }
  .rv-shell.is-focused-workspace .rv-focused-guidance > summary,
  .rv-shell.is-focused-workspace .rv-focused-more > summary { min-height: 44px; padding: 13px 14px; color: var(--blue-dark); font-size: 12px; font-weight: 750; cursor: pointer; }
  .rv-shell.is-focused-workspace .rv-focused-guidance[open] > summary,
  .rv-shell.is-focused-workspace .rv-focused-more[open] > summary { border-bottom: 1px solid var(--line); }
  .rv-shell.is-focused-workspace #workspaceGuidanceContent,
  .rv-shell.is-focused-workspace .rv-focused-advanced { display: grid; gap: 10px; padding: 4px 12px 12px; }
  .rv-shell.is-focused-workspace .rv-focused-guidance .rv-lesson { margin: 8px 0 0; }
  .rv-shell.is-focused-workspace .rv-focused-advanced .rv-module-selector { display: grid; padding: 10px 0; }
  .rv-shell.is-focused-workspace .rv-model-accessibility { margin: 8px 0 0; background: #fff; }
  .rv-shell.is-focused-workspace .rv-model-accessibility-body { padding-bottom: 12px; }
  .rv-shell.is-focused-workspace .rv-structure-list { grid-template-columns: 1fr; }
  .rv-shell.is-focused-workspace .rv-structure { min-height: 44px; }
  .rv-shell.is-focused-workspace .rv-landmark-author { grid-template-columns: 1fr; max-height: 42%; overflow-y: auto; }
  .rv-shell.is-focused-workspace .rv-landmark-space { padding-right: 0; border-right: 0; }
  .rv-shell.is-focused-workspace .rv-landmark-history { justify-content: flex-start; }
}

@media (max-width: 640px) {
  .rv-hero { padding-block: 26px; }
  .rv-hero .tool-hero-grid { grid-template-columns: minmax(0, 1fr) 58px; gap: 14px; }
  .rv-hero h1 { margin-block: 5px 8px; font-size: clamp(34px, 10vw, 42px); }
  .rv-hero .tool-lede { font-size: 14px; line-height: 1.45; }
  .rv-hero .tool-identity-art { grid-column: 2; grid-row: 1; width: 58px; height: 58px; border-radius: 14px; }
  .module-start { margin-block: 10px 14px; padding: 13px 14px; }
  .module-start-actions .button { width: 100%; }
  .rv-shell:not(.is-focused-workspace) .rv-lesson { grid-template-columns: minmax(0, 1fr); }
  .rv-shell:not(.is-focused-workspace) .rv-lesson-head,
  .rv-shell:not(.is-focused-workspace) .rv-feature-block,
  .rv-shell:not(.is-focused-workspace) .rv-parameter-block,
  .rv-shell:not(.is-focused-workspace) .rv-pitfall { grid-column: auto; }
  .rv-shell:not(.is-focused-workspace) .rv-feature-block,
  .rv-shell:not(.is-focused-workspace) .rv-parameter-block,
  .rv-shell.is-focused-workspace .rv-feature-list,
  .rv-shell.is-focused-workspace .rv-parameter-list { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 390px) {
  .rv-shell.is-focused-workspace .rv-context-bar { grid-template-columns: auto minmax(0, 1fr) auto; }
  .rv-shell.is-focused-workspace .rv-context-result { display: none; }
  .rv-context-controls { min-width: 58px !important; }
}

@media (max-width: 900px) and (max-height: 500px) {
  .rv-shell:not(.is-focused-workspace) .rv-stage-wrap,
  .rv-shell:not(.is-focused-workspace).is-landmark-authoring .rv-stage-wrap { height: min(430px, calc(100svh - 16px)); min-height: 300px; }
  .rv-shell:not(.is-focused-workspace) .rv-view-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
  .rv-shell:not(.is-focused-workspace) .rv-viewport { border-right: 1px solid rgba(255,255,255,.12); border-bottom: 0; }
  .rv-shell:not(.is-focused-workspace) .rv-viewport:last-child { border-right: 0; }
  .rv-shell:not(.is-focused-workspace).is-scan-overview .rv-view-grid { grid-template-columns: 1fr; }
  .rv-shell:not(.is-focused-workspace).is-scan-overview .rv-viewport--projection { display: none; }

  .rv-shell.is-focused-workspace .rv-context-bar { grid-template-columns: auto minmax(0, 1fr) auto; height: calc(52px + env(safe-area-inset-top)); padding-top: calc(4px + env(safe-area-inset-top)); padding-bottom: 4px; }
  .rv-shell.is-focused-workspace .rv-context-bar button { min-height: 44px; padding-block: 4px; }
  .rv-shell.is-focused-workspace .rv-context-result small { display: none; }
  .rv-shell.is-focused-workspace .rv-context-result strong { margin-top: 0; font-size: 10px; }
  .rv-shell.is-focused-workspace .rv-context-views { display: none; }
  .rv-shell.is-focused-workspace .rv-stage-wrap,
  .rv-shell.is-focused-workspace.is-landmark-authoring .rv-stage-wrap { inset: calc(52px + env(safe-area-inset-top)) 0 calc(58px + env(safe-area-inset-bottom)); }
  .rv-shell.is-focused-workspace .rv-view-grid { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
  .rv-shell.is-focused-workspace.is-focused-model-view .rv-viewport--projection,
  .rv-shell.is-focused-workspace.is-focused-projection-view .rv-viewport:first-child,
  .rv-shell.is-focused-workspace .rv-viewport { position: relative; inset: auto; display: block; min-width: 0; border-right: 1px solid rgba(255,255,255,.12); }
  .rv-shell.is-focused-workspace .rv-viewport:last-child { border-right: 0; }
  .rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden { grid-template-columns: 1fr; }
  .rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden .rv-viewport:first-child { display: none; }
  .rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden .rv-viewport--projection { display: block; }
  .rv-shell.is-focused-workspace.is-scan-overview .rv-view-grid { grid-template-columns: 1fr; }
  .rv-shell.is-focused-workspace.is-scan-overview .rv-viewport--projection { display: none; }
  .rv-shell.is-focused-workspace .rv-panel { max-height: min(82dvh, 440px); }
}

/* Input capability is independent from workspace width and orientation. */
@media (pointer: coarse), (hover: none) {
  .rv-anatomy-tags,
  .rv-preset-grid,
  .rv-pose-buttons,
  .rv-quiz-type,
  .rv-quiz-choices,
  .rv-quiz-actions { gap: 10px; }
  .rv-anatomy-tag,
  .rv-mode-switch button,
  .rv-text-button,
  .rv-preset-grid button,
  .rv-primary-button,
  .rv-secondary-button,
  .rv-pose-buttons button,
  .rv-landmark-author button { min-height: 48px; }
  .rv-feature,
  .rv-parameter-list .rv-parameter { min-height: 48px; padding: 12px; }
  .rv-structure { min-height: 48px; padding: 6px 7px; }
  .rv-structure input { width: 20px; height: 20px; }
  .rv-model-tool > summary,
  .rv-image-overlay summary,
  .rv-model-accessibility > summary,
  .rv-motion-precision summary { min-height: 48px; }
  .rv-hidden-structure { min-height: 48px; }
  .rv-hidden-structure button,
  .rv-show-all-hidden { min-height: 44px; }
  .rv-structure-popover { min-height: 52px; }
  .rv-structure-popover-close { width: 48px; height: 48px; }
  .rv-structure-visibility-toggle { min-width: 52px; min-height: 48px; }
  .rv-model-tools { gap: 10px; }
  .rv-joint-ring-hit { stroke-width: 24; }
  .rv-anatomy-tag:hover,
  .rv-feature:hover { transform: none; }
  .rv-anatomy-hotspot:hover { transform: translate(-50%, -50%); }
}

/* Viewport orientation is the source of truth for the linked comparison. */
.rv-shell.is-focused-workspace .rv-context-bar { grid-template-columns: auto minmax(0, 1fr) auto; }
.rv-shell.is-focused-workspace .rv-context-views { display: none; }
.rv-shell.is-focused-workspace .rv-view-grid { display: grid; }
.rv-shell.is-focused-workspace .rv-viewport,
.rv-shell.is-focused-workspace.is-focused-model-view .rv-viewport--projection,
.rv-shell.is-focused-workspace.is-focused-projection-view .rv-viewport:first-child { position: relative; inset: auto; display: block; min-width: 0; }
.rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden .rv-viewport:first-child { display: none; }
.rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden .rv-viewport--projection { display: block; }

@media (orientation: landscape) {
  .rv-view-grid,
  .rv-shell.is-focused-workspace .rv-view-grid { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr; }
  .rv-viewport,
  .rv-shell.is-focused-workspace .rv-viewport { border-right: 1px solid rgba(255,255,255,.12); border-bottom: 0; }
  .rv-viewport:last-child,
  .rv-shell.is-focused-workspace .rv-viewport:last-child { border-right: 0; }
  .rv-view-grid.is-model-hidden,
  .rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden,
  .rv-shell.is-scan-overview .rv-view-grid { grid-template-columns: 1fr; grid-template-rows: 1fr; }
}

@media (orientation: portrait) {
  .rv-view-grid,
  .rv-shell.is-focused-workspace .rv-view-grid { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; }
  .rv-viewport,
  .rv-shell.is-focused-workspace .rv-viewport { border-right: 0; border-bottom: 1px solid rgba(255,255,255,.12); }
  .rv-viewport:last-child,
  .rv-shell.is-focused-workspace .rv-viewport:last-child { border-bottom: 0; }
  .rv-view-grid.is-model-hidden,
  .rv-shell.is-focused-workspace .rv-view-grid.is-model-hidden,
  .rv-shell.is-scan-overview .rv-view-grid { grid-template-columns: 1fr; grid-template-rows: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .rv-shell *, .module-start *, .module-evidence * { scroll-behavior: auto !important; animation: none !important; transition-duration: .01ms !important; }
}
