/* Симулятор «Перекройте приток» */
.airlab{--al-color:#7fd49b;border-top:1px solid var(--line);background:radial-gradient(ellipse at 30% 60%,#2a353126,transparent 60%),#121715}
.airlab-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr);gap:20px;margin-top:44px;align-items:stretch}

/* Сцена */
.airlab-stage{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#111513}
.airlab-scene-wrap{position:relative;flex:1;min-height:0;aspect-ratio:800/480}
.airlab-scene{position:absolute;inset:0;width:100%;height:100%;display:block;overflow:visible;touch-action:pan-y;user-select:none;-webkit-user-select:none}
/* Тревожная красная рамка по краям сцены */
.airlab-stage::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px 10px #ff2a2a;opacity:0;transition:opacity .8s;border-radius:inherit}
.airlab-stage[data-level="4"]::after{opacity:.35}
.airlab-stage[data-level="5"]::after{opacity:.85;animation:al-vignette 1.4s ease-in-out infinite}
.motion-paused .airlab-stage::after{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.airlab-stage::after{animation:none!important}}
.airlab-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.airlab-alert{position:absolute;left:50%;top:14%;transform:translateX(-50%);margin:0;padding:9px 16px;border-radius:40px;background:#2a1512e6;border:1px solid #ff6a4a;color:#ffd9cf;font-size:14px;line-height:1.3;white-space:nowrap;box-shadow:0 10px 30px #0008;pointer-events:none;animation:al-alert-in .35s cubic-bezier(.2,.8,.2,1)}
.airlab-alert::before{content:'';display:inline-block;width:8px;height:8px;border-radius:50%;background:#ff6a4a;margin-right:9px;vertical-align:1px;animation:al-blink 1s ease-in-out infinite}
.airlab-alert.is-critical{background:#3a0f0ee8;border-color:#ff3b3b;color:#fff;animation:al-alert-in .35s cubic-bezier(.2,.8,.2,1),al-alert-pulse 1.2s ease-in-out .35s infinite}
.airlab-hint{position:absolute;left:18%;top:17%;margin:0;padding:6px 11px;border-radius:4px;background:var(--orange);color:#191815;font-size:13px;line-height:1.2;white-space:nowrap;pointer-events:none;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.airlab-hint::before{content:'';position:absolute;left:14px;top:-5px;border:5px solid transparent;border-top:0;border-bottom-color:var(--orange)}
.airlab-stage.show-hint.in-view .airlab-hint{opacity:1;transform:none;transition-delay:.8s}

/* Люди: состояния по уровню CO₂ */
.airlab-scene .al-person{transition:opacity .5s}
.airlab-scene .al-person.is-away{opacity:0}
.airlab-scene .al-body-wrap,.airlab-scene .al-head{transform-box:fill-box;transform-origin:50% 100%;transition:transform .9s cubic-bezier(.3,.7,.3,1)}
.airlab-scene .al-eyes-sleepy,.airlab-scene .al-eyes-dizzy,.airlab-scene .al-mouth-flat,.airlab-scene .al-mouth-yawn,.airlab-scene .al-mouth-frown,.airlab-scene .al-sweat,.airlab-scene .al-arm,.airlab-scene .al-zzz,.airlab-scene .al-dizzy{opacity:0}
.airlab-scene .al-eyes-open,.airlab-scene .al-eyes-sleepy,.airlab-scene .al-eyes-dizzy,.airlab-scene [class^="al-mouth"],.airlab-scene .al-sweat,.airlab-scene .al-arm,.airlab-scene .al-zzz,.airlab-scene .al-dizzy{transition:opacity .45s}
.airlab-scene .al-dizzy,.airlab-scene .al-zzz text{transform-box:fill-box;transform-origin:50% 50%}
.airlab-scene .al-vignette{opacity:0;transition:opacity .8s}
.airlab-scene .al-screen{transition:fill .8s}

.airlab-scene[data-level="2"] .al-mouth-smile,.airlab-scene[data-level="3"] .al-mouth-smile,.airlab-scene[data-level="4"] .al-mouth-smile,.airlab-scene[data-level="5"] .al-mouth-smile{opacity:0}
.airlab-scene[data-level="2"] .al-mouth-flat{opacity:1}
.airlab-scene[data-level="2"] .al-body-wrap{transform:translateY(3px)}

.airlab-scene[data-level="3"] .al-eyes-open{opacity:0}
.airlab-scene[data-level="3"] .al-eyes-sleepy{opacity:1}
.airlab-scene[data-level="3"] .al-person[data-seat="0"] .al-mouth-flat,.airlab-scene[data-level="3"] .al-person[data-seat="2"] .al-mouth-flat,.airlab-scene[data-level="3"] .al-person[data-seat="4"] .al-mouth-flat{opacity:1}
.airlab-scene[data-level="3"] .al-person[data-seat="1"] .al-mouth-yawn,.airlab-scene[data-level="3"] .al-person[data-seat="3"] .al-mouth-yawn,.airlab-scene[data-level="3"] .al-person[data-seat="5"] .al-mouth-yawn{opacity:1}
.airlab-scene[data-level="3"] .al-zzz{opacity:1}
.airlab-scene[data-level="3"] .al-body-wrap{transform:translateY(6px)}
.airlab-scene[data-level="3"] .al-head{animation:al-nod 3.2s ease-in-out infinite}

.airlab-scene[data-level="4"] .al-eyes-open,.airlab-scene[data-level="5"] .al-eyes-open{opacity:0}
.airlab-scene[data-level="4"] .al-person[data-seat="0"] .al-eyes-dizzy,.airlab-scene[data-level="4"] .al-person[data-seat="2"] .al-eyes-dizzy,.airlab-scene[data-level="4"] .al-person[data-seat="4"] .al-eyes-dizzy{opacity:1}
.airlab-scene[data-level="4"] .al-person[data-seat="1"] .al-eyes-sleepy,.airlab-scene[data-level="4"] .al-person[data-seat="3"] .al-eyes-sleepy,.airlab-scene[data-level="4"] .al-person[data-seat="5"] .al-eyes-sleepy{opacity:1}
.airlab-scene[data-level="4"] .al-mouth-frown,.airlab-scene[data-level="5"] .al-mouth-frown{opacity:1}
.airlab-scene[data-level="4"] .al-sweat{opacity:1}
.airlab-scene[data-level="4"] .al-person[data-seat="1"] .al-arm,.airlab-scene[data-level="4"] .al-person[data-seat="3"] .al-arm,.airlab-scene[data-level="4"] .al-person[data-seat="5"] .al-arm{opacity:1}
.airlab-scene[data-level="4"] .al-person[data-seat="0"] .al-dizzy,.airlab-scene[data-level="4"] .al-person[data-seat="2"] .al-dizzy,.airlab-scene[data-level="4"] .al-person[data-seat="4"] .al-dizzy{opacity:1}
.airlab-scene[data-level="4"] .al-body-wrap{transform:translateY(8px)}
.airlab-scene[data-level="4"] .al-head{animation:al-sway 2.4s ease-in-out infinite}
.airlab-scene[data-level="4"] .al-vignette{opacity:.35}

.airlab-scene[data-level="5"] .al-eyes-sleepy{opacity:1}
.airlab-scene[data-level="5"] .al-body-wrap{transform:translateY(58px)}
.airlab-scene[data-level="5"] .al-head{transform:rotate(26deg)}
.airlab-scene[data-level="5"] .al-person[data-seat="1"] .al-head,.airlab-scene[data-level="5"] .al-person[data-seat="4"] .al-head{transform:rotate(-24deg)}
.airlab-scene[data-level="5"] .al-person[data-seat="0"] .al-dizzy,.airlab-scene[data-level="5"] .al-person[data-seat="3"] .al-dizzy{opacity:1}
.airlab-scene[data-level="5"] .al-vignette{opacity:.8;animation:al-vignette 1.4s ease-in-out infinite}
.airlab-scene[data-level="4"] .al-screen,.airlab-scene[data-level="5"] .al-screen{fill:#3b2622}

.airlab-scene .al-person[data-seat="1"] .al-head{animation-delay:-.7s}
.airlab-scene .al-person[data-seat="2"] .al-head{animation-delay:-1.9s}
.airlab-scene .al-person[data-seat="3"] .al-head{animation-delay:-1.2s}
.airlab-scene .al-person[data-seat="4"] .al-head{animation-delay:-2.6s}
.airlab-scene .al-person[data-seat="5"] .al-head{animation-delay:-.3s}
.airlab-scene .al-zzz text{animation:al-zzz 2.6s ease-in infinite}
.airlab-scene .al-zzz text:nth-child(2){animation-delay:.85s}
.airlab-scene .al-zzz text:nth-child(3){animation-delay:1.7s}
.airlab-scene .al-dizzy{animation:al-spin 1.6s linear infinite}
.airlab-scene .al-handle-pulse{transform-box:fill-box;transform-origin:50% 50%;animation:al-handle 1.8s ease-out infinite}
.airlab-stage:not(.show-hint) .al-handle-pulse{display:none}

@keyframes al-nod{0%,62%,100%{transform:rotate(0)}74%{transform:rotate(15deg) translateY(4px)}84%{transform:rotate(3deg)}}
@keyframes al-sway{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
@keyframes al-zzz{0%{opacity:0;transform:translate(0,6px) scale(.7)}30%{opacity:1}100%{opacity:0;transform:translate(14px,-26px) scale(1.15)}}
@keyframes al-spin{to{transform:rotate(360deg)}}
@keyframes al-handle{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(2.3)}}
@keyframes al-vignette{0%,100%{opacity:.55}50%{opacity:.9}}
@keyframes al-blink{0%,100%{opacity:1}50%{opacity:.25}}
@keyframes al-alert-in{from{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translateX(-50%)}}
@keyframes al-alert-pulse{0%,100%{box-shadow:0 0 0 0 #ff3b3b66,0 10px 30px #0008}50%{box-shadow:0 0 0 8px #ff3b3b00,0 10px 30px #0008}}

/* Панель */
.airlab-panel{display:flex;flex-direction:column;gap:18px;padding:26px 24px 22px;border:1px solid var(--line);border-radius:6px;background:#171d1a}
.airlab-readout{display:grid;grid-template-columns:1fr auto;align-items:end;gap:4px 12px}
.airlab-label,.airlab-clock{font:400 12px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.airlab-label{grid-column:1 / -1}
.airlab-clock{justify-self:end;padding-bottom:10px;text-transform:none;letter-spacing:0}
.airlab-clock b{font-weight:400;color:var(--ink)}
.airlab-ppm{margin:0;display:flex;align-items:baseline;gap:8px;line-height:1}
.airlab-ppm b{font-size:clamp(46px,4.6vw,64px);font-weight:300;letter-spacing:-.05em;color:var(--al-color);transition:color .6s;font-variant-numeric:tabular-nums}
.airlab-ppm span{font:400 14px var(--mono);color:var(--muted)}
.airlab-scale{position:relative;padding-top:4px}
.airlab-scale-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:2px;height:8px;border-radius:4px;overflow:hidden}
.airlab-scale-bar span:nth-child(1){background:#4f9c69}.airlab-scale-bar span:nth-child(2){background:#9db552}.airlab-scale-bar span:nth-child(3){background:#d9a93b}.airlab-scale-bar span:nth-child(4){background:#e5803f}.airlab-scale-bar span:nth-child(5){background:#e0553a}.airlab-scale-bar span:nth-child(6){background:#b82a2a}
.airlab-scale i{position:absolute;top:-3px;left:0;width:3px;height:18px;margin-left:-1.5px;border-radius:2px;background:var(--ink);box-shadow:0 0 0 2px #171d1a;transition:left .2s linear}
.airlab-scale-labels{display:grid;grid-template-columns:repeat(6,1fr);margin-top:8px;font:400 11px var(--mono);color:#8fa096}
.airlab-scale-labels span{transform:translateX(-50%);white-space:nowrap}
.airlab-scale-labels span:first-child{visibility:hidden}
.airlab-state h3{font-size:24px;font-weight:400;letter-spacing:-.025em;line-height:1.3;color:var(--al-color);transition:color .6s;margin:0 0 6px}
.airlab-state p{font-size:15px;line-height:1.65;color:#c3ccc6;min-height:3.3em}
.airlab-control{display:block}
.airlab-control-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;font-size:14px;color:#d0d8d2}
.airlab-control output{font:400 12px var(--mono);color:var(--orange);white-space:nowrap}
.airlab-control input[type=range]{width:100%;margin:0;accent-color:var(--orange);height:24px;cursor:pointer}
.airlab-ticks{position:relative;display:block;height:16px;font:400 10px var(--mono);color:#8fa096}
.airlab-ticks i{position:absolute;top:0;font-style:normal;transform:translateX(-50%);white-space:nowrap}
.airlab-ticks i::before{content:'';display:block;width:1px;height:5px;margin:0 auto 1px;background:#8fa096}
.airlab-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.airlab-actions .btn{justify-content:center;gap:8px;min-height:44px}
.airlab-actions .btn.is-active{border-color:var(--orange);color:var(--orange)}
.airlab-cta{width:100%;gap:12px}
.airlab-panel[data-level="3"] .airlab-cta,.airlab-panel[data-level="4"] .airlab-cta,.airlab-panel[data-level="5"] .airlab-cta{box-shadow:0 0 0 0 #ff815866;animation:al-cta 1.6s ease-out infinite}
@keyframes al-cta{0%{box-shadow:0 0 0 0 #ff815866}100%{box-shadow:0 0 0 12px #ff815800}}
.airlab-source{font-size:12px;line-height:1.6;color:#8fa096;margin-top:14px}

/* Пауза и уменьшение анимации */
.motion-paused .airlab-scene *,.motion-paused .airlab-alert,.motion-paused .airlab-cta{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.airlab-scene *,.airlab-alert,.airlab-alert::before,.airlab-cta{animation:none!important}}

/* Симулятор целиком помещается в один экран */
@media(min-width:1051px){
 .airlab-stage,.airlab-panel{height:min(74vh,700px)}
 .airlab-panel{gap:clamp(10px,1.7vh,18px);padding:clamp(18px,2.4vh,26px) 24px clamp(16px,2vh,22px);overflow:hidden}
 .airlab-ppm b{font-size:clamp(34px,5.4vh,64px)}
 .airlab-state h3{font-size:clamp(19px,2.6vh,24px)}
 .airlab-state p{font-size:clamp(14px,1.9vh,15px);min-height:0}
 .airlab-cta{min-height:clamp(46px,6vh,58px)}
}
@media(max-width:1050px){
 .airlab-grid{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:12px;height:calc(100svh - 132px);min-height:500px}
 .airlab-stage{min-height:0}
 .airlab-scene-wrap{flex:1;aspect-ratio:auto;min-height:0}
 .airlab-panel{display:grid;grid-template-columns:1fr 1fr;gap:clamp(6px,1.1vh,10px) 22px;padding:clamp(12px,1.8vh,16px) 18px clamp(10px,1.5vh,16px);align-content:start}
 .airlab-readout{grid-column:1;grid-row:1}
 .airlab-scale{grid-column:1;grid-row:2}
 .airlab-state{grid-column:2;grid-row:1 / span 2}
 .airlab-control{grid-column:auto;grid-row:3}
 .airlab-actions{grid-column:1;grid-row:4}
 .airlab-cta{grid-column:2;grid-row:4}
 .airlab-source{grid-column:1 / -1;grid-row:5}
 .airlab-ppm b{font-size:clamp(30px,4.6vh,44px)}
 .airlab-state h3{font-size:18px;margin-bottom:3px}
 .airlab-state p{font-size:13px;line-height:1.5;min-height:0}
 .airlab-control-head{margin-bottom:4px;font-size:13px}
 .airlab-control input[type=range]{height:22px}
 .airlab-ticks{height:14px}
 .airlab-cta{align-self:end;min-height:44px}
 .airlab-actions .btn{min-height:40px;font-size:13px;padding:8px 10px}
 .airlab-source{font-size:clamp(9px,1.3vh,11px);line-height:1.45;margin-top:0}
 .airlab-label,.airlab-clock{font-size:11px;white-space:nowrap}
 .airlab-actions .btn,.airlab-cta{min-height:clamp(36px,4.8vh,44px)}
}
@media(max-width:700px){.airlab-grid{margin-top:26px;gap:10px}.airlab-alert{font-size:12px;padding:7px 12px;top:8%}.airlab-hint{font-size:12px}}
@media(max-width:560px){
 .airlab-grid{grid-template-rows:minmax(190px,1fr) auto}
 .airlab-panel{grid-template-columns:1fr 1fr;gap:8px 14px;padding:14px}
 .airlab-readout{grid-row:1;gap:0 10px}
 .airlab-readout .airlab-label{grid-column:1;grid-row:1}
 .airlab-clock{grid-column:2;grid-row:1;padding-bottom:0;align-self:center}
 .airlab-ppm{grid-column:1 / -1;grid-row:2;margin-top:2px}
 .airlab-state{grid-column:2;grid-row:1}
 .airlab-scale{grid-column:1 / -1;grid-row:2}
 .airlab-actions .btn{min-height:38px}
 .airlab-cta{min-height:44px}
 .airlab-control{grid-column:1 / -1;grid-row:auto}
 .airlab-actions{grid-column:1 / -1;grid-row:auto}
 .airlab-cta{grid-column:1 / -1;grid-row:auto}
 .airlab-source{grid-row:auto}
 .airlab-ppm b{font-size:32px}
 .airlab-clock{padding-bottom:0}
 .airlab-state p{font-size:12.5px;line-height:1.45}
 .airlab-scale-labels{margin-top:5px;font-size:10px}
 .airlab-control-head{margin-bottom:3px}
 .airlab-ticks{height:12px;font-size:9px}
}

/* Низкие экраны: плотная панель, чтобы симулятор всё равно влезал в один экран */
@media(max-width:1050px) and (max-height:760px){
 .airlab-grid{grid-template-rows:minmax(150px,1fr) auto;height:calc(100svh - 118px);min-height:0;gap:10px}
 .airlab-panel{grid-template-columns:1fr 1fr;gap:7px 14px;padding:12px 14px}
 .airlab-readout{grid-column:1;grid-row:1}
 .airlab-state{grid-column:2;grid-row:1}
 .airlab-scale{grid-column:1 / -1;grid-row:2}
 .airlab-control:nth-of-type(1){grid-column:1;grid-row:3}
 .airlab-control:nth-of-type(2){grid-column:2;grid-row:3}
 .airlab-actions{grid-column:1;grid-row:4;grid-template-columns:1fr 1fr;gap:6px}
 .airlab-cta{grid-column:2;grid-row:4;align-self:end}
 .airlab-ppm b{font-size:30px}
 .airlab-state h3{font-size:16px}
 .airlab-state p{font-size:12px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
 .airlab-control-head{font-size:12px;flex-wrap:wrap}
 .airlab-control output{font-size:11px}
 .airlab-actions .btn,.airlab-cta{min-height:36px;font-size:12px;padding:7px 8px;gap:6px}
 .airlab-cta .arrow{width:14px;height:14px}
 .airlab-source{margin-top:8px;font-size:10px}
}

