/* === header.css — полностью на токенах темы =============================== */
/* Глобальные переменные */
:root {
  /* Отступ от верхнего края для фиксированного поповера уведомлений.
     Обновляем из JS по фактической высоте header. */
  --header-offset: 0px;
}

/* === Header: финальная раскладка и компактность ========================== */

#app-header,
#app-header * {
  box-sizing: border-box;
  font-family: inherit !important;
}

#app-header.app-header {
  position: sticky;
  top: 0;
  z-index: calc(var(--flt-z, 6000) + 20) !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;

  /* фон и граница из токенов */
  background: var(
    --header-bg,
    linear-gradient(135deg, var(--surface) 0%, var(--surface-2) 100%)
  );
  border-bottom: 1px solid var(--border);
  backdrop-filter: saturate(1.05) blur(4px);
}

/* ВНУТРЕННЯЯ СЕТКА: burger | logo | spacer | right */
#app-header .header-inner {
  max-width: none !important;
  width: 100% !important;
  margin: 0 auto !important;
  padding: 4px 12px !important; /* компактнее вертикальный размер */
  display: grid !important;
  grid-template-columns: auto auto 1fr auto !important;
  align-items: center !important;
  gap: 12px !important;
}

/* Поповер, пока скрыт, полностью инертен */
[data-notify-popover][hidden]{
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* ЛОГО ЛЕВЫЙ КРАЙ */
#app-header .logo {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.1 !important;
  font-weight: 800 !important;
  justify-self: start !important;
}
#app-header .logo a {
  display: inline-block !important;
  text-decoration: none !important;
  color: inherit !important;
  padding: 2px 0 !important;
}

/* ПРОМЕЖУТОК — занимает всю середину */
#app-header .header-spacer { min-width: 0 !important; }

/* ПРАВАЯ ЧАСТЬ СТРОГО У ПРАВОГО КРАЯ */
#app-header .header-right {
  justify-self: end !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
}

/* КОМПАКТНЫЕ КНОПКИ/АВАТАР (не увеличивают высоту шапки) */
#app-header .header-avatar {
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
  object-fit: cover !important;
  border: 1px solid var(--border) !important;
  background: var(--surface-2) !important;
}

/* Триггеры (не .button, чтобы не конфликтовать с theme-wiring) */
#app-header .user-trigger,
#app-header .icon-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  min-height: 30px !important;
  height: 30px !important;
  padding: 4px 8px !important;
  border-radius: 10px !important;
  border: 1px solid var(--border) !important;
  background: var(--surface-2) !important;
  color: var(--text) !important;
  font-weight: 700 !important;
  cursor: pointer !important;
  line-height: 1 !important;
  transition: var(--transition, .16s ease-in-out);
}
#app-header .icon-btn { min-width: 30px !important; }
#app-header .user-trigger:hover,
#app-header .icon-btn:hover {
  background: color-mix(in srgb, var(--surface-2) 70%, var(--surface) 30%) !important;
}

/* ДРОПДАУН ПОЛЬЗОВАТЕЛЯ */
#app-header .user-menu { position: relative !important; }
#app-header .user-menu .dropdown {
  position: absolute !important;
  right: 0; top: calc(100% + 8px) !important;
  min-width: 200px !important;
  background: var(--surface) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--text) 14%, transparent) !important;
  padding: 8px !important;
  display: none !important;
  border-radius: 12px !important;
}
#app-header .user-menu .dropdown.active { display: block !important; }
#app-header .user-menu .dropdown .button,
#app-header .user-menu .dropdown a.button,
#app-header .user-menu .dropdown button {
  display:block !important; width:100% !important; text-align:left !important; margin:4px 0 !important;
}

/* НОТИФИКАЦИИ (правый край, поверх) */
#app-header .notify-area { position: relative !important; z-index: 1004 !important; }

#app-header .notify-badge {
  position: absolute !important; top: -4px !important; right: -4px !important;
  min-width: 16px !important; height: 16px !important; padding: 0 4px !important;
  border-radius: 999px !important;
  background: var(--danger, #ef4444) !important;
  color: var(--btn-danger-fg, #fff) !important;
  font-size: 11px !important; font-weight: 800 !important;
  align-items: center !important; justify-content: center !important;
  border: 2px solid var(--surface, #fff) !important;

  /* ВАЖНО: по умолчанию скрыт. Без !important, чтобы JS мог управлять. */
  display: none;
}

/* Когда есть непрочитанные — показываем через класс на кнопке */
#app-header .notify-btn.has-unread .notify-badge {
  display: inline-flex;
}

/* ФИКСИРОВАННЫЙ ПОПОВЕР УВЕДОМЛЕНИЙ У ПРАВОГО КРАЯ */
#app-header .notify-popover {
  position: fixed !important;
  right: 8px !important;
  top: calc(var(--header-offset) + 8px) !important;
  width: min(92vw, 420px) !important;
  max-height: min(72vh, 520px) !important;
  overflow: auto !important;

  background: var(--surface) !important;
  color: var(--text) !important;
  border: 1px solid var(--border) !important;
  box-shadow: 0 12px 28px color-mix(in srgb, var(--text) 14%, transparent) !important;
  z-index: 1006 !important;
  padding: 10px !important;
  border-radius: 12px !important;
}

/* Шапка поповера + действия списком */
#app-header .notify-popover .notify-head {
  display: flex !important;
  justify-content: space-between !important;
  align-items: flex-start !important;
  gap: 10px !important;
  margin-bottom: 8px !important;
}
#app-header .notify-popover .notify-title {
  font-weight: 800 !important;
  font-size: 1.05rem !important;
}
#app-header .notify-popover .notify-actions {
  display: flex !important;
  flex-direction: column !important;    /* кнопки вертикальным списком */
  align-items: stretch !important;
  gap: 6px !important;
}
#app-header .notify-popover .notify-actions .button,
#app-header .notify-popover .notify-actions a.button { width: 100% !important; }

/* Список уведомлений */
#app-header .notify-popover .notify-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 8px !important;
}
#app-header .notify-popover .notify-list .empty{
  padding: 14px !important;
  border: 1px dashed var(--border) !important;
  border-radius: 10px !important;
  text-align: center !important;
  color: var(--muted) !important;
  background: var(--surface-2) !important;
}

/* Отдельный элемент уведомления */
#app-header .notify-popover .notify-item{
  border: 1px solid var(--border) !important;
  border-radius: 10px !important;
  padding: 10px !important;
  background: var(--surface) !important;
}
#app-header .notify-popover .notify-item.unread{
  border-color: color-mix(in srgb, var(--accent, var(--btn-bg)) 60%, var(--border) 40%) !important;
  background: color-mix(in srgb, var(--surface) 85%, var(--accent, var(--btn-bg)) 15%) !important;
}
#app-header .notify-popover .notify-item .notify-text{
  font-weight: 700 !important;
  text-decoration: none !important;
  color: inherit !important;
  display: block !important;
}
#app-header .notify-popover .notify-item .notify-time{
  font-size: .86rem !important;
  color: var(--muted) !important;
  margin-top: 2px !important;
}

/* Гарантированно прячем hidden */
#app-header [hidden] { display: none !important; }

/* Доступность: чёткий фокус для кликабельных элементов хедера */
#app-header .user-trigger:focus-visible,
#app-header .icon-btn:focus-visible {
  outline: 2px solid var(--focus-ring, var(--input-focus, var(--accent, var(--btn-bg)))) !important;
  outline-offset: 2px !important;
}

/* гарантируем кликабельность */
#app-header .notify-btn,
#app-header .notify-popover { pointer-events: auto !important; }

/* безопасная зона сверху на iOS */
#app-header .notify-popover {
  margin-top: env(safe-area-inset-top, 0);
}

/* чуть крупнее цель клика колокольчика на телефонах */
@media (max-width: 600px) {
  #app-header .notify-btn {
    min-width: 36px !important;
    min-height: 36px !important;
  }
}

/* === Kill any decorative underline under the site logo (all themes) === */
#app-header .logo,
#app-header .logo a{
  border: 0 !important;
  background: none !important;
  background-image: none !important;
  box-shadow: none !important;
  text-decoration: none !important;
}

/* Если линия рисуется через псевдоэлементы — вырубаем их */
#app-header .logo::before,
#app-header .logo::after,
#app-header .logo a::before,
#app-header .logo a::after{
  content: none !important;
  display: none !important;
}

/* На всякий случай — убираем “underline via bg-position” трюки */
#app-header .logo,
#app-header .logo a{
  -webkit-mask-image: none !important;
  mask-image: none !important;
  background-clip: border-box !important;
}

#qa-global-toggle {
  backdrop-filter: blur(6px);
  transition: transform .15s ease, opacity .15s ease;
}
#qa-global-toggle:hover { transform: translateY(-1px); }