﻿:root {
  --bg: #0c1220;
  --panel: rgba(10, 15, 28, 0.88);
  --text: #f2f5ff;
  --muted: #9aa8c3;
  --red: #ea3d4f;
  --blue: #2f73f4;
  /* Связка с кнопками/ссылками Digital Atrium; заголовки светлых окон */
  --mf-accent: #0053dc;
  /* Фон вне матча: `sessionBackground.js` ставит `background.png`; запасной в коде — `image.webp` */
  --session-bg-image: url("/images/background/image.webp");
}

* {
  box-sizing: border-box;
}

/* Универсальный класс защиты от длинного текста (добавляет ...) */
.text-truncate {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  display: block;
  max-width: 100%;
}

/* Модалка статистики: колонка «ник + XP» в hero flex — иначе длинный ник ломает сетку */
.stats-title-container {
  flex: 1;
  min-width: 0;
}

html,
body {
  margin: 0;
  width: 100%;
  height: 100%;
  background: radial-gradient(circle at 20% 10%, #1f2c4a, #0b1020 50%, #06080f 100%);
  color: var(--text);
  font-family: "Segoe UI", Tahoma, sans-serif;
  overflow: hidden;
}

/* Вне матча: фон-изображение (в матче canvas + `in-match` — без этого слоя) */
body:not(.in-match)::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(500px 500px at 25% 0%, rgba(0, 83, 220, 0.07), transparent 65%),
    radial-gradient(600px 600px at 75% 100%, rgba(216, 227, 248, 0.45), transparent 65%),
    var(--session-bg-image) center / cover no-repeat,
    #f0f2f8;
}

/* Лёгкое «молочное» размытие к верху: белая вуаль + backdrop-filter, к низу гасится mask */
body:not(.in-match)::after {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0.45) 0%,
    rgba(255, 255, 255, 0.14) 38%,
    rgba(255, 255, 255, 0) 72%
  );
  backdrop-filter: blur(8px) saturate(1.05);
  -webkit-backdrop-filter: blur(8px) saturate(1.05);
  mask-image: linear-gradient(180deg, #000 0%, #000 32%, transparent 78%);
  -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 32%, transparent 78%);
}

/* ─── Boot: прелоадер + заставка Car Soccer (кроссфейд, whoosh при появлении) ─ */
#boot-screen {
  --boot-inverse-surface: #0c0e12;
  --boot-primary: #0053dc;
  --boot-primary-bright: #3e76fe;
  --boot-on-primary-fixed: #ffffff;
  --boot-outline-variant: #aeb2bb;
  --boot-on-surface-variant: #5b5f67;

  position: fixed;
  inset: 0;
  z-index: 9999;
  background: var(--boot-inverse-surface);
  overflow: hidden;
  font-family: Manrope, "Segoe UI", system-ui, sans-serif;
  opacity: 1;
  transition: opacity 0.55s ease;
}

#boot-screen.boot-screen--exit {
  opacity: 0;
  pointer-events: none;
}

#boot-screen .hidden {
  display: none !important;
  opacity: 0;
}

#boot-loader {
  position: absolute;
  inset: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  width: 100%;
  padding: 0 1.25rem;
  text-align: center;
  background: var(--boot-inverse-surface);
  opacity: 1;
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.32, 1);
}

#boot-loader.boot-loader--fade-out {
  opacity: 0;
  pointer-events: none;
}

.loader-text {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: rgba(232, 236, 245, 0.55);
  margin-bottom: 1rem;
}

.loader-bar-wrap {
  width: min(420px, 88vw);
  height: 4px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  overflow: hidden;
}

#boot-bar {
  height: 100%;
  width: 0%;
  border-radius: inherit;
  background: linear-gradient(90deg, #1e3a5f, #3d7dff 45%, #7eb8ff);
  box-shadow: 0 0 14px rgba(61, 125, 255, 0.45);
  transition: width 0.2s ease-out;
}

#boot-splash {
  position: absolute;
  inset: 0;
  display: block;
  overflow: hidden;
  color: var(--boot-on-primary-fixed);
}

/* Под прелоадером: не режем через display:none — нужен кроссфейд opacity */
#boot-splash.boot-splash--prep {
  opacity: 0;
  pointer-events: none;
}

#boot-splash.boot-splash--reveal {
  opacity: 1;
  transition: opacity 1.05s cubic-bezier(0.22, 1, 0.32, 1);
  pointer-events: none;
}

#boot-splash.boot-splash--reveal .boot-splash__cta-block {
  pointer-events: auto;
}

.boot-splash__media {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.boot-splash__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.boot-splash__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom,
    rgba(12, 14, 18, 0.9) 0%,
    rgba(12, 14, 18, 0.7) 45%,
    rgba(12, 14, 18, 0.95) 100%
  );
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}

.boot-splash__corners {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}

.boot-splash__corner {
  position: absolute;
  width: 6rem;
  height: 6rem;
  border-color: rgba(0, 83, 220, 0.2);
  border-style: solid;
}

.boot-splash__corner--tl {
  top: 3rem;
  left: 3rem;
  border-width: 2px 0 0 2px;
}

.boot-splash__corner--br {
  bottom: 3rem;
  right: 3rem;
  border-width: 0 2px 2px 0;
}

@media (max-width: 767px) {
  .boot-splash__corner {
    display: none;
  }
}

.boot-splash__grain {
  position: absolute;
  inset: 0;
  z-index: 15;
  pointer-events: none;
  opacity: 0.03;
  background-image: url("https://grainy-gradients.vercel.app/noise.svg");
}

.boot-splash__main {
  position: relative;
  z-index: 10;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 100%;
  padding: 1.5rem 1.5rem 4rem;
  text-align: center;
  pointer-events: none;
}

.boot-splash__brand {
  margin-bottom: 3rem;
}

.boot-splash__title {
  margin: 0;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(3rem, 12vw, 6rem);
  line-height: 0.95;
  letter-spacing: -0.03em;
  color: #f9f7ff;
  text-shadow:
    0 0 10px rgba(0, 83, 220, 0.8),
    0 0 20px rgba(0, 83, 220, 0.4),
    0 0 30px rgba(62, 118, 254, 0.2);
  opacity: 0;
  transform: scale(0.94);
  filter: blur(6px);
}

#boot-splash.boot-splash--shown .boot-splash__title {
  animation: boot-splash-title-in 1.65s cubic-bezier(0.2, 0.85, 0.25, 1) forwards;
}

@keyframes boot-splash-title-in {
  0% {
    opacity: 0;
    transform: scale(0.92) translateY(12px);
    filter: blur(10px);
  }
  40% {
    opacity: 0.65;
  }
  65% {
    filter: blur(0);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
    filter: blur(0);
  }
}

.boot-splash__tagline {
  margin-top: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  opacity: 0;
}

#boot-splash.boot-splash--shown .boot-splash__tagline {
  animation: boot-splash-tagline-in 1.15s cubic-bezier(0.2, 0.85, 0.25, 1) 0.35s forwards;
}

@keyframes boot-splash-tagline-in {
  0% {
    opacity: 0;
    transform: translateY(10px);
  }
  100% {
    opacity: 1;
    transform: translateY(0);
  }
}

.boot-splash__tagline-line {
  width: 2rem;
  height: 1px;
  background: rgba(0, 83, 220, 0.4);
}

.boot-splash__tagline-text {
  font-family: Inter, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--boot-outline-variant);
}

.boot-splash__cta-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
  pointer-events: auto;
}

.boot-splash__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 2rem;
  font-family: Inter, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(91, 95, 103, 0.6);
  opacity: 0;
}

#boot-splash.boot-splash--shown .boot-splash__meta {
  animation: boot-splash-meta-in 1s cubic-bezier(0.2, 0.85, 0.25, 1) 0.55s forwards;
}

@keyframes boot-splash-meta-in {
  to {
    opacity: 1;
  }
}

.boot-splash__meta-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.boot-splash__mi {
  font-size: 14px !important;
  font-variation-settings: "FILL" 0, "wght" 500, "GRAD" 0, "opsz" 24 !important;
  line-height: 1;
  color: rgba(91, 95, 103, 0.75);
}

.boot-splash__footer-tag {
  position: absolute;
  bottom: 2rem;
  left: 0;
  right: 0;
  z-index: 12;
  margin: 0;
  pointer-events: none;
  text-align: center;
  font-family: Inter, system-ui, sans-serif;
  font-size: 9px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: none;
  color: rgba(174, 178, 187, 0.65);
  opacity: 0;
}

#boot-splash.boot-splash--shown .boot-splash__footer-tag {
  animation: boot-splash-footer-in 1.2s cubic-bezier(0.2, 0.85, 0.25, 1) 0.75s forwards;
}

@keyframes boot-splash-footer-in {
  to {
    opacity: 0.55;
  }
}

#boot-start-btn {
  display: inline-block;
  margin: 0;
  cursor: pointer;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 1.125rem;
  font-weight: 800;
  letter-spacing: 0.2em;
  color: var(--boot-on-primary-fixed);
  padding: 1rem 3rem;
  border-radius: 999px;
  border: none;
  background: linear-gradient(135deg, var(--boot-primary) 0%, var(--boot-primary-bright) 100%);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.35);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(10px);
  transition:
    opacity 0.55s cubic-bezier(0.2, 0.85, 0.25, 1),
    transform 0.55s cubic-bezier(0.2, 0.85, 0.25, 1),
    box-shadow 0.55s cubic-bezier(0.2, 0.85, 0.25, 1),
    visibility 0s linear 0.45s;
}

#boot-start-btn:hover {
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.3);
  transform: translateY(-2px);
}

#boot-start-btn:active {
  transform: scale(0.95);
}

#boot-start-btn.boot-start-visible {
  visibility: visible;
  pointer-events: auto;
  opacity: 1;
  transform: translateY(0);
  transition:
    opacity 0.55s cubic-bezier(0.2, 0.85, 0.25, 1),
    transform 0.55s cubic-bezier(0.2, 0.85, 0.25, 1),
    box-shadow 0.55s cubic-bezier(0.2, 0.85, 0.25, 1),
    visibility 0s linear 0s;
}

#boot-start-btn.boot-start-visible:hover {
  transform: translateY(-2px);
}

#boot-start-btn.boot-start-visible:active {
  transform: scale(0.95);
}

#game {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  z-index: 0;
  pointer-events: none;
}

/* Повтор гола: вёрстка как в Tailwind-референсе (бейдж слева, «пилюля» гола справа, низ — skip bar) */
.goal-replay-overlay {
  position: fixed;
  inset: 0;
  z-index: 6;
  pointer-events: none;
  overflow: hidden;
  padding: 0;
  font-family: Inter, "Segoe UI", system-ui, sans-serif;
  color: #2e333a;
  --gr-primary: #0053dc;
  --gr-primary-container: #3e76fe;
  --gr-on-surface: #2e333a;
  --gr-on-surface-variant: #5b5f67;
  --gr-surface-lowest: #ffffff;
  --gr-surface-low: #f2f3fa;
  --gr-surface-high: #e6e8f0;
  --gr-outline-variant: #aeb2bb;
  --gr-error: #a83836;
  --gr-glass-90: rgba(255, 255, 255, 0.9);
  --gr-glass-95: rgba(255, 255, 255, 0.95);
  --gr-top-offset: 1.5rem;
  --gr-x-inset: clamp(0.75rem, 4vw, 2rem);
  --gr-footer-bottom: 2.5rem;
}

.goal-replay-overlay.hidden {
  display: none;
}

.goal-replay-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.goal-replay-vignette {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  box-shadow: inset 0 0 150px rgba(0, 83, 220, 0.15);
  border: 12px solid rgba(255, 255, 255, 0.1);
  box-sizing: border-box;
}

@keyframes goal-replay-ping {
  75%,
  100% {
    transform: scale(2);
    opacity: 0;
  }
}

.goal-replay-badge {
  position: absolute;
  left: var(--gr-x-inset);
  top: var(--gr-top-offset);
  z-index: 20;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.5rem 1rem;
  border-radius: 999px;
  background: var(--gr-glass-90);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(0, 83, 220, 0.1);
  box-shadow:
    0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.goal-replay-badge-pulse {
  position: relative;
  display: flex;
  width: 0.75rem;
  height: 0.75rem;
}

.goal-replay-badge-ping {
  position: absolute;
  display: inline-flex;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  background: var(--gr-error);
  opacity: 0.75;
  animation: goal-replay-ping 1s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.goal-replay-badge-dot {
  position: relative;
  display: inline-flex;
  width: 0.75rem;
  height: 0.75rem;
  border-radius: 999px;
  background: var(--gr-error);
}

.goal-replay-badge-title {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  letter-spacing: 0.12em;
  color: var(--gr-primary);
}

.goal-replay-badge-divider {
  width: 1px;
  height: 1rem;
  background: var(--gr-outline-variant);
}

.goal-replay-badge-cam {
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--gr-on-surface-variant);
  text-transform: uppercase;
}

/* Карточка гола: absolute top right */
.goal-replay-goal-strip {
  position: absolute;
  top: var(--gr-top-offset);
  right: var(--gr-x-inset);
  z-index: 20;
  max-width: min(100% - var(--gr-x-inset) * 2, calc(100vw - var(--gr-x-inset) * 2 - 11rem));
  pointer-events: none;
  box-sizing: border-box;
}

.goal-replay-goal-pill {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  padding: 0.5rem 1.25rem;
  border-radius: 999px;
  background: var(--gr-glass-90);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(0, 83, 220, 0.1);
  box-shadow:
    0 10px 15px -3px rgba(0, 0, 0, 0.1),
    0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

.goal-replay-goal-seg {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding-right: 1rem;
  border-right: 1px solid rgba(174, 178, 187, 0.3);
}

.goal-replay-goal-ic {
  font-size: 1.25rem !important;
  line-height: 1;
  color: var(--gr-primary);
  font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
}

.goal-replay-word {
  margin: 0;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1;
  color: var(--gr-primary);
}

.goal-replay-meta-seg {
  position: relative;
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.goal-replay-name {
  margin: 0;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--gr-on-surface);
  min-width: 0;
  max-width: 12rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.goal-replay-minute-pill {
  flex-shrink: 0;
  padding: 0.125rem 0.5rem;
  border-radius: 0.25rem;
  background: rgba(0, 83, 220, 0.1);
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 800;
  font-size: 0.75rem;
  line-height: 1.25;
  color: var(--gr-primary);
  white-space: nowrap;
}

.goal-replay-meta-divider {
  flex-shrink: 0;
  width: 1px;
  height: 1rem;
  background: var(--gr-outline-variant);
}

.goal-replay-brand {
  flex-shrink: 0;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--gr-on-surface-variant);
}

.goal-replay-footer {
  position: absolute;
  bottom: var(--gr-footer-bottom);
  left: 50%;
  transform: translateX(-50%);
  z-index: 30;
  width: max-content;
  max-width: calc(100% - 2rem);
  display: flex;
  justify-content: center;
  pointer-events: none;
  box-sizing: border-box;
}

.goal-replay-footer-card {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  min-width: 0;
  padding: 0.5rem 1.5rem;
  border-radius: 999px;
  background: var(--gr-glass-95);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.6);
  box-shadow:
    0 25px 50px -12px rgba(0, 0, 0, 0.18),
    0 0 0 1px rgba(0, 83, 220, 0.04);
}

.goal-replay-footer-left {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.goal-replay-footer-divider {
  flex-shrink: 0;
  width: 1px;
  height: 1rem;
  background: rgba(174, 178, 187, 0.3);
}

.goal-replay-footer-right {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 10rem;
  flex: 1 1 auto;
}

.goal-replay-hint-text {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.875rem;
  letter-spacing: -0.02em;
  color: var(--gr-on-surface-variant);
  white-space: nowrap;
}

.goal-replay-keycap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.125rem 0.625rem;
  border-radius: 0.5rem;
  background: var(--gr-surface-high);
  border: 1px solid rgba(174, 178, 187, 0.2);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.goal-replay-keycap-label {
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gr-on-surface);
}

.goal-replay-skip-count {
  flex-shrink: 0;
  margin: 0;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.625rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: rgba(91, 95, 103, 0.8);
  white-space: nowrap;
}

.goal-replay-skip-track {
  flex: 1 1 auto;
  min-width: 3rem;
  height: 0.25rem;
  border-radius: 999px;
  background: var(--gr-surface-high);
  overflow: hidden;
}

.goal-replay-skip-fill {
  height: 100%;
  width: 0%;
  border-radius: 999px;
  background: var(--gr-primary);
  transition: width 0.25s ease;
}

@media (max-width: 640px) {
  .goal-replay-goal-strip {
    top: 4.25rem;
    right: var(--gr-x-inset);
    left: var(--gr-x-inset);
    max-width: none;
  }

  .goal-replay-goal-pill {
    justify-content: center;
  }

  .goal-replay-goal-seg {
    border-right: none;
    padding-right: 0;
  }

  .goal-replay-meta-seg {
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
  }

  .goal-replay-name {
    max-width: none;
    text-align: center;
  }

  .goal-replay-footer-card {
    flex-wrap: wrap;
    justify-content: center;
    row-gap: 0.5rem;
    padding: 0.65rem 1.1rem;
    border-radius: 1.25rem;
  }

  .goal-replay-footer-divider {
    display: none;
  }

  .goal-replay-footer-right {
    flex: 1 1 100%;
    min-width: 0;
  }

  .goal-replay-badge-cam {
    display: none;
  }
}

body.goal-replay-active #hud,
body.goal-replay-active .hud-gauges,
body.goal-replay-active #sessionTopRail,
body.goal-replay-active #sessionTopLeftCluster,
body.goal-replay-active .match-perf-hud {
  visibility: hidden;
}

#ui-root {
  position: fixed;
  inset: 0;
  pointer-events: auto;
  z-index: 5;
  isolation: isolate;
}

/* После LukichGames boot первый await (`ensureFreshSession`) всё ещё идёт: без блокировки клики по меню
   гоняются с `syncSocketAuthFromStorage` и дают «мигание» лобби/формы. См. `main.js` → `session-init-pending`. */
html.session-init-pending #ui-root,
html.session-init-pending #sessionTopRail,
html.session-init-pending #sessionTopLeftCluster {
  pointer-events: none;
  cursor: wait;
}

/* Меню и лобби: скролл только внутри #ui-root — не у документа. Иначе Chrome даёт тонкий
   скролл (scrollHeight html чуть > clientHeight) из‑за min-height:100vh и несовпадения vh с окном. */
html:has(body.session-entry) {
  overflow: hidden;
  height: 100%;
}

html:has(body.session-entry) body {
  overflow: hidden;
  height: 100%;
}

html:has(body.session-entry) #ui-root {
  position: relative;
  inset: auto;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  /* `stable` резервирует место даже без скролла — на стартовом экране может быть заметно; `auto` — только при реальном overflow */
  scrollbar-gutter: auto;
}

.panel {
  width: min(430px, 92vw);
  margin: 5vh auto 0;
  padding: 18px;
  border-radius: 14px;
  background: var(--panel);
  border: 1px solid rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(4px);
  pointer-events: auto;
}

/* Лобби: широкая bento-карточка, светлая палитра (см. .lobby-panel) */
#lobby.lobby-panel.panel {
  position: relative;
  /* 100% от #ui-root (ширина «клиента»), не vw — иначе при появлении полосы прокрутки vw и центрирование расходятся */
  width: min(1120px, calc(100% - 48px));
  max-width: 100%;
  margin: 3vh auto clamp(20px, 4vh, 40px);
  padding: 0;
  border: none;
  background: transparent;
  backdrop-filter: none;
}

.lobby-shell {
  position: relative;
  z-index: 1;
  padding: 28px 24px 32px;
  background: rgba(255, 255, 255, 0.78);
  backdrop-filter: blur(24px);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.08);
  /* Та же сетка, что у .lobby-grid — эмблемы в шапке совпадают с колонками списков */
  --lobby-cols: 1fr;
  --lobby-gap: 20px;
}

@media (min-width: 1024px) {
  .lobby-shell {
    --lobby-cols: minmax(200px, 1fr) minmax(320px, 2.1fr) minmax(200px, 1fr);
    --lobby-gap: 24px;
  }
}

.lobby-bg-decor {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  overflow: hidden;
  border-radius: inherit;
}

.lobby-bg-decor::before,
.lobby-bg-decor::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
}

.lobby-bg-decor::before {
  width: 420px;
  height: 420px;
  top: -120px;
  left: -80px;
  background: rgba(0, 83, 220, 0.07);
}

.lobby-bg-decor::after {
  width: 280px;
  height: 280px;
  bottom: 10%;
  right: -40px;
  background: rgba(216, 227, 248, 0.45);
}

/* Шапка лобби: сетка как у .lobby-grid — эмблемы по центру боковых колонок */
.lobby-header-row {
  display: grid;
  grid-template-columns: var(--lobby-cols);
  gap: var(--lobby-gap);
  align-items: start;
  margin-bottom: 28px;
}

.lobby-header-emblem-slot {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding-top: 2px;
  min-width: 0;
  width: 100%;
}

.lobby-header-main {
  min-width: 0;
  text-align: center;
}

#lobby.lobby-panel .lobby-team-emblem--lobby-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  top: auto;
  left: auto;
  right: auto;
  width: auto;
  height: auto;
  margin: 0;
  /* Несколько слоёв: плотнее у края (белый контур щита) + мягче внизу «под» эмблемой */
  filter:
    drop-shadow(0 1px 2px rgba(15, 23, 42, 0.38))
    drop-shadow(0 3px 8px rgba(15, 23, 42, 0.24))
    drop-shadow(0 8px 20px rgba(15, 23, 42, 0.14));
}

#lobby.lobby-panel .lobby-team-emblem--lobby-header .hud-team-emblem__shield {
  width: clamp(68px, 11vw, 112px);
  height: clamp(68px, 11vw, 112px);
}

#lobby.lobby-panel .lobby-team-emblem--lobby-header .hud-team-emblem__stars {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  gap: 2px;
  margin-bottom: 4px;
}

#lobby.lobby-panel .lobby-team-emblem--lobby-header .hud-team-emblem__mark {
  font-size: clamp(1.2rem, 3.4vmin, 2rem);
}

/* Узкий экран: заголовок на всю ширину, эмблемы в один ряд под ним по центру колонок */
@media (max-width: 1023px) {
  .lobby-header-row {
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto;
    row-gap: 16px;
    column-gap: var(--lobby-gap);
  }

  .lobby-header-main {
    grid-column: 1 / -1;
    grid-row: 1;
  }

  .lobby-header-emblem-slot--red {
    grid-column: 1;
    grid-row: 2;
  }

  .lobby-header-emblem-slot--blue {
    grid-column: 2;
    grid-row: 2;
  }
}

@media (max-width: 520px) {
  .lobby-header-row {
    margin-bottom: 22px;
  }

  #lobby.lobby-panel .lobby-team-emblem--lobby-header .hud-team-emblem__shield {
    width: clamp(52px, 18vw, 88px);
    height: clamp(52px, 18vw, 88px);
  }
}

.lobby-title {
  margin: 0 0 6px;
  font-family: Manrope, system-ui, sans-serif;
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--mf-accent);
}

.lobby-subtitle {
  margin: 0 0 8px;
  font-family: Inter, system-ui, sans-serif;
  font-size: 14px;
  color: #5b5f67;
  letter-spacing: 0.02em;
}

.lobby-room-line {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: #2e333a;
}

.lobby-room-code-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  vertical-align: middle;
}

.lobby-room-line .lobby-room-code {
  font-family: ui-monospace, monospace;
  letter-spacing: 0.06em;
  color: #0053dc;
}

/* Сброс глобального `button:hover { filter: brightness(1.06) }` — на светлом фоне даёт «белую» вспышку */
.lobby-copy-code-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 10px;
  background: #eceef5;
  color: #0053dc;
  cursor: pointer;
  flex-shrink: 0;
  filter: none;
  -webkit-tap-highlight-color: transparent;
  transition: background 0.15s ease, transform 0.1s ease;
}

.lobby-copy-code-btn:hover,
.lobby-copy-code-btn:focus-visible,
.lobby-copy-code-btn:active {
  background: #dfe2ec;
  filter: none;
}

.lobby-copy-code-btn__icon-wrap {
  position: relative;
  width: 20px;
  height: 20px;
  display: inline-flex;
  flex: none;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}

.lobby-copy-code-btn__icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  line-height: 1;
}

.lobby-copy-code-btn__icon[hidden] {
  display: none !important;
}

#lobby.lobby-panel .lobby-copy-code-btn {
  width: 36px;
  margin-top: 0;
}

.lobby-invite-line {
  margin: 6px 0 0;
}

.lobby-invite-url-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  max-width: min(100%, 48rem);
  vertical-align: middle;
}

#lobby.lobby-panel .lobby-invite-url {
  display: inline-block;
  min-width: 0;
  max-width: min(100%, 38rem);
  padding: 2px 0;
  font-family: ui-monospace, monospace;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1.35;
  color: #3d4450;
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.lobby-role-chips {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 10px 0 0;
  min-height: 0;
}

.lobby-role-chips.hidden {
  display: none;
}

.lobby-role-chip {
  display: inline-flex;
  align-items: center;
  padding: 6px 12px;
  border-radius: 999px;
  font-family: Inter, system-ui, sans-serif;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.2;
}

.lobby-role-chip--owner {
  background: rgba(0, 83, 220, 0.1);
  color: #0053dc;
  border: 1px solid rgba(0, 83, 220, 0.22);
}

.lobby-role-chip--captain {
  background: rgba(85, 96, 113, 0.1);
  color: #556071;
  border: 1px solid rgba(85, 96, 113, 0.2);
}

.lobby-grid {
  display: grid;
  grid-template-columns: var(--lobby-cols);
  gap: var(--lobby-gap);
  align-items: stretch;
}

/* Нижняя строка: слева готовность, в центре те же кнопки, что в средней колонке выше */
.lobby-bottom-row {
  display: grid;
  grid-template-columns: var(--lobby-cols);
  gap: var(--lobby-gap);
  align-items: center;
  margin-top: 8px;
}

.lobby-bottom-left {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.lobby-bottom-center {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lobby-bottom-center .lobby-actions {
  width: 100%;
  margin-top: 0;
}

.lobby-bottom-right {
  min-width: 0;
}

/* Блок готовности скрыт — не оставляем пустую левую треть */
.lobby-bottom-row:has(#lobbyReadyBlock.hidden) .lobby-bottom-left,
.lobby-bottom-row:has(#lobbyReadyBlock.hidden) .lobby-bottom-right {
  display: none;
}

.lobby-bottom-row:has(#lobbyReadyBlock.hidden) .lobby-bottom-center {
  grid-column: 1 / -1;
  justify-content: center;
}

.lobby-team-heading {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 4px 8px;
  margin-bottom: 16px;
  /* Две строки названия при увеличенном шрифте (подбор в ui.js) */
  min-height: 72px;
}

/* Слот слева под кнопку стиля — фиксированная ширина, чтобы заголовок оставался по центру строки */
.lobby-team-heading__slot--start {
  flex: 0 0 36px;
  width: 36px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  z-index: 1;
}

.lobby-team-heading__slot--end {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  z-index: 1;
}

/* Название команды — по центру полосы; font-size подбирается в ui.js под самое длинное слово */
.lobby-team-heading__title {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  max-width: min(420px, calc(100% - 64px));
  text-align: center;
  pointer-events: none;
  z-index: 0;
  margin: 0;
  overflow-wrap: normal;
  word-break: normal;
}

.lobby-team-style-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 10px;
  background: #eceef5;
  color: #2e333a;
  cursor: pointer;
  transition: background 0.15s ease, box-shadow 0.15s ease;
  box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06);
}

.lobby-team-style-btn:hover {
  background: rgba(62, 118, 254, 0.14);
  box-shadow: 0 2px 8px rgba(0, 83, 220, 0.12);
}

.lobby-column--red .lobby-team-style-btn:hover {
  background: rgba(168, 56, 54, 0.14);
  box-shadow: 0 2px 8px rgba(168, 56, 54, 0.15);
}

.lobby-column--blue .lobby-team-style-btn:hover {
  background: rgba(0, 83, 220, 0.12);
  box-shadow: 0 2px 8px rgba(0, 83, 220, 0.14);
}

.lobby-team-style-btn .lobby-team-style-icon {
  font-size: 20px;
  line-height: 1;
  transition: transform 0.35s ease;
}

.lobby-team-style-btn:hover .lobby-team-style-icon {
  transform: rotate(-75deg);
}

.lobby-team-style-btn:focus-visible {
  outline: 2px solid rgba(0, 83, 220, 0.45);
  outline-offset: 2px;
}

.lobby-team-label {
  margin: 0;
  font-family: Inter, system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.lobby-team-label--red {
  color: #a83836;
}

.lobby-team-label--blue {
  color: #0053dc;
}

/* Сгенерированные названия команд (не только CAPS, длинная строка) */
.lobby-team-label--nickname {
  text-transform: none;
  letter-spacing: 0.04em;
  font-weight: 700;
  line-height: 1.25;
  max-width: min(200px, 46vw);
}

.lobby-team-heading .lobby-team-heading__title.lobby-team-label--nickname {
  max-width: min(420px, calc(100% - 64px));
  /* Стартовый верхний предел до подгонки fitLobbyTeamHeadingTitle */
  font-size: 26px;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.22;
}

/* Карточка настроек для гостя: курсор-подсказка + тултип по наведению (lobbyMatchSettingsTooltip.js) */
.lobby-card--settings.lobby-card--settings-guest {
  cursor: help;
}

.lobby-team-count {
  font-size: 10px;
  font-weight: 700;
  color: #5b5f67;
  background: #eceef5;
  padding: 3px 8px;
  border-radius: 999px;
}

.lobby-team-slots {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.lobby-player-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: 0 4px 20px rgba(0, 83, 220, 0.04);
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.lobby-column--red .lobby-player-card:hover {
  background: #e6e8f0;
}

.lobby-column--blue .lobby-player-card:hover {
  background: #e6e8f0;
}

/* Своя строка в списке: заметное кольцо + лёгкий тон команды (светлая палитра лобби) */
.lobby-column--red .lobby-player-card--self {
  background: rgba(168, 56, 54, 0.09);
  box-shadow:
    0 0 0 1.5px rgba(168, 56, 54, 0.38),
    0 6px 22px rgba(168, 56, 54, 0.14);
}

.lobby-column--blue .lobby-player-card--self {
  background: rgba(0, 83, 220, 0.08);
  box-shadow:
    0 0 0 1.5px rgba(0, 83, 220, 0.34),
    0 6px 22px rgba(0, 83, 220, 0.12);
}

.lobby-column--red .lobby-player-card--self:hover {
  background: rgba(168, 56, 54, 0.13);
}

.lobby-column--blue .lobby-player-card--self:hover {
  background: rgba(0, 83, 220, 0.11);
}

.lobby-player-avatar {
  flex: 0 0 auto;
  /* 2:1 как превью машины сверху — без растягивания в квадрате */
  width: 72px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  overflow: hidden;
}

.lobby-column--red .lobby-player-avatar {
  background: rgba(250, 116, 111, 0.12);
}

.lobby-column--blue .lobby-player-avatar {
  background: rgba(62, 118, 254, 0.12);
}

.lobby-player-avatar .lobby-list-car-preview {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  border-radius: 6px;
  background: transparent;
}

.lobby-player-meta {
  flex: 1;
  min-width: 0;
}

.lobby-player-meta .lobby-player-name {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  color: #2e333a;
  line-height: 1.25;
}

.lobby-player-class {
  margin: 2px 0 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #5b5f67;
}

/* Значок капитана в списке — один на команду, виден всем клиентам */
.lobby-captain-star {
  flex: 0 0 auto;
  font-size: 18px;
}

.lobby-column--red .lobby-captain-star {
  color: #a83836;
}

.lobby-column--blue .lobby-captain-star {
  color: #0053dc;
}

.lobby-slot-empty {
  box-sizing: border-box;
  min-height: 56px;
  padding: 10px 12px;
  border: 2px dashed rgba(174, 178, 187, 0.35);
  border-radius: 12px;
  background: #f2f3fa;
}

.lobby-column--center {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-height: 0;
}

.lobby-column--center .lobby-card--class,
.lobby-column--center .lobby-card--settings {
  flex: 0 0 auto;
}

.lobby-card {
  border-radius: 16px;
  padding: 22px 20px;
}

.lobby-card--class {
  background: #ffffff;
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.06);
}

.lobby-card--settings {
  background: #eceef5;
}

.lobby-card--formation {
  background: #ffffff;
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.06);
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
}

.formation-map {
  width: 100%;
  flex: 1 1 auto;
  min-height: 220px;
  display: flex;
  flex-direction: column;
}

.formation-map--empty {
  min-height: 0;
}

/* Базовый контейнер для любой мини-карты (лобби и перерыв) */
.formation-map-clean {
  display: block;
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
  line-height: 0;
  font-size: 0;
  transform: translateZ(0);
  mask-image: -webkit-radial-gradient(white, black);
}

.formation-map-clean .formation-map-svg {
  display: block;
  width: 100%;
  height: auto;
  background-color: #2e8b41;
}

.formation-map > .formation-map-clean {
  flex: 1 1 auto;
  min-height: 0;
  align-self: stretch;
}

.formation-field-bg {
  fill: #2b8d43;
}

/* Подписи слотов: как табло «Тайм k/n» + чипса в матче */
.formation-slot-label-stack {
  pointer-events: none;
}

.formation-slot-chip {
  pointer-events: none;
}

.formation-slot-label {
  font-family: system-ui, "Segoe UI", Roboto, sans-serif;
  font-weight: 700;
  letter-spacing: 0.05em;
  pointer-events: none;
}

.formation-slot-label--self {
  fill: #e2e6ed;
}

.formation-slot-label--peer {
  fill: #e2e6ed;
}

.formation-slot-label--muted {
  fill: rgba(226, 230, 237, 0.82);
}

/* Чужая половина поля в лобби — приглушена, но читаемо */
.formation-slot--opponent > circle {
  opacity: 0.82;
}

.formation-slot--opponent .formation-slot-label {
  opacity: 0.9;
}

.formation-center-line {
  stroke: rgba(255, 255, 255, 0.55);
  stroke-width: 8;
  fill: none;
}

.formation-center-dot {
  stroke: none;
  fill: rgba(255, 255, 255, 0.88);
}

.formation-slot--clickable {
  cursor: pointer;
}

.lobby-card-kicker {
  margin: 0 0 18px;
  font-family: Inter, system-ui, sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-align: center;
  color: #5b5f67;
}

.lobby-card--settings .lobby-card-kicker {
  text-align: left;
}

.lobby-card-kicker-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
}

.lobby-card-kicker-row .lobby-card-kicker {
  margin: 0;
  flex: 1;
  min-width: 0;
}

.lobby-match-settings-hint-btn {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: #eceef5;
  color: #0053dc;
  cursor: help;
  transition: background 0.15s ease, color 0.15s ease;
}

.lobby-match-settings-hint-btn:hover,
.lobby-match-settings-hint-btn:focus-visible {
  background: #dce4ff;
  color: #003aa8;
  outline: none;
}

.lobby-match-settings-hint-btn .material-symbols-outlined {
  font-size: 18px;
  font-variation-settings: "FILL" 0, "wght" 600, "GRAD" 0, "opsz" 24;
}

/* Тултип гостя при наведении на карточку настроек матча */
.lobby-match-settings-tooltip {
  position: fixed;
  z-index: 12000;
  min-width: 12rem;
  max-width: min(300px, calc(100vw - 24px));
  padding: 0.65rem 0.85rem 0.7rem;
  border-radius: 12px;
  background: rgba(15, 23, 42, 0.94);
  border: 1px solid rgba(148, 163, 184, 0.38);
  box-shadow:
    0 14px 36px rgba(0, 0, 0, 0.38),
    0 0 0 1px rgba(255, 255, 255, 0.06) inset;
  color: #e2e8f0;
  pointer-events: none;
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  opacity: 0;
  transform: translateY(6px);
  transition:
    opacity 0.14s ease,
    transform 0.14s ease;
}

.lobby-match-settings-tooltip--visible {
  opacity: 1;
  transform: translateY(0);
}

.lobby-match-settings-tooltip__line {
  margin: 0;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.4;
}

.lobby-match-settings-tooltip__line + .lobby-match-settings-tooltip__line {
  margin-top: 0.45rem;
}

.lobby-match-settings-tooltip__line--muted {
  font-weight: 600;
  font-size: 0.74rem;
  color: rgba(226, 232, 240, 0.88);
}

.lobby-car-picker-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}

.lobby-panel .car-class-btn {
  flex: none;
  width: auto;
  margin: 0;
  padding: 14px 8px 12px;
  border-radius: 12px;
  border: 2px solid transparent;
  background: #eceef5;
  color: #2e333a;
}

.lobby-panel .car-class-btn:hover {
  border-color: rgba(0, 83, 220, 0.22);
  background: rgba(62, 118, 254, 0.08);
}

.lobby-panel .car-class-btn.is-selected {
  border-color: #0053dc;
  background: rgba(0, 83, 220, 0.05);
  box-shadow: inset 0 0 0 1px rgba(0, 83, 220, 0.08);
}

.lobby-panel .car-class-btn-cap {
  color: #2e333a;
  font-size: 12px;
  font-weight: 700;
  font-family: Manrope, system-ui, sans-serif;
}

.lobby-panel .car-class-btn.is-selected .car-class-btn-cap {
  color: #0053dc;
}

.lobby-panel .car-class-btn canvas {
  background: transparent;
}

.lobby-settings-stack {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}

.lobby-settings-grid--paired {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 20px;
  align-items: start;
}

.lobby-setting-group--field-size {
  width: 100%;
  min-width: 0;
}

.lobby-setting-group--field-size .lobby-setting-display {
  width: 100%;
}

@media (max-width: 519px) {
  .lobby-settings-grid--paired {
    grid-template-columns: 1fr;
  }
}

.lobby-setting-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.lobby-setting-label {
  display: block;
  font-family: Inter, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #777b83;
  margin: 0;
}

.lobby-setting-display {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-height: 44px;
  padding: 8px 12px;
  background: #ffffff;
  border-radius: 10px;
  border: 1px solid rgba(0, 83, 220, 0.08);
  position: relative;
}

.lobby-setting-display--muted {
  opacity: 0.95;
}

.lobby-setting-value {
  font-family: Manrope, system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #2e333a;
}

/* Скрытый нативный select — только для логики и события change */
#lobby.lobby-panel .lobby-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.lobby-dropdown-wrap {
  flex: 1;
  min-width: 0;
  position: relative;
}

.lobby-dropdown-wrap.hidden {
  display: none;
}

.lobby-dropdown-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 2px 4px 2px 0;
  border: none;
  border-radius: 8px;
  background: transparent;
  font: inherit;
  color: #2e333a;
  cursor: pointer;
  text-align: left;
  outline: none;
}

.lobby-dropdown-trigger:hover {
  color: #0053dc;
}

.lobby-dropdown-trigger:focus-visible {
  box-shadow: 0 0 0 2px rgba(0, 83, 220, 0.35);
}

.lobby-dropdown-label {
  flex: 1;
  min-width: 0;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: inherit;
}

.lobby-dropdown-chevron {
  flex-shrink: 0;
  width: 10px;
  height: 10px;
  border-right: 2px solid #777b83;
  border-bottom: 2px solid #777b83;
  transform: rotate(45deg) translateY(-2px);
  margin-right: 4px;
  opacity: 0.85;
}

.lobby-dropdown-menu {
  /* Координаты при открытии задаёт lobbyDropdowns.js (fixed), чтобы меню не раздувало высоту страницы и не включало скролл окна */
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  z-index: 2000;
  margin: 0;
  padding: 6px 0;
  list-style: none;
  background: #ffffff;
  border-radius: 12px;
  border: 1px solid rgba(0, 83, 220, 0.12);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
  max-height: 240px;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.lobby-dropdown-option {
  padding: 10px 14px;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 14px;
  font-weight: 600;
  color: #2e333a;
  cursor: pointer;
  transition: background 0.12s ease;
}

.lobby-dropdown-option:hover,
.lobby-dropdown-option:focus {
  background: #eceef5;
  outline: none;
}

.lobby-time-guest {
  flex: 1;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 15px;
  font-weight: 700;
  color: #2e333a;
}

.lobby-setting-icon {
  font-size: 20px;
  color: #0053dc;
  flex-shrink: 0;
}

.lobby-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 4px;
}

/* В `#lobby` кнопки ряда действий — по содержимому (глобальный стиль `button` иначе растягивает). */
#lobby.lobby-panel .lobby-actions button {
  width: auto;
  margin-top: 0;
}

.btn-lobby-leave {
  padding: 14px 20px;
  border-radius: 12px;
  border: none;
  background: transparent;
  color: #5b5f67;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.btn-lobby-leave:hover {
  background: #e6e8f0;
  filter: none;
}

.lobby-ready-block {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.lobby-ready-dock {
  width: 100%;
  max-width: min(100%, 320px);
  justify-content: flex-start;
}

.lobby-ready-block--all .period-break-ready-kicker {
  color: #166534;
}

#lobbyReadyStatus.lobby-ready-line--all,
.period-break-ready-line.lobby-ready-line--all {
  color: #15803d;
}

.btn-lobby-host-play {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, #15803d 0%, #22c55e 100%);
  color: #fff;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(21, 128, 61, 0.28);
  transition: transform 0.15s ease, filter 0.15s ease;
  filter: none;
  -webkit-tap-highlight-color: transparent;
}

.btn-lobby-host-play:hover {
  filter: none;
  transform: scale(1.02);
}

.btn-lobby-host-play:active {
  transform: scale(0.99);
}

.btn-lobby-host-play .material-symbols-outlined {
  font-size: 24px;
  font-variation-settings: "FILL" 1, "wght" 600, "GRAD" 0, "opsz" 24;
}

.btn-lobby-host-play:disabled {
  cursor: not-allowed;
  opacity: 0.48;
  transform: none;
  box-shadow: none;
  filter: grayscale(0.15);
}

.btn-lobby-host-play:disabled:hover {
  transform: none;
  filter: grayscale(0.15);
}

#lobby.lobby-panel .btn-lobby-host-play {
  width: auto;
  margin-top: 0;
}

@media (max-width: 1023px) {
  .lobby-bottom-row {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
  }

  .lobby-bottom-left {
    flex: 1 1 auto;
    min-width: min(200px, 100%);
  }

  .lobby-bottom-center {
    flex: 1 1 auto;
    min-width: min(200px, 100%);
    justify-content: flex-end;
  }

  .lobby-bottom-right {
    display: none;
  }

  .lobby-bottom-row:has(#lobbyReadyBlock.hidden) {
    justify-content: center;
  }

  .lobby-bottom-row:has(#lobbyReadyBlock.hidden) .lobby-bottom-center {
    flex: 1 1 100%;
    max-width: 100%;
    grid-column: unset;
    justify-content: center;
  }
}

.lobby-ready-tick {
  flex: 0 0 auto;
  font-size: 20px;
  line-height: 1;
  color: #15803d;
  font-variation-settings: "FILL" 1, "wght" 600, "GRAD" 0, "opsz" 24;
}

.btn-lobby-start {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 12px;
  border: none;
  background: linear-gradient(135deg, #0053dc 0%, #3e76fe 100%);
  color: #fff;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 15px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 83, 220, 0.25);
  transition: transform 0.15s ease, filter 0.15s ease;
}

.btn-lobby-start:hover {
  filter: brightness(1.05);
  transform: scale(1.02);
}

.btn-lobby-start__icon-slot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  min-height: 22px;
}

.btn-lobby-start__pending {
  font-size: 16px;
  font-weight: 800;
  line-height: 1;
}

.btn-lobby-start__check {
  display: none;
  font-size: 22px;
  font-variation-settings: "FILL" 1, "wght" 700, "GRAD" 0, "opsz" 24;
}

.btn-lobby-start--done .btn-lobby-start__pending {
  display: none;
}

.btn-lobby-start--done .btn-lobby-start__check {
  display: flex;
  color: #fff;
}

.btn-lobby-start:disabled,
.btn-lobby-start--done {
  cursor: default;
  transform: none;
}

.btn-lobby-start--done {
  background: linear-gradient(135deg, #15803d 0%, #22c55e 100%);
  box-shadow: 0 8px 24px rgba(21, 128, 61, 0.28);
  opacity: 1;
}

.btn-lobby-start:disabled:not(.btn-lobby-start--done) {
  opacity: 0.82;
}

.btn-lobby-start:disabled:hover,
.btn-lobby-start--done:hover {
  filter: none;
  transform: none;
}

.btn-lobby-start--done:hover {
  filter: brightness(1.03);
}

.panel h1,
.panel h2 {
  margin: 0 0 10px;
}

label {
  display: block;
  margin-top: 10px;
  font-size: 14px;
  color: var(--muted);
}

input,
button {
  width: 100%;
  margin-top: 6px;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  padding: 10px 12px;
  font-size: 15px;
}

input {
  color: var(--text);
  background: rgba(255, 255, 255, 0.08);
}

.car-class-field {
  margin-top: 12px;
}

.car-class-field-label {
  display: block;
  font-size: 14px;
  color: var(--muted);
  margin-bottom: 8px;
}

.car-class-picker {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
}

.car-class-btn {
  flex: 1 1 90px;
  min-width: 0;
  margin: 0;
  padding: 8px 6px 10px;
  border-radius: 12px;
  border: 2px solid rgba(255, 255, 255, 0.14);
  background: rgba(0, 0, 0, 0.2);
  cursor: pointer;
  color: var(--muted);
  font-size: 11px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  pointer-events: auto;
}

.car-class-btn canvas {
  display: block;
  border-radius: 6px;
  background: rgba(0, 0, 0, 0.25);
}

.car-class-btn-cap {
  font-size: 11px;
  font-weight: 600;
  color: #c8d4ec;
}

.car-class-btn:hover {
  border-color: rgba(79, 214, 184, 0.45);
}

.car-class-btn.is-selected {
  border-color: rgba(79, 214, 184, 0.85);
  background: rgba(79, 214, 184, 0.12);
  color: var(--text);
}

.car-class-btn.is-selected .car-class-btn-cap {
  color: #e8f5ff;
}

.lobby-list-car-preview {
  flex: 0 0 auto;
  border-radius: 6px;
  vertical-align: middle;
}

.lobby-wait {
  color: var(--muted);
  font-size: 13px;
}

button {
  background: linear-gradient(120deg, #22b8a3, #32a5d7);
  color: white;
  border: none;
  cursor: pointer;
  font-weight: 600;
}

button:hover {
  filter: brightness(1.06);
}

/* Глобальный стиль кнопок не должен ломать лобби */
#lobby.lobby-panel .btn-lobby-leave {
  background: transparent;
  color: #5b5f67;
  border: none;
  filter: none;
}

#lobby.lobby-panel .btn-lobby-leave:hover {
  background: #e6e8f0;
  filter: none;
}

#lobby.lobby-panel .btn-lobby-start {
  background: linear-gradient(135deg, #0053dc 0%, #3e76fe 100%);
  color: #fff;
  border: none;
}

#lobby.lobby-panel .btn-lobby-start:hover {
  filter: brightness(1.05);
}

#lobby.lobby-panel .btn-lobby-start.btn-lobby-start--done {
  background: linear-gradient(135deg, #15803d 0%, #22c55e 100%);
  box-shadow: 0 8px 24px rgba(21, 128, 61, 0.28);
}

#lobby.lobby-panel .btn-lobby-start:disabled:hover,
#lobby.lobby-panel .btn-lobby-start--done:hover {
  filter: none;
}

#lobby.lobby-panel .btn-lobby-start--done:hover {
  filter: brightness(1.03);
}

#lobby.lobby-panel .lobby-dropdown-trigger {
  margin-top: 0;
  background: transparent;
  color: #2e333a;
  filter: none;
}

#lobby.lobby-panel .lobby-dropdown-trigger:hover {
  filter: none;
}

.status {
  margin-top: 10px;
  min-height: 18px;
  font-size: 14px;
}

#menu .status {
  color: #64748b;
}

#menu .status.status--error {
  color: #dc2626;
}

#menu .status.status--ok {
  color: #0d9488;
}

.hidden {
  display: none !important;
}

.tag-red {
  color: var(--red);
}

.tag-blue {
  color: var(--blue);
}

#hud {
  position: fixed;
  inset: 0;
  pointer-events: none;
}

/* Табло + эмблемы по бокам: одна строка с табло — высота плашек = высоте табло; см. ui.js */
.broadcast-hud-with-emblems {
  position: fixed;
  top: 14px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  max-width: calc(100vw - 12px);
  pointer-events: none;
}

.broadcast-hud-score-row {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: center;
  gap: clamp(4px, 1.2vw, 10px);
  width: fit-content;
  max-width: min(960px, calc(100vw - 24px));
}

.hud-emblem-rail {
  flex: 0 0 auto;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: stretch;
  width: clamp(48px, 11vw, 112px);
  min-width: 44px;
  position: relative;
  z-index: 0;
  overflow: hidden;
}

.hud-emblem-plate {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
  width: 100%;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(3px, 0.6vmin, 6px);
  background: rgba(255, 255, 255, 0.82);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.12);
  /* Для 100cqi/100cqb у щита — влезает целиком в плашку, без срезания герба. */
  container-type: size;
  container-name: hud-emblem-plate;
  transition:
    transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.38s ease;
  will-change: transform;
}

.broadcast-hud-with-emblems--concealed .hud-emblem-rail--red .hud-emblem-plate {
  transform: translateX(clamp(72px, 18vw, 160px));
  opacity: 0;
  pointer-events: none;
}

.broadcast-hud-with-emblems--concealed .hud-emblem-rail--blue .hud-emblem-plate {
  transform: translateX(clamp(-72px, -18vw, -160px));
  opacity: 0;
  pointer-events: none;
}

.broadcast-hud-with-emblems--instant .hud-emblem-plate {
  transition: none !important;
}

.broadcast-hud-stack {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: fit-content;
  max-width: min(960px, calc(100vw - 24px));
  pointer-events: none;
}

/* Табло и плашка гола — одна колонка: ширина баннера = ширине табло (не шире строки с текстом гола) */
.broadcast-hud-score-row > .broadcast-hud-center-column {
  flex: 0 1 clamp(320px, 44vw, 560px);
  width: clamp(320px, 44vw, 560px);
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-width: 0;
  max-width: min(960px, calc(100vw - 2 * clamp(44px, 11vw, 112px) - 28px));
  /* Выше боковых рельс (.hud-emblem-rail z-index: 1), чтобы эмблемы уезжали/выезжали *под* табло, а не поверх */
  position: relative;
  z-index: 2;
}

/* Зазор между табло и плашкой гола — табло сохраняет скругление со всех сторон */
.broadcast-hud-center-column:has(.goal-banner.goal-banner--show) {
  gap: 6px;
}

.broadcast-hud-center-column > .scoreboard.scoreboard--broadcast {
  flex: 0 0 auto;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}

.broadcast-hud-center-column > .goal-banner.goal-banner--broadcast {
  align-self: stretch;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
}

.hud-team-emblem {
  display: block;
  position: relative;
}

/* Звёзды всегда в DOM (даже 0 шт.): фиксированная полоса, чтобы щит не прыгал по вертикали (исключение — эмблема у табло, см. `.hud-team-emblem--beside-scoreboard … :empty`) */
.hud-team-emblem__stars {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  min-height: clamp(12px, 2.2vmin, 18px);
}

/* Эмблема у табло: высота колонки = табло; звёзды и щит внутри плашки (ниже базового .hud-team-emblem) */
.hud-team-emblem--beside-scoreboard {
  --hud-emblem-star-space: 0px;
  --hud-emblem-shield-size: min(78cqi, 78cqb);
  display: grid;
  grid-template-rows: minmax(0, 1fr);
  align-items: center;
  justify-items: center;
  place-content: center;
  flex: 1 1 0;
  min-height: 0;
  height: 100%;
  width: 100%;
  max-height: 100%;
  overflow: visible;
  /* Тень чуть внутри; обрезка — только у .hud-emblem-plate по скруглению, щит масштабируется, не срезает SVG. */
  filter: drop-shadow(0 2px 8px rgba(15, 23, 42, 0.12));
}

.hud-team-emblem--beside-scoreboard[data-stars]:not([data-stars="0"]) {
  --hud-emblem-star-space: clamp(10px, 14cqb, 16px);
  --hud-emblem-shield-size: min(78cqi, calc(100cqb - var(--hud-emblem-star-space) - 4px));
  grid-template-rows: var(--hud-emblem-star-space) minmax(0, 1fr);
}

.hud-team-emblem--beside-scoreboard .hud-team-emblem__stars {
  position: static;
  left: auto;
  bottom: auto;
  transform: none;
  grid-row: 1;
  align-self: center;
  justify-self: center;
  margin: 0;
  max-width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  justify-content: center;
  gap: 1px;
  pointer-events: none;
  z-index: 1;
}

/* Без звёзд не резервируем полосу (.hud-team-emblem__stars иначе имеет min-height) — щит центрируется в плашке */
.hud-team-emblem--beside-scoreboard .hud-team-emblem__stars:empty {
  display: none;
}

/* Квадрат, вписанный в .hud-emblem-plate: отдельно для 0 звёзд и для ряда со звёздами. */
.hud-team-emblem--beside-scoreboard .hud-team-emblem__shield {
  position: relative;
  grid-row: 1;
  align-self: center;
  justify-self: center;
  box-sizing: border-box;
  min-width: 0;
  min-height: 0;
  width: var(--hud-emblem-shield-size);
  height: var(--hud-emblem-shield-size);
  max-width: 100%;
  max-height: 100%;
  aspect-ratio: 1;
  margin-inline: auto;
  overflow: visible;
  /* Щит только контейнер для абс. svg+эмодзи: вытягивал бы inline-svg по flex и ломал пропорции. */
  display: block;
}

.hud-team-emblem--beside-scoreboard[data-stars]:not([data-stars="0"]) .hud-team-emblem__shield {
  grid-row: 2;
}

.hud-team-emblem--beside-scoreboard .hud-team-emblem__svg {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  box-sizing: border-box;
  object-fit: contain;
  object-position: center;
  padding: 2px;
  overflow: visible;
  pointer-events: none;
  z-index: 0;
}

.hud-team-emblem__shield {
  position: relative;
}

.hud-team-emblem__svg {
  display: block;
  width: 100%;
  height: 100%;
}

.hud-team-emblem__star {
  font-size: clamp(10px, 2vmin, 14px);
  line-height: 1;
  color: #e6b008;
  text-shadow:
    0 0 1px rgba(255, 236, 160, 0.95),
    0 1px 2px rgba(100, 70, 0, 0.45);
}

.hud-team-emblem__mark {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -54%);
  font-size: clamp(1.65rem, 5.2vmin, 2.85rem);
  line-height: 1;
  pointer-events: none;
  text-shadow:
    0 0 1px rgba(255, 255, 255, 0.85),
    0 2px 6px rgba(0, 0, 0, 0.18);
}

.hud-team-emblem--beside-scoreboard .hud-team-emblem__mark {
  font-size: clamp(0.7rem, min(21cqi, 24cqb), 1.55rem);
  z-index: 1;
  line-height: 1;
  white-space: nowrap;
  display: block;
  width: max-content;
  max-width: 100%;
  text-align: center;
  left: 50%;
  /* transform в базовом .hud-team-emblem__mark; без растяжения по боксу щита */
  box-sizing: border-box;
  transform: translate(-50%, -54%);
}

.hud-team-emblem--beside-scoreboard .hud-team-emblem__star {
  /* Material Symbols: квадратная клетка, иначе глифы «тянут» по flex-строке. */
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 1.15em;
  min-width: 1.15em;
  max-width: 1.15em;
  height: 1.15em;
  min-height: 1.15em;
  max-height: 1.15em;
  box-sizing: border-box;
  font-size: clamp(7px, min(8cqi, 14cqb), 13px);
  line-height: 1;
  flex-shrink: 0;
  overflow: visible;
  aspect-ratio: 1;
}

@media (max-width: 520px) {
  .hud-emblem-rail {
    width: clamp(40px, 16vw, 88px);
    min-width: 36px;
  }

  .hud-team-emblem--beside-scoreboard .hud-team-emblem__star {
    font-size: clamp(6px, min(8cqi, 13cqb), 11px);
  }
}

/* Табло счёта (стиль «прямой эфир») */
.scoreboard.scoreboard--broadcast {
  /* Не ставить container-type: здесь — у родителя .broadcast-hud-score-row стоит width:fit-content,
     size-container ломал расчёт внутренней ширины и скукоживал всю полосу + cqi-значения. */
  max-width: min(960px, calc(100vw - 24px));
  min-width: 0;
  position: relative;
  /* Две боковые ячейки 1fr равны по ширине = max(лево, право) по минимальному интринсику. */
  display: grid;
  grid-template-columns: minmax(0, 1fr) 52px minmax(120px, max-content) 52px minmax(0, 1fr);
  align-items: stretch;
  justify-items: stretch;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
  font-family: system-ui, "Segoe UI", Roboto, sans-serif;
  /* При сумме min-content «ушек» + центр > 100% — прокрутка, иначе обрезка длинного слова. */
  overflow: hidden;
  overflow-x: auto;
  overflow-y: hidden;
  box-sizing: border-box;
}

/* Ширина центра задаётся .broadcast-hud-center-column (см. выше) */

.scoreboard-team {
  min-width: 0;
  width: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 10px 14px;
  background: #fff;
  box-sizing: border-box;
}

.scoreboard-team--red {
  text-align: right;
  align-items: flex-end;
}

.scoreboard-team--blue {
  text-align: left;
  align-items: flex-start;
}

.scoreboard-team-name {
  margin-top: 0;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  line-height: 1.25;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  white-space: normal;
  /* break-word дал внутрисловенные «Западны»+«е»; нормальный — переносы по границам слов/пробелов. */
  overflow-wrap: normal;
  word-break: normal;
  hyphens: none;
  word-wrap: normal;
}

/* Серверное смешное имя команды — без принудительного CAPS, чуть плотнее */
.scoreboard-team-name--generated {
  text-transform: none;
  font-weight: 700;
  letter-spacing: 0.03em;
  font-size: 14px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  width: 100%;
  min-width: 0;
  word-break: normal;
  overflow-wrap: normal;
  hyphens: none;
}

.scoreboard-team--red .scoreboard-team-name {
  color: #c00000;
}

.scoreboard-team--blue .scoreboard-team-name {
  color: #0055d4;
}

.scoreboard-score {
  min-width: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  box-sizing: border-box;
}

.scoreboard-score--red {
  background: #c00000;
}

.scoreboard-score--blue {
  background: #0055d4;
}

.scoreboard-center {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 10px 14px;
  background: #f3f4f6;
  box-sizing: border-box;
}

.scoreboard-timer {
  font-size: 22px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #1f2937;
  letter-spacing: 0.02em;
  line-height: 1.1;
}

.scoreboard-period {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #4b5563;
  line-height: 1.2;
}

.scoreboard-live {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.scoreboard-live-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #00665c;
  flex-shrink: 0;
}

.scoreboard-live-text {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: #00665c;
  line-height: 1.2;
  max-width: 22ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@media (max-width: 620px) {
  .broadcast-hud-stack {
    width: fit-content;
    max-width: calc(100vw - 16px);
  }

  .broadcast-hud-score-row > .broadcast-hud-center-column {
    width: clamp(132px, 42vw, 240px);
    flex-basis: clamp(132px, 42vw, 240px);
    max-width: calc(100vw - 2 * clamp(36px, 16vw, 88px) - 24px);
  }

  .scoreboard.scoreboard--broadcast {
    border-radius: 14px;
    max-width: calc(100vw - 16px);
    grid-template-columns: 38px minmax(86px, 1fr) 38px;
  }

  .scoreboard-team {
    display: none;
  }

  .scoreboard-score--red {
    grid-column: 1;
  }

  .scoreboard-center {
    grid-column: 2;
  }

  .scoreboard-score--blue {
    grid-column: 3;
  }

  .scoreboard-score {
    min-width: 38px;
    font-size: 20px;
  }

  .scoreboard-center {
    min-width: 86px;
    padding: 8px 7px;
  }

  .scoreboard-timer {
    font-size: 17px;
  }

  .scoreboard-live-text {
    font-size: 9px;
    max-width: 12ch;
  }
}

/* Правый низ: спидометр с дугой буста (табло); прозрачность 20% (opacity 0.8) */
/* Левый верхний угол: полноэкранный режим + FPS/пинг в матче */
.session-top-left-cluster {
  position: fixed;
  top: 14px;
  left: 14px;
  z-index: 52;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  pointer-events: none;
}

.session-top-left-cluster > .fullscreen-toggle-btn {
  pointer-events: auto;
}

body.in-match.match-menu-on #sessionTopLeftCluster {
  z-index: 160;
}

body.eom-results-active #sessionTopLeftCluster {
  z-index: 9550;
}

.fullscreen-toggle-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  cursor: pointer;
  transition:
    background 0.12s ease,
    box-shadow 0.12s ease,
    transform 0.1s ease;
}

.fullscreen-toggle-btn:hover {
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.16);
}

.fullscreen-toggle-btn:active {
  transform: scale(0.96);
}

.fullscreen-toggle-btn:focus-visible {
  outline: 2px solid #0053dc;
  outline-offset: 2px;
}

.fullscreen-toggle-btn__icon {
  font-size: 24px !important;
  color: #1f2937;
  font-variation-settings: "FILL" 0, "wght" 600, "GRAD" 0, "opsz" 24;
}

/* FPS и пинг: справа от кнопки полноэкранного режима */
.match-perf-hud {
  position: static;
  pointer-events: none;
  opacity: 0.88;
  font-family: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, monospace;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(248, 250, 252, 0.92);
  text-shadow: 0 1px 2px rgba(15, 23, 42, 0.75);
  white-space: nowrap;
}

.match-perf-sep {
  opacity: 0.55;
  margin: 0 0.35em;
}

@media (max-width: 620px) {
  .session-top-left-cluster {
    top: 10px;
    left: 10px;
    gap: 8px;
  }

  .match-perf-hud {
    font-size: 11px;
  }
}

.hud-gauges {
  position: fixed;
  right: 14px;
  bottom: 18px;
  z-index: 5;
  display: flex;
  flex-direction: row;
  align-items: flex-end;
  gap: 10px;
  pointer-events: none;
  opacity: 0.8;
}

.speedometer-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 130px;
  padding: 10px 10px 8px;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
  font-family: system-ui, "Segoe UI", Roboto, sans-serif;
  color: #c00000;
}

.speedometer-label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #4b5563;
  line-height: 1.2;
  margin-bottom: 2px;
}

.speedometer-dial {
  margin: 0 -4px;
}

.speedometer-readout {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 5px;
  margin-top: 2px;
}

.speedometer-kmh {
  font-size: 22px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #1f2937;
  letter-spacing: 0.02em;
  line-height: 1;
}

.speedometer-unit {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #6b7280;
  line-height: 1.2;
}

.boostometer-arc {
  opacity: 0.95;
  transition: stroke-dashoffset 80ms linear;
}

.speedometer-arc {
  opacity: 0.92;
  transition: stroke-dashoffset 60ms linear;
}

.boost-readout {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 6px;
  margin-top: 4px;
}

.boost-readout-label {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #4b5563;
  line-height: 1.2;
}

.boost-readout-pct {
  font-size: 11px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: #15803d;
  letter-spacing: 0.02em;
  line-height: 1;
}

.speedometer-needle {
  stroke: #1f2937;
  stroke-width: 2.4;
}

.speedometer-hub {
  fill: #1f2937;
}

@media (max-width: 620px) {
  .hud-gauges {
    right: 8px;
    bottom: 14px;
    gap: 6px;
  }

  .speedometer-card {
    width: 112px;
    padding: 8px 6px 6px;
    border-radius: 14px;
  }

  .speedometer-label {
    font-size: 9px;
  }

  .speedometer-svg {
    width: 104px;
    height: 73px;
  }

  .speedometer-kmh {
    font-size: 18px;
  }

  .speedometer-unit {
    font-size: 9px;
  }

  .boost-readout-pct {
    font-size: 10px;
  }
}

/* Левый низ: миникарта — только вид поля (без рамки-табло); прозрачность 20% (opacity 0.8) */
.hud-minimap {
  position: fixed;
  left: 14px;
  bottom: 18px;
  z-index: 5;
  pointer-events: none;
  opacity: 0.8;
  filter: drop-shadow(0 6px 14px rgba(15, 23, 42, 0.22));
}

.hud-minimap canvas {
  display: block;
  vertical-align: top;
  border-radius: 4px;
}

@media (max-width: 620px) {
  .hud-minimap {
    left: 8px;
    bottom: 14px;
  }
}

/* Гол: отдельная карточка под табло (те же скругления, что у табло) */
.goal-banner.goal-banner--broadcast {
  position: relative;
  align-self: stretch;
  margin: 0;
  padding: 0 16px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transform: translateY(-10px);
  transform-origin: top center;
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(15, 23, 42, 0.08);
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.1);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.35;
  color: #1f2937;
  text-align: center;
  white-space: normal;
  transition:
    max-height 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.36s ease,
    transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
    padding 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.goal-banner.goal-banner--broadcast.goal-banner--show {
  max-height: 120px;
  opacity: 0.88;
  transform: translateY(0);
  padding: 10px 16px 12px;
}

.goal-banner.goal-banner--broadcast[data-team="red"] {
  border-left: 4px solid #c00000;
  padding-left: 12px;
}

.goal-banner.goal-banner--broadcast[data-team="blue"] {
  border-left: 4px solid #0055d4;
  padding-left: 12px;
}

.goal-banner.goal-banner--broadcast.goal-banner--stoppage {
  border-left: 4px solid #b8860b;
  padding-left: 12px;
  background: linear-gradient(180deg, rgba(254, 252, 232, 0.92), rgba(255, 251, 235, 0.88));
  color: #422006;
}

@media (max-width: 620px) {
  .goal-banner.goal-banner--broadcast {
    border-radius: 14px;
    font-size: 12px;
  }
}

body:not(.in-match) #game {
  filter: none !important;
}

body.in-match.match-menu-on #game {
  filter: blur(11px) saturate(0.88);
  transition: filter 0.2s ease;
}

/* Обрыв Socket.IO: выше меню паузы (150), ниже настроек приложения (200) */
.socket-reconnect-overlay {
  position: fixed;
  inset: 0;
  z-index: 195;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(4, 8, 18, 0.78);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  pointer-events: auto;
}

.socket-reconnect-overlay.hidden {
  display: none !important;
  pointer-events: none !important;
}

.socket-reconnect-card {
  width: 100%;
  max-width: min(440px, calc(100vw - 48px));
  padding: 28px 26px 22px;
  box-sizing: border-box;
}

.socket-reconnect-card__title {
  margin: 0 0 12px;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  color: #2e333a;
  letter-spacing: -0.02em;
}

.socket-reconnect-card__message {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.45;
  color: #5b5f67;
}

.socket-reconnect-card__main {
  margin-bottom: 22px;
}

.socket-reconnect-card__actions {
  display: flex;
  justify-content: center;
}

.socket-reconnect-card__actions.hidden {
  display: none !important;
}

/* Меню матча (пауза): светлое стекло, палитра как в референсе Turbo Striker */
.match-menu-overlay {
  position: fixed;
  inset: 0;
  /* Шкала: .results-overlay 100 < меню 150 < .app-settings-overlay 200 (#appChrome 52) */
  z-index: 150;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(46, 51, 58, 0.1);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  pointer-events: auto;
}

.match-menu-overlay.hidden {
  display: none !important;
  pointer-events: none !important;
}

.match-menu-brand {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 48px;
  pointer-events: none;
  font-family: Manrope, system-ui, sans-serif;
  font-size: clamp(2rem, 8vw, 3.75rem);
  font-weight: 900;
  letter-spacing: -0.04em;
  color: rgba(46, 51, 58, 0.5);
  opacity: 0.2;
  z-index: 0;
}

.match-menu-panel {
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  width: 100%;
  max-width: 32rem;
  margin: 0 16px;
  padding: 48px;
  border-radius: 2rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.4);
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.08);
  color: #2e333a;
  font-family: Inter, system-ui, sans-serif;
}

/* Иначе `display: flex` этого блока перебивает глобальный `.hidden { display: none }` (одинаковая специфичность, правило ниже по файлу) */
.match-menu-panel.hidden {
  display: none !important;
}

.match-menu-panel--guest {
  padding-bottom: 40px;
}

.match-menu-esc {
  position: absolute;
  top: 32px;
  right: 40px;
  margin: 0;
  font-family: Inter, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(91, 95, 103, 0.6);
}

.match-menu-header {
  text-align: center;
  margin-bottom: 40px;
  width: 100%;
}

.match-menu-header--guest {
  margin-bottom: 0;
}

.match-menu-icon-wrap {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin-bottom: 16px;
  border-radius: 9999px;
  background: rgba(62, 118, 254, 0.1);
  color: #0053dc;
}

.match-menu-icon-wrap .material-symbols-outlined {
  font-size: 2.25rem;
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.match-menu-icon-wrap--guest {
  background: rgba(99, 89, 131, 0.12);
  color: #635983;
}

.match-menu-title {
  margin: 0 0 8px;
  font-family: Manrope, system-ui, sans-serif;
  font-size: clamp(1.75rem, 5vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.025em;
  color: #2e333a;
}

.match-menu-subtitle {
  margin: 0;
  font-size: 1rem;
  font-weight: 500;
  color: #5b5f67;
}

.match-menu-subtitle--guest {
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.45;
}

.match-menu-actions {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.match-menu-spacer {
  height: 4px;
}

.match-menu-btn {
  box-sizing: border-box;
  width: 100%;
  border: none;
  cursor: pointer;
  font: inherit;
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    background 0.2s ease,
    opacity 0.2s ease;
}

.match-menu-btn:active {
  transform: scale(0.95);
}

.match-menu-btn__main {
  display: flex;
  align-items: center;
  gap: 16px;
}

.match-menu-btn__label {
  font-family: Manrope, system-ui, sans-serif;
  font-size: 1.125rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.match-menu-btn__mi {
  font-size: 1.5rem;
  font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24;
}

.match-menu-btn__mi--fill {
  font-variation-settings: "FILL" 1, "wght" 400, "GRAD" 0, "opsz" 24;
}

.match-menu-btn__mi--error {
  color: #a83836;
}

.match-menu-btn__chevron {
  font-size: 1.5rem;
  opacity: 0.4;
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.match-menu-btn--primary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 32px;
  border-radius: 1rem;
  background: linear-gradient(135deg, #0053dc 0%, #3e76fe 100%);
  color: #ffffff;
  box-shadow: 0 4px 20px rgba(0, 83, 220, 0.25);
}

.match-menu-btn--primary:hover {
  transform: scale(1.02);
  box-shadow: 0 12px 36px rgba(0, 83, 220, 0.35);
}

.match-menu-btn--primary .match-menu-btn__chevron {
  color: rgba(255, 255, 255, 0.4);
}

.match-menu-btn--primary:hover .match-menu-btn__chevron {
  transform: translateX(4px);
}

.match-menu-btn--primary:active {
  transform: scale(0.95);
}

.match-menu-btn--danger {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 32px;
  border-radius: 1rem;
  background: #f2f3fa;
  color: #2e333a;
}

.match-menu-btn--danger .match-menu-btn__label {
  color: #2e333a;
}

.match-menu-btn--danger:hover {
  background: rgba(250, 116, 111, 0.1);
}

.match-menu-warn-badge {
  font-family: Inter, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #a83836;
  padding: 4px 8px;
  border-radius: 6px;
  background: rgba(250, 116, 111, 0.2);
  opacity: 0;
  transition: opacity 0.2s ease;
}

.match-menu-btn--danger:hover .match-menu-warn-badge {
  opacity: 1;
}

.match-menu-btn--ghost {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 16px 32px;
  border-radius: 1rem;
  background: transparent;
  color: #5b5f67;
}

.match-menu-btn--ghost:hover {
  background: #f9f9fe;
  color: #2e333a;
}

.match-menu-btn--ghost:hover .match-menu-btn__mi {
  color: #2e333a;
}

.match-menu-btn__ghost-label {
  font-family: Inter, system-ui, sans-serif;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

@media (max-width: 520px) {
  .match-menu-panel {
    padding: 36px 24px 32px;
    margin: 0 12px;
    border-radius: 1.5rem;
  }

  .match-menu-esc {
    top: 20px;
    right: 20px;
  }

  .match-menu-brand {
    padding: 24px;
  }
}

/* ─── Слайдеры громкости в меню паузы ─────────────────────────────────────── */

.vol-section {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.vol-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.vol-label {
  font-size: 13px;
  color: var(--muted);
  min-width: 110px;
}

.vol-slider {
  flex: 1;
  -webkit-appearance: none;
  appearance: none;
  height: 4px;
  border-radius: 4px;
  background: rgba(255, 255, 255, 0.15);
  outline: none;
  cursor: pointer;
}

.vol-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #32a5d7;
  cursor: pointer;
  box-shadow: 0 0 4px rgba(50, 165, 215, 0.6);
}

.vol-slider::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #32a5d7;
  cursor: pointer;
  border: none;
}

.vol-val {
  font-size: 12px;
  color: var(--muted);
  min-width: 34px;
  text-align: right;
}

/* ─── Верхний правый угол: музыка меню + настройки ─────────────────────────── */

/* Поверх полноэкранного меню паузы (150), иначе шестерёнка визуально в «молоке» бэкдропа */
body.in-match.match-menu-on #sessionTopRail {
  z-index: 160;
}

/* Колонка: профиль сверху, музыка + настройки снизу (тот же z-index, что раньше у #appChrome) */
.session-top-rail {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 52;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
  pointer-events: none;
}

.session-top-rail > * {
  pointer-events: auto;
}

/* Итоги матча: профиль, настройки и музыка остаются доступны справа (как в лобби), поверх EoM (9000). Ниже модалки авторизации (9600). */
body.eom-results-active #sessionTopRail {
  z-index: 9550;
}

/* Настройки внутри #ui-root (200) иначе под EoM (9000); статистика 2010 / выбор аватара 9595 иначе под #sessionTopRail (9550). На EoM: настройки и статистика 9580; аватар — 9595 поверх статистики. Ниже #authModalOverlay (9600). */
body.eom-results-active .app-settings-overlay,
body.eom-results-active .stats-modal-overlay {
  z-index: 9580;
}

/* Выбор аватара из модалки статистики — поверх оверлея статистики; ниже авторизации (9600). */
body.eom-results-active .avatar-modal-overlay {
  z-index: 9595;
}

.app-chrome {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 10px;
}

.app-chrome-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
  cursor: pointer;
  transition:
    background 0.12s ease,
    box-shadow 0.12s ease,
    transform 0.1s ease;
}

.app-chrome-btn:hover {
  background: #fff;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.16);
}

.app-chrome-btn:active {
  transform: scale(0.96);
}

.app-chrome-btn:focus-visible {
  outline: 2px solid #0053dc;
  outline-offset: 2px;
}

.app-chrome-btn__mi {
  font-size: 24px !important;
  color: #1f2937;
  font-variation-settings: "FILL" 0, "wght" 600, "GRAD" 0, "opsz" 24;
}

.app-chrome-btn--settings .app-chrome-btn__mi {
  color: #0053dc;
}

body.in-match #menuMusicToggleBtn {
  display: none !important;
  pointer-events: none;
}

@media (max-width: 620px) {
  .session-top-rail {
    top: 10px;
    right: 8px;
    gap: 8px;
  }

  .app-chrome {
    flex-direction: column;
    gap: 8px;
  }

  .app-chrome-btn {
    width: 40px;
    height: 40px;
    border-radius: 12px;
  }

  .app-chrome-btn__mi {
    font-size: 22px !important;
  }
}

/* Попап настроек: bento, палитра референса (surface / primary) */
.app-settings-overlay {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
    max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
  pointer-events: auto;
  --st-bg: #f9f9fe;
  --st-on: #2e333a;
  --st-on-var: #5b5f67;
  --st-container: #eceef5;
  --st-container-low: #f2f3fa;
  --st-dim: #d6dae4;
  --st-outline: rgba(174, 178, 187, 0.35);
  --st-primary: #0053dc;
  --st-primary-mid: #3e76fe;
  --st-tertiary: #635983;
}

.app-settings-overlay.hidden {
  display: none !important;
}

.app-settings-backdrop {
  position: absolute;
  inset: 0;
  margin: 0;
  padding: 0;
  border: none;
  cursor: pointer;
  background: rgba(255, 255, 255, 0.38);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

.app-settings-dialog {
  position: relative;
  z-index: 1;
  width: min(960px, 100%);
  /* Фиксированная высота: окно не меняет размер при переключении вкладок */
  height: min(88vh, 780px);
  max-height: min(88vh, 780px);
  min-height: min(88vh, 780px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  background: var(--st-bg);
  border: 1px solid var(--st-outline);
  box-shadow:
    0 12px 40px rgba(0, 83, 220, 0.08),
    0 24px 64px rgba(15, 23, 42, 0.1);
  font-family: Inter, "Segoe UI", system-ui, sans-serif;
  color: var(--st-on);
}

.app-settings-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 22px 14px;
  background: rgba(249, 249, 254, 0.95);
  border-bottom: 1px solid var(--st-container);
  flex-shrink: 0;
  flex-wrap: nowrap;
}

.app-settings-topbar__main {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 20px 28px;
  min-width: 0;
  flex: 1;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
}

.app-settings-topbar__main::-webkit-scrollbar {
  display: none;
}

.app-settings-title {
  margin: 0;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--mf-accent, #0053dc);
  flex-shrink: 0;
}

.app-settings-nav {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 20px;
  width: max-content;
  flex: 0 0 auto;
}

.app-settings-nav .app-settings-tab {
  /* override global `button { width: 100% }` — ширина по подписи */
  width: auto;
  max-width: 100%;
  margin: 0;
  padding: 4px 0.75em 10px;
  border: none;
  border-radius: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--st-on-var);
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease;
  white-space: nowrap;
  flex: 0 0 auto;
}

.app-settings-nav .app-settings-tab:hover {
  color: var(--st-on);
  background: transparent;
}

.app-settings-nav .app-settings-tab[aria-selected="true"] {
  color: #4a90e2;
  border-bottom-color: #4a90e2;
  font-weight: 700;
  background: transparent;
}

.app-settings-tab:focus-visible {
  outline: 2px solid var(--st-primary);
  outline-offset: 2px;
  border-radius: 4px;
}

.app-settings-close {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: none;
  border-radius: 12px;
  background: transparent;
  color: var(--st-on-var);
  cursor: pointer;
  transition: background 0.15s ease, color 0.15s ease, transform 0.12s ease;
}

.app-settings-close:hover {
  background: var(--st-container);
  color: var(--st-on);
}

.app-settings-close:active {
  transform: scale(0.96);
}

.app-settings-close .material-symbols-outlined {
  font-size: 22px;
}

.app-settings-body {
  padding: 20px 22px 24px;
  overflow-y: auto;
  overflow-x: hidden;
  min-height: 0;
  flex: 1;
  scrollbar-gutter: stable;
}

.app-settings-body::-webkit-scrollbar {
  width: 6px;
}
.app-settings-body::-webkit-scrollbar-track {
  background: var(--st-bg);
}
.app-settings-body::-webkit-scrollbar-thumb {
  background: #dfe2ec;
  border-radius: 10px;
}

.app-settings-panel[hidden] {
  display: none !important;
}

.app-settings-bento {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.app-settings-bento--control {
  gap: 0;
}

/* Карточки */
.app-settings-card {
  background: #fff;
  border-radius: 24px;
  border: 1px solid var(--st-outline);
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  padding: clamp(20px, 3vw, 40px);
}

.app-settings-card--master {
  padding: clamp(22px, 3vw, 36px);
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.04);
}

.app-settings-card-master-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 28px;
}

@media (min-width: 720px) {
  .app-settings-card-master-grid {
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 36px;
  }
}

.app-settings-card-eyebrow {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.app-settings-card-eyebrow--spaced {
  margin-bottom: 20px;
  align-items: flex-start;
}

.app-settings-card-eyebrow__mi {
  font-size: 2rem !important;
  color: var(--st-primary);
}

.app-settings-card-eyebrow__icon-wrap {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 83, 220, 0.1);
  color: var(--st-primary);
}

.app-settings-card-eyebrow__icon-wrap .material-symbols-outlined {
  font-size: 24px !important;
}

.app-settings-card-eyebrow__icon-wrap--tertiary {
  background: rgba(99, 89, 131, 0.12);
  color: var(--st-tertiary);
}

.app-settings-card-h2 {
  margin: 0;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--mf-accent, #0053dc);
}

.app-settings-card-h2--sm {
  font-size: 1.15rem;
}

.app-settings-card-lead {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  font-weight: 500;
  color: var(--st-on-var);
  max-width: 36rem;
}

.app-settings-card-lead--tight {
  font-size: 0.875rem;
  margin-top: 6px;
}

.app-settings-master-meter {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 10px;
}

.app-settings-master-meter__label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--st-on-var);
}

.app-settings-master-meter__val {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 2rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--st-primary);
  line-height: 1;
}

.app-settings-range-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.app-settings-range-track-wrap {
  position: relative;
  flex: 1;
  height: 40px;
  display: flex;
  align-items: center;
}

.app-settings-range-track-wrap--dense {
  height: 28px;
  margin-top: 4px;
}

/* Слайдеры: прозрачный фон, трек через --vol */
.app-settings-body .app-settings-vol-slider {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 8px;
  margin: 0;
  background: transparent;
  cursor: pointer;
  --vol: 0;
}

.app-settings-vol-slider--master {
  height: 10px;
}

.app-settings-body .app-settings-vol-slider::-webkit-slider-runnable-track {
  height: 6px;
  border-radius: 999px;
  background: linear-gradient(
    to right,
    var(--st-primary-mid) 0%,
    var(--st-primary) calc(var(--vol) * 1%),
    var(--st-container) calc(var(--vol) * 1%),
    var(--st-container) 100%
  );
}

.app-settings-body .app-settings-vol-slider::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 18px;
  height: 18px;
  margin-top: -6px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--st-primary);
  box-shadow: 0 2px 12px rgba(0, 83, 220, 0.35);
}

.app-settings-body .app-settings-vol-slider--mixer::-webkit-slider-thumb {
  width: 16px;
  height: 16px;
  margin-top: -5px;
  border-width: 2px;
  box-shadow: 0 1px 8px rgba(0, 83, 220, 0.28);
}

.app-settings-body .app-settings-vol-slider::-moz-range-track {
  height: 6px;
  border-radius: 999px;
  background: var(--st-container);
}

.app-settings-body .app-settings-vol-slider--master::-moz-range-progress {
  height: 6px;
  border-radius: 999px;
  background: linear-gradient(to right, var(--st-primary-mid), var(--st-primary));
}

.app-settings-body .app-settings-vol-slider--mixer::-moz-range-progress {
  height: 6px;
  border-radius: 999px;
  background: rgba(0, 83, 220, 0.45);
}

.app-settings-body .app-settings-vol-slider::-moz-range-thumb {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--st-primary);
  box-shadow: 0 1px 8px rgba(0, 83, 220, 0.28);
}

#masterVolSlider.app-settings-vol-slider {
  --vol: 45;
}

.app-settings-mute-btn {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: none;
  border-radius: 12px;
  background: linear-gradient(145deg, var(--st-primary), var(--st-primary-mid));
  color: #fff;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 83, 220, 0.28);
  transition: filter 0.12s ease, transform 0.12s ease;
}

.app-settings-mute-btn:hover {
  filter: brightness(1.05);
}

.app-settings-mute-btn:active {
  transform: scale(0.96);
}

.app-settings-mute-btn .material-symbols-outlined {
  font-size: 22px !important;
  color: #fff;
  font-variation-settings: "FILL" 1, "wght" 500, "GRAD" 0, "opsz" 24;
}

/* Микшер */
.app-settings-mixer-section {
  margin: 0;
}

.app-settings-mixer-head {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 20px;
}

.app-settings-mixer-title {
  margin: 0;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--mf-accent, #0053dc);
}

.app-settings-mixer-head__rule {
  flex: 1;
  height: 1px;
  background: var(--st-container);
  min-width: 24px;
}

.app-settings-mixer-head__mi {
  color: var(--st-on-var);
  font-size: 26px !important;
}

.app-settings-mixer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 18px;
}

@media (min-width: 560px) {
  .app-settings-mixer-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 900px) {
  .app-settings-mixer-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.app-settings-mixer-card {
  background: #fff;
  border-radius: 16px;
  border: 1px solid var(--st-outline);
  padding: 22px 20px 20px;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.04);
  transition: box-shadow 0.2s ease;
}

.app-settings-mixer-card:hover {
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.07);
}

.app-settings-mixer-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 16px;
}

.app-settings-mixer-card__icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--st-container-low);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--st-on-var);
  transition: background 0.2s ease, color 0.2s ease;
}

.app-settings-mixer-card:hover .app-settings-mixer-card__icon {
  background: rgba(0, 83, 220, 0.1);
  color: var(--st-primary);
}

.app-settings-mixer-card__icon .material-symbols-outlined {
  font-size: 24px !important;
}

.app-settings-mixer-card__pct {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.25rem;
  font-weight: 800;
  color: var(--st-on);
  line-height: 1;
}

.app-settings-mixer-card__name {
  margin: 0 0 4px;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--mf-accent, #0053dc);
}

.app-settings-mixer-card__hint {
  margin: 0 0 12px;
  font-size: 0.75rem;
  line-height: 1.4;
  color: var(--st-on-var);
}

.app-settings-vol-slider--mixer {
  --vol: 50;
}

.app-settings-body .app-settings-vol-slider--mixer::-webkit-slider-runnable-track {
  background: linear-gradient(
    to right,
    rgba(0, 83, 220, 0.45) 0%,
    rgba(0, 83, 220, 0.45) calc(var(--vol) * 1%),
    var(--st-container) calc(var(--vol) * 1%),
    var(--st-container) 100%
  );
}

/* Вкладка «Игра» */
.app-settings-card--game {
  max-width: 520px;
}

.app-settings-game-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 20px;
  margin: 0 -4px 16px;
  border-radius: 16px;
  background: var(--st-container-low);
  border: 1px solid var(--st-outline);
  cursor: pointer;
  transition: background 0.15s ease;
}

.app-settings-game-row:hover {
  background: #e8ebf5;
}

.app-settings-game-row:focus-within {
  outline: 2px solid var(--st-primary);
  outline-offset: 2px;
}

.app-settings-game-row:has(.app-settings-checkbox:disabled) {
  cursor: not-allowed;
  opacity: 0.92;
}

.app-settings-game-row__text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.app-settings-game-row__title {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: var(--st-on);
}

.app-settings-game-row__sub {
  font-size: 0.8125rem;
  line-height: 1.4;
  color: var(--st-on-var);
}

.app-settings-game-select {
  flex: 1;
  min-width: 0;
  max-width: min(100%, 320px);
  padding: 10px 14px;
  border-radius: 12px;
  border: 1px solid var(--st-outline);
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.9375rem;
  font-weight: 600;
  background: rgba(255, 255, 255, 0.7);
  color: var(--st-on);
  cursor: pointer;
}

.app-settings-game-row:has(.app-settings-game-select) {
  cursor: default;
}

.app-settings-checkbox {
  width: 1.25rem;
  height: 1.25rem;
  flex-shrink: 0;
  accent-color: var(--st-primary);
  cursor: pointer;
}

.app-settings-checkbox:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.app-settings-goal-replays-hint {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--st-on-var);
}

.app-settings-goal-replays-hint--steer {
  margin-top: 4px;
}

.app-settings-game-steer-meter {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}

.app-settings-game-steer-meter__label {
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--st-on-var);
}

.app-settings-game-steer-meter__val {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--st-primary);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

#steer-sens-slider.app-settings-vol-slider--mixer {
  --vol: 33.33;
}

.app-settings-tab-hint {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--st-on-var);
}

.app-settings-tab-hint--card {
  padding: 20px 22px;
  background: #fff;
  border-radius: 20px;
  border: 1px dashed var(--st-outline);
}

/* Управление: bento */
.app-settings-control-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  align-items: start;
}

@media (min-width: 768px) {
  .app-settings-control-grid {
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.85fr);
    gap: 24px;
  }
}

.app-settings-control-col-main {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

.app-settings-card--movement {
  padding: clamp(22px, 3vw, 40px);
}

.app-settings-move-head {
  margin-bottom: 20px;
}

.app-settings-move-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 20px;
  padding: 5px;
  border-radius: 16px;
  background: var(--st-container-low);
  border: 1px solid var(--st-outline);
}

.app-settings-move-tab {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: none;
  border-radius: 12px;
  padding: 12px 14px;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.9375rem;
  cursor: pointer;
  color: var(--st-on-var);
  background: transparent;
  transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease;
}

.app-settings-move-tab__check {
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  opacity: 0;
  transform: scale(0.85);
  transition: opacity 0.18s ease, transform 0.18s ease, color 0.18s ease;
  color: var(--st-primary);
  pointer-events: none;
}

.app-settings-move-tab--active .app-settings-move-tab__check {
  opacity: 1;
  transform: scale(1);
}

.app-settings-move-tab:hover {
  color: var(--st-on);
}

.app-settings-move-tab--active {
  background: rgba(255, 255, 255, 0.82);
  color: var(--st-on);
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.app-settings-move-tab:focus-visible {
  outline: 2px solid var(--st-primary);
  outline-offset: 2px;
}

.app-settings-move-panels {
  margin-top: 2px;
}

/** Иначе `display: flex` у модификатора перебивает стандартный `[hidden]`. */
.app-settings-move-panels[hidden] {
  display: none !important;
}

.app-settings-move-panels--mouse {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.app-settings-move-mouse-visual {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  column-gap: clamp(20px, 4vw, 36px);
  row-gap: 12px;
  padding: 12px clamp(18px, 4.5vw, 36px) 20px;
  box-sizing: border-box;
  overflow: visible;
}

.app-settings-move-mouse-visual__col--keys {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  overflow: visible;
}

.app-settings-move-mouse-visual__col--mouse {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(6px, 1.8vw, 14px);
  min-width: 0;
  overflow: visible;
}

.app-settings-wasd--mouse-cluster {
  flex-shrink: 0;
}

.app-settings-card--steer {
  max-width: 520px;
  padding: clamp(22px, 3vw, 34px);
}

.app-settings-keycap--ghost-slot {
  visibility: hidden;
  pointer-events: none;
}

.app-settings-wasd__row--ws-only {
  justify-content: center;
}

.app-settings-mouse-illustration {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  padding: 6px 2px 16px;
  overflow: visible;
}

.app-settings-mouse-illustration__device {
  flex-shrink: 0;
  display: block;
  overflow: visible;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.08));
}

.app-settings-mouse-illustration__chev {
  font-size: clamp(1.65rem, 4.2vw, 2.15rem);
  font-weight: 600;
  color: var(--st-on-var);
  opacity: 0.5;
  user-select: none;
  line-height: 1;
  flex-shrink: 0;
}

.app-settings-move-mouse-caption {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: var(--st-on-var);
  margin: 0;
  text-align: center;
}

.app-settings-wasd {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}

.app-settings-wasd__row {
  display: flex;
  justify-content: center;
  gap: 14px;
  width: 100%;
}

.app-settings-wasd__row--single {
  justify-content: center;
}

.app-settings-keycap {
  border-radius: 14px;
  background: var(--st-container-low);
  border: 1px solid var(--st-outline);
  border-bottom: 4px solid var(--st-dim);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  user-select: none;
  transition: background 0.15s ease, transform 0.12s ease;
}

/* Клавиша-буква (WASD, +/−): подпись + буква */
.app-settings-keycap--letter {
  width: 4.5rem;
  min-height: 4.65rem;
  height: auto;
  padding: 6px 4px 8px;
  box-sizing: border-box;
}

.app-settings-keycap--letter.app-settings-keycap--glyph {
  min-height: 4.5rem;
  height: 4.5rem;
  padding: 0;
}

/* Shift: ~1.6 u по ширине, ниже буквенной строки */
.app-settings-keycap--shift {
  margin-top: 12px;
  width: 6.25rem;
  height: 2.85rem;
  flex-direction: row;
  justify-content: center;
  align-self: flex-start;
}

/* Пробел: заметно шире Shift (как на клавиатуре) */
.app-settings-keycap--spacebar {
  margin-top: 12px;
  width: 100%;
  max-width: 18rem;
  min-width: 15rem;
  height: 2.85rem;
  flex-direction: row;
  justify-content: center;
  align-self: flex-start;
}

/* Tab: подпись «Tab» + пояснение по-русски (PiP) */
.app-settings-keycap--tab {
  flex-direction: column;
  min-width: 6.75rem;
  max-width: 7.5rem;
  height: auto;
  min-height: 3.25rem;
  padding: 8px 10px 10px;
  gap: 5px;
  justify-content: center;
  align-items: center;
  text-align: center;
}

.app-settings-keycap__tab-ru {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1.25;
  color: var(--st-on-var);
  letter-spacing: 0.01em;
}

/* Esc — компактнее Tab, тот же кегль подписи, что у Tab */
.app-settings-keycap--esc {
  width: 2.7rem;
  min-width: 2.7rem;
  height: 2.45rem;
  flex-direction: row;
  justify-content: center;
  padding: 0 6px;
  border-radius: 10px;
  border-bottom-width: 3px;
}

.app-settings-keycap--sm {
  width: auto;
  min-width: 5.5rem;
  height: 2.75rem;
  padding: 0 14px;
  flex-direction: row;
  gap: 8px;
}

.app-settings-keycap-group {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.app-settings-keycap__lbl {
  font-size: 0.625rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--st-on-var);
}

.app-settings-keycap__lbl--ru {
  text-transform: none;
  letter-spacing: 0.02em;
  font-weight: 800;
}

.app-settings-keycap__key {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.5rem;
  font-weight: 900;
  color: var(--st-on);
  line-height: 1;
}

.app-settings-keycap__key--accent {
  color: var(--st-primary);
}

.app-settings-keycap__mono {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--st-on);
}

.app-settings-mini-desc {
  margin: 0 0 4px;
  font-size: 0.8125rem;
  color: var(--st-on-var);
  line-height: 1.45;
}

.app-settings-card--actions {
  padding: 22px 22px 20px;
}

.app-settings-action-list {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: 16px;
}

.app-settings-action-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px 20px;
  align-items: center;
}

.app-settings-action-desc {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  font-weight: 500;
  color: var(--st-on-var);
}

.app-settings-control-list {
  margin: 0;
  padding: 0 0 0 1.15rem;
  font-size: 0.8125rem;
  line-height: 1.65;
  color: var(--st-on-var);
}

.app-settings-control-list li {
  margin-bottom: 6px;
}

.app-settings-control-list li:last-child {
  margin-bottom: 0;
}

.app-settings-control-side {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.app-settings-card--compact {
  padding: 24px 22px 22px;
}

.app-settings-mini-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 10px;
}

.app-settings-mini-head__icon {
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: rgba(0, 83, 220, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--st-primary);
}

.app-settings-mini-head__icon .material-symbols-outlined {
  font-size: 22px !important;
}

.app-settings-mini-head__icon--tertiary {
  background: rgba(99, 89, 131, 0.12);
  color: var(--st-tertiary);
}

.app-settings-mini-head__title {
  margin: 0;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--mf-accent, #0053dc);
}

.app-settings-pair-keys {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 8px;
}

.app-settings-pair-keys__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.app-settings-pair-keys__lbl {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--st-on-var);
}

@media (max-width: 520px) {
  .app-settings-topbar {
    padding-right: 52px;
  }
  .app-settings-close {
    position: absolute;
    top: 14px;
    right: 14px;
  }
  .app-settings-action-row {
    grid-template-columns: 1fr;
    justify-items: start;
  }
  .app-settings-action-desc {
    max-width: 100%;
  }
}

/* ─── Экран входа: стеклянная карточка (ArenaFlow-подобная), только центр ─── */

body.session-entry {
  --af-primary: #0053dc;
  --af-primary-mid: #2d68f0;
  --af-on-surface: #2e333a;
  --af-on-surface-variant: #5b5f67;
  --af-secondary: #556071;
  --af-on-secondary: #f8f8ff;
  --af-surface-container-low: #f2f3fa;
  --af-error-container: #fa746f;
  --af-on-error-container: #6e0a12;
}

.material-symbols-outlined {
  font-variation-settings: "FILL" 0, "wght" 600, "GRAD" 0, "opsz" 24;
}

.session-hero-mi.material-symbols-outlined {
  font-variation-settings: "FILL" 1, "wght" 600, "GRAD" 0, "opsz" 24;
}

.session-entry-card.panel {
  position: relative;
  z-index: 6;
  width: min(42rem, 94vw);
  margin: clamp(24px, 6vh, 56px) auto 0;
  padding: clamp(2rem, 4vw, 3.75rem) clamp(1.5rem, 4vw, 2.5rem);
  border-radius: 0.75rem;
  text-align: center;
  font-family: Inter, "Segoe UI", system-ui, sans-serif;
  color: var(--af-on-surface);
  background: rgba(255, 255, 255, 0.8);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 0.5);
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.08);
}

.session-title {
  margin: 0 0 1rem;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: clamp(1.75rem, 5vw, 2.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--mf-accent);
}

.session-title--form {
  font-size: clamp(1.35rem, 3.5vw, 1.5rem);
  font-weight: 700;
}

.session-tagline {
  margin: 0 auto 2.75rem;
  max-width: 22rem;
  font-size: clamp(1rem, 2.5vw, 1.2rem);
  line-height: 1.5;
  color: var(--af-on-surface-variant);
}

.session-hero {
  margin-bottom: 0.25rem;
}

.session-hero-icon-wrap {
  position: relative;
  display: inline-flex;
  margin: 0 auto 1.35rem;
}

.session-hero-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 6rem;
  height: 6rem;
  border-radius: 1rem;
  background: var(--af-surface-container-low);
  transform: rotate(3deg);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

/* Логотип на стартовом экране (`/images/logo/logo.webp`) */
.session-hero-icon--logo {
  width: auto;
  height: auto;
  max-width: min(20rem, 90vw);
  background: transparent;
  transform: none;
  box-shadow: none;
  border-radius: 0.75rem;
}

.session-hero-logo {
  display: block;
  width: 100%;
  height: auto;
  max-height: clamp(6.75rem, 26vw, 11rem);
  object-fit: contain;
}

.session-hero-mi {
  font-size: 3rem !important;
  color: var(--af-primary);
  line-height: 1;
}

.session-live-badge {
  position: absolute;
  top: -0.35rem;
  right: -0.4rem;
  padding: 0.2rem 0.45rem;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--af-on-error-container);
  background: var(--af-error-container);
  border-radius: 999px;
  box-shadow: 0 2px 6px rgba(168, 56, 54, 0.25);
  z-index: 1;
}

.mode-btns {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.mode-btns--row {
  flex-direction: row;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center;
}

.mode-btns--row .mode-btn {
  flex: 1 1 200px;
  min-width: 0;
}

.mode-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.65rem;
  width: 100%;
  padding: 1rem 1.75rem;
  border-radius: 0.75rem;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  cursor: pointer;
  border: none;
  transition:
    transform 0.15s,
    box-shadow 0.15s,
    background 0.2s,
    color 0.2s,
    filter 0.15s;
}

.mode-btn-mi {
  font-size: 1.35rem !important;
  line-height: 1;
}

.mode-btn-primary {
  color: #fff;
  background: linear-gradient(135deg, #0053dc 0%, #3e76fe 100%);
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.08);
}

.mode-btn-primary:hover {
  filter: brightness(1.05);
}

.mode-btn-connect {
  color: var(--af-on-secondary);
  background: var(--af-secondary);
  justify-content: space-between;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

.mode-btn-connect .mode-btn-label {
  flex: 1;
  text-align: left;
}

.mode-btn-connect:hover {
  background: var(--af-on-surface);
  color: #fff;
}

.mode-btn-connect:hover .mode-btn-mi--end {
  transform: translateX(4px);
}

.mode-btn-mi--end {
  transition: transform 0.2s ease;
}

.mode-btn:active {
  transform: scale(0.98);
}

/* ─── Форма входа #menu: Digital Atrium (заголовок + стеклянная карточка) ───── */

#menu.menu-form {
  position: relative;
  z-index: 6;
  width: min(28rem, 100%);
  margin: 0 auto;
  padding: clamp(1.25rem, 4vw, 2rem) clamp(0.75rem, 3vw, 1rem) 2.5rem;
}

.menu-form-shell {
  width: 100%;
  max-width: 28rem;
  margin: 0 auto;
}

.menu-form-header {
  text-align: center;
  margin-bottom: 2.5rem;
}

.menu-form-title {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: clamp(1.75rem, 5vw, 2.25rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--mf-accent);
  margin: 0 0 0.75rem;
  line-height: 1.15;
}

.menu-form-lead {
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--af-on-surface-variant);
  margin: 0;
  line-height: 1.45;
  max-width: 22rem;
  margin-left: auto;
  margin-right: auto;
}

.menu-form-card {
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-radius: 2rem;
  border: 1px solid rgba(46, 51, 58, 0.1);
  box-shadow:
    0 12px 40px rgba(0, 83, 220, 0.07),
    inset 0 1px 0 rgba(255, 255, 255, 0.65);
  padding: clamp(1.25rem, 4vw, 1.75rem);
}

.menu-form-fields {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

/* Статус + кнопка — один блок, без лишнего «воздуха» между ними */
.menu-form-footer {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 0.125rem;
}

.menu-field {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

/* Иначе `.menu-field` перезаписывает глобальный `.hidden` (правило выше по каскаду) */
#menu.menu-form .menu-field.hidden {
  display: none;
}

.menu-field-label {
  display: block;
  font-family: Inter, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #4a4f58;
  padding-left: 0.25rem;
}

.menu-input-wrap {
  border-radius: 0.75rem;
  transition:
    box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    background 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Поля без обводки — только внешняя тень у обёртки (отделение от карточки) */
.menu-input-wrap--ghost {
  padding: 0;
  background: transparent;
  border-radius: 0.85rem;
  box-shadow:
    0 4px 20px rgba(15, 23, 42, 0.1),
    0 2px 8px rgba(15, 23, 42, 0.06);
  transition: box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}

.menu-input-wrap--ghost:focus-within {
  box-shadow:
    0 10px 36px rgba(0, 83, 220, 0.22),
    0 4px 14px rgba(15, 23, 42, 0.08);
}

.menu-input {
  width: 100%;
  border: none;
  border-radius: 0.85rem;
  padding: 1rem 1rem;
  font-family: Inter, system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 500;
  color: var(--af-on-surface);
  background: #fff;
  outline: none;
  box-shadow: none;
  transition: background 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.menu-input::placeholder {
  color: #6b7280;
}

.menu-input-wrap--ghost:focus-within .menu-input {
  background: #fff;
}

.menu-input--code {
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.menu-input--code::placeholder {
  font-weight: 500;
  letter-spacing: normal;
  text-transform: none;
}

#menu.menu-form .menu-form-status.status {
  margin-top: 0;
}

.menu-form-status {
  min-height: 1.125rem;
  font-size: 0.8125rem;
  line-height: 1.35;
}

.menu-form-actions {
  padding-top: 0;
}

.menu-form-submit {
  width: 100%;
  border: none;
  border-radius: 1rem;
  padding: 1.15rem 1.25rem;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  cursor: pointer;
  background: linear-gradient(135deg, #0053dc 0%, #3e76fe 100%);
  box-shadow: 0 8px 24px rgba(0, 83, 220, 0.25);
  transition:
    transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.25s,
    filter 0.2s;
}

.menu-form-submit:hover {
  box-shadow: 0 12px 32px rgba(0, 83, 220, 0.35);
  filter: brightness(1.03);
  transform: scale(1.02);
}

.menu-form-submit:active {
  transform: scale(0.96);
}

.menu-form-back-wrap {
  margin-top: 2.5rem;
  text-align: center;
}

.menu-form-back {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 2.75rem;
  padding: 0.5rem 1.15rem;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: #2e333a;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid rgba(0, 83, 220, 0.28);
  cursor: pointer;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.08);
  transition:
    color 0.2s,
    background 0.2s,
    border-color 0.2s,
    box-shadow 0.2s,
    transform 0.2s;
}

.menu-form-back:hover {
  color: #0053dc;
  background: #fff;
  border-color: rgba(0, 83, 220, 0.55);
  box-shadow: 0 4px 16px rgba(0, 83, 220, 0.18);
}

.menu-form-back:active {
  transform: scale(0.98);
}

.menu-form-back-icon {
  font-size: 1.2rem;
  line-height: 1;
  transition: transform 0.2s;
  color: #0053dc;
}

.menu-form-back:hover .menu-form-back-icon {
  transform: translateX(-4px);
}

/* Сброс глобальных `input` / `button` для формы входа */
#menu.menu-form input.menu-input {
  margin-top: 0;
}

#menu.menu-form label.menu-field-label {
  margin-top: 0;
}

#menu.menu-form .menu-form-back {
  width: auto;
  margin-top: 0;
}

#menu.menu-form .menu-form-submit {
  margin-top: 0;
}

/* ─── Лобби: продолжительность матча ─────────────────────────────────────────*/

.time-limit-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.time-limit-label {
  font-size: 13px;
  color: var(--muted);
  white-space: nowrap;
}

.time-limit-select {
  flex: 1;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 6px;
  color: var(--text);
  font-size: 13px;
  padding: 5px 8px;
  cursor: pointer;
  outline: none;
}

.time-limit-select:focus {
  border-color: rgba(255, 255, 255, 0.3);
}

/* ─── Лобби: теги команды (уже есть .tag-red/.tag-blue, дополняем) ───────────*/

.team-section-header {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 4px 4px 4px 0;
  margin-top: 8px;
  margin-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  background: none;
}

.team-section-header .team-logo-sm {
  font-size: 16px;
  line-height: 1;
}

.player-team-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 7px;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.badge-red  { background: rgba(234,61,79,0.25); color: var(--red); }
.badge-blue { background: rgba(47,115,244,0.25); color: var(--blue); }
/* ─── Лобби: инлайн-блок настройки команды (капитан) ─────────────────────────*/

/* Инлайн-блок, встроенный прямо под заголовком команды */
li.team-config-inline {
  list-style: none;
  padding: 8px 12px 10px;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  margin: 2px 0 6px;
}

/* Статичные div-блоки (скрыты, оставлены для совместимости) */
.team-config-block {
  display: none;
}

.team-config-title {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.team-config-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
  flex-wrap: wrap;
}

.team-config-label {
  font-size: 12px;
  color: var(--muted);
  min-width: 52px;
}

/* Цветовые свотчи */
.color-swatches {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.color-swatch {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  cursor: pointer;
  border: 2px solid transparent;
  transition: transform 0.1s, border-color 0.1s;
  outline: none;
}

.color-swatch:hover {
  transform: scale(1.18);
}

.color-swatch.is-selected {
  border-color: #fff;
  transform: scale(1.18);
}

/* Пикер логотипа */
.logo-picker {
  display: flex;
  gap: 4px;
  flex-wrap: wrap;
}

.logo-btn {
  width: 30px;
  height: 30px;
  font-size: 18px;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 7px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  cursor: pointer;
  transition: background 0.1s, transform 0.1s;
  outline: none;
}

.logo-btn:hover {
  background: rgba(255, 255, 255, 0.12);
  transform: scale(1.12);
}

.logo-btn.is-selected {
  background: rgba(255, 255, 255, 0.16);
  border-color: rgba(255, 255, 255, 0.4);
  transform: scale(1.12);
}

/* ─── Оверлеи результатов / перерыва: общая фиксация; тёмный фон только без .period-break-overlay (нет в продакшене) ─*/
.results-overlay {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.results-overlay:not(.period-break-overlay) {
  background: rgba(4, 8, 18, 0.82);
}

.results-overlay.hidden {
  display: none;
}

.results-final-dialog.period-break-dialog {
  max-width: min(560px, calc(100vw - 32px));
}

@media (min-width: 1024px) {
  /*
   * Итоги матча: не использовать цепочку width: fit-content от .period-break-* —
   * иначе .period-break-main уже области прокрутки и прижимается влево, пока футер шире.
   */
  .results-final-dialog.period-break-dialog {
    width: 100%;
    max-width: min(640px, calc(100vw - 32px));
  }

  .results-final-dialog.period-break-dialog .period-break-layout,
  .results-final-dialog.period-break-dialog .period-break-scroll,
  .results-final-dialog.period-break-dialog .period-break-main {
    width: 100%;
  }
}

.results-final-main {
  padding-bottom: 20px;
}

.results-final-variant.hidden {
  display: none;
}

/* Победа: крупная эмблема + кубок */
.results-win-celebration {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 1.25rem;
}

/* Внешний блок задаёт размер; круг с обводкой — .results-win-emblem-disc; кубок поверх круга (z-index), не снизу */
.results-win-emblem-ring {
  position: relative;
  width: 148px;
  height: 148px;
  margin-bottom: 12px;
  flex-shrink: 0;
}

.results-win-emblem-disc {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.1);
  border: 4px solid rgba(168, 56, 54, 0.12);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.results-win-emblem-ring--blue .results-win-emblem-disc {
  border-color: rgba(0, 83, 220, 0.16);
}

.results-win-trophy-badge {
  position: absolute;
  z-index: 2;
  right: 6px;
  bottom: 10px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(145deg, #0053dc, #3e76fe);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 3px solid #f9f9fe;
  box-shadow: 0 4px 14px rgba(0, 83, 220, 0.35);
  pointer-events: none;
}

.results-win-trophy-badge .material-symbols-outlined {
  font-size: 22px;
  font-variation-settings: "FILL" 1;
}

.hud-team-emblem--results-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 124px;
  max-width: 100%;
}

.hud-team-emblem--results-hero .hud-team-emblem__shield {
  width: 124px;
  height: 124px;
}

.hud-team-emblem--results-hero .hud-team-emblem__mark {
  font-size: 2.75rem;
}

.results-final-hero-title {
  margin: 0;
  font-family: "Manrope", system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(1.5rem, 4.5vw, 1.85rem);
  letter-spacing: -0.03em;
  color: var(--mf-accent);
  line-height: 1.2;
  max-width: 100%;
  padding: 0 8px;
  word-wrap: break-word;
}

.results-final-hero-title--draw {
  color: #5b5f67;
}

.results-final-hero-title--tech {
  font-size: clamp(1.1rem, 3.6vw, 1.35rem);
  font-weight: 800;
  text-align: center;
  max-width: 28rem;
}

.results-final-hero-kicker {
  margin: 8px 0 0;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #5b5f67;
}

.results-draw-head {
  text-align: center;
  margin-bottom: 1.25rem;
}

.results-tech-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-bottom: 1.25rem;
  gap: 10px;
}

.results-tech-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #e6e8f0;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #0053dc;
}

.results-tech-icon .material-symbols-outlined {
  font-size: 28px;
}

.results-tech-desc {
  margin: 0;
  max-width: 26rem;
  font-size: 0.875rem;
  line-height: 1.45;
  color: #5b5f67;
}

.results-final-teams {
  margin-bottom: 1.25rem;
}

.results-final-stats-shell {
  width: 100%;
}

.period-break-footer.results-modal-footer {
  justify-content: center;
}

.results-modal-back.period-break-cta {
  max-width: min(100%, 400px);
  padding-left: 32px;
  padding-right: 32px;
  border-radius: 999px;
}

/* ─── Перерыв между таймами (Match Center, светлая тема, модалка по центру) ─── */

.period-break-overlay.results-overlay {
  align-items: center;
  justify-content: center;
  padding: 16px;
  /* Размытие игры/фона за пределами попапа; сам диалог ниже — непрозрачный */
  background: rgba(4, 8, 18, 0.38);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  color: #2e333a;
  -webkit-font-smoothing: antialiased;
}

.period-break-dialog {
  --period-break-bg: #f9f9fe;
  position: relative;
  z-index: 1;
  width: 100%;
  /* max-width — потолок; на десктопе см. @media 1024px: width fit-content под фактическую ширину бенто */
  max-width: min(972px, calc(100vw - 32px));
  max-height: min(88vh, 920px);
  background: var(--period-break-bg);
  border-radius: 18px;
  border: 1px solid rgba(15, 23, 42, 0.1);
  box-shadow: 0 24px 80px rgba(0, 0, 0, 0.45);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  font-family: "Inter", system-ui, sans-serif;
}

.period-break-layout {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}

/* Прокрутка только средней части; футер закреплён снизу окна */
.period-break-scroll {
  flex: 1 1 auto;
  min-height: 0;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding-top: 4px;
  /*
   * stable: резервируем место под скролл, чтобы не прыгала вёрстка при появлении полосы.
   * both-edges (где поддерживается): тот же резерв симметрично слева и справа — иначе в Chromium
   * контент визуально уезжает влево; Firefox чаще рисует overlay-скролл и/или иначе считает gutter.
   */
  scrollbar-gutter: stable;
  scrollbar-gutter: stable both-edges;
  scrollbar-width: thin;
  scrollbar-color: rgba(15, 23, 42, 0.28) transparent;
  /* Без отдельного слоя: маска на viewport — уходящий вверх контент постепенно растворяется */
  -webkit-mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.08) 0%,
    rgba(0, 0, 0, 0.35) 12px,
    rgba(0, 0, 0, 0.72) 28px,
    rgba(0, 0, 0, 0.95) 44px,
    #000 56px
  );
  mask-image: linear-gradient(
    to bottom,
    rgba(0, 0, 0, 0.08) 0%,
    rgba(0, 0, 0, 0.35) 12px,
    rgba(0, 0, 0, 0.72) 28px,
    rgba(0, 0, 0, 0.95) 44px,
    #000 56px
  );
  mask-size: 100% 100%;
  mask-repeat: no-repeat;
  -webkit-mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
}

.period-break-scroll::-webkit-scrollbar {
  width: 6px;
}

.period-break-scroll::-webkit-scrollbar-track {
  background: transparent;
  margin-top: 12px;
  margin-bottom: 8px;
}

.period-break-scroll::-webkit-scrollbar-thumb {
  background: rgba(15, 23, 42, 0.22);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}

.period-break-scroll::-webkit-scrollbar-thumb:hover {
  background: rgba(15, 23, 42, 0.35);
  background-clip: padding-box;
}

.period-break-main {
  overflow-x: hidden;
  padding: 26px 24px 12px;
  width: 100%;
  box-sizing: border-box;
}

.period-break-hero {
  margin-bottom: 1.25rem;
}

.period-break-teams-row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: center;
  gap: clamp(12px, 2.5vw, 28px);
}

.period-break-team {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 100px;
}

/* Эмблемы команд (тот же рендер, что лобби/HUD — `refreshTeamCornerEmblems`) */
.hud-team-emblem--period-break {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 80px;
  max-width: 100%;
  filter: drop-shadow(0 8px 22px rgba(15, 23, 42, 0.14));
}

.hud-team-emblem--period-break .hud-team-emblem__stars {
  margin-bottom: 4px;
  min-height: 14px;
}

.hud-team-emblem--period-break .hud-team-emblem__shield {
  position: relative;
  width: 80px;
  height: 80px;
  flex: 0 0 auto;
}

.hud-team-emblem--period-break .hud-team-emblem__svg {
  display: block;
  width: 100%;
  height: 100%;
}

.hud-team-emblem--period-break .hud-team-emblem__mark {
  font-size: 2rem;
}

.hud-team-emblem--period-break .hud-team-emblem__star {
  font-size: 10px;
}

.period-break-team-name {
  margin-top: 8px;
  font-family: "Manrope", system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: -0.02em;
  text-align: center;
  max-width: 140px;
  line-height: 1.25;
  word-wrap: break-word;
}

.period-break-scoreboard-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 180px;
}

.period-break-score-line {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 2vw, 16px);
  font-family: "Manrope", system-ui, sans-serif;
  font-weight: 800;
  line-height: 1;
}

.period-break-score-val {
  font-size: clamp(3rem, 8vw, 4.5rem);
  letter-spacing: -0.04em;
}

.period-break-score-val--blue {
  color: #0053dc;
}

.period-break-score-val--red {
  color: #a83836;
}

.period-break-score-colon {
  font-size: clamp(2rem, 5vw, 3rem);
  color: #aeb2bb;
  font-weight: 800;
}

.period-break-subline {
  margin: 10px 0 0;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #5b5f67;
  text-align: center;
}

.period-break-bento {
  display: grid;
  grid-template-columns: 1fr;
  gap: 32px;
  align-items: start;
}

@media (min-width: 1024px) {
  /* Фиксированная desktop-ширина: вкладки статистики с разной длиной ников не меняют размер окна. */
  .period-break-dialog {
    width: min(972px, calc(100vw - 32px));
    max-width: min(972px, calc(100vw - 32px));
  }

  .period-break-layout {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .period-break-scroll {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .period-break-main {
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .period-break-bento {
    grid-template-columns: minmax(520px, 1fr) minmax(240px, 320px);
    gap: 24px;
    align-items: stretch;
  }

  .period-break-side {
    width: 100%;
    max-width: 320px;
    justify-self: stretch;
  }
}

.period-break-side {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.period-break-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.08);
  overflow: hidden;
}

.period-break-card-inner {
  padding: 18px 24px 16px;
}

.period-break-card-title {
  margin: 0 0 16px;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--mf-accent);
}

.period-break-stats-tabs {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.period-break-stats-tablist {
  display: flex;
  gap: 10px;
  padding: 4px;
  border-radius: 12px;
  background: #eef0f6;
}

.period-break-stats-tab {
  flex: 1;
  min-width: 0;
  border: none;
  border-radius: 10px;
  padding: 10px 12px;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 0.8125rem;
  font-weight: 700;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease,
    box-shadow 0.15s ease;
  background: transparent;
  color: #5b5f67;
}

.period-break-stats-tab:hover {
  color: #2e333a;
}

.period-break-stats-tab[aria-selected="true"] {
  background: #fff;
  color: #2e333a;
  box-shadow: 0 2px 10px rgba(15, 23, 42, 0.08);
}

.period-break-stats-tab--red[aria-selected="true"] {
  box-shadow: 0 2px 10px rgba(250, 116, 111, 0.22);
}

.period-break-stats-tab--blue[aria-selected="true"] {
  box-shadow: 0 2px 10px rgba(0, 83, 220, 0.18);
}

.period-break-stats-tab__label {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Сверху как у соседней карточки «Статистика»: .period-break-card-inner { padding-top: 18px } */
.period-break-card--map .period-break-card-title {
  padding: 18px 24px 0;
  margin: 0;
  line-height: 1.25;
}

.period-break-card--map {
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.period-break-card--timer {
  padding: 22px 24px;
  text-align: center;
  background: rgba(0, 83, 220, 0.05);
  border: 1px solid rgba(0, 83, 220, 0.1);
  box-shadow: none;
}

.period-break-table-wrap {
  overflow-x: auto;
  margin: 0;
}

/* Таблица EoM-стиля в перерыве: без горизонтального скролла — сетка ужимается по ширине карточки */
.period-break-stats-panel:has(.period-break-eom-table-scroll) {
  overflow-x: hidden;
}

.period-break-card--stats {
  --eom-surface-var: #dfe2ec;
  --eom-container-low: #f2f3fa;
  --eom-white: #ffffff;
  --eom-primary: #0053dc;
  --eom-outline-var: #aeb2bb;
  --eom-on-surface: #2e333a;
  --eom-on-variant: #5b5f67;
  --eom-error: #a83836;
  min-width: 0;
}

.period-break-eom-table-scroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 0.25rem 0 0;
  box-sizing: border-box;
}

.period-break-card--stats .period-break-eom-row-grid,
.period-break-card--stats .period-break-eom-player-row {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) repeat(5, minmax(0, 1fr));
  gap: 0.5rem 0.3rem;
  align-items: center;
}

.period-break-card--stats .eom-table-head {
  padding: 0 0.35rem 0.5rem;
  margin-bottom: 0.35rem;
  border-bottom: 1px solid var(--eom-surface-var);
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eom-on-variant);
}

.period-break-card--stats .eom-th--span2 {
  grid-column: span 2;
}

.period-break-card--stats .eom-th--num {
  text-align: center;
}

.period-break-card--stats .eom-players-tbody {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

.period-break-card--stats .eom-player-row {
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: var(--eom-container-low);
  border: 1px solid transparent;
  transition:
    background 0.2s,
    box-shadow 0.2s;
}

.period-break-card--stats .eom-player-row:nth-child(even) {
  background: var(--eom-white);
}

.period-break-card--stats .eom-player-row:hover {
  background: var(--eom-white);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.period-break-card--stats .eom-player-row--self {
  border-color: color-mix(in srgb, var(--eom-primary) 35%, transparent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--eom-primary) 20%, transparent);
}

.period-break-card--stats .eom-p-avatar-wrap {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  flex-shrink: 0;
  overflow: hidden;
  border: 2px solid color-mix(in srgb, var(--eom-primary) 45%, transparent);
  box-sizing: border-box;
  background-size: cover;
  background-position: center;
}

.period-break-card--stats .eom-p-avatar__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.period-break-card--stats .eom-p-avatar-wrap--guest {
  display: flex;
  align-items: center;
  justify-content: center;
  border-color: var(--eom-outline-var);
  color: rgba(255, 255, 255, 0.92);
}

.period-break-card--stats .eom-p-avatar-wrap--guest .material-symbols-outlined {
  font-size: 1.35rem;
}

.period-break-card--stats .eom-p-name {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--eom-on-surface);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.period-break-card--stats .eom-p-num {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.82rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
  color: var(--eom-on-variant);
  min-width: 0;
}

.period-break-card--stats .eom-p-num--goals {
  color: var(--eom-primary);
  font-size: 0.92rem;
}

.period-break-card--stats .eom-p-num--own {
  color: var(--eom-error);
}

.period-break-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 8px;
  font-size: 0.875rem;
}

.period-break-table thead th {
  padding: 8px 16px;
  text-align: left;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #5b5f67;
}

.period-break-table .td-name {
  max-width: 11rem;
  min-width: 0;
  vertical-align: middle;
}

.period-break-th-numeric {
  text-align: right;
}

.period-break-stat-row td {
  padding: 14px 16px;
  background: #f2f3fa;
  transition: background 0.12s ease;
}

.period-break-stat-row--alt td {
  background: #f9f9fe;
}

.period-break-stat-row:hover td {
  background: #e6e8f0;
}

.period-break-stat-row td:first-child {
  border-radius: 8px 0 0 8px;
}

.period-break-stat-row td:last-child {
  border-radius: 0 8px 8px 0;
}

.period-break-td-player {
  display: flex;
  align-items: center;
  gap: 12px;
}

.period-break-player-bar {
  width: 8px;
  height: 32px;
  border-radius: 999px;
  flex-shrink: 0;
}

.period-break-player-bar--blue {
  background: #0053dc;
}

.period-break-player-bar--red {
  background: #fa746f;
}

.period-break-player-name {
  font-weight: 600;
  color: #2e333a;
}

.period-break-td-num {
  font-family: "Manrope", system-ui, sans-serif;
  font-variant-numeric: tabular-nums;
  color: #2e333a;
}

.period-break-td-goals {
  text-align: right;
  font-family: "Manrope", system-ui, sans-serif;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.period-break-td-goals .goals-pos {
  color: #0053dc;
}

.period-break-td-goals .goals-neg {
  color: #a83836;
}

.period-break-td-goals .goals-tot {
  color: #5b5f67;
  font-size: 0.7rem;
  font-weight: 600;
}

/* Внешний контейнер (задает отступы от краев карточки) */
.period-break-formation--portrait {
  display: block;
  width: 100%;
  padding: 0 24px 24px 24px;
  box-sizing: border-box;
}

/* Блок «Расстановка» в перерыве: скругление только снизу, отступ от заголовка */
.period-break-formation--portrait .formation-map-clean {
  border-radius: 0 0 16px 16px;
  margin-top: 16px;
}

.period-break-timer-kicker {
  display: block;
  margin-bottom: 12px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #5b5f67;
}

.period-break-timer-digits {
  font-family: "Manrope", system-ui, sans-serif;
  font-size: clamp(2.75rem, 7vw, 3.75rem);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #0053dc;
  font-variant-numeric: tabular-nums;
}

.period-break-timer-track {
  width: 100%;
  max-width: 200px;
  height: 6px;
  margin: 22px auto 0;
  border-radius: 999px;
  background: #eceef5;
  overflow: hidden;
}

.period-break-timer-bar {
  height: 100%;
  width: 100%;
  border-radius: 999px;
  background: linear-gradient(90deg, #0053dc, #3e76fe);
  transition: width 0.35s ease;
}

.period-break-footer {
  flex-shrink: 0;
  position: relative;
  z-index: 3;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 16px;
  padding: 14px 24px 16px;
  background: #fff;
  border-top: 1px solid #e6e8f0;
  box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.06);
}

.period-break-footer-left {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
  flex: 1 1 180px;
}

.period-break-ready-avatars {
  display: flex;
  align-items: center;
}

.period-break-ready-ring {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  font-size: 11px;
  font-weight: 800;
  color: #5b5f67;
  background: #eceef5;
  margin-left: -8px;
}

.period-break-ready-ring:first-child {
  margin-left: 0;
}

/* Один кружок: «?» до готовности, галочка после (класс --active вешает ui.js) */
.period-break-ready-ring--self .period-break-ready-ring__check {
  display: none;
  font-size: 18px;
  font-variation-settings: "FILL" 0, "wght" 700, "GRAD" 0, "opsz" 24;
}

.period-break-ready-ring--self .period-break-ready-ring__pending {
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}

.period-break-ready-ring--self.period-break-ready-ring--active {
  background: #15803d;
  color: #fff;
}

.period-break-ready-ring--self.period-break-ready-ring--active .period-break-ready-ring__pending {
  display: none;
}

.period-break-ready-ring--self.period-break-ready-ring--active .period-break-ready-ring__check {
  display: flex;
}

.period-break-ready-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.period-break-ready-kicker {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #5b5f67;
}

.period-break-ready-line {
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #2e333a;
}

.period-break-cta {
  flex: 0 0 auto;
  width: auto;
  max-width: min(100%, 340px);
  padding: 14px 24px;
  border: none;
  border-radius: 12px;
  font-family: "Manrope", system-ui, sans-serif;
  font-size: 1rem;
  font-weight: 700;
  color: #fff;
  cursor: pointer;
  background: linear-gradient(145deg, #0053dc, #3e76fe);
  box-shadow: 0 8px 24px rgba(0, 83, 220, 0.35);
  transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.15s ease;
}

.period-break-cta:hover:not(:disabled) {
  transform: scale(1.02);
  box-shadow: 0 12px 32px rgba(0, 83, 220, 0.25);
}

.period-break-cta:active:not(:disabled) {
  transform: scale(0.98);
}

.period-break-cta:disabled,
.period-break-cta.period-break-cta--done {
  opacity: 0.65;
  cursor: default;
  transform: none;
}

/* Только `period-break-preview.html`: поле как в матче — тот же canvas + drawFrame, что `field-preview.html` */
body.period-break-preview {
  margin: 0;
  min-height: 100vh;
  background: #2f2b28;
}

#game.period-break-preview-match-canvas {
  position: fixed;
  inset: 0;
  z-index: 0;
  display: block;
  width: 100vw;
  height: 100vh;
  pointer-events: none;
}

/* Пилюля профиля — в стиле menu-form-card / app-chrome (стекло, акцент Digital Atrium) */
.profile-widget {
  position: relative;
  z-index: 2;
  align-self: flex-end;
  display: flex;
  align-items: center;
  flex-direction: row;
  max-width: min(calc(100vw - 40px), 760px);
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
  border-radius: 999px;
  border: 1px solid rgba(46, 51, 58, 0.1);
  padding: 4px 4px 4px 6px;
  box-shadow:
    0 10px 28px rgba(15, 23, 42, 0.1),
    0 12px 40px rgba(0, 83, 220, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.75);
  overflow: hidden;
  transition:
    box-shadow 0.25s ease,
    border-color 0.2s ease;
  outline: none;
  -webkit-tap-highlight-color: transparent;
}

.profile-widget:hover {
  border-color: rgba(0, 83, 220, 0.18);
  box-shadow:
    0 12px 32px rgba(15, 23, 42, 0.12),
    0 14px 44px rgba(0, 83, 220, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.85);
}

.profile-widget:focus-visible {
  outline: 2px solid #0053dc;
  outline-offset: 3px;
}

.profile-actions {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 8px !important;
  max-width: 0;
  opacity: 0;
  overflow: hidden !important;
  width: max-content !important; /* Жестко задаем размер по контенту */
  margin-right: 0;
  transition: max-width 0.4s ease, opacity 0.3s ease, margin-right 0.3s ease;
}

.profile-widget:hover .profile-actions,
.profile-widget:focus-within .profile-actions {
  max-width: 400px;
  opacity: 1;
  margin-right: 15px;
}

.profile-info {
  display: flex;
  align-items: center;
  gap: 10px;
  max-width: min(300px, calc(100vw - 56px));
  min-width: 0;
  flex: 1 1 auto;
  padding-right: 12px;
  padding-left: 2px;
  cursor: default;
  color: #2e333a;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 700;
  font-size: 14px;
  letter-spacing: -0.01em;
  user-select: none;
  -webkit-user-select: none;
}

.profile-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
  background: linear-gradient(145deg, #e8eeff 0%, #f2f3fa 100%);
  border: 1px solid rgba(0, 83, 220, 0.2);
  box-shadow: 0 2px 8px rgba(0, 83, 220, 0.08);
  overflow: hidden;
}

.profile-avatar__pet {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 50%;
  display: block;
  pointer-events: none;
}

.profile-avatar__guest-svg {
  width: 62%;
  height: 62%;
  display: block;
  flex-shrink: 0;
  pointer-events: none;
}

.profile-avatar__pet.hidden,
.profile-avatar__guest-svg.hidden {
  display: none !important;
}

.profile-avatar--guest .profile-avatar__guest-svg.hidden {
  display: none !important;
}

.profile-btn {
  /* ЯДЕРНЫЙ ФИКС РАЗМЕРОВ: отключаем любые влияния извне */
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  margin-top: 0 !important; /* сброс глобального input, button { margin-top } */
  flex: 0 0 auto !important; /* flex-grow: 0, flex-shrink: 0, flex-basis: auto */
  white-space: nowrap !important;

  /* Визуальные стили */
  padding: 7px 16px !important;
  border-radius: 999px;
  border: none;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.01em;
  cursor: pointer;
  color: #2e333a;
  transition:
    filter 0.15s ease,
    opacity 0.2s,
    box-shadow 0.2s ease,
    background 0.2s ease,
    border-color 0.2s ease;
}

/* Иначе .profile-btn … display … !important перебивает глобальный .hidden */
.profile-btn.hidden {
  display: none !important;
}

.profile-btn:hover {
  filter: none;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.1);
  border-color: rgba(15, 23, 42, 0.16) !important;
}

.profile-btn:active {
  filter: none;
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
}

.profile-btn.btn-register:hover {
  background: #fff;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.1);
  border-color: rgba(15, 23, 42, 0.16) !important;
}

.profile-btn.btn-register:active {
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
}

.btn-login {
  background: #fff;
  color: #0053dc;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(15, 23, 42, 0.1) !important;
}

.btn-login:hover {
  box-shadow: 0 4px 14px rgba(0, 83, 220, 0.14);
  border-color: rgba(0, 83, 220, 0.22) !important;
}

.btn-login:active {
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
}

.btn-register {
  background: #fff;
  color: #2e333a;
  border: 1px solid rgba(15, 23, 42, 0.1) !important;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
}

.btn-stats {
  background: #fff;
  color: #2e333a;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(15, 23, 42, 0.1) !important;
}

.btn-stats:hover {
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.1);
}

.btn-stats:active {
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
}

.btn-logout {
  background: #fff;
  color: #c42e2a;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  border: 1px solid rgba(15, 23, 42, 0.1) !important;
}

.btn-logout:hover {
  box-shadow: 0 4px 14px rgba(196, 46, 42, 0.12);
  border-color: rgba(196, 46, 42, 0.28) !important;
}

.btn-logout:active {
  box-shadow: 0 2px 6px rgba(15, 23, 42, 0.08);
}

.avatar-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9595;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-sizing: border-box;
}

.avatar-modal-overlay.hidden {
  display: none !important;
}

.avatar-modal {
  position: relative;
  width: min(420px, 100%);
  max-height: min(90vh, 640px);
  overflow: auto;
  border-radius: 2rem;
  background: rgba(255, 255, 255, 0.94);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
  border: 1px solid rgba(46, 51, 58, 0.1);
  box-shadow:
    0 12px 40px rgba(0, 83, 220, 0.08),
    0 24px 60px rgba(15, 23, 42, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  padding: clamp(1.1rem, 3vw, 1.35rem) clamp(1.1rem, 3vw, 1.35rem) 1.1rem;
  box-sizing: border-box;
}

.avatar-modal h2 {
  margin: 0 0 12px;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: clamp(1.05rem, 2.5vw, 1.2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #2e333a;
  padding-right: 36px;
}

.avatar-modal__subtitle {
  margin: 0 0 10px;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: #2e333a;
}

.avatar-modal .close-btn {
  position: absolute;
  top: clamp(0.85rem, 2.5vw, 1rem);
  right: clamp(0.85rem, 2.5vw, 1rem);
  width: 40px;
  height: 40px;
  margin-top: 0;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
  color: #1f2937;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-size: 1.4rem;
  line-height: 1;
  transition:
    background 0.15s ease,
    box-shadow 0.15s ease;
}

.avatar-modal .close-btn:hover {
  background: #fff;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.12);
}

.inv-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
  margin-bottom: 20px;
}

.color-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
}

.avatar-modal .color-grid {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 6px 8px;
  margin-bottom: 20px;
}

.avatar-item {
  cursor: pointer;
  border: 3px solid transparent;
  border-radius: 50%;
  overflow: hidden;
  background: #333;
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
}

.avatar-item img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  pointer-events: none;
}

.color-swatch {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  cursor: pointer;
  border: 3px solid transparent;
  padding: 0;
  box-sizing: border-box;
}

.avatar-modal .color-swatch {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  min-width: 0;
  max-width: 28px;
  max-height: 28px;
  margin: 0 auto;
  border-width: 2px;
}

.avatar-item.selected,
.color-swatch.selected {
  border-color: #f1c40f;
  transform: scale(1.1);
}

.avatar-modal .btn-primary {
  width: 100%;
  margin-top: 4px;
  padding: 12px 18px;
  border: none;
  border-radius: 14px;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.01em;
  cursor: pointer;
  color: #fff;
  background: linear-gradient(145deg, #0053dc 0%, #0046ba 100%);
  box-shadow: 0 6px 20px rgba(0, 83, 220, 0.25);
  transition:
    filter 0.15s ease,
    box-shadow 0.15s ease;
}

.avatar-modal .btn-primary:hover {
  filter: brightness(1.05);
}

.avatar-modal .btn-primary:active {
  filter: brightness(0.97);
}

.avatar-modal button {
  filter: none;
}

.avatar-modal__err {
  margin: 0 0 10px;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 13px;
  font-weight: 600;
  color: #c42e2a;
}

/* Модалка входа / регистрации — тот же язык, что .menu-form-card.
   Выше #eom-screen (9000), иначе «Регистрация» с EoM открывается невидимо под оверлеем.
   Ниже #boot-screen (9999), чтобы заставка старта оставалась сверху. */
.auth-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 9600;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(15, 23, 42, 0.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-sizing: border-box;
}

.auth-modal-overlay.hidden {
  display: none !important;
}

/* Глобальный `button:hover { filter }` не должен окрашивать вкладки и крестик */
.auth-modal button {
  filter: none;
}

.auth-modal {
  width: min(420px, 100%);
  max-height: min(90vh, 640px);
  overflow: auto;
  border-radius: 2rem;
  background: rgba(255, 255, 255, 0.94);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
  border: 1px solid rgba(46, 51, 58, 0.1);
  box-shadow:
    0 12px 40px rgba(0, 83, 220, 0.08),
    0 24px 60px rgba(15, 23, 42, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  padding: clamp(1.1rem, 3vw, 1.35rem) clamp(1.1rem, 3vw, 1.35rem) 1.1rem;
  box-sizing: border-box;
}

/* Гость с EoM: только регистрация, без переключения на «Вход» */
.auth-modal.auth-modal--register-only .auth-modal__tabs {
  display: none;
}

.auth-modal__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.auth-modal__title {
  margin: 0;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: clamp(1.05rem, 2.5vw, 1.2rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  color: #2e333a;
}

.auth-modal__close {
  width: 40px;
  height: 40px;
  margin-top: 0;
  border-radius: 14px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
  color: #1f2937;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  transition:
    background 0.15s ease,
    box-shadow 0.15s ease;
}

.auth-modal__close:hover {
  background: #fff;
  box-shadow: 0 6px 20px rgba(15, 23, 42, 0.12);
}

.auth-modal__close:focus-visible {
  outline: 2px solid #0053dc;
  outline-offset: 2px;
}

.auth-modal__close .material-symbols-outlined {
  font-size: 22px;
  line-height: 1;
}

.auth-modal__tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 14px;
}

.auth-modal__tab {
  margin-top: 0;
  width: auto;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #f2f3fa;
  color: #5b5f67;
  border-radius: 12px;
  padding: 10px 12px;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 800;
  font-size: 13px;
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease;
}

.auth-modal__tab:hover {
  border-color: rgba(0, 83, 220, 0.22);
  color: #2e333a;
}

.auth-modal__tab--active {
  background: rgba(0, 83, 220, 0.1);
  border-color: rgba(0, 83, 220, 0.35);
  color: #0053dc;
}

.auth-modal__panel.hidden {
  display: none !important;
}

.auth-modal__form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.auth-modal__label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.auth-modal__label-text {
  display: block;
  font-family: Inter, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #4a4f58;
  padding-left: 0.15rem;
}

.auth-modal__input {
  width: 100%;
  box-sizing: border-box;
  padding: 12px 14px;
  border-radius: 0.85rem;
  border: 1px solid rgba(15, 23, 42, 0.1);
  background: #fff;
  color: #2e333a;
  font-family: Inter, system-ui, sans-serif;
  font-size: 15px;
  font-weight: 500;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
  transition:
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}

.auth-modal__input:focus {
  outline: none;
  border-color: rgba(0, 83, 220, 0.35);
  box-shadow:
    0 0 0 2px rgba(0, 83, 220, 0.2),
    0 4px 16px rgba(0, 83, 220, 0.1);
}

.auth-modal__submit {
  width: 100%;
  margin-top: 6px;
  padding: 14px 16px;
  border: none;
  border-radius: 1rem;
  background: linear-gradient(135deg, #0053dc 0%, #3e76fe 100%);
  color: #fff;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-weight: 800;
  font-size: 15px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 83, 220, 0.25);
  transition:
    box-shadow 0.2s ease,
    filter 0.2s ease,
    transform 0.2s ease;
}

.auth-modal__submit:hover {
  box-shadow: 0 12px 32px rgba(0, 83, 220, 0.32);
  filter: brightness(1.03);
  transform: scale(1.01);
}

.auth-modal__submit:active {
  transform: scale(0.99);
  filter: brightness(0.98);
}

.auth-modal__error {
  margin: 12px 0 0;
  padding: 0 2px;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
  color: #a83836;
}

.auth-modal__error--success {
  color: #0d9488;
}

@media (max-width: 620px) {
  .profile-btn {
    padding: 6px 12px !important;
    font-size: 12px;
  }
}

/* Модалка профиля / статистики (Digital Atrium, референс Car Football) */
.stats-modal-overlay {
  --st-surface: #f9f9fe;
  --st-on-surface: #2e333a;
  --st-on-variant: #5b5f67;
  --st-primary: #0053dc;
  --st-primary-container: #3e76fe;
  --st-surface-low: #f2f3fa;
  --st-surface-container: #eceef5;
  --st-surface-high: #e6e8f0;
  --st-outline: rgba(174, 178, 187, 0.45);
  --st-error: #a83836;
  position: fixed;
  inset: 0;
  z-index: 2010;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(12px, 3vw, 24px);
  box-sizing: border-box;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  /* Как .auth-modal-overlay: один слой с блюром страницы */
  background: rgba(15, 23, 42, 0.35);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.stats-modal-overlay.hidden {
  display: none !important;
}

.stats-modal {
  position: relative;
  z-index: 1;
  width: min(1120px, 100%);
  max-width: 100%;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  box-sizing: border-box;
  border-radius: 1.5rem;
  background: rgba(255, 255, 255, 0.94);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
  border: 1px solid rgba(46, 51, 58, 0.1);
  box-shadow:
    0 12px 40px rgba(0, 83, 220, 0.08),
    0 24px 60px rgba(15, 23, 42, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.8);
  color: var(--st-on-surface);
  font-family: Manrope, Inter, system-ui, sans-serif;
}

.stats-modal.stats-dash {
  padding: 0;
}

.stats-modal__scroll-fade {
  position: relative;
  z-index: 0;
  width: 100%;
  flex: 1 1 auto;
  min-height: 0;
}

/* Прокрутка только внутри окна — узкий скролл как у .app-settings-body; края плавно гасим */
.stats-modal__scroller {
  width: 100%;
  min-height: 0;
  max-height: min(88vh, 900px);
  overflow-y: auto;
  overflow-x: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: #dfe2ec var(--st-surface);
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0,
    #000 1.5rem,
    #000 calc(100% - 1.5rem),
    transparent 100%
  );
  mask-image: linear-gradient(
    to bottom,
    transparent 0,
    #000 1.5rem,
    #000 calc(100% - 1.5rem),
    transparent 100%
  );
  mask-size: 100% 100%;
  -webkit-mask-size: 100% 100%;
  mask-repeat: no-repeat;
  -webkit-mask-repeat: no-repeat;
}

.stats-modal__scroller::-webkit-scrollbar {
  width: 6px;
}

.stats-modal__scroller::-webkit-scrollbar-track {
  background: var(--st-surface);
}

.stats-modal__scroller::-webkit-scrollbar-thumb {
  background: #dfe2ec;
  border-radius: 10px;
}

.stats-modal button {
  filter: none;
}

.stats-modal--loading .stats-modal__scroll-fade {
  pointer-events: none;
}

.stats-modal-loader {
  position: absolute;
  z-index: 3;
  inset: 0;
  box-sizing: border-box;
  border-radius: inherit;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
  padding: 2rem;
  background: rgba(255, 255, 255, 0.94);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  pointer-events: none;
}

.stats-modal-loader[hidden] {
  display: none !important;
}

.stats-modal-loader__spin {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 3px solid rgba(0, 83, 220, 0.15);
  border-top-color: var(--st-primary, #0053dc);
  animation: stats-modal-loader-spin 0.72s linear infinite;
  flex-shrink: 0;
}

.stats-modal-loader__txt {
  margin: 0;
  font-family: Manrope, Inter, system-ui, sans-serif;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--st-on-variant, #5b5f67);
}

@keyframes stats-modal-loader-spin {
  to {
    transform: rotate(360deg);
  }
}

.stats-modal__err {
  margin: 0.5rem 1.25rem 0.75rem;
  padding: 12px 20px;
  border-radius: 0.75rem;
  background: rgba(168, 56, 54, 0.1);
  border: 1px solid rgba(168, 56, 54, 0.35);
  color: var(--st-error);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.stats-modal__err[hidden] {
  display: none !important;
}

.stats-close-btn {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 4;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 0.875rem;
  background: rgba(255, 255, 255, 0.95);
  color: #2e333a;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.08);
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease;
}

.stats-close-btn .material-symbols-outlined {
  font-size: 22px;
}

.stats-close-btn:hover {
  background: #fff;
  box-shadow: 0 6px 20px rgba(0, 83, 220, 0.12);
}

.stats-close-btn:focus-visible {
  outline: 2px solid var(--st-primary);
  outline-offset: 2px;
}

.stats-avatar-inner.stats-avatar-inner--custom::after {
  opacity: 0.12;
}

.stats-avatar-photo {
  position: relative;
  z-index: 1;
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 50%;
  display: block;
}

.stats-avatar-photo.hidden {
  display: none !important;
}

/* Hero */
.stats-dash__hero {
  --st-hero-metric-height: clamp(9.75rem, 20vw, 11rem);
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  padding: clamp(2.5rem, 5vw, 3.75rem) clamp(1.5rem, 4vw, 3.5rem) clamp(1.75rem, 3vw, 2.5rem);
  border-bottom: 1px solid rgba(242, 243, 250, 0.9);
}

@media (min-width: 900px) {
  .stats-dash__hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(9.5rem, 12rem) minmax(9rem, 11.5rem);
    align-items: center;
    gap: clamp(0.75rem, 2vw, 1.5rem);
  }
}

.stats-dash__identity {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: clamp(1.25rem, 3vw, 2rem);
}

@media (min-width: 768px) {
  .stats-dash__identity {
    flex-direction: row;
    align-items: center;
    min-width: 0;
    width: 100%;
  }
}

.stats-avatar-ring {
  flex-shrink: 0;
  position: relative;
  width: fit-content;
  overflow: visible;
  margin: 0 0.15rem 0.15rem 0;
}

.stats-avatar-edit-btn {
  position: absolute;
  z-index: 5;
  width: 2.125rem;
  height: 2.125rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.18);
  color: #0053dc;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: filter 0.15s ease, transform 0.15s ease;
  filter: none;
  /* слегка заезжает на круг аватара, поверх контента */
  right: 0.12rem;
  bottom: 0.12rem;
  transform: none;
}

.stats-avatar-edit-btn:hover {
  filter: brightness(1.03);
  transform: scale(1.05);
}

.stats-avatar-edit-btn:focus-visible {
  outline: 2px solid #0053dc;
  outline-offset: 2px;
}

.stats-avatar-edit-btn.hidden {
  display: none !important;
}

.stats-avatar-edit-btn .material-symbols-outlined {
  font-size: 1.25rem;
  line-height: 1;
}

.stats-avatar-inner {
  width: clamp(7rem, 18vw, 10.5rem);
  height: clamp(7rem, 18vw, 10.5rem);
  border-radius: 9999px;
  overflow: hidden;
  border: 4px solid #fff;
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.1);
  background: linear-gradient(145deg, #d8e3f8 0%, #e6e8f0 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.stats-avatar-inner::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 83, 220, 0.08);
  mix-blend-mode: overlay;
  pointer-events: none;
}

.stats-avatar-initial {
  position: relative;
  z-index: 1;
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(2.5rem, 6vw, 3.5rem);
  font-weight: 800;
  color: var(--st-primary);
  text-transform: uppercase;
  line-height: 1;
}

.stats-dash__titles {
  text-align: center;
  width: 100%;
  max-width: 28rem;
}

@media (min-width: 768px) {
  .stats-dash__titles {
    text-align: left;
    max-width: none;
  }
}

.stats-dash__name-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.75rem 1rem;
}

@media (min-width: 768px) {
  .stats-dash__name-row {
    justify-content: flex-start;
  }
}

.stats-dash__name-row > .text-truncate {
  min-width: 0;
}

.stats-dash__username {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding-bottom: 0.08em;
  font-size: clamp(2rem, 5vw, 3.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--st-on-surface);
  line-height: 1.15;
}

.stats-dash__level-pill {
  flex: 0 0 auto;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  font-weight: 900;
  color: rgba(91, 95, 103, 0.55);
  font-family: Manrope, sans-serif;
}

.stats-dash__rank {
  margin: 0.5rem 0 0;
  font-size: clamp(1rem, 2vw, 1.15rem);
  font-weight: 700;
  color: var(--st-primary);
  text-transform: uppercase;
  letter-spacing: 0.12em;
}

.stats-xp-block {
  margin-top: 1.75rem;
  width: 100%;
}

.stats-xp-block__row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  margin-bottom: 0.75rem;
}

.stats-xp-block__k {
  display: block;
  font-size: 0.65rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--st-on-variant);
}

.stats-xp-block__nums {
  font-family: Manrope, sans-serif;
  font-size: clamp(1.25rem, 2.5vw, 1.5rem);
  font-weight: 900;
  color: var(--st-on-surface);
  font-variant-numeric: tabular-nums;
}

.stats-xp-block__sep {
  color: rgba(91, 95, 103, 0.45);
  font-weight: 600;
}

.stats-xp-badge {
  font-size: 0.8rem;
  font-weight: 700;
  color: var(--st-primary);
  background: rgba(0, 83, 220, 0.1);
  padding: 0.35rem 0.65rem;
  border-radius: 0.5rem;
  white-space: nowrap;
}

.stats-xp-bar {
  height: 1.15rem;
  width: 100%;
  border-radius: 9999px;
  background: var(--st-surface-high);
  padding: 3px;
  box-sizing: border-box;
  border: 1px solid rgba(223, 226, 236, 0.6);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.06);
}

.stats-xp-bar__fill {
  height: 100%;
  min-width: 0;
  border-radius: 9999px;
  max-width: 100%;
  background: linear-gradient(135deg, var(--st-primary) 0%, var(--st-primary-container) 100%);
  box-shadow: 0 0 20px rgba(0, 83, 220, 0.25);
  position: relative;
  overflow: hidden;
  transition: width 0.4s ease;
}

.stats-xp-bar__fill::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.3) 50%, transparent 100%);
  animation: st-xp-shimmer 2.2s ease-in-out infinite;
}

@keyframes st-xp-shimmer {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(100%);
  }
}

/** Центральная колонка: среднее время и рейтинг (.stats-hero-time-block + .rating-card). */
.stats-dash__hero-center {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
  align-items: center;
  justify-content: center;
  padding-block: 0.5rem;
  gap: 1.25rem;
}

@media (max-width: 899px) {
  .stats-dash__hero-center {
    flex: 1 1 100%;
    width: 100%;
  }
}

.stats-hero-time-block,
.stats-dash__hero-center .st-card.rating-card,
.stats-dash__hero-cards > .stats-hero-card {
  box-sizing: border-box;
  height: var(--st-hero-metric-height);
  min-height: var(--st-hero-metric-height);
}

.stats-hero-time-block {
  width: 100%;
  max-width: 16.5rem;
  margin-inline: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: clamp(1.1rem, 2.2vw, 1.6rem) clamp(0.85rem, 1.8vw, 1.4rem) clamp(1.15rem, 2.1vw, 1.6rem);
  border-radius: 1.25rem;
  background: linear-gradient(165deg, #f6f8ff 0%, #fff 45%, #fafbff 100%);
  border: 1px solid rgba(0, 83, 220, 0.12);
  box-shadow:
    0 12px 40px rgba(0, 83, 220, 0.08),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
  border-bottom: 4px solid var(--st-primary);
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s ease;
}

.stats-hero-time-block:hover {
  transform: translateY(-2px);
  box-shadow: 0 14px 36px rgba(0, 83, 220, 0.12);
}

.stats-hero-time-block__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0 auto 0.4rem;
  line-height: 1;
  font-size: 2.1rem;
  color: var(--st-primary);
  font-variation-settings: "FILL" 1;
  opacity: 0.95;
  flex-shrink: 0;
}

.stats-hero-time-block__val {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  text-align: center;
  font-size: clamp(1.55rem, 2.4vw, 2.2rem);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--st-on-surface);
  line-height: 1.2;
  font-variant-numeric: tabular-nums;
}

.stats-hero-time-block__lbl {
  margin: 0.4rem 0 0;
  max-width: 100%;
  padding: 0 0.2rem 0.15rem;
  font-size: 0.58rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  line-height: 1.3;
  color: var(--st-on-variant);
}

.stats-dash__hero-cards {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 1.25rem;
  justify-content: center;
}

@media (min-width: 900px) {
  .stats-dash__hero-cards {
    flex-direction: column;
    width: 100%;
  }
}

.stats-dash__hero-center .st-card.rating-card {
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 2.2vw, 1.5rem) clamp(0.6rem, 1.4vw, 0.9rem) clamp(1.1rem, 2vw, 1.45rem);
  border-radius: 1.25rem;
  background: linear-gradient(165deg, rgba(0, 83, 220, 0.08) 0%, #fff 45%);
  border: 1px solid rgba(0, 83, 220, 0.22);
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.1);
  border-bottom: 4px solid var(--st-primary);
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s ease;
}

.stats-dash__hero-center .st-card.rating-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14);
}

.stats-dash__hero-center .st-rating-card__icon {
  font-variation-settings: "FILL" 1;
}

.st-bignum {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  text-align: center;
  font-size: clamp(1.65rem, 3.6vw, 2.55rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  line-height: 1.12;
  font-variant-numeric: tabular-nums;
}

#st-rating.st-bignum {
  color: rgb(220, 38, 38);
}

.st-lbl {
  width: 100%;
  min-width: 0;
  margin-top: 0.35rem;
  padding: 0 0.1rem 0.2rem;
  font-size: 0.58rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.3;
  color: var(--st-on-variant);
  text-align: center;
}

.stats-hero-card {
  flex: 0 1 8.5rem;
  width: 100%;
  max-width: 12rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: clamp(1rem, 2.2vw, 1.5rem) clamp(0.6rem, 1.4vw, 0.9rem) clamp(1.1rem, 2vw, 1.45rem);
  border-radius: 1.25rem;
  background: #fff;
  border: 1px solid rgba(174, 178, 187, 0.15);
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.06);
  border-bottom: 4px solid var(--st-primary);
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s ease;
}

.stats-hero-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
}

.stats-hero-card__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0 auto 0.35rem;
  line-height: 1;
  font-size: 2.1rem;
  color: var(--st-primary);
  font-variation-settings: "FILL" 1;
  flex-shrink: 0;
}

.stats-hero-card__val {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  text-align: center;
  font-size: clamp(1.5rem, 3.4vw, 2.4rem);
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--st-on-surface);
  line-height: 1.12;
  font-variant-numeric: tabular-nums;
}

/* Процент побед: ступенчатая раскраска по порогам (модалка статистики + тултип лобби/матча) */
.stats-hero-card__val.stats-hero-val--wr-red,
.player-public-stats-tooltip__v.stats-hero-val--wr-red {
  color: #dc2626;
}
.stats-hero-card__val.stats-hero-val--wr-orange,
.player-public-stats-tooltip__v.stats-hero-val--wr-orange {
  color: #ea580c;
}
.stats-hero-card__val.stats-hero-val--wr-yellow,
.player-public-stats-tooltip__v.stats-hero-val--wr-yellow {
  color: #ca8a04;
}
.stats-hero-card__val.stats-hero-val--wr-green,
.player-public-stats-tooltip__v.stats-hero-val--wr-green {
  color: #16a34a;
}
.stats-hero-card__val.stats-hero-val--wr-cyan,
.player-public-stats-tooltip__v.stats-hero-val--wr-cyan {
  color: #0891b2;
}
.stats-hero-card__val.stats-hero-val--wr-blue,
.player-public-stats-tooltip__v.stats-hero-val--wr-blue {
  color: #2563eb;
}
.stats-hero-card__val.stats-hero-val--wr-purple,
.player-public-stats-tooltip__v.stats-hero-val--wr-purple {
  color: #6d28d9;
}

.stats-hero-card__lbl {
  width: 100%;
  min-width: 0;
  margin-top: 0.35rem;
  padding: 0 0.1rem 0.2rem;
  font-size: 0.58rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  line-height: 1.3;
  color: var(--st-on-variant);
  text-align: center;
}

/* Bento */
.stats-dash__bento-wrap {
  padding: clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 4vw, 3.5rem);
  background: var(--st-surface);
}

.stats-section-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.75rem;
}

.stats-section-head__title {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.2rem;
  font-weight: 800;
  color: var(--st-on-surface);
}

.stats-section-head__bar {
  display: block;
  width: 0.3rem;
  height: 1.8rem;
  border-radius: 9999px;
  background: var(--st-primary);
  flex-shrink: 0;
}

.stats-bento {
  display: grid;
  grid-template-columns: 1fr;
  gap: clamp(1.25rem, 2.5vw, 1.75rem);
}

@media (min-width: 768px) {
  .stats-bento {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1100px) {
  .stats-bento {
    grid-template-columns: repeat(3, 1fr);
  }
}

.stats-bento-card {
  background: var(--st-surface-low);
  border-radius: 1.25rem;
  padding: 1.75rem 1.5rem;
  border: 1px solid transparent;
  transition:
    background 0.3s ease,
    border-color 0.3s ease,
    box-shadow 0.3s ease;
}

.stats-bento-card:hover {
  background: #fff;
  border-color: rgba(223, 226, 236, 0.5);
  box-shadow: 0 12px 40px rgba(0, 83, 220, 0.06);
}

.stats-bento-card__head {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin-bottom: 1.5rem;
}

.stats-bento-card__icon-wrap {
  width: 3.3rem;
  height: 3.3rem;
  border-radius: 0.9rem;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.06);
  color: var(--st-primary);
  font-size: 1.6rem;
  font-variation-settings: "FILL" 1;
  transition: background 0.3s ease, color 0.3s ease;
}

.stats-bento-card:hover .stats-bento-card__icon-wrap {
  background: var(--st-primary);
  color: #fff;
}

.stats-bento-card__title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 800;
  color: var(--st-on-surface);
}

.stats-bento-card__sub {
  margin: 0.1rem 0 0;
  font-size: 0.7rem;
  font-weight: 600;
  color: var(--st-on-variant);
}

.stats-bento-card__rows {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}

.stats-bento-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.75rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid rgba(223, 226, 236, 0.6);
  font-size: 0.85rem;
}

.stats-bento-row:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}

.stats-bento-row--filler {
  border-bottom: 0;
  min-height: 4rem;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 0 0;
}

.stats-bento-card__deco {
  font-size: 5.5rem;
  opacity: 0.1;
  color: var(--st-primary);
  transition: opacity 0.3s ease;
}

.stats-bento-card:hover .stats-bento-card__deco {
  opacity: 0.22;
}

.stats-bento-row__k {
  color: var(--st-on-variant);
  font-weight: 600;
  line-height: 1.3;
}

.stats-bento-row__v {
  font-family: Manrope, sans-serif;
  font-size: 1.35rem;
  font-weight: 900;
  color: var(--st-on-surface);
  font-variant-numeric: tabular-nums;
  flex-shrink: 0;
}

.stats-bento-row__v--accent {
  color: var(--st-primary);
}

/* Trophies: заголовок, сразу под ним — ряд иконок */
.stats-trophies {
  width: 100%;
  background: var(--st-surface-container);
  border-top: 1px solid rgba(223, 226, 236, 0.8);
  box-sizing: border-box;
  padding: clamp(1.25rem, 2.5vw, 1.75rem) clamp(1.5rem, 4vw, 3.5rem) clamp(2rem, 3.5vw, 2.5rem);
}

.stats-trophies__block {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  width: 100%;
  max-width: 100%;
}

.stats-trophies__title,
.stats-trophies .stats-trophies__title {
  margin: 0;
  width: 100%;
  text-align: left;
  flex-shrink: 0;
}

.stats-trophies__row {
  display: flex;
  flex-wrap: wrap;
  gap: 1.35rem 1.75rem;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  margin: 0;
  padding: 0;
}

.medal-item {
  background: transparent;
  padding: 5px;
  position: relative;
  outline: none;
}

.medal-img {
  width: 88px;
  height: 88px;
  object-fit: contain;
  display: block;
  margin: 0 auto;
  border-radius: 10px;
  filter: drop-shadow(0 12px 20px rgba(15, 23, 42, 0.16));
  transition:
    transform 0.22s ease,
    filter 0.22s ease;
}

.medal-item:hover .medal-img,
.medal-item:focus-visible .medal-img {
  transform: translateY(-3px) scale(1.05);
  filter: drop-shadow(0 16px 28px rgba(15, 23, 42, 0.24));
}

.medal-count {
  position: absolute;
  top: -7px;
  right: -7px;
  background: linear-gradient(135deg, #ef4444, #b91c1c);
  color: white;
  border-radius: 50%;
  padding: 3px 7px;
  font-size: 13px;
  font-weight: bold;
  box-shadow: 0 8px 18px rgba(185, 28, 28, 0.3);
}

.medal-floating-tooltip {
  position: fixed;
  z-index: 13000;
  width: max-content;
  max-width: min(280px, calc(100vw - 24px));
  padding: 0.72rem 0.86rem;
  border-radius: 12px;
  background:
    linear-gradient(180deg, rgba(30, 41, 59, 0.98), rgba(15, 23, 42, 0.98));
  color: #f8fafc;
  box-shadow:
    0 18px 45px rgba(15, 23, 42, 0.36),
    inset 0 0 0 1px rgba(148, 163, 184, 0.18);
  font-size: 0.76rem;
  font-weight: 700;
  line-height: 1.35;
  text-align: center;
  white-space: normal;
  pointer-events: none;
  opacity: 0;
  transform: translateY(5px);
  transition:
    opacity 0.16s ease,
    transform 0.16s ease;
}

.medal-floating-tooltip--show {
  opacity: 1;
  transform: translateY(0);
}

.medal-floating-tooltip[hidden] {
  display: none !important;
}

.medal-empty {
  width: 100%;
  text-align: center;
  color: var(--st-on-variant);
  font-size: 0.85rem;
  font-weight: 700;
}

.st-trophy {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  width: 6.75rem;
  transition:
    filter 0.3s ease,
    opacity 0.3s ease;
}

.st-trophy__medal {
  width: 5.5rem;
  height: 5.5rem;
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 4px solid #fff;
  box-shadow: 0 8px 24px rgba(0, 83, 220, 0.1);
  background: linear-gradient(145deg, #facc15 0%, #ca8a04 100%);
  color: #fff;
  font-size: 2.5rem;
  font-variation-settings: "FILL" 1;
  transition: transform 0.45s ease;
}

.st-trophy__medal--silver {
  background: linear-gradient(145deg, #cbd5e1 0%, #64748b 100%);
}

.st-trophy__medal--emerald {
  background: linear-gradient(145deg, #34d399 0%, #047857 100%);
}

.st-trophy__medal--purple {
  background: linear-gradient(145deg, #c084fc 0%, #6b21a8 100%);
}

.st-trophy__medal--locked {
  background: #dfe2ec;
  color: #777b83;
  box-shadow: inset 0 2px 8px rgba(15, 23, 42, 0.08);
}

.st-trophy:hover .st-trophy__medal {
  transform: scale(1.05) translateY(-4px);
}

.st-trophy--unlocked .st-trophy__medal {
  filter: none;
  opacity: 1;
}

.st-trophy--locked,
.st-trophy[data-unlocked="0"] {
  opacity: 0.4;
  filter: grayscale(1);
}

.st-trophy[data-unlocked="1"] {
  opacity: 1;
  filter: none;
}

.st-trophy--locked {
  cursor: not-allowed;
  opacity: 0.5;
  filter: grayscale(0.6);
}

.st-trophy__txt {
  margin-top: 0.65rem;
}

.st-trophy__name {
  display: block;
  font-size: 0.78rem;
  font-weight: 900;
  color: var(--st-on-surface);
  letter-spacing: 0.02em;
}

.st-trophy__sub {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.58rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--st-on-variant);
}

.st-trophy[data-unlocked="1"] .st-trophy__name {
  color: var(--st-on-surface);
}

@media (max-width: 480px) {
  .stats-trophies__row {
    justify-content: center;
  }
}

/* Тултип профиля: лобби и строки статистики в перерыве / итогах */
.player-public-stats-tooltip {
  position: fixed;
  z-index: 12000;
  min-width: 10rem;
  padding: 0.55rem 0.75rem 0.6rem;
  border-radius: 10px;
  background: rgba(15, 23, 42, 0.92);
  border: 1px solid rgba(148, 163, 184, 0.35);
  box-shadow:
    0 12px 32px rgba(0, 0, 0, 0.35),
    0 0 0 1px rgba(255, 255, 255, 0.06) inset;
  color: #e2e8f0;
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.35;
  pointer-events: none;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  opacity: 0;
  transform: translateY(4px);
  transition:
    opacity 0.12s ease,
    transform 0.12s ease;
}

.player-public-stats-tooltip--visible {
  opacity: 1;
  transform: translateY(0);
}

.player-public-stats-tooltip__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.player-public-stats-tooltip__row + .player-public-stats-tooltip__row {
  margin-top: 0.35rem;
}

.player-public-stats-tooltip__k {
  color: #94a3b8;
  font-weight: 600;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.player-public-stats-tooltip__v {
  color: #f1f5f9;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* ─── End of Match — Velocity Arena (light glass) ───────────────────────── */

#eom-screen.eom-screen--velocity {
  --eom-surface: #f9f9fe;
  --eom-on-surface: #2e333a;
  --eom-on-variant: #5b5f67;
  --eom-primary: #0053dc;
  --eom-primary-mid: #3e76fe;
  --eom-outline-var: #aeb2bb;
  --eom-surface-var: #dfe2ec;
  --eom-container: #eceef5;
  --eom-container-low: #f2f3fa;
  --eom-container-high: #e6e8f0;
  --eom-white: #ffffff;
  --eom-error: #a83836;
  --eom-shadow: 0 12px 40px rgba(0, 83, 220, 0.08);

  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 0;
  box-sizing: border-box;
  overflow-x: hidden;
  overflow-y: auto;
  color: var(--eom-on-surface);
  font-family: Inter, system-ui, sans-serif;
}

#eom-screen.eom-screen--velocity .eom-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background-image: var(--session-bg-image);
  background-size: cover;
  background-position: center;
  background-color: var(--eom-surface);
}

#eom-screen.hidden {
  display: none !important;
}

#eom-screen.eom-screen--velocity .eom-shell {
  position: relative;
  z-index: 1;
  width: min(1120px, calc(100% - 48px));
  max-width: 100%;
  margin: 3vh auto clamp(20px, 4vh, 40px);
  padding: 28px 24px 32px;
  display: flex;
  flex-direction: column;
  max-height: min(900px, calc(100vh - 6vh - 20px));
  height: 100%;
  min-height: 0;
  overflow: hidden;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 0.92);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 24px 64px rgba(15, 23, 42, 0.08);
}

#eom-screen.eom-screen--velocity .eom-shell::before,
#eom-screen.eom-screen--velocity .eom-shell::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  pointer-events: none;
  z-index: 0;
}

#eom-screen.eom-screen--velocity .eom-shell::before {
  width: 420px;
  height: 420px;
  top: -120px;
  left: -80px;
  background: rgba(0, 83, 220, 0.07);
}

#eom-screen.eom-screen--velocity .eom-shell::after {
  width: 280px;
  height: 280px;
  right: -40px;
  bottom: 10%;
  background: rgba(216, 227, 248, 0.45);
}

#eom-screen.eom-screen--velocity .eom-page-head,
#eom-screen.eom-screen--velocity .eom-split,
#eom-screen.eom-screen--velocity .eom-footer {
  position: relative;
  z-index: 1;
}

#eom-screen.eom-screen--velocity .eom-page-head {
  flex-shrink: 0;
  text-align: center;
  margin-bottom: 1.25rem;
}

#eom-screen.eom-screen--velocity .eom-page-title {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(1.5rem, 4vw, 2.25rem);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  color: var(--mf-accent, #0053dc);
  margin: 0 0 0.75rem;
}

#eom-screen.eom-screen--velocity .eom-score-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  max-width: min(720px, 100%);
  margin: 0 auto;
  flex-wrap: wrap;
}

#eom-screen.eom-screen--velocity .eom-team-side {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  min-width: 0;
  flex: 1 1 140px;
}

#eom-screen.eom-screen--velocity .eom-team-side--left {
  justify-content: flex-end;
}

#eom-screen.eom-screen--velocity .eom-team-side--right {
  flex-direction: row;
  justify-content: flex-start;
}

#eom-screen.eom-screen--velocity .eom-team-name-label {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.88rem;
  color: var(--eom-on-surface);
  max-width: min(42vw, 160px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* .text-truncate — display:block + max-width 100% внутри гибкой .eom-team-side */
#eom-screen.eom-screen--velocity .eom-team-name-label.text-truncate {
  display: block;
  max-width: 100%;
}

#eom-screen.eom-screen--velocity .eom-score-center {
  display: flex;
  align-items: baseline;
  gap: 0.35rem;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(1.35rem, 4vw, 1.95rem);
  font-variant-numeric: tabular-nums;
  color: var(--eom-primary);
  flex: 0 0 auto;
}

#eom-screen.eom-screen--velocity .eom-score-sep {
  opacity: 0.4;
}

#eom-screen.eom-screen--velocity .hud-team-emblem--eom {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 72px;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 12px rgba(0, 83, 220, 0.12));
}

#eom-screen.eom-screen--velocity .hud-team-emblem--eom .hud-team-emblem__stars {
  margin-bottom: 2px;
  min-height: 12px;
}

#eom-screen.eom-screen--velocity .hud-team-emblem--eom .hud-team-emblem__shield {
  width: 72px;
  height: 72px;
}

#eom-screen.eom-screen--velocity .hud-team-emblem--eom .hud-team-emblem__svg {
  display: block;
  width: 100%;
  height: 100%;
}

#eom-screen.eom-screen--velocity .hud-team-emblem--eom .hud-team-emblem__mark {
  font-size: 1.75rem;
}

#eom-screen.eom-screen--velocity .hud-team-emblem--eom .hud-team-emblem__star {
  font-size: 11px;
}

#eom-screen.eom-screen--velocity .eom-split {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  flex: 1;
  min-height: 0;
}

@media (min-width: 1024px) {
  #eom-screen.eom-screen--velocity .eom-split {
    flex-direction: row;
    align-items: stretch;
    gap: 1.5rem;
  }

  #eom-screen.eom-screen--velocity .eom-col--wide {
    width: 60%;
    flex: 1 1 60%;
  }

  #eom-screen.eom-screen--velocity .eom-col--side {
    width: 40%;
    flex: 0 0 40%;
    max-width: 420px;
  }
}

#eom-screen.eom-screen--velocity .eom-col {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  min-height: 0;
}

#eom-screen.eom-screen--velocity .eom-glass {
  background: rgba(255, 255, 255, 0.82);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border: 1px solid color-mix(in srgb, var(--eom-outline-var) 15%, transparent);
  border-radius: 12px;
  box-shadow: var(--eom-shadow);
}

#eom-screen.eom-screen--velocity .eom-glass--bento {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

#eom-screen.eom-screen--velocity .eom-glass--status {
  padding: 1.75rem 1.5rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

#eom-screen.eom-screen--velocity .eom-glass--progress {
  position: relative;
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

#eom-screen.eom-screen--velocity .eom-glass--progress::before,
#eom-screen.eom-screen--velocity .eom-glass--progress::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  z-index: 3;
  height: 22px;
  pointer-events: none;
}

#eom-screen.eom-screen--velocity .eom-glass--progress::before {
  top: 0;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0));
}

#eom-screen.eom-screen--velocity .eom-glass--progress::after {
  bottom: 0;
  background: linear-gradient(to top, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0));
}

#eom-screen.eom-screen--velocity .eom-progress-scroll {
  flex: 1;
  min-height: 0;
  padding: 1.25rem 1.5rem 1.5rem;
  overflow-x: clip;
  overflow-y: auto;
}

#eom-screen.eom-screen--velocity .eom-tabbar {
  display: flex;
  gap: 8px;
  padding: 0.5rem;
  background: var(--eom-container-low);
  flex-shrink: 0;
}

#eom-screen.eom-screen--velocity .eom-tab {
  flex: 1;
  min-width: 0;
  border: none;
  cursor: pointer;
  padding: 0.75rem 1rem;
  border-radius: 8px;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--eom-on-variant);
  background: transparent;
  transition:
    background 0.2s,
    color 0.2s,
    box-shadow 0.2s;
}

#eom-screen.eom-screen--velocity .eom-tab:hover {
  background: color-mix(in srgb, var(--eom-white) 50%, transparent);
}

#eom-screen.eom-screen--velocity .eom-tab--active {
  background: var(--eom-white);
  color: var(--eom-primary);
  font-weight: 700;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
}

#eom-screen.eom-screen--velocity .eom-stats-panel {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
}

#eom-screen.eom-screen--velocity .eom-stats-panel--hidden {
  display: none !important;
}

#eom-screen.eom-screen--velocity .eom-table-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 1rem 1.25rem 1.25rem;
}

#eom-screen.eom-screen--velocity .eom-row-grid {
  display: grid;
  grid-template-columns: 40px 1fr repeat(5, minmax(2.25rem, 1fr));
  gap: 0.65rem 0.5rem;
  align-items: center;
}

#eom-screen.eom-screen--velocity .eom-table-head {
  padding: 0 0.35rem 0.5rem;
  margin-bottom: 0.35rem;
  border-bottom: 1px solid var(--eom-surface-var);
  font-size: 0.625rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eom-on-variant);
}

#eom-screen.eom-screen--velocity .eom-th--span2 {
  grid-column: span 2;
}

#eom-screen.eom-screen--velocity .eom-th--num {
  text-align: center;
}

#eom-screen.eom-screen--velocity .eom-players-tbody {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}

#eom-screen.eom-screen--velocity .eom-player-row {
  display: grid;
  grid-template-columns: 40px 1fr repeat(5, minmax(2.25rem, 1fr));
  gap: 0.65rem 0.5rem;
  align-items: center;
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: var(--eom-container-low);
  border: 1px solid transparent;
  transition:
    background 0.2s,
    box-shadow 0.2s;
}

#eom-screen.eom-screen--velocity .eom-player-row:nth-child(even) {
  background: var(--eom-white);
}

#eom-screen.eom-screen--velocity .eom-player-row:hover {
  background: var(--eom-white);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

#eom-screen.eom-screen--velocity .eom-player-row--self {
  border-color: color-mix(in srgb, var(--eom-primary) 35%, transparent);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--eom-primary) 20%, transparent);
}

#eom-screen.eom-screen--velocity .eom-p-avatar-wrap {
  width: 40px;
  height: 40px;
  border-radius: 999px;
  flex-shrink: 0;
  overflow: hidden;
  border: 2px solid color-mix(in srgb, var(--eom-primary) 45%, transparent);
  box-sizing: border-box;
  background-size: cover;
  background-position: center;
}

#eom-screen.eom-screen--velocity .eom-p-avatar__img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#eom-screen.eom-screen--velocity .eom-p-avatar-wrap--guest {
  display: flex;
  align-items: center;
  justify-content: center;
  border-color: var(--eom-outline-var);
  color: rgba(255, 255, 255, 0.92);
  font-size: 1.25rem;
}

#eom-screen.eom-screen--velocity .eom-p-avatar-wrap--guest .material-symbols-outlined {
  font-size: 1.35rem;
}

#eom-screen.eom-screen--velocity .eom-p-name {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--eom-on-surface);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#eom-screen.eom-screen--velocity .eom-p-num {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.95rem;
  text-align: center;
  font-variant-numeric: tabular-nums;
  color: var(--eom-on-variant);
}

#eom-screen.eom-screen--velocity .eom-p-num--goals {
  color: var(--eom-primary);
  font-size: 1.05rem;
}

#eom-screen.eom-screen--velocity .eom-p-num--own {
  color: var(--eom-error);
}

#eom-screen.eom-screen--velocity .eom-status-title {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(2rem, 6vw, 3rem);
  letter-spacing: -0.02em;
  text-transform: uppercase;
  margin: 0 0 0.35rem;
  color: var(--eom-primary);
}

#eom-screen.eom-screen--velocity .eom-status-card--loss .eom-status-title {
  color: var(--eom-error);
}

#eom-screen.eom-screen--velocity .eom-status-card--draw .eom-status-title {
  color: var(--eom-on-variant);
}

#eom-screen.eom-screen--velocity .eom-status-subtitle {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--eom-on-variant);
}

#eom-screen.eom-screen--velocity .eom-progress-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 1rem;
  margin-bottom: 0.75rem;
  flex-shrink: 0;
}

#eom-screen.eom-screen--velocity .eom-progress-eyebrow {
  display: block;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--eom-on-variant);
  margin-bottom: 0.2rem;
}

#eom-screen.eom-screen--velocity .eom-progress-eyebrow--spaced {
  margin-top: 1rem;
  margin-bottom: 0.65rem;
}

#eom-screen.eom-screen--velocity .eom-progress-level {
  margin: 0;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.15rem;
  color: var(--eom-on-surface);
}

#eom-screen.eom-screen--velocity .eom-xp-pill {
  flex-shrink: 0;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--eom-primary);
  background: color-mix(in srgb, var(--eom-primary) 10%, transparent);
  padding: 0.35rem 0.65rem;
  border-radius: 8px;
}

#eom-screen.eom-screen--velocity .eom-xp-bar-track {
  height: 22px;
  min-height: 22px;
  width: 100%;
  flex-shrink: 0;
  align-self: stretch;
  border-radius: 999px;
  background: var(--eom-container-high);
  overflow: hidden;
  position: relative;
  border: 1px solid color-mix(in srgb, var(--eom-outline-var) 40%, transparent);
  box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08);
  padding: 0;
  box-sizing: border-box;
}

#eom-screen.eom-screen--velocity .eom-xp-bar-fill {
  display: block;
  box-sizing: border-box;
  height: 100%;
  min-height: 18px;
  width: 0%;
  max-width: 100%;
  border-radius: 999px;
  position: relative;
  overflow: hidden;
  /* «Магический» переливающийся градиент */
  background: linear-gradient(
    105deg,
    #4f46e5 0%,
    #9333ea 18%,
    #2563eb 38%,
    #06b6d4 58%,
    #7c3aed 78%,
    #4f46e5 100%
  );
  background-size: 220% 100%;
  animation: eom-xp-magic-shift 3.8s ease-in-out infinite;
  box-shadow:
    0 0 18px rgba(99, 102, 241, 0.55),
    0 0 10px rgba(6, 182, 212, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.35);
  transition: width 0.08s linear;
}

@keyframes eom-xp-magic-shift {
  0%,
  100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

#eom-screen.eom-screen--velocity .eom-xp-bar-fill::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.5) 48%, transparent 100%);
  animation: eom-xp-shimmer 2.1s ease-in-out infinite;
  pointer-events: none;
}

@keyframes eom-xp-shimmer {
  0% {
    transform: translateX(-120%);
  }
  100% {
    transform: translateX(120%);
  }
}

#eom-screen.eom-screen--velocity .eom-xp-subline {
  flex-shrink: 0;
  margin: 0.45rem 0 0;
  font-size: 0.78rem;
  color: var(--eom-on-variant);
  text-align: right;
  font-variant-numeric: tabular-nums;
}

#eom-guest-warning {
  margin-bottom: 20px;
  background: rgba(241, 196, 15, 0.1);
  border: 1px solid rgba(241, 196, 15, 0.3);
  border-radius: 8px;
  padding: 15px;
}

#eom-screen.eom-screen--velocity .eom-guest-warning {
  margin-top: 0.75rem;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
}

#eom-screen.eom-screen--velocity .eom-guest-warning.hidden {
  display: none !important;
}

#eom-screen.eom-screen--velocity .guest-warning-text {
  font-size: 0.8rem;
  font-weight: 700;
  color: #b45309;
  text-align: center;
  line-height: 1.35;
}

#eom-screen.eom-screen--velocity .eom-register-btn {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0.65rem 1rem;
  border: none;
  border-radius: 10px;
  font-family: inherit;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: #fff;
  background: #2ecc71;
  cursor: pointer;
  box-shadow: 0 8px 22px rgba(46, 204, 113, 0.45);
  animation: eom-register-pulse 2s ease-in-out infinite;
}

#eom-screen.eom-screen--velocity .eom-register-btn:hover {
  filter: brightness(1.06);
}

#eom-screen.eom-screen--velocity .eom-register-btn:active {
  transform: scale(0.98);
}

@keyframes eom-register-pulse {
  0%,
  100% {
    box-shadow: 0 8px 22px rgba(46, 204, 113, 0.45);
  }
  50% {
    box-shadow: 0 10px 28px rgba(46, 204, 113, 0.65);
  }
}

#eom-screen.eom-screen--velocity .eom-xp-receipt.xp-receipt {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border-radius: 10px;
  background: var(--eom-container-low);
  border: 1px solid color-mix(in srgb, var(--eom-outline-var) 20%, transparent);
  box-shadow: none;
}

#eom-screen.eom-screen--velocity .eom-xp-receipt .xp-row,
#eom-screen.eom-screen--velocity .eom-xp-receipt .xp-row-total {
  font-size: 0.8rem;
  color: var(--eom-on-surface);
  border-bottom-color: color-mix(in srgb, var(--eom-outline-var) 40%, transparent);
}

#eom-screen.eom-screen--velocity .eom-xp-receipt .xp-row .xp-val,
#eom-screen.eom-screen--velocity .eom-xp-receipt .xp-row-total .xp-val {
  color: var(--eom-primary-mid);
}

#eom-screen.eom-screen--velocity .eom-xp-receipt .xp-row-total {
  border-top-color: color-mix(in srgb, var(--eom-primary) 25%, transparent);
}

#eom-screen.eom-screen--velocity .eom-medals-section {
  margin-top: 0.25rem;
}

#eom-screen.eom-screen--velocity .eom-medals-section .stats-trophies__row {
  justify-content: flex-start;
}

#eom-screen.eom-screen--velocity .eom-medals-section .medal-empty {
  width: 100%;
  text-align: left;
}

#eom-screen.eom-screen--velocity .eom-medals-section .eom-medals-dash {
  font-size: 1.35rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
  color: color-mix(in srgb, var(--eom-on-surface) 55%, transparent);
}

#eom-screen.eom-screen--velocity .eom-footer {
  flex-shrink: 0;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  width: 100%;
  padding-top: 1.25rem;
  box-sizing: border-box;
}

#eom-screen.eom-screen--velocity .eom-btn-lobby {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: fit-content;
  max-width: 100%;
  flex: 0 0 auto;
  border: none;
  cursor: pointer;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 600;
  font-size: 0.875rem;
  padding: 0.5rem 1.1rem;
  border-radius: 8px;
  color: #fff;
  background: linear-gradient(135deg, var(--eom-primary) 0%, var(--eom-primary-mid) 100%);
  box-shadow: var(--eom-shadow);
  transition:
    transform 0.25s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.25s;
}

#eom-screen.eom-screen--velocity .eom-btn-lobby:hover {
  box-shadow: 0 12px 28px rgba(0, 83, 220, 0.14);
  transform: scale(0.98);
}

#eom-screen.eom-screen--velocity .eom-btn-lobby .material-symbols-outlined {
  font-size: 1.125rem;
}

#eom-screen.eom-screen--velocity .eom-btn-lobby.hidden {
  display: none !important;
}

#eom-screen .xp-val--neg {
  color: var(--eom-error, #fb7185) !important;
}

#eom-screen.eom-screen--velocity .eom-xp-row--hidden {
  opacity: 0;
  transform: translateY(6px);
  pointer-events: none;
  height: 0;
  margin: 0;
  padding-top: 0;
  padding-bottom: 0;
  overflow: hidden;
  border: none;
  transition:
    opacity 0.35s ease,
    transform 0.35s ease,
    height 0.35s ease,
    margin 0.35s ease,
    padding 0.35s ease;
}

#eom-screen.eom-screen--velocity .eom-xp-receipt .xp-row:not(.eom-xp-row--hidden),
#eom-screen.eom-screen--velocity .eom-xp-receipt .xp-row-total:not(.eom-xp-row--hidden) {
  opacity: 1;
  transform: translateY(0);
  height: auto;
  padding: 0.35rem 0;
  overflow: visible;
  transition:
    opacity 0.45s ease,
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

#eom-screen.eom-screen--velocity .eom-xp-receipt .xp-row-total:not(.eom-xp-row--hidden) {
  padding-top: 0.55rem;
}

/* Окно наград за уровень внутри EoM: тот же блюр, что у перерыва / модалок */
#eom-screen.eom-screen--velocity #levelup-overlay.levelup-overlay {
  position: absolute;
  inset: 0;
  z-index: 9100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
  background: rgba(4, 8, 18, 0.38);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  color: #2e333a;
  -webkit-font-smoothing: antialiased;
}

#eom-screen.eom-screen--velocity #levelup-overlay.levelup-overlay.hidden {
  display: none !important;
}

#eom-screen.eom-screen--velocity .levelup-dialog {
  padding: 2rem 2rem 1.75rem;
  border-radius: 1.5rem;
  min-width: min(450px, calc(100% - 24px));
  max-width: min(520px, calc(100% - 24px));
  width: 100%;
  text-align: center;
  background: rgba(255, 255, 255, 0.85);
  -webkit-backdrop-filter: blur(24px);
  backdrop-filter: blur(24px);
  border: 1px solid color-mix(in srgb, var(--eom-outline-var) 15%, transparent);
  box-shadow: var(--eom-shadow), 0 24px 64px rgba(0, 0, 0, 0.1);
  box-sizing: border-box;
}

#eom-screen.eom-screen--velocity .levelup-head {
  margin-bottom: 2rem;
}

#eom-screen.eom-screen--velocity .levelup-title {
  margin: 0;
  padding-bottom: 0.35rem;
  font-family: Manrope, system-ui, sans-serif;
  font-size: clamp(2rem, 5.5vw, 3rem);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.05;
  text-transform: uppercase;
  background: linear-gradient(
    165deg,
    var(--eom-primary) 0%,
    var(--eom-primary-mid) 55%,
    color-mix(in srgb, var(--eom-primary-mid) 75%, #9333ea) 100%
  );
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  filter: drop-shadow(0 2px 18px rgba(62, 118, 254, 0.45));
}

#eom-screen.eom-screen--velocity .levelup-dialog--guest .levelup-title {
  white-space: nowrap;
  font-size: clamp(1.2rem, 3.8vw, 2rem);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  color: #f1c40f;
  filter: none;
}

#eom-screen.eom-screen--velocity .levelup-dialog--auth-reward .levelup-title {
  white-space: nowrap;
  font-size: clamp(1.35rem, 4vw, 2.35rem);
  background: none;
  -webkit-background-clip: unset;
  background-clip: unset;
  color: #2ecc71;
  filter: none;
}

#eom-screen.eom-screen--velocity .levelup-subtitle {
  text-align: center;
  margin: 0 0 15px;
  font-family: Inter, system-ui, sans-serif;
  font-size: 1.125rem;
  font-weight: 500;
  color: var(--eom-on-variant);
}

#eom-screen.eom-screen--velocity .levelup-rewards-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  width: 100%;
  margin-bottom: 2.5rem;
  min-height: 1rem;
}

#eom-screen.eom-screen--velocity .levelup-card {
  grid-column: span 2;
  background: var(--eom-container-low);
  border-radius: 1rem;
  position: relative;
  overflow: hidden;
  transition: background 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

#eom-screen.eom-screen--velocity .levelup-card:hover {
  background: var(--eom-container);
}

#eom-screen.eom-screen--velocity .levelup-card-sheen {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, color-mix(in srgb, var(--eom-primary) 8%, transparent), transparent 55%);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

#eom-screen.eom-screen--velocity .levelup-card:hover .levelup-card-sheen {
  opacity: 1;
}

#eom-screen.eom-screen--velocity .levelup-card--avatar {
  padding: 1.5rem 1.25rem 1.25rem;
  display: flex;
  flex-direction: column;
  align-items: center;
}

#eom-screen.eom-screen--velocity .levelup-eyebrow {
  display: block;
  font-family: Inter, system-ui, sans-serif;
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--eom-on-variant);
  margin-bottom: 1rem;
  position: relative;
  z-index: 1;
}

#eom-screen.eom-screen--velocity .levelup-eyebrow--left {
  margin-bottom: 0.35rem;
  text-align: left;
}

#eom-screen.eom-screen--velocity .levelup-avatar-disc {
  width: 128px;
  height: 128px;
  border-radius: 999px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--eom-shadow);
  border: 4px solid var(--eom-white);
  flex-shrink: 0;
  position: relative;
  z-index: 1;
}

#eom-screen.eom-screen--velocity .levelup-avatar-img {
  width: 78%;
  height: 78%;
  object-fit: contain;
  object-position: center;
}

#eom-screen.eom-screen--velocity .levelup-card-caption {
  margin-top: 0.65rem;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 600;
  font-size: 1.0625rem;
  color: var(--eom-on-surface);
  position: relative;
  z-index: 1;
}

#eom-screen.eom-screen--velocity .levelup-card--theme {
  padding: 1.15rem 1.25rem;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  text-align: left;
}

#eom-screen.eom-screen--velocity .levelup-theme-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}

#eom-screen.eom-screen--velocity .levelup-theme-name {
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 600;
  font-size: 1.0625rem;
  color: var(--eom-on-surface);
}

#eom-screen.eom-screen--velocity .levelup-theme-swatch {
  width: 52px;
  height: 52px;
  border-radius: 0.75rem;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
  border: 2px solid var(--eom-white);
  box-sizing: border-box;
  /* фон задаётся inline — только разблокированный цвет или градиент */
}

#eom-screen.eom-screen--velocity .levelup-close.levelup-close--guest {
  background: #2ecc71;
  box-shadow: 0 8px 22px rgba(46, 204, 113, 0.45);
}

#eom-screen.eom-screen--velocity .levelup-close.levelup-close--guest:hover {
  filter: brightness(1.06);
}

#eom-screen.eom-screen--velocity .levelup-close {
  width: 100%;
  position: relative;
  overflow: hidden;
  padding: 1rem 1.75rem;
  font-family: Manrope, system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.125rem;
  border: none;
  border-radius: 0.75rem;
  cursor: pointer;
  color: #ffffff;
  background: linear-gradient(135deg, var(--eom-primary) 0%, var(--eom-primary-mid) 100%);
  box-shadow: var(--eom-shadow);
  transition:
    transform 0.3s cubic-bezier(0.4, 0, 0.2, 1),
    box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

#eom-screen.eom-screen--velocity .levelup-close-inner {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
}

#eom-screen.eom-screen--velocity .levelup-close-icon {
  font-size: 1.375rem;
  font-variation-settings: "FILL" 1;
}

#eom-screen.eom-screen--velocity .levelup-close:hover {
  box-shadow:
    var(--eom-shadow),
    0 0 22px rgba(62, 118, 254, 0.4);
}

#eom-screen.eom-screen--velocity .levelup-close:active {
  transform: scale(0.97);
}

