/* Раскладки отдельных страниц. Только семантические токены. */

/* ---------- вход ---------- */
.login-page { min-height: 100vh; display: grid; }
.login { display: grid; gap: var(--qg-gap-lg); grid-template-columns: repeat(auto-fit, minmax(min(100%, 22rem), 1fr));
  align-items: stretch; width: min(960px, 100% - 2 * var(--qg-gutter)); margin: auto; padding: var(--qg-gap-xl) 0; }
.login__cover { align-content: end; min-height: 320px; }
.login__logo { height: 40px; width: auto; }
.login__kk { font-size: var(--qg-font-size-caption); font-weight: var(--qg-font-weight-semibold); letter-spacing: 0.18em; }
.login__form { display: grid; gap: var(--qg-gap-md); align-content: start; }
.login__pin { font-size: var(--qg-font-size-title); letter-spacing: 0.4em; font-variant-numeric: tabular-nums; }

/* ---------- дашборд программы ---------- */
.dash-header { display: grid; gap: var(--qg-gap-sm); }
.dash-acts { display: grid; gap: var(--qg-gap-md); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.act-card { display: grid; gap: var(--qg-gap-xs); align-content: start; }
.act-card__q { color: var(--qg-text-secondary); font-style: italic; }
.act-card dl { display: grid; gap: 2px; margin: var(--qg-gap-xs) 0 0; }
.act-card dt { font-size: var(--qg-font-size-caption); color: var(--qg-text-muted); margin-top: var(--qg-gap-xs); }
.act-card dd { margin: 0; }
.timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--qg-gap-xs); }
.timeline li { display: grid; grid-template-columns: 7rem 1fr; gap: var(--qg-gap-sm); padding: var(--qg-pad-xs) 0; border-bottom: 1px solid var(--qg-border); }
.timeline time { font-variant-numeric: tabular-nums; color: var(--qg-text-muted); }

/* ---------- кабинет эксперта: планшет комиссии — в program.css (цвета команд) ---------- */

/* ---------- пульт оператора ---------- */
.operator { display: grid; gap: var(--qg-gap-lg); grid-template-columns: minmax(20rem, 1fr) minmax(20rem, 1fr); align-items: start; }
.operator__wide { grid-column: 1 / -1; }
@media (max-width: 1100px) { .operator { grid-template-columns: 1fr; } }
.op-project { display: grid; grid-template-columns: auto 1fr auto; gap: var(--qg-gap-sm); align-items: center;
  padding: var(--qg-pad-sm) 0; border-bottom: 1px solid var(--qg-border); }
.op-project:last-child { border-bottom: 0; }
.modes { display: flex; gap: var(--qg-gap-xs); flex-wrap: wrap; }
.modes button[aria-pressed="true"] { background: var(--qg-accent); border-color: var(--qg-accent); color: var(--qg-text-inverse); }

/* ---------- Председатель ---------- */
.reveal-btn { width: 100%; }
.result-row { display: grid; grid-template-columns: 3rem 1fr auto; gap: var(--qg-gap-sm); align-items: center; padding: var(--qg-pad-sm) 0; border-bottom: 1px solid var(--qg-border); }
.result-row:last-child { border-bottom: 0; }
.place { font-size: var(--qg-font-size-title); font-weight: var(--qg-font-weight-semibold); font-variant-numeric: tabular-nums; color: var(--qg-text-muted); }

/* ---------- админка ---------- */
.form-grid { display: grid; gap: var(--qg-gap-sm); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); align-items: end; }
.cred { font-family: var(--qg-font-mono); font-size: var(--qg-font-size-heading); }
.photo-grid { display: flex; flex-wrap: wrap; gap: var(--qg-gap-sm); }
.photo-item { display: grid; justify-items: center; gap: 4px; margin: 0; width: 120px; text-align: center; }
.photo-item img { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; }
.photo-item figcaption { display: grid; gap: 2px; justify-items: center; font-size: var(--qg-font-size-caption); }
.photo-item__miss { color: var(--qg-warn); }
