/**
 * Общий хедер платформы.
 *
 * Структура (после UX-фидбека Степы):
 *   .app-header
 *     .app-header-left   — кнопка «← назад» (если onBack задан) или пусто
 *     .app-header-center — brand-badge + подпись роли по центру
 *     .app-header-right  — theme-switcher + profile-pill (фото + имя + дверь)
 *
 * HTML-структура — см. styles/header.js (mountHeader).
 *
 * Никаких dropdown'ов с Профиль/Курсы — Степа явно сказал убрать как
 * бесполезные. Кнопка выхода — иконка двери прямо в profile-pill.
 */

/* ============================================================
 * Контейнер хедера
 * ============================================================ */

.app-header {
  height: 60px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 28px;
  border-bottom: 1px solid var(--border-subtle);
  background: var(--bg-base);
  position: sticky;
  top: 0;
  z-index: 50;
  gap: 16px;
}

.app-header-left {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  min-width: 0;
}
.app-header-center {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: center;
  min-width: 0;
}
.app-header-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  position: relative;
  min-width: 0;
}

/* Кнопка «← назад» слева. M-NEW-4: с контекстным текстом-подписью
 * («К списку глав модуля» / «К дашборду курса» / etc) — на мобиле
 * <640px подпись скрывается через CSS, остаётся только иконка. */
.header-back-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 36px;
  padding: 0 12px 0 8px;
  background: transparent;
  border: 1px solid var(--border-default);
  border-radius: 10px;
  color: var(--text-secondary);
  font-family: inherit;
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  transition: background 120ms, color 120ms, border-color 120ms;
}
.header-back-btn:hover {
  background: var(--neutral-100);
  color: var(--text-primary);
  border-color: var(--border-strong);
}
.header-back-btn i { font-size: 18px; }
.header-back-label {
  white-space: nowrap;
  font-family: var(--font-mono);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
@media (max-width: 640px) {
  /* На мобиле — только иконка, без текстовой подписи */
  .header-back-btn { padding: 0; width: 36px; justify-content: center; }
  .header-back-label { display: none; }
}

/* Подпись роли рядом с брендом — Geist Mono uppercase */
.header-role-suffix {
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--text-muted);
  font-family: var(--font-mono);
  padding-left: 12px;
  border-left: 1px solid var(--border-default);
  white-space: nowrap;
}

/* ============================================================
 * Profile pill (после фидбека: только фото/инициалы + имя + дверь,
 * без caret и dropdown)
 * ============================================================ */

.profile-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 6px 4px 5px;
  background: var(--bg-elevated);
  border: 1px solid var(--border-default);
  border-radius: 999px;
}

.profile-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--accent);
  color: var(--accent-text);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 500;
  font-family: var(--font-mono);
  flex-shrink: 0;
  overflow: hidden;
}
.profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.profile-name {
  font-size: 12px;
  font-weight: 500;
  color: var(--text-primary);
  max-width: 160px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.profile-logout-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: transparent;
  border: none;
  color: var(--text-muted);
  cursor: pointer;
  flex-shrink: 0;
  transition: background 120ms, color 120ms;
}
.profile-logout-btn:hover {
  background: var(--danger-soft);
  color: var(--danger-light);
}
.profile-logout-btn i { font-size: 16px; }

/* ============================================================
 * Mobile adaptation
 * ============================================================ */

@media (max-width: 720px) {
  .app-header { padding: 0 16px; gap: 8px; }
  .header-role-suffix { display: none; }
  .profile-name { display: none; }
  .theme-switcher-label { display: none; }
}
@media (max-width: 480px) {
  .app-header { grid-template-columns: auto 1fr auto; }
  /* На мобиле текст «S&P Обучение» ОСТАЁТСЯ видимым — раньше был скрыт,
   * Степа жаловался что в шапке только красная точка без надписи. */
  .brand-badge { padding: 4px 10px; font-size: 11px; }
  .brand-dot { width: 5px; height: 5px; }
}
