/* Компоненты в стиле программы «Пул лидеров»: тёмно-синяя шапка, заголовки прописными с разрядкой
   и золотой линейкой, кремовые подложки, орнамент. Только токены (tokens.css + tokens-program.css). */

body { font-family: var(--qg-font-sans); }

/* ---------- цвет команды: один на всех экранах ---------- */
.team-1 { --team: var(--qg-team-1); --team-bg: var(--qg-team-1-bg); --team-ink: var(--qg-team-1-ink); --team-nv: var(--qg-team-1-on-navy); }
.team-2 { --team: var(--qg-team-2); --team-bg: var(--qg-team-2-bg); --team-ink: var(--qg-team-2-ink); --team-nv: var(--qg-team-2-on-navy); }
.team-3 { --team: var(--qg-team-3); --team-bg: var(--qg-team-3-bg); --team-ink: var(--qg-team-3-ink); --team-nv: var(--qg-team-3-on-navy); }
.team-4 { --team: var(--qg-team-4); --team-bg: var(--qg-team-4-bg); --team-ink: var(--qg-team-4-ink); --team-nv: var(--qg-team-4-on-navy); }
.team-5 { --team: var(--qg-team-5); --team-bg: var(--qg-team-5-bg); --team-ink: var(--qg-team-5-ink); --team-nv: var(--qg-team-5-on-navy); }
.team-chip { background: var(--team-bg); color: var(--team-ink); }
:root[data-theme="dark"] .team-chip { background: var(--qg-pg-navy-700); color: var(--team-nv); }
.team-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--team); margin-right: 6px; vertical-align: 1px; }

/* ---------- шапка кабинетов ---------- */
.qg-top { background: var(--qg-top-bg); color: var(--qg-top-text); border-bottom: 1px solid var(--qg-pg-navy-line); }
.qg-top__title { color: var(--qg-top-text); letter-spacing: .04em; }
/* переключатель языка KK | ENG | RU */
.qg-lang { display: inline-flex; align-items: center; gap: 2px; flex: none; }
.qg-lang button {
  min-height: 32px; min-width: 34px; padding: 0 6px; border: 0; border-radius: var(--qg-radius-sm); background: transparent; cursor: pointer;
  font: inherit; font-size: 11px; font-weight: 700; letter-spacing: .1em; color: var(--qg-top-muted);
}
.qg-lang button:hover { color: var(--qg-top-text); }
.qg-lang button[aria-pressed="true"] { color: var(--qg-top-accent); box-shadow: inset 0 -2px 0 var(--qg-pg-gold-line); }
.qg-lang__sep { color: var(--qg-pg-navy-line); font-size: 11px; }
.login__lang { position: fixed; top: 14px; right: 18px; z-index: 5; background: var(--qg-pg-navy-950); border-radius: var(--qg-radius); padding: 2px 6px; }
@media (max-width: 1100px) { .tab-body .qg-top__user { display: none; } }
.qg-top__agyn { height: 30px; width: auto; display: block; }   /* «Бірінші ағын» — логотип потока рядом с логотипом компании */
.tab-body .qg-top__agyn-wrap { display: none; }                      /* на планшете он крупно в полосе «Сейчас» */
.qg-top__user { color: var(--qg-top-muted); }
.qg-nav a {
  color: var(--qg-top-muted); text-transform: uppercase; letter-spacing: .12em; font-size: 11px; font-weight: 600;
  border-radius: 0; border-bottom: 2px solid transparent; padding: 10px 10px 8px;
}
.qg-nav a:hover { color: var(--qg-top-text); }
.qg-nav a[aria-current="page"] { background: transparent; color: var(--qg-top-accent); border-bottom-color: var(--qg-pg-gold-line); }
.qg-top .qg-btn { background: transparent; color: var(--qg-top-text); border-color: var(--qg-pg-navy-line); }
.qg-top .qg-btn:hover { background: var(--qg-pg-navy-700); }
.qg-top .qg-btn--primary { background: var(--qg-pg-gold-line); border-color: var(--qg-pg-gold-line); color: var(--qg-pg-navy-950); }

/* ---------- заголовки как в программе ---------- */
.qg-head h1 { text-transform: uppercase; letter-spacing: .14em; color: var(--qg-text-accent); font-weight: var(--qg-font-weight-bold); }
.qg-section > h2 { text-transform: uppercase; letter-spacing: .16em; color: var(--qg-text-accent); font-weight: var(--qg-font-weight-bold); }
.qg-head h1::after, .qg-section > h2::after, .with-rule::after {
  content: ""; display: block; width: 96px; height: 2px; background: var(--qg-rule); margin-top: 12px;
}
.qg-section > h2::after { width: 64px; }
.qg-card__title { color: var(--qg-text-accent); font-weight: var(--qg-font-weight-bold); }
.qg-eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .22em; font-weight: 600; color: var(--qg-pg-gold-text); }
:root[data-theme="dark"] .qg-eyebrow { color: var(--qg-pg-gold-on-navy); }
.qg-sub { color: var(--qg-pg-gold-text); letter-spacing: .04em; }
:root[data-theme="dark"] .qg-sub { color: var(--qg-pg-gold-on-navy); }

/* ---------- KPI, таблицы, вкладки ---------- */
.qg-kpi { border-top: 2px solid var(--qg-rule); }
.qg-kpi__label { text-transform: uppercase; letter-spacing: .12em; font-weight: 600; font-size: 11px; }
.qg-kpi__value { color: var(--qg-text-accent); font-size: 2.6rem; }
.qg-kpi__source { font-style: italic; }
.qg-table th { background: var(--qg-surface-sunken); color: var(--qg-text-accent); text-transform: uppercase; letter-spacing: .1em; font-size: 11px; }
.qg-tabs button[aria-selected="true"] { border-bottom-color: var(--qg-rule); color: var(--qg-text-accent); }
.qg-btn { border-radius: var(--qg-radius); }

/* ---------- обложка входа: баннер программы ---------- */
.qg-cover {
  position: relative; overflow: hidden; color: var(--qg-top-text);
  background: var(--qg-pg-navy-950) url("../img/banner-right.jpg") right center / auto 100% no-repeat;
}
.qg-cover::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, var(--qg-pg-navy-950) 0%, var(--qg-pg-navy-950) 64%, transparent 100%);
}
.qg-cover > * { position: relative; }
.qg-cover h1 { color: var(--qg-top-text); text-transform: uppercase; letter-spacing: .1em; }
.login__agyn { height: 99px; width: auto; display: block; margin: 8px 0 4px -6px; }
.qg-cover .login__kk { color: var(--qg-pg-gold-on-navy); letter-spacing: .24em; }
.qg-cover .with-rule::after { width: 72px; }

/* ---------- подвал с орнаментом и девизом ---------- */
.qg-foot {
  margin-top: var(--qg-gap-xl); border-top: 1px solid var(--qg-pg-sand-2);
  padding: 28px var(--qg-gutter) 40px; display: grid; gap: 6px; justify-items: center; text-align: center;
  background: url("../img/ornament.png") left bottom / auto 240px no-repeat;
}
.qg-foot__motto { text-transform: uppercase; letter-spacing: .32em; font-weight: 600; font-size: 13px; color: var(--qg-text-accent); }
.qg-foot__org { font-size: var(--qg-font-size-caption); color: var(--qg-text-muted); }
:root[data-theme="dark"] .qg-foot { border-top-color: var(--qg-pg-navy-line); }

/* ---------- дашборд программы ---------- */
/* шапка «Пул лидеров в цифрах»: тёмно-синее небо, золотые цифры, иллюстрация программы и орнамент
   справа — по инфографике QazaqGaz_Program_Metrics. Цифры — живые блоки дашборда, не картинка. */
.hero {
  position: relative; overflow: hidden; color: var(--qg-top-text);
  background: radial-gradient(130% 95% at 58% 0%, var(--qg-pg-hero-glow) 0%, var(--qg-pg-hero-mid) 36%,
    var(--qg-pg-hero-deep) 68%, var(--qg-pg-hero-base) 100%);
  --orn: clamp(52px, 8.2vw, 158px);
}
.hero__inner { position: relative; z-index: 2; max-width: 1760px; margin: 0 auto; padding: clamp(28px, 4vw, 64px) calc(var(--orn) + clamp(20px, 3vw, 56px)) 0 clamp(20px, 5vw, 96px); }
.hero__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; }
.hero__brand { display: grid; gap: 6px; justify-items: start; }
.hero__agyn { height: clamp(58px, 7.4vw, 140px); width: auto; display: block; margin-left: -.4%; }
.hero__eyebrow { font-size: clamp(13px, 1.4vw, 24px); text-transform: uppercase; letter-spacing: .12em; color: var(--qg-pg-hero-gold); }
.hero__logo { height: clamp(40px, 5.6vw, 104px); width: auto; flex: none; }
.hero__title {
  margin-top: clamp(4px, 1vw, 18px); font-size: clamp(30px, 5.3vw, 96px); line-height: 1.05; font-weight: var(--qg-font-weight-bold);
  text-transform: uppercase; letter-spacing: .005em; color: var(--qg-top-text);
}
.hero__when { margin-top: 10px; font-size: clamp(12px, 1vw, 17px); letter-spacing: .08em; color: var(--qg-top-muted); }
.hero__kpis { display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: clamp(12px, 2vw, 40px); margin-top: clamp(20px, 3vw, 52px); }
.hero__kpi { min-width: 0; display: block; color: inherit; text-decoration: none; border-radius: var(--qg-radius);
  transform-origin: 50% 85%; transition: transform .28s cubic-bezier(.2, .8, .2, 1); }
/* цифра-ссылка: при наведении приподнимается и вырастает на 15 %, золото разгорается, у подписи — стрелка */
.hero__kpi--link { cursor: pointer; }
.hero__kpi--link .hero__num { transition: text-shadow .28s; }
.hero__kpi--link .hero__lbl::after { content: "\00a0\2192"; opacity: 0; transition: opacity .28s; color: var(--qg-pg-hero-gold); }
@media (hover: hover) {
  .hero__kpi--link:hover { transform: translateY(-10px) scale(1.15); }
  .hero__kpi--link:hover .hero__num { text-shadow: 0 0 26px rgb(224 184 136 / 45%), 0 12px 20px rgb(0 8 24 / 45%); }
  .hero__kpi--link:hover .hero__lbl::after { opacity: 1; }
}
.hero__kpi--link:focus-visible { outline: 2px solid var(--qg-pg-hero-gold); outline-offset: 8px; transform: translateY(-10px) scale(1.15); }
.hero__kpi--link:focus-visible .hero__lbl::after { opacity: 1; }
.hero__kpi--link:active { transform: translateY(-4px) scale(1.1); }       /* касание на планшете */
/* раздел, куда привела цифра: под шапкой и с короткой золотой подсветкой */
#path, #program, #method, #projects, #teams-card { scroll-margin-top: 72px; }
@media (prefers-reduced-motion: no-preference) {
  html:has(.hero) { scroll-behavior: smooth; }
  .qg-card:target, .qg-section:target { animation: qg-arrive 1.8s ease-out; }
  @keyframes qg-arrive { 0%, 30% { box-shadow: 0 0 0 3px var(--qg-rule), var(--qg-shadow-card); } 100% { box-shadow: var(--qg-shadow-card); } }
}
@media (prefers-reduced-motion: reduce) { .hero__kpi { transition: none; } }
.hero__num {
  font-size: clamp(44px, 7.6vw, 150px); line-height: .95; font-weight: var(--qg-font-weight-bold); letter-spacing: -.02em;
  color: var(--qg-pg-hero-gold); font-variant-numeric: tabular-nums;
}
.hero__unit { font-size: .4em; letter-spacing: 0; }
.hero__lbl { margin-top: clamp(8px, 1.4vw, 26px); font-size: clamp(14px, 1.75vw, 32px); line-height: 1.18; color: var(--qg-top-text); }
.hero__error { color: var(--qg-text); }
.hero__art {
  position: relative; z-index: 1; height: clamp(190px, 25vw, 470px); margin-top: clamp(-60px, -2vw, -16px);
  margin-right: var(--orn); background: url("../img/hero-art.jpg") center 30% / cover no-repeat;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, black 26%, black 70%, transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, black 26%, black 70%, transparent 100%);
}
.hero__foot { position: relative; z-index: 2; text-align: center; padding: 0 calc(var(--orn) + 24px) clamp(22px, 3vw, 44px) 24px; margin-top: clamp(-48px, -2.5vw, -16px); }
.hero__caption { font-size: clamp(14px, 1.55vw, 28px); color: var(--qg-top-text); }
.hero__src { margin-top: 6px; font-size: 11px; color: var(--qg-top-muted); }
.hero__ornament { position: absolute; z-index: 3; top: 0; right: 0; bottom: 0; width: var(--orn); background: url("../img/hero-ornament.jpg") center / cover no-repeat; }
.hero + .dash-band { margin-top: 0; }
.hero .qg-skeleton { min-width: 8em; display: inline-block; }
@media (max-width: 760px) {
  .hero { --orn: 26px; }
  .hero__kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 22px; }
  .hero__top { flex-direction: column-reverse; gap: 10px; }
}

.dash-band { position: relative; overflow: hidden; background: var(--qg-band-bg, var(--qg-pg-navy-950)); color: var(--qg-top-text); margin-top: var(--qg-gap-xl); }
.dash-band::before, .dash-band::after {
  content: ""; position: absolute; width: 260px; height: 540px; pointer-events: none;
  background: url("../img/ornament.png") left top / contain no-repeat; opacity: .2;
}
.dash-band::before { left: -40px; top: -20px; }
.dash-band::after { right: -40px; bottom: -40px; transform: scaleX(-1); opacity: .14; }
.dash-band__inner { position: relative; max-width: 1440px; margin: 0 auto; padding: 48px var(--qg-gutter) 52px; display: grid; gap: 28px; }
.dash-band__title { text-transform: uppercase; letter-spacing: .16em; font-weight: var(--qg-font-weight-bold); font-size: var(--qg-font-size-title); color: var(--qg-top-text); }
.dash-band__sub { color: var(--qg-pg-gold-on-navy); }
.dash-band__note { font-size: var(--qg-font-size-caption); color: var(--qg-top-muted); }

.stair { display: flex; align-items: flex-end; gap: 10px; }
.stair__sep { align-self: center; color: var(--qg-pg-gold-line); font-size: 18px; }
.stair__step {
  flex: 1; min-width: 0; display: grid; gap: 10px; padding: 20px; border-radius: var(--qg-radius-lg);
  background: var(--qg-pg-navy-800); border: 1px solid var(--qg-pg-navy-line); border-top: 3px solid var(--team-nv);
}
.stair__step--1 { margin-top: 184px; }
.stair__step--2 { margin-top: 138px; }
.stair__step--3 { margin-top: 92px; }
.stair__step--4 { margin-top: 46px; }
.stair__act { font-size: 11px; text-transform: uppercase; letter-spacing: .2em; font-weight: 600; color: var(--qg-pg-gold-on-navy); }
.stair__q { font-size: 17px; font-weight: var(--qg-font-weight-bold); line-height: 1.3; color: var(--qg-top-text); }
.stair__kk { font-size: var(--qg-font-size-caption); color: var(--qg-top-muted); font-style: italic; }
.stair__scope { height: 4px; border-radius: 2px; background: var(--qg-pg-navy-line); }
.stair__scope i { display: block; height: 4px; border-radius: 2px; background: var(--qg-pg-gold-line); width: var(--w, 0%); }
.stair__team { font-size: 13px; color: var(--qg-top-text); }
.stair__title { font-size: var(--qg-font-size-caption); color: var(--qg-top-muted); }
.stair__state { justify-self: start; }

.dash-two { display: grid; gap: var(--qg-gap-md); grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); margin-top: var(--qg-gap-xl); }


.donut { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.donut svg { width: 176px; height: 176px; flex: none; }
.donut circle { fill: none; stroke-width: 24; }
.donut .seg-hi-a { stroke: var(--qg-pg-navy); }
.donut .seg-hi-b { stroke: var(--qg-pg-navy-600); }
.donut .seg-lo-a { stroke: var(--qg-pg-sand-2); }
.donut .seg-lo-b { stroke: var(--qg-border-strong); }
.donut .ring { stroke: var(--qg-rule); stroke-width: 1; }
.donut text { fill: var(--qg-text-muted); font-family: var(--qg-font-sans); font-size: 10px; letter-spacing: .08em; }
.donut text.big { fill: var(--qg-text-accent); font-size: 30px; font-weight: 600; letter-spacing: 0; }
:root[data-theme="dark"] .donut .seg-hi-a { stroke: var(--qg-pg-gold-on-navy); }
:root[data-theme="dark"] .donut .seg-hi-b { stroke: var(--qg-pg-gold-line); }
.legend-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; flex: 1; min-width: 170px; font-size: 13px; }
.legend-list li { display: flex; gap: 8px; align-items: center; }
.legend-list i { width: 10px; height: 10px; border-radius: 2px; flex: none; }
.legend-list .seg-hi-a { background: var(--qg-pg-navy); }
.legend-list .seg-hi-b { background: var(--qg-pg-navy-600); }
.legend-list .seg-lo-a { background: var(--qg-pg-sand-2); }
.legend-list .seg-lo-b { background: var(--qg-border-strong); }
:root[data-theme="dark"] .legend-list .seg-hi-a { background: var(--qg-pg-gold-on-navy); }
:root[data-theme="dark"] .legend-list .seg-hi-b { background: var(--qg-pg-gold-line); }
.legend-list b { color: var(--qg-text-accent); font-variant-numeric: tabular-nums; white-space: nowrap; }
.legend-list .hi { font-weight: var(--qg-font-weight-bold); }

.vote { display: grid; gap: var(--qg-gap-md); grid-template-columns: auto 1fr; align-items: center; }
.vote svg { width: 150px; height: 150px; }
.vote circle { fill: none; }
.vote .track { stroke: var(--qg-surface-sunken); stroke-width: 14; }
.vote .fill { stroke: var(--qg-accent); stroke-width: 14; stroke-linecap: round; }
.vote text { fill: var(--qg-text-muted); font-family: var(--qg-font-sans); font-size: 10px; letter-spacing: .08em; }
.vote text.big { fill: var(--qg-text-accent); font-size: 32px; font-weight: 600; letter-spacing: 0; }
.quorum { display: grid; grid-template-columns: 8.5rem 1fr auto; gap: 12px 10px; align-items: center; font-size: 13px; }
.quorum__dots { display: flex; gap: 6px; flex-wrap: wrap; }
.quorum__dots span { width: 14px; height: 14px; border-radius: 50%; background: var(--qg-surface-sunken); }
.quorum__dots span.on { background: var(--team); }

.act-card { border-top: 3px solid var(--team, var(--qg-rule)); }
.act-card .qg-act { color: var(--qg-pg-gold-text); letter-spacing: .14em; text-transform: uppercase; }
:root[data-theme="dark"] .act-card .qg-act { color: var(--qg-pg-gold-on-navy); }

@media (max-width: 1100px) { .dash-two { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  .stair { flex-direction: column; align-items: stretch; }
  .stair__sep { display: none; }
  .stair__step { margin-top: 0; }
  .vote { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .quorum { grid-template-columns: 6.5rem 1fr auto; }
}

/* ---------- планшет комиссии: всё на одном экране, без прокрутки ----------
   Страница занимает ровно высоту экрана; лист и боковая колонка делят её, строки критериев
   сжимаются по высоте. Альбом — лист слева, команда и вопросы справа; портрет — лист сверху,
   команда и вопросы снизу рядом. На телефоне (уже 700 px) — обычная прокрутка. */
.tab-body { height: 100vh; height: 100dvh; overflow: hidden; display: flex; flex-direction: column; }
/* шапка кабинета на страницах «в одно окно» (планшет, дашборд): в одну строку при любой ширине */
.tab-body .qg-top, .dash-body .qg-top { flex: none; padding-block: 6px; flex-wrap: nowrap; }
.tab-body .qg-nav, .dash-body .qg-nav { flex-wrap: nowrap; }
.tab-body .qg-nav a, .dash-body .qg-nav a { white-space: nowrap; }
/* пунктов меню стало больше (документы, история отбора): на узком планшете шапка не должна расти в высоту */
@media (max-width: 1250px) {
  .tab-body .qg-top__title, .tab-body .qg-top__user { display: none; }
}
@media (max-width: 1100px) {
  .tab-body .qg-top__title, .dash-body .qg-top__title { display: none; }
  .tab-body .qg-nav a, .dash-body .qg-nav a { padding-inline: 6px; letter-spacing: .08em; }
  .tab-body .qg-top, .dash-body .qg-top { gap: 10px; }
  .dash-body .qg-top__user { display: none; }
}
.tab-page {
  flex: 1; min-height: 0; width: 100%; max-width: 1600px; margin: 0 auto;
  display: flex; flex-direction: column; gap: 10px; padding: 10px 14px 12px;
}
.tab-page > .qg-banner { flex: none; padding-block: 6px; }
.tab-summary { flex: 1; min-height: 0; overflow-y: auto; }

/* верхняя строка: текущий акт с таймером и пять актов */
.tab-bar { flex: none; display: flex; gap: 10px; align-items: stretch; }
.tab-now {
  flex: 0 1 40%; min-width: 0; display: flex; gap: 12px; align-items: center; justify-content: space-between;
  padding: 8px 16px; border-radius: var(--qg-radius-lg); background: var(--qg-pg-navy-950); color: var(--qg-top-text);
  border-left: 5px solid var(--qg-pg-gold-line);
}
.tab-now--live { border-left-color: var(--team-nv); }
.tab-now__who { min-width: 0; flex: 1; }
.tab-now__logo { height: 42px; width: auto; flex: none; margin: -4px 0; }
.tab-now__act { font-size: 10px; text-transform: uppercase; letter-spacing: .18em; font-weight: 600; color: var(--qg-pg-gold-on-navy); }
.tab-now__title { font-size: 15px; font-weight: var(--qg-font-weight-bold); color: var(--qg-top-text); line-height: 1.3; }
.tab-now__clock { display: grid; justify-items: end; flex: none; }
.tab-now__stage { font-size: 10px; text-transform: uppercase; letter-spacing: .14em; color: var(--qg-top-muted); }
.tab-now .qg-timer-mini { font-size: 1.75rem; line-height: 1; color: var(--qg-pg-gold-on-navy); }
.tab-now .qg-timer-mini--warn { color: var(--qg-pg-warn-on-navy); }
.tab-now .qg-timer-mini--bad { color: var(--qg-pg-bad-on-navy); }

.tab-acts { flex: 1; min-width: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.tab-acts button {
  width: auto; min-height: 48px; padding: 6px 8px; gap: 7px; grid-template-columns: auto minmax(0, 1fr);
  border-top: 3px solid var(--team); border-radius: var(--qg-radius);
}
.tab-acts button[aria-current="true"] { background: var(--team-bg); border-color: var(--team); box-shadow: 0 0 0 1px var(--team); }
:root[data-theme="dark"] .tab-acts button[aria-current="true"] { background: var(--qg-pg-navy-700); }
.tab-acts__no {
  display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%;
  background: var(--team-ink); color: var(--qg-pg-cream); font-weight: var(--qg-font-weight-bold); font-size: 12px;
}
.tab-acts__team { display: grid; line-height: 1.2; min-width: 0; }
.tab-acts__team b { font-size: 13px; color: var(--qg-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tab-acts__team span { font-size: 10px; color: var(--qg-text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tab-acts__team .is-ok { color: var(--qg-ok); font-weight: 600; }
.tab-acts__team .is-warn { color: var(--qg-warn); font-weight: 600; }
.tab-switch { margin: 0; border-bottom: 0; flex: none; align-self: center; }

.tab-grid { flex: 1; min-height: 0; display: grid; gap: 12px; grid-template-columns: minmax(0, 1.75fr) minmax(300px, 1fr); }

/* ---------- лист ---------- */
.tab-sheet {
  min-height: 0; padding: 12px 16px 10px; border-top: 4px solid var(--team, var(--qg-rule));
  display: grid; gap: 8px 14px; grid-template-columns: minmax(0, 1fr) minmax(190px, 28%);
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  grid-template-areas: "head head" "banners banners" "crits crits" "foot note";
}
.tab-sheet > .qg-empty { grid-area: head; }
.tab-sheet__head { grid-area: head; display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.tab-sheet__act { font-size: 10px; text-transform: uppercase; letter-spacing: .16em; font-weight: 600; color: var(--qg-pg-gold-text); margin-right: 10px; white-space: nowrap; }
:root[data-theme="dark"] .tab-sheet__act { color: var(--qg-pg-gold-on-navy); }
.tab-sheet__title { min-width: 0; font-size: 15px; font-weight: var(--qg-font-weight-bold); color: var(--qg-text-accent); line-height: 1.3; }
.tab-member__head .tab-sheet__act { display: block; }
.tab-help { flex: none; min-height: 34px; font-size: 12px; }
.tab-banners { grid-area: banners; display: grid; gap: 4px; }
.tab-banners .qg-banner { padding: 5px 10px; font-size: 12px; }

.tab-crits { grid-area: crits; min-height: 0; display: grid; grid-template-rows: repeat(5, minmax(0, 1fr)); gap: 6px; }
.tab-crit {
  min-height: 0; display: grid; grid-template-columns: minmax(150px, 27%) minmax(0, 1fr); gap: 4px 14px; align-items: center;
  padding: 6px 12px; border: 1px solid var(--qg-border); border-radius: var(--qg-radius-lg); background: var(--qg-surface);
  transition: border-color .2s, box-shadow .2s;
}
.tab-crit.is-set { border-color: var(--heat-ink); box-shadow: inset 4px 0 0 var(--heat); }
.tab-crit__head { display: flex; gap: 10px; align-items: center; min-width: 0; }
.tab-crit__code {
  display: grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%;
  background: var(--qg-accent-quiet); color: var(--qg-text-accent); font-weight: var(--qg-font-weight-bold); font-size: 12px;
}
.tab-crit.is-set .tab-crit__code { background: var(--heat); color: var(--qg-heat-text); }
.tab-crit__name { display: grid; gap: 1px; min-width: 0; }
.tab-crit__name .qg-crit__title { font-size: 13px; line-height: 1.25; }
.tab-crit__weight { font-size: 10px; color: var(--qg-text-muted); text-transform: uppercase; letter-spacing: .1em; }
.tab-crit__body { display: grid; gap: 4px; min-width: 0; }
.tab-crit__ind { font-size: 11.5px; line-height: 1.3; color: var(--qg-text-secondary); }
.tab-crit__ind.is-empty { color: var(--qg-text-subtle); font-style: italic; }
.tab-crit__ind b { color: var(--qg-text-accent); font-style: normal; }

/* уровни тепловой шкалы: цвет ступени и её «чернила» */
.heat-0 { --heat: var(--qg-heat-0); --heat-ink: var(--qg-heat-0-ink); }
.heat-1 { --heat: var(--qg-heat-1); --heat-ink: var(--qg-heat-1-ink); }
.heat-2 { --heat: var(--qg-heat-2); --heat-ink: var(--qg-heat-2-ink); }
.heat-3 { --heat: var(--qg-heat-3); --heat-ink: var(--qg-heat-3-ink); }
.heat-4 { --heat: var(--qg-heat-4); --heat-ink: var(--qg-heat-4-ink); }
.heat-5 { --heat: var(--qg-heat-5); --heat-ink: var(--qg-heat-5-ink); }

/* ползунок: полоса из шести ступеней, заливка до балла цветом уровня, круглая ручка с цифрой */
.hs { position: relative; touch-action: none; user-select: none; -webkit-user-select: none; cursor: pointer; }
.hs.is-off { cursor: default; }
.qg-seg.hs__cells { display: flex; gap: 0; border-radius: var(--qg-radius); overflow: hidden; border: 1px solid var(--qg-border-strong); }
.qg-seg .hs__cell {
  flex: 1 1 0; min-width: 0; min-height: 44px; border: 0; border-radius: 0; padding: 0 2px;
  display: grid; align-content: center; justify-items: center; gap: 0; line-height: 1.1;
  background: var(--qg-surface-sunken); color: var(--qg-text-muted); font-size: 14px; font-weight: var(--qg-font-weight-semibold);
  transition: background-color .12s; cursor: inherit;
}
.qg-seg .hs__cell + .hs__cell { box-shadow: inset 1px 0 0 var(--qg-border); }
.qg-seg .hs__cell small { font-size: 9.5px; font-weight: 500; letter-spacing: -.01em; white-space: nowrap; }
.qg-seg .hs__cell.is-fill { background: var(--heat); color: var(--qg-heat-text); box-shadow: none; }
.qg-seg .hs__cell[aria-pressed="true"] { background: var(--heat); border: 0; color: var(--qg-heat-text); }
.qg-seg .hs__cell:disabled { opacity: 1; cursor: default; }
.hs.is-off .hs__cells { opacity: .72; }
.hs__knob {
  position: absolute; top: 50%; left: var(--x, 0%); width: 46px; height: 46px; margin: -23px 0 0 -23px; border-radius: 50%;
  display: grid; place-items: center; pointer-events: none;
  background: var(--qg-surface); border: 3px solid var(--heat-ink); color: var(--heat-ink);
  font-size: 20px; font-weight: var(--qg-font-weight-bold); font-variant-numeric: tabular-nums;
  box-shadow: 0 2px 8px rgb(19 42 79 / 25%); transition: left .12s ease-out, transform .12s;
}
.hs.is-drag .hs__knob { transform: scale(1.12); transition: transform .12s; }
:root[data-theme="dark"] .hs__knob { background: var(--qg-pg-navy-700); }

/* ---------- итог: тепловая полоса по весам, комментарий, подтверждение ---------- */
.tab-foot { grid-area: foot; display: flex; gap: 14px; align-items: center; min-width: 0; padding-top: 8px; border-top: 1px solid var(--qg-border); }
.tab-foot__note { grid-area: note; display: flex; padding-top: 8px; border-top: 1px solid var(--qg-border); }
.tab-comment { min-height: 0; height: 100%; resize: none; font-size: 12px; padding: 6px 8px; }
.tab-total { display: grid; justify-items: center; flex: none; min-width: 72px; }
.tab-total .qg-total { font-size: 2.3rem; color: var(--qg-text-accent); }
.tab-total__of { font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: var(--qg-text-muted); }
.tab-heat { flex: 1; min-width: 0; display: grid; gap: 4px; }
.tab-heat__segs { display: flex; gap: 3px; }
.tab-heat__seg {
  flex: var(--wt, 1) 1 0; min-width: 26px; display: grid; gap: 3px; padding: 0; border: 0; background: transparent;
  cursor: pointer; text-align: center;
}
.tab-heat__bar { position: relative; display: block; height: 22px; border-radius: 4px; background: var(--qg-surface-sunken); overflow: hidden; box-shadow: inset 0 0 0 1px var(--qg-border); }
.tab-heat__bar i { display: block; height: 100%; width: var(--w, 0%); background: var(--heat, transparent); transition: width .2s; }
.tab-heat__bar b { position: absolute; inset: 0; display: grid; place-items: center; font-size: 12px; color: var(--qg-heat-text); font-variant-numeric: tabular-nums; }
.tab-heat__lbl { font-size: 10px; color: var(--qg-text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.tab-heat__status { font-size: 11px; color: var(--qg-text-muted); }
.tab-foot__act { display: grid; gap: 4px; justify-items: stretch; flex: none; }
.tab-foot__act .qg-btn--primary { min-height: 52px; padding-inline: 22px; font-size: 15px; }
.tab-link { border: 0; background: transparent; color: var(--qg-text-muted); font-size: 12px; cursor: pointer; min-height: 28px; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- боковая колонка ---------- */
.tab-side { min-height: 0; display: grid; gap: 12px; grid-template-rows: auto minmax(0, 1fr); }
.tab-side .qg-card { padding: 12px 14px; min-height: 0; }
.tab-side__head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; flex-wrap: wrap; }
.tab-side__title { font-size: 12px; text-transform: uppercase; letter-spacing: .14em; font-weight: var(--qg-font-weight-bold); color: var(--qg-text-accent); }
.tab-side__head .small { font-size: 11px; }
.tab-team { border-top: 4px solid var(--team); }
.tab-avatars { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; grid-template-columns: repeat(auto-fill, minmax(66px, 1fr)); }
.tab-av {
  width: 100%; display: grid; justify-items: center; gap: 3px; padding: 6px 2px; cursor: pointer; text-align: center;
  border: 1px solid transparent; border-radius: var(--qg-radius); background: transparent; color: var(--qg-text);
  transition: background-color .15s, transform .1s;
}
.tab-av:hover, .tab-av:focus-visible { background: var(--qg-surface-sunken); border-color: var(--qg-border); }
.tab-av:active { transform: scale(.96); }
.tab-av__pic {
  display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%;
  background: var(--team-bg); color: var(--team-ink); border: 2px solid var(--team);
  font-size: 16px; font-weight: var(--qg-font-weight-bold); letter-spacing: .02em;
}
:root[data-theme="dark"] .tab-av__pic { background: var(--qg-pg-navy-700); color: var(--team-nv); border-color: var(--team-nv); }
.tab-av--lead .tab-av__pic, .tab-av__pic.is-lead { box-shadow: 0 0 0 2px var(--qg-surface), 0 0 0 4px var(--qg-pg-gold-line); }
/* фото участника: круглый портрет (своё золотое кольцо уже на снимке) */
.tab-av__pic.has-photo { background: none; border: 0; padding: 0; overflow: hidden; }
.tab-av__pic.has-photo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; display: block; }
.tab-av__pic--lg.has-photo { width: 120px; height: 120px; }
.tab-team__name { display: flex; align-items: center; gap: 8px; min-width: 0; }
.tab-team__emblem { flex: none; width: 36px; height: 36px; margin: -9px 0; padding: 0; border: 0; background: none; cursor: pointer; }
.tab-team__emblem img { width: 100%; height: 100%; object-fit: contain; display: block; }
.tab-team__big { width: min(440px, 78vw, 70vh); height: auto; display: block; margin: 0 auto; }
.tab-av__name { font-size: 11px; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }

.tab-qs { display: flex; flex-direction: column; }
.tab-seg-tabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; padding: 3px; border-radius: var(--qg-radius); background: var(--qg-surface-sunken); margin-bottom: 8px; flex: none; }
.tab-seg-tabs button {
  min-height: 36px; border: 0; border-radius: calc(var(--qg-radius) - 2px); background: transparent; cursor: pointer;
  display: grid; align-content: center; line-height: 1.15;
  font-size: 11px; font-weight: 600; color: var(--qg-text-secondary); padding: 2px 3px;
}
.tab-seg-tabs small { font-size: 10px; font-weight: 500; color: var(--qg-text-muted); font-variant-numeric: tabular-nums; }
.tab-seg-tabs button[aria-selected="true"] { background: var(--qg-surface); color: var(--qg-text-accent); box-shadow: 0 1px 3px rgb(19 42 79 / 15%); }
.tab-qs__panel { flex: 1; min-height: 0; overflow-y: auto; }   /* запас на случай очень длинных вопросов */
.tab-qs__group { font-size: 10px; text-transform: uppercase; letter-spacing: .14em; font-weight: 600; color: var(--qg-pg-gold-text); margin: 6px 0 4px; }
.tab-qs__group:first-child { margin-top: 0; }
:root[data-theme="dark"] .tab-qs__group { color: var(--qg-pg-gold-on-navy); }
.tab-qlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; }
.tab-q {
  width: 100%; display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 8px; align-items: start; text-align: left;
  padding: 7px 10px; min-height: 44px; cursor: pointer; font-size: 12.5px; line-height: 1.35; color: var(--qg-text);
  border: 1px solid var(--qg-border); border-radius: var(--qg-radius); background: var(--qg-surface);
  transition: background-color .15s;
}
.tab-q__mark { width: 18px; height: 18px; margin-top: 1px; border-radius: 50%; border: 2px solid var(--qg-border-strong); display: grid; place-items: center; }
.tab-q[aria-pressed="true"] { background: var(--qg-surface-sunken); }
.tab-q[aria-pressed="true"] .tab-q__text { color: var(--qg-text-muted); }
.tab-q[aria-pressed="true"] .tab-q__mark { background: var(--qg-ok); border-color: var(--qg-ok); }
.tab-q[aria-pressed="true"] .tab-q__mark::after { content: "\2713"; color: var(--qg-text-inverse); font-size: 11px; font-weight: 700; line-height: 1; }
.tab-q__crit {
  font-size: 10px; font-weight: 700; padding: 2px 6px; border-radius: var(--qg-radius-full);
  background: var(--qg-accent-quiet); color: var(--qg-text-accent); font-variant-numeric: tabular-nums;
}
.tab-facts { display: grid; gap: 2px; margin: 0; }
.tab-facts dt { font-size: 10px; text-transform: uppercase; letter-spacing: .12em; color: var(--qg-pg-gold-text); font-weight: 600; margin-top: 8px; }
.tab-facts dt:first-child { margin-top: 0; }
:root[data-theme="dark"] .tab-facts dt { color: var(--qg-pg-gold-on-navy); }
.tab-facts dd { margin: 0; font-size: 12.5px; line-height: 1.4; }

/* ---------- окна: профиль участника, правила шкалы ---------- */
dialog.tab-member-dlg { border-top: 6px solid var(--team); }
.tab-member { display: grid; gap: var(--qg-gap-md); }
.tab-member__head { display: flex; gap: 16px; align-items: center; }
.tab-member__head h2 { margin: 2px 0 0; color: var(--qg-text-accent); }
.tab-av__pic--lg { width: 84px; height: 84px; font-size: 30px; flex: none; }
.tab-member__dl { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: 8px 12px; margin: 0; }
.tab-member__dl dt { font-size: var(--qg-font-size-caption); color: var(--qg-text-muted); }
.tab-member__dl dd { margin: 0; }
/* карьера в программе: «при зачислении → сейчас», повышение — золотом */
.tab-member__career { display: grid; gap: 6px; }
.tab-member__career .tab-qs__group { margin: 0; }
.tab-career { border: 1px solid var(--qg-border); border-left: 4px solid var(--qg-border-strong); border-radius: var(--qg-radius); padding: 8px 12px; display: grid; gap: 4px; }
.tab-career--promotion { border-left-color: var(--qg-pg-gold-line); background: var(--qg-accent-quiet); }
.tab-career__label { font-weight: 700; font-size: 13px; color: var(--qg-text-accent); }
.tab-career--promotion .tab-career__label b { color: var(--qg-pg-gold-text); }
:root[data-theme="dark"] .tab-career--promotion .tab-career__label b { color: var(--qg-pg-gold-on-navy); }
.tab-career dl { display: grid; grid-template-columns: 11rem minmax(0, 1fr); gap: 2px 10px; margin: 0; font-size: 13px; }
.tab-career dt { color: var(--qg-text-muted); font-size: 12px; }
.tab-career dd { margin: 0; }
/* стрелка повышения у аватара */
.tab-av { position: relative; }
.tab-av__up {
  position: absolute; top: 2px; right: calc(50% - 28px); width: 18px; height: 18px; border-radius: 50%;
  display: grid; place-items: center; font-size: 12px; font-weight: 700; line-height: 1;
  background: var(--qg-pg-gold-line); color: var(--qg-pg-navy-950); box-shadow: 0 0 0 2px var(--qg-surface);
}
.tab-member__about { background: var(--qg-surface-sunken); border-radius: var(--qg-radius); padding: 12px 14px; }
.tab-member__about .tab-qs__group { margin-top: 0; }
.tab-steps { list-style: none; margin: 0 0 12px; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-radius: var(--qg-radius); overflow: hidden; }
.tab-steps li { display: grid; justify-items: center; padding: 8px 2px; background: var(--heat); color: var(--qg-heat-text); font-size: 11px; text-align: center; }
.tab-steps b { font-size: 18px; }

/* ---------- портрет: лист сверху, команда и вопросы снизу рядом ---------- */
@media (orientation: portrait) and (min-width: 700px) {
  .tab-bar { flex-direction: column; gap: 6px; }
  .tab-now { flex: none; padding-block: 6px; }
  .tab-now .qg-timer-mini { font-size: 1.5rem; }
  .tab-acts { flex: none; }
  .tab-acts button { padding-inline: 6px; gap: 5px; }
  .tab-grid { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .tab-crits { grid-template-rows: repeat(5, auto); }
  .tab-side { grid-template-rows: minmax(0, 1fr); grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); }
}
/* низкий экран в альбоме (iPad mini, 10,2″): подсказка уровня — в одну строку меньшим шрифтом */
@media (orientation: landscape) and (max-height: 800px), (orientation: portrait) and (max-height: 1100px) {
  .tab-crit__ind { font-size: 11px; line-height: 1.25; }
  .qg-seg .hs__cell { min-height: 40px; }
  .hs__knob { width: 42px; height: 42px; margin: -21px 0 0 -21px; font-size: 18px; }
  .tab-crit { padding-block: 4px; }
  .tab-crits { gap: 5px; }
  .tab-sheet { padding-top: 10px; row-gap: 6px; }
  .tab-q { min-height: 40px; padding-block: 5px; font-size: 12px; }
  .tab-av__pic { width: 40px; height: 40px; font-size: 14px; }
  .tab-page { gap: 8px; padding-top: 8px; }
}
/* компактный режим для небольших iPad (9,7″, mini): плотнее строки, чтобы всё оставалось на экране */
@media (orientation: landscape) and (max-height: 800px) {
  .tab-grid { grid-template-columns: minmax(0, 1.75fr) minmax(270px, 1fr); }
  .tab-crit { grid-template-columns: minmax(166px, 25.5%) minmax(0, 1fr); gap: 2px 10px; }   /* +16 px колонке названия: вес и «Подсказка» в одну строку */
  .tab-crit__name .qg-crit__title { font-size: 12px; }
  .tab-crit__ind.is-empty { font-size: 10.5px; line-height: 1.2; }
  .tab-q { padding-block: 5px; line-height: 1.3; }
  .tab-qlist { gap: 4px; }
  .qg-seg .hs__cell small { font-size: 8.6px; letter-spacing: -.02em; }
  .tab-sheet { grid-template-columns: minmax(0, 1fr) minmax(150px, 24%); column-gap: 12px; }
  .tab-foot { gap: 10px; }
  .tab-foot__act .qg-btn--primary { min-height: 46px; padding-inline: 14px; font-size: 13px; }
}
@media (orientation: portrait) and (max-height: 1200px) {
  .tab-body .qg-top { padding-block: 3px; }
  .tab-page { padding-bottom: 8px; }
  .tab-acts button { min-height: 42px; }
  .qg-seg .hs__cell { min-height: 36px; }
  .qg-seg .hs__cell small { font-size: 9px; }
  .hs__knob { width: 38px; height: 38px; margin: -19px 0 0 -19px; font-size: 16px; border-width: 2px; }
  .tab-crit { padding: 3px 10px; gap: 2px 12px; grid-template-columns: minmax(150px, 27%) minmax(0, 1fr); }
  .tab-crit__name .qg-crit__title { font-size: 12px; }
  .tab-crit__ind { font-size: 10.5px; }
  .tab-foot, .tab-foot__note { padding-top: 6px; }
  .tab-total .qg-total { font-size: 1.9rem; }
  .tab-foot__act .qg-btn--primary { min-height: 46px; }
  .tab-side { gap: 8px; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); }
  .tab-side .qg-card { padding: 8px 10px; }
  .tab-side__head { margin-bottom: 4px; }
  .tab-avatars { grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); }
  .tab-av { padding: 3px 1px; }
  .tab-av__pic { width: 36px; height: 36px; font-size: 13px; }
  .tab-av__name { font-size: 10px; }
  .tab-seg-tabs { margin-bottom: 5px; }
  .tab-seg-tabs button { min-height: 32px; }
  .tab-q { min-height: 34px; padding: 4px 8px; font-size: 11.5px; line-height: 1.25; }
  .tab-qlist { gap: 4px; }
  .tab-facts dd { font-size: 11.5px; line-height: 1.35; }
}
/* телефон: обычная прокрутка */
@media (max-width: 699px) {
  .tab-body { height: auto; overflow: visible; display: block; }
  .tab-bar, .tab-grid, .tab-side { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: none; }
  .tab-acts { grid-template-columns: repeat(5, minmax(7rem, 1fr)); overflow-x: auto; }
  .tab-sheet { grid-template-columns: minmax(0, 1fr); grid-template-areas: "head" "banners" "crits" "foot" "note"; }
  .tab-crits { grid-template-rows: none; }
  .tab-crit { grid-template-columns: minmax(0, 1fr); }
  .tab-foot { flex-wrap: wrap; }
  .tab-member__dl { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- дашборд в одно окно: шапка с цифрами, строка вкладок, выбранный раздел ----------
   Высота страницы — ровно экран. Размеры шапки привязаны к высоте окна (vh), чтобы и на ноутбуке
   1366×768, и на экране 1920×1080 раздел под вкладками получал достаточно места. На телефоне —
   обычная прокрутка. */
.dash-body { height: 100vh; height: 100dvh; overflow: hidden; display: flex; flex-direction: column; background: var(--qg-bg); }
.dash-body .qg-top { flex: none; }
.dash-one { flex: 1; min-height: 0; display: flex; flex-direction: column; }

.dash-body .hero { flex: none; --orn: clamp(44px, 6vw, 120px); }
.dash-body .hero__inner { padding: clamp(10px, 2.2vh, 30px) calc(var(--orn) + clamp(16px, 2.4vw, 48px)) clamp(8px, 1.6vh, 22px) clamp(16px, 3.4vw, 72px); }
.dash-body .hero__top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: clamp(14px, 2.4vw, 44px); }
.dash-body .hero__agyn { height: clamp(36px, 7.4vh, 96px); }
.dash-body .hero__eyebrow { font-size: clamp(10px, 1.4vh, 15px); }
.dash-body .hero__title { margin: 0; font-size: clamp(22px, min(3.6vw, 5.2vh), 64px); line-height: 1.04; }
.dash-body .hero__when { margin-top: clamp(2px, .6vh, 8px); font-size: clamp(11px, 1.5vh, 15px); }
.dash-body .hero__logo { height: clamp(30px, 6vh, 74px); }
.dash-body .hero__kpis { margin-top: clamp(6px, 1.8vh, 26px); }
.dash-body .hero__num { font-size: clamp(32px, min(6.2vw, 9.4vh), 120px); text-shadow: 0 4px 18px rgb(0 8 24 / 70%); }
.dash-body .hero__lbl { margin-top: clamp(2px, .8vh, 10px); font-size: clamp(12px, min(1.45vw, 2.2vh), 24px); text-shadow: 0 1px 2px rgb(0 8 24 / 90%), 0 2px 12px rgb(0 8 24 / 90%); }
.dash-body .hero__foot { margin: clamp(6px, 1.4vh, 18px) 0 0; padding: 0; text-align: left; }
.dash-body .hero__caption { font-size: clamp(12px, 1.8vh, 20px); text-shadow: 0 2px 10px rgb(0 8 24 / 80%); }
.dash-body .hero__src { font-size: 10px; margin-top: 2px; }
/* иллюстрация — за цифрами, у нижнего края шапки; верх и левый край растворяются в небе */
.dash-body .hero__art {
  position: absolute; z-index: 1; left: 0; right: var(--orn); bottom: 0; height: 68%; margin: 0;
  background-position: center 34%; opacity: .5;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, black 46%, black 100%);
  mask-image: linear-gradient(to bottom, transparent 0, black 46%, black 100%);
}

/* строка вкладок: тёмно-синяя, как шапка, активная — золотом */
.dash-tabbar {
  flex: none; display: flex; align-items: center; gap: 16px; padding: 0 clamp(12px, 3vw, 56px);
  background: var(--qg-pg-navy-950); border-top: 1px solid var(--qg-pg-navy-line); border-bottom: 2px solid var(--qg-pg-gold-line);
}
.dash-tabs { display: flex; gap: 2px; flex: 1; min-width: 0; overflow-x: auto; scrollbar-width: none; }
.dash-tabs button {
  flex: none; min-height: clamp(38px, 5.4vh, 50px); padding: 0 clamp(10px, 1.3vw, 20px); border: 0; background: transparent; cursor: pointer;
  font: inherit; font-size: clamp(11px, 1.6vh, 13px); font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--qg-top-muted); border-bottom: 3px solid transparent; margin-bottom: -2px; white-space: nowrap;
}
.dash-tabs button:hover { color: var(--qg-top-text); }
@media (max-width: 1250px) { .dash-tabs button { letter-spacing: .05em; padding-inline: clamp(6px, .9vw, 12px); font-size: 11px; } }
@media (max-width: 900px) { .dash-tabs { flex-wrap: wrap; overflow: visible; } .dash-tabs button { min-height: 36px; } }
.dash-tabs button[aria-selected="true"] { color: var(--qg-pg-gold-on-navy); border-bottom-color: var(--qg-pg-gold-on-navy); }
.dash-tabs button:focus-visible { outline: 2px solid var(--qg-pg-gold-on-navy); outline-offset: -4px; }
@media (max-width: 1700px) { .dash-tabbar__motto { display: none; } }
.dash-tabbar__motto { flex: none; font-size: 11px; letter-spacing: .24em; text-transform: uppercase; font-weight: 600; color: var(--qg-pg-gold-on-navy); white-space: nowrap; }

/* раздел под вкладками занимает остаток окна */
.dash-panels { flex: 1; min-height: 0; position: relative; overflow: hidden; }
.dash-panel { display: none; height: 100%; overflow: auto; padding: clamp(10px, 2vh, 24px) clamp(12px, 3vw, 56px); }
.dash-panel.is-active { display: grid; align-content: start; gap: clamp(8px, 1.4vh, 16px); }
.dash-panel > * { width: 100%; max-width: 1500px; margin-inline: auto; }
.dash-card { display: grid; gap: clamp(8px, 1.6vh, 18px); }
@media (prefers-reduced-motion: no-preference) {
  .dash-panel.is-active { animation: qg-panel-in .28s ease-out; }
  @keyframes qg-panel-in { from { opacity: 0; } to { opacity: 1; } }
  .dash-panel.is-arrived > .qg-card, .dash-panel.is-arrived .act-detail { animation: qg-arrive 1.8s ease-out; }
}

/* «Путь вечера» — во вкладке: ступени ниже, лестница сохраняет подъём */
.dash-panel.dash-band { margin: 0; padding: 0; overflow: hidden; }
.dash-panel.dash-band.is-active { display: block; }
.dash-panel .dash-band__inner { height: 100%; padding: clamp(10px, 2vh, 28px) clamp(12px, 3vw, 56px); gap: clamp(6px, 1.4vh, 18px); align-content: center;
  grid-template-columns: minmax(0, 1fr) auto; }
.dash-panel .dash-band__inner .stair { grid-column: 1 / -1; grid-row: 2; }
.dash-panel .dash-band__sub { grid-row: 1; }
.dash-panel .dash-band__note { grid-row: 1; grid-column: 2; text-align: right; align-self: center; }
.dash-panel .stair__step { padding: clamp(8px, 1.5vh, 16px) clamp(10px, 1vw, 16px); gap: clamp(3px, .7vh, 8px); }
.dash-panel .stair__title, .dash-panel .stair__kk { font-size: clamp(11px, 1.5vh, 12px); line-height: 1.3; }
.dash-panel .stair__team { font-size: clamp(11px, 1.6vh, 13px); }
.dash-panel .stair__step--1 { margin-top: clamp(0px, 4vh - 20px, 56px); }
.dash-panel .stair__step--2 { margin-top: clamp(0px, 3vh - 15px, 42px); }
.dash-panel .stair__step--3 { margin-top: clamp(0px, 2vh - 10px, 28px); }
.dash-panel .stair__step--4 { margin-top: clamp(0px, 1vh - 5px, 14px); }
.dash-panel .stair__q { font-size: clamp(13px, 2vh, 17px); }

/* орнамент полосы — по высоте вкладки, чтобы не выходить за её край */
.dash-panel.dash-band::before { top: 0; height: 100%; }
.dash-panel.dash-band::after { bottom: 0; height: 100%; }

/* «Пять проектов»: карточки в ряд + подробности выбранной */
.dash-panel .dash-acts { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(8px, 1vw, 14px); }
.dash-panel .act-card { cursor: pointer; padding: clamp(10px, 1.6vh, 16px); gap: 4px; transition: box-shadow .2s, transform .2s; }
.dash-panel .act-card dl, .dash-panel .act-card .act-card__q { display: none; }
.dash-panel .act-card .qg-card__title { font-size: clamp(12px, 1.8vh, 15px); line-height: 1.3; }
.dash-panel .act-card .row { flex-wrap: wrap; gap: 4px; }
.dash-panel .act-card:hover { transform: translateY(-2px); }
.dash-panel .act-card[aria-pressed="true"] { box-shadow: 0 0 0 2px var(--team), var(--qg-shadow-card); }
.dash-panel .act-card:focus-visible { outline: 2px solid var(--qg-focus); outline-offset: 2px; }
.act-detail { border-top: 3px solid var(--team, var(--qg-rule)); display: grid; gap: 4px; padding: clamp(10px, 1.8vh, 18px) clamp(14px, 1.6vw, 22px); }
.act-detail .qg-act { color: var(--qg-pg-gold-text); letter-spacing: .14em; text-transform: uppercase; }
:root[data-theme="dark"] .act-detail .qg-act { color: var(--qg-pg-gold-on-navy); }
.act-detail dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 8px clamp(12px, 2vw, 32px); margin: 6px 0 0; }
.act-detail dl > div { display: grid; gap: 2px; align-content: start; }
.act-detail dt { font-size: var(--qg-font-size-caption); color: var(--qg-text-muted); }
.act-detail dd { margin: 0; font-size: clamp(12px, 1.8vh, 14px); line-height: 1.4; }

.act-detail__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 2px; }
.act-detail__q { font-style: italic; color: var(--qg-text-secondary); font-size: clamp(12px, 1.8vh, 14px); }
/* невысокое или узкое окно: слева список актов, справа подробности выбранного */
@media (max-height: 940px) and (min-width: 761px), (max-width: 1250px) and (min-width: 761px) {
  #projects.is-active { grid-template-columns: minmax(200px, 30%) minmax(0, 1fr); align-content: stretch; }
  #projects > .small { grid-column: 1 / -1; }
  #projects > * { max-width: none; }
  .dash-panel .dash-acts { grid-template-columns: minmax(0, 1fr); align-content: start; gap: 6px; }
  .dash-panel .act-card { padding: 7px 12px; gap: 4px 8px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
  .dash-panel .act-card .qg-act { margin: 0; }
  .dash-panel .act-card .qg-card__title, .dash-panel .act-card .row > :not(.team-chip) { display: none; }
  .act-detail { align-content: start; align-self: start; }
  .act-detail dl { gap: 6px 18px; }
  #projects > .small { display: none; }        /* подсказка про касание — лишняя строка на низком экране */
  .act-detail { padding-block: 10px; gap: 2px; }
  .act-detail dd { font-size: 12.5px; line-height: 1.35; }
}

/* «Команды» — две колонки */
.dash-teams { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px clamp(16px, 3vw, 48px); }

@media (max-width: 760px) {
  .dash-body { height: auto; overflow: visible; display: block; }
  .dash-panel { height: auto; overflow: visible; }
  .dash-tabbar__motto { display: none; }
  .dash-body .hero__top { grid-template-columns: minmax(0, 1fr); }
  .dash-panel .dash-acts, .act-detail dl { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- дашборд · участники: сетка аватаров с ФИО и компанией ---------- */
.dash-panel .dash-people { padding: clamp(8px, 1.6vh, 22px) clamp(10px, 1.6vw, 26px); gap: clamp(4px, 1vh, 12px); }
.dash-people__head { display: flex; justify-content: space-between; align-items: baseline; gap: 6px 16px; flex-wrap: wrap; }
.dash-people__head .qg-card__note { margin: 0; }
.dash-people__legend { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--qg-text-secondary); }
.dash-people__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: clamp(4px, .8vh, 10px) 6px;
  grid-template-columns: repeat(auto-fill, minmax(clamp(104px, 9vw, 136px), 1fr)); }
.dash-person { align-content: start; gap: 4px; padding: clamp(4px, .8vh, 8px) 4px; height: 100%; }
.dash-person .tab-av__pic { width: clamp(46px, 7.2vh, 76px); height: clamp(46px, 7.2vh, 76px); font-size: clamp(15px, 2.2vh, 22px); }
.dash-person .tab-av__up { top: clamp(2px, .5vh, 6px); right: calc(50% - clamp(30px, 4.4vh, 44px)); }
.dash-person__name { display: grid; font-size: clamp(11px, 1.55vh, 13px); line-height: 1.2; }
.dash-person__name b { color: var(--qg-text-accent); font-weight: 700; }
.dash-person__org { font-size: clamp(10px, 1.35vh, 11.5px); line-height: 1.2; color: var(--qg-text-muted);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* на широком экране — два ряда (26 участников — по 13), на планшете — три; число колонок задаёт dashboard.js */
@media (min-width: 1250px) {
  .dash-people__grid { grid-template-columns: repeat(var(--cols2, 13), minmax(0, 1fr)); gap: clamp(4px, 1vh, 14px) 4px; }
  .dash-person { padding: 4px 2px; }
  .dash-person .tab-av__pic { width: clamp(44px, 7.6vh, 84px); height: clamp(44px, 7.6vh, 84px); }
  .dash-person .tab-av__up { right: calc(50% - clamp(30px, 4.8vh, 48px)); }
  .dash-person__name { font-size: clamp(10.5px, 1.5vh, 13px); }
  .dash-person__name .is-long { font-size: .86em; letter-spacing: -.02em; }
  .dash-person__org { font-size: clamp(9.5px, 1.3vh, 11.5px); }
}
/* планшет в альбомной ориентации — 9 колонок, три ряда: аватар меньше, компания в одну строку (полностью — в профиле) */
@media (min-width: 900px) and (max-width: 1249px) {
  .dash-people__grid { grid-template-columns: repeat(var(--cols3, 9), minmax(0, 1fr)); gap: 4px; }
  .dash-person { padding: 3px 2px; gap: 3px; }
  .dash-panel#people { padding-block: 8px; }
  .dash-person .tab-av__pic { width: clamp(38px, 5.4vh, 60px); height: clamp(38px, 5.4vh, 60px); }
  .dash-person .tab-av__up { top: 0; right: calc(50% - clamp(26px, 3.5vh, 38px)); }
  .dash-person__name { font-size: clamp(10.5px, 1.45vh, 12.5px); line-height: 1.12; }
  .dash-person__org { -webkit-line-clamp: 1; }
}

/* ---------- дашборд · траектория программы: 13 этапов на равном шаге (документ «Траектория…v4») ---------- */
.dash-panel#program.is-active { grid-template-rows: minmax(0, 1fr); align-content: stretch; }
.trj { --trj-gold: var(--qg-pg-gold-line); --trj-navy: var(--qg-pg-navy-950); --trj-final: var(--qg-pg-gold-soft);
  --trj-rest: var(--qg-border-strong); --trj-date: var(--qg-pg-gold-text); --trj-row: clamp(34px, 6vh, 56px);
  position: relative; display: flex; flex-direction: column; gap: clamp(6px, 1.2vh, 14px); height: 100%; min-height: 0;
  padding: clamp(10px, 1.8vh, 24px) clamp(12px, 1.8vw, 28px); }
:root[data-theme="dark"] .trj { --trj-date: var(--qg-pg-gold-on-navy); --trj-rest: #3E5A8C; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .trj { --trj-date: var(--qg-pg-gold-on-navy); --trj-rest: #3E5A8C; } }
.trj__head { display: flex; justify-content: space-between; align-items: baseline; gap: 6px 18px; flex-wrap: wrap; }
.trj__head .qg-card__note { margin: 0; }
.trj__legend { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 12px; color: var(--qg-text-secondary); }
.trj__key { display: inline-flex; align-items: center; gap: 6px; }
.trj__key::before { content: ""; border-radius: 50%; flex: none; }
.trj__key--key::before { width: 12px; height: 12px; background: var(--trj-gold); }
.trj__key--module::before { width: 9px; height: 9px; background: var(--trj-navy); border: 2px solid var(--trj-gold); }
.trj__key--work::before { width: 7px; height: 7px; background: var(--trj-gold); }
.trj__key--final::before { width: 15px; height: 15px; background: var(--trj-final); box-shadow: 0 0 0 2px var(--trj-gold); }

.trj__body { position: relative; flex: 1; min-height: 200px; }
/* шкала: от центра первой до центра последней точки; пройденное — золотом до отметки «сегодня» */
.trj__track, .trj__done { position: absolute; top: 50%; height: 4px; margin-top: -2px; border-radius: 2px; left: calc(50% / var(--n)); }
.trj__track { right: calc(50% / var(--n)); background: var(--trj-rest); }
.trj__done { width: calc(var(--x) - 50% / var(--n)); background: var(--trj-gold); }
.trj__today { position: absolute; left: var(--x); top: 50%; width: 2px; height: 40px; margin: -20px 0 0 -1px; background: var(--qg-text-accent); z-index: 1; }
:root[data-theme="dark"] .trj__today { background: var(--qg-pg-gold-soft); }
.trj__today span { position: absolute; top: 100%; right: 6px; margin-top: -14px; font-size: 11px; font-weight: 700; color: var(--qg-text-accent); font-variant-numeric: tabular-nums; }

.trj__stages { list-style: none; margin: 0; padding: 0; position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
.trj__stage { position: relative; min-width: 0; z-index: 2; }
.trj__btn { position: absolute; inset: 0; width: 100%; display: grid; grid-template-rows: minmax(0, 1fr) var(--trj-row) minmax(0, 1fr); grid-template-columns: minmax(0, 1fr);
  justify-items: center; padding: 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; }
.trj__btn:focus-visible { outline: none; }
.trj__btn:focus-visible .trj__dot { outline: 3px solid var(--qg-focus); outline-offset: 3px; }
.trj__dot { grid-row: 2; align-self: center; border-radius: 50%; transition: transform .22s cubic-bezier(.3, 1.4, .5, 1), box-shadow .22s; }
.trj__label { display: grid; gap: 2px; width: 190%; text-align: center; transition: transform .22s cubic-bezier(.3, 1.4, .5, 1); transform-origin: 50% 100%; }
.trj__stage--up .trj__label { grid-row: 1; align-self: end; }
.trj__stage--down .trj__label { grid-row: 3; align-self: start; transform-origin: 50% 0; }
.trj__stage--first .trj__label { justify-self: start; width: 145%; text-align: left; margin-left: 4px; transform-origin: 0 100%; }
.trj__stage--last .trj__label { justify-self: end; width: 145%; text-align: right; margin-right: 4px; transform-origin: 100% 100%; }
.trj__label b { font-size: clamp(13px, 2vh, 17px); color: var(--trj-date); font-variant-numeric: tabular-nums; }
.trj__label span { font-size: clamp(11px, 1.6vh, 13.5px); line-height: 1.3; color: var(--qg-text-secondary); }
.trj__stage--key .trj__label span, .trj__stage--final .trj__label span { color: var(--qg-text); font-weight: 600; }

/* точки: ключевая веха — крупная, модуль — средняя с кольцом, рабочий этап — малая, итоговая защита — самая крупная */
.trj__stage--key .trj__dot { width: 22px; height: 22px; background: var(--trj-gold); box-shadow: 0 0 0 3px var(--qg-surface); }
.trj__stage--key.is-next .trj__dot { background: var(--trj-navy); border: 3px solid var(--trj-gold); }
.trj__stage--module .trj__dot { width: 16px; height: 16px; background: var(--trj-navy); border: 3px solid var(--trj-gold); box-shadow: 0 0 0 2px var(--qg-surface); }
.trj__stage--work .trj__dot { width: 12px; height: 12px; background: var(--trj-gold); box-shadow: 0 0 0 2px var(--qg-surface); }
.trj__stage--work.is-next .trj__dot { background: var(--trj-rest); }
.trj__stage--final .trj__dot { width: 32px; height: 32px; background: var(--trj-final); box-shadow: 0 0 0 3px var(--qg-surface), 0 0 0 5px var(--trj-gold); }
.trj__stage.is-now .trj__dot { box-shadow: 0 0 0 3px var(--qg-surface), 0 0 0 6px color-mix(in srgb, var(--trj-gold) 45%, transparent); }

/* наведение: этап слегка приподнимается и увеличивается */
.trj__btn:hover .trj__dot, .trj__btn:focus-visible .trj__dot, .trj__stage.is-open .trj__dot { transform: translateY(-3px) scale(1.3); }
.trj__btn:hover .trj__label, .trj__btn:focus-visible .trj__label, .trj__stage.is-open .trj__label { transform: translateY(-5px) scale(1.07); }
.trj__btn:hover .trj__label span, .trj__stage.is-open .trj__label span { color: var(--qg-text-accent); }
.trj__stage.is-open .trj__dot { box-shadow: 0 0 0 3px var(--qg-surface), 0 0 0 7px color-mix(in srgb, var(--trj-gold) 55%, transparent); }

/* карточка этапа выплывает рядом с точкой: справа от неё в левой половине шкалы, слева — в правой */
.trj-pop { position: absolute; z-index: 5; top: 50%; translate: 0 -50%; width: min(520px, calc(50% - 44px)); max-height: calc(100% - 12px); overflow-y: auto;
  display: grid; gap: clamp(3px, .7vh, 6px); padding: clamp(10px, 1.6vh, 14px) 16px clamp(10px, 1.8vh, 16px); border-radius: 12px;
  background: var(--qg-surface); color: var(--qg-text); border: 1px solid var(--qg-border); border-top: 4px solid var(--trj-gold);
  box-shadow: 0 18px 40px rgb(8 20 45 / 28%); }
.trj-pop[hidden] { display: none; }
/* --px — центр точки от левого края блока (считается при открытии) */
.trj-pop--right { left: calc(var(--px) + 30px); }
.trj-pop--left { right: calc(100% - var(--px) + 30px); }
.trj-pop--final { border-top-color: var(--trj-final); }
@media (prefers-reduced-motion: no-preference) {
  .trj-pop.is-in.trj-pop--right { animation: trj-in-r .28s cubic-bezier(.2, .9, .3, 1.1); }
  .trj-pop.is-in.trj-pop--left { animation: trj-in-l .28s cubic-bezier(.2, .9, .3, 1.1); }
}
@keyframes trj-in-r { from { opacity: 0; transform: translateX(-18px) scale(.96); } }
@keyframes trj-in-l { from { opacity: 0; transform: translateX(18px) scale(.96); } }
.trj-pop__top { display: flex; justify-content: space-between; align-items: start; gap: 8px; }
.trj-pop__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 11px; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; color: var(--trj-date); }
.trj-pop__st { padding: 0 8px; border-radius: 999px; background: var(--qg-surface-sunken); color: var(--qg-text-secondary); letter-spacing: .04em; }
.trj-pop__st.is-past { background: color-mix(in srgb, var(--trj-gold) 22%, transparent); color: var(--qg-text); }
.trj-pop__st.is-now { background: var(--trj-gold); color: var(--qg-pg-navy-950); }
.trj-pop__close { flex: none; width: 30px; height: 30px; margin: -6px -8px 0 0; border: 0; border-radius: 50%; background: none; color: var(--qg-text-muted); font-size: 22px; line-height: 1; cursor: pointer; }
.trj-pop__close:hover, .trj-pop__close:focus-visible { background: var(--qg-surface-sunken); color: var(--qg-text); }
.trj-pop__title { margin: 0; font-size: clamp(15px, 2.2vh, 19px); line-height: 1.25; color: var(--qg-text-accent); }
.trj-pop__facts { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 22px; font-size: 13px; }
.trj-pop__facts div { display: flex; gap: 6px; }
.trj-pop__facts dt { color: var(--qg-text-muted); }
.trj-pop__facts dd { margin: 0; font-weight: 600; }
.trj-pop__h { margin: 4px 0 0; font-size: 10px; text-transform: uppercase; letter-spacing: .14em; font-weight: 600; color: var(--trj-date); }
.trj-pop__p { margin: 0; font-size: clamp(12px, 1.75vh, 13.5px); line-height: 1.4; }
.trj-pop__res { margin: 0; padding-left: 18px; font-size: clamp(12px, 1.75vh, 13.5px); line-height: 1.4; font-weight: 600; }
.trj-pop__nav { display: flex; justify-content: space-between; gap: 8px; margin-top: 4px; }
.trj-pop__nav .qg-btn { min-height: 30px; padding: 3px 10px; font-size: 13px; }

/* узкий экран: этапы списком сверху вниз, карточка — внизу экрана */
@media (max-width: 760px) {
  .trj__body { min-height: 0; }
  .trj__track, .trj__done, .trj__today { display: none; }
  .trj__stages { position: static; grid-template-columns: minmax(0, 1fr); gap: 2px; border-left: 3px solid var(--trj-gold); margin-left: 12px; }
  .trj__btn { position: static; grid-template-rows: none; grid-template-columns: 36px minmax(0, 1fr); align-items: center; text-align: left; padding: 6px 0; margin-left: -19px; }
  .trj__dot { grid-row: 1; justify-self: center; }
  .trj__stage .trj__label, .trj__stage--first .trj__label, .trj__stage--last .trj__label { grid-row: 1; width: auto; margin: 0; text-align: left; justify-self: stretch; align-self: center; transform-origin: 0 50%; }
  .trj-pop, .trj-pop--right, .trj-pop--left { position: fixed; left: 12px; right: 12px; top: auto; bottom: 12px; translate: none; width: auto; max-height: 70vh; }
}

/* ---------- капитан команды: золотая звёздочка у аватарки (слева сверху; справа — стрелка повышения) ---------- */
.tab-av__cap {
  position: absolute; top: 0; left: calc(50% - 30px); width: 20px; height: 20px; border-radius: 50%; z-index: 1;
  display: grid; place-items: center; font-size: 12px; line-height: 1;
  background: var(--qg-pg-gold-line); color: var(--qg-pg-navy-950); box-shadow: 0 0 0 2px var(--qg-surface);
}
.tab-member__cap { margin: 4px 0 0; font-size: 13px; font-weight: 700; color: var(--qg-pg-gold-text); }
:root[data-theme="dark"] .tab-member__cap { color: var(--qg-pg-gold-on-navy); }
.dash-person .tab-av__cap { top: clamp(2px, .5vh, 6px); left: calc(50% - clamp(30px, 4.4vh, 44px)); }

/* ---------- дашборд · команды: карточки в ряд, в каждой — аватарки состава ---------- */
.dash-panel .dash-teams-card { padding: clamp(8px, 1.6vh, 22px) clamp(10px, 1.6vw, 26px); gap: clamp(6px, 1.2vh, 14px); }
.dash-panel .dash-teams { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(8px, 1vw, 14px); align-items: stretch; }
.dash-team { display: grid; align-content: start; gap: clamp(4px, 1vh, 10px); padding: clamp(8px, 1.2vh, 14px) clamp(6px, .7vw, 12px);
  border: 1px solid var(--qg-border); border-top: 4px solid var(--team); border-radius: var(--qg-radius); background: var(--qg-surface); min-width: 0; }
.dash-team__head { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 2px 8px; }
.dash-team__emblem { width: clamp(30px, 4.6vh, 44px); height: clamp(30px, 4.6vh, 44px); object-fit: contain; grid-row: span 2; }
.dash-team__head .team-dot { grid-row: span 2; width: 12px; height: 12px; margin: 0; }
.dash-team__act { margin: 0; font-size: 10px; text-transform: uppercase; letter-spacing: .12em; font-weight: 600; color: var(--qg-pg-gold-text); }
:root[data-theme="dark"] .dash-team__act { color: var(--qg-pg-gold-on-navy); }
.dash-team__name { margin: 0; font-weight: 700; font-size: clamp(13px, 1.9vh, 16px); color: var(--qg-text-accent); line-height: 1.2; }
.dash-team__count { grid-column: 2; font-size: 11px; color: var(--qg-text-muted); }
.dash-team__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2px, .6vh, 8px) 2px; }
.dash-team .dash-person .tab-av__pic { width: clamp(42px, 7vh, 72px); height: clamp(42px, 7vh, 72px); }
.dash-team .dash-person .tab-av__cap { left: calc(50% - clamp(28px, 4vh, 42px)); }
.dash-team .dash-person .tab-av__up { right: calc(50% - clamp(28px, 4vh, 42px)); }
.dash-team .dash-person__name { font-size: clamp(10.5px, 1.5vh, 12.5px); }
.dash-team .dash-person__name .is-long { font-size: .84em; letter-spacing: -.03em; }
/* планшет: пять команд в ряд, аватарки по две — состав до шести человек помещается в три ряда */
@media (min-width: 761px) and (max-width: 1250px) {
  .dash-panel#teams-card { padding-block: 8px; }
  .dash-team { padding: 6px; gap: 4px; }
  .dash-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 2px; }
  .dash-team .dash-person { padding: 2px; gap: 2px; }
  .dash-team .dash-person__name { line-height: 1.12; }
  .dash-team .dash-person .tab-av__pic { width: clamp(36px, 5.2vh, 56px); height: clamp(36px, 5.2vh, 56px); }
  .dash-team .dash-person .tab-av__cap { top: 0; left: calc(50% - clamp(26px, 3.4vh, 36px)); }
  .dash-team .dash-person .tab-av__up { top: 0; right: calc(50% - clamp(26px, 3.4vh, 36px)); }
}
@media (max-width: 760px) {
  .dash-panel .dash-teams { grid-template-columns: minmax(0, 1fr); }
  .dash-team__grid { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); }
}

/* ---------- документация проектов: разделы единой структуры и строки документов ---------- */
.docs-sections { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 12px 18px; align-items: start; }
.docs-sections--compact { grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 8px 14px; }
.docs-cat { display: grid; gap: 4px; min-width: 0; }
.docs-cat__title { margin: 0; display: flex; align-items: baseline; gap: 6px; font-size: 12px; font-weight: 700; color: var(--qg-text-accent); text-transform: uppercase; letter-spacing: .06em; }
.docs-cat__no { flex: none; font-variant-numeric: tabular-nums; color: var(--qg-pg-gold-text); font-weight: 700; margin-right: 6px; }
:root[data-theme="dark"] .docs-cat__no { color: var(--qg-pg-gold-on-navy); }
.docs-cat__none { margin: 0; font-size: 12px; color: var(--qg-text-muted); font-style: italic; }
.docs-cat.is-empty .docs-cat__title { color: var(--qg-text-muted); }
.docs-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.docs-item { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: 8px; padding: 5px 8px; min-height: 36px;
  border: 1px solid var(--qg-border); border-radius: var(--qg-radius); background: var(--qg-surface); color: var(--qg-text); text-decoration: none;
  transition: background-color .15s, transform .15s, box-shadow .15s; }
.docs-item:hover, .docs-item:focus-visible { background: var(--qg-surface-sunken); transform: translateY(-1px); box-shadow: 0 3px 10px rgb(19 42 79 / 12%); }
.docs-item__type { font-size: 9.5px; font-weight: 700; letter-spacing: .04em; text-align: center; padding: 3px 0; border-radius: 4px;
  background: var(--qg-surface-sunken); color: var(--qg-text-secondary); }
.docs-item__type--pdf { background: #F6E1DF; color: #8E2A20; }
.docs-item__type--docx { background: #E1E9F7; color: #23458A; }
.docs-item__type--xlsx { background: #DFF0E4; color: #1E6B3A; }
.docs-item__type--pptx { background: #F8E7D8; color: #8A4513; }
:root[data-theme="dark"] .docs-item__type--pdf { background: #4A2621; color: #F3C1B8; }
:root[data-theme="dark"] .docs-item__type--docx { background: #22355A; color: #BCD0F5; }
:root[data-theme="dark"] .docs-item__type--xlsx { background: #1F4030; color: #B9E3C6; }
:root[data-theme="dark"] .docs-item__type--pptx { background: #4A3220; color: #F4CDA9; }
.docs-item__title { font-size: 13px; line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.docs-item__meta { font-size: 11px; color: var(--qg-text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }

/* страница «Документы» */
.docs-head { display: flex; justify-content: space-between; align-items: end; gap: 12px 24px; flex-wrap: wrap; }
.docs-matrix-card { display: grid; gap: 8px; }
.docs-matrix th, .docs-matrix td { text-align: center; white-space: nowrap; }
.docs-matrix tbody th { text-align: left; font-weight: 500; white-space: normal; }
.docs-matrix thead th { border-top: 3px solid var(--team, transparent); }
.docs-matrix__team { border: 0; background: none; padding: 0; font: inherit; font-weight: 700; color: var(--qg-text-accent); cursor: pointer; }
.docs-matrix__team:hover { text-decoration: underline; }
.docs-matrix td.is-on { background: color-mix(in srgb, var(--qg-pg-gold-line) 16%, transparent); }
.docs-matrix__n { font-weight: 700; color: var(--qg-text); font-variant-numeric: tabular-nums; }
.docs-matrix__none { color: var(--qg-text-muted); }
.docs-matrix tr.is-extra th { color: var(--qg-text-secondary); }
.docs-matrix__total th, .docs-matrix__total td { font-weight: 700; border-top: 2px solid var(--qg-border-strong); }
.docs-teams { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 16px 0 10px; }
.docs-teams button { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; align-items: center; gap: 0 10px; text-align: left;
  padding: 10px 12px; border: 1px solid var(--qg-border); border-top: 4px solid var(--team); border-radius: var(--qg-radius);
  background: var(--qg-surface); color: var(--qg-text); cursor: pointer; font: inherit; transition: transform .15s, box-shadow .15s; }
.docs-teams button b { grid-row: span 2; font-size: 22px; color: var(--team); }
.docs-teams button span { font-weight: 700; }
.docs-teams button small { color: var(--qg-text-muted); }
.docs-teams button:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgb(19 42 79 / 14%); }
.docs-teams button[aria-selected="true"] { background: var(--qg-surface-sunken); box-shadow: inset 0 0 0 2px var(--team); }
.docs-team { border-top: 4px solid var(--team, var(--qg-rule)); display: grid; gap: 14px; scroll-margin-top: 80px; }
.docs-team__head { display: flex; justify-content: space-between; align-items: start; gap: 8px 16px; flex-wrap: wrap; }
.docs-team__head .qg-act { margin: 0; color: var(--qg-pg-gold-text); letter-spacing: .12em; text-transform: uppercase; font-size: 11px; font-weight: 600; }
:root[data-theme="dark"] .docs-team__head .qg-act { color: var(--qg-pg-gold-on-navy); }
@media (max-width: 900px) { .docs-teams { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* окно проекта на дашборде: «О проекте» | «Документация по проекту» */
.act-detail__tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 2px; border-bottom: 1px solid var(--qg-border); }
.act-detail__tabs button { display: inline-flex; align-items: baseline; gap: 6px; padding: 6px 12px; border: 0; border-bottom: 3px solid transparent;
  background: none; color: var(--qg-text-secondary); font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; margin-bottom: -1px; }
.act-detail__tabs button small { font-weight: 500; color: var(--qg-text-muted); font-size: 11px; }
.act-detail__tabs button[aria-selected="true"] { color: var(--qg-text-accent); border-bottom-color: var(--team, var(--qg-rule)); }
.act-detail__tabs button:hover { color: var(--qg-text-accent); }
.act-detail__body { display: grid; gap: 6px; min-height: 0; }
.act-detail__body--docs { overflow-y: auto; padding: 2px 2px 4px; }
.act-docs__head { display: flex; justify-content: space-between; align-items: baseline; gap: 4px 12px; flex-wrap: wrap; }
@media (max-height: 940px) and (min-width: 761px), (max-width: 1250px) and (min-width: 761px) {
  .act-detail { align-self: stretch; max-height: 100%; min-height: 0; grid-template-rows: auto auto auto auto minmax(0, 1fr); }
  .act-detail__body--docs .docs-item { min-height: 32px; padding: 3px 8px; }
}

/* планшет комиссии: вкладка «Документы» */
.tab-qs__panel .docs-sections--compact { grid-template-columns: minmax(0, 1fr); gap: 6px; }
.tab-qs__panel .docs-cat__title { font-size: 10px; }
.tab-docs-all { display: inline-block; margin-top: 8px; font-size: 12px; }

/* админка: импорт архива и список документов */
.docs-import summary { cursor: pointer; padding: 4px 0; }
.docs-import__list { margin: 4px 0 8px; padding-left: 18px; font-size: 12.5px; display: grid; gap: 2px; }
.docs-import__list li.is-error, .docs-import__list li.is-no_team { color: var(--qg-bad, #A23A2A); }
.docs-import__list li.is-duplicate { color: var(--qg-text-muted); }
.docs-admin-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr) minmax(0, 1.2fr) auto auto; gap: 6px; align-items: center; }
.docs-admin-row a { font-size: 12.5px; overflow-wrap: anywhere; }
@media (max-width: 900px) { .docs-admin-row { grid-template-columns: minmax(0, 1fr); } }

/* ---------- история отбора в Пул ---------- */
.sel-page { --sel-itr: #2a78d6; --sel-work: #eb6834; --sel-aup: #1baf7a; --sel-in: #DCE3EE; --sel-out: var(--qg-pg-navy); --sel-hard: #C0392B; --sel-bar: #2a78d6; }
:root[data-theme="dark"] .sel-page { --sel-itr: #3987e5; --sel-work: #d95926; --sel-aup: #199e70; --sel-in: #2A4775; --sel-out: #E0C08A; --sel-hard: #F0A1A7; --sel-bar: #3987e5; }
.sel-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.sel-kpi { padding: 14px 16px; border-radius: var(--qg-radius-lg, 12px); background: var(--qg-surface); border: 1px solid var(--qg-border); border-top: 4px solid var(--qg-pg-gold-line); }
.sel-kpi--accent { background: var(--qg-pg-navy); border-color: var(--qg-pg-navy); }
.sel-kpi__value { margin: 0; font-size: clamp(30px, 3.6vw, 44px); font-weight: 800; line-height: 1; color: var(--qg-text-accent); font-variant-numeric: tabular-nums; }
.sel-kpi__label { margin: 6px 0 0; font-weight: 700; font-size: 14px; }
.sel-kpi__note { margin: 2px 0 0; font-size: 12px; color: var(--qg-text-muted); }
.sel-kpi--accent .sel-kpi__value { color: var(--qg-pg-hero-gold); }
.sel-kpi--accent .sel-kpi__label { color: #fff; }
.sel-kpi--accent .sel-kpi__note { color: var(--qg-pg-on-navy); }
.sel-finding { margin: 0 0 16px; padding: 12px 16px; border-left: 4px solid var(--qg-pg-gold-line); background: var(--qg-surface); border-radius: var(--qg-radius); font-size: 15px; line-height: 1.5; }
.sel-card-head { display: flex; justify-content: space-between; align-items: start; gap: 12px; }
.sel-funnel-card { margin-bottom: 16px; }
.sel-funnel-wrap { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 18px 24px; align-items: start; margin-top: 10px; }
.sel-funnel, .sel-table { grid-column: 1; }
.sel-funnel { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.sel-row { width: 100%; display: grid; grid-template-columns: 11rem minmax(0, 1fr); grid-template-rows: auto auto; gap: 4px 12px; align-items: center; text-align: left;
  padding: 8px 10px; border: 1px solid transparent; border-radius: var(--qg-radius); background: none; color: var(--qg-text); font: inherit; cursor: pointer;
  transition: background-color .15s, transform .15s, box-shadow .15s; }
.sel-row:hover { background: var(--qg-surface-sunken); transform: translateX(3px); }
.sel-row[aria-pressed="true"] { background: var(--qg-surface-sunken); border-color: var(--qg-border); box-shadow: inset 4px 0 0 var(--qg-pg-gold-line); }
.sel-row__name { grid-row: span 2; display: grid; gap: 2px; }
.sel-row__name b { font-size: 14px; }
.sel-row__name small { font-size: 12px; color: var(--qg-text-muted); font-variant-numeric: tabular-nums; }
.sel-bar { position: relative; height: 22px; }
.sel-bar__in, .sel-bar__out { position: absolute; left: 0; border-radius: 0 4px 4px 0; width: 0; transition: width .9s cubic-bezier(.2, .8, .2, 1); }
.sel-bar__in { top: 0; bottom: 0; background: var(--sel-in); }
.sel-bar__out { top: 4px; bottom: 4px; background: var(--sel-out); }
.sel-ready .sel-bar__in, .sel-ready .sel-bar__out { width: var(--w); }
.sel-row__nums { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; font-size: 13px; font-variant-numeric: tabular-nums; }
.sel-row__drop { color: var(--qg-text-secondary); }
.sel-row.is-hard .sel-row__drop, .sel-row.is-hard .sel-row__nums b { color: var(--sel-hard); font-weight: 700; }
.sel-row__flag { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; padding: 1px 8px; border-radius: 999px; color: #fff; background: var(--sel-hard); }
:root[data-theme="dark"] .sel-row__flag { color: var(--qg-pg-navy-950); }
.sel-table tr.is-hard th, .sel-table tr.is-hard td { color: var(--sel-hard); font-weight: 700; }
.sel-table .num { text-align: right; font-variant-numeric: tabular-nums; }

/* подробности этапа */
.sel-stage { grid-column: 2; grid-row: 1 / span 2; display: grid; gap: 10px; padding: 14px 16px; border-radius: var(--qg-radius-lg, 12px);
  background: var(--qg-surface-sunken); border-top: 4px solid var(--qg-pg-gold-line); }
@media (prefers-reduced-motion: no-preference) { .sel-stage.is-in { animation: sel-in .35s cubic-bezier(.2, .9, .3, 1.05); } }
@keyframes sel-in { from { opacity: 0; transform: translateX(14px); } }
.sel-stage__eyebrow { margin: 0; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; font-weight: 600; color: var(--qg-pg-gold-text); }
:root[data-theme="dark"] .sel-stage__eyebrow { color: var(--qg-pg-gold-on-navy); }
.sel-stage__title { margin: 0; font-size: 20px; color: var(--qg-text-accent); }
.sel-stage__flow { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; }
.sel-stage__flow > span:not(.sel-stage__arrow) { display: grid; }
.sel-stage__flow b { font-size: 26px; line-height: 1; font-variant-numeric: tabular-nums; }
.sel-stage__flow small { font-size: 11px; color: var(--qg-text-muted); text-transform: uppercase; letter-spacing: .06em; }
.sel-stage__arrow { font-size: 22px; color: var(--qg-text-muted); }
.sel-stage__drop { margin-left: auto; text-align: right; }
.sel-stage__drop.is-hard b, .sel-stage__drop.is-hard small { color: var(--sel-hard); }
.sel-stage__how { margin: 0; font-size: 13.5px; line-height: 1.5; }
.sel-stage__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 12px 18px; }
.sel-stage__notes { margin: 0; padding: 8px 12px 8px 28px; border-radius: var(--qg-radius); background: var(--qg-surface); font-size: 12.5px; color: var(--qg-text-secondary); }
.sel-stage__nav { display: flex; justify-content: space-between; }
.sel-bd { display: grid; gap: 4px; align-content: start; }
.sel-bd__title { margin: 0; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--qg-text-accent); }
.sel-bd__title small { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--qg-text-muted); }
.sel-bd__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; }
.sel-bd__list li { display: grid; grid-template-columns: minmax(0, 12.5rem) minmax(0, 1fr) auto; gap: 8px; align-items: center; font-size: 12.5px; padding: 1px 2px; border-radius: 4px; }
.sel-bd__list li:hover { background: var(--qg-surface); }
.sel-bd__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sel-bd__bar { height: 10px; }
.sel-bd__bar i { display: block; height: 100%; width: 0; border-radius: 0 4px 4px 0; background: var(--sel-bar); transition: width .7s cubic-bezier(.2, .8, .2, 1); }
.sel-ready .sel-bd__bar i { width: var(--w); }
.sel-bd__n { display: flex; gap: 6px; align-items: baseline; font-variant-numeric: tabular-nums; }
.sel-bd__n small { color: var(--qg-text-muted); font-size: 11px; min-width: 3.4em; text-align: right; }

/* состав по категориям */
.sel-legend { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 4px 0 8px; font-size: 13px; }
.sel-key { display: inline-flex; align-items: center; gap: 6px; }
.sel-key::before { content: ""; width: 14px; height: 10px; border-radius: 2px; }
.sel-key--itr::before { background: var(--sel-itr); }
.sel-key--work::before { background: var(--sel-work); }
.sel-key--aup::before { background: var(--sel-aup); }
.sel-mix { display: grid; gap: 6px; }
.sel-mix__row { display: grid; grid-template-columns: 13rem minmax(0, 1fr) 3rem; gap: 12px; align-items: center; padding: 4px 8px; border: 0; border-radius: var(--qg-radius);
  background: none; color: var(--qg-text); font: inherit; cursor: pointer; text-align: left; transition: background-color .15s; }
.sel-mix__row:hover, .sel-mix__row[aria-pressed="true"] { background: var(--qg-surface-sunken); }
.sel-mix__name { font-size: 13.5px; font-weight: 600; }
.sel-mix__bar { display: flex; gap: 2px; height: 28px; }
.sel-seg { display: grid; place-items: center; width: var(--w); min-width: 22px; color: #fff; font-size: 12.5px; font-weight: 700; font-variant-numeric: tabular-nums;
  transition: filter .15s, transform .15s; }
.sel-seg:first-child { border-radius: 4px 0 0 4px; }
.sel-seg:last-child { border-radius: 0 4px 4px 0; }
.sel-seg:hover { filter: brightness(1.12); transform: scaleY(1.12); }
.sel-seg--itr { background: var(--sel-itr); }
.sel-seg--work { background: var(--sel-work); }
.sel-seg--aup { background: var(--sel-aup); color: #062A1D; }
.sel-mix__total { text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--qg-text-secondary); }
.sel-notes summary { cursor: pointer; font-weight: 700; color: var(--qg-text-accent); }
.sel-notes ul { margin: 10px 0 0; padding-left: 20px; display: grid; gap: 6px; font-size: 13.5px; line-height: 1.5; }
@media (max-width: 1100px) {
  .sel-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sel-funnel-wrap { grid-template-columns: minmax(0, 1fr); }
  .sel-stage { grid-column: 1; grid-row: auto; }
}
@media (max-width: 640px) {
  .sel-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sel-row { grid-template-columns: minmax(0, 1fr); }
  .sel-row__name { grid-row: auto; }
  .sel-mix__row { grid-template-columns: minmax(0, 1fr) 2.5rem; }
  .sel-mix__name { grid-column: 1 / -1; }
}

/* телефон: шапка переносится на вторую строку, меню разделов прокручивается вбок, а не раздвигает страницу
   (порог ниже iPad mini в книжной ориентации — 744 px: там шапка в одну строку) */
@media (max-width: 600px) {
  .qg-top, .tab-body .qg-top, .dash-body .qg-top { flex-wrap: wrap; row-gap: 6px; }
  .qg-top .qg-nav { order: 10; flex: 1 1 100%; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  .qg-top .qg-nav a { flex: none; }
  .qg-top__user { display: none; }
  .qg-top__spacer { display: none; }
}

/* ---------- планшет: «Подсказка» у критерия — в строке с весом; окно простым языком ---------- */
.tab-crit__meta { display: flex; align-items: center; gap: 6px; flex-wrap: nowrap; line-height: 1.2; }
.tab-crit__hint { padding: 0; border: 0; background: none; font: inherit; font-size: 10px; line-height: 1.2; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
  color: var(--qg-pg-gold-text); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
:root[data-theme="dark"] .tab-crit__hint { color: var(--qg-pg-gold-on-navy); }
.tab-crit__hint:hover, .tab-crit__hint:focus-visible { color: var(--qg-text-accent); }
.tab-crit__hint::before { content: "?"; display: inline-grid; place-items: center; width: 10px; height: 10px; margin-right: 2px; border-radius: 50%;
  border: 1px solid currentColor; font-size: 7px; line-height: 1; text-decoration: none; vertical-align: 0; }
.crit-hint__what, .crit-hint__ask, .crit-hint__tip { margin: 0 0 8px; line-height: 1.45; }
.crit-hint__ask { padding: 8px 12px; border-left: 4px solid var(--qg-pg-gold-line); background: var(--qg-surface-sunken); border-radius: var(--qg-radius); }
.crit-hint__h { margin: 10px 0 4px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--qg-pg-gold-text); }
:root[data-theme="dark"] .crit-hint__h { color: var(--qg-pg-gold-on-navy); }
.crit-hint__levels { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 4px; }
.crit-hint__levels li { display: grid; grid-template-columns: 6.6rem minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 5px 8px;
  border-radius: var(--qg-radius); border-left: 6px solid var(--heat); background: var(--qg-surface-sunken); }
.crit-hint__n { display: grid; }
.crit-hint__n b { font-size: 18px; line-height: 1; }
.crit-hint__n small { font-size: 10.5px; color: var(--qg-text-muted); }
.crit-hint__text { font-size: 13.5px; line-height: 1.35; }
.crit-hint__pts { font-size: 11px; color: var(--qg-text-muted); white-space: nowrap; font-variant-numeric: tabular-nums; }
.crit-hint__tip { font-size: 12.5px; color: var(--qg-text-secondary); }
/* узкий планшет в альбомной ориентации (iPad mini, 9,7″): колонка названия ~110 px — вес и «Подсказка» плотнее, в одну строку */
@media (max-width: 1150px) and (orientation: landscape) {
  .tab-crit__meta { gap: 4px; }
  .tab-crit__weight { letter-spacing: .02em; }
  .tab-crit__hint { font-size: 9.5px; letter-spacing: 0; }
}
/* 9,7″ в альбомной ориентации: шкале нужна вся ширина — «Подсказка» сворачивается в значок «?» (название — в title и для экранного диктора) */
@media (orientation: landscape) and (max-height: 800px) and (max-width: 1100px) {
  .tab-crit { grid-template-columns: minmax(150px, 24%) minmax(0, 1fr); }
  .tab-crit__hint { font-size: 0; letter-spacing: 0; }
  .tab-crit__hint::before { width: 11px; height: 11px; margin: 0; font-size: 8px; font-weight: 700; }
}

/* ---------- планшет · «Финальный подсчёт»: рейтинг, средние по критериям, согласование — в одно окно ---------- */
.fin-pane:not([hidden]) { flex: 1; min-height: 0; display: flex; }
.fin-grid { flex: 1; min-height: 0; display: grid; gap: 10px; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(250px, .75fr); }
.fin-card { min-height: 0; display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; overflow: hidden; }
.fin-card__title { margin: 0; font-size: 12px; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; color: var(--qg-text-accent); }
.fin-card__note { margin: 0; font-size: 11.5px; color: var(--qg-text-muted); line-height: 1.35; }
.fin-card .qg-banner--warn { background: #FFF4DC; color: #7A5200; }
:root[data-theme="dark"] .fin-card .qg-banner--warn { background: rgb(242 201 121 / 16%); color: var(--qg-pg-warn-on-navy); }

/* общая шкала 0–100: команды стоят по набранным баллам */
.fin-strip { position: relative; height: 92px; margin: 4px 14px 2px; flex: none; }
.fin-strip__axis { position: absolute; left: 0; right: 0; top: 50%; height: 4px; margin-top: -2px; border-radius: 2px;
  background: linear-gradient(90deg, var(--qg-heat-0), var(--qg-heat-2), var(--qg-heat-4), var(--qg-heat-5)); opacity: .55; }
.fin-strip__tick { position: absolute; left: var(--x); top: calc(50% + 6px); translate: -50% 0; font-size: 9.5px; color: var(--qg-text-muted); font-variant-numeric: tabular-nums; }
.fin-pin { position: absolute; left: var(--x); top: 50%; display: grid; justify-items: center; translate: -50% 0; z-index: 1; transition: transform .2s; }
.fin-pin i { position: absolute; top: -8px; width: 16px; height: 16px; border-radius: 50%; background: var(--team); box-shadow: 0 0 0 3px var(--qg-surface); }
.fin-pin--up { top: auto; bottom: 50%; translate: -50% 0; padding-bottom: 12px; }
.fin-pin--up i { top: auto; bottom: -8px; }
.fin-pin--down { padding-top: 14px; }
.fin-pin b { font-size: 13px; font-variant-numeric: tabular-nums; color: var(--qg-text); line-height: 1.1; }
.fin-pin small { font-size: 10.5px; font-weight: 700; color: var(--team-ink, var(--qg-text-accent)); white-space: nowrap; line-height: 1.1; }
.fin-pin--up b { order: 2; }
.fin-pin.is-noq i { background: var(--qg-surface); border: 2px dashed var(--team); }
.fin-pin:hover { transform: translateY(-2px) scale(1.08); z-index: 3; }

/* строки рейтинга по местам */
.fin-rank { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; min-height: 0; overflow-y: auto; }
.fin-rank li { display: grid; grid-template-columns: 26px minmax(0, 8.5rem) minmax(0, 1fr) 4.4rem; gap: 8px; align-items: center;
  padding: 5px 8px; border-radius: var(--qg-radius); border-left: 4px solid var(--team); background: var(--qg-surface-sunken); }
.fin-rank__place { width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 13px;
  background: var(--team); color: #fff; }
.fin-rank li:first-child .fin-rank__place { box-shadow: 0 0 0 2px var(--qg-surface), 0 0 0 4px var(--qg-pg-gold-line); }
.fin-rank__team { display: grid; min-width: 0; }
.fin-rank__team b { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fin-rank__team small { font-size: 10.5px; color: var(--qg-text-muted); }
.fin-rank__bar { position: relative; height: 12px; border-radius: 6px; background: var(--qg-surface); }
.fin-rank__bar i { position: absolute; left: 0; top: 0; bottom: 0; width: var(--w); border-radius: 6px; background: var(--team); }
.fin-rank__mine { position: absolute; left: var(--x); top: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; rotate: 45deg;
  background: var(--qg-surface); border: 2px solid var(--qg-text-accent); }
.fin-rank__score { display: grid; justify-items: end; }
.fin-rank__score b { font-size: 16px; font-variant-numeric: tabular-nums; }
.fin-rank__score small { font-size: 10px; color: var(--qg-text-muted); white-space: nowrap; }
.fin-rank li.is-noq { opacity: .75; }
.fin-rank li.is-noq .fin-rank__bar i { background: repeating-linear-gradient(45deg, var(--team) 0 4px, transparent 4px 8px); }

/* средние по критериям */
.fin-heat { width: 100%; border-collapse: separate; border-spacing: 3px; font-variant-numeric: tabular-nums; }
.fin-heat th { font-size: 11px; font-weight: 700; color: var(--qg-text-secondary); text-align: center; }
.fin-heat tbody th { text-align: left; font-size: 12.5px; color: var(--qg-text); white-space: nowrap; }
.fin-heat td { position: relative; text-align: center; padding: 6px 2px; border-radius: 6px; background: var(--heat); color: var(--qg-heat-text); }
.fin-heat td b { display: block; font-size: 13px; line-height: 1.1; }
.fin-heat td small { display: block; font-size: 9.5px; opacity: .8; }
.fin-heat td.is-none { background: var(--qg-surface-sunken); color: var(--qg-text-muted); }
.fin-heat td.is-dis { box-shadow: inset 0 0 0 2px var(--qg-bad, #A3313A); }
.fin-heat__dis { position: absolute; top: -4px; right: -4px; width: 12px; height: 12px; border-radius: 50%; display: grid; place-items: center;
  font-size: 8px; font-style: normal; font-weight: 800; line-height: 1; background: var(--qg-bad, #A3313A); color: #fff; box-shadow: 0 0 0 1.5px var(--qg-surface); }

/* согласование */
.fin-ok__count { margin: 0; font-size: 13px; }
.fin-ok__count b { font-size: 22px; color: var(--qg-text-accent); font-variant-numeric: tabular-nums; }
.fin-meter { display: block; height: 8px; border-radius: 4px; background: var(--qg-surface-sunken); overflow: hidden; flex: none; }
.fin-meter i { display: block; height: 100%; width: var(--w); background: var(--qg-ok); transition: width .5s; }
.fin-ok__me { display: grid; gap: 6px; }
.fin-ok__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.fin-ok__buttons .qg-btn { min-height: 46px; padding-inline: 8px; font-size: 13.5px; }
.fin-no.is-on { background: var(--qg-bad-bg, #F9ECEC); border-color: var(--qg-bad, #A3313A); color: var(--qg-bad, #A3313A); }
.fin-yes.is-on { box-shadow: 0 0 0 3px color-mix(in srgb, var(--qg-ok) 45%, transparent); }
.fin-members { list-style: none; margin: 0; padding: 0; display: grid; gap: 3px; min-height: 0; overflow-y: auto; }
.fin-members li { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 6px; align-items: start; padding: 3px 6px; border-radius: 6px; background: var(--qg-surface-sunken); }
.fin-members__mark { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; font-size: 12px; font-weight: 800; background: var(--qg-surface); color: var(--qg-text-muted); }
.fin-members li.is-approved .fin-members__mark { background: var(--qg-ok); color: #fff; }
.fin-members li.is-rework .fin-members__mark { background: var(--qg-bad, #A3313A); color: #fff; }
.fin-members__who { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 6px; min-width: 0; line-height: 1.3; }
.fin-members__who b { font-size: 12.5px; }
.fin-members__who small { font-size: 10.5px; color: var(--qg-text-muted); }
.fin-members__who em { flex-basis: 100%; font-size: 11px; color: var(--qg-text-secondary); }
@media (orientation: portrait) {
  .fin-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }   /* рейтинг — по содержимому, остальное — согласованию */
  .fin-card--rank { grid-column: 1 / -1; }
  .fin-strip { height: 78px; }
  .fin-rank { gap: 3px; }
  .fin-rank li { padding-block: 3px; }
  .fin-card { padding: 10px 12px; gap: 5px; }
}
@media (max-width: 1100px) and (orientation: landscape) {
  .fin-grid { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr) minmax(220px, .8fr); gap: 8px; }
  .fin-rank li { grid-template-columns: 24px minmax(0, 6.5rem) minmax(0, 1fr) 4rem; gap: 6px; }
  .fin-heat tbody th { font-size: 11.5px; }
}

/* «Финальный подсчёт» до закрытия голосования: как устроен подсчёт и ход подтверждения листов без баллов */
.fin-grid--wait { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.fin-wait__lead { margin: 0; font-size: 14px; line-height: 1.45; padding: 10px 12px; border-left: 4px solid var(--qg-pg-gold-line); background: var(--qg-surface-sunken); border-radius: var(--qg-radius); }
.fin-steps { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 6px; min-height: 0; overflow-y: auto; }
.fin-steps li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 10px; align-items: start; padding: 6px 8px; border-radius: var(--qg-radius); }
.fin-steps__n { width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; font-weight: 800; border: 2px solid var(--qg-border-strong); color: var(--qg-text-muted); }
.fin-steps li > span:last-child { display: grid; gap: 1px; }
.fin-steps b { font-size: 13.5px; }
.fin-steps small { font-size: 12px; color: var(--qg-text-secondary); line-height: 1.35; }
.fin-steps li.is-now { background: var(--qg-surface-sunken); box-shadow: inset 4px 0 0 var(--qg-pg-gold-line); }
.fin-steps li.is-now .fin-steps__n { background: var(--qg-pg-gold-line); border-color: var(--qg-pg-gold-line); color: var(--qg-pg-navy-950); }
.fin-prog { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; min-height: 0; overflow-y: auto; }
.fin-prog li { display: grid; grid-template-columns: 26px minmax(0, 8rem) minmax(0, 1fr) auto; grid-template-rows: auto auto; gap: 2px 8px; align-items: center;
  padding: 6px 8px; border-radius: var(--qg-radius); border-left: 4px solid var(--team); background: var(--qg-surface-sunken); }
.fin-prog li .fin-rank__place { grid-row: span 2; }
.fin-prog li .fin-rank__team { grid-row: span 2; }
.fin-prog__dots { display: flex; flex-wrap: wrap; gap: 4px; grid-row: span 2; }
.fin-prog__dots i { width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--team); }
.fin-prog__dots i.on { background: var(--team); }
.fin-prog__num { display: grid; justify-items: end; }
.fin-prog__num b { font-size: 14px; font-variant-numeric: tabular-nums; }
.fin-prog__num small { font-size: 10.5px; color: var(--qg-text-muted); white-space: nowrap; }
.fin-prog__num small.is-ok { color: var(--qg-ok); font-weight: 700; }
.fin-prog__my { grid-column: 4; font-size: 10.5px; color: var(--qg-text-muted); white-space: nowrap; text-align: right; }
.fin-prog__my.is-submitted { color: var(--qg-ok); }
@media (orientation: portrait) {
  .fin-grid--wait { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .fin-grid--wait .fin-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .fin-grid--wait .fin-steps li { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
}

/* переключатель «Оценка | Финальный подсчёт» виден всегда. В альбомной ориентации в строке актов — одна кнопка
   «куда перейти» (вторая вкладка), в две строки: кнопкам актов остаётся место под команду и статус */
@media (orientation: landscape) {
  .tab-bar .tab-switch { display: flex; align-self: stretch; }
  .tab-bar .tab-switch button[aria-selected="true"] { display: none; }
  .tab-bar .tab-switch button { margin: 0; min-height: 0; width: 4.6rem; padding: 3px 4px; font-size: 10.5px; font-weight: 700; line-height: 1.15; letter-spacing: -.01em;
    white-space: normal; text-align: center; color: var(--qg-text-accent);
    border: 1px solid var(--qg-pg-gold-line); border-radius: var(--qg-radius); background: var(--qg-surface); }
  .tab-bar .tab-switch button:hover { background: var(--qg-surface-sunken); }
}
/* узкий планшет в альбомной ориентации: блок «Сейчас» чуть уже — место кнопке «Финальный подсчёт» без обрезки актов */
@media (orientation: landscape) and (max-width: 1250px) {
  .tab-now { flex-basis: 34%; gap: 8px; padding-inline: 12px; }
  .tab-now__logo { height: 34px; }
  .tab-acts { gap: 4px; }
  .tab-acts button { padding-inline: 5px; gap: 5px; }
}

/* ---------- админка: раздел «ИПР» в профиле участника ---------- */
.ipr { display: grid; gap: 6px; }
.ipr ul { margin: 0; padding-left: 18px; }
.ipr__area { border: 1px solid var(--qg-border); border-radius: var(--qg-radius); padding: 6px 10px; background: var(--qg-surface); }
.ipr__area summary { cursor: pointer; }
.ipr__dl { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: 6px 12px; margin: 8px 0 2px; font-size: 13px; line-height: 1.4; }
.ipr__dl dt { color: var(--qg-text-muted); font-size: 12px; }
.ipr__dl dd { margin: 0; }
.ipr-rep { border-left: 3px solid var(--qg-pg-gold-line); padding-left: 10px; }
@media (max-width: 640px) { .ipr__dl { grid-template-columns: minmax(0, 1fr); } }
.tab-member__ipr { display: grid; gap: 6px; justify-items: start; }
.tab-member__ipr .tab-qs__group { margin: 0; }

/* ---------- дашборд · компании: список компаний, под названием — аватарки участников ---------- */
.dash-companies { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(8px, 1vw, 14px); align-items: stretch; }
.dash-company { --team: var(--qg-pg-gold-on-navy); }
.dash-company:first-child { grid-column: 1 / -1; }          /* самая большая компания — на всю ширину */
.dash-company .dash-company__head { display: flex; justify-content: space-between; align-items: baseline; gap: 4px 12px; flex-wrap: wrap; }
.dash-company .dash-team__count { grid-column: auto; white-space: nowrap; }
.dash-company__grid { grid-template-columns: repeat(auto-fill, minmax(clamp(78px, 6.4vw, 104px), 1fr)); }
.dash-company .dash-person__name { word-break: normal; }
#companies { scroll-margin-top: 72px; }
@media (max-width: 1250px) { .dash-companies { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .dash-companies { grid-template-columns: minmax(0, 1fr); }
  .dash-company__grid { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); }
}
