:root{color-scheme:dark;--bg:#0b2028;--panel:#15343c;--ink:#f4eedc;--muted:#b6cbcb;--line:#42616a;--gold:#f4bd61;--teal:#7adfce;font:16px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button,a.fileButton,.fileButton{min-height:46px}button{cursor:pointer;background:#244650;color:var(--ink);border:1px solid #537780;border-radius:7px;padding:9px 14px;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}button:hover:enabled,button[aria-pressed=true]{border-color:var(--gold);background:#36525a}button.primary{background:var(--gold);border-color:var(--gold);color:#172b31;font-weight:750}a{color:var(--gold);text-underline-offset:4px}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--teal);outline-offset:3px}header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 22px;border-bottom:1px solid var(--line)}.brand{color:var(--ink);text-decoration:none;font-weight:850;font-size:16px;letter-spacing:.09em}.brand span{display:block;color:var(--teal);font-size:10px;letter-spacing:.19em}nav{display:flex;gap:18px;align-items:center}nav a{display:flex;align-items:center;min-height:44px;font-size:13px}main{display:grid;grid-template-columns:minmax(0,1fr) 380px;align-items:start;max-width:1800px;margin:auto}.viewport{position:sticky;top:0;min-width:0;padding:22px 22px 12px}.mission h1{font-size:clamp(24px,2.6vw,36px);line-height:1.15;margin:8px 0}.mission p{margin:8px 0 18px;color:var(--muted);min-height:24px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.15em;color:var(--teal)}#sceneHost{height:clamp(260px,48vh,620px);position:relative;border:1px solid #779c9d;border-radius:12px;overflow:hidden;background:#a8d3d4}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#graphicsError{position:absolute;inset:20px;align-content:center;text-align:center;background:#15343ce8;padding:16px;border-radius:8px}.sceneBar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-top:10px}.sceneBar>div{display:flex;gap:5px;flex-wrap:wrap}.sceneBar button{padding:8px 11px;font-size:14px}#flightClock{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}.legend{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:14px;height:4px;vertical-align:middle;margin-right:5px}.teal{background:var(--teal)}.amber{background:var(--gold)}.white{background:#fff}.launchBar{display:flex;gap:7px;align-items:end;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--line)}.launchBar label{margin-left:auto;font-size:12px}.launchBar select{width:auto}.pointNote{font-size:12px;color:var(--muted)}.console{min-width:0;background:#102c34;border-left:1px solid var(--line);padding:16px}.consoleBody{padding:6px 4px}summary{cursor:pointer;min-height:46px;align-content:center;font-weight:700}summary span{display:block;font-size:9px;letter-spacing:.14em;color:var(--muted);padding-left:18px}details{border-bottom:1px solid var(--line);padding:2px 0 10px}details details{margin-top:5px}.fields{display:grid;gap:10px;padding-top:8px}label{display:block;font-size:13px;color:var(--muted)}input:not([type=file]),select,textarea{display:block;width:100%;min-width:0;min-height:46px;background:#09212a;color:var(--ink);border:1px solid #537780;border-radius:6px;padding:10px;margin-top:5px;font-size:16px}textarea{resize:vertical}input:disabled,select:disabled{color:var(--muted)}.pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fileButton{border:1px dashed #69928f;border-radius:6px;display:flex;align-items:center;justify-content:center;padding:10px;cursor:pointer;color:var(--teal);position:relative;text-align:center}.fileButton input{position:absolute;inset:0;opacity:0;max-width:100%;cursor:pointer}.fileButton:focus-within{outline:3px solid var(--teal)}.console p{font-size:13px;color:var(--muted);margin:9px 0 14px}.conditions{padding:18px 0 10px}.conditions p{color:var(--ink)}h2{font-size:18px;margin:18px 0 8px}.predictionRow{border:1px solid var(--line);border-radius:8px;padding:12px;margin:12px 0}.predictionRow legend{font-size:13px;color:var(--teal);padding:0 5px}.predictionRow label+label{margin-top:0}.predictionRow>.reason{margin-top:10px}#lock,#newTrial{width:100%;margin:8px 0}#message{color:var(--gold);white-space:pre-line}#runChoice .pair{margin:10px 0}table{border-collapse:collapse;width:100%;font-size:13px;margin:12px 0}th,td{padding:9px 5px;text-align:right;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}th:first-child,td:first-child{text-align:left}th{color:var(--muted);font-size:11px}caption{text-align:left;font-size:13px;color:var(--teal);font-weight:700;padding-top:10px}.resultVerdict{border-left:3px solid var(--teal);padding-left:10px}#revisionForm button{margin:10px 0}#custom{padding:10px;border:1px solid var(--gold);border-radius:7px}#custom button{width:100%;margin-top:10px}@media(max-width:1000px){main{grid-template-columns:minmax(0,1fr) 350px}.viewport{padding:18px 14px}header{padding:10px 14px}nav{gap:10px}}@media(max-width:780px){main{display:block}.viewport{position:relative;padding-bottom:18px}.console{border-left:0;border-top:1px solid var(--line)}#sceneHost{height:42vh;min-height:270px;max-height:420px}header{flex-wrap:wrap;gap:5px}nav{flex-wrap:wrap}.sceneBar button{font-size:13px}.launchBar label{margin-left:0}.mission p{margin-bottom:12px}.consoleBody{max-width:650px;margin:auto}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
input,select,textarea{font-size:16px}

#setupPrompt{position:absolute;inset:20px;align-content:center;text-align:center;color:#102c33;font-weight:700}

#world.dragging{cursor:grabbing}#world:focus-visible{outline:3px solid var(--teal);outline-offset:-4px}.sceneFacts{display:flex;gap:6px 22px;flex-wrap:wrap;padding:10px 2px 0;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}.sceneFacts strong{color:var(--ink);font-weight:650}.cameraButtons{display:flex;gap:10px!important;flex-wrap:wrap}.cameraButtons>div{display:flex;gap:5px}.cameraButtons button{min-width:46px;min-height:46px;font-size:18px}.cameraButtons #resetView{font-size:14px;padding:8px 14px}.cameraNote{display:flex;gap:6px 20px;justify-content:space-between;flex-wrap:wrap;margin-top:8px;color:var(--muted);font-size:12px}

.cameraButtons #scenery,.cameraButtons #vehicleView{font-size:14px;padding:8px 12px}

.legend .white{background:#173c48;border:1px solid #afc7ca;height:6px}

/* Visual observation workspace. Numeric inputs remain outside the scene. */
main{grid-template-columns:minmax(0,1fr) 340px}.testing main{grid-template-columns:minmax(0,1fr) 290px}
.viewport{padding:16px;position:relative}.mission h1{font-size:27px}.mission p{margin-bottom:12px}
#sceneHost{height:clamp(340px,55vh,700px);background:#dce7e6}#evidence{position:absolute;inset:0;pointer-events:none}
.viewEvidence{display:flex;gap:12px;margin-top:10px;align-items:center}.detailPanel{width:210px;flex-shrink:0;border:1px solid #64878d;border-radius:8px;overflow:hidden;position:relative;background:#dce7e6}.detailPanel canvas{height:116px;width:100%;pointer-events:none}.detailPanel span{display:block;font-size:10px;padding:4px 7px}
.predictionCard{min-width:0;color:var(--gold);display:grid;gap:6px;font-size:15px}.predictionCard small{color:var(--muted);font-size:11px}.sceneFacts{font-size:11px;padding-top:6px}.cameraButtons{align-items:center}.cameraButtons>div{flex-wrap:wrap}.cameraButtons button{font-size:13px!important}.cameraMore{border:0;padding:0}.cameraMore summary{font-size:12px;padding:0 10px}.cameraMore>div{display:flex;flex-wrap:wrap;gap:5px}.cameraNote{font-size:11px}.legend{margin:8px 0;gap:10px}.cue{padding:8px 12px;border:1px solid #8d784b;border-radius:7px;color:var(--gold);font-size:13px;margin-top:10px}.cue.lit{background:var(--gold);color:#172b31;font-weight:800}.cue.reached:not(.lit){border-style:dashed}.pointNote{font-size:11px}.testing .console{padding:12px}.testing .conditions{padding:8px 0}.testing #predictionForm{display:none}
@media(max-width:1000px){main{grid-template-columns:minmax(0,1fr) 300px}.testing main{grid-template-columns:minmax(0,1fr) 260px}.viewport{padding:12px}#sceneHost{height:50vh;min-height:310px}.detailPanel{width:165px}.detailPanel canvas{height:105px}}
@media(max-width:780px){main,.testing main{display:block}.viewport{padding:12px}#sceneHost{height:48vh;max-height:none;min-height:290px}.detailPanel{width:140px}.detailPanel canvas{height:95px}.predictionCard{font-size:13px}.mission h1{font-size:24px}.console{border-left:0}.cameraButtons{gap:4px!important}}

.launchBar{padding:0 0 10px;border:0;align-items:center}.launchBar label{display:flex;align-items:center;gap:7px}.launchBar select{margin:0}.detailPanel span{background:#15343c;color:#e6f1ed}.cue{position:absolute;top:8px;left:50%;transform:translateX(-50%);margin:0;max-width:90%;width:max-content;background:#18343ee8;font-size:12px;pointer-events:none}.cue.lit{background:#ffc65c}.mission p{min-height:0}.testing #runChoice:has(.pair button:only-child){display:none}#sceneHost{height:clamp(300px,46vh,620px)}@media(max-width:780px){#sceneHost{height:43vh;min-height:280px}.launchBar{gap:5px}.launchBar button{padding:8px 10px;font-size:13px}.launchBar label{margin-left:0}}

#moduleConsent{padding:12px;border:1px solid #d9a752;border-radius:8px}#moduleAssigned{width:24px;min-height:24px;vertical-align:middle;margin-right:8px}#vehicleMapping,#mapNotice,#customLimits{font-size:14px;line-height:1.45}input[readonly]{opacity:.75}

/* Test-bay contrast popup; existing scene and console layout stays intact. */
#contrastDialog{color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:14px;width:min(390px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:16px;overflow:auto}
#contrastDialog::backdrop{background:#08171d99}.contrastHeading{display:flex;align-items:center;justify-content:space-between;gap:12px}.contrastHeading h2{font-size:20px;margin:0}#contrastClose{min-width:60px;min-height:48px}#contrastHelp,#contrastStatus{font-size:13px;line-height:1.4}#contrastStatus:empty{display:none}
#contrastGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#contrastGrid button{min-width:0;min-height:80px;padding:6px;display:grid;gap:3px;justify-items:center;font-size:13px;border:2px solid #537780}#contrastGrid button[aria-pressed=true]{border-color:var(--gold);background:#36525a}.paletteSwatch{width:100%;height:26px;border-radius:4px;border:1px solid #ffffff55}.paletteSelected{font-size:10px;font-weight:700;line-height:1.1;visibility:hidden}#contrastGrid [aria-pressed=true] .paletteSelected{visibility:visible}
