/* Scoped to the trainer so collection/review and Aircraft Forces layouts stay independent. */
.c152-lab { --c152-dark: #182c32; padding: 24px 30px 48px; max-width: 1720px; margin: auto; min-width: 0; }
.c152-lab [hidden] { display: none !important; }
.c152-lab button, .c152-lab input { font: inherit; }
.c152-lab button { cursor: pointer; }
.c152-lab button:disabled, .c152-lab input:disabled { cursor: default; }
.c152-lab button:focus-visible, .c152-lab input:focus-visible, .c152-lab summary:focus-visible { outline: 3px solid #19a9aa; outline-offset: 3px; }
.c152-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0 0 24px; }
.c152-heading h1 { margin: 4px 0 8px; font-size: clamp(26px, 3vw, 36px); letter-spacing: -1px; line-height: 1.2; }
.c152-heading p { margin: 0; color: var(--muted); }
.c152-heading .eyebrow { color: var(--accent); font-size: 11px; font-weight: 750; letter-spacing: 1.5px; text-transform: uppercase; }
.c152-setup { display: flex; align-items: flex-end; gap: 16px 22px; flex-wrap: wrap; padding: 18px 20px; border: 1px solid var(--line); background: var(--panel); border-radius: 12px; position: relative; z-index: 12; }
.c152-checklist-choice { flex: 1 1 300px; max-width: 640px; min-width: 0; }
.c152-setup-label { display: block; margin: 0 0 7px; font-size: 11px; font-weight: 650; color: var(--muted); }
.c152-checklist-picker { position: relative; }
.c152-lab .c152-checklist-picker > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; min-height: 44px; padding: 9px 13px; border: 1px solid #bfcdca; border-radius: 6px; background: #fff; box-sizing: border-box; color: var(--ink); }
.c152-checklist-picker > summary::-webkit-details-marker { display: none; }
.c152-lab .c152-checklist-picker > summary > span { margin: 0; color: inherit; font-size: 13px; font-weight: 600; }
.c152-picker-chevron { flex: 0 0 auto; line-height: 1; transition: transform 120ms; }
.c152-checklist-picker[open] .c152-picker-chevron { transform: rotate(180deg); }
.c152-checklist-options { position: absolute; z-index: 1; top: calc(100% + 5px); left: 0; width: 100%; max-height: min(460px, 65vh); overflow: auto; padding: 6px; border: 1px solid #b5cac5; border-radius: 7px; box-sizing: border-box; background: white; box-shadow: 0 8px 24px #102e3526; }
.c152-checklist-options > strong, .c152-checklist-options > h3, .c152-checklist-options .c152-picker-group > strong { display: block; padding: 9px 9px 6px; margin: 0; color: #667b78; font-size: 10px; font-weight: 750; letter-spacing: 1px; text-transform: uppercase; }
.c152-picker-group + .c152-picker-group { margin-top: 6px; padding-top: 4px; border-top: 1px solid #e2eae6; }
.c152-lab .c152-checklist-options button { display: block; width: 100%; min-height: 40px; padding: 9px 10px; background: white; color: var(--ink); border: 0; border-radius: 4px; text-align: left; font-size: 12px; line-height: 1.4; }
.c152-lab .c152-checklist-options button:hover, .c152-lab .c152-checklist-options button[aria-pressed="true"], .c152-lab .c152-checklist-options button[aria-selected="true"], .c152-lab .c152-checklist-options button.is-selected { background: #e1f0eb; color: #0a5e51; }
.c152-setup-actions { display: flex; flex: 0 0 auto; gap: 8px; margin-left: auto; }
.c152-setup-actions button { min-height: 44px; padding: 9px 17px; border-radius: 6px; font-size: 13px; }
.c152-lab .c152-clear-prop { border: 1px solid #b7934f; background: #fff5d9; color: #63491f; font-weight: 650; }
.c152-lab .c152-clear-prop:hover { background: #ffebba; }
.c152-scenarios { display: flex; flex: 1 0 100%; align-items: center; gap: 8px; flex-wrap: wrap; }
.c152-scenarios:empty { display: none; }
.c152-lab .c152-scenarios button { min-height: 36px; padding: 7px 12px; border: 1px solid #bfceca; border-radius: 5px; background: #fff; color: #48625d; font-size: 12px; }
.c152-lab .c152-scenarios button[aria-pressed="true"], .c152-lab .c152-scenarios button.is-selected { color: #0a5e51; border-color: #77a69a; background: #def0e9; }
.c152-message { min-height: 20px; margin: 14px 2px 18px; color: var(--muted); font-size: 13px; line-height: 1.5; }
.c152-workspace { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(360px, 1fr); gap: 20px; align-items: start; }
.c152-cockpit { min-width: 0; border: 1px solid var(--line); background: white; border-radius: 12px; overflow: hidden; }
.c152-panel-heading { background: var(--c152-dark); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; }
.c152-section-label { display: block; font-size: 10px; font-weight: 750; text-transform: uppercase; letter-spacing: 1.6px; }
.c152-panel-caption { display: block; margin-top: 6px; font-size: 12px; color: #a4c0c4; letter-spacing: .5px; }
.c152-panel-heading > button { padding: 7px 10px; min-height: 36px; font-size: 12px; color: #d9edec; background: #263d43; border-color: #466066; }
.c152-scene-scroll { overflow: auto; overscroll-behavior: contain; background: #f4f3ef; }
.c152-scene { position: relative; width: 100%; min-width: 620px; aspect-ratio: 1254/1160; overflow: hidden; background: #fff; isolation: isolate; }
.c152-panel-surface { position: absolute; top: 0; left: 0; width: 100%; aspect-ratio: 1254/1020; overflow: hidden; }
.c152-scene-scroll.zoomed .c152-scene { min-width: 1100px; }
.c152-panel-surface > img { position: absolute; width: 100%; max-width: none; top: -6.86275%; left: 0; user-select: none; pointer-events: none; }
.c152-hotspots { position: absolute; inset: 0; pointer-events: none; z-index: 4; }
.c152-hotspots > * { pointer-events: auto; }
.c152-lab .c152-yoke { position: absolute; left: 5.5%; bottom: 4.2%; width: 37%; border: 0; padding: 0; background: transparent; touch-action: none; user-select: none; transform: translateY(var(--yoke-travel, 0px)) rotate(var(--yoke-turn, 0deg)) scale(var(--yoke-scale, 1)); transform-origin: 50% 55%; cursor: grab; z-index: 3; transition: transform 100ms ease-out; }
.c152-yoke img { display: block; width: 100%; height: auto; pointer-events: none; user-select: none; -webkit-user-drag: none; }
.c152-lab .c152-yoke.is-held { cursor: grabbing; background: transparent; border: 0; transition: none; }
.c152-lab .c152-yoke:disabled { opacity: 0.8; cursor: default; }
.c152-offpanel-actions { position: absolute; left: 46%; bottom: 7.5%; z-index: 5; display: flex; gap: 10px; }
.c152-lab .c152-scene-action { position: relative; display: grid; place-items: center; width: 46px; height: 46px; min-height: 46px; padding: 3px; border: 1px solid #a8bbb4; border-radius: 9px; font-size: 29px; line-height: 1; background: #eff5f1; }
.c152-scene-action.is-current { outline: 2px solid #27c6b9; outline-offset: 3px; }
.c152-scene-action-label { display: none; position: absolute; bottom: calc(100% + 7px); left: 50%; transform: translateX(-50%); white-space: nowrap; border-radius: 4px; padding: 5px 7px; font-size: 10px; font-weight: 650; line-height: 1.3; color: white; background: #172e32; pointer-events: none; }
.c152-lab .c152-brakes { background: white; }
.c152-lab .c152-brakes[aria-pressed="true"] { background: #b8c0bc; border-color: #68766f; }
.c152-brakes[aria-pressed="true"] .c152-brakes-icon { filter: grayscale(1); opacity: .7; }
.c152-brakes-icon { display: block; width: 36px; height: 36px; object-fit: contain; pointer-events: none; user-select: none; }
.c152-yoke-grip { position: absolute; left: 29%; right: 26%; bottom: 20%; font-size: clamp(6px, .7vw, 10px); color: #d7e2dc; font-weight: 650; letter-spacing: 1px; text-align: center; pointer-events: none; }
.c152-yoke-help { margin: 0; padding: 10px 15px; font-size: 11px; color: var(--muted); line-height: 1.6; background: #f8faf9; border-top: 1px solid var(--line); }
.c152-hotspot { position: absolute; transform: translate(-50%, -50%); padding: 0; margin: 0; }
.c152-rocker { width: 3.05%; height: 5.8%; border-radius: 3px; border: 2px solid #111; background: #181c1d; display: grid; place-items: center; overflow: visible; }
.c152-lab .c152-rocker:disabled { opacity: 1; }
.c152-rocker-face { width: 68%; height: 74%; background: linear-gradient(#e2e5df 15%, #cdd2cc 55%, #78817c); border-radius: 2px; box-shadow: 0 3px 3px #0008; transform: perspective(25px) rotateX(-18deg); transition: transform 100ms, background 100ms; }
.c152-rocker.is-on .c152-rocker-face { transform: perspective(25px) rotateX(18deg); background: linear-gradient(#738e83, #cdded2 30%, #f1f8ef); box-shadow: 0 -2px 3px #0008; }
.c152-master .c152-rocker-face { background: linear-gradient(#b82726, #f52b29 50%, #761c1b); }
.c152-master.is-on .c152-rocker-face { background: linear-gradient(#821d1c, #ff5550 55%, #ee302b); }
.c152-split-master { width: 1.6%; border-width: 1px; border-radius: 2px; }
.c152-split-master .c152-rocker-face { width: 76%; background: linear-gradient(#b82726, #f52b29 50%, #761c1b); }
.c152-split-master.is-on .c152-rocker-face { background: linear-gradient(#821d1c, #ff5550 55%, #ee302b); }
.c152-rocker.is-on::after { content: ''; position: absolute; bottom: -5px; width: 8px; height: 3px; background: #1dd2b0; border-radius: 2px; }
.c152-hotspot.selected, .c152-hotspot.is-current { outline: 2px solid #27c6b9; outline-offset: 3px; }
.c152-hotspot-label { display: none; position: absolute; bottom: calc(100% + 12px); left: 50%; transform: translateX(-50%); width: max-content; max-width: 150px; background: #112e34; color: white; padding: 7px 10px; border-radius: 5px; font-size: 10px; line-height: 1.5; text-align: center; pointer-events: none; z-index: 4; box-shadow: 0 2px 6px #0005; }
.c152-hotspot-label b { display: block; color: #69dfce; }
.c152-audio-switch { width: 2%; height: 3.6%; border-radius: 50%; border: 2px solid #b9bda5; background: #1b2623; }
.c152-audio-switch .c152-rocker-face { width: 28%; height: 90%; border-radius: 6px; background: linear-gradient(90deg, #686d62, #eeeeda 45%, #9aa18b); transform: translateY(23%) rotate(5deg); box-shadow: 1px 2px 2px #0009; }
.c152-audio-switch.is-on .c152-rocker-face { transform: translateY(-23%) rotate(-5deg); background: linear-gradient(90deg, #686d62, #eeeeda 45%, #9aa18b); }
.c152-lever { width: 5.9%; height: 26%; background: linear-gradient(90deg, #222b2df2, #42494aee 50%, #192224f5); border: 1px solid #667777; border-radius: 22px; display: flex; flex-direction: column; align-items: center; padding: 5px 2px 7px; box-shadow: 0 3px 5px #0006; touch-action: none; user-select: none; -webkit-user-select: none; }
.c152-lever input { writing-mode: vertical-lr; direction: rtl; appearance: none; width: 80%; height: 100%; min-height: 0; background: transparent; margin: 2px 0; padding: 0; accent-color: #c9d9d7; touch-action: none; }
.c152-lever input::-webkit-slider-runnable-track { width: 6px; background: linear-gradient(90deg, #718283, #d8dddb, #687879); border-radius: 3px; }
.c152-lever input::-webkit-slider-thumb { appearance: none; height: 26px; width: 28px; margin-left: -11px; border: 3px solid #26373b; border-radius: 50%; background: linear-gradient(90deg, #191d1e, #505657, #171b1c); box-shadow: 0 2px 4px #0009; }
.c152-lever-mixture input::-webkit-slider-thumb { background: linear-gradient(90deg, #93100e, #f04039, #9f1411); border-color: #c62624; }
.c152-lever input::-moz-range-track { width: 6px; background: #9aa; }
.c152-lever input::-moz-range-thumb { width: 24px; height: 24px; border: 3px solid #63716c; border-radius: 50%; background: #202729; }
.c152-lever-mixture input::-moz-range-thumb { background: #d3312c; }
.c152-lever-carbHeat { height: 11%; width: 4.8%; touch-action: none; user-select: none; }
.c152-lever-carbHeat input { direction: ltr; }
.c152-lever-trim { width: 3.5%; height: 12%; padding: 4px 1px; border-radius: 6px; background: repeating-linear-gradient(#151b1c 0 5px, #51595a 6px 8px); }
.c152-lever-trim input::-webkit-slider-thumb { height: 9px; width: 23px; background: #dae1cd; border: 1px solid #eff6e5; border-radius: 2px; margin-left: -9px; }
.c152-lever-label { display: none; position: absolute; bottom: -20px; left: 50%; transform: translateX(-50%); padding: 2px 5px; color: #e4f0eb; background: #172e32; border: 0; border-radius: 3px; font-size: 9px !important; white-space: nowrap; line-height: 1.4; }
.c152-lever-carbHeat .c152-lever-label { bottom: auto; top: -23px; }
.c152-flap { width: 9%; height: 15%; min-width: 56px; min-height: 104px; padding: 4px; box-sizing: border-box; background: #172022; border: 2px solid #6e7d78; border-radius: 4px; display: grid; grid-template-rows: repeat(4, 1fr); gap: 3px; }
.c152-lab .c152-flap > button[data-set] { width: 100%; min-width: 0; min-height: 20px; padding: 1px 3px; border: 1px solid #536860; border-radius: 2px; background: #273d3c; color: #edf3e9; font-size: clamp(10px, .9vw, 13px); line-height: 1.2; font-weight: 600; }
.c152-lab .c152-flap > button[data-set][aria-pressed="true"], .c152-lab .c152-flap > button[data-set].is-on, .c152-lab .c152-flap > button[data-set].selected { border-color: #d8e8dd; background: #dce8dd; color: #18362e; }
.c152-panel-check { border: 1px solid transparent; border-radius: 4px; background: transparent; color: #f1f6e5; box-shadow: none; font-size: clamp(6px, .7vw, 10px); font-weight: 700; letter-spacing: .4px; text-shadow: 0 1px 2px #000; }
.c152-panel-check > span { position: absolute; left: 50%; bottom: calc(100% + 4px); transform: translateX(-50%); padding: 3px 6px; background: #17342ded; border-radius: 3px; white-space: nowrap; opacity: 0; pointer-events: none; }
.c152-panel-check:hover, .c152-panel-check:focus-visible { border-color: #a9d7c6; }
.c152-panel-check.is-current { outline: 2px solid #27c6b9; outline-offset: 3px; }
.c152-breakers { width: 37.5%; height: 6%; }
.c152-breakers > span { left: 83%; bottom: auto; top: calc(100% + 7px); text-align: center; white-space: normal; width: max-content; line-height: 1.35; }
.c152-suction { border-radius: 50%; }
.c152-oil { width: 13.5%; height: 5.5%; }
.c152-primer { width: 5.4%; height: 9%; display: flex; align-items: center; flex-direction: column; justify-content: flex-start; gap: 5%; overflow: visible; }
.c152-lab .c152-primer-knob { position: relative; flex: 0 0 auto; width: 73%; aspect-ratio: 1; min-height: 0; margin: 0; padding: 0; border: 3px solid #252d2b; border-radius: 50%; background: radial-gradient(circle at 42% 35%, #919996 0 16%, #303a37 20%, #131d1d 51%, #050b0e 61%); box-shadow: 2px 4px 3px #0008, inset 0 0 0 2px #6e7b75; transform: translateY(var(--primer-travel, 0px)); transition: transform 100ms, box-shadow 100ms; touch-action: none; user-select: none; }
.c152-primer.is-out .c152-primer-knob, .c152-primer.is-pulled .c152-primer-knob, .c152-primer-knob.is-pulled { transform: translateY(9px); box-shadow: 2px 8px 5px #0009, inset 0 0 0 2px #6e7b75; }
.c152-primer-knob > span { display: block; position: absolute; left: 27%; top: 48%; width: 46%; height: 2px; border-radius: 2px; background: #b9c1b9; transition: transform 100ms; }
.c152-primer.is-unlocked .c152-primer-knob > span { transform: rotate(30deg); }
.c152-lab .c152-primer-twist { flex: 0 0 auto; width: max-content; max-width: 140%; min-height: 0; padding: 3px 5px; border: 1px solid #627b71; border-radius: 3px; background: #1c312c; color: #eff5e8; font-size: clamp(6px, .65vw, 9px); line-height: 1.2; white-space: nowrap; }
.c152-lab .c152-primer-twist[aria-pressed="true"], .c152-lab .c152-primer-twist.is-on { border-color: #a6c9a6; color: #d1f2c2; }
.c152-lab .c152-primer.is-unlocked .c152-primer-twist { color: #ffe1a8; border-color: #bfa173; }
.c152-ignition { width: 5.4%; height: 6.5%; border-radius: 50%; background: #252d2c; border: 3px solid #919586; box-shadow: 0 1px 5px #000a; }
.c152-key { width: 100%; height: 100%; border: 0; background: transparent; padding: 0; display: grid; place-items: center; }
.c152-key > span { display: block; height: 65%; width: 16%; background: linear-gradient(90deg, #a5a997, #ecefdb, #747a6b); border-radius: 4px; transform: rotate(var(--key-angle, 0deg)); }
.c152-ignition.is-open { z-index: 6; }
.c152-ignition-options { position: absolute; top: calc(100% + 4px); left: -6px; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; width: 250px; padding: 8px; box-sizing: border-box; background: #173139; border: 1px solid #78948f; border-radius: 7px; box-shadow: 0 5px 15px #0007; transform: scale(.5); transform-origin: top left; }
.c152-lab .c152-ignition-options button { min-width: 0; min-height: 36px; padding: 4px 2px; border: 1px solid #80958f; border-radius: 4px; background: #f0f5ed; color: #1c373a; font-size: 10px; line-height: 1.2; touch-action: none; }
.c152-lab .c152-ignition-options button[aria-pressed="true"] { background: #a9ddcb; border-color: #4ab59c; color: #074c43; }
.c152-ignition-options small { display: block; font-size: 8px; line-height: 1; margin-top: 2px; }
.c152-readouts { display: flex; align-items: center; justify-content: space-between; gap: 10px; position: absolute; bottom: 0; left: 0; width: 100%; padding: 10px 14px; background: #1c3037f5; color: #a8c0c3; font-size: 10px; box-sizing: border-box; letter-spacing: .2px; }
.c152-readouts strong { color: #e6fff1; margin-left: 4px; font-size: 13px; font-variant-numeric: tabular-nums; }
.c152-selected { padding: 16px 18px; background: #f0f6f5; border-top: 1px solid #cadad7; }
.c152-control-card { min-width: 0; }
.c152-control-help { margin: 8px 0 0; font-size: 11px; line-height: 1.5; color: var(--muted); }
.c152-control-card-title { display: flex; gap: 10px; justify-content: space-between; align-items: center; margin-bottom: 12px; font-size: 13px; }
.c152-control-card-title output { font-size: 11px; font-weight: 700; color: var(--accent-strong); text-align: right; }
.c152-control-card > [data-toggle] { min-width: 90px; min-height: 44px; border: 1px solid #bdccca; border-radius: 6px; background: #fff; color: var(--ink); }
.c152-control-card > .c152-verify { display: block; }
.c152-lab .c152-detents { display: flex; gap: 6px; flex-wrap: wrap; }
.c152-detents button { flex: 1; min-height: 44px; padding: 7px 10px; background: white; color: var(--ink); border: 1px solid #baccc9; }
.c152-detents button[aria-pressed="true"], .c152-control-card button.is-on { color: #07554d; background: #cbeae0; border-color: #409681; }
.c152-detents small { display: block; font-size: 9px; font-weight: 500; }
.c152-lab button.is-held { color: white; background: #a35b13; border-color: #f3c071; }
.c152-range { display: flex; align-items: center; gap: 12px; touch-action: none; }
.c152-range button { width: 40px; min-height: 40px; padding: 6px; color: var(--ink); background: white; border: 1px solid #bdccca; font-size: 20px; }
.c152-range input { flex: 1; width: 100%; min-width: 0; height: 30px; padding: 0; accent-color: #176d67; touch-action: none; }
.c152-lab [data-yoke], .c152-lab [data-yoke] *, .c152-lab [data-range], .c152-lab .c152-lever * { touch-action: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.c152-endpoints { display: flex; justify-content: space-between; margin: 4px 0; gap: 10px; }
.c152-endpoints button { background: transparent; color: var(--muted); padding: 5px 0; font-size: 9px; border: 0; font-weight: 650; }
.c152-lab .c152-verify { background: transparent; border: 0; color: var(--accent); font-size: 11px; padding: 8px 0 0; text-align: left; }
.c152-controls-drawer { border-top: 1px solid var(--line); padding: 16px 18px; }
.c152-lab summary { cursor: pointer; font-size: 13px; font-weight: 650; line-height: 1.5; }
.c152-lab summary > span { color: var(--muted); font-size: 11px; font-weight: 400; margin-left: 7px; }
.c152-controls-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; padding: 22px 0 8px; }
.c152-model-note { padding: 14px 18px; margin: 0; border-top: 1px solid var(--line); font-size: 11px; line-height: 1.7; color: var(--muted); background: #fafbfb; }
.c152-checklist-panel { min-width: 0; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: white; }
.c152-checklist-heading { padding: 21px 20px 16px; }
.c152-lab .c152-checklist-toggle { display: flex; align-items: start; justify-content: space-between; gap: 10px; width: 100%; min-height: 44px; padding: 0; border: 0; background: transparent; color: var(--ink); text-align: left; }
.c152-checklist-toggle-end { display: flex; align-items: center; gap: 10px; }
.c152-checklist-chevron { font-size: 22px; line-height: 1; }
.c152-checklist-toggle[aria-expanded="false"] .c152-checklist-chevron { transform: rotate(180deg); }
.c152-checklist-heading .c152-section-label { color: var(--muted); }
.c152-checklist-title { display: block; font-size: 21px; font-weight: 700; line-height: 1.3; letter-spacing: -.4px; margin: 8px 0 0; }
.c152-tag { font-size: 10px; padding: 5px 7px; color: var(--accent); background: #e7f2ef; border-radius: 4px; font-weight: 700; }
.c152-tag.emergency { color: #a13229; background: #fff0ed; font-size: 8px; }
.c152-progress { padding: 0 20px 16px; font-size: 11px; color: var(--muted); }
.c152-progress progress { display: block; width: 100%; height: 5px; margin-top: 10px; accent-color: #238474; }
.c152-steps { margin: 0; padding: 7px 10px; list-style: none; border-top: 2px solid #172b31; max-height: 780px; overflow: auto; }
.c152-steps li { display: flex; align-items: center; gap: 4px; padding: 0 4px; margin: 0; width: max-content; min-width: 100%; box-sizing: border-box; transition: background 100ms; border-radius: 3px; }
.c152-steps li.c152-branch-heading { display: block; width: auto; padding: 9px 25px 4px; font-size: 12px; font-style: italic; }
.c152-lab .c152-branch-heading button { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; width: 100%; min-height: 32px; padding: 4px 7px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: #253d42; text-align: left; font-size: 12px; font-style: italic; }
.c152-branch-heading button small { color: #687d76; font-size: 9px; font-style: normal; }
.c152-lab .c152-branch-heading button[aria-pressed="true"] { background: #e4f2ef; border-color: #9fc6b9; color: #12594d; }
.c152-steps li.c152-checklist-note { display: block; width: auto; padding: 8px 20px 12px; font-size: 11px; line-height: 1.6; font-style: italic; color: #4c6265; }
.c152-lab .c152-manual-check { display: grid; place-content: center; appearance: none; flex: 0 0 17px; width: 17px; height: 17px; min-width: 17px; min-height: 17px; margin: 0 3px 0 1px; padding: 0; border: 1px solid #8da49c; border-radius: 3px; background: #fff; color: #fff; cursor: pointer; }
.c152-manual-check::after { content: '✔'; font-size: 12px; line-height: 1; font-weight: 700; visibility: hidden; }
.c152-lab .c152-manual-check:checked { background: #287b54; border-color: #287b54; }
.c152-manual-check:checked::after { visibility: visible; }
.c152-lab .c152-manual-check:disabled { background: #eef0ed; border-color: #ced7d2; color: #8c9a91; cursor: default; }
.c152-lab .c152-check-row { display: flex; flex: 1 0 auto; align-items: baseline; gap: 5px; min-width: 0; min-height: 33px; padding: 5px 3px; background: transparent; border: 0; border-radius: 3px; color: #18282c; text-align: left; font-size: 11px; line-height: 23px; white-space: nowrap; }
.c152-lab .c152-check-row:not(:disabled):hover { background: #e7f2ef; }
.c152-step-number { flex: 0 0 19px; font-size: inherit; text-align: right; font-variant-numeric: tabular-nums; }
.c152-item-name { flex: 0 0 auto; font-size: inherit; font-weight: 750; }
.c152-dot-leader { flex: 1 0 18px; border-bottom: 1.5px dotted #567079; transform: translateY(-3px); }
.c152-expected { flex: 0 0 auto; font-size: inherit; color: #263d43; }
.c152-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.c152-row-help { color: var(--muted); font-size: 10px; line-height: 1.6; padding: 0 16px; }
.c152-steps li.is-current, .c152-steps li[data-current="true"] { background: #e4f2ef; box-shadow: inset 3px 0 #278777; }
.c152-steps li.is-current .c152-manual-check, .c152-steps li[data-current="true"] .c152-manual-check { border-color: #278777; }
.c152-steps li[data-status="completed"] { background: #eff8f0; }
.c152-steps li[data-status="completed"] .c152-check-row, .c152-steps li[data-status="completed"] .c152-expected { color: #2b6540; }
.c152-steps li[data-status="invalid"] { background: #fce2ed; box-shadow: inset 3px 0 #cc4c80; }
.c152-steps li[data-status="invalid"] .c152-check-row, .c152-steps li[data-status="invalid"] .c152-expected { color: #932451; }
.c152-lab .c152-steps li[data-status="invalid"] .c152-manual-check { background: #cc4c80; border-color: #cc4c80; color: white; }
.c152-steps li[data-status="invalid"] .c152-manual-check::after { content: '×'; visibility: visible; font-size: 18px; }
.c152-steps li[data-status="ignored"], .c152-steps li[data-status="not-applicable"] { background: #f5f6f6; }
.c152-steps li[data-status="ignored"] .c152-check-row, .c152-steps li[data-status="not-applicable"] .c152-check-row, .c152-steps li[data-status="ignored"] .c152-expected, .c152-steps li[data-status="not-applicable"] .c152-expected { color: #87918d; }
.c152-steps li[data-status="ignored"] .c152-dot-leader, .c152-steps li[data-status="not-applicable"] .c152-dot-leader { border-color: #b8c3bd; }
.c152-immediate { color: #b33a30; text-decoration: underline; text-underline-offset: 3px; }
.c152-steps li[data-status="ignored"] .c152-immediate, .c152-steps li[data-status="not-applicable"] .c152-immediate { color: #87918d; }
.c152-source { padding: 16px 20px; background: #fafbfb; }
.c152-source summary { font-size: 11px; color: var(--muted); }
.c152-source p { font-size: 11px; line-height: 1.7; color: var(--muted); }
.c152-source a { font-size: 11px; color: var(--accent); }
.c152-selected { scroll-margin-top: 20px; }
@media (min-width: 1500px) { .c152-workspace { grid-template-columns: minmax(0, 1.8fr) minmax(450px, 1fr); } .c152-lab .c152-check-row { font-size: 12px; } }
@media (max-width: 1000px) {
  .c152-lab { padding: 24px 18px 36px; }
  .c152-workspace { grid-template-columns: minmax(0, 1fr); }
  .c152-scene { min-width: 620px; }
  .c152-checklist-panel { width: 100%; }
  .c152-steps { max-height: 550px; }
}
@media (max-width: 600px) {
  .c152-lab { padding: 20px 12px 30px; }
  .c152-heading { align-items: start; flex-direction: column; gap: 14px; }
  .c152-heading p { line-height: 1.6; font-size: 13px; }
  .c152-heading h1 { font-size: 28px; }
  .c152-setup { padding: 15px; gap: 12px; }
  .c152-checklist-choice { flex-basis: 100%; }
  .c152-setup-actions { width: 100%; }
  .c152-setup-actions button { flex: 1; font-size: 12px; }
  .c152-workspace { gap: 18px; }
  .c152-scene { min-width: 0; }
  .c152-scene { aspect-ratio: 1254/1320; }
  .c152-offpanel-actions { bottom: 11.5%; }
  .c152-panel-heading { padding: 14px; }
  .c152-selected, .c152-controls-drawer { padding: 16px 14px; }
  .c152-controls-grid { grid-template-columns: 1fr; }
  .c152-range button, .c152-endpoints button, .c152-lab .c152-verify { min-height: 44px; }
}
@media (max-width: 1366px) {
  .c152-workspace { grid-template-columns: minmax(0, 1fr); }
  .c152-checklist-panel { position: fixed; top: var(--c152-header-offset, 80px); right: 0; z-index: 30; width: min(520px, 100vw); margin: 0; border-radius: 0 0 12px 12px; background: #ffffffd6; border-color: #9ab8ada6; box-shadow: 0 5px 18px #132f3b26; backdrop-filter: blur(3px); }
  .c152-checklist-heading { padding: 9px 12px 5px; }
  .c152-checklist-title { font-size: 15px; margin-top: 3px; }
  .c152-checklist-heading .c152-section-label { font-size: 8px; letter-spacing: 1px; }
  .c152-progress { padding: 0 12px 7px; font-size: 10px; }
  .c152-progress progress { margin-top: 4px; height: 3px; }
  .c152-steps { height: 200px; max-height: 200px; padding: 0 6px; overscroll-behavior: contain; touch-action: pan-x pan-y; }
  .c152-steps li[data-step] { height: 40px; }
  .c152-lab .c152-check-row { height: 40px; min-height: 40px; box-sizing: border-box; }
  .c152-steps li.is-current { background: #d5ece4c9; }
  .c152-steps li[data-status="completed"] { background: #e5f5e6b3; }
  .c152-steps li[data-status="invalid"] { background: #fce2eddb; }
  .c152-checklist-panel .c152-row-help, .c152-checklist-panel .c152-source { display: none; }
  .c152-hotspot, .c152-radio, .c152-transponder, .c152-yoke { scroll-margin-top: calc(var(--c152-header-offset, 80px) + 290px); }
  .c152-lab.is-checklist-collapsed .c152-hotspot, .c152-lab.is-checklist-collapsed .c152-radio, .c152-lab.is-checklist-collapsed .c152-transponder, .c152-lab.is-checklist-collapsed .c152-yoke { scroll-margin-top: calc(var(--c152-header-offset, 80px) + 70px); }
}
@media (prefers-reduced-motion: reduce) { .c152-lab *, .c152-lab *::before, .c152-lab *::after { transition: none !important; scroll-behavior: auto !important; } }
@media (hover: hover) {
  .c152-hotspot:hover .c152-hotspot-label { display: block; }
  .c152-lever:hover .c152-lever-label { display: block; }
  .c152-panel-check:hover > span { opacity: 1; }
  .c152-scene-action:hover .c152-scene-action-label { display: block; }
}
