/* Монитор пациента: весь экран, тёмная тема. Размеры — в rem, корень масштабируется
   под разрешение ТВ/проектора (20 px на 1920×1080). */
:root{
  --m-bg:#03070c;--m-line:#17202b;--m-top:#0a1119;
  --ecg:#3cf07e;--pl:#3ad6ff;--co2:#ffd84a;--art:#ff5767;--nibp:#eef2f7;--tmp:#c9a8ff;
  --hi:#ff3b3b;--med:#ffc21a;
}
*{box-sizing:border-box}
html{font-size:min(1.0417vw,1.852vh);background:var(--m-bg)}
html,body{margin:0;height:100%;overflow:hidden}
body{background:var(--m-bg);color:#e6ebf2;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans","Liberation Sans",Arial,sans-serif;user-select:none;-webkit-user-select:none}
body.idle,body.idle *{cursor:none!important}
.mon{height:100%;display:flex;flex-direction:column;position:relative}
/* Рамка тревоги — постоянная и только вокруг «прибора», не вокруг текста задачи. */
.vit{position:relative}
.vit::after{content:"";position:absolute;inset:0;border:.25rem solid transparent;pointer-events:none;z-index:5}
.mon.al-hi .vit::after{border-color:var(--hi)}
.mon.al-med .vit::after{border-color:var(--med)}
@keyframes blk{50%{opacity:0}}

.mtop{display:flex;align-items:center;gap:.8rem;height:2.6rem;flex:0 0 2.6rem;padding:0 .8rem 0 1rem;background:var(--m-top);border-bottom:1px solid var(--m-line);font-size:.95rem;white-space:nowrap}
.brand{display:flex;align-items:center;gap:.45rem;padding-right:.9rem;margin-right:.1rem;border-right:1px solid #1f2b39}
.brand svg{height:1.7rem;width:auto;flex:none}
.brand b{font-size:1.05rem;font-weight:800;letter-spacing:.09em;color:#e9f0f8}
.brand i{font-style:normal;font-size:.95rem;color:#a9b6c7}
@media (max-width:1100px){.brand i{display:none}}
.mtop .bed{display:inline-block;font-weight:700;color:#fff;max-width:40%;overflow:hidden;text-overflow:ellipsis}
.mtop .bed[hidden]{display:none}
.mtop .pt{color:#8b97a8}
.chips{display:flex;gap:.4rem}
.chip{font-size:.8rem;font-weight:700;padding:.1rem .5rem;border-radius:.25rem;border:1px solid #2c3a4b;color:#a9b6c7}
.alarm{flex:1;display:flex;justify-content:center;min-width:0;overflow:hidden}
.alarm em.more{font-style:normal;font-weight:800;font-size:1rem;color:#c9d3df;margin-left:.5rem;align-self:center}
.alarm span{padding:.15rem 1rem;border-radius:.25rem;font-weight:800;font-size:1.4rem;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis}
/* Приоритеты по МЭК 60601-1-8: высокий мигает ~2 Гц, средний ~0,6 Гц, низкий не мигает; маркеры !!! / !! / ! */
.alarm .hi{background:var(--hi);color:#fff;animation:abg .5s steps(1) infinite}
.alarm .med{background:var(--med);color:#1a1300;animation:amd 1.6s steps(1) infinite}
.alarm .low{background:#0b3442;color:#3ad6ff}
.alarm .hi::before{content:"!!!\00a0"}.alarm .med::before{content:"!!\00a0"}.alarm .low::before{content:"!\00a0"}
@keyframes amd{50%{background:#8a6a00}}
.alarm .tech{background:#1d3a5c;color:#bfe0ff}
@keyframes abg{50%{background:#7a1414}}
.mute{display:inline-flex;color:#7d8a9b}
.mute svg{width:1.3rem;height:1.3rem}
.mute .w{display:none}
.mute.on{color:#8ff0b4}
.mute.on .w{display:inline}.mute.on .x{display:none}
.clock{font-variant-numeric:tabular-nums;color:#c9d3df;font-weight:600;font-size:1.05rem}

.body{flex:1;display:flex;min-height:0}
.vit{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}
.rows{flex:1;display:flex;flex-direction:column;min-height:0}

/* Условия задачи и осмотр — для студентов: крупный текст, читается с 3–4 м. */
.case{flex:0 0 36%;max-width:44rem;display:flex;flex-direction:column;gap:.9rem;padding:1rem 1.1rem;background:#070e17;border-right:1px solid var(--m-line);overflow:hidden;font-size:var(--cs,1.15rem);line-height:1.38;color:#dbe4ee}
.case[hidden]{display:none}
.cs-slogan{margin-top:auto;font-size:.62em;letter-spacing:.04em;color:#5d6f86}
.cs-h{font-size:.68em;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:#7f93ab;margin-bottom:.3em}
.case p{margin:0}
.cs-now p{color:#fff;font-weight:600}
.cs-now{border-left:.22rem solid #3a7bd5;padding-left:.7rem}
.cs-now[hidden]{display:none}
.case dl{margin:0;display:grid;grid-template-columns:fit-content(42%) 1fr;column-gap:.8em;row-gap:.35em}
.case dt{color:#8fa3ba;font-weight:600}
.cs-intro.past{font-size:.8em;color:#8b9bb0}
.cs-intro.past .cs-h{font-size:.85em}
.case dd{margin:0;color:#eef3f8}
/* подсветка изменений — синим бренда (жёлтый на мониторе означает тревогу) */
.case .chg{animation:chg 12s ease-out 1}
@keyframes chg{0%,55%{background:rgba(61,127,208,.32);color:#fff}100%{background:transparent}}
.cs-now.chg{animation:nowchg 12s ease-out 1}
@keyframes nowchg{0%,55%{background:rgba(61,127,208,.3);border-left-color:#7fb2f0}100%{background:transparent}}
.case dt.chg,.case dd.chg{border-radius:.2em}
.row{flex:1;display:flex;min-height:0;border-bottom:1px solid var(--m-line)}
.row.r-ecg{flex:1.65}
.row[hidden]{display:none}
.wave{flex:1;position:relative;min-width:0;overflow:hidden}
.wave canvas{position:absolute;left:0;top:0;width:100%;height:100%;display:block}
.wl{position:absolute;left:.6rem;top:.3rem;font-size:.95rem;font-weight:700;z-index:1;pointer-events:none}
.sc{position:absolute;left:.6rem;font-size:.75rem;opacity:.6;pointer-events:none}
.sc.t{top:2.1rem}.sc.b{bottom:.15rem}
.num{width:16rem;flex:0 0 16rem;border-left:1px solid var(--m-line);padding:.45rem .8rem;position:relative;display:flex;flex-direction:column;min-width:0}
.nl{display:flex;justify-content:space-between;align-items:baseline;gap:.4rem;font-size:1rem;font-weight:700}
.nl small{font-weight:500;opacity:.75;font-size:.85rem}
.nv{font-size:5.4rem;font-weight:600;line-height:1;text-align:right;font-variant-numeric:tabular-nums;margin-top:auto;letter-spacing:-.01em}
.r-pl .nv,.r-co2 .nv{font-size:4.6rem}
.lim{position:absolute;left:.8rem;top:1.9rem;font-size:.8rem;line-height:1.3;opacity:.7}
.sub{position:absolute;left:.8rem;bottom:.6rem;font-size:.85rem;opacity:.85;line-height:1.3}
.c-ecg{color:var(--ecg)}.c-pl{color:var(--pl)}.c-co2{color:var(--co2)}.c-art{color:var(--art)}.c-nibp{color:var(--nibp)}.c-tmp{color:var(--tmp)}
.num.al-hi .nv{animation:nhi .5s steps(1) infinite}
.hb{display:inline-block;margin-left:.3rem;opacity:.2;transition:opacity .05s}
#tHr.beat .hb{opacity:1}
.num.al-med .nv{color:var(--med)}
.num.al-hi{background:rgba(255,59,59,.14)}
.num.al-med{background:rgba(255,194,26,.08)}
@keyframes nhi{0%{color:var(--hi)}50%{color:#fff}}
.co2box{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto}
.co2box .rrv{font-size:2.4rem;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.co2box .rrl{font-size:.85rem;font-weight:700;opacity:.8}
.co2box .nv{margin-top:0}
.artv{margin-top:auto;text-align:right}
.artv .nv{font-size:3.4rem}
.c-art .sub{bottom:auto;top:1.9rem}

.mbot{display:flex;flex:0 0 8rem;min-height:0}
.mbot .num{flex:1 1 0;width:auto;border-left:0;border-right:1px solid var(--m-line)}
.mbot .n-nibp{flex:1.6 1 0}
.mbot .nv{font-size:4.4rem}
.nibpst{font-size:.85rem;opacity:.75;margin-top:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cuff{color:#ffd7a0;font-weight:700;opacity:1}
.nibpv{display:flex;align-items:baseline;justify-content:flex-end;gap:.6rem;margin-top:auto;font-variant-numeric:tabular-nums}
.nibpv .nv{margin-top:0;white-space:nowrap}
.nibpv .map{font-size:1.8rem;opacity:.9}
.n-nibp.stale .nibpv{opacity:.35}

/* Подсказки только для окна монитора в браузере (в превью и в оболочке не показываются). */
.fs-hint{display:inline-flex;align-items:baseline;gap:.5rem;background:#16304d;border:1px solid #2d5a8c;color:#dbe8f7;border-radius:.4rem;padding:.15rem .7rem;cursor:pointer;font:inherit;white-space:nowrap;animation:hintp 2s ease-in-out infinite}
.fs-hint b{font-size:.95rem}
.fs-hint span{font-size:.8rem;opacity:.7}
@keyframes hintp{50%{border-color:#7fb2f0}}
.fs-hint[hidden],.nolink[hidden],.standby[hidden],.brief[hidden],.card[hidden]{display:none}
/* Заставка: до начала задания и по клавише B на пульте (между бригадами) */
.standby{position:fixed;inset:0;z-index:30;background:radial-gradient(ellipse at 50% 40%,#0c1a2c 0%,#03070c 70%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;color:#e3ebf4;text-align:center}
.sb-in{display:flex;flex-direction:column;align-items:center;gap:1.1rem;animation:drift 240s ease-in-out infinite alternate}
.standby svg.sb-mark{height:9rem;width:auto}
.sb-name{font-size:4.2rem;font-weight:800;letter-spacing:.12em;line-height:1}
.sb-prod{font-size:2rem;color:#a9b6c7;margin-top:-.4rem}
.sb-ecg{width:26rem;height:4rem}
.sb-ecg path{fill:none;stroke:url(#sbg);stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:400;animation:sbdraw 2.4s linear infinite}
@keyframes sbdraw{from{stroke-dashoffset:400}to{stroke-dashoffset:0}}
.sb-slogan{font-size:1.5rem;color:#7f93ab;letter-spacing:.03em}
.sb-clock{font-size:2rem;font-variant-numeric:tabular-nums;color:#c9d3df}
.sb-note{position:absolute;bottom:1.2rem;font-size:.8rem;color:#4d5d72}
@keyframes drift{from{transform:translate(-1.5rem,-1rem)}to{transform:translate(1.5rem,1rem)}}
.nolink{position:fixed;right:.8rem;bottom:.5rem;z-index:20;font-size:.8rem;color:#7d8a9b}
/* Брифинг перед заданием: цели, роли, правила — без диагноза */
.brief{position:fixed;inset:0;z-index:29;background:#050b13;color:#e3ebf4;display:flex;align-items:center;justify-content:center;padding:3rem}
.br-in{max-width:90rem;width:100%;font-size:var(--bs,1.5rem);line-height:1.4}
.br-h{font-size:2.6em;font-weight:800;letter-spacing:.04em;margin-bottom:.4em;color:#fff}
.br-intro{margin-bottom:1em;color:#c9d6e4}
.br-intro:empty{display:none}
.br-cols{display:grid;grid-template-columns:1fr 1fr;gap:2em;margin-bottom:.6em}
.br-sh{font-size:.7em;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#7fb2f0;margin:.4em 0 .3em}
.brief ul{margin:0;padding-left:1.1em}
.brief li{margin:.25em 0}
/* Карточка изображения поверх кривых (не закрывает цифры и нижнюю строку) */
.card{position:absolute;left:.6rem;top:.6rem;right:16.6rem;bottom:8.6rem;z-index:6;display:flex;flex-direction:column;border-radius:.5rem;overflow:hidden;box-shadow:0 .6rem 2rem rgba(0,0,0,.6);border:1px solid #2d4a6e}
.card .cd-h{background:#16304d;color:#e3ebf4;font-weight:800;font-size:1.3rem;padding:.4rem .9rem}
.card .cd-b{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#0a121c}
.card.ecg .cd-b{background:#fff}
.card img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.card .cd-c{background:#0a121c;color:#7f93ab;font-size:.75rem;padding:.25rem .9rem;text-align:right}
