/* ==========================================================================
   CLM · Redesign — премиум-слой дизайн-системы (красно-чёрная гамма)
   Вдохновлён структурой magistrs.com, но собственная палитра CLM.
   Грузится ПОСЛЕ clm.css и переопределяет сквозные элементы:
   фон, хедер, футер + утилиты. Контент страниц активируется маркером body.rd.
   ========================================================================== */

/* --- Токены -------------------------------------------------------------- */
:root {
    /* Фоны: глубокий тёплый чёрный с красным подтоном */
    --rd-bg:        #0a0607;
    --rd-bg-2:      #0f0a0b;
    --rd-bg-3:      #140c0e;

    /* Поверхности карточек */
    --rd-surface:   #151011;
    --rd-surface-2: #1c1416;
    --rd-surface-3: #241a1d;

    /* Линии/границы */
    --rd-line:      rgba(255, 255, 255, .07);
    --rd-line-2:    rgba(255, 255, 255, .12);
    --rd-line-red:  rgba(255, 59, 59, .22);

    /* Тонкие подсветки поверх фона (hover строк, бейджи, табы).
       На тёмной теме — белесые; светлая тема переопределяет на тёмные. */
    --rd-tint-2: rgba(255, 255, 255, .02);
    --rd-tint:   rgba(255, 255, 255, .03);
    --rd-tint-3: rgba(255, 255, 255, .04);

    /* Красный — бренд и его оттенки */
    --rd-red:       #ff3b3b;
    --rd-red-2:     #ff5a4d;
    --rd-red-hi:    #ff7a63;   /* блик для металлического градиента */
    --rd-red-deep:  #b81212;
    --rd-red-glow:  rgba(255, 59, 59, .38);
    --rd-red-soft:  rgba(255, 59, 59, .12);
    --rd-red-soft2: rgba(255, 59, 59, .06);

    /* Текст */
    --rd-text:   #f5efef;   /* тёплый белый (не чистый #fff — тот даёт «гало» на тёмном) */
    --rd-text-2: #cabfbf;   /* приглушённый — поднят для читаемости (был #b9adad) */
    --rd-text-3: #9a8f90;   /* самый тихий — поднят до AA даже на светлых карточках (был #837778) */

    /* Типографика */
    --rd-font-display: 'Oswald', 'Manrope', sans-serif;
    --rd-font-body:    'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;

    /* Радиусы */
    --rd-radius-sm: 10px;
    --rd-radius:    16px;
    --rd-radius-lg: 22px;
    --rd-radius-xl: 28px;

    /* Тени */
    --rd-shadow:     0 24px 60px -24px rgba(0, 0, 0, .85);
    --rd-shadow-sm:  0 8px 24px -12px rgba(0, 0, 0, .8);
    --rd-shadow-red: 0 18px 50px -18px rgba(255, 59, 59, .45);

    /* Слои */
    --rd-container: 1200px;
    --rd-header-h:  72px;

    /* Базовый масштаб редизайна: 0.8 = «как браузерные 80%» по умолчанию.
       Дизайн почти весь на px, поэтому масштабируем через zoom, а не font-size. */
    --rd-scale: 0.8;
    /* Отдельный масштаб для React-экранов игры (мельче публичного сайта). */
    --rd-scale-app: 0.7;

    /* Градиенты-акценты */
    --rd-grad-red:  linear-gradient(135deg, var(--rd-red-hi) 0%, var(--rd-red) 42%, var(--rd-red-deep) 100%);
    --rd-grad-text: linear-gradient(180deg, #fff 0%, #ffd9d4 45%, var(--rd-red) 100%);
}

/* --- Сквозной фон -------------------------------------------------------- */
/* Мягкие красные свечения на тёплом чёрном — единый вайб на всех страницах */
body {
    background-color: var(--rd-bg);
    background-image:
        radial-gradient(1100px 600px at 50% -6%,  rgba(255, 59, 59, .10), transparent 60%),
        radial-gradient(900px 520px at 100% 3%,   rgba(184, 18, 18, .12), transparent 55%),
        radial-gradient(760px 520px at 0% 6%,      rgba(255, 59, 59, .05), transparent 55%),
        radial-gradient(820px 620px at 88% 84%,    rgba(184, 18, 18, .06), transparent 55%);
    background-repeat: no-repeat;
}

/* Контентная типографика включается только на редизайненных страницах,
   чтобы не «поехала» вёрстка ещё не тронутых разделов (они на Oswald). */
body.rd {
    font-family: var(--rd-font-body);
    color: var(--rd-text);
    letter-spacing: .01em;
    /* Возвращаем нормальный документный скролл: clm.css задаёт height:100%,
       из-за чего body с overflow-x:hidden становится внутренним скролл-контейнером
       и ломает sticky-хедер и прокрутку. */
    height: auto;
    min-height: 100vh;
    /* overflow-x:hidden на body (clm.css) делает body scroll-контейнером для
       sticky-потомков — шапка переставала прилипать. Обрезку по X уже даёт html. */
    overflow-x: visible;
}
html:has(body.rd) { height: auto; }

/* Прижимаем футер к низу на коротких страницах: без этого после футера
   остаётся «хвост» body (на светлой теме он заметен как полоса под футером).
   Все прочие дети body — fixed/absolute/display:none, флексу не мешают. */
body.rd:not(.rd-admin) {
    display: flex;
    flex-direction: column;
}
body.rd:not(.rd-admin) > .content-layout { flex: 1 0 auto; }

/* --- Базовый масштаб публичного редизайна ------------------------------- */
/* Уменьшаем всю вёрстку до --rd-scale (0.8), чтобы вид на 100% браузера
   соответствовал прежним ~80%. Дизайн почти весь на px, поэтому масштабируем
   через zoom, а не font-size. Админку (.rd-admin) не трогаем. */
body.rd:not(.rd-admin) {
    zoom: var(--rd-scale);
    /* min-height компенсируем на масштаб, чтобы фон покрывал весь экран
       при коротком контенте (иначе снизу проглядывала бы подложка html). */
    min-height: calc(100vh / var(--rd-scale));
}
/* Тёмная подложка под html — на случай непокрытых zoom-ом зон */
html:has(body.rd:not(.rd-admin)) { background-color: var(--rd-bg); }

/* Игровое React-приложение (app.blade.php, body.rd-scaled): тот же масштаб.
   Класс минимальный — только zoom, без остальных стилей .rd, чтобы не ломать
   собственный Tailwind-дизайн игры. Фон #0c0a0c совпадает с корнем GameScreen,
   поэтому непокрытых zoom-ом зон снизу не видно. */
body.rd-scaled {
    zoom: var(--rd-scale-app);
    min-height: calc(100vh / var(--rd-scale-app));
    background-color: #0c0a0c;
}
html:has(body.rd-scaled) { background-color: #0c0a0c; }

/* На редизайненных страницах контент-обёртка не ограничивает секции.
   Важно: clm.css делает .content-layout флексом с align-items:center,
   из-за чего секции схлопываются по ширине контента — возвращаем блок. */
body.rd .content-layout {
    display: block;
    max-width: none;
    width: 100%;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
}

/* Единый box-sizing для контента редизайн-страниц: max-width = точная ширина */
body.rd .content-layout,
body.rd .content-layout *,
body.rd .content-layout *::before,
body.rd .content-layout *::after {
    box-sizing: border-box;
}

/* App-layout страницы (body.rd без rd-admin, напр. профиль): панель .content-main
   получает premium-поверхность вместо серой clm-панели с белым свечением
   и верхний отступ, чтобы не прилипать к хедеру. */
body.rd:not(.rd-admin) .content-main {
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius-lg);
    box-shadow: var(--rd-shadow);
    margin-top: clamp(28px, 4vw, 48px);
}

/* ==========================================================================
   Утилиты (общие для всех редизайн-страниц)
   ========================================================================== */
.rd-container {
    width: 100%;
    max-width: var(--rd-container);
    margin-inline: auto;
    padding-inline: 24px;
}

.rd-section {
    padding-block: clamp(48px, 7vw, 96px);
}
.rd-section--tight { padding-block: clamp(32px, 4vw, 56px); }

/* Надзаголовок с красной чертой (| Гонка рейтинга) */
.rd-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--rd-font-display);
    font-weight: 600;
    font-size: 13px;
    letter-spacing: .28em;
    text-transform: uppercase;
    color: var(--rd-red-2);
    margin: 0 0 14px;
}
.rd-eyebrow::before {
    content: "";
    width: 3px;
    height: 15px;
    border-radius: 2px;
    background: var(--rd-grad-red);
    box-shadow: 0 0 12px var(--rd-red-glow);
}

/* Заголовки секций */
.rd-h2 {
    font-family: var(--rd-font-display);
    font-weight: 700;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1.02;
    letter-spacing: .01em;
    text-transform: uppercase;
    color: var(--rd-text);
    margin: 0;
}
.rd-h2 .accent {
    background: var(--rd-grad-red);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.rd-lead {
    color: var(--rd-text-2);
    font-size: clamp(15px, 1.5vw, 17px);
    line-height: 1.65;
    max-width: 640px;
}
.rd-section__head { margin-bottom: 32px; }

/* Карточка */
.rd-card {
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius-lg);
    box-shadow: var(--rd-shadow);
}

/* Кнопки */
.rd-btn {
    --_bg: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 50px;
    padding: 0 26px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-family: var(--rd-font-display);
    font-weight: 600;
    font-size: 14px;
    letter-spacing: .12em;
    text-transform: uppercase;
    cursor: pointer;
    transition: transform .18s ease, box-shadow .25s ease, background-color .25s ease, border-color .25s ease;
    white-space: nowrap;
}
.rd-btn .material-symbols-outlined { font-size: 20px; }

.rd-btn--primary {
    background: var(--rd-grad-red);
    color: #fff;
    box-shadow: var(--rd-shadow-red);
}
.rd-btn--primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 44px -18px rgba(255, 59, 59, .5);
}
.rd-btn--ghost {
    background: var(--rd-tint-2);
    border-color: var(--rd-line-2);
    color: var(--rd-text);
}
.rd-btn--ghost:hover {
    border-color: var(--rd-line-red);
    background: var(--rd-red-soft);
    transform: translateY(-1px);
}

/* Мелкий бейдж-пилюля (VIP/PRO и т.п.) */
.rd-pill {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    border-radius: 6px;
    font-family: var(--rd-font-display);
    font-weight: 600;
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(135deg, var(--rd-red-2), var(--rd-red-deep));
    box-shadow: 0 0 0 1px rgba(255, 59, 59, .25) inset;
}

/* ==========================================================================
   Сквозной ХЕДЕР
   ========================================================================== */
body header {                 /* переопределяем старый header{} из clm.css */
    position: sticky;
    top: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    gap: 20px;
    /* clm.css ставит max-width:100vw; под zoom единица vw не делится на масштаб
       и хедер оказывался уже контента (полоса «обрезалась» справа). */
    width: 100%;
    max-width: none;
    height: var(--rd-header-h);
    padding-inline: clamp(16px, 4vw, 40px);
    background: color-mix(in srgb, var(--rd-bg-2) 82%, transparent);
    -webkit-backdrop-filter: blur(14px) saturate(1.2);
    backdrop-filter: blur(14px) saturate(1.2);
    border-bottom: 1px solid var(--rd-line);
    box-shadow: 0 10px 30px -20px rgba(0, 0, 0, .9);
}

.home-logo { display: inline-flex; align-items: center; }
.home-logo img {
    height: 40px;
    width: auto;
    filter: drop-shadow(0 0 14px rgba(255, 59, 59, .35));
    /* Пружинная кривая (overshoot) — имитирует spring transform hover */
    transition: transform .6s cubic-bezier(.34, 1.56, .64, 1);
}
/* Наведение: поворот -8° + увеличение до 1.06 с пружинным откликом */
.home-logo a:hover img { transform: rotate(-8deg) scale(1.06); }

/* Навигация */
header .main-nav {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-inline: auto;              /* центрируем меню */
}
header .main-nav .menu-item {
    position: relative;
    display: inline-flex;
    align-items: center;
    border-bottom: 0 !important;   /* гасим толстое подчёркивание из clm.css — оставляем только ::after */
}
/* Отключаем нативное перетаскивание ссылок/логотипа в шапке —
   иначе браузер показывает «призрак» ссылки с её URL при drag */
header a,
header img {
    -webkit-user-drag: none;
    user-select: none;
}

header .main-nav .menu-item > a {
    position: relative;
    display: inline-flex;
    align-items: center;
    padding: 10px 16px;
    border-radius: 10px;
    font-family: var(--rd-font-display);
    font-weight: 500;
    font-size: 15px;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rd-text-2);
    overflow: hidden;
    transition: color .25s ease, text-shadow .25s ease;
}
/* Заливка-подсветка, наплывающая снизу при наведении */
header .main-nav .menu-item > a::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(180deg, transparent, rgba(255, 59, 59, .10));
    transform: translateY(101%);
    transition: transform .28s cubic-bezier(.4, 0, .2, 1);
}
header .main-nav .menu-item > a:hover {
    color: #fff;
    text-shadow: 0 0 14px var(--rd-red-glow);
}
header .main-nav .menu-item > a:hover::before { transform: translateY(0); }

/* Анимированное подчёркивание — растёт из центра при наведении и в активном пункте */
header .main-nav .menu-item::after {
    content: "";
    position: absolute;
    left: 16px; right: 16px; bottom: 4px;
    height: 2px;
    border-radius: 2px;
    background: var(--rd-grad-red);
    box-shadow: 0 0 12px var(--rd-red-glow);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform .28s cubic-bezier(.4, 0, .2, 1);
}
header .main-nav .menu-item:hover::after,
header .main-nav .menu-item.active::after { transform: scaleX(1); }
header .main-nav .menu-item.active > a { color: #fff; }

/* --- Эффект «выстрел» при клике по пункту меню -------------------------- */
/* Два варианта; активный выбирается в header.blade.php (SHOT_VARIANT):
   .shot-v1 — «Выстрел один» (насыщенный: вспышка, волна, дырка с трещинами, осколки);
   .shot-v2 — «Выстрел два» (спокойный: мягкая вспышка + аккуратная дырка).       */

/* Контейнер эффекта ставится по координатам курсора (position: fixed из JS) */
.shot-fx {
    position: fixed;
    z-index: 100000;
    width: 0;
    height: 0;
    pointer-events: none;
}
/* Общие правила для «слоёв» — центрируем относительно точки клика */
.shot-fx > * {
    position: absolute;
    left: 0;
    top: 0;
    border-radius: 50%;
}

/* Общие keyframes (используются обоими вариантами) */
@keyframes shot-flash {
    0%   { transform: scale(.2); opacity: 1; }
    45%  { transform: scale(1.15); opacity: 1; }
    100% { transform: scale(1.5); opacity: 0; }
}
@keyframes shot-ring {
    0%   { transform: scale(.3); opacity: .9; border-width: 3px; }
    100% { transform: scale(4.5); opacity: 0; border-width: .5px; }
}
@keyframes shot-hole-in {
    0%   { transform: scale(0); }
    100% { transform: scale(1); }
}
@keyframes shot-hole-out {
    0%   { opacity: 1; }
    100% { opacity: 0; }
}
@keyframes shot-debris {
    0%   { transform: translate(0, 0) scale(1); opacity: 1; }
    100% { transform: translate(var(--dx), var(--dy)) scale(.2); opacity: 0; }
}

/* ===== ВЫСТРЕЛ ОДИН (.shot-v1) — насыщенный ===== */
/* Вспышка от выстрела — яркий короткий всполох */
.shot-v1 .shot-flash {
    width: 90px;
    height: 90px;
    margin: -45px 0 0 -45px;
    background: radial-gradient(circle,
        rgba(255, 255, 255, .95) 0%,
        rgba(255, 226, 150, .9) 18%,
        rgba(255, 120, 40, .7) 40%,
        rgba(255, 59, 59, .32) 62%,
        transparent 74%);
    animation: shot-flash .22s ease-out forwards;
}
/* Ударная волна — расходящееся кольцо */
.shot-v1 .shot-ring {
    width: 22px;
    height: 22px;
    margin: -11px 0 0 -11px;
    border: 2px solid rgba(255, 120, 60, .7);
    animation: shot-ring .5s ease-out forwards;
}
/* Дырка от пули: тёмное ядро + прожжённый ободок, держится и медленно тает */
.shot-v1 .shot-hole {
    width: 26px;
    height: 26px;
    margin: -13px 0 0 -13px;
    background: radial-gradient(circle at 50% 45%,
        #000 0%, #000 34%,
        #1a0d0d 46%,
        rgba(60, 20, 20, .55) 62%,
        transparent 74%);
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, .7),
        0 0 12px 2px rgba(0, 0, 0, .6),
        inset 0 1px 2px rgba(255, 120, 60, .35);
    animation:
        shot-hole-in .18s cubic-bezier(.2, .8, .2, 1.2) forwards,
        shot-hole-out .8s ease-in 1.5s forwards;
}
/* Трещины-лучи вокруг дырки (эффект расколотого стекла) */
.shot-v1 .shot-hole::before {
    content: "";
    position: absolute;
    inset: -12px;
    border-radius: 50%;
    background: repeating-conic-gradient(from 0deg,
        rgba(0, 0, 0, .55) 0deg 1.4deg,
        transparent 1.4deg 26deg);
    -webkit-mask: radial-gradient(circle, #000 28%, transparent 68%);
            mask: radial-gradient(circle, #000 28%, transparent 68%);
    opacity: .75;
}
/* Разлетающиеся осколки (направление задаётся из JS через --dx/--dy) */
.shot-v1 .shot-debris {
    width: 3px;
    height: 3px;
    margin: -1.5px 0 0 -1.5px;
    background: radial-gradient(circle, #ffd9a0, #ff6a2a);
    animation: shot-debris .5s ease-out forwards;
}
/* Отдача пункта меню — заметный толчок вниз-вбок */
header .main-nav .menu-item.shot-recoil { animation: shot-recoil .38s ease-out; }
@keyframes shot-recoil {
    0%   { transform: translate(0, 0); }
    15%  { transform: translate(2px, 3px); }
    40%  { transform: translate(-1px, -1px); }
    100% { transform: translate(0, 0); }
}

/* ===== ВЫСТРЕЛ ДВА (.shot-v2) — спокойный, минималистичный ===== */
/* Мягкая небольшая вспышка */
.shot-v2 .shot-flash {
    width: 48px;
    height: 48px;
    margin: -24px 0 0 -24px;
    background: radial-gradient(circle,
        rgba(255, 240, 210, .85) 0%,
        rgba(255, 150, 90, .4) 45%,
        transparent 72%);
    animation: shot-flash .18s ease-out forwards;
}
/* Аккуратная маленькая дырка без трещин — коротко живёт */
.shot-v2 .shot-hole {
    width: 14px;
    height: 14px;
    margin: -7px 0 0 -7px;
    background: radial-gradient(circle at 50% 45%,
        #000 0%, #000 40%,
        #241416 58%,
        transparent 76%);
    box-shadow:
        0 0 0 1px rgba(0, 0, 0, .6),
        inset 0 1px 1px rgba(255, 120, 60, .25);
    animation:
        shot-hole-in .15s ease-out forwards,
        shot-hole-out .5s ease-in .55s forwards;
}
/* Мягкая, едва заметная отдача пункта меню */
header .main-nav .menu-item.shot-recoil-2 { animation: shot-recoil-2 .28s ease-out; }
@keyframes shot-recoil-2 {
    0%   { transform: translate(0, 0); }
    30%  { transform: translate(1px, 1px); }
    100% { transform: translate(0, 0); }
}

/* Уважаем настройку «меньше движения» */
@media (prefers-reduced-motion: reduce) {
    .shot-fx { display: none; }
    header .main-nav .menu-item.shot-recoil,
    header .main-nav .menu-item.shot-recoil-2 { animation: none; }
}

/* Правый блок действий */
header .action-buttons {
    display: flex;
    align-items: center;
    gap: 10px;
}
header .action-buttons .login a,
header .menu-avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
header .action-buttons .login a {
    width: 42px; height: 42px;
    border-radius: 50%;
    border: 1px solid var(--rd-line-2);
    background: var(--rd-tint-2);
    transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
header .action-buttons .login a:hover {
    border-color: var(--rd-line-red);
    background: var(--rd-red-soft);
}
header .action-buttons .login img { width: 20px; height: 20px; }
/* Иконка входа как Material Symbol — в едином стиле с иконками сайта */
header .action-buttons .login .material-symbols-outlined {
    font-size: 22px;
    color: var(--rd-text-2);
    transition: color .2s ease;
}
header .action-buttons .login a:hover .material-symbols-outlined { color: var(--rd-red-2); }

/* --- Переключатель светлой/тёмной темы (в стиле кнопки входа) ------------ */
header .action-buttons .theme-toggle {
    position: relative;
    width: 42px; height: 42px;
    display: inline-flex; align-items: center; justify-content: center;
    flex: none;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--rd-line-2);
    background: var(--rd-tint-2);
    cursor: pointer;
    -webkit-appearance: none; appearance: none;
    transition: border-color .2s ease, background-color .2s ease;
}
header .action-buttons .theme-toggle:hover {
    border-color: var(--rd-line-red);
    background: var(--rd-red-soft);
}
header .action-buttons .theme-toggle .material-symbols-outlined {
    position: absolute;
    font-size: 22px;
    color: var(--rd-text-2);
    transition: color .2s ease, opacity .3s ease,
                transform .5s cubic-bezier(.34, 1.56, .64, 1); /* пружинный поворот */
}
header .action-buttons .theme-toggle:hover .material-symbols-outlined { color: var(--rd-red-2); }
/* Тёмная тема: видно солнце («включить светлую»), луна спрятана */
header .theme-toggle .theme-toggle__moon { opacity: 0; transform: rotate(90deg) scale(.4); }
html.rd-light header .theme-toggle .theme-toggle__moon { opacity: 1; transform: none; }
html.rd-light header .theme-toggle .theme-toggle__sun { opacity: 0; transform: rotate(-90deg) scale(.4); }
/* В админке светлой темы нет — переключатель прячем */
body.rd-admin .theme-toggle { display: none !important; }

header .menu-avatar {
    width: 42px; height: 42px;
    flex: none;
    border-radius: 50%;
    overflow: hidden;                 /* обрезаем картинку по кругу-рамке */
    border: 1px solid var(--rd-line-red);
    cursor: pointer;
}
/* Картинка ровно по обёртке — иначе clm.css задаёт ей 3rem и она торчит из рамки */
header .menu-avatar img {
    width: 100%; height: 100%;
    object-fit: cover;
    border-radius: 50%;
    border: none;
    display: block;
}
/* Триггер выравниваем по центру строки (у clm.css height:3rem ломает высоту) */
header #user-menu {
    display: inline-flex;
    align-items: center;
    height: 42px;
    line-height: 0;
    vertical-align: middle;
}

/* Языковой переключатель (переопределяем lang-menu.css визуально) */
header .lang-switcher .lang-trigger {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    padding: 0 12px;
    border-radius: 999px;
    border: 1px solid var(--rd-line-2);
    background: var(--rd-tint-2);
    color: var(--rd-text-2);
    font-family: var(--rd-font-display);
    font-weight: 500;
    letter-spacing: .08em;
    transition: border-color .2s ease, color .2s ease;
}
header .lang-switcher .lang-trigger:hover { border-color: var(--rd-line-red); color: var(--rd-text); }

/* Бейдж-монограмма языка вместо флага */
header .lang-badge {
    display: inline-flex; align-items: center; justify-content: center;
    width: 27px; height: 22px; flex-shrink: 0;
    border-radius: 7px;
    font-family: var(--rd-font-display);
    font-weight: 700; font-size: 11px; letter-spacing: .04em;
    color: var(--rd-red-2);
    background: rgba(255, 59, 59, .10);
    border: 1px solid rgba(255, 59, 59, .32);
    transition: color .2s ease, background-color .2s ease, border-color .2s ease, box-shadow .2s ease;
}
/* В триггере бейдж всегда «горит» — это текущий язык */
header .lang-switcher .lang-trigger .lang-badge {
    color: #fff; border-color: transparent;
    background: linear-gradient(135deg, var(--rd-red-2), var(--rd-red-deep));
    box-shadow: 0 0 12px var(--rd-red-glow);
}
header .lang-switcher .lang-current { display: none; }  /* код уже в бейдже */
/* Бейдж в неактивных пунктах — красный акцент на тёмном (см. базовый .lang-badge).
   В активном пункте фон уже ярко-красный → бейдж делаем светлым, чтобы читался. */
header .lang-dropdown .btn.active .lang-badge {
    color: #fff; border-color: rgba(255, 255, 255, .38);
    background: rgba(255, 255, 255, .18);
    box-shadow: none;
}
header .lang-dropdown {
    margin-top: 8px;
    padding: 6px;
    background: var(--rd-surface-2);
    border: 1px solid var(--rd-line);
    border-radius: 14px;
    box-shadow: var(--rd-shadow);
}
/* Неактивный язык — тёмная плитка. !important гасит красный фон базового .btn
   из clm.css при любом раскладе каскада (важно: активный ниже тоже !important). */
header .lang-dropdown .btn {
    display: flex; align-items: center; gap: 10px;
    min-width: 168px;
    padding: 9px 12px;
    border-radius: 9px;
    background: var(--rd-surface-3) !important;
    color: var(--rd-text-2);
    font-family: var(--rd-font-body);
    font-weight: 500;
    white-space: nowrap;
    box-shadow: none !important;
    transition: background-color .2s ease, color .2s ease, box-shadow .2s ease;
}
header .lang-dropdown .btn + .btn { margin-top: 4px; }
/* Неактивный при наведении — просто светлеет (нейтрально); красный оставлен активному.
   transform:none гасит глобальный сдвиг .btn:hover (translateY) → пункт не «дёргается». */
header .lang-dropdown .btn:hover {
    background: rgba(255, 255, 255, .09) !important;
    color: var(--rd-text);
    transform: none !important;
}
/* Активный (текущий) язык — ярко-красный акцент (перебивает неактивный !important по специфичности) */
header .lang-dropdown .btn.active,
header .lang-dropdown .btn.active:hover {
    background: linear-gradient(135deg, var(--rd-red-2), var(--rd-red-deep)) !important;
    color: #fff;
    box-shadow: 0 4px 14px var(--rd-red-glow) !important;
    transform: none !important;
}

/* Выпадающие меню шапки (Информация / пользователь) — тёмная тема */
.header-dropdown__list {
    background: var(--rd-surface-2) !important;
    border-color: var(--rd-line) !important;
    box-shadow: var(--rd-shadow) !important;
}

/* Бургер */
header .burger-btn {
    display: none;
    flex-direction: column;
    gap: 5px;
    width: 44px; height: 42px;
    align-items: center; justify-content: center;
    border-radius: 12px;
    border: 1px solid var(--rd-line-2);
    background: var(--rd-tint-2);
    cursor: pointer;
}
header .burger-btn span {
    width: 20px; height: 2px; border-radius: 2px;
    background: var(--rd-text);
    transition: transform .25s ease, opacity .2s ease;
}
header .burger-btn.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
header .burger-btn.active span:nth-child(2) { opacity: 0; }
header .burger-btn.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Мобильная навигация — тёмная премиум-панель */
.mobile-nav {
    background: var(--rd-bg-2) !important;
    border-left: 1px solid var(--rd-line) !important;
}
.mobile-nav a,
.mobile-nav button {
    font-family: var(--rd-font-display);
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--rd-text-2);
}
.mobile-nav a.active { color: var(--rd-red-2); }

@media (max-width: 900px) {
    header .main-nav { display: none; }
    header .burger-btn { display: inline-flex; }
    header { margin-inline: auto; }
}

/* ==========================================================================
   Сквозной ФУТЕР (новая разметка .site-footer)
   ========================================================================== */
body .site-footer {
    margin-top: 96px;
    padding: 0;
    background: linear-gradient(180deg, transparent, rgba(184, 18, 18, .06)), var(--rd-bg-2);
    border-top: 1px solid var(--rd-line);
    color: var(--rd-text-2);
    font-family: var(--rd-font-body);
}
.site-footer__inner {
    max-width: var(--rd-container);
    margin-inline: auto;
    padding: 64px 24px 44px;
    display: grid;
    grid-template-columns: 1.7fr 1fr 1fr 1.4fr;
    gap: 40px;
    align-items: start;
}

/* Бренд */
.site-footer__brand { display: flex; flex-direction: column; gap: 16px; max-width: 320px; }
.site-footer__logo { display: inline-flex; align-items: center; gap: 10px; }
.site-footer__logo img { height: 38px; width: auto; filter: drop-shadow(0 0 14px rgba(255, 59, 59, .3)); }
.site-footer__logo span { font-family: var(--rd-font-display); font-weight: 500; font-size: 20px; letter-spacing: .04em; text-transform: uppercase; color: var(--rd-text); }
.site-footer__logo b { color: var(--rd-red-2); font-weight: 700; }
.site-footer__desc { color: var(--rd-text-3); font-size: 14px; line-height: 1.6; margin: 0; }
.site-footer__socials { display: flex; gap: 10px; }
.site-footer__social {
    display: inline-grid; place-items: center;
    width: 42px; height: 42px;
    border-radius: 50%;
    border: 1px solid var(--rd-line-2);
    background: var(--rd-tint-2);
    transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.site-footer__social:hover { border-color: var(--rd-line-red); background: var(--rd-red-soft); transform: translateY(-2px); }
.site-footer__social img { width: 18px; height: 18px; }

/* Колонки ссылок */
.site-footer__col { display: flex; flex-direction: column; gap: 12px; }
.site-footer__title { font-family: var(--rd-font-display); font-weight: 600; font-size: 13px; letter-spacing: .16em; text-transform: uppercase; color: var(--rd-text); margin: 0 0 4px; }
.site-footer__col a { color: var(--rd-text-2); font-size: 14.5px; transition: color .2s ease, padding-left .2s ease; }
.site-footer__col a:hover { color: var(--rd-red-2); padding-left: 4px; }

/* CTA */
.site-footer__cta { display: flex; flex-direction: column; gap: 14px; max-width: 280px; }
.site-footer__cta-text { color: var(--rd-text-3); font-size: 14px; line-height: 1.6; margin: 0; }
.site-footer__cta-btn { align-self: flex-start; height: 46px; }

/* Нижняя строка */
.site-footer__bottom { border-top: 1px solid var(--rd-line); }
.site-footer__copy { max-width: var(--rd-container); margin-inline: auto; padding: 20px 24px; text-align: center; color: var(--rd-text-3); font-size: 13px; margin: 0; }

@media (max-width: 900px) {
    .site-footer__inner { grid-template-columns: 1fr 1fr; gap: 32px; }
    .site-footer__brand, .site-footer__cta { grid-column: 1 / -1; max-width: none; }
}
@media (max-width: 560px) {
    .site-footer__inner { grid-template-columns: 1fr; }
}

/* ==========================================================================
   ГЛАВНАЯ (body.rd-home)
   ========================================================================== */

/* --- HERO --- */
.rd-hero {
    position: relative;
    overflow: hidden;
    padding-block: clamp(48px, 7vw, 104px);
}
.rd-hero__inner {
    position: relative;   /* контент над интерактивной сеткой */
    z-index: 1;
    display: grid;
    grid-template-columns: 1.15fr .85fr;
    gap: 48px;
    align-items: center;
}

/* ---- Тематический фон hero: иконки ролей мафии + «прожектор» за курсором ----
   Использованы готовые иконки проекта (public/img/game_new): mafia (пистолет),
   don (шляпа), sheriff (звезда), citizen (мирный). Базовый слой — еле заметный
   серый; вокруг курсора те же иконки «загораются» красным, как свет лампы. */
.rd-hero__grid {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    /* Рассыпанные иконки ролей — еле заметный слой */
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22200%22%20height=%22200%22%20viewBox=%220%200%20200%20200%22%3E%3Cg%20transform=%22translate(22%2018)%20rotate(-8)%20scale(1.05)%22%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22evenodd%22%20d=%22M15.8394%200C15.456%20-3.594e-10%2015.0883%200.151837%2014.8172%200.42211C14.5461%200.692384%2014.3938%201.05896%2014.3938%201.44119C14.3941%201.68423%2014.4561%201.92323%2014.5739%202.13598C14.6918%202.34872%2014.8617%202.5283%2015.0679%202.658L11.6695%208.62469L4.59513%208.87781C4.59103%208.49837%204.43701%208.13585%204.16648%207.86892C3.89595%207.60199%203.53074%207.4522%203.15013%207.45206C2.96027%207.45205%202.77228%207.48931%202.59687%207.56174C2.42147%207.63416%202.26209%207.74032%202.12783%207.87415C1.99358%208.00799%201.88709%208.16687%201.81443%208.34174C1.74177%208.51661%201.70438%208.70403%201.70438%208.89331C1.70438%209.08259%201.74177%209.27%201.81442%209.44487C1.88708%209.61973%201.99357%209.77862%202.12781%209.91245C2.26206%2010.0463%202.42143%2010.1524%202.59683%2010.2249C2.77223%2010.2973%202.96022%2010.3346%203.15006%2010.3346C3.46576%2010.3341%203.77264%2010.2307%204.02381%2010.04L7.56588%2016.0836L4.285%2022.2615C4.05976%2022.125%203.80138%2022.0526%203.53781%2022.0519C3.34797%2022.0519%203.15998%2022.0892%202.98458%2022.1617C2.80919%2022.2341%202.64982%2022.3403%202.51558%2022.4741C2.38134%2022.6079%202.27486%2022.7668%202.20221%2022.9417C2.12957%2023.1166%202.09218%2023.304%202.09219%2023.4932C2.09219%2023.8755%202.2445%2024.2421%202.5156%2024.5124C2.78671%2024.7827%203.15441%2024.9345%203.53781%2024.9345C3.92122%2024.9345%204.28892%2024.7827%204.56003%2024.5124C4.83113%2024.2421%204.98344%2023.8755%204.98344%2023.4932C4.98325%2023.4646%204.98221%2023.436%204.98031%2023.4074L11.9783%2023.3636L15.6777%2029.2689C15.4369%2029.3882%2015.2343%2029.5722%2015.0926%2029.8C14.9509%2030.0279%2014.8758%2030.2906%2014.8757%2030.5587C14.8757%2030.9409%2015.028%2031.3075%2015.2991%2031.5778C15.5702%2031.8481%2015.9379%2031.9999%2016.3213%2031.9999C16.5111%2031.9999%2016.6991%2031.9627%2016.8745%2031.8902C17.0499%2031.8178%2017.2093%2031.7117%2017.3435%2031.5778C17.4777%2031.444%2017.5842%2031.2851%2017.6569%2031.1102C17.7295%2030.9354%2017.7669%2030.748%2017.7669%2030.5587C17.7669%2030.3%2017.6971%2030.046%2017.5647%2029.8235C17.4323%2029.6009%2017.2423%2029.418%2017.0146%2029.2939L20.4943%2023.1846L27.4093%2022.9372C27.4375%2023.2989%2027.6016%2023.6366%2027.8686%2023.883C28.1357%2024.1294%2028.4861%2024.2663%2028.85%2024.2664C29.2334%2024.2664%2029.6011%2024.1146%2029.8722%2023.8443C30.1433%2023.5741%2030.2956%2023.2075%2030.2956%2022.8253C30.2956%2022.443%2030.1433%2022.0764%2029.8722%2021.8061C29.6011%2021.5358%2029.2334%2021.384%2028.85%2021.384C28.567%2021.3843%2028.2903%2021.4674%2028.0543%2021.6229L24.5979%2015.7256L27.7973%209.70119C28.0189%209.83151%2028.2714%209.90049%2028.5288%209.901C28.9122%209.901%2029.2799%209.74915%2029.551%209.47887C29.8221%209.20858%2029.9744%208.84199%2029.9744%208.45975C29.9744%208.07751%2029.8221%207.71092%2029.551%207.44063C29.2799%207.17035%2028.9122%207.0185%2028.5288%207.0185C28.1556%207.01896%2027.7971%207.16324%2027.5282%207.42116C27.2594%207.67909%2027.1009%208.03067%2027.0861%208.40238L20.1854%208.44563L16.5739%202.68062C16.7902%202.55341%2016.9695%202.37222%2017.0942%202.15489C17.2189%201.93757%2017.2847%201.69161%2017.285%201.44125C17.285%201.05901%2017.1327%200.692419%2016.8616%200.422132C16.5905%200.151846%2016.2228%200%2015.8394%200Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(118%2014)%20rotate(8)%20scale(1.15)%22%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22evenodd%22%20d=%22M23.8709%2011.3658L32%206.63423L28.9324%201.33334L26.8457%202.54791L26.3159%201.63243L24.5137%202.68774L25.0407%203.59848L17.7835%207.82253L11.6961%2011.3657L2.44003%2016.7638L3.1001%2017.9044L2.93657%2018.0002L2.63196%2017.946L1.93695%2017.3939L0%2018.528L2.62238%2020.6112L4.14919%2019.7172L5.27608%2021.6645L5.28838%2021.6858L4.6506%2022.7117C3.57095%2024.4487%203.5367%2026.6275%204.5612%2028.398L6.64562%2032L12.9834%2028.2887L10.8805%2024.6548L11.4843%2023.3062C12.0686%2023.5609%2012.6986%2023.6925%2013.3354%2023.6928C14.1461%2023.6934%2014.9423%2023.4772%2015.6426%2023.0665L17.1114%2022.2064L14.1164%2017.0309L17.7835%2014.909L23.8709%2011.3658ZM12.3401%2021.3947C12.9352%2021.6469%2013.6198%2021.6696%2014.2453%2021.423L13.164%2019.5544L12.3401%2021.3947Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(58%2074)%20rotate(-5)%20scale(1.15)%22%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22nonzero%22%20d=%22M25.4685%2017.089L23.533%208.071C23.4189%207.64514%2023.1403%207.28206%2022.7584%207.06162C22.3766%206.84117%2021.9229%206.78142%2021.497%206.8955C20.858%207.074%2019.219%207.7375%2018.281%208.1005C17.457%208.41186%2016.5784%208.55332%2015.6983%208.51637C14.8181%208.47943%2013.9546%208.26483%2013.1595%207.8855C12.294%207.5455%2010.9885%207.0305%2010.4935%206.8955C10.2813%206.8383%2010.0599%206.82377%209.8421%206.85275C9.62427%206.88173%209.41436%206.95364%209.22453%207.06433C9.03469%207.17501%208.86871%207.32226%208.73619%207.49755C8.60367%207.67284%208.50725%207.87268%208.45251%208.0855L6.52701%2017.089C12.7784%2018.3445%2019.2171%2018.3445%2025.4685%2017.089Z%22/%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22nonzero%22%20d=%22M26.0985%2020.015L25.6785%2018.069C19.2892%2019.3597%2012.7063%2019.3597%206.31699%2018.069L5.88699%2020.08C12.485%2021.5525%2019.653%2021.73%2026.0985%2020.015Z%22/%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22nonzero%22%20d=%22M26.979%2019.355L27.074%2019.795C27.1072%2019.9296%2027.1134%2020.0695%2027.0924%2020.2065C27.0714%2020.3435%2027.0235%2020.4751%2026.9515%2020.5936C26.8794%2020.712%2026.7847%2020.8151%2026.6728%2020.8969C26.5608%2020.9786%2026.4338%2021.0375%2026.299%2021.07C22.9187%2021.8423%2019.4624%2022.2333%2015.995%2022.2355C12.5244%2022.2337%209.06501%2021.8429%205.68149%2021.0705C5.54559%2021.0379%205.41766%2020.9782%205.30532%2020.895C5.19298%2020.8119%205.09853%2020.707%205.0276%2020.5865C4.95668%2020.4661%204.91073%2020.3326%204.8925%2020.1941C4.87427%2020.0555%204.88413%2019.9147%204.92149%2019.78L5.01149%2019.355C-3.11151%2022.23%206.77699%2025.2095%2015.995%2025.1665C24.248%2025.1665%2030%2023.2515%2030%2021.5255C30%2020.9505%2029.185%2020.1055%2026.979%2019.355Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(156%2070)%20rotate(6)%20scale(0.95)%22%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22evenodd%22%20d=%22M9.202%2028.0916C12.0457%2029.7206%2013.8263%2030.375%2023.958%2030.375C27.0099%2030.3744%2026.8521%2027.2676%2025.9907%2026.9937C28.2453%2026.9839%2029.4296%2023.6593%2027.8726%2022.7526C30.6563%2022.1919%2030.4811%2018.5454%2029.0781%2017.8963C30.7621%2017.4451%2031.2043%2013.1383%2027.9508%2013.1383H21.6128C21.8699%209.61131%2024.9964%202.54612%2018.6271%201.63562C18.4881%201.61512%2018.3463%201.62349%2018.2107%201.66019C18.075%201.69689%2017.9484%201.76114%2017.8387%201.84894C17.729%201.93674%2017.6386%202.0462%2017.573%202.17049C17.5075%202.29479%2017.4683%202.43125%2017.4578%202.57137C16.9555%208.90887%2013.1404%2013.2033%209.202%2015.1799V28.0916ZM2.375%2013.9326H7.452C7.65073%2013.9331%207.84117%2014.0123%207.98169%2014.1529C8.12222%2014.2934%208.20142%2014.4838%208.202%2014.6826V28.3842C8.20144%2028.583%208.12224%2028.7734%207.98171%2028.914C7.84118%2029.0545%207.65074%2029.1337%207.452%2029.1342H2.375C2.17627%2029.1337%201.98583%2029.0545%201.84531%2028.9139C1.70478%2028.7734%201.62558%2028.583%201.625%2028.3842V14.6826C1.62558%2014.4838%201.70478%2014.2934%201.84531%2014.1529C1.98583%2014.0123%202.17627%2013.9331%202.375%2013.9326Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(20%20120)%20rotate(-16)%20scale(0.8)%22%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22evenodd%22%20d=%22M23.8709%2011.3658L32%206.63423L28.9324%201.33334L26.8457%202.54791L26.3159%201.63243L24.5137%202.68774L25.0407%203.59848L17.7835%207.82253L11.6961%2011.3657L2.44003%2016.7638L3.1001%2017.9044L2.93657%2018.0002L2.63196%2017.946L1.93695%2017.3939L0%2018.528L2.62238%2020.6112L4.14919%2019.7172L5.27608%2021.6645L5.28838%2021.6858L4.6506%2022.7117C3.57095%2024.4487%203.5367%2026.6275%204.5612%2028.398L6.64562%2032L12.9834%2028.2887L10.8805%2024.6548L11.4843%2023.3062C12.0686%2023.5609%2012.6986%2023.6925%2013.3354%2023.6928C14.1461%2023.6934%2014.9423%2023.4772%2015.6426%2023.0665L17.1114%2022.2064L14.1164%2017.0309L17.7835%2014.909L23.8709%2011.3658ZM12.3401%2021.3947C12.9352%2021.6469%2013.6198%2021.6696%2014.2453%2021.423L13.164%2019.5544L12.3401%2021.3947Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(96%20116)%20rotate(4)%20scale(0.9)%22%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22evenodd%22%20d=%22M9.202%2028.0916C12.0457%2029.7206%2013.8263%2030.375%2023.958%2030.375C27.0099%2030.3744%2026.8521%2027.2676%2025.9907%2026.9937C28.2453%2026.9839%2029.4296%2023.6593%2027.8726%2022.7526C30.6563%2022.1919%2030.4811%2018.5454%2029.0781%2017.8963C30.7621%2017.4451%2031.2043%2013.1383%2027.9508%2013.1383H21.6128C21.8699%209.61131%2024.9964%202.54612%2018.6271%201.63562C18.4881%201.61512%2018.3463%201.62349%2018.2107%201.66019C18.075%201.69689%2017.9484%201.76114%2017.8387%201.84894C17.729%201.93674%2017.6386%202.0462%2017.573%202.17049C17.5075%202.29479%2017.4683%202.43125%2017.4578%202.57137C16.9555%208.90887%2013.1404%2013.2033%209.202%2015.1799V28.0916ZM2.375%2013.9326H7.452C7.65073%2013.9331%207.84117%2014.0123%207.98169%2014.1529C8.12222%2014.2934%208.20142%2014.4838%208.202%2014.6826V28.3842C8.20144%2028.583%208.12224%2028.7734%207.98171%2028.914C7.84118%2029.0545%207.65074%2029.1337%207.452%2029.1342H2.375C2.17627%2029.1337%201.98583%2029.0545%201.84531%2028.9139C1.70478%2028.7734%201.62558%2028.583%201.625%2028.3842V14.6826C1.62558%2014.4838%201.70478%2014.2934%201.84531%2014.1529C1.98583%2014.0123%202.17627%2013.9331%202.375%2013.9326Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(168%20140)%20rotate(12)%20scale(0.85)%22%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22evenodd%22%20d=%22M15.8394%200C15.456%20-3.594e-10%2015.0883%200.151837%2014.8172%200.42211C14.5461%200.692384%2014.3938%201.05896%2014.3938%201.44119C14.3941%201.68423%2014.4561%201.92323%2014.5739%202.13598C14.6918%202.34872%2014.8617%202.5283%2015.0679%202.658L11.6695%208.62469L4.59513%208.87781C4.59103%208.49837%204.43701%208.13585%204.16648%207.86892C3.89595%207.60199%203.53074%207.4522%203.15013%207.45206C2.96027%207.45205%202.77228%207.48931%202.59687%207.56174C2.42147%207.63416%202.26209%207.74032%202.12783%207.87415C1.99358%208.00799%201.88709%208.16687%201.81443%208.34174C1.74177%208.51661%201.70438%208.70403%201.70438%208.89331C1.70438%209.08259%201.74177%209.27%201.81442%209.44487C1.88708%209.61973%201.99357%209.77862%202.12781%209.91245C2.26206%2010.0463%202.42143%2010.1524%202.59683%2010.2249C2.77223%2010.2973%202.96022%2010.3346%203.15006%2010.3346C3.46576%2010.3341%203.77264%2010.2307%204.02381%2010.04L7.56588%2016.0836L4.285%2022.2615C4.05976%2022.125%203.80138%2022.0526%203.53781%2022.0519C3.34797%2022.0519%203.15998%2022.0892%202.98458%2022.1617C2.80919%2022.2341%202.64982%2022.3403%202.51558%2022.4741C2.38134%2022.6079%202.27486%2022.7668%202.20221%2022.9417C2.12957%2023.1166%202.09218%2023.304%202.09219%2023.4932C2.09219%2023.8755%202.2445%2024.2421%202.5156%2024.5124C2.78671%2024.7827%203.15441%2024.9345%203.53781%2024.9345C3.92122%2024.9345%204.28892%2024.7827%204.56003%2024.5124C4.83113%2024.2421%204.98344%2023.8755%204.98344%2023.4932C4.98325%2023.4646%204.98221%2023.436%204.98031%2023.4074L11.9783%2023.3636L15.6777%2029.2689C15.4369%2029.3882%2015.2343%2029.5722%2015.0926%2029.8C14.9509%2030.0279%2014.8758%2030.2906%2014.8757%2030.5587C14.8757%2030.9409%2015.028%2031.3075%2015.2991%2031.5778C15.5702%2031.8481%2015.9379%2031.9999%2016.3213%2031.9999C16.5111%2031.9999%2016.6991%2031.9627%2016.8745%2031.8902C17.0499%2031.8178%2017.2093%2031.7117%2017.3435%2031.5778C17.4777%2031.444%2017.5842%2031.2851%2017.6569%2031.1102C17.7295%2030.9354%2017.7669%2030.748%2017.7669%2030.5587C17.7669%2030.3%2017.6971%2030.046%2017.5647%2029.8235C17.4323%2029.6009%2017.2423%2029.418%2017.0146%2029.2939L20.4943%2023.1846L27.4093%2022.9372C27.4375%2023.2989%2027.6016%2023.6366%2027.8686%2023.883C28.1357%2024.1294%2028.4861%2024.2663%2028.85%2024.2664C29.2334%2024.2664%2029.6011%2024.1146%2029.8722%2023.8443C30.1433%2023.5741%2030.2956%2023.2075%2030.2956%2022.8253C30.2956%2022.443%2030.1433%2022.0764%2029.8722%2021.8061C29.6011%2021.5358%2029.2334%2021.384%2028.85%2021.384C28.567%2021.3843%2028.2903%2021.4674%2028.0543%2021.6229L24.5979%2015.7256L27.7973%209.70119C28.0189%209.83151%2028.2714%209.90049%2028.5288%209.901C28.9122%209.901%2029.2799%209.74915%2029.551%209.47887C29.8221%209.20858%2029.9744%208.84199%2029.9744%208.45975C29.9744%208.07751%2029.8221%207.71092%2029.551%207.44063C29.2799%207.17035%2028.9122%207.0185%2028.5288%207.0185C28.1556%207.01896%2027.7971%207.16324%2027.5282%207.42116C27.2594%207.67909%2027.1009%208.03067%2027.0861%208.40238L20.1854%208.44563L16.5739%202.68062C16.7902%202.55341%2016.9695%202.37222%2017.0942%202.15489C17.2189%201.93757%2017.2847%201.69161%2017.285%201.44125C17.285%201.05901%2017.1327%200.692419%2016.8616%200.422132C16.5905%200.151846%2016.2228%200%2015.8394%200Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(54%20156)%20rotate(10)%20scale(0.95)%22%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22nonzero%22%20d=%22M25.4685%2017.089L23.533%208.071C23.4189%207.64514%2023.1403%207.28206%2022.7584%207.06162C22.3766%206.84117%2021.9229%206.78142%2021.497%206.8955C20.858%207.074%2019.219%207.7375%2018.281%208.1005C17.457%208.41186%2016.5784%208.55332%2015.6983%208.51637C14.8181%208.47943%2013.9546%208.26483%2013.1595%207.8855C12.294%207.5455%2010.9885%207.0305%2010.4935%206.8955C10.2813%206.8383%2010.0599%206.82377%209.8421%206.85275C9.62427%206.88173%209.41436%206.95364%209.22453%207.06433C9.03469%207.17501%208.86871%207.32226%208.73619%207.49755C8.60367%207.67284%208.50725%207.87268%208.45251%208.0855L6.52701%2017.089C12.7784%2018.3445%2019.2171%2018.3445%2025.4685%2017.089Z%22/%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22nonzero%22%20d=%22M26.0985%2020.015L25.6785%2018.069C19.2892%2019.3597%2012.7063%2019.3597%206.31699%2018.069L5.88699%2020.08C12.485%2021.5525%2019.653%2021.73%2026.0985%2020.015Z%22/%3E%3Cpath%20fill=%22%23ffffff%22%20fill-opacity=%220.03%22%20fill-rule=%22nonzero%22%20d=%22M26.979%2019.355L27.074%2019.795C27.1072%2019.9296%2027.1134%2020.0695%2027.0924%2020.2065C27.0714%2020.3435%2027.0235%2020.4751%2026.9515%2020.5936C26.8794%2020.712%2026.7847%2020.8151%2026.6728%2020.8969C26.5608%2020.9786%2026.4338%2021.0375%2026.299%2021.07C22.9187%2021.8423%2019.4624%2022.2333%2015.995%2022.2355C12.5244%2022.2337%209.06501%2021.8429%205.68149%2021.0705C5.54559%2021.0379%205.41766%2020.9782%205.30532%2020.895C5.19298%2020.8119%205.09853%2020.707%205.0276%2020.5865C4.95668%2020.4661%204.91073%2020.3326%204.8925%2020.1941C4.87427%2020.0555%204.88413%2019.9147%204.92149%2019.78L5.01149%2019.355C-3.11151%2022.23%206.77699%2025.2095%2015.995%2025.1665C24.248%2025.1665%2030%2023.2515%2030%2021.5255C30%2020.9505%2029.185%2020.1055%2026.979%2019.355Z%22/%3E%3C/g%3E%3C/svg%3E");
    background-size: 200px 200px;
    /* Мягкая «дыра» в паттерне вокруг эмблемы справа, чтобы не спорить с логотипом */
    -webkit-mask: radial-gradient(circle 360px at 78% 50%, transparent 0, transparent 42%, #000 100%);
    mask: radial-gradient(circle 360px at 78% 50%, transparent 0, transparent 42%, #000 100%);
}
/* Красные масти + свечение — проявляются только вокруг курсора (выровнены с базовыми) */
.rd-hero__grid::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22200%22%20height=%22200%22%20viewBox=%220%200%20200%20200%22%3E%3Cg%20transform=%22translate(22%2018)%20rotate(-8)%20scale(1.05)%22%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22evenodd%22%20d=%22M15.8394%200C15.456%20-3.594e-10%2015.0883%200.151837%2014.8172%200.42211C14.5461%200.692384%2014.3938%201.05896%2014.3938%201.44119C14.3941%201.68423%2014.4561%201.92323%2014.5739%202.13598C14.6918%202.34872%2014.8617%202.5283%2015.0679%202.658L11.6695%208.62469L4.59513%208.87781C4.59103%208.49837%204.43701%208.13585%204.16648%207.86892C3.89595%207.60199%203.53074%207.4522%203.15013%207.45206C2.96027%207.45205%202.77228%207.48931%202.59687%207.56174C2.42147%207.63416%202.26209%207.74032%202.12783%207.87415C1.99358%208.00799%201.88709%208.16687%201.81443%208.34174C1.74177%208.51661%201.70438%208.70403%201.70438%208.89331C1.70438%209.08259%201.74177%209.27%201.81442%209.44487C1.88708%209.61973%201.99357%209.77862%202.12781%209.91245C2.26206%2010.0463%202.42143%2010.1524%202.59683%2010.2249C2.77223%2010.2973%202.96022%2010.3346%203.15006%2010.3346C3.46576%2010.3341%203.77264%2010.2307%204.02381%2010.04L7.56588%2016.0836L4.285%2022.2615C4.05976%2022.125%203.80138%2022.0526%203.53781%2022.0519C3.34797%2022.0519%203.15998%2022.0892%202.98458%2022.1617C2.80919%2022.2341%202.64982%2022.3403%202.51558%2022.4741C2.38134%2022.6079%202.27486%2022.7668%202.20221%2022.9417C2.12957%2023.1166%202.09218%2023.304%202.09219%2023.4932C2.09219%2023.8755%202.2445%2024.2421%202.5156%2024.5124C2.78671%2024.7827%203.15441%2024.9345%203.53781%2024.9345C3.92122%2024.9345%204.28892%2024.7827%204.56003%2024.5124C4.83113%2024.2421%204.98344%2023.8755%204.98344%2023.4932C4.98325%2023.4646%204.98221%2023.436%204.98031%2023.4074L11.9783%2023.3636L15.6777%2029.2689C15.4369%2029.3882%2015.2343%2029.5722%2015.0926%2029.8C14.9509%2030.0279%2014.8758%2030.2906%2014.8757%2030.5587C14.8757%2030.9409%2015.028%2031.3075%2015.2991%2031.5778C15.5702%2031.8481%2015.9379%2031.9999%2016.3213%2031.9999C16.5111%2031.9999%2016.6991%2031.9627%2016.8745%2031.8902C17.0499%2031.8178%2017.2093%2031.7117%2017.3435%2031.5778C17.4777%2031.444%2017.5842%2031.2851%2017.6569%2031.1102C17.7295%2030.9354%2017.7669%2030.748%2017.7669%2030.5587C17.7669%2030.3%2017.6971%2030.046%2017.5647%2029.8235C17.4323%2029.6009%2017.2423%2029.418%2017.0146%2029.2939L20.4943%2023.1846L27.4093%2022.9372C27.4375%2023.2989%2027.6016%2023.6366%2027.8686%2023.883C28.1357%2024.1294%2028.4861%2024.2663%2028.85%2024.2664C29.2334%2024.2664%2029.6011%2024.1146%2029.8722%2023.8443C30.1433%2023.5741%2030.2956%2023.2075%2030.2956%2022.8253C30.2956%2022.443%2030.1433%2022.0764%2029.8722%2021.8061C29.6011%2021.5358%2029.2334%2021.384%2028.85%2021.384C28.567%2021.3843%2028.2903%2021.4674%2028.0543%2021.6229L24.5979%2015.7256L27.7973%209.70119C28.0189%209.83151%2028.2714%209.90049%2028.5288%209.901C28.9122%209.901%2029.2799%209.74915%2029.551%209.47887C29.8221%209.20858%2029.9744%208.84199%2029.9744%208.45975C29.9744%208.07751%2029.8221%207.71092%2029.551%207.44063C29.2799%207.17035%2028.9122%207.0185%2028.5288%207.0185C28.1556%207.01896%2027.7971%207.16324%2027.5282%207.42116C27.2594%207.67909%2027.1009%208.03067%2027.0861%208.40238L20.1854%208.44563L16.5739%202.68062C16.7902%202.55341%2016.9695%202.37222%2017.0942%202.15489C17.2189%201.93757%2017.2847%201.69161%2017.285%201.44125C17.285%201.05901%2017.1327%200.692419%2016.8616%200.422132C16.5905%200.151846%2016.2228%200%2015.8394%200Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(118%2014)%20rotate(8)%20scale(1.15)%22%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22evenodd%22%20d=%22M23.8709%2011.3658L32%206.63423L28.9324%201.33334L26.8457%202.54791L26.3159%201.63243L24.5137%202.68774L25.0407%203.59848L17.7835%207.82253L11.6961%2011.3657L2.44003%2016.7638L3.1001%2017.9044L2.93657%2018.0002L2.63196%2017.946L1.93695%2017.3939L0%2018.528L2.62238%2020.6112L4.14919%2019.7172L5.27608%2021.6645L5.28838%2021.6858L4.6506%2022.7117C3.57095%2024.4487%203.5367%2026.6275%204.5612%2028.398L6.64562%2032L12.9834%2028.2887L10.8805%2024.6548L11.4843%2023.3062C12.0686%2023.5609%2012.6986%2023.6925%2013.3354%2023.6928C14.1461%2023.6934%2014.9423%2023.4772%2015.6426%2023.0665L17.1114%2022.2064L14.1164%2017.0309L17.7835%2014.909L23.8709%2011.3658ZM12.3401%2021.3947C12.9352%2021.6469%2013.6198%2021.6696%2014.2453%2021.423L13.164%2019.5544L12.3401%2021.3947Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(58%2074)%20rotate(-5)%20scale(1.15)%22%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22nonzero%22%20d=%22M25.4685%2017.089L23.533%208.071C23.4189%207.64514%2023.1403%207.28206%2022.7584%207.06162C22.3766%206.84117%2021.9229%206.78142%2021.497%206.8955C20.858%207.074%2019.219%207.7375%2018.281%208.1005C17.457%208.41186%2016.5784%208.55332%2015.6983%208.51637C14.8181%208.47943%2013.9546%208.26483%2013.1595%207.8855C12.294%207.5455%2010.9885%207.0305%2010.4935%206.8955C10.2813%206.8383%2010.0599%206.82377%209.8421%206.85275C9.62427%206.88173%209.41436%206.95364%209.22453%207.06433C9.03469%207.17501%208.86871%207.32226%208.73619%207.49755C8.60367%207.67284%208.50725%207.87268%208.45251%208.0855L6.52701%2017.089C12.7784%2018.3445%2019.2171%2018.3445%2025.4685%2017.089Z%22/%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22nonzero%22%20d=%22M26.0985%2020.015L25.6785%2018.069C19.2892%2019.3597%2012.7063%2019.3597%206.31699%2018.069L5.88699%2020.08C12.485%2021.5525%2019.653%2021.73%2026.0985%2020.015Z%22/%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22nonzero%22%20d=%22M26.979%2019.355L27.074%2019.795C27.1072%2019.9296%2027.1134%2020.0695%2027.0924%2020.2065C27.0714%2020.3435%2027.0235%2020.4751%2026.9515%2020.5936C26.8794%2020.712%2026.7847%2020.8151%2026.6728%2020.8969C26.5608%2020.9786%2026.4338%2021.0375%2026.299%2021.07C22.9187%2021.8423%2019.4624%2022.2333%2015.995%2022.2355C12.5244%2022.2337%209.06501%2021.8429%205.68149%2021.0705C5.54559%2021.0379%205.41766%2020.9782%205.30532%2020.895C5.19298%2020.8119%205.09853%2020.707%205.0276%2020.5865C4.95668%2020.4661%204.91073%2020.3326%204.8925%2020.1941C4.87427%2020.0555%204.88413%2019.9147%204.92149%2019.78L5.01149%2019.355C-3.11151%2022.23%206.77699%2025.2095%2015.995%2025.1665C24.248%2025.1665%2030%2023.2515%2030%2021.5255C30%2020.9505%2029.185%2020.1055%2026.979%2019.355Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(156%2070)%20rotate(6)%20scale(0.95)%22%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22evenodd%22%20d=%22M9.202%2028.0916C12.0457%2029.7206%2013.8263%2030.375%2023.958%2030.375C27.0099%2030.3744%2026.8521%2027.2676%2025.9907%2026.9937C28.2453%2026.9839%2029.4296%2023.6593%2027.8726%2022.7526C30.6563%2022.1919%2030.4811%2018.5454%2029.0781%2017.8963C30.7621%2017.4451%2031.2043%2013.1383%2027.9508%2013.1383H21.6128C21.8699%209.61131%2024.9964%202.54612%2018.6271%201.63562C18.4881%201.61512%2018.3463%201.62349%2018.2107%201.66019C18.075%201.69689%2017.9484%201.76114%2017.8387%201.84894C17.729%201.93674%2017.6386%202.0462%2017.573%202.17049C17.5075%202.29479%2017.4683%202.43125%2017.4578%202.57137C16.9555%208.90887%2013.1404%2013.2033%209.202%2015.1799V28.0916ZM2.375%2013.9326H7.452C7.65073%2013.9331%207.84117%2014.0123%207.98169%2014.1529C8.12222%2014.2934%208.20142%2014.4838%208.202%2014.6826V28.3842C8.20144%2028.583%208.12224%2028.7734%207.98171%2028.914C7.84118%2029.0545%207.65074%2029.1337%207.452%2029.1342H2.375C2.17627%2029.1337%201.98583%2029.0545%201.84531%2028.9139C1.70478%2028.7734%201.62558%2028.583%201.625%2028.3842V14.6826C1.62558%2014.4838%201.70478%2014.2934%201.84531%2014.1529C1.98583%2014.0123%202.17627%2013.9331%202.375%2013.9326Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(20%20120)%20rotate(-16)%20scale(0.8)%22%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22evenodd%22%20d=%22M23.8709%2011.3658L32%206.63423L28.9324%201.33334L26.8457%202.54791L26.3159%201.63243L24.5137%202.68774L25.0407%203.59848L17.7835%207.82253L11.6961%2011.3657L2.44003%2016.7638L3.1001%2017.9044L2.93657%2018.0002L2.63196%2017.946L1.93695%2017.3939L0%2018.528L2.62238%2020.6112L4.14919%2019.7172L5.27608%2021.6645L5.28838%2021.6858L4.6506%2022.7117C3.57095%2024.4487%203.5367%2026.6275%204.5612%2028.398L6.64562%2032L12.9834%2028.2887L10.8805%2024.6548L11.4843%2023.3062C12.0686%2023.5609%2012.6986%2023.6925%2013.3354%2023.6928C14.1461%2023.6934%2014.9423%2023.4772%2015.6426%2023.0665L17.1114%2022.2064L14.1164%2017.0309L17.7835%2014.909L23.8709%2011.3658ZM12.3401%2021.3947C12.9352%2021.6469%2013.6198%2021.6696%2014.2453%2021.423L13.164%2019.5544L12.3401%2021.3947Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(96%20116)%20rotate(4)%20scale(0.9)%22%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22evenodd%22%20d=%22M9.202%2028.0916C12.0457%2029.7206%2013.8263%2030.375%2023.958%2030.375C27.0099%2030.3744%2026.8521%2027.2676%2025.9907%2026.9937C28.2453%2026.9839%2029.4296%2023.6593%2027.8726%2022.7526C30.6563%2022.1919%2030.4811%2018.5454%2029.0781%2017.8963C30.7621%2017.4451%2031.2043%2013.1383%2027.9508%2013.1383H21.6128C21.8699%209.61131%2024.9964%202.54612%2018.6271%201.63562C18.4881%201.61512%2018.3463%201.62349%2018.2107%201.66019C18.075%201.69689%2017.9484%201.76114%2017.8387%201.84894C17.729%201.93674%2017.6386%202.0462%2017.573%202.17049C17.5075%202.29479%2017.4683%202.43125%2017.4578%202.57137C16.9555%208.90887%2013.1404%2013.2033%209.202%2015.1799V28.0916ZM2.375%2013.9326H7.452C7.65073%2013.9331%207.84117%2014.0123%207.98169%2014.1529C8.12222%2014.2934%208.20142%2014.4838%208.202%2014.6826V28.3842C8.20144%2028.583%208.12224%2028.7734%207.98171%2028.914C7.84118%2029.0545%207.65074%2029.1337%207.452%2029.1342H2.375C2.17627%2029.1337%201.98583%2029.0545%201.84531%2028.9139C1.70478%2028.7734%201.62558%2028.583%201.625%2028.3842V14.6826C1.62558%2014.4838%201.70478%2014.2934%201.84531%2014.1529C1.98583%2014.0123%202.17627%2013.9331%202.375%2013.9326Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(168%20140)%20rotate(12)%20scale(0.85)%22%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22evenodd%22%20d=%22M15.8394%200C15.456%20-3.594e-10%2015.0883%200.151837%2014.8172%200.42211C14.5461%200.692384%2014.3938%201.05896%2014.3938%201.44119C14.3941%201.68423%2014.4561%201.92323%2014.5739%202.13598C14.6918%202.34872%2014.8617%202.5283%2015.0679%202.658L11.6695%208.62469L4.59513%208.87781C4.59103%208.49837%204.43701%208.13585%204.16648%207.86892C3.89595%207.60199%203.53074%207.4522%203.15013%207.45206C2.96027%207.45205%202.77228%207.48931%202.59687%207.56174C2.42147%207.63416%202.26209%207.74032%202.12783%207.87415C1.99358%208.00799%201.88709%208.16687%201.81443%208.34174C1.74177%208.51661%201.70438%208.70403%201.70438%208.89331C1.70438%209.08259%201.74177%209.27%201.81442%209.44487C1.88708%209.61973%201.99357%209.77862%202.12781%209.91245C2.26206%2010.0463%202.42143%2010.1524%202.59683%2010.2249C2.77223%2010.2973%202.96022%2010.3346%203.15006%2010.3346C3.46576%2010.3341%203.77264%2010.2307%204.02381%2010.04L7.56588%2016.0836L4.285%2022.2615C4.05976%2022.125%203.80138%2022.0526%203.53781%2022.0519C3.34797%2022.0519%203.15998%2022.0892%202.98458%2022.1617C2.80919%2022.2341%202.64982%2022.3403%202.51558%2022.4741C2.38134%2022.6079%202.27486%2022.7668%202.20221%2022.9417C2.12957%2023.1166%202.09218%2023.304%202.09219%2023.4932C2.09219%2023.8755%202.2445%2024.2421%202.5156%2024.5124C2.78671%2024.7827%203.15441%2024.9345%203.53781%2024.9345C3.92122%2024.9345%204.28892%2024.7827%204.56003%2024.5124C4.83113%2024.2421%204.98344%2023.8755%204.98344%2023.4932C4.98325%2023.4646%204.98221%2023.436%204.98031%2023.4074L11.9783%2023.3636L15.6777%2029.2689C15.4369%2029.3882%2015.2343%2029.5722%2015.0926%2029.8C14.9509%2030.0279%2014.8758%2030.2906%2014.8757%2030.5587C14.8757%2030.9409%2015.028%2031.3075%2015.2991%2031.5778C15.5702%2031.8481%2015.9379%2031.9999%2016.3213%2031.9999C16.5111%2031.9999%2016.6991%2031.9627%2016.8745%2031.8902C17.0499%2031.8178%2017.2093%2031.7117%2017.3435%2031.5778C17.4777%2031.444%2017.5842%2031.2851%2017.6569%2031.1102C17.7295%2030.9354%2017.7669%2030.748%2017.7669%2030.5587C17.7669%2030.3%2017.6971%2030.046%2017.5647%2029.8235C17.4323%2029.6009%2017.2423%2029.418%2017.0146%2029.2939L20.4943%2023.1846L27.4093%2022.9372C27.4375%2023.2989%2027.6016%2023.6366%2027.8686%2023.883C28.1357%2024.1294%2028.4861%2024.2663%2028.85%2024.2664C29.2334%2024.2664%2029.6011%2024.1146%2029.8722%2023.8443C30.1433%2023.5741%2030.2956%2023.2075%2030.2956%2022.8253C30.2956%2022.443%2030.1433%2022.0764%2029.8722%2021.8061C29.6011%2021.5358%2029.2334%2021.384%2028.85%2021.384C28.567%2021.3843%2028.2903%2021.4674%2028.0543%2021.6229L24.5979%2015.7256L27.7973%209.70119C28.0189%209.83151%2028.2714%209.90049%2028.5288%209.901C28.9122%209.901%2029.2799%209.74915%2029.551%209.47887C29.8221%209.20858%2029.9744%208.84199%2029.9744%208.45975C29.9744%208.07751%2029.8221%207.71092%2029.551%207.44063C29.2799%207.17035%2028.9122%207.0185%2028.5288%207.0185C28.1556%207.01896%2027.7971%207.16324%2027.5282%207.42116C27.2594%207.67909%2027.1009%208.03067%2027.0861%208.40238L20.1854%208.44563L16.5739%202.68062C16.7902%202.55341%2016.9695%202.37222%2017.0942%202.15489C17.2189%201.93757%2017.2847%201.69161%2017.285%201.44125C17.285%201.05901%2017.1327%200.692419%2016.8616%200.422132C16.5905%200.151846%2016.2228%200%2015.8394%200Z%22/%3E%3C/g%3E%3Cg%20transform=%22translate(54%20156)%20rotate(10)%20scale(0.95)%22%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22nonzero%22%20d=%22M25.4685%2017.089L23.533%208.071C23.4189%207.64514%2023.1403%207.28206%2022.7584%207.06162C22.3766%206.84117%2021.9229%206.78142%2021.497%206.8955C20.858%207.074%2019.219%207.7375%2018.281%208.1005C17.457%208.41186%2016.5784%208.55332%2015.6983%208.51637C14.8181%208.47943%2013.9546%208.26483%2013.1595%207.8855C12.294%207.5455%2010.9885%207.0305%2010.4935%206.8955C10.2813%206.8383%2010.0599%206.82377%209.8421%206.85275C9.62427%206.88173%209.41436%206.95364%209.22453%207.06433C9.03469%207.17501%208.86871%207.32226%208.73619%207.49755C8.60367%207.67284%208.50725%207.87268%208.45251%208.0855L6.52701%2017.089C12.7784%2018.3445%2019.2171%2018.3445%2025.4685%2017.089Z%22/%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22nonzero%22%20d=%22M26.0985%2020.015L25.6785%2018.069C19.2892%2019.3597%2012.7063%2019.3597%206.31699%2018.069L5.88699%2020.08C12.485%2021.5525%2019.653%2021.73%2026.0985%2020.015Z%22/%3E%3Cpath%20fill=%22%23ff5a4d%22%20fill-opacity=%220.42%22%20fill-rule=%22nonzero%22%20d=%22M26.979%2019.355L27.074%2019.795C27.1072%2019.9296%2027.1134%2020.0695%2027.0924%2020.2065C27.0714%2020.3435%2027.0235%2020.4751%2026.9515%2020.5936C26.8794%2020.712%2026.7847%2020.8151%2026.6728%2020.8969C26.5608%2020.9786%2026.4338%2021.0375%2026.299%2021.07C22.9187%2021.8423%2019.4624%2022.2333%2015.995%2022.2355C12.5244%2022.2337%209.06501%2021.8429%205.68149%2021.0705C5.54559%2021.0379%205.41766%2020.9782%205.30532%2020.895C5.19298%2020.8119%205.09853%2020.707%205.0276%2020.5865C4.95668%2020.4661%204.91073%2020.3326%204.8925%2020.1941C4.87427%2020.0555%204.88413%2019.9147%204.92149%2019.78L5.01149%2019.355C-3.11151%2022.23%206.77699%2025.2095%2015.995%2025.1665C24.248%2025.1665%2030%2023.2515%2030%2021.5255C30%2020.9505%2029.185%2020.1055%2026.979%2019.355Z%22/%3E%3C/g%3E%3C/svg%3E") 0 0 / 200px 200px,
        radial-gradient(circle at var(--hx, 50%) var(--hy, 50%), rgba(255, 59, 59, .07), transparent 62%);
    -webkit-mask: radial-gradient(220px circle at var(--hx, 50%) var(--hy, 50%), #000 0%, rgba(0, 0, 0, .3) 48%, transparent 74%);
    mask: radial-gradient(220px circle at var(--hx, 50%) var(--hy, 50%), #000 0%, rgba(0, 0, 0, .3) 48%, transparent 74%);
    opacity: 0;
    transition: opacity .35s ease;
}
.rd-hero.is-fx-active .rd-hero__grid::before { opacity: .72; }
@media (prefers-reduced-motion: reduce) {
    .rd-hero__grid::before { display: none; }
}
.rd-hero__eyebrow { margin-bottom: 20px; }
.rd-hero__title {
    font-family: var(--rd-font-display);
    font-weight: 700;
    font-size: clamp(42px, 7vw, 92px);
    line-height: .96;
    letter-spacing: .005em;
    text-transform: uppercase;
    color: var(--rd-text);
    margin: 0 0 22px;
}
.rd-hero__title .accent {
    display: block;
    background: var(--rd-grad-red);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    filter: drop-shadow(0 6px 30px rgba(255, 59, 59, .35));
}
.rd-hero__lead {
    color: var(--rd-text-2);
    font-size: clamp(16px, 1.7vw, 19px);
    line-height: 1.6;
    max-width: 520px;
    margin: 0 0 32px;
}
.rd-hero__cta { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 40px; }

/* Статистика в hero */
.rd-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.rd-stat {
    padding: 18px 16px;
    border-radius: var(--rd-radius);
    background: linear-gradient(180deg, var(--rd-tint), rgba(255, 255, 255, .01));
    border: 1px solid var(--rd-line);
}
.rd-stat__num {
    font-family: var(--rd-font-display);
    font-weight: 700;
    font-size: clamp(24px, 3vw, 34px);
    line-height: 1;
    background: var(--rd-grad-text);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
}
.rd-stat__label {
    margin-top: 6px;
    font-size: 12px;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--rd-text-3);
    white-space: nowrap;   /* подпись не переносится, высота плиток одинаковая */
}

/* Декоративная эмблема справа */
.rd-hero__art {
    position: relative;
    aspect-ratio: 1;
    display: grid;
    place-items: center;
}
.rd-emblem {
    position: relative;
    width: min(100%, 420px);
    aspect-ratio: 1;
    border-radius: 50%;
    display: grid;
    place-items: center;
    perspective: 900px; /* 3D-глубина для закручивания логотипа */
    background:
        radial-gradient(circle at 50% 40%, rgba(255, 90, 77, .28), transparent 60%),
        conic-gradient(from 140deg, rgba(255, 59, 59, .15), transparent 30%, rgba(184, 18, 18, .18) 65%, transparent 80%);
    box-shadow: inset 0 0 80px rgba(255, 59, 59, .18);
}
.rd-emblem::before,
.rd-emblem::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    border: 1px solid var(--rd-line-red);
}
.rd-emblem::before { inset: 8%;  border-color: rgba(255, 59, 59, .28); }
.rd-emblem::after  { inset: 22%; border-color: rgba(255, 59, 59, .16); }
.rd-emblem__logo {
    position: relative;
    width: 46%;
    filter: drop-shadow(0 0 30px rgba(255, 59, 59, .55));
    z-index: 1;
    transform-style: preserve-3d;
    will-change: transform;
    /* Быстрый оборот при загрузке, затем периодическое закручивание */
    animation: rdLogoIntro 1.1s cubic-bezier(.2, .8, .2, 1) both,
               rdLogoSpin 7s ease-in-out 1.1s infinite;
}
.rd-emblem__logo:hover { animation-play-state: paused, paused; }
/* Вступление: влёт с быстрым закручиванием */
@keyframes rdLogoIntro {
    0%   { transform: rotateY(-540deg) scale(.4); opacity: 0; }
    100% { transform: rotateY(0deg) scale(1); opacity: 1; }
}
/* Периодический быстрый оборот с паузой */
@keyframes rdLogoSpin {
    0%   { transform: rotateY(0deg); }
    18%  { transform: rotateY(360deg); }
    100% { transform: rotateY(360deg); }
}
@media (prefers-reduced-motion: reduce) {
    .rd-emblem__logo { animation: none; }
}
.rd-emblem__glow {
    position: absolute;
    inset: -12%;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255, 59, 59, .22), transparent 62%);
    filter: blur(6px);
    z-index: -1;
    animation: rd-pulse 5s ease-in-out infinite;
}
@keyframes rd-pulse {
    0%, 100% { opacity: .7; transform: scale(1); }
    50%      { opacity: 1;  transform: scale(1.05); }
}

@media (max-width: 920px) {
    .rd-hero__inner { grid-template-columns: 1fr; }
    .rd-hero__art { order: -1; max-width: 360px; margin-inline: auto; }
}
@media (max-width: 560px) {
    .rd-stats { grid-template-columns: repeat(2, 1fr); }
}

/* --- Блок «О платформе» --- */
.rd-about__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: 28px;
}
.rd-feature {
    padding: 26px 24px;
    border-radius: var(--rd-radius-lg);
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line);
    transition: border-color .25s ease, transform .25s ease;
}
.rd-feature:hover { border-color: var(--rd-line-red); transform: translateY(-4px); }
.rd-feature__icon {
    display: inline-grid; place-items: center;
    width: 48px; height: 48px;
    border-radius: 14px;
    margin-bottom: 16px;
    color: var(--rd-red-2);
    background: var(--rd-red-soft);
    border: 1px solid var(--rd-line-red);
}
.rd-feature__icon .material-symbols-outlined { font-size: 26px; }
.rd-feature__title { font-family: var(--rd-font-display); font-weight: 600; font-size: 20px; text-transform: uppercase; letter-spacing: .03em; margin: 0 0 8px; color: var(--rd-text); }
.rd-feature__text { color: var(--rd-text-3); font-size: 14.5px; line-height: 1.6; margin: 0; }

@media (max-width: 820px) { .rd-about__grid { grid-template-columns: 1fr; } }

/* --- Рейтинговые таблицы (ТОП-10) --- */
.rd-boards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
}
.rd-board { padding: 8px; overflow: hidden; }
.rd-board__head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 20px 22px 16px;
}
.rd-board__title {
    font-family: var(--rd-font-display);
    font-weight: 700;
    font-size: 20px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--rd-text);
    margin: 0;
}
.rd-board__link {
    font-family: var(--rd-font-display);
    font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
    color: var(--rd-red-2);
    display: inline-flex; align-items: center; gap: 4px;
    transition: gap .2s ease;
}
.rd-board__link:hover { gap: 8px; }

.rd-row {
    display: grid;
    grid-template-columns: 38px 1fr auto;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-radius: var(--rd-radius);
    transition: background-color .2s ease;
}
.rd-row + .rd-row { margin-top: 2px; }
.rd-row:hover { background: var(--rd-tint); }
.rd-row__rank {
    font-family: var(--rd-font-display);
    font-weight: 600;
    font-size: 17px;
    color: var(--rd-text-3);
    text-align: center;
}
.rd-row--top .rd-row__rank {
    background: var(--rd-grad-red);
    -webkit-background-clip: text; background-clip: text; color: transparent;
    font-weight: 700;
}
.rd-row__id { display: flex; align-items: center; gap: 12px; min-width: 0; }
.rd-row__ava {
    width: 44px; height: 44px;
    border-radius: 12px;
    object-fit: cover;
    background: var(--rd-surface-3);
    border: 1px solid var(--rd-line);
    flex-shrink: 0;
}
.rd-row__meta { min-width: 0; }
.rd-row__name {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--rd-font-display);
    font-weight: 500;
    font-size: 16px;
    color: var(--rd-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rd-row__name a { transition: color .2s ease; }
.rd-row__name a:hover { color: var(--rd-red-2); }
.rd-row__sub {
    font-size: 12.5px;
    color: var(--rd-text-3);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.rd-row__sub a:hover { color: var(--rd-text-2); }
.rd-row__stats { display: flex; align-items: center; gap: 22px; }
.rd-row__val {
    font-family: var(--rd-font-display);
    font-weight: 700;
    font-size: 18px;
    color: var(--rd-text);
    text-align: right;
}
.rd-row__val--muted { font-weight: 400; color: var(--rd-text-2); font-size: 15px; }
.rd-row__valcap { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-text-3); text-align: right; }

@media (max-width: 900px) { .rd-boards { grid-template-columns: 1fr; } }

/* --- Секция призового фонда / турнира года --- */
.rd-prize {
    position: relative;
    overflow: hidden;
    border-radius: var(--rd-radius-xl);
    padding: clamp(36px, 5vw, 64px);
    background:
        radial-gradient(600px 320px at 12% 20%, rgba(255, 59, 59, .22), transparent 60%),
        radial-gradient(700px 360px at 100% 100%, rgba(184, 18, 18, .28), transparent 60%),
        linear-gradient(160deg, var(--rd-surface-2), #100a0b);
    border: 1px solid var(--rd-line-red);
    box-shadow: var(--rd-shadow), inset 0 1px 0 var(--rd-tint-3);
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: 40px;
    align-items: center;
}
.rd-prize__amount {
    font-family: var(--rd-font-display);
    font-weight: 700;
    font-size: clamp(52px, 9vw, 104px);
    line-height: .9;
    letter-spacing: -.01em;
    background: var(--rd-grad-text);
    -webkit-background-clip: text; background-clip: text; color: transparent;
    filter: drop-shadow(0 8px 40px rgba(255, 59, 59, .4));
    margin: 10px 0 16px;
}
.rd-prize__note { color: var(--rd-text-2); font-size: 16px; line-height: 1.6; max-width: 460px; margin: 0 0 28px; }
.rd-prize__side { display: flex; flex-direction: column; gap: 14px; }
.rd-prize__stat {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    padding: 18px 22px;
    border-radius: var(--rd-radius);
    background: rgba(0, 0, 0, .3);
    border: 1px solid var(--rd-line);
}
.rd-prize__stat b { font-family: var(--rd-font-display); font-weight: 700; font-size: 22px; color: var(--rd-text); }
.rd-prize__stat span { color: var(--rd-text-3); font-size: 13px; text-transform: uppercase; letter-spacing: .08em; }

@media (max-width: 860px) { .rd-prize { grid-template-columns: 1fr; } }

/* --- Чемпионы / лидеры сезона --- */
.rd-champs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-top: 28px; }
.rd-champ {
    position: relative;
    padding: 28px 24px;
    border-radius: var(--rd-radius-lg);
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line);
    text-align: center;
    transition: border-color .25s ease, transform .25s ease;
}
.rd-champ:hover { border-color: var(--rd-line-red); transform: translateY(-4px); }
.rd-champ--1 { border-color: var(--rd-line-red); box-shadow: 0 0 60px -24px var(--rd-red-glow); }
.rd-champ__trophy { height: 40px; margin-bottom: 12px; }
.rd-champ__ava {
    width: 92px; height: 92px; border-radius: 50%;
    object-fit: cover; margin: 0 auto 14px;
    border: 2px solid var(--rd-line-red);
    box-shadow: 0 0 30px -8px var(--rd-red-glow);
    display: block; background: var(--rd-surface-3);
}
.rd-champ__name { font-family: var(--rd-font-display); font-weight: 600; font-size: 20px; text-transform: uppercase; color: var(--rd-text); margin: 0 0 4px; }
.rd-champ__name a:hover { color: var(--rd-red-2); }
.rd-champ__club { color: var(--rd-text-3); font-size: 13px; margin: 0 0 14px; }
.rd-champ__score {
    font-family: var(--rd-font-display);
    font-weight: 700; font-size: 30px;
    background: var(--rd-grad-red);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.rd-champ__scorecap { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--rd-text-3); }

@media (max-width: 720px) { .rd-champs { grid-template-columns: 1fr; } }

/* --- Видео --- */
.rd-videos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; margin-top: 28px; }
.rd-video {
    display: block;
    border-radius: var(--rd-radius-lg);
    overflow: hidden;
    background: var(--rd-surface);
    border: 1px solid var(--rd-line);
    transition: border-color .25s ease, transform .25s ease;
}
.rd-video:hover { border-color: var(--rd-line-red); transform: translateY(-4px); }
.rd-video__thumb {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--rd-surface-3);
    overflow: hidden;
}
.rd-video__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rd-video__play {
    position: absolute; inset: 0; margin: auto;
    width: 56px; height: 56px;
    display: grid; place-items: center;
    border-radius: 50%;
    background: rgba(255, 59, 59, .9);
    box-shadow: 0 8px 30px rgba(255, 59, 59, .5);
    color: #fff;
    transition: transform .2s ease;
}
.rd-video:hover .rd-video__play { transform: scale(1.1); }
.rd-video__body { padding: 16px 18px; }
.rd-video__title { font-family: var(--rd-font-display); font-weight: 500; font-size: 16px; color: var(--rd-text); margin: 0 0 6px; line-height: 1.25; }
.rd-video__meta { display: flex; align-items: center; gap: 10px; color: var(--rd-text-3); font-size: 12.5px; }

@media (max-width: 900px) { .rd-videos { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rd-videos { grid-template-columns: 1fr; } }

/* ==========================================================================
   ВНУТРЕННИЕ СТРАНИЦЫ — общий каркас, заголовки, тулбар/фильтры (переиспользуемо)
   ========================================================================== */
.rd-page { padding-block: 36px 72px; }

/* Шапка внутренней страницы: заголовок + действия */
.rd-page-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-bottom: 28px;
}
.rd-page-head .rd-h2 { margin-top: 6px; }

/* Панель фильтров/тулбар */
.rd-filters {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 24px;
}
.rd-filters__spring { margin-left: auto; }

/* Контролы форм — единый премиум-вид (для рейтинга/клубов/турниров) */
.rd-select,
.rd-search input {
    height: 46px;
    padding: 0 16px;
    background: var(--rd-surface-2);
    color: var(--rd-text);
    border: 1px solid var(--rd-line-2);
    border-radius: 12px;
    font-family: var(--rd-font-body);
    font-size: 15px;
    outline: none;
    transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
    box-sizing: border-box;
}
.rd-select { cursor: pointer; padding-right: 38px; -webkit-appearance: none; appearance: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ff5a4d' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
    background-repeat: no-repeat; background-position: right 14px center;
}
.rd-select:hover,
.rd-search input:hover { border-color: var(--rd-line-red); }
.rd-select:focus,
.rd-search input:focus { border-color: var(--rd-red); box-shadow: 0 0 0 3px var(--rd-red-soft); }
.rd-select option { background: var(--rd-surface-2); color: var(--rd-text); }

/* Поиск с крестиком */
.rd-search { position: relative; display: flex; align-items: center; }
.rd-search input { width: 260px; padding-right: 38px; }
.rd-search input::placeholder { color: var(--rd-text-3); }
.rd-search__clear {
    position: absolute; right: 12px;
    color: var(--rd-text-3); cursor: pointer; font-size: 14px; line-height: 1; user-select: none;
    transition: color .2s ease;
}
.rd-search__clear:hover { color: var(--rd-red); }

/* Чекбокс-переключатель */
.rd-check { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 14px;
    border: 1px solid var(--rd-line-2); border-radius: 12px; background: var(--rd-surface-2);
    color: var(--rd-text-2); cursor: pointer; user-select: none; transition: border-color .2s ease, color .2s ease; }
.rd-check:hover { border-color: var(--rd-line-red); color: var(--rd-text); }
.rd-check input { width: 18px; height: 18px; accent-color: var(--rd-red); cursor: pointer; }

/* Квадратная кнопка-иконка (напр. Зал славы) */
.rd-iconbtn {
    display: inline-grid; place-items: center;
    width: 46px; height: 46px;
    border-radius: 12px;
    border: 1px solid var(--rd-line-2);
    background: var(--rd-surface-2);
    color: var(--rd-red-2);
    transition: border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.rd-iconbtn:hover { border-color: var(--rd-line-red); background: var(--rd-red-soft); transform: translateY(-2px); }

/* ==========================================================================
   Пагинация — глобальный премиум-компонент .rd-pager (vendor/pagination/default).
   Не завязан на body.rd → одинаково стилен и на публичных, и на админ-страницах
   (redesign.css грузится везде). Стрелки — Material Symbols (единый стиль иконок).
   ========================================================================== */
.rd-pager {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
    gap: 6px; margin-top: 28px;
}
.rd-pager__btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 40px; height: 40px; padding: 0 12px; box-sizing: border-box;
    border-radius: 10px; border: 1px solid var(--rd-line);
    background: var(--rd-surface-2); color: var(--rd-text-2);
    font-family: var(--rd-font-display); font-size: 14px; text-decoration: none;
    transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}
.rd-pager__btn .material-symbols-outlined { font-size: 20px; }
.rd-pager__btn:hover { border-color: var(--rd-line-red); color: #fff; background: var(--rd-surface-3); }
.rd-pager__btn.is-active { background: var(--rd-grad-red); color: #fff; border-color: transparent; box-shadow: 0 4px 14px var(--rd-red-glow); }
.rd-pager__btn.is-disabled { opacity: .4; cursor: default; pointer-events: none; }
.rd-pager__dots { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 40px; color: var(--rd-text-3); }

/* Обёртка .rd-pagination (публичные страницы) — только центрирование, кнопки и отступ даёт .rd-pager */
.rd-pagination { display: flex; justify-content: center; }

/* Пагинация внутри .content-table (виджет index-table) наследует underline из
   clm.css (.content-table a:not(.btn){underline}) — гасим и на кнопке, и на иконке-стрелке. */
.content-table .rd-pager .rd-pager__btn,
.content-table .rd-pager .rd-pager__btn .material-symbols-outlined {
    text-decoration: none;
}

/* Стрелка кастомного дропдауна как Material Symbol (единый стиль иконок) */
.dropdwown-menu-arrow.material-symbols-outlined { font-size: 20px; line-height: 1; }

/* ==========================================================================
   Кнопки действий .action-btn (просмотр/правка/удаление) — ЕДИНЫЙ премиум-стиль.
   Глобально (redesign.css грузится везде) → одинаково на публичных и admin.
   Покрывает <div class="action-btn"> и <x-ajax-modal> (рендерит span.action-btn).
   ========================================================================== */
.action-btn,
.action-buttons .action-btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; min-width: 38px; padding: 0; box-sizing: border-box;
    border-radius: 11px;
    border: 1px solid var(--rd-line);
    background: var(--rd-surface-3);
    color: var(--rd-text-2);
    line-height: 1; cursor: pointer;
    transition: border-color .18s ease, background-color .18s ease, color .18s ease, transform .15s ease, box-shadow .18s ease;
}
.action-btn > .material-symbols-outlined,
.action-btn.material-symbols-outlined { font-size: 20px; line-height: 1; }
.action-btn:hover,
.action-buttons .action-btn:hover {
    border-color: var(--rd-line-red);
    background: var(--rd-red-soft);
    color: var(--rd-red-2);
    box-shadow: 0 4px 14px rgba(255, 59, 59, .16);
}
/* Смысловые варианты — тот же корпус, разный цвет иконки */
.action-btn.danger,
.action-btn.red { color: var(--rd-red-2); }
.action-btn.danger:hover,
.action-btn.red:hover { color: #fff; background: var(--rd-grad-red); border-color: transparent; box-shadow: 0 4px 14px var(--rd-red-glow); }
.action-btn.success,
.action-btn.dark.success { color: #58c98a; }
.action-btn.success:hover,
.action-btn.dark.success:hover { color: #fff; background: linear-gradient(135deg, #3fbf7a, #2c9c60); border-color: transparent; box-shadow: 0 4px 14px rgba(63, 191, 122, .26); }
/* Компактный вариант и отключённые */
.action-btn.inline-btn { width: 36px; height: 36px; min-width: 36px; }
.action-btn.inline-btn > .material-symbols-outlined { font-size: 19px; }
.action-btn.btn-disabled,
.action-btn:disabled { opacity: .4; pointer-events: none; }

/* ==========================================================================
   РЕЙТИНГ ИГРОКОВ (body.rd-players)
   ========================================================================== */
.rd-plist-wrap {
    --cols: 46px 60px minmax(0, 1fr) 104px 78px 92px;
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius-lg);
    box-shadow: var(--rd-shadow);
    padding: 10px;
}
.rd-plist__head {
    display: grid;
    grid-template-columns: var(--cols);
    align-items: center;
    gap: 14px;
    padding: 10px 16px 14px;
    border-bottom: 1px solid var(--rd-line);
    font-family: var(--rd-font-display);
    font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
    color: var(--rd-text-3);
}
.rd-plist__head .r { text-align: right; }

.rd-prow {
    display: grid;
    grid-template-columns: var(--cols);
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-radius: var(--rd-radius);
    transition: background-color .2s ease;
}
.rd-prow + .rd-prow { margin-top: 2px; }
.rd-prow:hover { background: var(--rd-tint); }
.rd-prow__rank { font-family: var(--rd-font-display); font-weight: 600; font-size: 17px; color: var(--rd-text-3); text-align: center; }
.rd-prow--top .rd-prow__rank { background: var(--rd-grad-red); -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 700; }

.rd-prow__ava { position: relative; width: 52px; height: 52px; }
.rd-prow__ava > a:first-child,
.rd-prow__ava img.rd-prow__uava { display: block; width: 52px; height: 52px; }
.rd-prow__uava { border-radius: 14px; object-fit: cover; background: var(--rd-surface-3); border: 1px solid var(--rd-line); transition: transform .2s ease; }
.rd-prow__ava:hover .rd-prow__uava { transform: scale(1.05); }
.rd-prow__club-badge { position: absolute; right: -6px; bottom: -6px; width: 24px; height: 24px; border-radius: 8px; overflow: hidden; border: 2px solid var(--rd-bg-2); background: var(--rd-surface-3); }
.rd-prow__club-badge img { width: 100%; height: 100%; object-fit: cover; }

.rd-prow__info { min-width: 0; }
.rd-prow__nameline { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rd-prow__name { font-family: var(--rd-font-display); font-weight: 500; font-size: 17px; color: var(--rd-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-prow__name a:hover { color: var(--rd-red-2); }
.rd-prow__real { font-size: 12.5px; color: var(--rd-text-3); }
.rd-prow__loc { font-size: 12.5px; color: var(--rd-text-3); margin-top: 2px; }
.rd-prow__loc .dot { color: var(--rd-red-2); margin: 0 4px; }

.rd-prow__vals { display: contents; }         /* дети становятся колонками grid-строки */
.rd-prow__val { font-family: var(--rd-font-display); text-align: right; }
.rd-prow__val--main { font-weight: 700; font-size: 18px; color: var(--rd-text); }
.rd-prow__val--sub { font-weight: 400; font-size: 15px; color: var(--rd-text-2); }
.rd-prow__vlabel { display: none; }            /* подпись видна только на мобиле */

/* Бейдж уровня игрока */
.rd-badge-level {
    display: inline-flex; align-items: center; height: 19px; padding: 0 8px;
    border-radius: 6px; font-family: var(--rd-font-display); font-weight: 600; font-size: 10.5px;
    letter-spacing: .06em; text-transform: uppercase; white-space: nowrap;
    color: var(--rd-red-2); background: var(--rd-red-soft); border: 1px solid var(--rd-line-red);
}

.rd-empty { text-align: center; padding: 48px 16px; color: var(--rd-text-3); }

/* Мобильная адаптация рейтинга */
@media (max-width: 720px) {
    .rd-plist__head { display: none; }
    .rd-prow {
        grid-template-columns: 40px 52px 1fr;
        grid-template-areas: "rank ava info" "stats stats stats";
        row-gap: 12px;
    }
    .rd-prow__rank { grid-area: rank; text-align: left; }
    .rd-prow__ava  { grid-area: ava; }
    .rd-prow__info { grid-area: info; }
    /* На мобиле статы — строка с подписями под основной инфой */
    .rd-prow__vals { display: flex; grid-area: stats; gap: 24px; padding-top: 12px; border-top: 1px solid var(--rd-line); }
    .rd-prow__val { display: flex; flex-direction: column; gap: 2px; text-align: left; }
    .rd-prow__val--main { font-size: 17px; }
    .rd-prow__vlabel { display: block; font-family: var(--rd-font-body); font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-text-3); }
}

/* ==========================================================================
   КЛУБЫ (body.rd-clubs-page) — сетка плиток
   ========================================================================== */
/* Контейнер как на /players — дефолтные 1200px + 24px по бокам (max-width/padding не переопределяем) */
/* Гасим легаси-правило clubs.css (#clubsListContainer{width:60%;margin:0 auto}),
   из-за которого сетка сжималась и уезжала вправо. Тут сетка — на всю ширину. */
body.rd-clubs-page #clubsListContainer { width: 100%; margin: 0; }

.rd-clubs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    grid-auto-rows: 1fr;            /* все ряды одинаковой высоты → карточки одного размера */
    gap: 18px;
}
.rd-club-card {
    position: relative;
    display: flex; flex-direction: column; align-items: center; text-align: center;
    height: 100%;                  /* тянемся на всю высоту ячейки — все карточки равны */
    min-width: 0;                  /* grid-item может сжаться до 1fr → одинаковая ширина колонок */
    padding: 34px 20px 20px;
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius-lg);
    text-decoration: none;
    transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.rd-club-card:hover { border-color: var(--rd-line-red); transform: translateY(-4px); box-shadow: var(--rd-shadow-sm); }
.rd-club-card--top { border-color: var(--rd-line-red); }
.rd-club-card--top::before {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
    background: radial-gradient(120% 80% at 50% 0%, rgba(255, 59, 59, .12), transparent 60%);
}

/* Ранг в левом верхнем углу */
.rd-club-card__top { position: absolute; top: 14px; left: 16px; }
.rd-club-card__rank { font-family: var(--rd-font-display); font-weight: 700; font-size: 20px; color: var(--rd-text-3); line-height: 1; }
.rd-club-card--top .rd-club-card__rank { background: var(--rd-grad-red); -webkit-background-clip: text; background-clip: text; color: transparent; }

/* Круглый логотип */
.rd-club-card__logo {
    width: 92px; height: 92px; border-radius: 50%; object-fit: cover;
    background: var(--rd-surface-3); border: 1px solid var(--rd-line); transition: transform .2s ease;
}
.rd-club-card:hover .rd-club-card__logo { transform: scale(1.06); }

/* Название + звезда VIP — в один ряд */
.rd-club-card__name {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    max-width: 100%; min-width: 0; margin-top: 16px;
    font-family: var(--rd-font-display); font-weight: 600; font-size: 19px; color: var(--rd-text);
    letter-spacing: .02em; transition: color .2s ease;
}
.rd-club-card__name-text { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-club-card:hover .rd-club-card__name { color: var(--rd-red-2); }
.rd-club-card__star { color: #f5b301; font-size: 18px; flex-shrink: 0; }

/* Город — одна строка */
.rd-club-card__loc {
    display: inline-flex; align-items: center; gap: 4px; margin-top: 6px; max-width: 100%;
    color: var(--rd-text-3); font-size: 13.5px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.rd-club-card__pin { font-size: 16px; color: var(--rd-red-2); flex-shrink: 0; }

/* Две колонки: участники | рейтинг */
.rd-club-card__stats {
    display: grid; grid-template-columns: 1fr 1fr; width: 100%;
    margin-top: auto; padding-top: 16px; border-top: 1px solid var(--rd-line);
}
.rd-club-card__stat { display: flex; flex-direction: column; gap: 2px; padding: 2px 6px; min-width: 0; }
.rd-club-card__stat + .rd-club-card__stat { border-left: 1px solid var(--rd-line); }
.rd-club-card__stat b { font-family: var(--rd-font-display); font-weight: 700; font-size: 22px; color: var(--rd-text); line-height: 1.1; }
.rd-club-card__stat span { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-text-3); }

/* Кнопка «Подробнее» */
.rd-club-card__btn {
    display: inline-flex; align-items: center; justify-content: center;
    width: 100%; height: 42px; margin-top: 16px;
    border-radius: 12px; background: var(--rd-grad-red); color: #fff;
    font-family: var(--rd-font-display); font-weight: 600; font-size: 14px; letter-spacing: .02em;
    transition: box-shadow .2s ease, filter .2s ease;
}
.rd-club-card:hover .rd-club-card__btn { box-shadow: 0 6px 18px var(--rd-red-glow); filter: brightness(1.05); }

.rd-clubs .rd-empty { grid-column: 1 / -1; }

@media (max-width: 1300px) {
    .rd-clubs { grid-template-columns: repeat(4, 1fr); }
}
@media (max-width: 1024px) {
    .rd-clubs { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 760px) {
    .rd-clubs { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .rd-clubs { grid-template-columns: 1fr; gap: 14px; }
    .rd-club-card__logo { width: 80px; height: 80px; }
    .rd-club-card__name { font-size: 18px; }
}

/* ==========================================================================
   ТУРНИРЫ (body.rd-tournaments-page)
   ========================================================================== */
/* Табы Upcoming/Past */
.rd-tabs { display: inline-flex; gap: 4px; padding: 5px; background: var(--rd-tint); border: 1px solid var(--rd-line); border-radius: 14px; }
.rd-tabs a {
    display: inline-flex; align-items: center; padding: 9px 22px; border-radius: 10px;
    font-family: var(--rd-font-display); font-weight: 500; font-size: 14px; letter-spacing: .06em; text-transform: uppercase;
    color: var(--rd-text-2); transition: color .2s ease, background-color .2s ease;
}
.rd-tabs a:hover { color: var(--rd-text); }
.rd-tabs a.active { background: var(--rd-grad-red); color: #fff; box-shadow: var(--rd-shadow-red); }

/* Верхняя строка: табы + тулбар */
.rd-ttop { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 26px; }
.rd-ttoolbar { display: flex; align-items: center; gap: 10px; }

/* Chip-фильтр (20+ миникапы) */
.rd-chip {
    display: inline-flex; align-items: center; height: 46px; padding: 0 18px; border-radius: 12px;
    border: 1px solid var(--rd-line-2); background: var(--rd-surface-2); color: var(--rd-text-2);
    font-family: var(--rd-font-display); font-weight: 500; letter-spacing: .04em; cursor: pointer; transition: all .2s ease;
}
.rd-chip:hover { border-color: var(--rd-line-red); color: var(--rd-text); }
.rd-chip.active { background: var(--rd-red-soft); border-color: var(--rd-line-red); color: var(--rd-red-2); }

/* Плитки турниров */
.rd-ttiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.rd-tcard {
    display: flex; flex-direction: column;
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); overflow: hidden;
    transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.rd-tcard:hover { border-color: var(--rd-line-red); transform: translateY(-3px); box-shadow: var(--rd-shadow-sm); }
.rd-tcard__banner {
    position: relative; aspect-ratio: 16 / 7; display: grid; place-items: center;
    background-size: cover; background-position: center; background-color: var(--rd-surface-3);
    background-image: radial-gradient(circle at 50% 35%, rgba(255, 59, 59, .2), transparent 62%), linear-gradient(135deg, #1d1315, #241016);
}
.rd-tcard__banner-ph { font-size: 54px; color: rgba(255, 90, 77, .5); z-index: 0; }
.rd-tcard__banner-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 1; }
.rd-tcard__badge {
    position: absolute; top: 12px; left: 12px; z-index: 1; display: inline-flex; align-items: center; height: 22px; padding: 0 10px;
    border-radius: 6px; background: rgba(0, 0, 0, .6); color: var(--rd-text-2); font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
    border: 1px solid var(--rd-line-2);
}
.rd-tcard__body { display: flex; flex-direction: column; gap: 14px; padding: 20px 22px 22px; flex: 1; }
.rd-tcard__name { font-family: var(--rd-font-display); font-weight: 600; font-size: 21px; text-transform: uppercase; letter-spacing: .02em; color: var(--rd-text); display: flex; align-items: center; gap: 10px; flex-wrap: wrap; line-height: 1.1; }
.rd-tcard__desc { color: var(--rd-text-3); font-size: 14px; line-height: 1.5; margin: -4px 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rd-tcard__details { display: flex; flex-direction: column; gap: 9px; }
.rd-tcard__row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 14px; }
.rd-tcard__row .k { color: var(--rd-text-3); }
.rd-tcard__row .v { color: var(--rd-text); text-align: right; font-family: var(--rd-font-display); font-weight: 500; }
.rd-tcard__actions { display: flex; gap: 10px; margin-top: auto; padding-top: 8px; }
.rd-tcard__actions .rd-btn { flex: 1; height: 44px; font-size: 13px; padding: 0 14px; }
.rd-tbtn-disabled {
    display: inline-flex; align-items: center; justify-content: center; flex: 1; height: 44px; padding: 0 12px;
    border-radius: 999px; border: 1px solid var(--rd-line); color: var(--rd-text-3);
    font-family: var(--rd-font-display); font-size: 11.5px; text-transform: uppercase; letter-spacing: .06em; text-align: center; cursor: not-allowed;
}

@media (max-width: 820px) { .rd-ttiles { grid-template-columns: 1fr; } }

/* Табличный вид — премиум-обёртка (десктоп) */
.rd-ttable-card { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); box-shadow: var(--rd-shadow); padding: 8px 14px; }
body.rd .desktop-table .table-head { color: var(--rd-text-3); font-family: var(--rd-font-display); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; border-color: var(--rd-line) !important; padding: 16px 0 18px; }
body.rd .desktop-table .index-line { border-color: var(--rd-line) !important; padding: 10px 0; align-items: center; }
body.rd .desktop-table .index-line:hover { background: var(--rd-tint-2); }
body.rd .desktop-table a { color: var(--rd-text); }
body.rd .desktop-table a:hover { color: var(--rd-red-2); }
body.rd .tournament-thumb { border-radius: 8px !important; border: 1px solid var(--rd-line); }
body.rd .desktop-table .btn-sm { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border-radius: 999px; background: var(--rd-red-soft); border: 1px solid var(--rd-line-red); color: var(--rd-red-2); font-family: var(--rd-font-display); font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
body.rd .desktop-table .btn-sm:hover { background: var(--rd-red); color: #fff; }

/* Календарь-модал — тёмная премиум-тема (переопределяем tournaments.css через !important) */
body.rd .cal-modal { background: var(--rd-bg-2) !important; border: 1px solid var(--rd-line) !important; }
body.rd .cal-modal-title { font-family: var(--rd-font-display); text-transform: uppercase; letter-spacing: .06em; }
body.rd .cal-month-card { background: var(--rd-surface) !important; border: 1px solid var(--rd-line) !important; }
body.rd .cal-tournament-item:hover { background: var(--rd-red-soft) !important; }

/* Мобильный список турниров — премиум-цвета (переопределяем table-view.blade) */
body.rd .mobile-tournament-row { border-color: var(--rd-line) !important; }
body.rd .mobile-tournament-name { color: var(--rd-text) !important; font-family: var(--rd-font-display); }
body.rd .mobile-tournament-meta { color: var(--rd-text-3) !important; }
body.rd .mobile-tournament-meta .meta-count { color: var(--rd-text-2) !important; }
body.rd .mobile-tournament-thumb { border-radius: 8px !important; border: 1px solid var(--rd-line); }
body.rd .mobile-phase-inline.phase-registration { color: var(--rd-red-2) !important; }
body.rd .mobile-phase-inline.phase-in_progress  { color: #34d399 !important; }
body.rd .mobile-tournament-arrow { color: var(--rd-red-2) !important; opacity: .7 !important; }

/* ==========================================================================
   ВИДЕО (body.rd-videos-page)
   ========================================================================== */
.rd-shelf + .rd-shelf { margin-top: 44px; }
.rd-shelf__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.rd-shelf__title { font-family: var(--rd-font-display); font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: .04em; color: var(--rd-text); margin: 0; }
.rd-shelf__track {
    display: flex; gap: 20px; overflow-x: auto; padding-bottom: 12px;
    scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
}
.rd-shelf__track::-webkit-scrollbar { height: 8px; }
.rd-shelf__track::-webkit-scrollbar-track { background: transparent; }
.rd-shelf__track::-webkit-scrollbar-thumb { background: var(--rd-surface-3); border-radius: 4px; }
.rd-shelf__item { flex: 0 0 300px; scroll-snap-align: start; }

.rd-vgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 900px) { .rd-vgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rd-vgrid { grid-template-columns: 1fr; } }

.rd-video--locked { opacity: .85; }

/* Сетка категорий */
.rd-catgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 900px) { .rd-catgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rd-catgrid { grid-template-columns: 1fr; } }
.rd-catcard { display: block; border-radius: var(--rd-radius-lg); overflow: hidden; background: var(--rd-surface); border: 1px solid var(--rd-line); transition: border-color .25s ease, transform .25s ease; }
.rd-catcard:hover { border-color: var(--rd-line-red); transform: translateY(-4px); }
.rd-catcard--locked { opacity: .85; }
.rd-catcard__thumb { position: relative; aspect-ratio: 16 / 9; background: var(--rd-surface-3); overflow: hidden; }
.rd-catcard__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rd-catcard__overlay { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(10, 6, 7, .4); color: #fff; opacity: 0; transition: opacity .2s ease; }
.rd-catcard:hover .rd-catcard__overlay { opacity: 1; }
.rd-catcard__overlay .material-symbols-outlined { font-size: 48px; filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .5)); }
.rd-catcard__body { padding: 16px 18px; }
.rd-catcard__title { font-family: var(--rd-font-display); font-weight: 600; font-size: 18px; color: var(--rd-text); margin: 0 0 4px; text-transform: uppercase; letter-spacing: .02em; }
.rd-catcard__count { color: var(--rd-text-3); font-size: 13px; margin: 0; }

/* VIP-бейдж (видео/категории) */
.rd-vip-badge {
    position: absolute; top: 12px; right: 12px; z-index: 2;
    display: inline-flex; align-items: center; gap: 4px; height: 22px; padding: 0 8px;
    border-radius: 6px; font-family: var(--rd-font-display); font-weight: 700; font-size: 11px; letter-spacing: .06em; color: #fff;
    background: linear-gradient(135deg, var(--rd-red-2), var(--rd-red-deep));
    box-shadow: 0 0 0 1px rgba(255, 59, 59, .25) inset;
}
.rd-vip-badge .material-symbols-outlined { font-size: 13px; }

/* ==========================================================================
   ИНФОРМАЦИЯ — СТАТЬИ (body.rd-articles-page)
   ========================================================================== */
.rd-subhead { font-family: var(--rd-font-display); font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: .04em; color: var(--rd-text); margin: 40px 0 18px; }
.rd-subhead:first-of-type { margin-top: 0; }

/* Фильтр категорий (chips) */
.rd-cats { display: flex; flex-wrap: wrap; gap: 10px; margin: 6px 0 30px; }
.rd-cat-link { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--rd-line-2); background: var(--rd-surface-2); color: var(--rd-text-2); font-family: var(--rd-font-display); font-size: 14px; letter-spacing: .02em; transition: all .2s ease; }
.rd-cat-link:hover, .rd-cat-link.active { border-color: var(--rd-line-red); background: var(--rd-red-soft); color: var(--rd-red-2); }
.rd-cat-link .material-symbols-outlined { font-size: 17px; }

.rd-artgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 900px) { .rd-artgrid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rd-artgrid { grid-template-columns: 1fr; } }

.rd-artcard { display: flex; flex-direction: column; background: var(--rd-surface); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); overflow: hidden; transition: border-color .25s ease, transform .25s ease; }
.rd-artcard:hover { border-color: var(--rd-line-red); transform: translateY(-4px); }
.rd-artcard__thumb { position: relative; aspect-ratio: 16 / 9; overflow: hidden; display: grid; place-items: center; background: radial-gradient(circle at 50% 40%, rgba(255, 59, 59, .12), transparent 60%), var(--rd-surface-3); }
.rd-artcard__thumb > .material-symbols-outlined { font-size: 44px; color: rgba(255, 90, 77, .4); }
.rd-artcard__thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rd-artcard__body { display: flex; flex-direction: column; gap: 10px; padding: 18px 20px; flex: 1; }
.rd-artcard__cat { align-self: flex-start; font-family: var(--rd-font-display); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--rd-red-2); background: var(--rd-red-soft); border: 1px solid var(--rd-line-red); padding: 3px 10px; border-radius: 6px; }
.rd-artcard__title { font-family: var(--rd-font-display); font-weight: 600; font-size: 19px; color: var(--rd-text); margin: 0; line-height: 1.2; }
.rd-artcard__title a:hover { color: var(--rd-red-2); }
.rd-artcard__excerpt { color: var(--rd-text-3); font-size: 14px; line-height: 1.55; margin: 0; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.rd-artcard__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: auto; padding-top: 6px; color: var(--rd-text-3); font-size: 12.5px; }
.rd-artcard__meta .dot { color: var(--rd-red-2); }

/* ==========================================================================
   ИНФОРМАЦИЯ — СУДЬИ (body.rd-judges-page)
   ========================================================================== */
.rd-judges { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
@media (max-width: 900px) { .rd-judges { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .rd-judges { grid-template-columns: 1fr; } }
.rd-judge { display: flex; align-items: center; gap: 16px; padding: 18px 20px; background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); transition: border-color .25s ease, transform .25s ease; }
.rd-judge:hover { border-color: var(--rd-line-red); transform: translateY(-2px); }
.rd-judge__avalink { flex-shrink: 0; line-height: 0; }
.rd-judge__ava { width: 62px; height: 62px; border-radius: 16px; object-fit: cover; background: var(--rd-surface-3); border: 1px solid var(--rd-line); }
.rd-judge__info { min-width: 0; }
.rd-judge__name { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-family: var(--rd-font-display); font-weight: 600; font-size: 18px; color: var(--rd-text); }
.rd-judge__name a:hover { color: var(--rd-red-2); }
.rd-judge__cat { font-family: var(--rd-font-display); font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--rd-red-2); background: var(--rd-red-soft); border: 1px solid var(--rd-line-red); padding: 2px 7px; border-radius: 5px; }
.rd-judge__loc { color: var(--rd-text-3); font-size: 13px; margin-top: 3px; }
.rd-judge__loc a:hover { color: var(--rd-text-2); }
.rd-judge__count { color: var(--rd-text-3); font-size: 12.5px; margin-top: 6px; }
.rd-judge__count b { color: var(--rd-red-2); font-family: var(--rd-font-display); font-weight: 600; }

/* ==========================================================================
   ЗАЛ СЛАВЫ (body.rd-hof)
   ========================================================================== */
.rd-hof-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
@media (max-width: 900px) { .rd-hof-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .rd-hof-grid { grid-template-columns: 1fr; } }
.rd-hof-card { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); overflow: hidden; }
.rd-hof-card__head { display: flex; align-items: center; gap: 12px; padding: 18px 20px 6px; }
.rd-hof-card__head .material-symbols-outlined { display: grid; place-items: center; justify-content: center; align-items: center; width: 40px; height: 40px; border-radius: 11px; background: var(--rd-red-soft); border: 1px solid var(--rd-line-red); color: var(--rd-red-2); font-size: 22px; flex-shrink: 0; }
.rd-hof-card__title { font-family: var(--rd-font-display); font-weight: 600; font-size: 15px; text-transform: uppercase; letter-spacing: .03em; color: var(--rd-text); line-height: 1.15; }
.rd-hof-card__sub { padding: 4px 20px 12px; color: var(--rd-text-3); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.rd-hof-list { padding: 6px 10px 12px; display: flex; flex-direction: column; gap: 2px; }
.rd-hof-row { display: grid; grid-template-columns: 26px 1fr auto; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 12px; transition: background-color .2s ease; }
.rd-hof-row:hover { background: var(--rd-tint); }
.rd-hof-rank { font-family: var(--rd-font-display); font-weight: 600; font-size: 14px; color: var(--rd-text-3); text-align: center; }
.rd-hof-row:first-of-type .rd-hof-rank { background: var(--rd-grad-red); -webkit-background-clip: text; background-clip: text; color: transparent; font-weight: 700; }
.rd-hof-user { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rd-hof-ava { width: 36px; height: 36px; border-radius: 10px; object-fit: cover; background: var(--rd-surface-3); border: 1px solid var(--rd-line); flex-shrink: 0; }
.rd-hof-info { min-width: 0; }
.rd-hof-name { font-family: var(--rd-font-display); font-weight: 500; font-size: 14px; color: var(--rd-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-hof-club { font-size: 11.5px; color: var(--rd-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-hof-val { display: flex; flex-direction: column; align-items: flex-end; border: none; background: transparent; cursor: pointer; font-family: var(--rd-font-display); color: var(--rd-text); padding: 4px 8px; border-radius: 8px; transition: background-color .2s ease; }
.rd-hof-val:hover { background: var(--rd-red-soft); }
.rd-hof-val .p { font-weight: 700; font-size: 16px; color: var(--rd-red-2); line-height: 1; }
.rd-hof-val .r { font-size: 11px; color: var(--rd-text-3); margin-top: 2px; }
.rd-hof-empty { padding: 16px; text-align: center; color: var(--rd-text-3); font-size: 13px; }

/* ==========================================================================
   СТАТЬЯ (show) — body.rd-article-show
   ========================================================================== */
/* Инфо/статьи — немного шире для комфортного чтения */
.rd-article { max-width: 960px; margin-inline: auto; }
/* Страница правил — заметно шире (аккордеон читается лучше на большой ширине) */
body.rd-rules-show .rd-article { max-width: 1120px; }
.rd-article__head { margin-bottom: 30px; }
.rd-article__cat { display: inline-flex; font-family: var(--rd-font-display); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--rd-red-2); background: var(--rd-red-soft); border: 1px solid var(--rd-line-red); padding: 3px 10px; border-radius: 6px; }
.rd-article__title { font-family: var(--rd-font-display); font-weight: 700; font-size: clamp(28px, 4vw, 46px); text-transform: uppercase; line-height: 1.05; color: var(--rd-text); margin: 16px 0 14px; }
.rd-article__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; color: var(--rd-text-3); font-size: 13.5px; }
.rd-article__meta .dot { color: var(--rd-red-2); }

.rd-prose { color: var(--rd-text-2); font-size: 16px; line-height: 1.75; }
.rd-prose > *:first-child { margin-top: 0; }
.rd-prose h1, .rd-prose h2, .rd-prose h3, .rd-prose h4 { font-family: var(--rd-font-display); color: var(--rd-text); text-transform: uppercase; letter-spacing: .02em; line-height: 1.2; margin: 1.7em 0 .6em; }
.rd-prose h2 { font-size: 26px; } .rd-prose h3 { font-size: 21px; }
.rd-prose p { margin: 0 0 1.1em; }
.rd-prose a { color: var(--rd-red-2); text-decoration: underline; text-underline-offset: 2px; }
.rd-prose a:hover { color: var(--rd-red); }
.rd-prose ul, .rd-prose ol { margin: 0 0 1.1em; padding-left: 1.6em; }
/* Маркированный список — точки, нумерованный — цифры (с красным акцентом маркера) */
.rd-prose ul { list-style: disc; }
.rd-prose ol { list-style: decimal; }
.rd-prose ul ul { list-style: circle; }
.rd-prose ol ol { list-style: lower-alpha; }
.rd-prose li { margin: .4em 0; padding-left: .2em; }
.rd-prose li::marker { color: var(--rd-red-2); font-weight: 700; }
.rd-prose img { max-width: 100%; height: auto; border-radius: var(--rd-radius); border: 1px solid var(--rd-line); margin: 1em 0; }
.rd-prose blockquote { margin: 1.2em 0; padding: 12px 18px; border-left: 3px solid var(--rd-red); background: var(--rd-red-soft2); border-radius: 8px; color: var(--rd-text); }
.rd-prose code { background: var(--rd-surface-3); padding: 2px 6px; border-radius: 5px; font-size: .9em; }
.rd-prose pre { background: var(--rd-surface); border: 1px solid var(--rd-line); border-radius: 12px; padding: 16px; overflow-x: auto; }
.rd-prose hr { border: none; border-top: 1px solid var(--rd-line); margin: 2em 0; }
.rd-prose .accordion-item { border: 1px solid var(--rd-line); border-radius: 12px; margin-bottom: 10px; overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease; }
.rd-prose .accordion-item.open { border-color: var(--rd-line-red); box-shadow: 0 4px 18px var(--rd-red-glow); }
.rd-prose .accordion-header { padding: 14px 18px; cursor: pointer; font-family: var(--rd-font-display); color: var(--rd-text); background: var(--rd-surface-2); display: flex; justify-content: space-between; align-items: center; gap: 14px; transition: color .2s ease, background-color .2s ease; }
.rd-prose .accordion-header:hover { color: var(--rd-red-2); background: var(--rd-red-soft); }
.rd-prose .accordion-item.open .accordion-header { color: var(--rd-red-2); }
/* Стрелка-шеврон справа: смотрит вниз, при раскрытии переворачивается вверх */
.rd-prose .accordion-header::after {
    content: ""; flex: none; width: 9px; height: 9px; margin-top: -3px;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: rotate(45deg); transition: transform .25s ease; opacity: .8;
}
.rd-prose .accordion-item.open .accordion-header::after { transform: rotate(-135deg); margin-top: 3px; }
.rd-prose .accordion-item .accordion-body, .rd-prose .accordion-item .accordion-content { max-height: 0; overflow: hidden; transition: max-height .3s ease; padding: 0 18px; }
.rd-prose .accordion-item.open .accordion-body, .rd-prose .accordion-item.open .accordion-content { max-height: 2000px; padding: 14px 18px; }

/* Таблицы в контенте (напр. таблица баллов в регламенте).
   Контент из редактора приносит собственные чёрные border'ы — на тёмной теме
   они не видны, поэтому перекрываем более специфичными селекторами .rd-prose. */
.rd-prose figure { margin: 1.6em 0; }                 /* сброс браузерных отступов figure (CKEditor оборачивает таблицу) */
.rd-prose figure.table { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--rd-line); border-radius: var(--rd-radius-sm); background: var(--rd-surface); box-shadow: var(--rd-shadow-sm); }
.rd-prose table { width: 100%; border-collapse: collapse; border: 0; font-size: 14.5px; }
.rd-prose thead th { padding: 13px 16px; text-align: center; white-space: nowrap; font-family: var(--rd-font-display); font-weight: 700; font-size: 12.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--rd-text); background: var(--rd-surface-3); border: 0; border-bottom: 2px solid var(--rd-line-red); }
.rd-prose tbody td { padding: 10px 16px; text-align: center; color: var(--rd-text-2); border: 0; border-bottom: 1px solid var(--rd-line); border-right: 1px solid var(--rd-line); }
.rd-prose tbody td:last-child, .rd-prose thead th:last-child { border-right: 0; }
.rd-prose tbody tr:last-child td { border-bottom: 0; }
.rd-prose tbody tr:nth-child(even) td { background: rgba(255, 255, 255, .022); }
.rd-prose tbody tr:hover td { background: var(--rd-red-soft2); }
.rd-prose tbody td:first-child { font-family: var(--rd-font-display); font-weight: 700; color: var(--rd-red-2); }  /* колонка «Место» — акцент */

/* ==========================================================================
   ВИДЕО (show) — body.rd-video-show
   ========================================================================== */
.rd-vpage { max-width: 1000px; margin-inline: auto; }
.rd-vnav { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.rd-vnav__btn { display: inline-flex; align-items: center; gap: 5px; height: 42px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--rd-line-2); background: var(--rd-surface-2); color: var(--rd-text-2); font-family: var(--rd-font-display); font-size: 13px; letter-spacing: .03em; max-width: 240px; transition: border-color .2s ease, color .2s ease; }
.rd-vnav__btn:hover { border-color: var(--rd-line-red); color: var(--rd-text); }
.rd-vnav__btn .nav-label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rd-vnav__btn.disabled { opacity: .35; pointer-events: none; }
.rd-vtitle { font-family: var(--rd-font-display); font-weight: 700; font-size: clamp(22px, 3vw, 32px); text-transform: uppercase; color: var(--rd-text); margin: 0 0 18px; line-height: 1.1; }
.rd-vembed { position: relative; aspect-ratio: 16 / 9; border-radius: var(--rd-radius-lg); overflow: hidden; border: 1px solid var(--rd-line); background: #000; box-shadow: var(--rd-shadow); }
.rd-vembed iframe, .rd-vembed video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: contain; }
.rd-vmeta { display: flex; align-items: center; gap: 16px; margin: 18px 0; color: var(--rd-text-3); font-size: 14px; }
.rd-vmeta .vip { display: inline-flex; align-items: center; gap: 4px; color: #fff; background: linear-gradient(135deg, var(--rd-red-2), var(--rd-red-deep)); padding: 2px 8px; border-radius: 6px; font-family: var(--rd-font-display); font-size: 11px; }
.rd-vdesc { color: var(--rd-text-2); font-size: 15px; line-height: 1.7; }

/* Ссылка «назад» на детальных страницах */
.rd-backlink { display: inline-flex; align-items: center; gap: 6px; color: var(--rd-text-3); font-family: var(--rd-font-display); font-size: 13px; letter-spacing: .04em; text-transform: uppercase; margin-bottom: 18px; transition: color .2s ease, gap .2s ease; }
.rd-backlink:hover { color: var(--rd-red-2); gap: 9px; }
.rd-backlink .material-symbols-outlined { font-size: 18px; }

/* Экран «доступ закрыт» (VIP-гейт) */
.rd-locked { max-width: 520px; margin: 40px auto; text-align: center; padding: 44px 32px; background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-xl); box-shadow: var(--rd-shadow); }
.rd-locked__thumb { position: relative; width: 220px; aspect-ratio: 16 / 9; margin: 0 auto 22px; border-radius: var(--rd-radius); overflow: hidden; border: 1px solid var(--rd-line); background: var(--rd-surface-3); }
.rd-locked__thumb img { width: 100%; height: 100%; object-fit: cover; filter: brightness(.45); }
.rd-locked__lock { position: absolute; inset: 0; display: grid; place-items: center; }
.rd-locked__lock .material-symbols-outlined { font-size: 42px; color: #fff; filter: drop-shadow(0 4px 12px rgba(0, 0, 0, .6)); }
.rd-locked__title { font-family: var(--rd-font-display); font-weight: 700; font-size: 24px; text-transform: uppercase; color: var(--rd-text); margin: 0 0 12px; }
.rd-locked__msg { color: var(--rd-text-2); font-size: 15px; line-height: 1.55; margin: 0 0 22px; }
.rd-locked__actions { display: flex; flex-direction: column; align-items: center; gap: 16px; }

/* ==========================================================================
   ПРОФИЛЬ ИГРОКА (body.rd-player-show)
   ========================================================================== */
.rd-profile { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: start; }
@media (max-width: 860px) { .rd-profile { grid-template-columns: 1fr; } }
.rd-profile__side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 88px; }
@media (max-width: 860px) { .rd-profile__side { position: static; } }

.rd-profile__card { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); padding: 26px 22px; text-align: center; }
.rd-profile__ava { width: 110px; height: 110px; border-radius: 50%; object-fit: cover; margin: 0 auto 16px; display: block; border: 2px solid var(--rd-line-red); box-shadow: 0 0 34px -8px var(--rd-red-glow); background: var(--rd-surface-3); }
.rd-profile__name { font-family: var(--rd-font-display); font-weight: 700; font-size: 24px; text-transform: uppercase; color: var(--rd-text); margin: 0 0 4px; line-height: 1.1; }
.rd-profile__real { color: var(--rd-text-3); font-size: 13px; margin-bottom: 12px; }
.rd-profile__badges { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-bottom: 14px; }
.rd-profile__judge { color: var(--rd-red-2) !important; background: var(--rd-red-soft) !important; border-color: var(--rd-line-red) !important; }
.rd-profile__club { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--rd-line); border-radius: 999px; margin-bottom: 10px; transition: border-color .2s ease; }
.rd-profile__club:hover { border-color: var(--rd-line-red); }
.rd-profile__club img { width: 22px; height: 22px; border-radius: 50%; object-fit: cover; }
.rd-profile__club span { font-size: 13px; color: var(--rd-text-2); }
.rd-profile__loc { color: var(--rd-text-3); font-size: 12.5px; margin-bottom: 16px; }
.rd-profile__stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; border-top: 1px solid var(--rd-line); padding-top: 16px; }
.rd-pstat b { display: block; font-family: var(--rd-font-display); font-weight: 700; font-size: 19px; background: var(--rd-grad-text); -webkit-background-clip: text; background-clip: text; color: transparent; }
.rd-pstat span { font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--rd-text-3); }

.rd-profile__main { min-width: 0; background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); padding: 20px 22px; }

/* Навигация вкладок (переопределяем sidebar-menu под премиум, JS-хуки сохранены) */
body.rd .sidebar-menu-trigger { display: none; }
body.rd .sidebar-menu-items { display: flex !important; flex-direction: column; gap: 2px; background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); padding: 8px; }
/* Меню вкладок профиля игрока — заметная surface-плитка, а не «чёрный» фон страницы */
body.rd-player-show .rd-profile__side .sidebar-menu-items {
    background: var(--rd-surface-3);
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius-lg);
    padding: 8px;
}
/* Пункт: плоский, без белых разделителей из clm.css, красный акцент слева на hover/active */
body.rd .sidebar-menu-item { position: relative; display: flex; align-items: center; gap: 11px; height: auto; padding: 10px 12px 10px 14px; border: 0 !important; border-bottom: 0 !important; border-radius: 10px; color: var(--rd-text-2); font-family: var(--rd-font-display); font-weight: 600; font-size: 13.5px; letter-spacing: .02em; text-transform: uppercase; cursor: pointer; transition: background-color .18s ease, color .18s ease; text-decoration: none; }
/* Тонкая вертикальная полоса-акцент слева (появляется на hover/active) */
body.rd .sidebar-menu-item::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 3px; height: 0; border-radius: 3px; background: var(--rd-red-2); transition: height .18s ease; }
body.rd .sidebar-menu-item:hover { background: var(--rd-tint-3); color: var(--rd-text); border: 0 !important; }
body.rd .sidebar-menu-item:hover::before { height: 55%; }
body.rd .sidebar-menu-item.active { background: var(--rd-red-soft); color: var(--rd-red-2); border: 0 !important; }
body.rd .sidebar-menu-item.active::before { height: 70%; }
body.rd .sidebar-menu-item .sidebar-menu-icon { font-size: 20px; opacity: .9; }
/* Шеврон: приглушён, проявляется на hover/active, без «прыжков» */
body.rd .sidebar-menu-chevron { margin-left: auto; opacity: 0; transform: none !important; transition: opacity .18s ease; font-size: 18px; }
body.rd .sidebar-menu-item:hover .sidebar-menu-chevron,
body.rd .sidebar-menu-item.active .sidebar-menu-chevron { opacity: .5; }

/* --- Темизация партиалов вкладок (переопределяют player-profile.css) --- */
/* Достижения */
body.rd .achievements-year { margin-bottom: 24px; }
body.rd .achievements-year__title { font-family: var(--rd-font-display); color: var(--rd-red-2); border-bottom: 1px solid var(--rd-line); padding-bottom: 8px; text-transform: uppercase; font-size: 22px; }
body.rd .achievements-section { margin-top: 14px; }
body.rd .achievements-section__title { color: var(--rd-text-3); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; margin-bottom: 12px; }
body.rd .trophy-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
body.rd .trophy-card { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 16px 12px; border-radius: 14px; border: 1px solid var(--rd-line); background: var(--rd-surface-2); transition: border-color .2s ease, transform .2s ease; text-decoration: none; }
body.rd .trophy-card:hover { border-color: var(--rd-line-red); transform: translateY(-3px); background: var(--rd-surface-2); }
body.rd .trophy-card__img { width: 60px; height: 70px; margin-bottom: 8px; }
body.rd .trophy-card__name { font-family: var(--rd-font-display); color: var(--rd-text); font-size: 14px; }
body.rd .trophy-card__place { color: var(--rd-text-3); font-size: 12px; }
@media (max-width: 640px) { body.rd .trophy-grid { grid-template-columns: repeat(2, 1fr); } }

/* Турниры (вкладка) */
body.rd .tournaments-list { display: flex; flex-direction: column; }
body.rd .tournament-row { border-bottom: 1px solid var(--rd-line); padding: 12px 8px; }
body.rd .tournament-row:hover { background: var(--rd-tint); }
body.rd .tournament-row__name { font-family: var(--rd-font-display); color: var(--rd-text); }
body.rd .tournament-row__score { color: var(--rd-text); font-family: var(--rd-font-display); font-weight: 700; }
body.rd .tournament-row__place { color: var(--rd-text-3); }
body.rd .tournament-row__badge--pending { color: var(--rd-red-2); background: var(--rd-red-soft); border: 1px solid var(--rd-line-red); }
body.rd .tournament-row__badge--participant { color: #34d399; background: rgba(52, 211, 153, .12); }

/* Статистика */
body.rd .stats-filter { margin-bottom: 18px; }
body.rd .stats-filter select { background: var(--rd-surface-2); border: 1px solid var(--rd-line-2); color: var(--rd-text); border-radius: 10px; height: 42px; padding: 0 14px; font-family: var(--rd-font-body); }
body.rd .stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; }
body.rd .stats-section-title { grid-column: 1 / -1; font-family: var(--rd-font-display); color: var(--rd-red-2); text-transform: uppercase; letter-spacing: .06em; font-size: 13px; margin-top: 18px; padding-bottom: 6px; border-bottom: 1px solid var(--rd-line); }
body.rd .stat-row { border-bottom: 1px solid var(--rd-line); padding: 10px 2px; display: flex; justify-content: space-between; gap: 12px; }
body.rd .stat-row__label { color: var(--rd-text-3); }
body.rd .stat-row__value { color: var(--rd-text); font-family: var(--rd-font-display); font-weight: 600; }
body.rd .stat-row__games { color: var(--rd-text-3); font-weight: 400; font-size: .8em; }
@media (max-width: 560px) { body.rd .stats-grid { grid-template-columns: 1fr; } }

/* Бейджи + пустое состояние */
body.rd .badges-grid { display: flex; flex-wrap: wrap; gap: 24px; }
body.rd .badge-card { text-align: center; }
body.rd .badge-card__name { font-family: var(--rd-font-display); color: var(--rd-text); margin-top: 8px; }
body.rd .empty-state { color: var(--rd-text-3); padding: 44px 16px; text-align: center; }

/* ==========================================================================
   КЛУБ (show) — body.rd-club-page. Темизация club-view.css/clm.css через body.rd
   ========================================================================== */
body.rd .club-page { max-width: var(--rd-container); margin-inline: auto; padding: 36px 24px 72px; display: flex; flex-direction: column; gap: 20px; }

/* Шапка клуба */
body.rd .club-header { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); box-shadow: var(--rd-shadow); padding: 26px 28px; }
body.rd .club-logo img, body.rd .club-avatar img { border-radius: 18px !important; border: 1px solid var(--rd-line); }
body.rd .club-title { font-family: var(--rd-font-display); font-weight: 700; font-size: clamp(24px, 3vw, 34px); text-transform: uppercase; color: var(--rd-text) !important; }
body.rd .club-description { color: var(--rd-text-3) !important; }
body.rd .club-contacts { color: var(--rd-text-3) !important; }
body.rd .club-contacts a { color: var(--rd-red-2) !important; }
body.rd .club-stats { gap: 12px; }
body.rd .stat-item { background: var(--rd-tint-2); border: 1px solid var(--rd-line); border-radius: 14px; padding: 12px 16px; }
body.rd .stat-value { font-family: var(--rd-font-display); font-weight: 700; font-size: 22px; background: var(--rd-grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
body.rd .stat-label { color: var(--rd-text-3) !important; text-transform: uppercase; letter-spacing: .06em; font-size: 11px; }

/* Навигация клуба */
body.rd .club-nav { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); overflow: hidden; }
body.rd .club-tab { color: var(--rd-text-2) !important; font-family: var(--rd-font-display); text-transform: uppercase; letter-spacing: .04em; }
body.rd .club-tab:hover { color: var(--rd-text) !important; }
body.rd .club-tab.active { background: var(--rd-red-soft) !important; color: var(--rd-red-2) !important; border-radius: 10px; }
body.rd .club-tab.club-tab-admin { color: #f59e0b !important; }
body.rd .club-tab.club-tab-admin.active { background: rgba(245, 158, 11, .14) !important; color: #fbbf24 !important; }

/* Контент клуба */
body.rd .club-content { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); box-shadow: var(--rd-shadow); }
body.rd .club-content .data-wrapper { color: var(--rd-text); width: auto; background: transparent; }
body.rd .club-content .user-row { border-bottom: 1px solid var(--rd-line) !important; }
body.rd .club-content .user-avatar img { border-radius: 12px; }
body.rd .club-content .user-status { color: var(--rd-text-green-light); }

/* Карточки участников (переопределяем инлайн <style> в members) */
body.rd .member-card { background: var(--rd-surface-2) !important; border: 1px solid var(--rd-line) !important; border-radius: 16px !important; transition: border-color .2s ease, transform .2s ease; }
body.rd .member-card:hover { border-color: var(--rd-line-red) !important; transform: translateY(-2px); }
body.rd .role-badge { background: rgba(144, 202, 249, .14) !important; }
body.rd .role-badge-owner { background: var(--rd-red-soft) !important; color: var(--rd-red-2) !important; }

/* Таблицы клуба (widgets/index-table → .content-table) */
body.rd .club-content .content-table .table-head { color: var(--rd-text-3) !important; font-family: var(--rd-font-display); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; border-color: var(--rd-line) !important; }
body.rd .club-content .index-line { border-color: var(--rd-line) !important; }
body.rd .club-content .index-line:hover { background: var(--rd-tint-2); }

/* Турниры клуба: flex-таблица тянется на всю ширину, колонки распределяются
   пропорционально весу w-* (как в админке). Иначе колонки с фиксированной шириной
   не заполняют строку и справа остаётся пустое место. */
body.rd #club-tournaments-data .content-table { width: 100%; }
body.rd #club-tournaments-data .content-table .table-head,
body.rd #club-tournaments-data .content-table .index-line { width: 100%; }
body.rd #club-tournaments-data .content-table .w-5  { flex: 5 1 0;  max-width: none; }
body.rd #club-tournaments-data .content-table .w-10 { flex: 10 1 0; max-width: none; }
body.rd #club-tournaments-data .content-table .w-15 { flex: 15 1 0; max-width: none; }
body.rd #club-tournaments-data .content-table .w-20 { flex: 20 1 0; max-width: none; }
/* Колонка «Действия» — узкая (и в шапке, и в строках), кнопки прижаты влево */
body.rd #club-tournaments-data .content-table .col-actions { flex: 6 1 0; max-width: none; justify-content: flex-start; }

/* Селектор турнира + AJAX-табы */
/* width/max-width перебивают общее body.rd select { width:100% } — селект не тянем на всю панель */
body.rd .tournament-selector { background: var(--rd-surface-2) !important; border: 1px solid var(--rd-line-2) !important; color: var(--rd-text) !important; border-radius: 10px; width: auto; max-width: 360px; min-width: 260px; }
body.rd .tournament-tab-content, body.rd .club-content .empty-state { color: var(--rd-text-3); }
body.rd .results-view-tab.active { background: var(--rd-red-soft) !important; color: var(--rd-red-2) !important; }
body.rd .win-badge { background: var(--rd-red-soft) !important; color: var(--rd-red-2) !important; }
body.rd .main-action { color: var(--rd-red-2); }

/* ==========================================================================
   ИГРОВОЙ ВЕЧЕР (клуб → детальный экран вечера) — body.rd
   Шапка + под-вкладки Игры/Лобби + стат-плитки + карточки столов с играми.
   Экран грузится AJAX-ом в #tournament-games-content, шапка/вкладки — рядом.
   ========================================================================== */

/* Шапка вечера: чип «‹ Игровые вечера» + дата */
body.rd .evening-detail-header { margin-bottom: 18px; gap: 14px; }
body.rd .evening-back-btn {
    color: var(--rd-text-2);
    background: var(--rd-red-soft2);
    border: 1px solid var(--rd-line-red);
    border-radius: 12px;
    font-family: var(--rd-font-display);
    text-transform: uppercase;
    letter-spacing: .04em;
    transition: border-color .2s ease, color .2s ease, background .2s ease;
}
body.rd .evening-back-btn:hover { color: var(--rd-red-2); background: var(--rd-red-soft); border-color: var(--rd-red); }
body.rd .evening-title {
    font-family: var(--rd-font-display);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .02em;
    font-size: clamp(18px, 2.4vw, 26px);
    color: var(--rd-text);
}

/* Под-вкладки Игры / Лобби — красные таблетки вместо янтарных */
body.rd .evening-subtabs { border-bottom: 1px solid var(--rd-line); gap: 8px; }
body.rd .evening-subtab {
    color: var(--rd-text-2);
    font-family: var(--rd-font-display);
    text-transform: uppercase;
    letter-spacing: .05em;
    border-radius: 10px;
    background: transparent;
}
body.rd .evening-subtab:hover { color: var(--rd-text); background: var(--rd-tint); }
body.rd .evening-subtab.active { color: var(--rd-red-2); background: var(--rd-red-soft); border-color: var(--rd-line-red); }

/* Заголовок «Игры» */
body.rd :is(#tournament-games-content, #tournament-games-data) h1 {
    font-family: var(--rd-font-display);
    font-weight: 700;
    text-transform: uppercase;
    font-size: clamp(22px, 3vw, 30px);
    color: var(--rd-text);
    margin: 0;
}

/* Тулбар управления играми (селект + Удалить/Очистить/＋) — единый ряд, выровнены по высоте */
/* Тулбар — всегда в один ряд (как эталон): не переносить кнопки в столбик, не ужиматься.
   display:flex задаём сами, чтобы не зависеть от inline-<style> из games.blade. */
body.rd :is(#tournament-games-content, #tournament-games-data) .game-action-panel { display: flex; gap: 10px; align-items: center; flex-wrap: nowrap; flex-shrink: 0; }
@media (max-width: 620px) { body.rd :is(#tournament-games-content, #tournament-games-data) .game-action-panel { flex-wrap: wrap; } }
body.rd :is(#tournament-games-content, #tournament-games-data) .game-action-select {
    /* Свой chevron: нативная стрелка убрана глобальным appearance:none */
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    min-height: 44px; min-width: 230px;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23b9adad' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")
        no-repeat right .85rem center / 14px,
        var(--rd-surface-2) !important;
    border: 1px solid var(--rd-line-2) !important;
    color: var(--rd-text) !important;
    border-radius: 12px;
    padding: .5rem 2.2rem .5rem .9rem;
    font-size: .92rem; font-weight: 500;
    cursor: pointer;
}
body.rd :is(#tournament-games-content, #tournament-games-data) .game-action-select:hover { border-color: var(--rd-line-red) !important; }
/* Кнопки-пилюли одной высоты с селектом */
body.rd :is(#tournament-games-content, #tournament-games-data) .gap-del-btn,
body.rd :is(#tournament-games-content, #tournament-games-data) .gap-clr-btn {
    min-height: 44px; padding: .5rem 1.15rem;
    border-radius: 12px; border-width: 1px;
    font-size: .9rem; font-weight: 600; letter-spacing: .01em;
}
body.rd :is(#tournament-games-content, #tournament-games-data) .gap-del-btn { border-color: var(--rd-line-red) !important; color: var(--rd-red-2) !important; }
body.rd :is(#tournament-games-content, #tournament-games-data) .gap-del-btn:not([disabled]):hover { background: var(--rd-red-soft); opacity: 1; }
body.rd :is(#tournament-games-content, #tournament-games-data) .gap-clr-btn { border-color: var(--rd-line-2) !important; color: var(--rd-text-2) !important; }
body.rd :is(#tournament-games-content, #tournament-games-data) .gap-clr-btn:not([disabled]):hover { background: rgba(255, 255, 255, .05); opacity: 1; }

/* Стат-панель → 3 премиум-плитки с градиентными цифрами */
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel {
    background: linear-gradient(180deg, var(--rd-tint), rgba(255, 255, 255, 0)) !important;
    border: 1px solid var(--rd-line) !important;
    border-radius: var(--rd-radius) !important;
    padding: 6px !important;
    box-shadow: var(--rd-shadow-sm);
}
body.rd :is(#tournament-games-content, #tournament-games-data) .stat-item {
    position: relative;
    background: var(--rd-tint-2);
    border: 1px solid var(--rd-line);
    border-radius: 14px;
    padding: 18px 12px !important;
    margin: 6px;
    overflow: hidden;
}
/* тонкий красный акцент сверху плитки */
body.rd :is(#tournament-games-content, #tournament-games-data) .stat-item::before {
    content: '';
    position: absolute; inset: 0 0 auto 0; height: 2px;
    background: var(--rd-grad-red);
    opacity: .6;
}
body.rd :is(#tournament-games-content, #tournament-games-data) .evening-stat-label {
    color: var(--rd-text-3) !important;
    text-transform: uppercase;
    letter-spacing: .08em;
    font-size: 11px !important;
    font-family: var(--rd-font-display);
}
body.rd :is(#tournament-games-content, #tournament-games-data) .evening-stat-value {
    font-family: var(--rd-font-display) !important;
    font-weight: 700;
    font-size: 2.1rem !important;
    background: var(--rd-grad-text);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent !important;
}

/* Заголовок дня «2026-06-23 (вторник)» — с разделительной линией */
body.rd :is(#tournament-games-content, #tournament-games-data) .data-title {
    font-family: var(--rd-font-display) !important;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--rd-red-2) !important;
    font-size: 18px !important;
    display: flex; align-items: center; gap: 12px;
    margin: 24px 0 14px !important;
}
body.rd :is(#tournament-games-content, #tournament-games-data) .data-title::after {
    content: ''; flex: 1; height: 1px;
    background: linear-gradient(90deg, var(--rd-line-red), transparent);
}
body.rd :is(#tournament-games-content, #tournament-games-data) .data-title .text-gray-500 { color: var(--rd-text-3) !important; }

/* Ряд столов → адаптивная сетка карточек */
body.rd :is(#tournament-games-content, #tournament-games-data) .flex-start.space-between {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 14px;
    align-items: start;
}

/* Карточка стола */
body.rd :is(#tournament-games-content, #tournament-games-data) .flex-column.ta-center {
    text-align: left !important;
    background: var(--rd-surface-2);
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius);
    padding: 6px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
body.rd :is(#tournament-games-content, #tournament-games-data) .flex-column.ta-center:hover { border-color: var(--rd-line-red); box-shadow: var(--rd-shadow-sm); }

/* Шапка стола */
body.rd :is(#tournament-games-content, #tournament-games-data) .table-head {
    font-family: var(--rd-font-display);
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: 13px;
    color: var(--rd-text-3);
    text-align: left;
    padding: 10px 12px 8px !important;
    border-bottom: 1px solid var(--rd-line);
    margin-bottom: 4px;
}

/* Игра — строка-чип со статус-точкой слева */
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-game-block {
    position: relative;
    border-bottom: none !important;
    padding: 9px 12px 9px 30px !important;
    margin: 2px 0 !important;
    border-radius: 10px;
    transition: background .15s ease, transform .15s ease;
}
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-game-block::before {
    content: '';
    position: absolute; left: 12px; top: 50%; transform: translateY(-50%);
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--rd-text-3);
    box-shadow: 0 0 0 3px var(--rd-tint);
}
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-game-block:hover { background: var(--rd-tint); transform: translateX(2px); }
/* завершённая — зелёная точка */
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-game-finished::before { background: #4caf50; box-shadow: 0 0 0 3px rgba(76, 175, 80, .14); }
/* live — красная пульсирующая точка + мягкая подложка */
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-game-live { background: var(--rd-red-soft2) !important; }
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-game-live::before { background: var(--rd-red); animation: live-pulse 1.5s infinite; }
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-game-link { font-family: var(--rd-font-body); }

/* Легенда статусов игр (цвета точек = .ts-game-block::before) */
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-game-legend {
    display: flex; flex-wrap: wrap; gap: 22px; align-items: center;
    margin-top: 22px; padding-top: 16px;
    border-top: 1px solid var(--rd-line);
}
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-legend-item {
    display: inline-flex; align-items: center; gap: 8px;
    color: var(--rd-text-3); font-size: 13px; font-family: var(--rd-font-body);
}
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-legend-dot {
    width: 9px; height: 9px; border-radius: 50%; background: var(--rd-text-3);
}
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-legend-dot--finished { background: #4caf50; box-shadow: 0 0 0 3px rgba(76, 175, 80, .14); }
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-legend-dot--live { background: var(--rd-red); box-shadow: 0 0 0 3px var(--rd-red-soft); }
body.rd :is(#tournament-games-content, #tournament-games-data) .ts-legend-dot--pending { background: var(--rd-text-3); }

/* Действия стат-панели — ТЕКСТОВЫЕ кнопки с разными ролями:
   «Сгенерировать игры» (красная) и «Сгенерировать финал» (золотая, трофей).
   Разный текст + цвет + иконка сразу отличают одну функцию от другой. */
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 { gap: 10px; flex-wrap: wrap; align-items: center; }
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .material-symbols-outlined,
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .action-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 44px; padding: 0 16px; width: auto;
    background: var(--rd-surface-2) !important;
    border: 1px solid var(--rd-line-2) !important;
    border-radius: 12px;
    color: var(--rd-text-2) !important;
    font-family: var(--rd-font-display); font-size: 12.5px; font-weight: 600;
    text-transform: uppercase; letter-spacing: .03em; white-space: nowrap;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, color .16s ease;
}
/* Внутренняя иконка кнопки — без «коробки», нужного размера */
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .action-btn .material-symbols-outlined {
    width: auto; height: auto; background: none !important; border: 0 !important; border-radius: 0; font-size: 20px;
}
/* x-ajax-modal оборачивает кнопку в div.material-symbols-outlined (внешняя рамка — правило выше).
   Гасим рамку/фон у ВНУТРЕННЕГО span.action-btn, иначе получается двойная обводка. */
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .material-symbols-outlined > .action-btn {
    background: none !important; border: 0 !important; box-shadow: none !important;
    min-width: 0; width: auto; height: auto; padding: 0;
}
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .material-symbols-outlined > .action-btn .material-symbols-outlined {
    background: none !important; border: 0 !important; border-radius: 0; font-size: 20px;
}
/* Роль «Создать игры» — красная. Полный префикс .stats-panel .flex-row.gap-1 >
   даёт ту же специфичность, что базовое правило кнопки (иначе его !important перебивал цвет). */
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .gap-gen { border-color: var(--rd-line-red) !important; color: var(--rd-red-2) !important; }
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .gap-gen:not(.btn-disabled):hover { background: var(--rd-red-soft) !important; }
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .gap-gen .material-symbols-outlined { color: var(--rd-red-2) !important; }
/* Роль «Создать финал» — золотая (трофей) */
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .gap-final { border-color: rgba(232, 164, 35, .5) !important; color: #ffcf6a !important; }
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .gap-final:not(.btn-disabled):hover { background: rgba(232, 164, 35, .12) !important; }
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .gap-final .material-symbols-outlined { color: #ffcf6a !important; }
body.rd :is(#tournament-games-content, #tournament-games-data) .stats-panel .flex-row.gap-1 > .gap-final.btn-disabled { opacity: .5; }

/* Кнопки «Добавить игру» в тулбаре (по дням): дата-подпись, чтобы две не были одинаковыми */
body.rd :is(#tournament-games-content, #tournament-games-data) .game-action-panel .gap-add.btn-with-icon {
    display: inline-flex; align-items: center; gap: 7px;
    min-height: 44px; padding: 0 13px 0 11px;
    border: 1px solid var(--rd-line-red); border-radius: 12px;
    color: var(--rd-red-2); font-family: var(--rd-font-body); font-size: 12.5px; font-weight: 600;
    white-space: nowrap; cursor: pointer;
    transition: background .16s ease;
}
body.rd :is(#tournament-games-content, #tournament-games-data) .game-action-panel .gap-add.btn-with-icon:hover { background: var(--rd-red-soft); }

/* ==========================================================================
   ТУРНИР (show) — body.rd-tournament-page. Темизация tournaments.css/clm.css
   ========================================================================== */
body.rd .tournament-view { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: start; max-width: var(--rd-container); margin-inline: auto; padding: 36px 24px 72px; }
@media (max-width: 860px) { body.rd .tournament-view { grid-template-columns: 1fr; } }

/* --------------------------------------------------------------------------
   Горизонтальная структура страницы турнира (.tournament-page): шапка + линия
   табов + контент, по образцу клуба. Командные страницы (teams/*) остаются на
   старом сайдбаре — у них нет .tournament-page, поэтому grid/sidebar-правила
   выше их не касаются. club-view.css здесь не подключён → дублируем структурную
   раскладку; цвета берутся из body.rd .club-* (секция КЛУБ).
   -------------------------------------------------------------------------- */
/* Двойной класс перебивает grid из правила выше; stretch — чтобы шапка/навигация/
   контент тянулись на всю ширину (иначе align-items:start сжимает их по содержимому). */
body.rd .tournament-view.tournament-page { display: flex; flex-direction: column; align-items: stretch; gap: 20px; }

/* Шапка */
body.rd .tournament-page .club-header { display: flex; flex-direction: row; align-items: center; gap: 2rem; }
body.rd .tournament-page .club-identity { display: flex; flex-direction: row; align-items: center; gap: 1.25rem; flex: 1; min-width: 0; }
body.rd .tournament-page .club-info { display: flex; flex-direction: column; gap: .45rem; min-width: 0; }
body.rd .tournament-page .club-title { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; }
/* Клуб-организатор (единственная инфо-строка шапки) */
body.rd .tournament-page .tournament-organizer { display: flex; align-items: center; gap: 8px; font-size: .92rem; }
body.rd .tournament-page .tournament-organizer .material-symbols-outlined { font-size: 18px; color: var(--rd-text-3); }
body.rd .tournament-page .tournament-organizer__label { color: var(--rd-text-3); }
body.rd .tournament-page .tournament-organizer a { color: var(--rd-red-2); text-decoration: none; font-weight: 600; }
body.rd .tournament-page .tournament-organizer a:hover { text-decoration: underline; }

/* Логотип турнира + бейдж клуба поверх него */
body.rd .tournament-page .tournament-logo { position: relative; width: 88px; height: 88px; border-radius: 18px; flex-shrink: 0; }
body.rd .tournament-page .tournament-logo > img { width: 88px; height: 88px; object-fit: cover; border-radius: 18px; border: 1px solid var(--rd-line); background: var(--rd-surface-3); }
body.rd .tournament-page .tournament-club-badge { position: absolute; right: -6px; bottom: -6px; width: 34px; height: 34px; line-height: 0; }
body.rd .tournament-page .tournament-club-badge img { width: 34px; height: 34px; border-radius: 10px; border: 2px solid var(--rd-bg-2); object-fit: cover; }

/* Бейдж текущей фазы рядом с названием */
body.rd .tournament-phase-badge { font-family: var(--rd-font-body); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--rd-line-2); color: var(--rd-text-2); background: var(--rd-tint-3); white-space: nowrap; }
body.rd .tournament-phase-badge.phase-in_progress { color: #34d399; border-color: rgba(52, 211, 153, .4); background: rgba(52, 211, 153, .12); }
body.rd .tournament-phase-badge.phase-registration { color: var(--rd-red-2); border-color: var(--rd-line-red); background: var(--rd-red-soft); }
body.rd .tournament-phase-badge.phase-finished { color: var(--rd-text-3); }

/* Мета-панель турнира (перенесена из бывшей вкладки «Общая информация»).
   Шапка становится вертикальной: строка identity сверху, мета — под ней. */
body.rd .tournament-page .club-header.tournament-header { flex-direction: column; align-items: stretch; gap: 1.1rem; }
body.rd .tournament-page .tournament-meta { display: flex; flex-direction: column; gap: 10px; }
body.rd .tournament-page .tournament-meta__desc { margin: 0; max-width: 900px; color: var(--rd-text-2); line-height: 1.6; }
/* Компактная inline-строка свойств вместо тяжёлых карточек: «метка значение · метка значение …».
   Занимает 1-2 строки, метки видны, боксов нет. */
body.rd .tournament-page .tournament-meta__grid {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 20px;
    row-gap: 8px;
}
body.rd .tournament-page .tournament-meta__item {
    display: inline-flex; align-items: baseline; gap: 7px;
    position: relative;
}
/* Тонкий разделитель-точка между пунктами */
body.rd .tournament-page .tournament-meta__item:not(:last-child)::after {
    content: "";
    position: absolute; right: -10px; top: 50%; transform: translateY(-50%);
    width: 3px; height: 3px; border-radius: 50%; background: var(--rd-text-3); opacity: .55;
}
/* Единый шрифт body для метки и значения — без резкого скачка стиля;
   иерархия мягкая: размер (12/13.5) + вес (600/700) + цвет (приглушённый/яркий). */
body.rd .tournament-page .tournament-meta__label { font-family: var(--rd-font-body); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--rd-text-3); white-space: nowrap; }
body.rd .tournament-page .tournament-meta__value { display: inline-flex; align-items: baseline; gap: .4em; font-family: var(--rd-font-body); font-weight: 700; font-size: 13.5px; color: var(--rd-text); }
body.rd .tournament-page .tournament-meta__old { text-decoration: line-through; color: var(--rd-text-3); font-weight: 400; }
body.rd .tournament-page .tournament-meta__norating { align-self: flex-start; padding: 3px 10px; border-radius: 999px; border: 1px solid var(--rd-line-2); font-size: 12px; color: var(--rd-text-3); }
body.rd .tournament-page .tournament-meta__actions { margin-top: 2px; }

/* Навигация: одна линия горизонтальных табов */
body.rd .tournament-page .club-nav { display: flex; flex-direction: column; }
body.rd .tournament-page .club-tabs { display: flex; flex-direction: row; flex-wrap: wrap; gap: .5rem; padding: .75rem 1rem; }
body.rd .tournament-page .club-tab { padding: .5rem 1rem; font-size: .9rem; font-weight: 600; border-radius: .5rem; white-space: nowrap; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
body.rd .tournament-page .club-tab:hover { background: rgba(255, 255, 255, .06); }

/* Контент: рамка-панель уже от body.rd .club-content; добавляем внутренний отступ,
   т.к. .data-wrapper на странице турнира обнулён (padding:0) правилом ниже. */
body.rd .tournament-page .club-content { padding: 24px 26px; }

@media (max-width: 720px) {
    body.rd .tournament-page .club-header { flex-direction: column; align-items: flex-start; gap: 1.25rem; }
    body.rd .tournament-page .club-stats { width: 100%; justify-content: space-between; }
}

/* Sidebar турнира */
body.rd .tournament-view .sidebar { position: sticky; top: 88px; background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line) !important; border-radius: var(--rd-radius-lg); padding: 20px; width: auto !important; box-shadow: var(--rd-shadow); }
@media (max-width: 860px) { body.rd .tournament-view .sidebar { position: static; } }
body.rd .sidebar-avatar-block { justify-content: center; }
/* Обёртка жёстко по размеру логотипа (96px), иначе флекс растягивает её на всю
   ширину сайдбара и справа появляется пустой блок, а бейдж клуба улетает в угол. */
body.rd .club-avatar-wrapper { position: relative; flex: 0 0 96px; width: 96px; height: 96px; }
body.rd .club-avatar-wrapper .club-avatar,
body.rd .club-avatar-wrapper .club-avatar img { width: 96px; height: 96px; }
body.rd .club-avatar-wrapper .club-avatar img { border-radius: 18px; object-fit: cover; border: 1px solid var(--rd-line); background: var(--rd-surface-3); }
body.rd .club-avatar-wrapper .menu-avatar { position: absolute; right: -6px; bottom: -6px; width: 34px; height: 34px; line-height: 0; }
body.rd .club-avatar-wrapper .menu-avatar a { display: block; width: 34px; height: 34px; }
body.rd .club-avatar-wrapper .menu-avatar img { width: 34px; height: 34px; border-radius: 10px; border: 2px solid var(--rd-bg-2); object-fit: cover; }
body.rd .sidebar-tournament-name { font-family: var(--rd-font-display); font-weight: 700; font-size: 20px; text-transform: uppercase; color: var(--rd-text); text-align: center; margin: 14px 0 8px; justify-content: center; line-height: 1.15; }

/* Правая колонка (контент) */
body.rd .tournament-view .w-50 { width: auto !important; background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line) !important; border-radius: var(--rd-radius-lg); padding: 26px 28px; min-width: 0; box-shadow: var(--rd-shadow); }

/* Вкладка info */
body.rd #tournament-info-data h1 { font-family: var(--rd-font-display); font-weight: 700; font-size: clamp(24px, 3vw, 34px); text-transform: uppercase; color: var(--rd-text); margin: 0 0 12px; }
body.rd .prop-line { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--rd-line); }
body.rd .prop-label { color: var(--rd-text-3); }
body.rd .prop-value { color: var(--rd-text); font-family: var(--rd-font-display); font-weight: 500; }

/* Таблицы/строки внутри турнира */
body.rd .tournament-view .content-table .table-head { color: var(--rd-text-3) !important; font-family: var(--rd-font-display); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; border-color: var(--rd-line) !important; }
body.rd .tournament-view .index-line { border-color: var(--rd-line) !important; }
body.rd .tournament-view .index-line:hover { background: var(--rd-tint-2); }
body.rd .tournament-view .user-row { border-bottom: 1px solid var(--rd-line) !important; }
body.rd .tournament-view .user-avatar img { border-radius: 12px; }
/* Участники: на широком экране — 2 колонки, на узком (<~910px) — 1 (auto-fill) */
body.rd #tournament-participants-data .data { display: grid; grid-template-columns: repeat(auto-fill, minmax(440px, 1fr)); gap: 0 36px; }
body.rd .tournament-view .win-badge { background: var(--rd-red-soft) !important; color: var(--rd-red-2) !important; }
body.rd .tournament-view .results-view-tab.active { background: var(--rd-red-soft) !important; color: var(--rd-red-2) !important; }

/* Плашки исхода игры (game-results/модалка): Мафия = чёрные (тёмная плашка),
   Мирные = красные. Двойной класс перебивает генерик body.rd .win-badge выше. */
body.rd .win-badge.win-badge--black {
    background: rgba(0, 0, 0, .5) !important;
    color: #cdc3c3 !important;
    border: 1px solid var(--rd-line-2) !important;
}
body.rd .win-badge.win-badge--red {
    background: var(--rd-red-soft) !important;
    color: var(--rd-red-2) !important;
    border: 1px solid var(--rd-line-red) !important;
}

/* Убираем чёрную плёнку rgba(0,0,0,.6) из clm.css .data-wrapper — она гасила
   тёплый градиент панели и выглядела как «мёртвый» чёрный фон. */
body.rd .tournament-view .data-wrapper { background: transparent; padding: 0; }

/* Единый заголовок всех вкладок турнира → Oswald-дисплей (как info/game-results) */
body.rd #tournament-participants-data h1,
body.rd #tournament-seating-data h1,
body.rd #tournament-judges-data h1,
body.rd #tournament-requests-data h1,
body.rd #tournament-game-results-data h1 {
    font-family: var(--rd-font-display);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .02em;
    font-size: clamp(22px, 3vw, 30px);
    color: var(--rd-text);
    margin: 0 0 6px;
}

/* ============================================================
   РАССАДКА (tournaments/seating) — body.rd.
   Плоские серые inline-стили заменены на классы, тут — премиум-тема.
   ============================================================ */
/* Заголовок дня с разделительной линией (как в игровом вечере) */
body.rd #tournament-seating-data .data-title {
    display: flex; align-items: center; gap: 12px;
    font-family: var(--rd-font-display);
    text-transform: uppercase; letter-spacing: .03em;
    color: var(--rd-red-2); font-size: 18px; font-weight: 700;
}
body.rd #tournament-seating-data .data-title::after {
    content: ''; flex: 1; height: 1px;
    background: linear-gradient(90deg, var(--rd-line-red), transparent);
}
body.rd .seating-dow { color: var(--rd-text-3); font-size: .875rem; font-weight: normal; }

/* Сетка столов: кол-во колонок задаётся инлайн-переменной --seat-cols */
/* Внешний грид: колонка на стол (2 стола → 2, 5 → 5; без капа).
   Один стол = 1 колонка на всю ширину, но его игры внутри раскладываем в 3 колонки. */
body.rd .seating-grid {
    display: grid;
    grid-template-columns: repeat(var(--seat-cols, 1), minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 28px;
    align-items: start;
}
@media (max-width: 900px) { body.rd .seating-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { body.rd .seating-grid { grid-template-columns: 1fr; } }

/* Обёртка игр внутри стола: по умолчанию (2+ столов) — колонка */
body.rd .seat-games { display: flex; flex-direction: column; gap: 12px; }

/* Один стол: шапка на всю ширину, игры — в 3 колонки, чтобы заполнить ширину */
body.rd .seating-grid--single .seat-table { grid-column: 1 / -1; }
body.rd .seating-grid--single .seat-games {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}
@media (max-width: 1000px) { body.rd .seating-grid--single .seat-games { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { body.rd .seating-grid--single .seat-games { grid-template-columns: 1fr; } }

/* Колонка стола */
body.rd .seat-table { display: flex; flex-direction: column; gap: 12px; }
body.rd .seat-table__head {
    text-align: center;
    padding: 9px 12px;
    border-radius: 12px;
    background: var(--rd-red-soft);
    border: 1px solid var(--rd-line-red);
    color: var(--rd-red-2);
    font-family: var(--rd-font-display);
    text-transform: uppercase; letter-spacing: .06em;
    font-size: 13px; font-weight: 700;
}

/* Карточка игры */
body.rd .seat-game {
    background: var(--rd-surface-2);
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius);
    overflow: hidden;
    transition: border-color .2s ease, box-shadow .2s ease;
}
body.rd .seat-game:hover { border-color: var(--rd-line-red); box-shadow: var(--rd-shadow-sm); }
body.rd .seat-game__head {
    padding: 9px 12px;
    background: var(--rd-tint-2);
    border-bottom: 1px solid var(--rd-line);
    color: var(--rd-text-2);
    font-family: var(--rd-font-display);
    text-transform: uppercase; letter-spacing: .04em;
    font-size: 12.5px; font-weight: 600;
}
body.rd .seat-players { padding: 6px 8px 8px; }

/* Строка игрока */
body.rd .seat-row {
    display: flex; align-items: center; gap: 9px;
    padding: 6px 4px;
    font-size: 13.5px;
    border-bottom: 1px solid var(--rd-line);
}
body.rd .seat-row:last-child { border-bottom: none; }

/* Номер слота */
body.rd .seat-num {
    flex-shrink: 0;
    width: 22px; height: 22px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: var(--rd-red-soft);
    border: 1px solid var(--rd-line-red);
    color: var(--rd-red-2);
    font-family: var(--rd-font-display);
    font-weight: 700; font-size: 11px;
}

/* Имя игрока / пустой слот */
body.rd .seat-name {
    flex: 1; min-width: 0;
    color: var(--rd-text); text-decoration: none;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    transition: color .16s ease;
}
body.rd .seat-name:hover { color: var(--rd-red-2); }
body.rd .seat-empty {
    flex: 1; min-width: 0;
    color: var(--rd-text-3); font-style: italic;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
body.rd .seat-row .replace-player-btn { color: var(--rd-text-3); }

/* Пустое состояние */
body.rd .seating-empty { text-align: center; padding: 54px 16px; color: var(--rd-text-3); }
body.rd .seating-empty .material-symbols-outlined { font-size: 4rem; opacity: .5; }
body.rd .seating-empty__title { margin-top: 1rem; font-size: 1.125rem; color: var(--rd-text-2); font-family: var(--rd-font-display); }
body.rd .seating-empty__hint { margin-top: .5rem; font-size: .875rem; }

/* ============================================================
   AUTH (вход/регистрация/сброс пароля) — body.rd.
   Переопределяем login.css (грузится постранично, после redesign.css),
   поэтому селекторы с префиксом body.rd — на класс специфичнее.
   ============================================================ */
body.rd .auth-container {
    max-width: 440px;
    margin: 56px auto;
    padding: 36px 32px;
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius-lg);
    box-shadow: var(--rd-shadow);
    color: var(--rd-text);
    font-weight: 400;
}
body.rd .auth-container .logo img { display: block; width: 72px; margin: 0 auto 22px; }

/* Вкладки Вход/Регистрация */
body.rd .auth-container .auth-tabs {
    display: flex; gap: 4px;
    background: var(--rd-surface-3);
    border: 1px solid var(--rd-line);
    border-radius: 999px;
    padding: 5px; margin-bottom: 26px;
}
body.rd .auth-container .auth-tabs .tab {
    flex: 1; border: 0; background: transparent; border-radius: 999px;
    padding: 10px 0; cursor: pointer;
    font-family: var(--rd-font-display); font-weight: 600; font-size: 13px;
    letter-spacing: .04em; text-transform: uppercase; color: var(--rd-text-2);
    transition: background-color .2s ease, color .2s ease;
}
body.rd .auth-container .auth-tabs .tab a,
body.rd .auth-container .auth-tabs .tab a:visited { color: inherit; text-decoration: none; }
body.rd .auth-container .auth-tabs .tab.active { background: var(--rd-grad-red); color: #fff; box-shadow: 0 4px 14px var(--rd-red-glow); }

/* Поля ввода */
body.rd .auth-container .auth-form label,
body.rd .auth-container label {
    display: block; margin: 14px 0 7px;
    font-family: var(--rd-font-display); font-size: 12px;
    letter-spacing: .06em; text-transform: uppercase; color: var(--rd-text-3);
}
body.rd .auth-container .auth-form input[type="text"],
body.rd .auth-container .auth-form input[type="email"],
body.rd .auth-container .auth-form input[type="password"],
body.rd .auth-container .password-wrapper input,
body.rd .auth-container input[type="text"],
body.rd .auth-container input[type="email"],
body.rd .auth-container input[type="password"] {
    width: 100%; height: 46px; box-sizing: border-box;
    margin: 0 0 4px; padding: 8px 14px;
    background: var(--rd-surface-3); color: var(--rd-text);
    border: 1px solid var(--rd-line); border-radius: 12px;
    font-size: 15px; font-family: var(--rd-font-body);
    transition: border-color .2s ease, box-shadow .2s ease;
}
body.rd .auth-container .password-wrapper input { padding-right: 42px; }
body.rd .auth-container input::placeholder { color: var(--rd-text-3); }
body.rd .auth-container input:focus { outline: none; border-color: var(--rd-line-red); box-shadow: 0 0 0 3px var(--rd-red-soft); }
body.rd .auth-container .password-wrapper { position: relative; margin-bottom: 4px; }
body.rd .auth-container .toggle-password { position: absolute; top: 23px; right: 14px; width: 20px; height: 20px; opacity: .55; cursor: pointer; filter: invert(1); }
body.rd .auth-container .field-error { display: block; margin: 2px 0 6px; color: var(--rd-red-2); font-size: 13px; }

/* --- Автозаполнение браузера: гасим светлый системный фон Chrome/Safari ---
   background напрямую перебить нельзя — заливаем тёмным через inset box-shadow. */
body.rd input:-webkit-autofill,
body.rd input:-webkit-autofill:hover,
body.rd input:-webkit-autofill:focus,
body.rd input:-webkit-autofill:active,
body.rd textarea:-webkit-autofill,
body.rd select:-webkit-autofill,
body.rd-admin input:-webkit-autofill,
body.rd-admin input:-webkit-autofill:hover,
body.rd-admin input:-webkit-autofill:focus,
body.rd-admin textarea:-webkit-autofill,
body.rd-admin select:-webkit-autofill {
    -webkit-text-fill-color: var(--rd-text) !important;
    -webkit-box-shadow: 0 0 0 1000px var(--rd-surface-3) inset !important;
    box-shadow: 0 0 0 1000px var(--rd-surface-3) inset !important;
    caret-color: var(--rd-text);
    border-color: var(--rd-line) !important;
    /* Отодвигаем момент, когда браузер применит свой цвет фона */
    transition: background-color 9999s ease-out 0s !important;
}

/* Кнопка отправки */
body.rd .auth-container .submit-btn {
    width: 100%; height: 48px; margin-top: 20px;
    background: var(--rd-grad-red); color: #fff; border: 0; border-radius: 12px;
    font-family: var(--rd-font-display); font-weight: 600; font-size: 15px;
    letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
    box-shadow: 0 6px 20px var(--rd-red-glow);
    transition: transform .15s ease, box-shadow .2s ease;
}
body.rd .auth-container .submit-btn:hover { transform: translateY(-1px); }
body.rd .auth-container .submit-btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }

/* Забыли пароль + разделитель + соц-кнопки */
body.rd .auth-container .form-footer { display: flex; justify-content: flex-end; margin: 16px 0 6px; font-size: 14px; }
body.rd .auth-container .forgot-link { color: var(--rd-red-2); text-decoration: none; }
body.rd .auth-container .forgot-link:hover { text-decoration: underline; }
body.rd .auth-container .divider { position: relative; margin: 22px 0; text-align: center; color: var(--rd-text-3); font-size: 13px; }
body.rd .auth-container .divider::before,
body.rd .auth-container .divider::after { content: ''; position: absolute; top: 50%; width: 42%; height: 1px; background: var(--rd-line); }
body.rd .auth-container .divider::before { left: 0; }
body.rd .auth-container .divider::after { right: 0; }
body.rd .auth-container .divider span { position: relative; z-index: 1; padding: 0 12px; background: transparent; }
body.rd .auth-container .social-btn {
    width: 100%; height: 46px; margin-bottom: 10px;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    background: var(--rd-surface-3); color: var(--rd-text);
    border: 1px solid var(--rd-line); border-radius: 12px;
    font-family: var(--rd-font-body); font-weight: 500; cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease;
}
body.rd .auth-container .social-btn:hover { border-color: var(--rd-line-red); background: var(--rd-red-soft2); }
body.rd .auth-container .social-icon { width: 22px; height: 22px; object-fit: contain; }

/* Простые уведомления auth (письмо отправлено и т.п.) */
body.rd .rd-auth-note {
    max-width: 440px; margin: 56px auto; padding: 34px 32px; text-align: center;
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line); border-radius: var(--rd-radius-lg); box-shadow: var(--rd-shadow);
    color: var(--rd-text-2); line-height: 1.6;
}
body.rd .rd-auth-note .material-symbols-outlined { font-size: 46px; color: var(--rd-red-2); margin-bottom: 12px; }
body.rd .rd-auth-note h1 { font-family: var(--rd-font-display); text-transform: uppercase; letter-spacing: .03em; font-size: 22px; color: var(--rd-text); margin-bottom: 10px; }
body.rd .rd-auth-note p { color: var(--rd-text-2); margin-bottom: 22px; }
body.rd .rd-auth-note .auth-form { max-width: none; }
/* Кнопка подтверждения (например «Выйти») — премиум-стиль, компактная по центру */
body.rd .rd-auth-note .submit-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 170px; height: 46px; padding: 0 30px;
    background: var(--rd-grad-red); color: #fff; border: 0; border-radius: 12px;
    font-family: var(--rd-font-display); font-weight: 600; font-size: 14px;
    letter-spacing: .05em; text-transform: uppercase; cursor: pointer;
    box-shadow: 0 6px 20px var(--rd-red-glow);
    transition: transform .15s ease, box-shadow .2s ease;
}
body.rd .rd-auth-note .submit-btn:hover { transform: translateY(-1px); }
body.rd .rd-auth-note .form-footer { display: flex; justify-content: center; margin-top: 14px; font-size: 14px; }
body.rd .rd-auth-note .forgot-link { color: var(--rd-text-3); text-decoration: none; transition: color .2s ease; }
body.rd .rd-auth-note .forgot-link:hover { color: var(--rd-red-2); }

/* ============================================================
   ERROR pages (404/403/419/503) — body.rd.rd-error
   ============================================================ */
body.rd.rd-error .content-layout { min-height: calc(100vh - var(--rd-header-h) - 140px); display: flex; align-items: center; justify-content: center; }
body.rd .rd-error { max-width: 560px; margin: 0 auto; padding: 60px 24px; text-align: center; }
body.rd .rd-error__code {
    font-family: var(--rd-font-display); font-weight: 700; line-height: .9;
    font-size: clamp(88px, 18vw, 168px);
    background: var(--rd-grad-text); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
body.rd .rd-error__title { margin: 12px 0 10px; font-family: var(--rd-font-display); font-weight: 600; font-size: 26px; letter-spacing: .04em; text-transform: uppercase; color: var(--rd-text); }
body.rd .rd-error__text { margin-bottom: 28px; color: var(--rd-text-2); font-size: 16px; }

/* ============================================================
   Правовые/текстовые страницы — body.rd.rd-legal
   ============================================================ */
body.rd .rd-legal { max-width: 820px; margin: 0 auto; padding: 44px 24px 72px; }
body.rd .rd-legal h1 { font-family: var(--rd-font-display); font-weight: 700; text-transform: uppercase; letter-spacing: .02em; font-size: 30px; color: var(--rd-text); margin-bottom: 18px; }
body.rd .rd-legal h2 { font-family: var(--rd-font-display); font-weight: 600; font-size: 20px; color: var(--rd-text); margin: 26px 0 10px; }
body.rd .rd-legal p, body.rd .rd-legal li { color: var(--rd-text-2); line-height: 1.75; font-size: 16px; }
body.rd .rd-legal a { color: var(--rd-red-2); }
body.rd .rd-legal ul { padding-left: 22px; margin: 10px 0; }

/* ============================================================
   Командный турнир (tournaments/teams/index) — body.rd.
   Переопределяем инлайновый <style> партиала (специфичность body.rd выше).
   ============================================================ */
body.rd .tournament-banner > .flex-row h1,
body.rd .unassigned-section h2 { font-family: var(--rd-font-display); text-transform: uppercase; letter-spacing: .02em; color: var(--rd-text); }
body.rd .team-card { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line); border-radius: var(--rd-radius); padding: 18px; }
body.rd .team-header { border-bottom: 1px solid var(--rd-line); }
body.rd .team-header h3 { font-family: var(--rd-font-display); text-transform: uppercase; letter-spacing: .02em; color: var(--rd-text); }
body.rd .captain-badge { color: var(--rd-text-3); }
body.rd .team-count { font-family: var(--rd-font-display); border-radius: 999px; }
body.rd .team-count.full { background: var(--rd-red-soft); color: var(--rd-red-2); }
body.rd .team-count.incomplete { background: rgba(255, 255, 255, .06); color: var(--rd-text-2); }
body.rd .member-row span { color: var(--rd-text); }
body.rd .team-actions { border-top: 1px solid var(--rd-line); }
body.rd .info-panel,
body.rd .unassigned-section,
body.rd .player-create-form { background: var(--rd-surface-2); border: 1px solid var(--rd-line); border-radius: var(--rd-radius); }
body.rd .info-panel p { color: var(--rd-text-2); }
body.rd .info-panel strong { color: var(--rd-text); }
body.rd .participant-chip { background: var(--rd-surface-3); border: 1px solid var(--rd-line); border-radius: 999px; color: var(--rd-text-2); }
body.rd .player-create-form .styled-input { background: var(--rd-surface-3); border: 1px solid var(--rd-line); border-radius: 10px; color: var(--rd-text); }
body.rd .player-create-form .styled-input:focus { outline: none; border-color: var(--rd-line-red); box-shadow: 0 0 0 3px var(--rd-red-soft); }
body.rd .team-card .user-avatar.small img,
body.rd .participant-chip .user-avatar.small img { border-radius: 50%; }

/* ============================================================
   ДИЗАЙН 5 — доработки: рейтинги клуба, награды, бейджи, меню
   ============================================================ */

/* --- Вкладка «Рейтинги» клуба (таблица) --- */
body.rd #club-ratings-data { padding: 4px 2px; }
body.rd .rd-rtl { --rt-cols: minmax(0, 1fr) 64px 68px 84px; display: flex; flex-direction: column; }
body.rd .rd-rtl.rd-rtl--manage { --rt-cols: minmax(0, 1fr) 64px 68px 84px 152px; }
body.rd .rd-rtl__head {
    display: grid; grid-template-columns: var(--rt-cols); align-items: center; gap: 12px;
    padding: 4px 18px 12px; border-bottom: 1px solid var(--rd-line);
    font-family: var(--rd-font-display); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--rd-text-3);
}
body.rd .rd-rtl__row {
    display: grid; grid-template-columns: var(--rt-cols); align-items: center; gap: 12px;
    padding: 14px 18px; border-radius: 12px; position: relative;
    transition: background-color .18s ease;
}
body.rd .rd-rtl__row + .rd-rtl__row { margin-top: 2px; }
body.rd .rd-rtl__row:hover { background: var(--rd-tint); }
body.rd .rd-rtl__row--featured { background: linear-gradient(90deg, var(--rd-red-soft2), transparent 70%); box-shadow: inset 2px 0 0 var(--rd-red-2); }
body.rd .rd-rtl__c-num { text-align: center; }
body.rd .rd-rtl__c-act { text-align: right; }
body.rd .rd-rtl__name { display: flex; align-items: center; gap: 10px; min-width: 0; }
body.rd .rd-rtl__name a {
    font-family: var(--rd-font-display); font-weight: 500; font-size: 16px; color: var(--rd-text);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .16s ease;
}
body.rd .rd-rtl__name a:hover { color: var(--rd-red-2); }
body.rd .rd-rtl__badge {
    flex-shrink: 0; display: inline-flex; align-items: center; height: 19px; padding: 0 8px; border-radius: 6px;
    font-family: var(--rd-font-display); font-weight: 700; font-size: 10px; letter-spacing: .06em; text-transform: uppercase;
    color: var(--rd-red-2); background: var(--rd-red-soft); border: 1px solid var(--rd-line-red);
}
body.rd .rd-rtl__val { font-family: var(--rd-font-display); font-weight: 700; font-size: 16px; color: var(--rd-text); }
body.rd .rd-rtl__val--muted { font-weight: 500; color: var(--rd-text-2); }
body.rd .rd-rtl__vlabel { display: none; }
body.rd .rd-rtl__star { display: flex; justify-content: center; }
body.rd .rd-rtl__star-btn { font-size: 22px; color: #4a4142; transition: color .16s ease, transform .16s ease; }
body.rd .rd-rtl__star-btn.is-active { color: #f5b301; }
body.rd span.rd-rtl__star-btn:not(.is-active):hover { color: #f5b301; cursor: pointer; transform: scale(1.12); }
body.rd .rd-rtl__actions { display: flex; justify-content: flex-end; gap: 8px; }
body.rd .rd-rtl-pagination { margin-top: 14px; display: flex; justify-content: center; }
body.rd .rd-rtl-footer { display: flex; justify-content: flex-end; margin-top: 18px; }
body.rd .rd-rtl-empty { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 54px 16px; color: var(--rd-text-3); }
body.rd .rd-rtl-empty .material-symbols-outlined { font-size: 44px; opacity: .5; }
body.rd .rd-rtl-empty p { margin: 0; font-size: 15px; }
/* Кнопка создания в пустом состоянии — отступ сверху от текста */
body.rd .rd-rtl-empty .rd-rtl-create { margin-top: 10px; }
body.rd .rd-rtl-create {
    display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 20px; border: 0; border-radius: 12px; cursor: pointer;
    background: var(--rd-grad-red); color: #fff;
    font-family: var(--rd-font-display); font-weight: 700; font-size: 13px; letter-spacing: .04em; text-transform: uppercase;
    box-shadow: 0 6px 18px -6px var(--rd-red-glow); transition: transform .16s ease, box-shadow .16s ease;
}
body.rd .rd-rtl-create:hover { transform: translateY(-2px); box-shadow: 0 10px 26px -8px var(--rd-red-glow); }
/* clm.css задаёт .material-symbols-outlined { display: inherit !important }, из-за чего
   иконка внутри inline-flex кнопки сама становится flex-контейнером и «съезжает». Возвращаем inline-block. */
body.rd .rd-rtl-create .material-symbols-outlined { display: inline-block !important; font-size: 20px; }

@media (max-width: 640px) {
    body.rd .rd-rtl__head { display: none; }
    body.rd .rd-rtl__row, body.rd .rd-rtl.rd-rtl--manage .rd-rtl__row { grid-template-columns: 1fr auto; row-gap: 10px; padding: 14px; }
    body.rd .rd-rtl__name { grid-column: 1 / -1; }
    body.rd .rd-rtl__c-num, body.rd .rd-rtl__star { text-align: left; justify-content: flex-start; }
    body.rd .rd-rtl__vlabel { display: inline; margin-right: 6px; color: var(--rd-text-3); font-family: var(--rd-font-display); font-size: 11px; text-transform: uppercase; letter-spacing: .05em; }
    body.rd .rd-rtl__c-act { grid-column: 1 / -1; }
    body.rd .rd-rtl__actions { justify-content: flex-start; }
}

/* --- Модалка создания рейтинга + поля/кнопки --- */
body.rd .rd-modal-overlay { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(6, 3, 4, .72); backdrop-filter: blur(4px); }
body.rd .rd-modal { width: 100%; max-width: 460px; background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line-2); border-radius: var(--rd-radius-lg); box-shadow: var(--rd-shadow); overflow: hidden; }
body.rd .rd-modal__head { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; border-bottom: 1px solid var(--rd-line); }
body.rd .rd-modal__title { margin: 0; font-family: var(--rd-font-display); font-weight: 700; font-size: 18px; text-transform: uppercase; letter-spacing: .02em; color: var(--rd-text); }
body.rd .rd-modal__close { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid var(--rd-line); border-radius: 9px; background: var(--rd-surface-3); color: var(--rd-text-2); font-size: 20px; cursor: pointer; transition: color .16s ease, border-color .16s ease, background-color .16s ease; }
body.rd .rd-modal__close:hover { color: var(--rd-red-2); border-color: var(--rd-line-red); background: var(--rd-red-soft); }
body.rd .rd-modal__body { padding: 22px; display: flex; flex-direction: column; gap: 16px; }
body.rd .rd-modal__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }
body.rd .rd-field { display: flex; flex-direction: column; gap: 7px; }
body.rd .rd-field label { font-family: var(--rd-font-display); font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: var(--rd-text-2); }
body.rd .rd-field__hint { margin: 0; font-size: 12.5px; color: var(--rd-text-3); line-height: 1.5; }
body.rd .rd-input { width: 100%; height: 44px; padding: 0 14px; background: var(--rd-surface-3); border: 1px solid var(--rd-line-2); border-radius: 10px; color: var(--rd-text); font-family: var(--rd-font-body); font-size: 15px; transition: border-color .16s ease, box-shadow .16s ease; }
body.rd .rd-input::placeholder { color: var(--rd-text-3); }
body.rd .rd-input:focus { outline: none; border-color: var(--rd-line-red); box-shadow: 0 0 0 3px var(--rd-red-soft); }
body.rd .rd-btn { display: inline-flex; align-items: center; justify-content: center; height: 42px; padding: 0 20px; border-radius: 10px; border: 1px solid transparent; cursor: pointer; font-family: var(--rd-font-display); font-weight: 600; font-size: 13px; letter-spacing: .03em; text-transform: uppercase; transition: transform .16s ease, box-shadow .16s ease, color .16s ease, border-color .16s ease; }
body.rd .rd-btn--primary { background: var(--rd-grad-red); color: #fff; box-shadow: 0 6px 18px -6px var(--rd-red-glow); }
body.rd .rd-btn--primary:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -8px var(--rd-red-glow); }
body.rd .rd-btn--ghost { background: var(--rd-surface-3); border-color: var(--rd-line-2); color: var(--rd-text-2); }
body.rd .rd-btn--ghost:hover { color: var(--rd-text); border-color: var(--rd-line-red); }

/* --- Бейдж «Участник» рядом с названием клуба (в стиле VIP) --- */
body.rd .club-member-tag { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 6px; background: rgba(60, 200, 138, .14); border: 1px solid rgba(60, 200, 138, .4); color: #46d39a; font-family: var(--rd-font-display); font-weight: 700; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; white-space: nowrap; line-height: 1; }
body.rd .club-member-tag .material-symbols-outlined { font-size: 15px; }

/* --- Награды: премиальные чипы вместо PNG поверх аватара --- */
/* Скрываем старую раскладку значков-картинок (страницы результатов вне охвата правок) */
body.rd .award-badges { display: none !important; }
body.rd .rd-awards { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 5px; }
body.rd .rd-award { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 8px; border-radius: 6px; border: 1px solid transparent; font-family: var(--rd-font-display); font-weight: 700; font-size: 10.5px; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
body.rd .rd-award .material-symbols-outlined { font-size: 13px; line-height: 1; }
body.rd .rd-award svg { width: 13px; height: 13px; display: block; flex-shrink: 0; }
body.rd .rd-award--mvp { color: #2a1c05; background: linear-gradient(135deg, #ffd76a, #e8a423); border-color: rgba(255, 215, 106, .5); box-shadow: 0 2px 8px -2px rgba(232, 164, 35, .5); }
body.rd .rd-award--red { color: #fff; background: var(--rd-grad-red); box-shadow: 0 2px 8px -2px var(--rd-red-glow); }
body.rd .rd-award--black { color: #e6e6ea; background: linear-gradient(135deg, #3b3b40, #17171a); border-color: rgba(255, 255, 255, .18); }
/* Подсветка всей строки игрока-обладателя награды */
body.rd .rd-award-row { position: relative; }
body.rd .rd-award-row::after { content: ""; position: absolute; left: 0; top: 6px; bottom: 6px; width: 3px; border-radius: 3px; pointer-events: none; }
body.rd .rd-award-row--mvp { background: linear-gradient(90deg, rgba(232, 164, 35, .09), transparent 55%); }
body.rd .rd-award-row--mvp::after { background: linear-gradient(180deg, #ffd76a, #e8a423); }
body.rd .rd-award-row--red { background: linear-gradient(90deg, var(--rd-red-soft2), transparent 55%); }
body.rd .rd-award-row--red::after { background: var(--rd-grad-red); }
body.rd .rd-award-row--black { background: linear-gradient(90deg, rgba(255, 255, 255, .035), transparent 55%); }
body.rd .rd-award-row--black::after { background: linear-gradient(180deg, #57575c, #26262a); }
/* Имя игрока + чипы наград — в колонку */
body.rd .user-details:has(.rd-awards),
body.rd .cr-col-name:has(.rd-awards) { display: flex; flex-direction: column; align-items: flex-start; gap: 0; justify-content: center; }
/* Отступ номера строки, чтобы полоса-акцент награды не налезала на цифру */
body.rd .user-row > .w-1,
body.rd .user-row > .cr-col-num { padding-left: 14px; }

/* В таблице результатов турнира имя + чипы наград — в один ряд (ширины хватает),
   чипы не переносятся. id даёт бóльшую специфичность, чем правило-колонка выше.
   Ширину/flex колонки не трогаем — иначе строки с наградами уезжают вбок. */
body.rd #tournament-results-data .user-details:has(.rd-awards) {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
}
body.rd #tournament-results-data .user-details .rd-awards { margin-top: 0; flex-wrap: nowrap; }

/* --- Таблица клубного рейтинга (вкладка «Таблица») — премиум grid во всю ширину --- */
body.rd .cr-rating-table { width: 100%; display: flex; flex-direction: column; }
/* 7 колонок: № · аватар · игрок(растягивается) · ср.тотал · ср.допы · П/И · CI */
body.rd .cr-rating-table .club-rating-row {
    display: grid;
    grid-template-columns: 46px 60px minmax(0, 1fr) 128px 128px 92px 84px;
    align-items: center; gap: 12px; position: relative;
    padding: 13px 20px; border-radius: 12px;
    transition: background-color .18s ease;
}
/* Снимаем старые flex-ширины колонок — размер задаёт grid */
body.rd .cr-rating-table .cr-col,
body.rd .cr-rating-table .cr-col-lg,
body.rd .cr-rating-table .cr-col-num,
body.rd .cr-rating-table .cr-col-avatar,
body.rd .cr-rating-table .cr-col-name { width: auto; }
/* Шапка (первая строка) */
body.rd .cr-rating-table > .club-rating-row:first-child {
    padding: 4px 20px 12px; border-bottom: 1px solid var(--rd-line); border-radius: 0;
    font-family: var(--rd-font-display); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--rd-text-3);
}
body.rd .cr-rating-table > .club-rating-row:first-child:hover { background: none; }
body.rd .cr-rating-table > .club-rating-row:first-child .header-with-help { color: var(--rd-text-3); font-weight: 400; }
/* Строки данных */
body.rd .cr-rating-table > .club-rating-row:not(:first-child) + .club-rating-row { margin-top: 2px; }
body.rd .cr-rating-table > .club-rating-row:not(:first-child):hover { background: var(--rd-tint); }
/* Имя игрока в таблицах (инлайн-стили blade задают #fff и оранжевый hover) —
   переводим на токены: работает и в тёмной, и в светлой теме */
body.rd .player-name-link { color: var(--rd-text); }
body.rd .player-name-link:hover { color: var(--rd-red-2); }
/* Бейджи ролей участников клуба: в blade захардкожен чужой голубой #90caf9 —
   переводим на фирменную гамму; золото главы клуба сохраняем */
body.rd .role-badge { color: var(--rd-red-2); border-color: var(--rd-line-2); background: var(--rd-tint-2); }
body.rd .role-badge-owner { color: #ffd54f; border-color: rgba(255, 213, 79, .3); background: rgba(255, 213, 79, .08); }
body.rd .cr-rating-table .cr-col-num { padding-left: 0; text-align: center; font-family: var(--rd-font-display); font-weight: 600; font-size: 16px; color: var(--rd-text-3); }
body.rd .cr-rating-table .cr-col-avatar { display: flex; justify-content: center; }
body.rd .cr-rating-table .cr-col-avatar .user-avatar { width: 46px; height: 46px; }
body.rd .cr-rating-table .cr-col-avatar img { width: 46px; height: 46px; border-radius: 13px; object-fit: cover; border: 1px solid var(--rd-line); background: var(--rd-surface-3); }
body.rd .cr-rating-table .cr-col-name a { font-family: var(--rd-font-display); font-weight: 500; font-size: 16px; }
/* Числовые колонки */
body.rd .cr-rating-table .cr-col { font-family: var(--rd-font-display); font-weight: 600; font-size: 15px; color: var(--rd-text-2); }
body.rd .cr-rating-table .cr-col-lg { color: var(--rd-text); }
body.rd .cr-rating-table > .club-rating-row:not(:first-child) .cr-col-lg:nth-of-type(1) strong { font-size: 19px; font-weight: 700; color: var(--rd-text); }
/* Разделитель «ниже порога» */
body.rd .cr-rating-table .threshold-separator { display: flex; padding: 16px 0 12px; }
body.rd .cr-rating-table .threshold-separator .w-100 { color: var(--rd-text-3); font-style: normal; font-family: var(--rd-font-display); font-size: 11.5px; text-transform: uppercase; letter-spacing: .08em; }
body.rd .cr-rating-table .below-threshold { opacity: .55; }
/* Мобильная адаптация — горизонтальный скролл цельной таблицы */
@media (max-width: 760px) {
    body.rd .cr-rating-table { overflow-x: auto; }
    body.rd .cr-rating-table .club-rating-row { min-width: 620px; }
}

/* --- Боковое меню турнира: аккуратный активный пункт (без торчащей полосы) --- */
body.rd .sidebar-menu-item { transition: background-color .18s ease, color .18s ease, box-shadow .18s ease; }
body.rd .sidebar-menu-item::before { display: none; }
body.rd .sidebar-menu-item:hover { box-shadow: inset 3px 0 0 rgba(255, 90, 77, .5); }
body.rd .sidebar-menu-item.active { background: linear-gradient(90deg, rgba(255, 59, 59, .16), rgba(255, 59, 59, .04)); box-shadow: inset 3px 0 0 var(--rd-red-2); }
body.rd .sidebar-menu-item.active .sidebar-menu-icon { color: var(--rd-red-2); opacity: 1; }

/* --- Админ-меню (дашборд): вариант «карточки-строки», только body.rd-admin --- */
/* Контейнер без общей рамки — каждый пункт стоит отдельной плашкой */
body.rd-admin .sidebar-menu-items { background: none; border: 0; padding: 0; gap: 10px; }
/* Пункт = карточка: фон, рамка, лёгкая тень, обычный регистр текста */
body.rd-admin .sidebar-menu-item {
    height: auto;
    padding: 13px 15px;
    gap: 13px;
    border: 1px solid var(--rd-line) !important;
    border-radius: 14px;
    background: linear-gradient(180deg, var(--rd-surface-3), var(--rd-surface-2));
    box-shadow: var(--rd-shadow-sm);
    color: var(--rd-text-2);
    font-size: 14px;
    text-transform: none;
    letter-spacing: 0;
    transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}
/* Убираем боковую полоску-акцент из общего слоя */
body.rd-admin .sidebar-menu-item::before { display: none !important; }
body.rd-admin .sidebar-menu-item .sidebar-menu-icon { color: var(--rd-text-3); opacity: 1; transition: color .18s ease; }
/* Hover: плашка чуть приподнимается, рамка светлее */
body.rd-admin .sidebar-menu-item:hover {
    border: 1px solid var(--rd-line-2) !important;
    background: linear-gradient(180deg, #2d2124, var(--rd-surface-3));
    box-shadow: 0 12px 28px -16px rgba(0, 0, 0, .9);
    color: var(--rd-text);
}
body.rd-admin .sidebar-menu-item:hover .sidebar-menu-icon { color: var(--rd-text); }
/* Активная плашка: красная рамка + мягкое свечение + красная иконка */
body.rd-admin .sidebar-menu-item.active {
    border: 1px solid var(--rd-line-red) !important;
    background: linear-gradient(135deg, rgba(255, 59, 59, .14), rgba(255, 59, 59, .03));
    box-shadow: 0 0 0 1px var(--rd-line-red), 0 14px 34px -16px var(--rd-red-glow);
    color: var(--rd-text);
}
body.rd-admin .sidebar-menu-item.active .sidebar-menu-icon { color: var(--rd-red-2); opacity: 1; }
/* Шеврон: тихий, ярче на hover/active */
body.rd-admin .sidebar-menu-chevron { opacity: .35; }
body.rd-admin .sidebar-menu-item:hover .sidebar-menu-chevron { opacity: .6; }
body.rd-admin .sidebar-menu-item.active .sidebar-menu-chevron { color: var(--rd-red-2); opacity: .8; }

/* --- Мобильный аккордеон sidebar-меню (профиль игрока + админка) ---------
   На ≤768 clm.css делает список position:absolute, а redesign форсил его
   открытым (display:flex !important) и прятал кнопку-триггер → меню теряло
   поток и налезало на контент. Возвращаем штатный дропдаун: кнопка +
   раскрытие по классу .open (JS в player-profile.js и sidebar.blade.php). */
@media (max-width: 768px) {
    body.rd .sidebar-menu-wrapper { position: relative; }

    /* Кнопка-триггер: премиум-поверхность вместо светлой из clm.css */
    body.rd .sidebar-menu-trigger {
        display: flex;
        align-items: center;
        gap: 10px;
        width: 100%;
        padding: 12px 14px;
        background: linear-gradient(180deg, var(--rd-surface-3), var(--rd-surface-2));
        border: 1px solid var(--rd-line);
        border-radius: 12px;
        color: var(--rd-text);
        font-family: var(--rd-font-display);
        font-weight: 600;
        font-size: 14px;
        text-transform: uppercase;
        letter-spacing: .02em;
        cursor: pointer;
    }
    body.rd .sidebar-menu-trigger .sidebar-menu-icon { font-size: 20px; color: var(--rd-red-2); }
    body.rd .sidebar-menu-trigger-label { flex: 1; text-align: left; }
    body.rd .sidebar-menu-trigger-arrow { color: var(--rd-text-3); transition: transform .2s ease; }
    body.rd .sidebar-menu-trigger.open .sidebar-menu-trigger-arrow { transform: rotate(180deg); }

    /* Список: скрытый дропдаун, absolute под кнопкой, поверх контента */
    body.rd .sidebar-menu-items {
        display: none !important;
        position: absolute;
        top: calc(100% + 6px);
        left: 0;
        right: 0;
        z-index: 200;
        background: var(--rd-surface-2) !important;
        border: 1px solid var(--rd-line) !important;
        border-radius: 12px !important;
        padding: 8px !important;
        box-shadow: 0 16px 40px -12px rgba(0, 0, 0, .7);
    }
    body.rd .sidebar-menu-items.open { display: flex !important; }
}

/* --- Админ-панель (дашборд): меню + контент цельной панелью на всю ширину --- */
/* Тянем контейнер на всю ширину монитора, оставляя лёгкие поля по краям */
body.rd-admin .content-layout { padding: 20px clamp(14px, 2vw, 36px) 56px; }
/* Меню и контент — одна панель: общий фон, рамка, скругление, без зазора */
body.rd-admin .dashboard-view {
    width: 100%;
    gap: 0;
    align-items: stretch;                 /* меню и контент одной высоты */
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line);
    border-radius: var(--rd-radius-lg);
    box-shadow: var(--rd-shadow);
}
/* Сайдбар — левая секция панели, без своей карточки, разделитель справа */
body.rd-admin .dashboard-view > .sidebar {
    flex: 0 0 20rem;
    max-width: 20rem;
    background: transparent;
    border: 0;
    border-right: 1px solid var(--rd-line);
    border-radius: 0;
    box-shadow: none;
    padding: 18px;
}
/* Контент — правая секция: занимает всё место, без карточки и без лимита ширины */
body.rd-admin .dashboard-view > .sidebar + * {
    flex: 1;
    min-width: 0;
    max-width: none !important;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    margin: 0;
    padding: 20px 26px;
    align-items: stretch;                 /* таблицы/блоки на всю ширину секции */
    overflow-x: auto;                     /* широкие таблицы скроллятся внутри */
}
/* Мобилка: панель складывается в колонку — разделитель снизу вместо правого */
@media (max-width: 768px) {
    body.rd-admin .content-layout { padding: 12px 10px 40px; }
    body.rd-admin .dashboard-view { border-radius: var(--rd-radius); }
    body.rd-admin .dashboard-view > .sidebar {
        flex: none;
        border-right: 0;
        border-bottom: 1px solid var(--rd-line);
        padding: 14px;
    }
    body.rd-admin .dashboard-view > .sidebar + * { padding: 16px; }
}

/* --- Премиум-чекбоксы (красный градиент + анимированная галочка) --- */
body.rd input[type="checkbox"] {
    appearance: none; -webkit-appearance: none; margin: 0;
    width: 20px; height: 20px; flex-shrink: 0;
    display: inline-grid; place-content: center; vertical-align: middle;
    border: 1.5px solid var(--rd-line-2); border-radius: 6px;
    background: var(--rd-surface-3); cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
/* Белая галочка через clip-path, «выезжает» при отметке */
body.rd input[type="checkbox"]::before {
    content: ""; width: 12px; height: 12px; background: #fff;
    transform: scale(0); transform-origin: center;
    transition: transform .16s cubic-bezier(.4, 0, .2, 1);
    clip-path: polygon(14% 44%, 0 65%, 50% 100%, 100% 16%, 80% 0%, 43% 62%);
}
body.rd input[type="checkbox"]:hover { border-color: var(--rd-line-red); }
body.rd input[type="checkbox"]:checked {
    background: var(--rd-grad-red); border-color: transparent;
    box-shadow: 0 2px 10px -2px var(--rd-red-glow);
}
body.rd input[type="checkbox"]:checked::before { transform: scale(1); }
body.rd input[type="checkbox"]:focus-visible { outline: none; box-shadow: 0 0 0 3px var(--rd-red-soft); }
body.rd input[type="checkbox"]:disabled { opacity: .45; cursor: not-allowed; }
/* Промежуточное состояние — красная полоса вместо галочки */
body.rd input[type="checkbox"]:indeterminate { background: var(--rd-grad-red); border-color: transparent; }
body.rd input[type="checkbox"]:indeterminate::before { clip-path: none; width: 10px; height: 2px; border-radius: 1px; transform: scale(1); }

/* ============================================================
   ДИЗАЙН 6 — ЕДИНЫЕ ФОРМЫ И МОДАЛКИ (фронт, body.rd)
   Портировано из premium admin-слоя + доработки (popup, датапикер,
   нативные select, switch, radio). Один визуальный язык на весь сайт.
   ============================================================ */

/* --- Поля ввода: input / textarea / select / .styled-input / .form-control --- */
body.rd input[type="text"],
body.rd input[type="email"],
body.rd input[type="password"],
body.rd input[type="number"],
body.rd input[type="search"],
body.rd input[type="url"],
body.rd input[type="tel"],
body.rd input[type="date"],
body.rd input[type="datetime-local"],
body.rd input[type="time"],
body.rd textarea,
body.rd select,
body.rd .styled-input,
body.rd .input-block .styled-input,
body.rd .form-control {
    width: 100%; box-sizing: border-box;
    min-height: 48px; height: auto; padding: 12px 14px;
    background-color: var(--rd-surface-3);
    border: 1px solid var(--rd-line-2);
    border-radius: 12px;
    color: var(--rd-text);
    font-family: var(--rd-font-body); font-size: 15px;
    outline: none;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
body.rd input::placeholder,
body.rd textarea::placeholder,
body.rd .styled-input::placeholder { color: var(--rd-text-3); }
body.rd input:focus,
body.rd textarea:focus,
body.rd select:focus,
body.rd .styled-input:focus,
body.rd .form-control:focus {
    border-color: var(--rd-line-red);
    box-shadow: 0 0 0 3px var(--rd-red-soft);
    background-color: var(--rd-surface-3);
}
body.rd textarea,
body.rd textarea.styled-input { min-height: 96px; resize: vertical; line-height: 1.5; padding-top: 12px; }
body.rd input:disabled,
body.rd textarea:disabled,
body.rd select:disabled { opacity: .55; cursor: not-allowed; }

/* Нативный select — своя стрелка (убираем системную).
   Селекторы с .styled-input/.form-control нужны, чтобы перебить их padding/appearance. */
body.rd select,
body.rd select.styled-input,
body.rd select.form-control,
body.rd .input-block select {
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    cursor: pointer; padding-right: 42px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23b9adad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 14px center; background-size: 18px;
}
body.rd select option { background: var(--rd-surface-2); color: var(--rd-text); }

/* Метка поля */
body.rd .input-label { font-family: var(--rd-font-display); font-size: 12.5px; letter-spacing: .04em; text-transform: uppercase; color: var(--rd-text-2); }
/* .pretty-input — прозрачная обёртка (корпус рисует само поле).
   Высокая специфичность + !important, чтобы убрать двойной корпус и в админке
   (redesign-admin.css грузится позже и даёт обёртке рамку/фон/padding).
   Исключаем триггер дропдауна (.dropdwown-menu) — у него собственный корпус. */
body.rd .input-block .pretty-input:not(.dropdwown-menu) {
    background: transparent !important; border: 0 !important; padding: 0 !important;
    box-shadow: none !important; min-height: 0 !important;
    position: relative; width: 100%; display: block;
}
/* Ошибка валидации поля */
body.rd .field-error { color: var(--rd-red-2); font-size: 12.5px; margin-top: 2px; }

/* --- Фильтр-контролы: компактный ряд, а не полосы во всю ширину --- */
/* Перебиваем премиум-правило body.rd input/select { width:100% } для фильтров */
/* Публичные фильтры (клубы/рейтинг/турниры) */
body.rd .rd-filters .rd-select,
body.rd .rd-select { width: auto; min-width: 130px; }
body.rd .rd-search input,
body.rd .rd-search input[type="text"],
body.rd .rd-search input[type="search"] { width: 260px; max-width: 100%; }
/* Админ-фильтры (.user-filters) — контролы сидят в один ряд с переносом */
body.rd .user-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
body.rd .user-filters .filter-select,
body.rd .user-filters select.filter-select { width: auto; min-width: 160px; }
body.rd .user-filters .filter-input,
body.rd .user-filters input.filter-input { flex: 0 1 300px; min-width: 220px; max-width: 360px; }

/* --- Единый вид фильтр-селектов на всём сайте --- */
/* Страницы админки/клубов объявляют .filter-select / .game-filter-select локально
   в @push('styles') (оранжевая тема, свой :hover с background — он гасит стрелку).
   Перебиваем их здесь высокой специфичностью, чтобы select везде выглядел одинаково. */
body.rd .filter-select,
body.rd select.filter-select,
body.rd .game-filter-select,
body.rd select.game-filter-select {
    min-height: 44px; height: auto;
    /* Не тянуть на всю ширину панели — компактный дропдоп справа от заголовка */
    max-width: 320px; width: auto;
    padding: 10px 40px 10px 14px;
    background-color: var(--rd-surface-3);
    /* Своя стрелка (та же, что у общего body.rd select) */
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23b9adad' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 14px center; background-size: 18px;
    border: 1px solid var(--rd-line-2); border-radius: 12px;
    color: var(--rd-text);
    font-family: var(--rd-font-body); font-size: 15px;
    appearance: none; -webkit-appearance: none; -moz-appearance: none;
    cursor: pointer; outline: none;
    transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
/* Hover/focus — красная гамма rd; задаём background-color (не shorthand), чтобы не потерять стрелку */
body.rd .filter-select:hover,
body.rd select.filter-select:hover,
body.rd .game-filter-select:hover,
body.rd select.game-filter-select:hover,
body.rd .filter-select:focus,
body.rd select.filter-select:focus,
body.rd .game-filter-select:focus,
body.rd select.game-filter-select:focus {
    border-color: var(--rd-line-red);
    background-color: var(--rd-surface-3);
    box-shadow: 0 0 0 3px var(--rd-red-soft);
}
body.rd .filter-select option,
body.rd .game-filter-select option { background: var(--rd-surface-2); color: var(--rd-text); }

/* --- Таблицы админки: занимают всю ширину секции --- */
/* Обычные таблицы (custom-table и обёртка) тянем на 100% */
body.rd-admin .table-container { width: 100%; overflow-x: auto; }
body.rd-admin table.custom-table { width: 100%; border-collapse: collapse; }
/* Flex-таблицы (.content-table): строки на всю ширину, колонки — пропорционально весу w-* */
body.rd-admin .content-table { width: 100%; }
body.rd-admin .content-table .table-head,
body.rd-admin .content-table .index-line { width: 100%; }
body.rd-admin .content-table .w-5  { flex: 5 1 0;  max-width: none; }
body.rd-admin .content-table .w-8  { flex: 8 1 0;  max-width: none; }
body.rd-admin .content-table .w-10 { flex: 10 1 0; max-width: none; }
body.rd-admin .content-table .w-15 { flex: 15 1 0; max-width: none; }
body.rd-admin .content-table .w-20 { flex: 20 1 0; max-width: none; }
body.rd-admin .content-table .w-30 { flex: 30 1 0; max-width: none; }
body.rd-admin .content-table .w-40 { flex: 40 1 0; max-width: none; }
body.rd-admin .content-table .w-50 { flex: 50 1 0; max-width: none; }

/* --- Кастомный дропдаун (x-custom-dropdown) --- */
body.rd .dropdwown-menu {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; box-sizing: border-box; min-height: 48px; padding: 0 14px;
    background: var(--rd-surface-3); border: 1px solid var(--rd-line-2); border-radius: 12px;
    color: var(--rd-text); cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease;
}
body.rd .dropdwown-menu:hover { border-color: var(--rd-line-red); }
/* Текст внутри триггера — без собственного корпуса */
body.rd .dropdwown-menu .styled-input {
    background: transparent; border: 0; border-radius: 0;
    min-height: 0; height: auto; padding: 0; width: auto; flex: 1;
    color: var(--rd-text); font-size: 15px;
}
body.rd .dropdwown-menu-arrow { position: static; color: var(--rd-text-3); font-size: 20px; }
body.rd .dropdwown-select-options {
    background: var(--rd-surface-2); border: 1px solid var(--rd-line-2); border-radius: 12px;
    box-shadow: var(--rd-shadow-sm); padding: 6px; margin-top: 6px;
}
body.rd .select-option {
    padding: 10px 12px; border-radius: 8px; color: var(--rd-text-2);
    font-family: var(--rd-font-body); font-size: 14.5px;
    white-space: nowrap;   /* не переносить «Стол 1 - Игра 2» на вторую строку */
    transition: background-color .14s ease, color .14s ease;
}
body.rd .select-option:hover { background: var(--rd-red-soft); color: var(--rd-red-2); }

/* --- Энхансер нативных <select> (rd-select.js) ---
   Структурные правила без гейта body.rd — работают и в rd-admin.
   Внешний вид (фон/рамка/hover) наследуется от .dropdwown-menu / .select-option выше. */
.rd-select-box { position: relative; box-sizing: border-box; width: 100%; }
/* Год в фильтрах и admin-фильтры — компактные, а не на всю ширину */
.rd-select-box.is-inline,
.rd-select-box.is-filter,
.rd-filters .rd-select-box { width: auto; min-width: 150px; }
/* Фильтр не должен растягиваться длинными названиями игр («Стол 1 - Игра 1») */
.rd-select-box.is-filter { max-width: 340px; }
/* .tournament-selector (выбор игрового вечера) — обёртка не наследует класс нативного
   select, поэтому без этого правила растягивается на всю строку (width: 100% по умолчанию). */
.rd-select-box:has(.tournament-selector) { width: auto; max-width: 360px; min-width: 260px; }
/* Оригинальный select прячем, но оставляем в DOM (форма + selectedOptions работают) */
.rd-select-native {
    position: absolute !important; width: 1px !important; height: 1px !important;
    padding: 0 !important; margin: -1px !important; border: 0 !important;
    clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden !important;
    opacity: 0 !important; pointer-events: none !important;
}
/* Список — поверх контента, не расталкивает раскладку.
   Ширина: минимум по триггеру, но растягивается по длине пунктов (без переноса). */
.rd-select-box .dropdwown-select-options {
    position: absolute; top: calc(100% + 6px); left: 0; right: auto;
    min-width: 100%; width: max-content; max-width: 440px;
    z-index: 60; margin-top: 0; max-height: 320px; overflow-y: auto; overflow-x: hidden;
}
/* Стрелка поворачивается при открытии */
.rd-select-box.is-open .dropdwown-menu-arrow { transform: rotate(180deg); }
.rd-select-box .dropdwown-menu-arrow { transition: transform .18s ease; }
/* Заголовок группы (optgroup) */
.rd-select-box .select-optgroup {
    padding: 8px 12px 4px; font-family: var(--rd-font-display);
    font-size: 11px; letter-spacing: .06em; text-transform: uppercase;
    color: var(--rd-text-3);
}
/* Текущий выбранный вариант */
.rd-select-box .select-option.is-selected {
    background: var(--rd-red-soft); color: var(--rd-red-2); font-weight: 600;
}
/* Отключённый вариант */
.rd-select-box .select-option.is-disabled { opacity: .4; cursor: not-allowed; pointer-events: none; }
/* Disabled-состояние всего дропдауна */
.rd-select-box.is-disabled { opacity: .55; pointer-events: none; }


/* --- Кнопки форм --- */
body.rd .btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    min-height: 0; height: auto; padding: 9px 18px;
    background: var(--rd-grad-red); color: #fff;
    border: 0; border-radius: 10px; cursor: pointer; text-decoration: none;
    font-family: var(--rd-font-display); font-weight: 600; font-size: 13px; letter-spacing: .04em; text-transform: uppercase;
    box-shadow: 0 6px 18px -6px var(--rd-red-glow);
    transition: transform .15s ease, box-shadow .2s ease;
}
body.rd .btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -8px var(--rd-red-glow); }
body.rd .btn.btn-outline,
body.rd .btn.btn-secondary,
body.rd .btn.btn-reset {
    background: var(--rd-surface-3); color: var(--rd-text-2);
    border: 1px solid var(--rd-line-2); box-shadow: none;
}
body.rd .btn.btn-outline:hover,
body.rd .btn.btn-secondary:hover,
body.rd .btn.btn-reset:hover { color: var(--rd-text); border-color: var(--rd-line-red); background: var(--rd-red-soft); transform: none; }

/* --- Модальное окно .popup (x-ajax-modal) ---
   Скролл вынесен на весь оверлей (.popup), а не на тело: так выпадающие
   элементы (календарь, дропдауны) НЕ обрезаются overflow-контейнером. */
body.rd .popup.active { display: block; overflow-y: auto; overflow-x: hidden; }
body.rd .popup-backdrop { position: fixed; inset: 0; background: rgba(6, 3, 4, .72); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
body.rd .popup-content {
    position: relative; top: auto; left: auto; transform: none;
    margin: 48px auto;
    background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface));
    border: 1px solid var(--rd-line-2);
    border-radius: var(--rd-radius-lg);
    box-shadow: var(--rd-shadow);
    width: min(940px, 94vw); max-width: 94vw; max-height: none;
    overflow: visible; padding: 0;
}
body.rd .popup-body { max-height: none; overflow: visible; padding: 30px 32px; }
/* Компактное окно подтверждения заявки (маркер .apply-modal внутри попапа) */
body.rd .popup-content:has(.apply-modal) { width: min(420px, 94vw); }
body.rd .apply-modal { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 18px; padding: 6px 4px 4px; }
body.rd .apply-modal__icon {
    width: 62px; height: 62px; display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--rd-red-soft); border: 1px solid var(--rd-line-red);
}
body.rd .apply-modal__icon .material-symbols-outlined { font-size: 32px; color: var(--rd-red-2); }
body.rd .apply-modal__title { font-family: var(--rd-font-display); font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: .02em; color: var(--rd-text); }
body.rd .apply-modal__actions { margin-top: 2px; }
body.rd .apply-modal__actions .btn { min-width: 230px; justify-content: center; }

/* Универсальное компактное окно (подтверждения / короткие формы) — маркер .rd-cmodal */
body.rd .popup-content:has(.rd-cmodal) { width: min(460px, 94vw); }
body.rd .rd-cmodal { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 16px; padding: 6px 4px 4px; }
body.rd .rd-cmodal__icon {
    width: 62px; height: 62px; display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%; background: var(--rd-red-soft); border: 1px solid var(--rd-line-red);
}
body.rd .rd-cmodal__icon .material-symbols-outlined { font-size: 32px; color: var(--rd-red-2); }
body.rd .rd-cmodal__title { font-family: var(--rd-font-display); font-weight: 700; font-size: 20px; text-transform: uppercase; letter-spacing: .02em; color: var(--rd-text); line-height: 1.2; }
body.rd .rd-cmodal__text { color: var(--rd-text-2); line-height: 1.55; }
body.rd .rd-cmodal__muted { color: var(--rd-text-3); font-size: 13px; }
body.rd .rd-cmodal__actions { margin-top: 4px; display: flex; gap: 10px; justify-content: center; }
body.rd .rd-cmodal__actions .btn { min-width: 220px; justify-content: center; }
/* Список выбора (например, столы) внутри компактной модалки */
body.rd .rd-cmodal__list { width: 100%; display: flex; flex-direction: column; gap: 8px; padding: 14px 16px; background: var(--rd-surface-3); border: 1px solid var(--rd-line); border-radius: 12px; text-align: left; }
body.rd .rd-cmodal__list label { display: flex; align-items: center; gap: 10px; color: var(--rd-text-2); cursor: pointer; }
body.rd .rd-cmodal__list input[type="checkbox"] { width: 17px; height: 17px; accent-color: var(--rd-red); flex-shrink: 0; }
/* Формы/поля внутри компактной модалки — выравниваем по левому краю, поля на всю ширину */
body.rd .rd-cmodal form { text-align: left; }
body.rd .rd-cmodal .custom-dropdown,
body.rd .rd-cmodal .input-block { width: 100%; }
/* Премиум-скроллбар всего оверлея */
body.rd .popup.active { scrollbar-width: thin; scrollbar-color: rgba(255, 90, 77, .4) transparent; }
body.rd .popup.active::-webkit-scrollbar { width: 12px; }
body.rd .popup.active::-webkit-scrollbar-track { background: transparent; }
body.rd .popup.active::-webkit-scrollbar-thumb { background: rgba(255, 90, 77, .35); border-radius: 999px; border: 3px solid transparent; background-clip: padding-box; }
body.rd .popup.active::-webkit-scrollbar-thumb:hover { background: rgba(255, 90, 77, .6); background-clip: padding-box; }
body.rd .popup-close {
    position: absolute; top: 16px; right: 16px;
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; padding: 0;
    background: var(--rd-surface-3); border: 1px solid var(--rd-line);
    border-radius: 11px; color: var(--rd-text-2); font-size: 24px;
    transition: color .16s ease, border-color .16s ease, background-color .16s ease;
    z-index: 5;
}
body.rd .popup-close:hover { color: var(--rd-red-2); border-color: var(--rd-line-red); background: var(--rd-red-soft); }
/* Форма внутри модалки — не шире контейнера и БЕЗ своего корпуса
   (иначе на admin-страницах .content-main рисует второй корпус внутри .popup-content) */
body.rd .popup-body .content-main {
    width: 100%; box-sizing: border-box; min-width: 0; max-width: none !important;
    background: none !important; border: 0 !important; box-shadow: none !important;
    border-radius: 0 !important; padding: 0 !important; margin: 0 !important;
}
body.rd .popup-body .content-main [style*="min-width"] { min-width: 0 !important; }
@media (max-width: 600px) { body.rd .popup-content { margin: 16px auto; width: calc(100vw - 24px); } body.rd .popup-body { padding: 22px 18px; } }

/* Confirmation-модалка (подтверждение) — общий премиум-корпус */
body.rd .modal-overlay { position: fixed; inset: 0; z-index: 1100; display: none; align-items: center; justify-content: center; padding: 20px; background: rgba(6, 3, 4, .72); backdrop-filter: blur(6px); }
body.rd .modal-content { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line-2); border-radius: var(--rd-radius-lg); box-shadow: var(--rd-shadow); color: var(--rd-text); }

/* --- Датапикер (x-input-date) под премиум-палитру --- */
body.rd .date-picker-dropdown { background: linear-gradient(180deg, var(--rd-surface-2), var(--rd-surface)); border: 1px solid var(--rd-line-2); border-radius: 14px; box-shadow: var(--rd-shadow); color: var(--rd-text); }
body.rd .dp-select { min-height: 34px; height: auto; padding: 6px 28px 6px 10px; border-radius: 8px; font-size: 14px; background-position: right 8px center; }
body.rd .dp-nav-btn { background: var(--rd-surface-3); border: 1px solid var(--rd-line); border-radius: 9px; color: var(--rd-text-2); transition: all .16s ease; }
body.rd .dp-nav-btn:hover { border-color: var(--rd-line-red); background: var(--rd-red-soft); color: var(--rd-red-2); }
body.rd .dp-weekday { color: var(--rd-text-3); }
body.rd .dp-day { border-radius: 9px; color: var(--rd-text); transition: background-color .14s ease, color .14s ease; }
body.rd .dp-day:hover { background: var(--rd-red-soft); color: var(--rd-red-2); }
body.rd .dp-day--muted { color: var(--rd-text-3); }
body.rd .dp-day--today { border: 1px solid var(--rd-line-red); }
body.rd .dp-day--selected { background: var(--rd-grad-red); color: #fff; border-color: transparent; box-shadow: 0 4px 12px -4px var(--rd-red-glow); }
body.rd .dp-day--selected:hover { background: var(--rd-grad-red); color: #fff; }
body.rd .dp-action { border-radius: 8px; color: var(--rd-text-2); }
body.rd .dp-action:hover { background: var(--rd-red-soft); color: var(--rd-red-2); }
body.rd .date-input-icon { color: var(--rd-text-3); }
body.rd .date-input-icon:hover { color: var(--rd-red-2); }

/* --- Slide-switch (тумблер) под красный акцент --- */
body.rd .switch-input:checked + .slider { background: var(--rd-grad-red); }
body.rd .slider { background: var(--rd-surface-3); border: 1px solid var(--rd-line-2); }

/* --- Radio под премиум --- */
body.rd input[type="radio"] {
    appearance: none; -webkit-appearance: none; margin: 0;
    width: 20px; height: 20px; flex-shrink: 0;
    display: inline-grid; place-content: center; vertical-align: middle;
    border: 1.5px solid var(--rd-line-2); border-radius: 50%;
    background: var(--rd-surface-3); cursor: pointer;
    transition: border-color .16s ease, box-shadow .16s ease;
}
body.rd input[type="radio"]::before {
    content: ""; width: 10px; height: 10px; border-radius: 50%;
    background: var(--rd-grad-red); transform: scale(0);
    transition: transform .16s cubic-bezier(.4, 0, .2, 1);
}
body.rd input[type="radio"]:hover { border-color: var(--rd-line-red); }
body.rd input[type="radio"]:checked { border-color: var(--rd-red-2); }
body.rd input[type="radio"]:checked::before { transform: scale(1); }
body.rd input[type="radio"]:focus-visible { box-shadow: 0 0 0 3px var(--rd-red-soft); }

/* ==========================================================================
   Читаемость текста, десктоп (UX-подгонка) — ОБЕ темы, только размеры
   Причина: весь публичный слой ужат zoom:0.8, поэтому 14–16px «бегущего»
   текста на ПК дают ~11–13px эффективных — мелко на десктопном расстоянии.
   На мобиле пользователей всё устраивает, поэтому правим только ≥901px.
   Размеры применяются к обеим темам (селектор body.rd, без scope темы);
   ЦВЕТА тут не задаём — они в токенах, светлая тема их переопределяет сама.
   Гриды-таблицы (.cr-*) данных не бустим — там фикс. px и Oswald.
   ========================================================================== */
@media (min-width: 901px) {
    /* Тело статьи — главная поверхность чтения */
    body.rd:not(.rd-admin) .rd-prose { font-size: 18px; }

    /* Лид/вводный абзац секций */
    body.rd:not(.rd-admin) .rd-lead { font-size: clamp(16px, 1.5vw, 18px); }

    /* Описания в карточках-фичах и блоке приза */
    body.rd:not(.rd-admin) .rd-feature__text { font-size: 15.5px; }
    body.rd:not(.rd-admin) .rd-prize__note   { font-size: 16.5px; }

    /* Подписи-строки в бордах (было 10px эффективных — хуже всех) */
    body.rd:not(.rd-admin) .rd-row__sub { font-size: 13.5px; }

    /* Превью-тексты карточек (line-clamp сохраняется, прибавка мягкая) */
    body.rd:not(.rd-admin) .rd-tcard__desc,
    body.rd:not(.rd-admin) .rd-artcard__excerpt { font-size: 14.5px; }
    body.rd:not(.rd-admin) .rd-artcard__meta,
    body.rd:not(.rd-admin) .rd-article__meta { font-size: 13.5px; }

    /* Футер — описания и ссылки */
    body.rd:not(.rd-admin) .site-footer__desc,
    body.rd:not(.rd-admin) .site-footer__cta-text { font-size: 14.5px; }
    body.rd:not(.rd-admin) .site-footer__col a { font-size: 15px; }
    body.rd:not(.rd-admin) .site-footer__copy  { font-size: 13.5px; }
}

/* ==========================================================================
   Читаемость МИКРОЛЕЙБЛОВ тёмной темы, десктоп (вторая волна UX-подгонки)
   Аудит Playwright'ом всех страниц показал целый тип-тир подписей/сабтекста
   на 8–10px эффективных (после zoom:0.8): стат-подписи хиро, мета турнира,
   заголовки колонок/секций, реальные имена/локации под никами, футер-тайтлы.
   Поднимаем до комфортных ~10.5–11.5px эфф. Десктоп; размеры для ОБЕИХ тем.
   !important — сквозной слой поверх множества базовых body.rd-правил
   (в т.ч. 3 варианта .table-head), чтобы не воевать со специфичностью.
   ========================================================================== */
@media (min-width: 901px) {
    /* Подписи-капсы: стат-лейблы хиро, мета-лейблы, заголовки секций/колонок, eyebrow */
    body.rd:not(.rd-admin) :is(
        .stat-label, .rd-pstat span, .rd-club-card__stat span, .rd-stat__label,
        .tournament-meta__label, .achievements-section__title, .trophy-card__place,
        .rd-eyebrow, .rd-plist__head, .rd-plist__head *
    ) { font-size: 13px !important; }

    /* Заголовки таблиц (десктопная таблица + content-table клуба/турнира) */
    body.rd:not(.rd-admin) :is(.desktop-table .table-head, .content-table .table-head) { font-size: 13px !important; }

    /* Шапка-ряд standings/рейтинга клуба (первый ряд = заголовки колонок) */
    body.rd:not(.rd-admin) .cr-rating-table > .club-rating-row:first-child :is(.cr-col, .cr-col-name, .cr-col-num) { font-size: 13px !important; }

    /* Сабтекст под именами: реальное имя, локация, описание клуба */
    body.rd:not(.rd-admin) :is(
        .rd-prow__real, .rd-prow__loc, .rd-profile__real, .rd-profile__loc,
        .rd-club-card__loc, .club-description
    ) { font-size: 14px !important; }

    /* Значения мета и имя трофея — реальные данные, читаются как контент */
    body.rd:not(.rd-admin) :is(.tournament-meta__value, .trophy-card__name) { font-size: 14.5px !important; }

    /* Футер: заголовки колонок */
    body.rd:not(.rd-admin) .site-footer__title { font-size: 14px !important; }

    /* Бейджи/пилюли — чуть крупнее, но остаются компактными */
    body.rd:not(.rd-admin) :is(.rd-badge-level, .rd-award, .tournament-phase-badge) { font-size: 12px !important; }
}

/* ==========================================================================
   Довыявленные подписи (третья волна): исчерпывающий греп font-size ≤12px
   по redesign.css вскрыл ещё информативный мелкий текст на 8–10px эфф —
   HoF-подписи, медиа-мета, мини-лейблы под значениями, формы, prose-таблицы.
   Десктоп, ОБЕ темы. Поднимаем до ~10.5px эфф (чипы — до ~9.6px).
   ========================================================================== */
@media (min-width: 901px) {
    body.rd:not(.rd-admin) :is(
        .rd-hof-card__sub, .rd-hof-club, .rd-hof-val .r,
        .rd-video__meta, .rd-judge__count, .tournament-meta__norating, .club-member-tag,
        .rd-prow__vlabel, .rd-rtl__vlabel, .rd-row__valcap, .rd-champ__scorecap,
        .rd-field label, .rd-field__hint, .input-label, .field-error,
        .rd-prose thead th
    ) { font-size: 13px !important; }

    /* Категорийные чипы/теги — крупнее, но остаются компактными акцентами */
    body.rd:not(.rd-admin) :is(
        .rd-artcard__cat, .rd-judge__cat, .rd-article__cat, .rd-vmeta .vip
    ) { font-size: 12px !important; }
}
