/* Общий мини-тест — светлая версия под палитру хаба (--color-* из :root хаба) */
.qz-wrap { max-width: 720px; margin: -1.5rem auto 0; padding: 0 1.25rem 1rem; }
.qz-h { font-family: 'Nunito', sans-serif; font-size: 1.15rem; font-weight: 800; margin-bottom: 1.25rem; text-align: center; }
.qz-progress-wrap { margin-bottom: 1.25rem; }
.qz-progress-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: .4rem; }
.qz-progress-label { font-size: .85rem; font-weight: 700; color: var(--color-text-light, #6b6660); }
.qz-score-label { font-size: .85rem; font-weight: 700; color: #2e7a4a; }
.qz-progress-track { background: #e8e2da; border-radius: 999px; height: 8px; overflow: hidden; }
.qz-bar { height: 8px; width: 0%; background: var(--color-turquoise, #1A9BA1); border-radius: 999px; transition: width .4s ease; }
.qz-card { background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: .75rem; padding: 1.5rem; box-shadow: 0 2px 8px rgba(0,0,0,.06); min-height: 220px; }
.qz-type { font-size: .8rem; font-weight: 700; color: var(--color-turquoise, #1A9BA1); text-transform: uppercase; letter-spacing: .05em; margin-bottom: .5rem; }
.qz-q { font-size: 1.08em; font-weight: 700; line-height: 1.45; margin-bottom: 1rem; color: var(--color-text, #2a2520); }
/* фикс. высота зоны ответов + кнопки растягиваются (flex:1): 2 или 4 варианта
   занимают одинаковую высоту, без пустоты и без сдвига карточки */
.qz-opts { display: flex; flex-direction: column; gap: .5rem; min-height: 190px; }
.qz-btn { background: var(--color-cream, #FFF9F5); border: 1.5px solid rgba(0,0,0,.1); border-radius: .5rem; padding: .7rem 1.1rem; text-align: left; cursor: pointer; font-size: .97rem; font-family: 'Nunito', sans-serif; font-weight: 600; color: var(--color-text, #2a2520); width: 100%; flex: 1 1 auto; display: flex; align-items: center; transition: background .15s, border-color .15s, transform .12s; }
.qz-btn:hover:not(:disabled) { background: rgba(26,155,161,.1); border-color: var(--color-turquoise, #1A9BA1); transform: translateX(3px); }
.qz-btn.qz-correct { background: #d4edda !important; border-color: #2e7a4a !important; color: #2e7a4a !important; }
.qz-btn.qz-wrong { background: #f8d7da !important; border-color: #b52828 !important; color: #b52828 !important; }
.qz-btn.qz-reveal { background: #d4edda !important; border-color: #2e7a4a !important; color: #2e7a4a !important; opacity: .65; }
.qz-btn:disabled { cursor: default; }
/* гибрид: у вопросов «верно/неверно» (2 варианта) текст по центру; у 4 вариантов — слева */
.qz-opts--tf .qz-btn { justify-content: center; text-align: center; }
/* зона разбора: всегда занимает место (заглушка → фидбек), поэтому карточка
   не меняет высоту и блоки под тестом не «прыгают» */
.qz-fb { min-height: 190px; transition: min-height .25s ease; }
.qz-fb-empty { min-height: 190px; display: flex; align-items: center; justify-content: center; text-align: center; color: var(--color-text-light, #8a857d); font-style: italic; font-size: .9rem; }
.qz-verdict { font-weight: 800; font-size: 1rem; margin: .85rem 0 .35rem; }
.qz-exp { font-size: .92rem; background: rgba(26,155,161,.08); border-left: 3px solid var(--color-turquoise, #1A9BA1); border-radius: .4rem; padding: .65rem .9rem; color: var(--color-text, #2a2520); line-height: 1.55; margin-bottom: 1rem; }
.qz-next-btn { background: var(--color-turquoise, #1A9BA1); color: #fff; border: none; border-radius: .5rem; padding: .75rem 1.75rem; font-size: 1rem; font-weight: 700; cursor: pointer; font-family: 'Nunito', sans-serif; transition: filter .2s, transform .15s; }
.qz-next-btn:hover { filter: brightness(.94); transform: translateY(-2px); }
.qz-results { max-width: 720px; margin: 1.25rem auto 0; background: #fff; border: 1px solid rgba(0,0,0,.08); border-radius: .75rem; padding: 1.5rem; box-shadow: 0 2px 8px rgba(0,0,0,.06); }
@media (max-width: 600px) { .qz-btn { font-size: .9rem; padding: .6rem .9rem; } .qz-q { font-size: 1em; } }

/* ===== Второй круг и расписание повторов ===== */

.qz-round-chip {
  display: inline-block; margin-left: .4rem;
  background: rgba(196,133,106,.16);
  border: 1px solid var(--color-terracotta, #C4856A);
  color: var(--color-terracotta, #C4856A);
  border-radius: 999px; padding: .05rem .5rem;
  font-size: .68rem; font-weight: 800; letter-spacing: .04em;
  text-transform: uppercase; vertical-align: middle;
}

/* время ответа: справа от вердикта, на узком экране - под ним */
.qz-time { float: right; font-weight: 700; font-size: .85rem; color: var(--color-text-light, #6b6660); font-variant-numeric: tabular-nums; }
.qz-time-win { color: #2e7a4a; font-weight: 800; }
.qz-time-neutral { color: var(--color-text-light, #8a857d); font-weight: 600; }
@media (max-width: 600px) { .qz-time { float: none; display: block; margin-top: .2rem; } }

/* итоговые экраны - в той же карточке .qz-card */
.qz-final-head { text-align: center; margin-bottom: 1rem; }
.qz-final-score { font-family: 'Nunito', sans-serif; font-size: 1.45rem; font-weight: 800; color: var(--color-text, #2D2A26); line-height: 1.2; }
.qz-final-sub { font-size: .92rem; color: var(--color-text-light, #6b6660); margin-top: .25rem; }
.qz-final-track { background: #e8e2da; border-radius: 999px; height: 12px; overflow: hidden; margin-bottom: 1.15rem; }
.qz-final-fill { height: 12px; background: var(--color-turquoise, #1A9BA1); border-radius: 999px; transition: width .5s ease; }
.qz-final-lead { font-size: 1rem; font-weight: 700; line-height: 1.5; color: var(--color-text, #2D2A26); margin: 0 0 1rem; text-align: center; }
.qz-final-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; justify-content: center; }

.qz-ghost-btn {
  background: transparent; border: none; color: var(--color-text-light, #6b6660);
  font-family: 'Nunito', sans-serif; font-size: .9rem; font-weight: 700;
  padding: .7rem 1rem; cursor: pointer; border-radius: .5rem;
  text-decoration: underline; text-underline-offset: 3px; transition: color .15s;
}
.qz-ghost-btn:hover { color: var(--color-text, #2D2A26); }

/* расписание повторов */
.qz-plan { margin-top: .5rem; }
.qz-plan-wait { text-align: center; color: var(--color-text-light, #8a857d); font-size: .9rem; font-style: italic; padding: 1rem 0; }
.qz-plan-title { font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 1rem; color: var(--color-text, #2D2A26); text-align: center; margin-bottom: .45rem; }
.qz-plan-line { font-size: .93rem; line-height: 1.6; color: var(--color-text, #2D2A26); text-align: center; margin: 0 auto .3rem; max-width: 460px; }
.qz-plan-dim { color: var(--color-text-light, #6b6660); font-size: .87rem; }
.qz-plan-dim a { color: var(--color-turquoise, #1A9BA1); }

/* призыв завести кабинет - только для тех, кто не вошёл */
.qz-cta { margin-top: 1.15rem; padding-top: 1.15rem; border-top: 1px solid rgba(0,0,0,.09); text-align: center; }
.qz-cta-eyebrow { font-size: .72rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; color: var(--color-terracotta, #C4856A); margin-bottom: .55rem; }
.qz-cta-btn {
  display: inline-block; background: var(--color-turquoise, #1A9BA1); color: #fff; text-decoration: none;
  font-family: 'Nunito', sans-serif; font-weight: 800; font-size: 1rem;
  padding: .85rem 1.6rem; border-radius: .55rem; transition: filter .2s, transform .15s;
}
.qz-cta-btn:hover { filter: brightness(.94); transform: translateY(-2px); }
.qz-cta-note { font-size: .85rem; line-height: 1.55; color: var(--color-text-light, #6b6660); max-width: 460px; margin: .8rem auto 0; }

/* Приписка в заголовке теста: что это не разовая проверка, а звено расписания */
.qz-h-sub {
  display: inline-block;
  font-weight: 600; font-size: .82rem;
  color: var(--color-text-light, #6b6660);
  white-space: nowrap;
}
@media (max-width: 600px) {
  .qz-h-sub { display: block; white-space: normal; margin-top: .2rem; }
}
