/* Clear measuring instrument, kept separate from the orbitable river. */
#air-page .world{min-height:680px;background:linear-gradient(180deg,#c2e4ee88,#e0ebc944),url('assets/context-air.webp') center/cover}
#air-scene{width:calc(100% - 170px);left:0;right:auto}
#air-page .scene-top{right:180px;left:16px}
#air-page .scene-top .location{display:none}
.river-instrument{position:absolute;z-index:3;right:12px;top:18px;bottom:85px;width:148px;background:#f6fcffed;color:#164957;border:3px solid #a4e1ef;border-radius:20px;padding:12px 13px;box-shadow:0 8px 22px #133d4938;text-align:center;pointer-events:none}
.river-instrument h2{font-size:19px;line-height:1.15;margin:0 0 6px}.river-instrument h2 small{display:block;font-size:10px;line-height:1.4;margin-top:4px}
.river-instrument #air-water-label{font-size:36px;line-height:1.2;font-weight:900;color:#09576b;display:block}.river-instrument #air-water-label small{font-size:15px}
.river-instrument #air-depth-text{font-size:10px;display:block;min-height:27px}
.river-gauge{position:relative;margin:17px 51px 20px 10px;height:245px;border:2px solid #123b59;border-radius:7px;background:#e9f7ff;overflow:visible}
.gauge-zones{position:absolute;inset:0;background:linear-gradient(to bottom,#ee6262 0 50%,#f2d85f 50% 58.333%,#74d99a 58.333% 100%);border-radius:5px;opacity:.7}
#air-gauge-fill{position:absolute;left:0;right:0;bottom:0;top:83.33%;background:repeating-linear-gradient(0deg,#16a7cc 0 13px,#41d3e1 14px 16px);border-radius:0 0 4px 4px;border-top:3px solid #f7ffff}
.gauge-tick{position:absolute;left:100%;width:7px;border-top:2px solid #143f52}.gauge-tick b{position:absolute;left:12px;transform:translateY(-50%);font-size:15px;white-space:nowrap;line-height:1}.gauge-tick:nth-of-type(even){width:11px}.gauge-tick.zero{width:16px;border-color:#093555}.gauge-tick.zero b{font-size:21px;color:#093555}
#air-gauge-pointer{position:absolute;left:-11px;right:-5px;top:83.33%;border-top:3px solid #163c54;z-index:2}#air-gauge-pointer span{position:absolute;width:13px;height:13px;left:-4px;top:-8px;border:2px solid white;border-radius:50%;background:var(--zone-color,#25af73);box-shadow:0 1px 5px #1235}
.river-instrument[data-zone=green]{--zone-color:#159b61}.river-instrument[data-zone=yellow]{--zone-color:#e1a500}.river-instrument[data-zone=red]{--zone-color:#df3434}
.river-lamps{display:flex;gap:10px;justify-content:center;background:#183841;border-radius:20px;padding:7px;margin-bottom:7px}.river-lamps i{width:22px;height:22px;border-radius:50%;background:#546366;box-shadow:inset 0 2px 5px #0006}.river-instrument[data-zone=green] .green{background:#42eb8d;box-shadow:0 0 12px #42eb8d}.river-instrument[data-zone=yellow] .yellow{background:#ffe451;box-shadow:0 0 12px #ffd335;animation:river-lamp 1.1s ease-in-out infinite}.river-instrument[data-zone=red] .red{background:#ff6565;box-shadow:0 0 15px #ff4545;animation:river-lamp .8s ease-in-out infinite}
#air-zone-name{font-size:17px;display:block;color:#164957}#air-alarm-caption{font-size:11px;display:block}.zone-key{font-size:10px;line-height:1.5;margin:8px 0 3px}.zone-model-note{font-size:9px;color:#52717b}.river-zone-note{font-size:11px;color:#e5f3d3;line-height:1.5}
#air-page .scene-bottom{gap:8px}#air-page .orbit-hint{font-size:9px;padding:8px}
@keyframes river-lamp{50%{opacity:.65}}
@media(max-width:700px){#air-page .world{height:590px;min-height:590px}#air-scene{width:calc(100% - 124px)}.river-instrument{right:7px;top:12px;bottom:81px;width:116px;padding:10px 8px;border-radius:16px}.river-instrument h2{font-size:17px}.river-instrument #air-water-label{font-size:30px}.river-gauge{height:230px;margin-left:6px;margin-right:43px}.gauge-tick b{font-size:13px;left:9px}.river-lamps{gap:7px}.river-lamps i{width:18px;height:18px}#air-zone-name{font-size:14px}.zone-key{font-size:9px}#air-page .scene-top{right:131px;top:13px;left:7px}#air-page .reference{font-size:9px;padding:6px}#air-page .scene-bottom{left:10px;right:10px;bottom:12px}#air-page .orbit-hint{bottom:0;left:0;max-width:125px;line-height:1.4}}
@media(prefers-reduced-motion:reduce){.river-lamps i{animation:none!important}}
@media(max-width:700px){
 #air-page .world{height:730px;min-height:730px}
 #air-scene{width:100%;height:calc(100% - 255px);top:240px}
 #air-page .scene-top{top:265px;left:12px;right:12px}
 .river-instrument{left:10px;right:10px;top:10px;bottom:auto;width:auto;height:242px;padding:16px 12px;display:grid;grid-template-columns:1fr 95px 1fr;grid-template-rows:48px 42px 32px 1fr;column-gap:10px;text-align:left}
 .river-instrument h2{grid-column:1;grid-row:1;font-size:18px}
 .river-instrument #air-water-label{grid-column:1;grid-row:2;font-size:30px;align-self:center}
 .river-instrument #air-depth-text{grid-column:1;grid-row:3;font-size:11px;line-height:1.4}
 .river-gauge{position:absolute;left:calc(50% - 23px);top:21px;width:31px;height:195px;margin:0}
 .gauge-tick b{font-size:11px;left:9px}.gauge-tick.zero b{font-size:17px}
 .river-lamps{grid-column:3;grid-row:1;align-self:start;gap:7px;padding:8px 5px;margin:0}
 #air-zone-name{grid-column:3;grid-row:2;align-self:center;font-size:15px}
 #air-alarm-caption{grid-column:3;grid-row:3;font-size:11px}
 .zone-key{grid-column:3;grid-row:4;font-size:10px;margin:5px 0 0}
 .zone-model-note{grid-column:1;grid-row:4;align-self:end;font-size:10px}
}

.student-threshold{border:1px solid #bfdfe180;border-radius:12px;padding:12px;margin:0 0 18px}.student-threshold legend{font-weight:900;font-size:16px;color:#f7ebba}.student-threshold label{font-size:12px}.student-threshold select{width:100%;font:inherit;font-weight:900;color:#174853;background:#f5fcff;border:2px solid #91cdd5;border-radius:8px;padding:10px;min-height:44px}.student-threshold p,.student-threshold span{font-size:11px;line-height:1.5}.student-threshold textarea{font-size:12px}
#air-page .topbar,#air-page .title-row,#air-page footer{display:none}#air-page main{max-width:none;padding:0}#air-page .lab{display:block;border:0;border-radius:0}#air-page .world{height:100svh;min-height:580px}#air-scene{inset:0;width:100%;height:100%}#air-page .lab-back{position:absolute;z-index:6;left:14px;top:14px;margin:0;background:#173f3de8}#air-page .scene-top{top:77px;left:16px;right:160px}#air-page .river-instrument{top:78px;right:12px;left:auto;bottom:auto;height:540px;width:134px;display:block;padding:12px;text-align:center}.river-instrument .river-gauge{position:relative;left:auto;top:auto;width:auto;height:235px;margin:15px 42px 15px 5px}#air-page .console{position:absolute;z-index:7;left:16px;bottom:76px;width:340px;max-width:calc(100% - 32px);max-height:calc(100svh - 155px);overflow:auto;border:1px solid #bae1bc;border-radius:18px;background:#254c3bf5;box-shadow:0 10px 40px #1238}#air-open-console{position:absolute;z-index:8;bottom:18px;left:16px;min-height:46px;padding:11px 18px;border:2px solid #e0e4a6;background:#e4f0b6;color:#244f3e;border-radius:14px;font-weight:900}.air-zone-nav{position:absolute;z-index:4;left:50%;top:17px;transform:translateX(-50%);display:flex;gap:6px}.air-zone-nav button{background:#eff9f3e8;border:2px solid #74adb1;border-radius:12px;padding:9px 14px;color:#164654;font-size:12px;font-weight:900;min-height:44px}.air-world-note{position:absolute;left:16px;bottom:74px;color:#164654;font-size:11px;background:#f5fff1db;border-radius:8px;padding:5px 8px;pointer-events:none}#air-page .scene-bottom{left:auto;right:14px;bottom:18px}#air-page .orbit-hint{display:none}
@media(max-width:700px){.air-zone-nav{top:72px;left:14px;transform:none;gap:5px}.air-zone-nav button{padding:8px 11px;font-size:11px}#air-page .scene-top{top:129px;right:137px}#air-page .river-instrument{top:131px;right:8px;width:116px;height:486px;padding:10px 8px}#air-page .river-instrument h2{font-size:16px}#air-page .river-instrument #air-water-label{font-size:27px}#air-page .river-instrument .river-gauge{height:208px;margin:15px 39px 14px 6px}#air-page .river-instrument .zone-key{font-size:9px}#air-page .river-instrument .zone-model-note{font-size:9px}.air-world-note{max-width:175px;bottom:75px;font-size:10px}#air-page .scene-bottom{right:10px;bottom:20px}.air-zone-nav button:focus-visible{outline:3px solid #ffdc65}}

#air-page .river-instrument{height:610px}.river-instrument .zone-model-note{display:block}.river-instrument .zone-key{margin:6px 0;font-size:9px}#air-page .scene-top{z-index:3}
@media(max-width:700px){#air-page .river-instrument{height:555px}#air-page .river-instrument .river-gauge{height:180px}.river-instrument #air-alarm-caption{font-size:10px}#air-page .river-instrument #air-depth-text{font-size:10px;display:block}}
@media(max-height:730px){#air-page .river-instrument{top:115px;height:470px}#air-page .river-instrument .river-gauge{height:150px}.river-instrument h2{font-size:15px}.river-instrument #air-water-label{font-size:24px}.river-instrument #air-depth-text{font-size:9px}}

.river-instrument .gauge-tick b{font-size:12px}.river-instrument .gauge-tick.zero b{font-size:18px}@media(max-width:700px){.river-instrument .gauge-tick b{font-size:10px}.river-instrument .gauge-tick.zero b{font-size:16px}}
/* Light blue glass UI, scoped to Lab Air. Alarm colors remain semantic. */
#air-page{--mint:#b9eaff;--muted:#385e79;--border:#83bad580;color:#143d59}
#air-page .console{background:linear-gradient(135deg,#ecfafff2,#c6eaffec);border:1px solid #ffffffcf;box-shadow:0 14px 42px #194c7540;backdrop-filter:blur(18px);color:#143d59}
#air-page .primary,#air-open-console{background:linear-gradient(160deg,#e4f9ff,#8ed4fa);color:#12466b;border:1px solid #fff;box-shadow:inset 0 1px 0 #fff,0 5px 15px #2a729329}
#air-page .lab-back,#air-page .air-zone-nav button,#air-page .icon-button,body[data-page="air"] #sound-toggle{background:#d8f1ffdb;color:#174a69;border:1px solid #ffffffcc;backdrop-filter:blur(12px);box-shadow:0 4px 18px #16445d25}
#air-page .event,#air-page .path,#air-page .result-equation,#air-page .answer-input,#air-page .river-status{background:#eaf8ffb5;border-color:#8fbfd8;color:#153f5d}
#air-page input,#air-page textarea,#air-page select{background:#f3fbff;color:#163d57;border-color:#99c8e3}
#air-page .student-threshold legend,#air-page .eyebrow,#air-page .console-foot,#air-page .soil-description,#air-page .river-zone-note,#air-page .event p,#air-page .path span,#air-page #air-explanation{color:#355d79}
#air-page .step-dots .active,#air-page .event-icon{background:#a8dcf6;color:#16415c}
#air-page .connector{background:#a7cce1}#air-page .air-world-note{background:#eaf8ffdb}
.air-number-panel{margin:15px 0;padding:10px 8px 4px;background:#f2fbffd9;border:1px solid #abd4ea;border-radius:12px}
.air-number-panel h3{margin:0 4px;font-size:15px;color:#16496d}.air-number-panel h3 small{font-size:11px;font-weight:600;margin-left:5px}
#air-number-line svg{display:block;width:100%;height:auto;overflow:visible}#air-number-line svg text{font:800 17px Nunito,sans-serif;fill:#22536f;text-anchor:middle}#air-number-line svg g path,.number-axis{fill:none;stroke:#5484a0;stroke-width:2}
#air-number-line svg .number-zero text{fill:#0b4e83;font-weight:900}#air-number-line svg .number-zero path{stroke:#0b4e83;stroke-width:3}
#air-number-line .number-arrow{fill:none;stroke:#087dbd;stroke-width:3}#air-result-arrow path{fill:#087dbd}#air-number-line .number-change{fill:#087dbd;font-size:20px}#air-number-line .number-result{fill:#086596;font-size:16px}
.number-start{fill:#fff;stroke:#22536f;stroke-width:2}#air-number-current{fill:#089add;stroke:#fff;stroke-width:2}
#air-number-line p{text-align:center;font-weight:900;font-size:15px;margin:0 0 7px;color:#13507a}
/* Readable text and icons on light-blue glass panels. */
#air-page .console{background:linear-gradient(135deg,#eefafffa,#cdeafff7)}
#air-page .console label{color:#173f59;font-weight:800}
#air-page .console .event>strong,#air-page #air-delta{color:#125c87;font-weight:900}
#air-page .console .event small,#air-page .console .path small,#air-page .console .answer-input>span{color:#365870}
#air-page .console .step-dots>span:not(.connector){color:#315872;border-color:#5a88a3;background:#edf8ff}
#air-page .console .step-dots .active{background:#b2dff5;color:#163f59!important;border-color:#327fa5!important;font-weight:900}
#air-page .console .connector{background:#5a88a3}
#air-page .console .icon-button{background:#d9f0fd;color:#174a69;border-color:#5a88a3}
#air-page .console .icon-button img,#air-page .console .event-icon img,#air-page .console .path>img,#air-page .console .console-foot img{filter:brightness(0) saturate(100%) invert(24%) sepia(30%) saturate(1242%) hue-rotate(162deg) brightness(93%) contrast(94%)}
#air-page .console .event-icon{background:#d2edfc;border-color:#6c9cb6}
#air-page .console input::placeholder,#air-page .console textarea::placeholder{color:#536b7d;opacity:1}
#air-page .console :focus-visible{outline:3px solid #17698c;outline-offset:3px}
#air-page .camera-controls{background:#eaf7fff2;border:1px solid #8abbd5;box-shadow:0 4px 16px #194c7530;color:#174a69}
#air-page .camera-controls .icon-button{background:#d4edfb;border:1px solid #6b9db9;color:#174a69}
#air-page .camera-controls .icon-button img{filter:brightness(0) saturate(100%) invert(24%) sepia(30%) saturate(1242%) hue-rotate(162deg) brightness(93%) contrast(94%)}
#air-page .camera-controls .icon-button:hover{background:#b6def5}
#air-page .camera-controls .icon-button:focus-visible{outline:3px solid #17698c;outline-offset:2px}
#air-page .camera-controls output{color:#173f59;font-weight:900}
