/* ============================================================================
 * Грид · Граждане и отделы — Стили вкладок Трибунала, Доски Почёта и Университета
 * Модуль v3.2 · Пакет F22-GOAL-w8-g2-r1
 * ============================================================================ */

/* ---------- 1. Знаки отличия и Доска Почёта ---------- */
.honor-awards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
  gap: var(--sp-2-5);
  margin-top: var(--sp-1);
}

.honor-badge {
  display: flex;
  align-items: center;
  gap: var(--sp-2-5);
  background: var(--slate-900-alpha-70);
  border: 1px solid var(--violet-alpha-20);
  border-radius: var(--r-10);
  padding: var(--sp-2) var(--sp-3);
  transition: all var(--dur-normal) ease;
  position: relative;
}

.honor-badge:hover {
  background: var(--violet-alpha-12);
  border-color: var(--violet-alpha-50);
  transform: translateY(-1px);
  box-shadow: 0 6px 16px var(--violet-alpha-15);
}

.honor-badge.gold {
  border-color: var(--gold-alpha-40);
  background: var(--gold-alpha-12);
}

.honor-badge.gold:hover {
  border-color: var(--rank-celestial);
  box-shadow: 0 6px 18px var(--gold-alpha-20);
}

.honor-badge.emerald {
  border-color: var(--green-alpha-40);
  background: var(--green-alpha-04);
}

.honor-badge.emerald:hover {
  border-color: var(--green);
  box-shadow: 0 6px 18px var(--green-alpha-20);
}

.honor-icon {
  font-size: var(--fs-2xl);
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.honor-info {
  display: flex;
  flex-direction: column;
  gap: var(--sp-0-5);
  min-width: 0;
  flex: 1;
}

.honor-title {
  font-size: var(--fs-sub);
  font-weight: 700;
  color: var(--tx);
  line-height: 1.2;
}

.honor-desc {
  font-size: var(--fs-xs);
  color: var(--tx3);
  line-height: 1.25;
}

.honor-xp-pill {
  font-family: var(--mono);
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--rank-celestial);
  background: var(--amber-alpha-12);
  border: 1px solid var(--gold-alpha-30);
  border-radius: var(--r-sm);
  padding: var(--sp-0-5) var(--sp-1-5);
  white-space: nowrap;
}

/* ---------- 2. Дисциплина, замечания и страйки ---------- */
.discipline-clean-card {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  background: var(--green-alpha-04);
  border: 1px solid var(--green-alpha-30);
  border-radius: var(--r-10);
  padding: var(--sp-2-5) var(--sp-3-5);
}

.discipline-icon {
  font-size: var(--fs-2xl);
  flex-shrink: 0;
}

.discipline-info {
  display: flex;
  flex-direction: column;
  gap: var(--sp-0-5);
  flex: 1;
}

.discipline-title {
  font-size: var(--fs-body);
  font-weight: 700;
  color: var(--tx-pastel-green);
}

.discipline-desc {
  font-size: var(--fs-sm);
  color: var(--tx3);
}

.discipline-violations-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  margin-top: var(--sp-1-5);
}

.violation-card {
  background: var(--red-alpha-08);
  border: 1px solid var(--red-alpha-30);
  border-left: 3px solid var(--red);
  border-radius: var(--r-md);
  padding: var(--sp-2-5) var(--sp-3);
  display: flex;
  flex-direction: column;
  gap: var(--sp-1-5);
}

.violation-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.violation-source {
  display: flex;
  align-items: center;
  gap: var(--sp-1-5);
  font-size: var(--fs-sm);
  font-weight: 700;
  color: var(--status-failed-border);
}

.violation-penalty-pill {
  font-family: var(--mono);
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--red-light);
  background: var(--red-alpha-15);
  border: 1px solid var(--red-alpha-40);
  padding: var(--sp-0-5) var(--sp-1-5);
  border-radius: var(--r-xs);
}

.violation-reason {
  font-size: var(--fs-sm);
  color: var(--status-failed-bg);
  line-height: 1.4;
}

.violation-foot {
  display: flex;
  justify-content: space-between;
  font-size: var(--fs-xs);
  color: var(--tx3);
  font-family: var(--mono);
}

/* ---------- 3. Вердикты Коллегии Трибунала ---------- */
.tribunal-verdicts-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2-5);
}

.tribunal-verdict-card {
  background: var(--slate-900-alpha-70);
  border: 1px solid var(--line);
  border-radius: var(--r-10);
  padding: var(--sp-2-5) var(--sp-3-5);
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  transition: all var(--dur-normal) ease;
}

.tribunal-verdict-card.verdict-pass {
  border-left: 3px solid var(--green);
}

.tribunal-verdict-card.verdict-fail {
  border-left: 3px solid var(--red);
  background: var(--red-alpha-08);
}

.verdict-card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.verdict-critic-box {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}

.verdict-icon {
  font-size: var(--fs-base);
}

.verdict-critic-name {
  font-size: var(--fs-sub);
  font-weight: 700;
  color: var(--tx);
}

.verdict-task-id {
  font-family: var(--mono);
  font-size: var(--fs-xs);
  color: var(--violet);
  background: var(--violet-alpha-12);
  border: 1px solid var(--violet-alpha-20);
  padding: var(--sp-0-5) var(--sp-1-5);
  border-radius: var(--r-xs);
}

.verdict-badge-row {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}

.verdict-points {
  font-size: var(--fs-sm);
  font-weight: 700;
  font-family: var(--mono);
}

.verdict-reason-text {
  font-size: var(--fs-sm);
  color: var(--tx);
  line-height: 1.45;
  white-space: pre-wrap;
  word-break: break-word;
}

.verdict-time {
  font-size: var(--fs-xs);
  color: var(--tx3);
  font-family: var(--mono);
}

/* ---------- 4. Академическая аттестация (Университет) ---------- */
.edu-items-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
}

.edu-item-card {
  display: flex;
  align-items: center;
  gap: var(--sp-2-5);
  background: var(--slate-900-alpha-70);
  border: 1px solid var(--line);
  border-radius: var(--r-10);
  padding: var(--sp-2-5) var(--sp-3);
}

.edu-icon {
  font-size: var(--fs-2xl);
  flex-shrink: 0;
}

.edu-info {
  display: flex;
  flex-direction: column;
  gap: var(--sp-0-5);
  min-width: 0;
}

.edu-title {
  font-size: var(--fs-sub);
  font-weight: 700;
  color: var(--tx);
}

.edu-desc {
  font-size: var(--fs-sm);
  color: var(--tx3);
}