/*
  LEGACY — общие правки мобильной версии.
  Подключается последним на каждой странице (перед </body>),
  поэтому перекрывает старые правила страниц.
*/

@media (max-width: 760px) {
  /* Страница никогда не должна сдвигаться вбок.
     clip (а не hidden) не ломает «липкие» шапки и меню. */
  html,
  body {
    overflow-x: clip;
  }

  /* iPhone увеличивает страницу при нажатии на поле со шрифтом меньше 16px
     и оставляет её увеличенной — главный источник «кривизны». */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]),
  select,
  textarea {
    font-size: 16px !important;
  }

  /* Виджет поддержки задаёт шрифт правилом с двумя id — перебиваем тем же весом. */
  #supportPanel #supportMessage,
  #supportPanel input,
  #supportPanel textarea {
    font-size: 16px !important;
  }

  /* Картинки и видео не шире экрана. */
  img,
  video {
    max-width: 100%;
  }

  /* Мобильное меню главной: непрозрачный фон, иначе сквозь пункты
     просвечивает крупный заголовок страницы. */
  .mobile-drawer {
    background: #0e1b2d !important;
    -webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
  }

  /* Пока видна плашка cookie, кнопка чата прячется — иначе она лежит
     прямо на кнопке «Понятно». После согласия плашка удаляется, кнопка возвращается. */
  body:has(#legacyCookieNotice) #supportFab {
    display: none !important;
  }

  #legacyCookieNotice {
    box-sizing: border-box;
    max-width: calc(100vw - 24px);
  }

  /* Страница соревнования: сетки растягивались под самый широкий блок
     (таблицу расписания), и карточки вылезали за правый край на ~20px. */
  .wrap.grid,
  .comp-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .wrap.grid > *,
  .comp-grid > * {
    min-width: 0;
  }

  /* Широкая таблица расписания прокручивается внутри своего блока. */
  .schedule-box {
    overflow-x: auto;
  }
}

@media (max-width: 680px) {
  /* Главная, меню: «Войти» — отдельная кнопка, а не обычный пункт списка. */
  .mobile-drawer button[data-modal="login"] {
    justify-content: center;
    margin-top: 8px;
    border: 1px solid rgba(233, 212, 165, 0.55) !important;
    color: #e9d4a5 !important;
  }

  /* Главная, карточки «Танцы» и «Аджилити»: жёсткая высота 520px
     обрезала низ карточки вместе с кнопкой-стрелкой «Узнать больше». */
  .direction-card-v57,
  .direction-card-v57.coming-soon-v84 {
    height: auto !important;
    grid-template-rows: 175px auto !important;
  }

  /* Фото/видео сверху карточки: скругляем верхние углы.
     Раньше у «Танцев» оставались «компьютерные» скругления справа —
     видео выглядело криво обрезанным. */
  .direction-card-v57 .direction-photo-v57 {
    border-radius: 25px 25px 0 0 !important;
    overflow: hidden;
  }

  /* Кадрирование фото и видео в карточках: головы собак не обрезаются сверху. */
  .direction-card-v57.dance .direction-photo-v57 img,
  .direction-card-v57.dance .direction-video-v2 {
    object-position: 52% 18% !important;
  }

  .direction-card-v57.agility .direction-photo-v57 img,
  .direction-card-v57.agility .direction-video-v2 {
    object-position: 58% 4% !important;
  }

  /* Бейдж «Скоро» — в левый угол, чтобы не закрывать собаку. */
  .direction-card-v57.coming-soon-v84 .soon-badge-v84 {
    top: 14px !important;
    right: auto !important;
    left: 14px !important;
    padding: 7px 13px 8px !important;
    font-size: 14px !important;
  }

  /* Страницы соревнований (dance.html, agility.html): фильтры одной строкой
     с прокруткой пальцем вместо столбика, счётчик под ними, шапка компактнее. */
  body:has(.crumb) section.toolbar {
    padding: 14px 0 6px !important;
  }

  body:has(.crumb) .toolbar-in {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 8px !important;
  }

  body:has(.crumb) section.toolbar .filters {
    flex-wrap: nowrap !important;
    gap: 8px !important;
    margin: 0 -16px !important;
    padding: 2px 16px 6px !important;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body:has(.crumb) section.toolbar .filters::-webkit-scrollbar {
    display: none;
  }

  body:has(.crumb) section.toolbar .filter {
    flex: none !important;
    margin: 0 !important;
    padding: 9px 15px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
  }

  body:has(.crumb) section.toolbar .count {
    margin: 0 !important;
    font-size: 13px !important;
    text-align: left !important;
  }

  section.hero:has(.crumb) {
    padding-top: 26px !important;
    padding-bottom: 28px !important;
  }

  section.hero:has(.crumb) h1 {
    margin: 10px 0 12px !important;
    font-size: 40px !important;
    line-height: 1.05 !important;
  }

  section.hero:has(.crumb) p {
    font-size: 15px !important;
    line-height: 1.5 !important;
  }

  /* Окно регистрации/входа (auth.js): все три шага помещаются на экран
     без прокрутки — меньше заголовок и отступы, плотнее согласия,
     почта и пароль на всю ширину (подсказки не обрезаются). */
  #authBackdrop {
    padding: 10px !important;
  }

  #authCard {
    max-height: calc(100dvh - 20px) !important;
    padding: 16px !important;
  }

  #authTitle {
    font-size: 24px !important;
    line-height: 1.15 !important;
  }

  #authCard > p {
    margin: 6px 0 12px !important;
    font-size: 14px !important;
    line-height: 1.4 !important;
  }

  #authCard .auth-wizard-step,
  #authCard .auth-wizard-card {
    min-height: 0 !important;
  }

  #authCard .auth-wizard-card {
    padding: 12px !important;
  }

  #authCard .auth-wizard-head {
    margin-bottom: 10px !important;
  }

  #authCard .auth-wizard-head h3 {
    font-size: 21px !important;
    line-height: 1.15 !important;
  }

  #authCard .auth-wizard-head p {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }

  #authCard .auth-role-card {
    padding: 12px 14px !important;
  }

  #authCard .auth-consent {
    margin-bottom: 2px !important;
    padding: 7px 6px !important;
  }

  #authCard .auth-consent-note {
    margin: 4px 0 10px !important;
    font-size: 11px !important;
    line-height: 1.35 !important;
  }

  #authCard input {
    padding-right: 12px !important;
    padding-left: 12px !important;
  }

  html body #authCard #authBody .auth-fields-grid > div:first-child > #authEmail,
  html body #authCard #authBody .auth-fields-grid > div:first-child > #authPassword,
  html body #authCard #authBody .auth-fields-grid > div:first-child > .auth-pw-wrap {
    grid-column: 1 / -1 !important;
  }

  html body #authCard .auth-pw-wrap {
    display: flex !important;
  }

  #authCard .auth-wizard-actions {
    margin-top: 14px !important;
  }

  #authCard .auth-wizard-actions button {
    padding: 12px 16px !important;
    font-size: 15px !important;
    white-space: nowrap !important;
  }

  /* Главная, карта городов: на телефоне — сетка карточек вместо широкой схемы,
     которую приходилось листать вбок. */
  .map-canvas-v4-scroll {
    overflow: visible !important;
  }

  .map-canvas-v4 {
    min-width: 0 !important;
    height: auto !important;
    margin-top: 24px !important;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }

  .map-lines-v4 {
    display: none !important;
  }

  .map-node-v4 {
    position: relative !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    flex-direction: row !important;
    flex-wrap: wrap;
    align-items: center !important;
    justify-content: flex-start;
    gap: 10px !important;
    padding: 12px 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 14px;
    background: rgba(255, 255, 255, 0.04) !important;
    text-align: left;
  }

  .map-node-v4.hub {
    grid-column: 1 / -1;
    border-color: rgba(233, 212, 165, 0.45) !important;
    background: rgba(233, 212, 165, 0.08) !important;
  }

  .map-node-dot-v4 {
    position: relative;
    flex: none;
  }

  .map-node-v4.hub .map-node-dot-v4 {
    margin: 0 4px 0 6px;
  }

  /* Пульсирующее кольцо вокруг точки вылезает за рамку карточки города. */
  .map-node-dot-v4::before {
    display: none !important;
  }

  /* Карта «живая»: Петербург пульсирует, по остальным городам бежит волна
     огоньков, нажатый город подсвечивается золотым. */
  .map-node-v4 {
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: transform 0.15s ease, border-color 0.25s ease, background 0.25s ease !important;
  }

  .map-node-v4:active {
    transform: scale(0.97) !important;
  }

  .map-node-v4.hub .map-node-dot-v4 {
    animation: legacyMapHubPulse 2.4s ease-out infinite;
  }

  .map-node-v4.ghost .map-node-dot-v4 {
    animation: legacyMapPing 7s ease-in-out infinite;
  }

  .map-node-v4.ghost:nth-of-type(2) .map-node-dot-v4 { animation-delay: 0.4s; }
  .map-node-v4.ghost:nth-of-type(3) .map-node-dot-v4 { animation-delay: 0.9s; }
  .map-node-v4.ghost:nth-of-type(4) .map-node-dot-v4 { animation-delay: 1.4s; }
  .map-node-v4.ghost:nth-of-type(5) .map-node-dot-v4 { animation-delay: 1.9s; }
  .map-node-v4.ghost:nth-of-type(6) .map-node-dot-v4 { animation-delay: 2.4s; }
  .map-node-v4.ghost:nth-of-type(7) .map-node-dot-v4 { animation-delay: 2.9s; }

  .map-node-v4.hub:not(.active) {
    border-color: rgba(233, 212, 165, 0.22) !important;
    background: rgba(233, 212, 165, 0.03) !important;
  }

  .map-node-v4.ghost.active {
    border-color: rgba(233, 212, 165, 0.55) !important;
    background: rgba(233, 212, 165, 0.1) !important;
  }

  .map-node-v4.ghost.active .map-node-label-v4 {
    color: #fff !important;
  }

  .map-node-v4.ghost.active .map-node-dot-v4 {
    animation: none;
    border-color: #e9d4a5 !important;
    background: #e9d4a5 !important;
    box-shadow: 0 0 0 5px rgba(233, 212, 165, 0.18), 0 0 14px rgba(233, 212, 165, 0.6) !important;
  }

  .map-tooltip-v4.flash {
    animation: legacyMapFlash 0.6s ease;
  }

  @keyframes legacyMapHubPulse {
    0% { box-shadow: 0 0 0 0 rgba(233, 212, 165, 0.55), 0 0 18px rgba(233, 212, 165, 0.55); }
    70% { box-shadow: 0 0 0 12px rgba(233, 212, 165, 0), 0 0 18px rgba(233, 212, 165, 0.55); }
    100% { box-shadow: 0 0 0 0 rgba(233, 212, 165, 0), 0 0 18px rgba(233, 212, 165, 0.55); }
  }

  @keyframes legacyMapPing {
    0%, 22%, 100% { border-color: rgba(255, 255, 255, 0.32); background: transparent; box-shadow: none; }
    8% { border-color: #e9d4a5; background: rgba(233, 212, 165, 0.75); box-shadow: 0 0 12px rgba(233, 212, 165, 0.7); }
  }

  @keyframes legacyMapFlash {
    0% { opacity: 0.35; transform: translateY(6px); }
    100% { opacity: 1; transform: none; }
  }

  @media (prefers-reduced-motion: reduce) {
    .map-node-v4 .map-node-dot-v4,
    .map-tooltip-v4.flash {
      animation: none !important;
    }
  }

  /* Главный экран: горизонтальное видео на весь вертикальный экран обрезалось
     и размывалось. На телефоне показываем его целиком — карточкой 16:9
     прямо под подзаголовком «Весь спортивный путь — в одном месте»,
     перед кнопкой «Найти соревнование».
     Контейнеры текста «растворяются» (display: contents), чтобы видео
     встало между строками в общем порядке. */
  .hero {
    height: auto !important;
    min-height: 0 !important;
  }

  .hero-3d-stage {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    background: #0e1b2d !important;
  }

  .hero-inner,
  .hero-copy {
    display: contents !important;
  }

  .hero-copy > * {
    margin-left: 12px !important;
    margin-right: 12px !important;
  }

  .hero-copy .micro {
    order: 1;
    margin-top: 114px !important;
  }

  .hero-copy h1 {
    order: 2;
  }

  .hero-copy .rule {
    order: 3;
    align-self: flex-start;
  }

  .hero-copy .hero-sub {
    order: 4;
  }

  .hero-bg {
    order: 5;
    position: relative !important;
    inset: auto !important;
    z-index: 2;
    display: block !important;
    width: calc(100% - 24px) !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    margin: 0 12px 22px !important;
    border-radius: 18px;
    object-fit: cover !important;
    object-position: center !important;
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.35);
  }

  .hero-copy .hero-buttons {
    order: 6;
  }

  .hero-copy .organizer-link.organizer-link {
    order: 7;
    align-self: flex-start;
    margin: 20px 12px 30px !important;
  }

  .hero-water-dive,
  .hero-water-caustics {
    display: none !important;
  }

  /* Направления: заголовок меньше, фото ниже, без блока «Сейчас на платформе»
     (то же видно по карточкам: у «Аджилити» бейдж «Скоро»). */
  #directions {
    padding-top: 44px !important;
    padding-bottom: 44px !important;
  }

  #directions .directions-intro {
    gap: 14px !important;
    margin-bottom: 20px !important;
  }

  #directions .directions-intro h2 {
    margin: 0 !important;
    font-size: 32px !important;
    line-height: 1.12 !important;
  }

  #directions .directions-note {
    display: none !important;
  }

  #directions .direction-main-v57 {
    gap: 14px !important;
  }

  .direction-card-v57 .direction-copy-v57 {
    min-height: 0 !important;
    padding: 18px 20px 20px !important;
  }

  .direction-card-v57 h3 {
    margin-bottom: 8px !important;
    font-size: 28px !important;
    line-height: 1.1 !important;
  }

  .direction-card-v57 .direction-copy-v57 p {
    margin-bottom: 12px !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  /* «Философия LEGACY»: три ценности — компактными строками со значком слева. */
  .story-band-v101 {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }

  .story-copy-v101 h2 {
    font-size: 32px !important;
    line-height: 1.15 !important;
  }

  .story-values-v101 {
    gap: 10px !important;
  }

  .story-value-v101 {
    display: grid !important;
    grid-template-columns: 44px 1fr;
    column-gap: 14px;
    align-items: start;
    min-height: 0 !important;
    height: auto !important;
    padding: 16px 18px !important;
    text-align: left !important;
  }

  .story-value-v101 .story-icon-v105 {
    grid-row: 1 / span 2;
    width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
  }

  .story-value-v101 .story-icon-v105 svg {
    width: 22px !important;
    height: 22px !important;
  }

  .story-value-v101 .story-gold-line-v105 {
    display: none !important;
  }

  .story-value-v101 h3 {
    margin: 0 0 4px !important;
    font-size: 19px !important;
    text-align: left !important;
  }

  .story-value-v101 p {
    margin: 0 !important;
    font-size: 14px !important;
    line-height: 1.45 !important;
    text-align: left !important;
  }

  /* «Инструменты для судей и организаторов»: без макетов экранов,
     заголовки меньше — блок примерно в один экран вместо двух с лишним. */
  #athletes {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
  }

  #athletes .tools-head-v116 {
    margin-bottom: 18px !important;
  }

  #athletes .tools-head-v116 h2 {
    font-size: 30px !important;
    line-height: 1.15 !important;
  }

  #athletes .tools-grid {
    gap: 12px !important;
  }

  #athletes .tool-card {
    min-height: 0 !important;
    height: auto !important;
    padding: 22px 20px !important;
  }

  #athletes .tool-card .device {
    display: none !important;
  }

  #athletes .tool-card h3 {
    margin: 10px 0 !important;
    font-size: 26px !important;
    line-height: 1.15 !important;
  }

  #athletes .tool-card p:not(.micro) {
    margin: 0 0 16px !important;
    font-size: 14px !important;
  }

  #athletes .tool-card .button {
    margin-top: 0 !important;
  }

  .map-node-label-v4 {
    white-space: normal !important;
    font-size: 14px !important;
  }

  .map-node-v4.ghost .map-node-soon-v4 {
    width: 100%;
    margin: -4px 0 0 22px !important;
  }
}

@media (max-width: 480px) {
  /* Архив результатов: кнопки фильтров переносятся на новую строку. */
  .system-filter {
    flex-wrap: wrap !important;
  }
}

@media (max-width: 400px) {
  /* Главная на узких телефонах (320px — iPhone SE, маленькие Android):
     логотип выталкивал кнопку меню ☰ за правый край экрана. */
  .header-inner {
    gap: 12px !important;
  }

  .brand-logo-link,
  .brand-logo-wrap {
    min-width: 0 !important;
    flex-shrink: 1 !important;
  }

  .brand-logo {
    width: min(195px, calc(100vw - 150px)) !important;
    max-width: 100% !important;
    height: auto !important;
  }
}

@media (max-width: 620px) {
  /* Шапка с двумя кнопками справа (соревнование, заявка, направления):
     логотип 220px выталкивал колокольчик за край экрана. */
  .header-in:has(.header-right) .logo {
    width: 168px !important;
  }

  .header-right {
    flex-shrink: 0;
  }
}

/* ===================== Личный кабинет (account.html) ===================== */
@media (max-width: 680px) {
  /* Шапка: логотип, колокольчик и ☰ в одну строку; «На главную», «Организатор»,
     «Админка», «Выйти» — в выпадающем меню (скрипт legacy-account-mobile-menu). */
  /* Шапка с логотипом LEGACY остаётся наверху при прокрутке, как на сайте. */
  body:has(.account-layout) header.header {
    position: sticky !important;
    top: 0 !important;
    height: 64px !important;
    z-index: 120 !important;
  }

  body:has(.account-layout) .header-in {
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 100% !important;
    padding: 0 !important;
  }

  body:has(.account-layout) .header-in .logo {
    width: 200px !important;
  }

  body:has(.account-layout) .header-in .actions {
    position: static !important;
    top: auto !important;
    transform: none !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 8px !important;
    width: auto !important;
  }

  body:has(.account-layout) .header-in .actions > * {
    flex: none !important;
    margin: 0 !important;
  }

  .account-menu-btn {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    cursor: pointer;
  }

  .account-menu-btn svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
  }

  .account-menu-btn[aria-expanded="true"] {
    border-color: #e9d4a5;
    color: #e9d4a5;
  }

  .account-menu-panel {
    position: absolute;
    top: calc(100% - 4px);
    right: 0;
    z-index: 130;
    display: grid;
    gap: 4px;
    min-width: 210px;
    padding: 8px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    background: #0e1b2d;
    box-shadow: 0 18px 40px rgba(4, 12, 20, 0.35);
  }

  .account-menu-panel[hidden] {
    display: none;
  }

  .account-menu-panel .hbtn {
    width: 100% !important;
    margin: 0 !important;
    padding: 12px 14px !important;
    border: 0 !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: #fff !important;
    font-size: 15px !important;
    text-align: left !important;
    justify-content: flex-start !important;
  }

  .account-menu-panel .hbtn:active {
    background: rgba(255, 255, 255, 0.08) !important;
  }

  .account-menu-panel #logoutBtn {
    margin-top: 4px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    border-radius: 0 0 10px 10px !important;
    color: #e9d4a5 !important;
  }

  /* Вкладки «Обзор, Собаки, Спортивный профиль…» едут вместе со страницей,
     как на компьютере (в коде кабинета на ≤900px липкость была отключена). */
  body:has(.account-layout) .account-nav-wrap {
    position: sticky !important;
    top: 64px !important;
    z-index: 90 !important;
    margin: 14px 0 8px !important;
  }

  /* Верхний блок и карточка профиля. */
  body:has(.account-layout) section.hero {
    padding: 28px 0 52px !important;
  }

  #heroTitle {
    font-size: 32px !important;
    line-height: 1.1 !important;
  }

  #profileSection {
    flex-wrap: wrap !important;
    gap: 14px !important;
    padding: 18px !important;
  }

  #profileSection .avatar {
    width: 60px !important;
    height: 60px !important;
  }

  #userName {
    font-size: 22px !important;
    line-height: 1.2 !important;
  }

  /* Плитки «Собаки / Разряды / Номера / Заявки» — сеткой 2×2. */
  .overview-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }

  .overview-card {
    min-height: 0 !important;
    height: auto !important;
    gap: 4px !important;
    padding: 14px 12px !important;
  }

  .overview-card > :first-child {
    width: 34px !important;
    min-width: 34px !important;
    height: 34px !important;
    margin-bottom: 4px !important;
  }

  .overview-card > :first-child svg {
    width: 17px !important;
    height: 17px !important;
  }

  .overview-card strong {
    font-size: 28px !important;
    line-height: 1.1 !important;
  }

  .overview-card small {
    font-size: 10px !important;
    letter-spacing: 0.12em !important;
  }

  .overview-card span {
    font-size: 12px !important;
    line-height: 1.3 !important;
  }

  /* Карточки собак: фото рядом с кличкой, сведения по два в ряд. */
  #dogsSection .dog-card-top {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 12px 14px !important;
  }

  #dogsSection .dog-photo {
    flex: none !important;
    width: 64px !important;
    min-width: 64px !important;
    height: 64px !important;
  }

  #dogsSection .dog-card-main {
    flex: 1 1 0 !important;
    min-width: 0 !important;
  }

  #dogsSection .dog-actions {
    flex: 1 1 100% !important;
  }

  #dogsSection .dog-facts {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }

  #dogsSection .dog-fact {
    min-width: 0 !important;
    padding: 9px 10px !important;
  }

  #dogsSection .dog-fact * {
    overflow-wrap: anywhere;
  }

  /* Спортивный профиль: пары, готовность, классы, номера — без вылезания
     за край и без сплющенных кнопок. */
  #sportsPairs,
  .pair-readiness-top,
  .routine-list {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .pair-card,
  .pair-head,
  .pair-readiness,
  .routine-item {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .pair-card {
    padding: 16px !important;
  }

  .pair-head,
  .routine-item,
  .routine-actions {
    flex-wrap: wrap !important;
  }

  .pair-head {
    align-items: center !important;
    gap: 12px !important;
  }

  .pair-head .pair-title {
    font-size: 19px !important;
    line-height: 1.2 !important;
  }

  .pair-readiness {
    padding: 14px !important;
  }

  .pair-readiness-top {
    gap: 10px !important;
  }

  .pair-section-head {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  .pair-section-head .pair-section-title {
    font-size: 19px !important;
  }

  .pair-section-head .meta {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }

  .pair-section-head > .btn {
    align-self: flex-start !important;
    width: auto !important;
    padding: 10px 14px !important;
    font-size: 15px !important;
    white-space: nowrap !important;
  }

  .pair-readiness-top .btn,
  .qualification-row .btn,
  .routine-actions .btn,
  #achievementsSection .btn,
  #judgeSection .btn.light {
    padding: 8px 12px !important;
    font-size: 14px !important;
  }

  .qualification-row {
    gap: 10px !important;
  }

  #sportProfileSection .section-head p {
    font-size: 14px !important;
    line-height: 1.45 !important;
  }

  /* Уведомления: текст во всю ширину, «Открыть» — маленькой кнопкой под ним. */
  #notificationsSection .notif-item {
    flex-wrap: wrap !important;
    gap: 6px 10px !important;
    padding: 12px 14px !important;
  }

  #notificationsSection .notif-text {
    flex: 1 1 100% !important;
    min-width: 0 !important;
  }

  #notificationsSection .notif-action {
    margin: 0 !important;
    padding: 6px 12px !important;
    font-size: 13px !important;
  }
}

/* Судейский профиль: кнопка «Добавить квалификацию» и выбор системы (все экраны). */
.judge-add {
  margin-top: 12px;
}

.judge-add-choices {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.judge-add-choices[hidden] {
  display: none;
}
