/* Полоса шапки: логотип, панели, переключатели темы и языка.
   Часть v3/header.css; порядок частей важен — см. static/README.md. */
/* Header reboot: site header, menu/search surface and quick-bar now live in one owner. */

:root {
  /*
    Header panel motion: reuse the global motion tokens so the panel,
    backdrop, and search dropdown stay in sync. Open is the full
    `--motion-duration-base`; close is slightly faster so dismissing
    feels snappy and the panel content (which detaches synchronously
    with `data-open-panel="none"`) doesn't leave an empty shell behind.
  */
  --header-panel-open-duration: var(--motion-duration-base);
  --header-panel-close-duration: calc(var(--motion-duration-base) * 0.7);
  --header-scrim-duration: var(--motion-duration-base);
  --header-panel-slide-distance: 8px;
  --glass-shell-bg: var(--glass-surface-bg);
  --glass-shell-bg-strong: var(--glass-surface-bg-strong);
  --glass-shell-border: var(--glass-surface-border);
  --glass-shell-shadow: var(--glass-surface-shadow);
  --glass-shell-backdrop: var(--glass-surface-backdrop);
  --quick-bar-control-size: var(--control-height-md);
  --quick-bar-height: calc(var(--quick-bar-control-size) + 4px);
  --quick-bar-shell-padding: var(--control-padding-2xs);
  --quick-bar-bottom-offset: var(--control-gap-base);
  --quick-bar-safe-reserve: calc(var(--quick-bar-height) + var(--quick-bar-bottom-offset) + var(--space-5));
}

/* ─── Шапка сайта: полоса, панели, переключатели ─────────────────────── */
.site-header {
  --site-header-bar-height: var(--header-height);
  --header-control-size: var(--control-height-md);
  --header-control-radius: var(--control-radius);
  --header-inner-max-width: var(--layout-max-width);
  --header-nav-max-width: 860px;
  --header-nav-link-max-width: 190px;
  --header-actions-max-width: 220px;
  --site-header-inner-gap: var(--control-gap-wide);
  --site-header-nav-gap: var(--control-gap-base);
  --site-header-actions-gap: var(--control-gap-base);
  --site-header-actions-offset-inline-end: var(--control-gap-wide);
  --site-header-panel-padding: var(--control-gap-wide) var(--control-padding-x-base) var(--space-4);
  --site-header-search-gap: var(--control-gap-wide);
  --site-header-language-switcher-padding: var(--control-padding-2xs);
  --site-header-panel-padding-mobile: var(--control-gap-wide) var(--control-padding-x-compact) max(16px, env(safe-area-inset-bottom));
  --site-header-panel-padding-mobile-compact: var(--control-gap-wide) var(--control-padding-x-mobile) max(16px, env(safe-area-inset-bottom));
  --site-header-language-switcher-padding-mobile: var(--control-padding-2xs);
  --site-header-search-input-font-size-mobile: var(--font-size-md);
  --site-header-search-language-font-size-mobile: var(--font-size-sm);
  --site-header-game-progress-min-width: 220px;
  --site-header-game-progress-max-width: 380px;
  --site-header-game-progress-height: var(--header-control-size);
  --site-header-game-progress-padding: var(--control-padding-2xs) var(--control-padding-x-base);
  --site-header-game-progress-gap: var(--control-gap-tight);
  --site-header-game-progress-head-gap: var(--control-gap-tight);
  --site-header-game-progress-radius: var(--header-control-radius);
  --site-header-game-progress-border: 1px solid var(--theme-border-normal);
  --site-header-game-progress-bg: var(--theme-surface-subtle);
  --site-header-game-progress-color: var(--theme-text-strong);
  --site-header-game-progress-label-size: var(--type-label-size);
  --site-header-game-progress-label-track: var(--hierarchy-status-track);
  --site-header-game-progress-label-transform: var(--hierarchy-status-transform);
  --site-header-game-progress-label-line: var(--type-control-line);
  --site-header-game-progress-label-color: var(--theme-text-muted);
  --site-header-game-progress-value-size: var(--font-size-sm);
  --site-header-game-progress-value-weight: var(--hierarchy-title-weight);
  --site-header-game-progress-value-line: var(--type-control-line);
  --site-header-game-progress-value-color: var(--theme-text-strong);
  --site-header-game-progress-track-height: 4px;
  --site-header-game-progress-track-bg: var(--theme-surface-subtle);
  --site-header-game-progress-fill: var(--theme-action-primary-bg);
  --site-header-game-progress-padding-mobile: var(--control-padding-2xs) var(--control-padding-x-compact);
  --site-header-game-progress-height-mobile: var(--button-height-sm);
  --site-header-language-button-size-mobile: var(--font-size-sm);
  --site-header-surface-open-bg: var(--surface-base);
  --site-header-brand-color: var(--text-primary);
  --site-header-language-switcher-bg: var(--theme-surface-base);
  --site-header-language-switcher-border: 1px solid var(--theme-border-quiet);
  --site-header-language-switcher-shadow: none;
  --site-header-language-button-color: var(--text-secondary);
  --site-header-language-button-color-active: var(--emphasis-action-nav-accent-color);
  --site-header-language-indicator-bg: var(--emphasis-action-nav-accent-bg);
  --site-header-layer-bg: var(--glass-shell-bg);
  --site-header-layer-border: transparent;
  --site-header-layer-shadow: none;
  --site-header-layer-backdrop: var(--glass-shell-backdrop);
  --site-header-mobile-panel-clearance: calc(var(--quick-bar-safe-reserve) + 8px);
  --site-header-search-results-clearance: calc(var(--quick-bar-safe-reserve) + 26px);
  position: fixed;
  inset: 0 0 auto;
  /* Extend the header background under the iPhone notch/status bar. */
  padding-top: env(safe-area-inset-top, 0px);
  z-index: var(--z-header);
  isolation: isolate;
  pointer-events: none;
  overflow: visible;
  background: var(--site-header-layer-bg);
  box-shadow: var(--site-header-layer-shadow);
  -webkit-backdrop-filter: var(--site-header-layer-backdrop);
  backdrop-filter: var(--site-header-layer-backdrop);
  transition: background-color 160ms ease;
}

.site-header[data-open="true"] {
  --site-header-layer-bg: var(--glass-shell-bg-strong);
}

html[data-virtual-keyboard-open="true"] .site-header {
  --site-header-mobile-panel-clearance: max(8px, calc(var(--viewport-keyboard-inset, 0px) + 8px));
  --site-header-search-results-clearance: calc(var(--site-header-mobile-panel-clearance) + 10px);
}

.site-header__inner {
  position: relative;
  z-index: 2;
  width: min(100%, var(--header-inner-max-width));
  max-width: var(--header-inner-max-width);
  box-sizing: border-box;
  margin: 0 auto;
  min-height: var(--header-height);
  height: var(--header-height);
  padding: 0 clamp(12px, 2.2vw, 24px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--site-header-inner-gap);
  pointer-events: auto;
}

.site-header__brand {
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 10px;
  color: var(--site-header-brand-color);
  text-decoration: none;
  flex: 0 0 auto;
}

.site-header__logo {
  --site-header-logo-height: max(24px, calc(var(--site-header-bar-height) - 14px));
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: var(--site-header-logo-height);
}

.site-header__logo-mark {
  height: var(--site-header-logo-height);
  display: block;
  background-color: currentColor;
  -webkit-mask: var(--header-logo-url) center / contain no-repeat;
  mask: var(--header-logo-url) center / contain no-repeat;
}

.site-header__logo-mark--full {
  width: calc(var(--site-header-logo-height) * 2.2);
}

.site-header__logo-mark--mini {
  width: calc(var(--site-header-logo-height) * 0.9);
  display: none;
}

.site-header__nav {
  display: none;
  align-items: center;
  justify-content: center;
  flex: 1 1 auto;
  max-width: min(100%, var(--header-nav-max-width));
  min-width: 0;
  height: 100%;
  gap: var(--site-header-nav-gap);
  margin: 0 auto;
}

.site-header__actions {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  max-width: var(--header-actions-max-width);
  gap: var(--site-header-actions-gap);
  margin-right: var(--site-header-actions-offset-inline-end);
  height: 100%;
}

.site-header__trigger {
  --button-chrome-bg: transparent;
  --button-chrome-border: transparent;
  --button-chrome-color: var(--theme-text-muted);
  --button-chrome-bg-hover: var(--glass-control-hover-bg);
  --button-chrome-bg-active: var(--glass-control-active-bg);
  --button-chrome-border-hover: transparent;
  --button-chrome-color-hover: var(--theme-text-strong);
  --app-button-bg: transparent;
  --app-button-border: transparent;
  --app-button-color: var(--theme-text-muted);
  --app-button-bg-hover: var(--glass-control-hover-bg);
  --app-button-bg-active: var(--glass-control-active-bg);
  --app-button-border-hover: transparent;
  --app-button-color-hover: var(--theme-text-strong);
  min-height: var(--header-control-size);
  margin: 0;
  border-radius: var(--header-control-radius);
  line-height: var(--type-button-line);
}

.site-header__trigger.app-button {
  --app-button-height: var(--header-control-size);
  --app-button-padding-x: var(--control-padding-x-wide);
  --app-button-radius: var(--header-control-radius);
}

.site-header__trigger:not(.site-header__trigger--icon) {
  flex: 0 1 auto;
  max-width: var(--header-nav-link-max-width);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.site-header__trigger--icon {
  --button-icon-box-size: var(--header-control-size);
  --button-icon-size: 18px;
}

.site-header__icon {
  width: 20px;
  height: 20px;
  display: block;
  color: inherit;
  background-color: currentColor;
  -webkit-mask-repeat: no-repeat;
  -webkit-mask-position: center;
  -webkit-mask-size: contain;
  mask-repeat: no-repeat;
  mask-position: center;
  mask-size: contain;
}

.site-header__icon--search {
  -webkit-mask-image: url('../../assets/icons/search.svg');
  mask-image: url('../../assets/icons/search.svg');
}

.site-header__icon--account {
  -webkit-mask-image: url('../../assets/icons/user.svg');
  mask-image: url('../../assets/icons/user.svg');
}

.site-header__icon--menu {
  -webkit-mask-image: url('../../assets/icons/menu-burger.svg');
  mask-image: url('../../assets/icons/menu-burger.svg');
}

/* Theme toggle icon: moon in light mode, sun in dark mode */
.site-header__icon--theme {
  -webkit-mask-image: url('../../assets/icons/moon.svg');
  mask-image: url('../../assets/icons/moon.svg');
  transition: opacity var(--motion-dur-xs) ease;
}

[data-theme="dark"] .site-header__icon--theme {
  -webkit-mask-image: url('../../assets/icons/sun.svg');
  mask-image: url('../../assets/icons/sun.svg');
}

/* Theme toggle: suppress aria-pressed=true selected-state highlight.
   The icon (moon/sun) already communicates the active theme; a filled
   background when aria-pressed="true" is redundant and distracting.
   Reset all selected/selected-hover tokens to match the idle state.  */
[data-theme-toggle] {
  --button-chrome-bg-selected:          transparent;
  --button-chrome-border-selected:      transparent;
  --button-chrome-color-selected:       var(--button-chrome-color);
  --button-chrome-bg-selected-hover:    var(--button-chrome-bg-hover);
  --button-chrome-border-selected-hover: transparent;
  --button-chrome-color-selected-hover: var(--button-chrome-color-hover);
}

.site-header__game-progress {
  flex: 1 1 auto;
  min-width: var(--site-header-game-progress-min-width);
  max-width: min(100%, var(--site-header-game-progress-max-width));
  min-height: var(--site-header-game-progress-height);
  padding: var(--site-header-game-progress-padding);
  border-radius: var(--site-header-game-progress-radius);
  border: var(--site-header-game-progress-border);
  background: var(--site-header-game-progress-bg);
  color: var(--site-header-game-progress-color);
  text-align: left;
  display: grid;
  gap: var(--site-header-game-progress-gap);
  cursor: pointer;
  overflow: hidden;
}

.site-header__game-progress:focus-visible {
  outline: none;
  box-shadow: var(--state-focus-ring-shadow);
}

.site-header__surface {
  position: absolute;
  top: var(--site-header-bar-height);
  left: 0;
  right: 0;
  z-index: 1;
  display: none;
  pointer-events: none;
  overflow: hidden;
  border: none;
  border-bottom-left-radius: var(--surface-radius);
  border-bottom-right-radius: var(--surface-radius);
  background: var(--glass-shell-bg-strong);
  box-shadow: var(--glass-shell-shadow);
  -webkit-backdrop-filter: var(--site-header-layer-backdrop);
  backdrop-filter: var(--site-header-layer-backdrop);
  transition: background-color 160ms ease, display var(--motion-dur-panel) allow-discrete;
}

.site-header[data-open="true"] .site-header__surface {
  display: block;
  pointer-events: auto;
  transition: display var(--motion-dur-panel) allow-discrete;
}

.site-header__panel {
  display: none;
  width: min(100%, var(--header-inner-max-width));
  margin: 0 auto;
  padding: var(--site-header-panel-padding);
  opacity: 0;
  transition:
    opacity var(--motion-dur-sm) var(--motion-ease-in),
    display var(--motion-dur-sm) allow-discrete;
}

.site-header__surface[data-open-panel="menu"] .site-header__panel[data-header-panel="menu"],
.site-header__surface[data-open-panel="search"] .site-header__panel[data-header-panel="search"] {
  display: block;
  opacity: 1;
  transition:
    opacity var(--motion-dur-base) var(--motion-ease),
    display var(--motion-dur-base) allow-discrete;
}

@starting-style {
  .site-header__surface[data-open-panel="menu"] .site-header__panel[data-header-panel="menu"],
  .site-header__surface[data-open-panel="search"] .site-header__panel[data-header-panel="search"] {
    opacity: 0;
  }
}

.site-header__backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--z-header-backdrop);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--header-scrim-duration) var(--motion-ease),
              visibility var(--header-scrim-duration) var(--motion-ease);
}

.site-header__backdrop[data-open="true"] {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.site-header__panel[data-header-panel="search"] > .search-form {
  width: min(100%, 820px);
  max-width: 100%;
  margin: 0 auto;
  gap: var(--site-header-search-gap) 0;
}

.site-header .language-switcher {
  --segmented-control-width: clamp(204px, 28vw, 312px);
  --segmented-control-min-width: 140px;
  --segmented-control-height: 34px;
  --segmented-control-padding: var(--site-header-language-switcher-padding);
  --segmented-control-gap: 0;
  --segmented-control-bg: var(--site-header-language-switcher-bg);
  --segmented-control-border: var(--site-header-language-switcher-border);
  --segmented-control-shadow: var(--site-header-language-switcher-shadow);
  --segmented-control-option-padding: 0 10px;
  --segmented-control-option-size: var(--font-size-xs);
  --segmented-control-option-color: var(--site-header-language-button-color);
  --segmented-control-option-color-active: var(--site-header-language-button-color-active);
  --segmented-control-indicator-bg: var(--site-header-language-indicator-bg);
  --segmented-control-indicator-border: 1px solid var(--emphasis-action-nav-accent-border);
  margin: auto;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.site-header .language-button {
  max-width: none;
  min-width: 0;
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.site-header .language-label-full {
  display: inline;
}

.site-header .language-label-short {
  display: none;
}

body:not(.search-page) .site-header .language-switcher {
  display: none !important;
}
