/* Игра 3 «Собери консилиум» - палитра НьюВетТех */
body.g3 {
  --brand: #875EF8; --brand-deep: #5E3BD9; --brand-soft: #D6CEFD; --brand-tint: #EDE8FE;
  background: #F5F8FF; background-image: linear-gradient(135deg, #F7F8FE 0%, #EAE6FB 100%);
}
.g3 .logo-nvt { height: 2.1rem; }
.qr-code svg, .qr-code img { width: 5.2rem; height: 5.2rem; display: block; margin-right: .8rem; }
body.kiosk .qr-code svg, body.kiosk .qr-code img { width: 8rem; height: 8rem; }

/* ---------- заставка ---------- */
.hero { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; }
.hero-text { -webkit-flex: 1 1 52%; flex: 1 1 52%; padding-right: 1rem; }
.hero-right { -webkit-flex: 1 1 48%; flex: 1 1 48%; -webkit-align-self: stretch; align-self: stretch; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column; -webkit-align-items: center; align-items: center; min-height: 14rem; }
.hero-art { -webkit-flex: 1 1 0; flex: 1 1 0; width: 100%; min-height: 10rem; position: relative; }
.hero-art img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: contain; }
.hero-right .qr { margin-top: .6rem; }
.kicker { font-size: 2rem; font-weight: 800; }
.brandname { font-size: 5rem; font-weight: 800; line-height: 1; letter-spacing: -.03em; color: var(--ink); margin-bottom: 1rem; }
.brandname span { color: var(--brand); }
.ticks { list-style: none; padding: 0; margin: 0 0 1rem; }
.ticks li { position: relative; padding-left: 1.6rem; font-size: 1.15rem; margin: .35rem 0; font-weight: 700; }
.ticks li:before { content: ""; position: absolute; left: 0; top: .4rem; width: .8rem; height: .8rem; border-radius: 50%; background: var(--brand); }
.lead { color: var(--ink-2); margin: 0 0 1.4rem; max-width: 28rem; }
.hero-btns .btn { margin: 0 .6rem .6rem 0; }
.g3 .prize-line { margin: .5rem 0 .5rem; }
.ecg-strip { display: block; width: 100%; height: 3.2rem; margin-top: .4rem; opacity: .55; }
.invite { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; -webkit-justify-content: space-between; justify-content: space-between; padding: .8rem 1.2rem; margin-bottom: .8rem; border: .14rem solid var(--brand-soft); }
.invite .btn { -webkit-flex: 0 0 auto; flex: 0 0 auto; margin-left: 1rem; }
.invite-title { font-weight: 800; }
body.port .hero { -webkit-flex-direction: column-reverse; flex-direction: column-reverse; -webkit-justify-content: center; justify-content: center; text-align: center; }
body.port .hero-text { padding: 0; -webkit-flex: 0 0 auto; flex: 0 0 auto; }
body.port .hero-right { -webkit-flex: 1 1 auto; flex: 1 1 auto; width: 100%; max-height: 32rem; }
body.port .ticks { display: inline-block; text-align: left; }
body.port .lead { margin-left: auto; margin-right: auto; }
body.port .hero-btns .btn { margin: .3rem; }
body.phone .brandname { font-size: 3.2rem; }
body.phone .kicker { font-size: 1.5rem; }
body.phone .hero-right { max-height: 15rem; min-height: 11rem; }
body.phone .hero-btns .btn { display: block; width: 100%; margin: .5rem 0; }
body.phone .invite { display: block; text-align: center; }
body.phone .invite .btn { margin: .6rem 0 0; width: 100%; }

/* ---------- клиники ---------- */
.clinics { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; }
.cl-map { -webkit-flex: 0 0 38%; flex: 0 0 38%; padding: .6rem; overflow: hidden; }
.cl-map img { width: 100%; border-radius: .7rem; }
.cl-body { -webkit-flex: 1 1 auto; flex: 1 1 auto; padding-left: 1.6rem; }
.cl-list .cl { display: block; background: #fff; border-radius: .9rem; padding: .6rem .9rem; margin-bottom: .5rem; border-left: .3rem solid var(--brand); }
.cl-list .cl b { display: block; font-size: 1rem; }
.cl-list .cl span { font-size: .85rem; color: var(--muted); }
.equip { margin-top: .4rem; }
.equip .chip { cursor: default; font-size: .75rem; padding: .4rem .8rem; }
.cl-actions { margin-top: 1.2rem; }
body.port .clinics { -webkit-flex-direction: column; flex-direction: column; -webkit-justify-content: center; justify-content: center; }
body.port .cl-map { width: 100%; max-width: 30rem; -webkit-flex: 0 0 auto; flex: 0 0 auto; margin-bottom: 1rem; }
body.port .cl-body { padding: 0; -webkit-flex: 0 0 auto; flex: 0 0 auto; }
body.phone .cl-actions .btn { width: 100%; }

/* ---------- кейс + монитор пациента ---------- */
.case-row { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: stretch; align-items: stretch; max-width: 78rem; margin: 0 auto; width: 100%; }
.case { padding: 1.4rem 1.8rem 1rem; -webkit-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; -webkit-animation: case-in .55s cubic-bezier(.2, .9, .3, 1) both; animation: case-in .55s cubic-bezier(.2, .9, .3, 1) both; }
@-webkit-keyframes case-in { 0% { opacity: 0; -webkit-transform: translate3d(-2rem, 0, 0) rotate(-1deg); } 100% { opacity: 1; -webkit-transform: none; } }
@keyframes case-in { 0% { opacity: 0; transform: translate3d(-2rem, 0, 0) rotate(-1deg); } 100% { opacity: 1; transform: none; } }
.case-head { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; border-bottom: .14rem solid var(--brand); padding-bottom: .8rem; margin-bottom: .9rem; }
.case-icon { width: 4.2rem; height: auto; margin-right: 1.1rem; -webkit-flex: 0 0 auto; flex: 0 0 auto; }
.case-cols { display: -webkit-box; display: -webkit-flex; display: flex; }
.case-cols > div { -webkit-flex: 1 1 50%; flex: 1 1 50%; padding-right: 1rem; }
.case-cols ul { margin: .4rem 0 .8rem; padding-left: 1.2rem; }
.case-cols li { margin: .25rem 0; }
.case-foot { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: flex-end; align-items: flex-end; -webkit-justify-content: center; justify-content: center; margin-top: .6rem; position: relative; }
.case-foot .btn { margin: 0 1rem .4rem; }
.sil { height: 4.2rem; width: auto; }
.bubble { border: .12rem solid var(--brand); color: var(--brand-deep); border-radius: .6rem; padding: .35rem .7rem; font-size: .72rem; font-weight: 800; text-transform: uppercase; max-width: 10rem; margin-bottom: 3rem; background: #fff; }
.bubble-l { margin-left: -.6rem; }
.bubble-r { margin-right: -.6rem; }

.monitor { -webkit-flex: 0 0 17rem; flex: 0 0 17rem; margin-left: 1.2rem; background: #0F1530; color: #fff; border-radius: var(--radius); padding: 1rem 1.1rem; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-direction: column; flex-direction: column;
  box-shadow: 0 .8rem 2rem rgba(15, 21, 48, .25); -webkit-animation: case-in .55s .12s cubic-bezier(.2, .9, .3, 1) both; animation: case-in .55s .12s cubic-bezier(.2, .9, .3, 1) both; }
.mon-head { font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: #FFB0B0; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; }
.mon-dot { width: .65rem; height: .65rem; border-radius: 50%; background: #FF6B6B; margin-right: .5rem; -webkit-flex: 0 0 auto; flex: 0 0 auto; -webkit-animation: blink 1s ease-in-out infinite; animation: blink 1s ease-in-out infinite; }
.monitor.ok .mon-head { color: #8FF0C9; }
.monitor.ok .mon-dot { background: #5EE0B0; -webkit-animation: none; animation: none; }
.mon-ecg { display: block; width: 100%; height: 5.5rem; margin: .6rem 0; }
.mon-vitals .vit { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-justify-content: space-between; justify-content: space-between; -webkit-align-items: baseline; align-items: baseline; border-top: .06rem solid rgba(255, 255, 255, .12); padding: .45rem 0; font-size: .85rem; }
.mon-vitals .vit span { color: rgba(255, 255, 255, .6); font-weight: 700; margin-right: .6rem; }
.mon-vitals .vit b { text-align: right; }
.mon-vitals .vit.alarm b { color: #FF8C8C; }
body.port .case-row, body.phone .case-row { -webkit-flex-direction: column-reverse; flex-direction: column-reverse; }
body.port .monitor, body.phone .monitor { -webkit-flex: 0 0 auto; flex: 0 0 auto; margin: 0 0 1rem; }
body.port .case-cols, body.phone .case-cols { -webkit-flex-direction: column; flex-direction: column; }
body.phone .case { padding: 1rem; }
body.phone .case-icon { width: 3rem; }
body.phone .case-foot .sil, body.phone .case-foot .bubble { display: none; }
body.phone .case-foot .btn { width: 100%; margin: 0; }
body.phone .mon-ecg { height: 3.6rem; }
body.port:not(.phone) .case { font-size: 1.1rem; }

/* ---------- выбор: карточки и стол консилиума ---------- */
.pick-title .step { font-size: 1.05rem; }
.opts { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; margin: .3rem -.3rem 0; }
.opt { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; margin: .3rem; padding: .55rem 1rem .55rem .7rem; border-radius: 1rem;
  border: .12rem solid var(--line); background: #fff; color: var(--ink); font-weight: 800; font-size: .95rem; cursor: pointer; text-align: left;
  -webkit-transition: background .15s, border-color .15s, color .15s, -webkit-transform .12s; transition: background .15s, border-color .15s, color .15s, transform .12s; }
.opt .ic { width: 1.7rem; height: 1.7rem; -webkit-flex: 0 0 auto; flex: 0 0 auto; margin-right: .55rem; color: var(--brand); }
.opt.dx { background: var(--brand-tint); }
.opt:active { -webkit-transform: scale(.96); transform: scale(.96); }
.opt.on { background: var(--brand); border-color: var(--brand); color: #fff; }
.opt.on .ic { color: #fff; }
.mp-btn img { display: inline-block; height: 1.3em; width: auto; vertical-align: -.3em; margin-right: .5rem; }
.hint-box { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: flex-start; align-items: flex-start; padding: .9rem 1.1rem; margin: 1rem auto 0; max-width: 46rem; border: .14rem solid var(--brand-soft); }
.hint-box img { width: 3rem; margin-right: .9rem; -webkit-flex: 0 0 auto; flex: 0 0 auto; }
.hint-box p { margin: .3rem 0 0; }
.tray { -webkit-flex: 0 0 auto; flex: 0 0 auto; display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; margin-top: 1rem; padding: .8rem 1rem; background: #fff; border-radius: var(--radius); border-top: .2rem solid var(--brand); box-shadow: 0 -.3rem 1.6rem rgba(91, 59, 214, .12); }
.tray-left { -webkit-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; }
.tray-cap { font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--brand-deep); }
.tray-cap b { display: inline-block; min-width: 1.6rem; text-align: center; background: var(--brand); color: #fff; border-radius: 99rem; padding: 0 .4rem; margin-left: .3rem; }
.tray-items { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; margin-top: .35rem; min-height: 2.6rem; -webkit-align-items: center; align-items: center; }
.tray-item { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; background: var(--brand); color: #fff; border-radius: 99rem; padding: .25rem .7rem .25rem .35rem; margin: .15rem .3rem .15rem 0; font-size: .78rem; font-weight: 800; max-width: 15rem; }
.tray-item .ic { width: 1.3rem; height: 1.3rem; margin-right: .3rem; -webkit-flex: 0 0 auto; flex: 0 0 auto; }
.tray-item i { font-style: normal; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tray-item.landing { opacity: 0; }
.tray-empty { color: var(--muted); font-size: .9rem; }
.tray-btns { -webkit-flex: 0 0 auto; flex: 0 0 auto; margin-left: 1rem; }
.tray-btns .btn { margin-left: .5rem; }
/* стол консилиума всегда виден: варианты прокручиваются внутри, экран целиком - нет */
#pick .screen-inner { padding-bottom: 1rem; height: 100%; min-height: 0; }
.pick { overflow-y: auto; -webkit-overflow-scrolling: touch; padding-bottom: .4rem; }
body.phone .opt { font-size: .8rem; padding: .45rem .7rem .45rem .5rem; margin: .22rem; }
body.phone .opt .ic { width: 1.3rem; height: 1.3rem; margin-right: .35rem; }
body.phone .tray { display: block; }
body.phone .tray-btns { margin: .6rem 0 0; display: -webkit-box; display: -webkit-flex; display: flex; }
body.phone .tray-btns .btn { -webkit-flex: 1 1 50%; flex: 1 1 50%; margin: 0 .25rem; font-size: .95rem; padding-left: .5rem; padding-right: .5rem; }
body.phone .tray-item i { max-width: 7rem; }

/* ---------- итог: раскрытие ---------- */
.score-wrap { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; }
.score-left { -webkit-flex: 0 0 44%; flex: 0 0 44%; padding-right: 1.6rem; }
.score-right { -webkit-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; }
.score-title { margin: .3rem 0 .4rem; min-height: 1.2em; }
.pct-row { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; }
.pct { font-size: 5.6rem; font-weight: 800; color: var(--brand); line-height: 1; letter-spacing: -.02em; margin-right: 1.2rem; }
.stars { display: -webkit-box; display: -webkit-flex; display: flex; }
.stars svg { width: 3.4rem; height: 3.4rem; fill: #E4E0F5; margin-right: .3rem; -webkit-transition: fill .2s; transition: fill .2s; }
.stars svg.on { fill: #F2B705; -webkit-animation: pop .45s cubic-bezier(.2, 1.6, .4, 1); animation: pop .45s cubic-bezier(.2, 1.6, .4, 1); }
.monitor.mini { -webkit-flex: none; flex: none; margin: 1rem 0; padding: .7rem .9rem; -webkit-animation: none; animation: none; }
.monitor.mini .mon-ecg { height: 3.6rem; margin: .4rem 0 0; }
.rv-list { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; margin: -.3rem; }
.rv-list.thinking .rv-card { -webkit-animation: think .7s ease-in-out infinite alternate; animation: think .7s ease-in-out infinite alternate; }
@-webkit-keyframes think { 0% { opacity: .55; } 100% { opacity: 1; } }
@keyframes think { 0% { opacity: .55; } 100% { opacity: 1; } }
.rv-card { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: center; align-items: center; width: calc(50% - .6rem); margin: .3rem; padding: .65rem .8rem; border-radius: 1rem;
  background: #fff; border: .12rem solid var(--line); color: var(--ink-2); font-weight: 800; font-size: .95rem; }
.rv-card .ic { width: 1.6rem; height: 1.6rem; -webkit-flex: 0 0 auto; flex: 0 0 auto; margin-right: .55rem; color: var(--muted); }
.rv-card .rv-t { -webkit-flex: 1 1 auto; flex: 1 1 auto; min-width: 0; line-height: 1.25; }
.rv-card .rv-p { -webkit-flex: 0 0 auto; flex: 0 0 auto; margin-left: .6rem; font-size: 1.05rem; opacity: 0; }
.rv-card.flip { -webkit-animation: flip .42s ease-in-out both; animation: flip .42s ease-in-out both; }
.rv-card.flip .rv-p { opacity: 1; -webkit-transition: opacity .2s .2s; transition: opacity .2s .2s; }
.rv-card.flip[data-kind=req] { background: var(--brand); border-color: var(--brand); color: #fff; }
.rv-card.flip[data-kind=req] .ic { color: #fff; }
.rv-card.flip[data-kind=use] { background: var(--brand-tint); border-color: var(--brand); color: var(--brand-deep); }
.rv-card.flip[data-kind=use] .ic { color: var(--brand); }
.rv-card.flip[data-kind=extra] { background: #FFF1EA; border-color: #F0A07A; color: #A8461A; }
.rv-card.flip[data-kind=extra] .ic { color: #D9622B; }
.rv-card.flip[data-kind=extra] .rv-t { text-decoration: line-through; }
.rv-card[data-kind=missed] { border-style: dashed; background: transparent; }
.rv-card.flip[data-kind=missed] { border-color: var(--brand); color: var(--brand-deep); }
.rv-card.flip[data-kind=missed] .rv-p { font-size: .75rem; text-transform: uppercase; letter-spacing: .04em; }
@-webkit-keyframes flip { 0% { -webkit-transform: scaleX(1); } 45% { -webkit-transform: scaleX(.02); } 55% { -webkit-transform: scaleX(.02); } 100% { -webkit-transform: scaleX(1); } }
@keyframes flip { 0% { transform: scaleX(1); } 45% { transform: scaleX(.02); } 55% { transform: scaleX(.02); } 100% { transform: scaleX(1); } }
body.port .score-wrap { -webkit-flex-direction: column; flex-direction: column; -webkit-justify-content: center; justify-content: center; }
body.port .score-left { padding: 0; width: 100%; -webkit-flex: 0 0 auto; flex: 0 0 auto; }
body.port .score-right { width: 100%; margin-top: 1rem; }
body.phone .pct { font-size: 4rem; }
body.phone .stars svg { width: 2.4rem; height: 2.4rem; }
body.phone .rv-card { width: 100%; font-size: .85rem; padding: .5rem .7rem; }
body.phone .score-left .btn { width: 100%; }

/* ---------- разбор ---------- */
.review { display: -webkit-box; display: -webkit-flex; display: flex; -webkit-align-items: flex-start; align-items: flex-start; }
.rv-main { -webkit-flex: 1 1 60%; flex: 1 1 60%; padding-right: 1.4rem; min-width: 0; }
.rv-side { -webkit-flex: 0 0 38%; flex: 0 0 38%; min-width: 0; }
.rv-side > * { margin-bottom: .9rem; }
.rv-main .code-box { margin-bottom: 1rem; }
.dx { padding: .8rem 1.1rem; margin-top: .6rem; }
.dx p { margin: .3rem 0 0; font-weight: 700; }
.steps-list { padding-left: 1.3rem; margin: .4rem 0 .9rem; }
.steps-list li { margin: .3rem 0; }
.why { background: var(--brand-tint); border-radius: .8rem; padding: .6rem .9rem; font-weight: 700; }
.src a { word-break: break-all; }
.refer-card { padding: 1rem 1.1rem; border: .16rem solid var(--brand); }
.refer-card .btn { width: 100%; }
.refer-ok { background: #DDF5E8; color: #1E7A4C; border-radius: .8rem; padding: .7rem .9rem; font-weight: 700; font-size: .9rem; }
.legend-card, .nvt-card { padding: .9rem 1.1rem; }
.legend-card .chip { cursor: default; font-size: .72rem; padding: .35rem .7rem; }
.legend-card .chip.req { border-color: var(--brand); background: var(--brand); color: #fff; }
.legend-card .chip.use { border-color: var(--brand); background: var(--brand-tint); color: var(--brand-deep); }
.legend-card .chip.extra { border-color: #C9CDD3; color: #8A929C; background: #fff; text-decoration: line-through; }
.legend-card .chip.picked:before { content: "✓ "; }
.legend-card .chip.extra.picked { color: var(--warn); border-color: var(--warn); }
.legend { margin-top: .6rem; color: var(--muted); }
.lg { display: inline-block; width: .8rem; height: .8rem; border-radius: 50%; vertical-align: -.1rem; margin: 0 .25rem 0 .6rem; }
.lg:first-child { margin-left: 0; }
.lg.req { background: var(--brand); } .lg.use { background: var(--brand-tint); border: .1rem solid var(--brand); } .lg.extra { background: #fff; border: .1rem solid #C9CDD3; }
.nvt-card .chip { cursor: default; font-size: .72rem; padding: .35rem .7rem; }
.nvt-card .btn { margin-top: .8rem; width: 100%; }
.rv-side .more .btn { margin: .2rem; }
.rv-side > .btn { width: 100%; }
body.port .review { -webkit-flex-direction: column; flex-direction: column; }
body.port .rv-main { padding: 0; }
body.port .rv-side { width: 100%; -webkit-flex: 0 0 auto; flex: 0 0 auto; margin-top: 1rem; }

.recall-card { max-width: 44rem !important; text-align: left !important; }
.recall-card .btn { margin-top: .6rem; }

/* планшет и ноутбук: монитор уже, без силуэтов - кнопка «Собрать консилиум» остаётся на экране */
@media (max-width: 1300px) {
  body.land .monitor { -webkit-flex: 0 0 12.5rem; flex: 0 0 12.5rem; margin-left: .9rem; padding: .8rem .9rem; }
  body.land .mon-ecg { height: 4rem; }
  body.land .case { padding: 1rem 1.2rem .8rem; }
  body.land .case-foot .sil, body.land .case-foot .bubble { display: none; }
  body.land .case-cols li { margin: .15rem 0; }
}
