div.game__list-user-name a {
    color: #333;
}

.login-choice-modal {
    display: none;
    position: fixed;
    z-index: 2000;
    inset: 0;
}

.login-choice-modal.is-visible {
    display: block;
}

.login-choice-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

.login-choice-modal__dialog {
    position: relative;
    width: calc(100% - 32px);
    max-width: 360px;
    margin: 12vh auto 0;
    padding: 24px 20px 20px;
    background: var(--bg-secondary);
    border: 1px solid var(--border-color);
    border-radius: 18px;
    box-shadow: var(--card-shadow);
    color: var(--text-primary);
}

.login-choice-modal__close {
    position: absolute;
    top: 8px;
    right: 12px;
    border: 0;
    background: transparent;
    color: var(--text-muted);
    font-size: 28px;
    line-height: 1;
}

.login-choice-modal__title {
    margin: 0 28px 8px 0;
    color: var(--text-heading);
    font-size: 22px;
}

.login-choice-modal__text {
    margin-bottom: 18px;
    color: var(--text-secondary);
}

.login-choice-modal__btn {
    display: block;
    width: 100%;
    margin-top: 10px;
    padding: 12px 16px;
    border: 0;
    border-radius: 10px;
    color: #fff;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
}

.login-choice-modal__btn:hover,
.login-choice-modal__btn:focus {
    color: #fff;
    text-decoration: none;
    opacity: 0.92;
}

.login-choice-modal__btn--vk {
    background: #0077ff;
}

.login-choice-modal__btn--telegram {
    background: #0088cc;
}

.login-choice-modal__btn--apple {
    background: #000;
    color: #fff;
}

.login-choice-modal__btn--login {
    background: var(--accent);
    color: var(--text-on-accent);
}

.login-choice-modal__btn--login:hover,
.login-choice-modal__btn--login:focus {
    color: var(--text-on-accent);
}

.slots__item-record.alert-info {
    padding: 8px 11px;
}

.game__description-item--coach:before {
    content: url(../img/ico-coach.svg);
}

/* Пол игры — SVG как у времени/места */
.game__description-item--sex:before {
    content: url(../img/ico-sex.svg);
}

.navbar-form {
    border-top: none;
}

.navbar-collapse {
    box-shadow: none;
}

div.place-info {background-color: #ffd469;border-color:transparent;color: #333;padding: 8px 11px;padding-left: 15px;border-radius: 10px; margin-bottom: 12px}

#id_level {
  margin-left: 4px;
}

#level_btn {
    background: var(--bg-secondary);
    color: var(--text-heading);
    margin-top: 4px;
    border-radius: 18px;
    -moz-border-radius: 5px;
    border-color:transparent;
    -webkit-border-radius: 5px;
}

button.small_btn {
    background: var(--bg-secondary);
    color: var(--text-heading);
    border-radius: 18px;
    -moz-border-radius: 5px;
    border-color:transparent;
    -webkit-border-radius: 5px;
}

.level_selector_form {
     box-sizing: border-box;
}

.level_selector_form input[type="text"], select {
    height: 30px;
    width: 180px;
    margin-left: 4px;
    margin-top: 4px;
    margin-bottom: 2px;
}

.player-search {
    max-width: 960px !important;
    margin: 0 auto;
}

.player-search__header {
    margin-bottom: 22px;
    text-align: center;
}

.player-search__title {
    margin: 0 0 8px;
    color: var(--text-heading);
    font-size: 30px;
    font-weight: 700;
}

.player-search__subtitle,
.player-search__hint {
    margin: 0 auto 6px;
    max-width: 680px;
    color: var(--text-secondary);
    line-height: 1.45;
}

.player-search__form {
    display: grid;
    grid-template-columns: minmax(220px, 2fr) minmax(150px, 1fr) minmax(170px, 1fr) auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 20px;
    padding: 18px;
    border: 1px solid var(--border-color);
    border-radius: 22px;
    background: var(--bg-secondary);
}

.player-search__field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.player-search__label {
    margin: 0;
    color: var(--text-secondary);
    font-size: 13px;
    font-weight: 600;
}

.player-search__input,
.player-search__field select {
    width: 100%;
    height: 42px;
    margin: 0;
    padding: 0 12px;
    border: 1px solid var(--border-color);
    border-radius: 14px;
    background: var(--bg-primary);
    color: var(--text-primary);
}

.player-search__input:focus,
.player-search__field select:focus {
    border-color: var(--accent);
    outline: none;
}

.player-search__actions {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: flex-end;
}

.player-search__submit,
.player-search-card__button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border: 0;
    border-radius: 14px;
    background: var(--accent);
    color: var(--text-on-accent);
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.player-search__submit:hover,
.player-search-card__button:hover {
    color: var(--text-on-accent);
    text-decoration: none;
    opacity: 0.9;
}

.player-search__reset {
    color: var(--text-secondary);
    text-decoration: none;
}

.player-search__reset:hover {
    color: var(--text-heading);
}

.player-search__summary {
    margin: 0 0 12px;
    color: var(--text-secondary);
    text-align: center;
}

.player-search__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 14px;
}

.player-search-card {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 14px;
    padding: 16px;
    border: 1px solid var(--border-color);
    border-radius: 20px;
    background: var(--bg-secondary);
}

.player-search-card__avatar {
    position: relative;
    display: block;
    width: 56px;
    height: 56px;
}

.player-search-card__avatar img {
    display: block;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
}

.player-search-card__avatar .player-avatar-ring {
    top: -9px;
    left: -9px;
    right: -9px;
    bottom: -9px;
    z-index: 1;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
}

.player-search-card__body {
    min-width: 0;
}

.player-search-card__name {
    display: block;
    overflow: hidden;
    color: var(--text-heading);
    font-size: 17px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.player-search-card__meta,
.player-search-card__stats {
    color: var(--text-secondary);
    font-size: 13px;
}

.player-search-card__badges {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 10px 0;
}

.player-search-card__badges span {
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--bg-tertiary);
    color: var(--text-primary);
    font-size: 12px;
    font-weight: 600;
}

.player-search-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.player-search-card__action {
    grid-column: 1 / -1;
    display: flex;
    justify-content: flex-end;
}

.player-search-card__action form {
    margin: 0;
}

.player-search__empty {
    padding: 22px;
    border: 1px dashed var(--border-color);
    border-radius: 20px;
    background: var(--bg-secondary);
    color: var(--text-secondary);
    text-align: center;
}

@media (max-width: 767px) {
    .player-search__form {
        grid-template-columns: 1fr;
        padding: 14px;
    }

    .player-search__actions {
        justify-content: stretch;
    }

    .player-search__submit,
    .player-search__reset,
    .player-search-card__button {
        width: 100%;
    }

    .player-search-card__action {
        justify-content: stretch;
    }
}

.bold_link {
  font-weight: 600;
}





ul.menu li {
    text-align: right;
    padding-right: 30px;
}

.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:hover {
    background-color: transparent;
}

.game__list-pair-photo {
    margin-bottom: 0;
}

.game__list-pair {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 10px 12px 10px 10px;
    margin-bottom: 10px;
    border-radius: 12px;
    background: rgba(45, 73, 61, 0.06);
    border: 1px solid rgba(45, 73, 61, 0.14);
    border-left: 3px solid var(--player-avatar-ring-color, #2D493D);
    list-style: none;
}

[data-theme="dark"] .game__list-pair {
    background: rgba(255, 255, 255, 0.04);
    border-color: rgba(255, 255, 255, 0.1);
}

.game__list-pair .game__list-user {
    margin: 0;
    /* ободок выступает на 5px — резервируем место, чтобы кольца не пересекались */
    padding: 5px 0;
}

.game__list-user--empty-pair .game__list-user-name span {
    color: rgba(45, 73, 61, 0.55);
    font-style: italic;
}

[data-theme="dark"] .game__list-user--empty-pair .game__list-user-name span {
    color: rgba(255, 255, 255, 0.45);
}

a.payment-info {
    color: #000000;
    font-weight: bold;
    font-style: italic;
}

[data-theme="dark"] a.payment-info {
    color: #ffffff;
}



@media (min-width: 1200px) {
    ul.menu {
        margin-top: 15px;
    }

    .header__button {
        margin-top: 20px;
        position: static;
        transform: none;
        top: auto;
        right: auto;
    }

    ul.menu li {
        padding-right: 0;
    }

    .container-fluid>.navbar-collapse, .container-fluid>.navbar-header, .container>.navbar-collapse, .container>.navbar-header {
        margin-right: -15px;
        margin-left: -15px;
    }
}

.table {
	width: 100%;
	border: none;
    border-collapse: separate;
}
.table thead th {
	font-weight: bold;
	text-align: center;
	border: none;
	background: #EDEDED;
	font-size: 14px;
	border-top: 1px solid #ddd;
}
.table tr th:first-child, .table tr td:first-child {
	border-left: 1px solid #ddd;
}
.table tr th:last-child, .table tr td:last-child {
	border-right: 1px solid #ddd;
}
.table thead tr th:first-child {
	border-radius: 20px 0 0 0;
}
.table thead tr th:last-child {
	border-radius: 0 20px 0 0;
}
.table tbody td {
	text-align: center;
	border: none;
	vertical-align: middle;
}
.table tbody tr td {
	vertical-align: middle;
}
.table tbody tr:nth-child(even) {
	background: #F8F8F8;
}
.table tbody tr:last-child td{
	border-bottom: 1px solid #ddd;
}
.table tbody tr:last-child td:first-child {
	border-radius: 0 0 0 20px;
}
.table tbody tr:last-child td:last-child {
	border-radius: 0 0 20px 0;
}

.custom-summary {

    font-weight: bold;
    color: var(--bg-secondary);
    display: inline-block;
    position: relative;
    cursor: pointer;
    padding-right: 1em; /* Добавлено для увеличения кликабельной области */
}

.custom-summary span {
    display: inline-block;
    transition: transform 0.2s;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

.custom-summary::-webkit-details-marker {
    display: none;
}

.custom-summary::before {
    content: '►';
    display: inline-block;
    transform: rotate(0deg);
    transition: transform 0.2s;
    margin-right: 0.3em;

    line-height: 1;
}

details[open] .custom-summary::before {
    transform: rotate(90deg);
}


  .email-popup {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: var(--overlay);
    z-index: 9999;
  }
  
  .email-popup-content {
    background-color: var(--bg-secondary);
    padding: 20px;
    border-radius: 5px;
    max-width: 400px;
    width: 100%;
    color: var(--text-primary);
  }
  
  .email-popup-open {
    overflow: hidden;
  }

/* Селектор с повышенной специфичностью для текста адреса */
.header__address .address-text {
    font-size: 16px !important;
    white-space: nowrap;
}

/* Селектор с повышенной специфичностью для номера телефона */
.header__address .phone-number {
    font-size: 14px !important;
    white-space: nowrap;
}

.game__block1 {
  border: 2px solid var(--bg-primary);
  padding: 30px;
  -webkit-box-shadow: var(--card-shadow);
  -moz-box-shadow: var(--card-shadow);
  box-shadow: var(--card-shadow);
  -webkit-border-radius: 10px;
  -moz-border-radius: 10px;
  border-radius: 10px;
  -moz-background-clip: padding;
  -webkit-background-clip: padding-box;
  background-clip: padding-box;
}

.btn-pink {
    background-color: #f350a2;
    color: #fff;
}

.btn-pink:hover {
    background-color: #ff1493;
    color: #fff;
}

.toast {
    position: fixed;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    background-color: var(--toast-bg);
    color: #fff;
    padding: 10px 20px;
    border-radius: 4px;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    z-index: 9999;
}

.toast.show {
    opacity: 1;
}

.environment-info {
    margin-left: 10px;
    font-size: 12px;
    color: var(--text-muted);
}
.push-indicator {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.push-enabled {
    background-color: #28a745;
}

.push-disabled {
    background-color: #dc3545;
}

.avatar-container {
    position: relative;
    width: 100%;
    height: 100%;
}

.avatar-container #profile-avatar {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ========================================
   Palma Header Styles - тёмная тема
   ======================================== */

.header .navbar-inverse {
    background-color: var(--nav-bg);
    border-color: var(--bg-secondary);
    background-image: none;
}

.header .navbar-inverse .navbar-brand {
    position: relative;
    z-index: 100;
    margin-top: 10px;
    margin-bottom: -90px;
}

.header .navbar-inverse .navbar-brand img {
    border-radius: 50%;
    border: 5px solid var(--accent);
    box-shadow: var(--logo-border-shadow);
    width: 180px;
    height: auto;
    position: relative;
    z-index: 100;
}

.header .navbar-inverse .navbar-nav > li > a {
    color: var(--accent);
    transition: color 0.2s ease;
}

.header .navbar-inverse .navbar-nav > li > a:hover,
.header .navbar-inverse .navbar-nav > li > a:focus {
    color: var(--accent-hover);
    background-color: transparent;
}

.header .navbar-inverse .navbar-nav > .active > a,
.header .navbar-inverse .navbar-nav > .active > a:hover,
.header .navbar-inverse .navbar-nav > .active > a:focus {
    color: var(--text-on-accent);
    background-color: var(--accent);
    border-radius: 6px;
    font-weight: 600;
}

.header .navbar-text,
.header .header__address,
.header .address-text,
.header .phone-number {
    color: var(--accent-text) !important;
}

.header .navbar-inverse .navbar-toggle {
    border-color: var(--accent);
}

.header .navbar-inverse .navbar-toggle .icon-bar {
    background-color: var(--accent);
}

.header .navbar-inverse .navbar-toggle:hover,
.header .navbar-inverse .navbar-toggle:focus {
    background-color: var(--accent-glow);
}

.header .btn-primary {
    background-color: var(--accent);
    border-color: var(--accent-border);
    color: var(--text-on-accent);
}

.header .btn-primary:hover {
    background-color: var(--accent-hover);
    border-color: var(--accent);
    color: var(--text-on-accent);
}

.header .navbar-form a[style*="color:#ffffff"],
.header .navbar-form a[style*="color: #ffffff"] {
    color: var(--accent) !important;
}

/* Мобильное меню */
@media (max-width: 767px) {
    body {
        padding-bottom: calc(86px + env(safe-area-inset-bottom));
    }

    html.mobile-more-open,
    body.mobile-more-open {
        overflow: hidden;
        overscroll-behavior: none;
        touch-action: none;
    }

    .header {
        position: relative;
        z-index: 1200;
    }

    .header .navbar-inverse {
        min-height: 135px;
        border: 0;
        border-bottom: 1px solid var(--accent);
        box-shadow: 0 2px 18px rgba(212, 175, 55, 0.18);
    }

    .header .navbar-inverse .container {
        width: 100%;
        padding: 0 28px;
    }

    .header .navbar-header {
        display: flex;
        min-height: 134px;
        align-items: flex-start;
    }

    .header .navbar-inverse .navbar-toggle {
        display: none;
    }

    .header .navbar-inverse .navbar-brand {
        display: block;
        height: auto;
        margin: 43px 0 0;
        padding: 0;
    }

    .header .navbar-inverse .navbar-brand img {
        width: 78px;
        border-width: 3px;
    }

    .header__address.navbar-text.hidden-lg {
        display: block !important;
        margin: 57px 0 0 26px;
        font-size: 14px;
        line-height: 1.25;
        letter-spacing: 0.01em;
    }

    .header__address.navbar-text.hidden-lg br {
        display: none;
    }

    .header__address .address-text {
        margin-bottom: 13px;
    }

    .header .navbar-inverse .navbar-collapse {
        display: none !important;
    }

    .mobile-tabbar {
        position: fixed;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 1300;
        display: grid;
        grid-template-columns: repeat(5, 1fr);
        min-height: calc(76px + env(safe-area-inset-bottom));
        padding: 9px 8px calc(7px + env(safe-area-inset-bottom));
        background: rgba(22, 27, 41, 0.98);
        border-top: 1px solid rgba(212, 175, 55, 0.22);
        box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.38);
    }

    .mobile-tabbar__item {
        position: relative;
        display: flex;
        min-width: 0;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        gap: 5px;
        color: #e3e7f1 !important;
        font-size: 11px;
        line-height: 1;
        text-align: center;
        text-decoration: none !important;
        cursor: pointer;
    }

    .mobile-tabbar__item i {
        font-size: 22px;
        color: inherit;
    }

    .mobile-tabbar__item.is-active {
        color: var(--accent) !important;
    }

    .mobile-tabbar__item.is-active::before {
        content: "";
        position: absolute;
        top: -9px;
        left: 18%;
        right: 18%;
        height: 3px;
        border-radius: 99px;
        background: var(--accent);
        box-shadow: 0 0 12px var(--accent-glow-strong);
    }

    .mobile-more-toggle {
        position: fixed;
        width: 1px;
        height: 1px;
        opacity: 0;
        pointer-events: none;
    }

    .mobile-more-backdrop,
    .mobile-more-sheet {
        display: block;
    }

    .mobile-more-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1250;
        visibility: hidden;
        background: rgba(9, 12, 20, 0.2);
        opacity: 0;
        transition: opacity 0.2s ease, visibility 0.2s ease;
    }

    .mobile-more-sheet {
        position: fixed;
        right: 0;
        bottom: calc(76px + env(safe-area-inset-bottom));
        left: 0;
        z-index: 1260;
        min-height: 458px;
        padding: 16px 28px 34px;
        background: #262d3e;
        border-radius: 22px 22px 0 0;
        box-shadow: 0 -18px 42px rgba(0, 0, 0, 0.36), inset 0 1px 0 rgba(255, 255, 255, 0.04);
        transform: translateY(calc(100% + 90px));
        transition: transform 0.24s ease;
    }

    .mobile-more-toggle:checked ~ .mobile-more-backdrop {
        visibility: visible;
        opacity: 1;
    }

    .mobile-more-toggle:checked ~ .mobile-more-sheet {
        transform: translateY(0);
    }

    .mobile-more-sheet::before,
    .mobile-more-sheet::after {
        content: "";
        position: absolute;
        height: 3px;
        border-radius: 99px;
        background: var(--accent);
        box-shadow: 0 0 12px var(--accent-glow-strong);
    }

    .mobile-more-sheet::before {
        top: -3px;
        left: 32px;
        width: 64px;
    }

    .mobile-more-sheet::after {
        right: 16px;
        bottom: -1px;
        width: 60px;
    }

    .mobile-more-sheet__handle {
        width: 36px;
        height: 5px;
        margin: -4px auto 34px;
        border-radius: 99px;
        background: var(--accent);
        box-shadow: 0 0 10px var(--accent-glow);
    }

    .mobile-more-sheet__list {
        display: flex;
        flex-direction: column;
    }

    .mobile-more-sheet__item {
        display: grid;
        grid-template-columns: 34px 1fr 18px;
        gap: 14px;
        align-items: center;
        min-height: 62px;
        color: #eef2f8 !important;
        font-size: 15px;
        text-decoration: none !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.045);
    }

    .mobile-more-sheet__icon,
    .mobile-more-sheet__chevron {
        color: var(--accent);
    }

    .mobile-more-sheet__icon {
        font-size: 21px;
        text-align: center;
    }

    .mobile-more-sheet__chevron {
        font-size: 13px;
        opacity: 0.95;
    }

    .mobile-more-sheet__item.is-active {
        color: var(--accent) !important;
    }

    [data-theme="light"] .mobile-tabbar {
        background: var(--bg-secondary);
        border-top-color: var(--border-color);
        box-shadow: 0 -4px 20px rgba(45, 73, 61, 0.1);
    }

    [data-theme="light"] .mobile-tabbar__item {
        color: var(--text-muted) !important;
    }

    [data-theme="light"] .mobile-tabbar__item.is-active {
        color: var(--accent) !important;
    }

    [data-theme="light"] .mobile-tabbar__item.is-active::before {
        background: var(--accent-text);
        box-shadow: none;
    }

    [data-theme="light"] .mobile-more-backdrop {
        background: var(--overlay);
    }

    [data-theme="light"] .mobile-more-sheet {
        background: var(--bg-secondary);
        box-shadow: 0 -8px 32px rgba(45, 73, 61, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.8);
    }

    [data-theme="light"] .mobile-more-sheet::before,
    [data-theme="light"] .mobile-more-sheet::after {
        background: var(--accent-text);
        box-shadow: none;
    }

    [data-theme="light"] .mobile-more-sheet__handle {
        background: var(--border-subtle);
        box-shadow: none;
    }

    [data-theme="light"] .mobile-more-sheet__item {
        color: var(--text-primary) !important;
        border-bottom-color: var(--border-color);
    }

    [data-theme="light"] .mobile-more-sheet__icon,
    [data-theme="light"] .mobile-more-sheet__chevron {
        color: var(--accent-text);
    }

    [data-theme="light"] .mobile-more-sheet__item.is-active {
        color: var(--accent) !important;
    }

    [data-theme="light"] .mobile-more-sheet__item.is-active .mobile-more-sheet__icon,
    [data-theme="light"] .mobile-more-sheet__item.is-active .mobile-more-sheet__chevron {
        color: var(--accent);
    }
}

@media (min-width: 768px) {
    .mobile-more-toggle,
    .mobile-more-backdrop,
    .mobile-more-sheet,
    .mobile-tabbar {
        display: none;
    }
}

/* ========================================
   Palma - Глобальная тёмная тема
   ======================================== */

/* Основной фон страницы */
body {
    background-color: var(--bg-primary) !important;
    color: var(--text-primary);
}

/* Контейнер контента - тёмный фон */
.main-content,
.container {
    background-color: transparent;
}

/* Заголовки на тёмном фоне */
h1, h2, h3, h4, h5, h6,
.slots__title,
.game__title {
    color: var(--text-heading) !important;
}

/* Подзаголовки и даты */
.slots__date-title,
.game__date-title {
    color: var(--accent-text) !important;
}

/* ========================================
   Глобальные стили для всех страниц
   ======================================== */

/* Панели и блоки */
.panel,
.panel-default,
.panel-primary,
.panel-info {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
    box-shadow: var(--card-shadow) !important;
}

.panel-heading {
    background-color: var(--bg-tertiary) !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-heading) !important;
}

.panel-body {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

.panel-title {
    color: var(--text-heading) !important;
}

/* Well блоки */
.well {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Таблицы */
.table {
    color: var(--text-primary) !important;
    background-color: transparent !important;
}

.table thead th {
    background-color: var(--bg-tertiary) !important;
    color: var(--text-heading) !important;
    border-color: var(--border-color) !important;
}

.table tbody tr {
    background-color: var(--bg-secondary) !important;
}

.table tbody tr:nth-child(even) {
    background-color: var(--bg-alt) !important;
}

.table tbody td {
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.table-hover tbody tr:hover {
    background-color: var(--bg-hover) !important;
}

/* Формы и инпуты */
.form-control,
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
textarea,
select {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-heading) !important;
}

.form-control:focus,
input:focus,
textarea:focus,
select:focus {
    background-color: var(--bg-hover) !important;
    border-color: var(--accent) !important;
    color: var(--text-heading) !important;
}

.form-control::placeholder {
    color: var(--input-placeholder) !important;
}

/* Лейблы форм */
label,
.control-label {
    color: var(--text-primary) !important;
}

/* Карточки игроков и игр */
.game,
.game__item,
.player-card,
.profile-card {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
    box-shadow: var(--card-shadow) !important;
}

.game__block,
.game__block1 {
    background-color: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
}

/* Списки */
ul, ol {
    color: var(--text-primary);
}

li {
    color: var(--text-primary);
}

/* Параграфы */
p {
    color: var(--text-primary);
}

/* Алерты */
.alert {
    background-color: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

.alert-info {
    background-color: var(--alert-info-bg) !important;
    border-color: var(--alert-info-border) !important;
    color: var(--alert-info-text) !important;
}

.alert-success {
    background-color: var(--alert-success-bg) !important;
    border-color: var(--alert-success-border) !important;
    color: var(--alert-success-text) !important;
}

.alert-warning {
    background-color: var(--alert-warning-bg) !important;
    border-color: var(--alert-warning-border) !important;
    color: var(--alert-warning-text) !important;
}

.alert-danger {
    background-color: var(--alert-danger-bg) !important;
    border-color: var(--alert-danger-border) !important;
    color: var(--alert-danger-text) !important;
}

/* Модальные окна */
.modal-content {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
}

.modal-header {
    background-color: var(--bg-tertiary) !important;
    border-bottom: 1px solid var(--border-color) !important;
    color: var(--text-heading) !important;
}

.modal-body {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

.modal-footer {
    background-color: var(--bg-tertiary) !important;
    border-top: 1px solid var(--border-color) !important;
}

.modal-title {
    color: var(--text-heading) !important;
}

/* Навигация и пагинация */
.pagination > li > a,
.pagination > li > span {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
}

.pagination > li > a:hover,
.pagination > li > span:hover {
    background-color: var(--bg-hover) !important;
    border-color: var(--accent) !important;
}

.pagination > .active > a,
.pagination > .active > span {
    background-color: var(--accent) !important;
    border-color: var(--accent) !important;
    color: var(--text-on-accent) !important;
}

/* Бэйджи и лейблы */
.badge,
.label {
    background-color: var(--accent) !important;
    color: var(--text-on-accent) !important;
}

/* Карточки профиля */
.profile,
.profile-info,
.user-profile {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Статистика */
.stats,
.statistics {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

/* Вкладки */
.nav-tabs > li > a {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
}

.nav-tabs > li.active > a,
.nav-tabs > li.active > a:hover,
.nav-tabs > li.active > a:focus {
    background-color: var(--bg-tertiary) !important;
    border-color: var(--accent) !important;
    color: var(--accent) !important;
}

/* Дропдауны */
.dropdown-menu {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
}

.dropdown-menu > li > a {
    color: var(--text-primary) !important;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
    background-color: var(--bg-hover) !important;
    color: var(--accent) !important;
}

/* Breadcrumbs */
.breadcrumb {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

.breadcrumb > li > a {
    color: var(--accent) !important;
}

/* Progress bars */
.progress {
    background-color: var(--bg-tertiary) !important;
}

.progress-bar {
    background-color: var(--accent) !important;
}

/* ========================================
   Страница бронирования - тёмная таблица
   ======================================== */

/* Контейнер таблицы бронирования */
.booking-table-wrapper,
.booking-new-container {
    background-color: transparent !important;
}

/* Таблица бронирования */
.booking-table {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
}

.booking-table th {
    background-color: var(--bg-tertiary) !important;
    color: var(--text-heading) !important;
    border: 1px solid var(--border-color) !important;
}

.booking-table td {
    background-color: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
    border: 1px solid var(--border-color) !important;
}

.booking-table .time-cell {
    background-color: var(--bg-tertiary) !important;
    color: var(--text-heading) !important;
}

[data-theme="light"] .booking-table th,
[data-theme="light"] .booking-table.table th,
[data-theme="light"] .booking-table .time-cell,
[data-theme="light"] .booking-table.table .time-cell {
    background-color: #D3C1B1 !important;
    color: #2D493D !important;
    border-color: #B9A697 !important;
    font-weight: 700 !important;
}

[data-theme="light"] .booking-table th:first-child,
[data-theme="light"] .booking-table.table th:first-child,
[data-theme="light"] .booking-table .time-cell,
[data-theme="light"] .booking-table.table .time-cell {
    border-right-color: #9D7F68 !important;
}

/* Кнопка бронирования */
.booking-btn,
.book-button {
    background-color: transparent !important;
    border: 2px solid var(--accent) !important;
    color: var(--accent) !important;
}

.booking-btn:hover,
.book-button:hover {
    background-color: var(--accent) !important;
    color: var(--text-on-accent) !important;
}

.booking-btn:disabled,
.book-button:disabled {
    background-color: var(--border-color) !important;
    border-color: var(--text-muted) !important;
    color: var(--text-muted) !important;
    opacity: 0.5 !important;
}

/* Селекторы длительности */
.booking-duration select,
.booking-duration input {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-heading) !important;
}

/* Занятые слоты */
.booking.occupied,
.booking-occupied {
    background-color: #e57373 !important;
    opacity: 0.7;
}

/* Свободные слоты */
.booking.available,
.booking-available {
    background-color: #81c784 !important;
}

/* Тренировки */
.booking.training {
    background-color: #4fc3f7 !important;
}

/* Активный день в календаре бронирования */
.search__item-label {
    background-color: var(--accent) !important;
    color: var(--text-on-accent) !important;
}

/* Выделенные интервалы для бронирования */
.booking-table td.selected,
.booking-table td.selected-interval,
.booking-table td:hover,
.booking-interval.selected {
    background-color: var(--accent) !important;
    color: var(--text-on-accent) !important;
    cursor: pointer !important;
    box-shadow: inset 0 0 10px var(--accent-glow) !important;
}

/* Календарь бронирования - переопределение инлайновых стилей */
.search__item {
    background: var(--card-gradient-short) !important;
    border: 1px solid var(--border-subtle) !important;
    color: var(--text-primary) !important;
}

.search__item-day,
.search__item-date,
.search__item-week {
    color: var(--text-heading) !important;
}

/* Активный день - максимальная специфичность для переопределения custom.css */
html body .search .search__container .search__list .search__item.search__item--active,
html body .search__item.search__item--active,
html body .search__item--active,
.search .search__list li .search__item.search__item--active {
    background: var(--card-gradient-short) !important;
    border: 2px solid var(--accent) !important;
    border-color: var(--accent) !important;
    box-shadow: 
        0 4px 16px var(--accent-glow),
        var(--card-inset-top) !important;
}

html body .search .search__container .search__list .search__item.search__item--active .search__item-date,
html body .search__item.search__item--active .search__item-date,
html body .search__item--active .search__item-date,
.search .search__list li .search__item.search__item--active .search__item-date {
    color: var(--accent) !important;
}

/* Блок завершения бронирования */
.booking-summary,
.booking-complete,
.booking-confirmation,
.booking-details-panel,
.booking-info-box,
.selected-intervals,
div[style*="background-color: white"],
div[style*="background: white"],
div[style*="background-color:#fff"],
div[style*="background:#fff"],
div[style*="background-color: rgb(255, 255, 255)"],
div[style*="background: rgb(255, 255, 255)"] {
    background-color: var(--bg-secondary) !important;
    background: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-primary) !important;
    padding: 20px !important;
    border-radius: 12px !important;
}

/* Все белые div внутри страницы бронирования */
#booking-new-root div[style*="background"],
#booking-iframe-root div[style*="background"] {
    background-color: var(--bg-secondary) !important;
    background: var(--bg-secondary) !important;
}

/* Специально для selected-intervals */
.selected-intervals,
.selected-intervals div,
.selected-intervals * {
    background-color: var(--bg-secondary) !important;
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

/* Текст в блоке завершения */
.booking-summary h3,
.booking-summary h4,
.booking-complete h3,
.booking-complete h4,
.booking-summary *,
.booking-complete *,
.selected-intervals h3,
.selected-intervals h4,
.selected-intervals span,
.selected-intervals div {
    color: var(--text-primary) !important;
}

.booking-summary p,
.booking-summary div,
.booking-complete p,
.booking-complete div {
    color: var(--text-primary) !important;
}

/* Цена в блоке завершения */
.booking-price,
.booking-total,
.price-info,
div[style*="font-weight: bold"] {
    color: var(--accent) !important;
    font-size: 1.2em !important;
    font-weight: bold !important;
}

/* Кнопки в блоке завершения */
.booking-summary .btn,
.booking-complete .btn {
    margin-top: 10px;
}

/* Кнопка "Забронировать выбранное" */
button[style*="background-color: rgb(255, 193, 7)"],
button[style*="background: rgb(255, 193, 7)"],
.btn-booking-confirm {
    background-color: transparent !important;
    background: transparent !important;
    border: 2px solid var(--accent) !important;
    color: var(--accent) !important;
}

button[style*="background-color: rgb(255, 193, 7)"]:hover,
button[style*="background: rgb(255, 193, 7)"]:hover,
.btn-booking-confirm:hover {
    background-color: var(--accent) !important;
    background: var(--accent) !important;
    color: var(--text-on-accent) !important;
}

/* Поля ввода в форме бронирования */
.booking-form input,
.booking-form textarea,
.booking-form select {
    background-color: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-heading) !important;
}

.booking-form label {
    color: var(--text-primary) !important;
}

/* ========================================
   Контейнеры контента - тёмный стиль
   ======================================== */

.content,
.days,
.content.days {
    background-color: var(--bg-primary) !important;
    color: var(--text-primary) !important;
}

/* ========================================
   Карточки слотов - тёмный стиль с бликами
   ======================================== */

.slots__item {
    background: var(--card-gradient) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: 16px !important;
    box-shadow: 
        var(--card-shadow),
        var(--card-inset-top),
        var(--card-inset-bottom) !important;
    color: var(--text-primary);
    position: relative;
    overflow: hidden;
}

/* Блик на карточке */
.slots__item::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 50%;
    background: var(--card-glare);
    border-radius: 16px 16px 0 0;
    pointer-events: none;
}

.slots__item:hover {
    border-color: var(--accent) !important;
    box-shadow: 
        var(--card-shadow-hover),
        0 0 20px var(--accent-glow),
        var(--card-inset-top) !important;
    transform: translateY(-2px);
    transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

.slots__item-description-item-label {
    color: var(--text-muted) !important;
    font-size: 12px;
    text-transform: uppercase;
}

.slots__item-description-item-value {
    color: var(--text-heading) !important;
    font-weight: 500;
}

/* Время игр */
.slots__item-description-item--time .slots__item-description-item-value {
    color: var(--text-heading) !important;
    font-weight: bold;
    font-size: 1.3em;
}

/* Иконки в карточках — стили перенесены в секцию карточек */

.slots__item .fa,
.slots__item .fas,
.slots__item .far,
.slots__item .icon,
.slots__item [class*="icon-"] {
    color: var(--accent) !important;
}

/* Пустые слоты игроков */
.slots__item-place-user--empty {
    background-color: var(--slot-empty-bg) !important;
    border: 1px dashed var(--slot-empty-border) !important;
}

/* ========================================
   Кнопки в карточках
   ======================================== */

/* Стили кнопок перенесены в секцию карточек */

/* Кнопка отмены - оставляем как есть (красная/розовая) */
.slots__item .btn-danger,
.slots__item-record.btn-danger {
    background-color: #e57373 !important;
    border-color: #e57373 !important;
    color: #fff !important;
    border-radius: 8px !important;
}

/* Кнопка успеха - акцент */
.slots__item .btn-success,
.slots__item-record.btn-success {
    background-color: var(--accent) !important;
    border-color: var(--accent) !important;
    color: var(--text-on-accent) !important;
    border-radius: 8px !important;
}

.slots__item .btn-success:hover,
.slots__item-record.btn-success:hover {
    background-color: var(--accent-hover) !important;
    border-color: var(--accent-hover) !important;
}

/* Розовая кнопка для девочек */
.slots__item .btn-pink {
    background-color: #f06292 !important;
    border-color: #f06292 !important;
    color: #ffffff !important;
    border-radius: 8px !important;
}

.slots__item .btn-pink:hover {
    background-color: #ec407a !important;
    border-color: #ec407a !important;
}

/* Синяя кнопка для мальчиков */
.slots__item .btn-info {
    background-color: #4fc3f7 !important;
    border-color: #4fc3f7 !important;
    color: var(--text-on-accent) !important;
    border-radius: 8px !important;
}

.slots__item .btn-info:hover {
    background-color: #29b6f6 !important;
    border-color: #29b6f6 !important;
}

.slots__item .alert-info,
.slots__item-record.alert-info {
    background-color: var(--border-color) !important;
    border-color: var(--text-muted) !important;
    color: var(--text-secondary) !important;
}

.slots__item-summary {
    margin-bottom: 14px;
    padding: 12px 14px;
    background: rgba(255, 255, 255, 0.04);
    border-radius: 14px;
    text-align: center;
}

.slots__item-summary-time {
    color: var(--text-heading);
    font-size: 22px;
    font-weight: 700;
    line-height: 1.15;
}

.slots__item-summary-meta {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
    color: var(--text-muted);
    font-size: 14px;
    line-height: 1.2;
}

.slots__item-summary-weather {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.slots__item-summary-weather-icon {
    width: 20px;
    height: 20px;
    object-fit: contain;
}

.slots__item-summary-weather .fas {
    color: var(--accent) !important;
    font-size: 14px;
}

.slots__item-summary-separator {
    color: var(--text-muted);
    opacity: 0.8;
}

/* ========================================
   Календарь - тёмный стиль с бликами
   ======================================== */

.calendar-wrapper,
.slots__calendar,
.search__calendar {
    background-color: transparent !important;
}

.calendar-button,
.search__item {
    background: var(--card-gradient-short) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: 12px !important;
    color: var(--text-primary) !important;
    box-shadow: 
        var(--card-shadow),
        var(--card-inset-top) !important;
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.calendar-button:hover,
.search__item:hover {
    border-color: var(--accent) !important;
}

.calendar-button.active,
.calendar-button--active,
.search__item.active,
.search__item--active {
    background: var(--card-gradient-short) !important;
    border: 2px solid var(--accent) !important;
    color: var(--accent) !important;
    box-shadow: 
        0 4px 16px var(--accent-glow),
        var(--card-inset-top) !important;
}

/* Текст внутри search__item */
.search__item-day,
.search__item-date {
    color: var(--text-heading) !important;
}

.search-calendar {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    grid-template-rows: auto;
    grid-template-areas: "prev days next";
    column-gap: 8px;
    align-items: end;
    width: 100%;
    max-width: 672px;
    margin: 0 auto;
    padding-top: 22px;
    box-sizing: border-box;
}

.search-calendar__nav--prev {
    grid-area: prev;
}

.search-calendar__scroll {
    grid-area: days;
}

.search-calendar__nav--next {
    grid-area: next;
}

.search-calendar__nav {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 56px;
    position: relative;
    z-index: 2;
    flex-shrink: 0;
    min-width: 44px;
}

.search-calendar__arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 56px;
    border-radius: 10px;
    background: var(--card-gradient-short) !important;
    border: 1px solid var(--border-color) !important;
    color: var(--text-heading) !important;
    font-size: 26px;
    font-weight: bold;
    line-height: 1;
    text-decoration: none !important;
    box-sizing: border-box;
    box-shadow: var(--card-shadow), var(--card-inset-top) !important;
}

.search-calendar__arrow:hover,
.search-calendar__arrow:focus {
    border-color: var(--accent) !important;
    color: var(--accent) !important;
    text-decoration: none !important;
}

.search-calendar__arrow--disabled {
    opacity: 0.35;
    pointer-events: none;
}

.search-calendar__scroll {
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.search-calendar__scroll::-webkit-scrollbar {
    display: none;
}

.search--compact-calendar .search-calendar__scroll .search__list--days {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: flex-end;
    gap: 6px;
    margin: 0;
    padding: 0 2px 2px;
    list-style: none;
    overflow: visible;
}

.search--compact-calendar .search-calendar__scroll .search__list--days > li {
    flex: 0 0 auto;
    padding: 0;
    margin: 0;
}

.search--compact-calendar .search__item--day {
    position: relative;
    width: 52px !important;
    min-width: 52px !important;
}

.search--compact-calendar .search__item--day .search__item-label {
    top: -20px;
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(100% + 10px);
    padding: 2px 8px;
    text-align: center;
    white-space: nowrap;
}

.search__item.active .search__item-date,
.search__item--active .search__item-date {
    color: var(--accent) !important;
}

.search__item-week {
    color: var(--text-muted) !important;
}

.calendar-button .day-name {
    color: var(--text-muted) !important;
    font-size: 11px;
    text-transform: uppercase;
}

.calendar-button .day-number {
    color: var(--text-heading) !important;
    font-weight: 600;
    font-size: 1.4em;
}

.calendar-button.active .day-number,
.calendar-button--active .day-number {
    color: var(--accent) !important;
}

/* Точки под датами */
.calendar-button .dots {
    color: var(--accent) !important;
}

.search__item {
    box-sizing: border-box !important;
    height: 96px !important;
}

.search--compact-calendar .search__item {
    display: flex !important;
    height: 72px !important;
    min-height: 72px !important;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 10px 14px 8px !important;
}

.search--compact-calendar .search__container {
    padding-top: 24px !important;
    padding-bottom: 18px !important;
}

.search--compact-calendar + .content.days {
    padding-top: 16px !important;
}

.search--compact-calendar + .content.days .days__title {
    margin-bottom: 24px !important;
}

.search--compact-calendar + .content.days .days__item-title--search {
    margin-bottom: 16px !important;
}

.search--compact-calendar .search__item-day {
    margin-bottom: 5px;
    font-size: 13px;
    line-height: 1.1;
}

.search--compact-calendar .search__item-date {
    margin-bottom: 0 !important;
    font-size: 28px;
    line-height: 1;
}

@media (min-width: 768px) {
    .search-calendar {
        display: grid !important;
        grid-template-columns: 44px auto 44px;
        grid-template-areas: "prev days next";
        column-gap: 10px;
        width: max-content;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }

    .search-calendar__nav {
        height: 72px;
    }

    .search-calendar__arrow {
        width: 44px;
        height: 72px;
        font-size: 28px;
    }

    .search-calendar__scroll {
        width: auto;
        overflow-x: visible;
    }

    .search--compact-calendar .search-calendar__scroll .search__list--days {
        justify-content: center;
        gap: 8px;
        padding: 0;
    }

    .search--compact-calendar .search__item--day {
        width: 72px !important;
        min-width: 72px !important;
        height: 72px !important;
        min-height: 72px !important;
        padding: 10px 8px 8px !important;
    }
}

@media (max-width: 767px) {
    .search--compact-calendar .search__container {
        padding-bottom: 12px !important;
    }

    .search--compact-calendar + .content.days {
        padding-top: 12px !important;
    }

    .search--compact-calendar + .content.days .days__title {
        margin-bottom: 18px !important;
    }

    .search--compact-calendar + .content.days .days__item-title--search {
        margin-bottom: 12px !important;
    }

    .search--compact-calendar .search__item {
        height: 68px !important;
        min-height: 68px !important;
        padding: 8px 12px 7px !important;
    }

    .search--compact-calendar .search__item-day {
        margin-bottom: 4px;
        font-size: 12px;
    }

    .search--compact-calendar .search__item-date {
        font-size: 26px;
    }
}

/* ========================================
   Фильтры (Все, Зал, Улица) - тёмный стиль
   ======================================== */

.filter-buttons,
.slots__filter {
    background-color: transparent !important;
}

.filter-btn,
.slots__filter-btn {
    background: var(--card-gradient-short) !important;
    border: 1px solid var(--border-subtle) !important;
    color: var(--text-primary) !important;
    border-radius: 20px !important;
    box-shadow: var(--card-shadow);
    transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.filter-btn:hover,
.slots__filter-btn:hover {
    border-color: var(--accent) !important;
}

.filter-btn.active,
.filter-btn--active,
.slots__filter-btn.active {
    background: var(--card-gradient-short) !important;
    border: 2px solid var(--text-heading) !important;
    color: var(--text-heading) !important;
    font-weight: 600;
}

/* ========================================
   Футер - тёмный стиль
   ======================================== */

.footer,
footer {
    background-color: var(--footer-bg) !important;
    border-top: 1px solid var(--bg-secondary) !important;
    color: var(--text-muted) !important;
}

.footer a,
footer a {
    color: var(--accent) !important;
}

.footer a:hover,
footer a:hover {
    color: var(--accent-hover) !important;
}

.footer__inner {
    text-align: center;
    padding: 1.25rem 12px 1.5rem;
    max-width: 52rem;
    margin-left: auto;
    margin-right: auto;
}

.footer__copyright,
.footer__company,
.footer__offer,
.footer__tagline {
    margin: 0 0 0.65rem;
    line-height: 1.45;
    font-size: clamp(13px, 1.5vw, 15px);
    color: var(--text-secondary) !important;
}

.footer__copyright {
    margin-bottom: 0.5rem;
    font-size: clamp(14px, 1.6vw, 16px);
}

.footer__company--meta {
    font-size: clamp(12px, 1.35vw, 14px);
    color: var(--text-muted) !important;
    margin-top: -0.35rem;
}

.footer__offer {
    margin: 0.75rem 0 0.85rem;
}

.footer__offer a {
    font-weight: 500;
}

.footer__tagline {
    margin-bottom: 0;
    max-width: 42rem;
    margin-left: auto;
    margin-right: auto;
    hyphens: auto;
    word-wrap: break-word;
    overflow-wrap: break-word;
    text-align: center;
}

@media (max-width: 576px) {
    .footer__inner {
        padding-left: 16px;
        padding-right: 16px;
    }
}

/* ========================================
   Ссылки и текст
   ======================================== */

a {
    color: var(--link-color);
}

a:hover {
    color: var(--link-hover);
}

/* Текст в карточках */
.game__list-user-name a,
.slots__item a {
    color: var(--text-primary) !important;
}

/* ========================================
   Прочие элементы
   ======================================== */

/* Разделители */
hr {
    border-color: var(--border-color);
}

/* Панели и блоки */
.panel,
.well {
    background-color: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary);
}

/* Алерты */
.alert {
    background-color: var(--bg-secondary) !important;
    border-color: var(--border-color) !important;
    color: var(--text-primary) !important;
}

/* Метка "сегодня" */
.today-label,
.calendar-today {
    background-color: var(--accent) !important;
    color: var(--text-on-accent) !important;
    border-radius: 12px;
    padding: 2px 10px;
    font-weight: 600;
    font-size: 12px;
    text-transform: uppercase;
}

/* ========================================
   Секция с играми - тёмный фон
   ======================================== */

.slots,
.games-section,
.slots__list {
    background-color: transparent !important;
}

/* Заголовки дат */
.slots__section-title,
.slots h3,
.slots h4 {
    color: var(--text-heading) !important;
}

/* Блок "Сегодня игр пока нет" */
.slots__empty,
.slots__item--empty,
.no-games-message {
    background: var(--card-gradient) !important;
    border: 1px solid var(--border-subtle) !important;
    border-radius: 16px !important;
    color: var(--text-muted) !important;
    box-shadow: 
        var(--card-shadow),
        var(--card-inset-top) !important;
}

/* ========================================
   Золотая линия под хедером
   ======================================== */

.header::after {
    content: '';
    display: block;
    height: 2px;
    background: var(--header-line);
    box-shadow: 0 1px 4px var(--accent-glow);
}

/* ========================================
   ФИНАЛЬНЫЕ ПЕРЕОПРЕДЕЛЕНИЯ - максимальный приоритет
   ======================================== */

/* Активный день календаря - акцентная обводка */
.search__item--active,
.search__item.search__item--active,
div.search__item--active,
div.search__item.search__item--active {
    background: var(--card-gradient-short) !important;
    border: 2px solid var(--accent) !important;
    box-shadow: 0 4px 16px var(--accent-glow), var(--card-inset-top) !important;
}

.search__item--active .search__item-date,
.search__item.search__item--active .search__item-date,
div.search__item--active .search__item-date {
    color: var(--accent) !important;
}

/* Tablet/mobile header fixes */
@media (max-width: 1199px) {
    .header .navbar-header {
        position: relative !important;
        min-height: 60px !important;
        padding: 5px 0 !important;
    }

    .header .navbar-brand {
        position: absolute !important;
        left: 0 !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        margin: 0 !important;
        padding: 5px !important;
    }

    .header .navbar-brand img {
        width: 50px !important;
        height: auto !important;
    }
}

/* Mobile header fixes */
@media (max-width: 767px) {
    /* Navbar-header с относительным позиционированием */
    .header .navbar-header {
        position: relative !important;
        min-height: 104px !important;
        padding: 5px 0 !important;
    }
    
    /* Лого слева */
    .header .navbar-brand {
        position: absolute !important;
        left: 0 !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        margin: 0 !important;
        padding: 5px !important;
    }
    
    /* Лого крупнее на мобильных экранах */
    .header .navbar-brand img {
        width: 92px !important;
        height: auto !important;
    }
    
    /* Адрес и телефон по центру */
    .header .header__address.hidden-lg {
        display: block !important;
        position: absolute !important;
        left: 50% !important;
        top: 50% !important;
        transform: translate(-50%, -50%) !important;
        margin: 0 !important;
        padding: 0 !important;
        font-size: 11px !important;
        line-height: 1.4 !important;
        text-align: center !important;
        white-space: nowrap !important;
    }
    
    /* Кнопка меню справа */
    .header .navbar-toggle {
        position: absolute !important;
        right: 12px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        margin: 0 !important;
    }
    
    /* Убираем горизонтальный скролл при открытом меню */
    .header .navbar-collapse.in {
        overflow-x: hidden !important;
        max-width: 100vw !important;
    }
    
    /* Пункты меню справа (как было) */
    .header .navbar-collapse.in .navbar-nav {
        text-align: right !important;
    }
    
    .header .navbar-collapse.in .navbar-nav > li > a {
        text-align: right !important;
    }
}

/* Глобально убираем горизонтальный скролл */
html, body {
    overflow-x: hidden;
}

/* Tooltip поверх карточек слотов */
.tooltip {
    z-index: 10000 !important;
    max-width: calc(100vw - 48px) !important;
}

.tooltip-inner {
    max-width: 220px !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}

/* Разрешаем tooltip выходить за границы карточки */
.slots__item {
    overflow: visible !important;
}

.slots__item::before {
    border-radius: 16px;
}

/* ========================================
   Ободок уровня игрока вокруг аватарки
   ======================================== */

:root,
[data-theme="dark"] {
    --player-avatar-ring-color: #d4af37;
}

[data-theme="light"] {
    --player-avatar-ring-color: #2D493D;
}

.player-avatar-wrapper {
    position: relative;
    display: inline-block;
}

.player-avatar-ring {
    position: absolute;
    top: -8px;
    left: -8px;
    right: -8px;
    bottom: -8px;
    border-radius: 50%;
    pointer-events: none;
}

/* base/start = 0 сегментов и не рисуются; first..medium = 1..4 сегмента */
.player-avatar-ring.level-1,
.player-avatar-ring.level-2,
.player-avatar-ring.level-3,
.player-avatar-ring.level-4 {
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 6px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 6px), #000 calc(100% - 6px));
}

/* first / first+ — 1 сегмент */
.player-avatar-ring.level-1 {
    background: conic-gradient(
        var(--player-avatar-ring-color) 0deg 82deg,
        transparent 82deg 360deg
    );
}

/* next / next+ — 2 сегмента */
.player-avatar-ring.level-2 {
    background: conic-gradient(
        var(--player-avatar-ring-color) 0deg 82deg,
        transparent 82deg 90deg,
        var(--player-avatar-ring-color) 90deg 172deg,
        transparent 172deg 360deg
    );
}

/* light — 3 сегмента */
.player-avatar-ring.level-3 {
    background: conic-gradient(
        var(--player-avatar-ring-color) 0deg 82deg,
        transparent 82deg 90deg,
        var(--player-avatar-ring-color) 90deg 172deg,
        transparent 172deg 180deg,
        var(--player-avatar-ring-color) 180deg 262deg,
        transparent 262deg 360deg
    );
}

/* medium — полный круг из 4 сегментов */
.player-avatar-ring.level-4 {
    background: conic-gradient(
        var(--player-avatar-ring-color) 0deg 82deg,
        transparent 82deg 90deg,
        var(--player-avatar-ring-color) 90deg 172deg,
        transparent 172deg 180deg,
        var(--player-avatar-ring-color) 180deg 262deg,
        transparent 262deg 270deg,
        var(--player-avatar-ring-color) 270deg 352deg,
        transparent 352deg 360deg
    );
}

/* Карточка игры: аватар — фикс. размер, иначе img-responsive растягивает блок и ободок на всю строку */
.game__list-user-photo {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 44px;
    min-width: 44px;
    max-width: 44px;
    vertical-align: middle;
    flex-shrink: 0;
    align-self: flex-start;
}

.game__list-user-photo .player-avatar-ring {
    z-index: 2;
    top: -5px;
    left: -5px;
    right: -5px;
    bottom: -5px;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
    mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px));
}

.game__list-user-photo img {
    position: relative;
    z-index: 1;
    border-radius: 50%;
    display: block;
    max-width: 44px !important;
    width: 44px !important;
    height: 44px !important;
    object-fit: cover;
}

.game__list-user {
    display: flex;
    align-items: center;
    gap: 10px;
}

.game__list-user-name {
    position: static !important;
    left: auto !important;
    top: auto !important;
    transform: none !important;
    flex: 1;
    min-width: 0;
}

/* ========================================
   Внутренняя страница события — единые иконки
   ======================================== */

.game__container {
    max-width: 860px !important;
}

.game__block {
    padding: 34px !important;
}

.weather-card {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
    margin: 0 0 18px !important;
    padding: 12px 16px !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 14px !important;
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
}

.weather-card__main {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.weather-card__icon {
    width: 46px !important;
    height: 46px !important;
    flex: 0 0 46px !important;
}

.weather-card__label {
    color: var(--text-muted) !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

.weather-card__temp {
    color: var(--text-heading) !important;
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
}

.weather-card__details {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    gap: 8px !important;
    color: var(--text-muted) !important;
    font-size: 13px !important;
}

.weather-card__details span {
    padding: 5px 9px !important;
    border-radius: 999px !important;
    background: var(--bg-tertiary) !important;
}

.game__description {
    display: flex !important;
    flex-direction: column !important;
    gap: 10px !important;
    padding: 0 !important;
    margin-bottom: 20px !important;
    list-style: none !important;
}

.game__description > .game__description-item,
.game__description > .slots__item-description-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    min-height: 42px !important;
    margin-bottom: 0 !important;
    padding: 8px 10px 8px 50px !important;
    position: relative !important;
    border-radius: 12px !important;
    background: var(--bg-tertiary) !important;
}

[data-theme="light"] .game__description > .game__description-item,
[data-theme="light"] .game__description > .slots__item-description-item {
    background: rgba(45, 73, 61, 0.035) !important;
}

[data-theme="dark"] .game__description > .game__description-item,
[data-theme="dark"] .game__description > .slots__item-description-item {
    background: #1f2433 !important;
}

.game__description > .game__description-item:before,
.game__description > .slots__item-description-item:before {
    content: '' !important;
    position: absolute !important;
    left: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    background: var(--accent) !important;
    border-radius: 50% !important;
    filter: none !important;
}

[data-theme="light"] .game__description > .game__description-item:before,
[data-theme="light"] .game__description > .slots__item-description-item:before {
    background: #2D493D !important;
}

.game__description > .game__description-item:after,
.game__description > .slots__item-description-item:after {
    position: absolute !important;
    left: 23px !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 1 !important;
    color: #fff !important;
    font-family: "Font Awesome 5 Free" !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    pointer-events: none !important;
}

[data-theme="dark"] .game__description > .game__description-item:after,
[data-theme="dark"] .game__description > .slots__item-description-item:after {
    color: #1a1f2e !important;
}

.game__description-item--time:after {
    content: '\f017' !important;
}

.game__description-item--place:after {
    content: '\f3c5' !important;
}

.game__description-item--level:after {
    content: '\f005' !important;
}

.game__description-item--coach:after {
    content: '\f007' !important;
}

.game__description-item--price:after {
    content: '\f158' !important;
}

.game__description-item--status:after {
    content: '\f00d' !important;
}

.game__description > .game__description-item--sex:after,
.game__description > .slots__item-description-item--sex:after {
    content: '\f228' !important;
    left: 22px !important;
    font-size: 12px !important;
}

.game__description > .game__description-item > *,
.game__description > .slots__item-description-item > * {
    padding-left: 0 !important;
}

.game__description > .game__description-item > div,
.game__description > .slots__item-description-item > div {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
}

.game__description > .game__description-item .game__description-item-label,
.game__description > .slots__item-description-item .slots__item-description-item-label {
    width: 58px !important;
    min-width: 58px !important;
    flex: 0 0 58px !important;
    margin-right: 8px !important;
    font-size: 11px !important;
    text-transform: capitalize !important;
    letter-spacing: 0 !important;
    margin-bottom: 0 !important;
    color: var(--text-muted) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
}

.game__description > .game__description-item .game__description-item-value,
.game__description > .slots__item-description-item .slots__item-description-item-value {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--text-heading) !important;
    line-height: 1.18 !important;
}

.game__description-item--time {
    min-height: 46px !important;
    padding-left: 54px !important;
    background: var(--bg-alt) !important;
}

[data-theme="light"] .game__description-item--time {
    background: rgba(45, 73, 61, 0.07) !important;
}

[data-theme="dark"] .game__description-item--time {
    background: #2f3749 !important;
}

.game__description-item--time:before {
    left: 8px !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
}

.game__description-item--time:after {
    left: 26px !important;
    font-size: 14px !important;
}

.game__description-item--time .game__description-item-value {
    font-size: 23px !important;
    line-height: 1.15 !important;
}

.slots__item-description-item--time .time-frame-stack {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    line-height: 1.08;
}

.slots__item-description-item--time .time-frame-stack__separator {
    line-height: 0.8;
}

.slots__item-description-item--time .time-frame-stack-mobile {
    display: none;
}

@media (max-width: 767px) {
    .slots__item-description-item--time .time-frame-stack--desktop {
        display: none;
    }

    .slots__item-description-item--time .time-frame-stack-mobile {
        display: inline;
    }
}

/* ========================================
   Карточки событий — стиль с иконками в кружках
   ======================================== */

.slots__item {
    padding: 18px !important;
    margin-bottom: 22px !important;
    border-radius: 18px !important;
    border: 1px solid var(--border-color) !important;
    background: var(--bg-secondary) !important;
    box-shadow: var(--card-shadow) !important;
    overflow: hidden !important;
}

[data-theme="light"] .slots__item {
    border-color: rgba(45, 73, 61, 0.16) !important;
    background: #FFFFFF !important;
    box-shadow: 0 12px 30px rgba(36, 36, 36, 0.08) !important;
}

[data-theme="dark"] .slots__item {
    border-color: #3d4558 !important;
    background: #252c3f !important;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.35) !important;
}

.slots__item-description {
    display: flex !important;
    flex-direction: column !important;
    gap: 8px !important;
    margin-bottom: 14px !important;
    padding: 0 !important;
    list-style: none !important;
}

.slots__item-description-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 10px 8px 46px !important;
    position: relative !important;
    min-height: 36px !important;
    border-radius: 12px !important;
    background: var(--bg-tertiary) !important;
}

.slots__item-description > .game__description-item {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 10px 8px 46px !important;
    position: relative !important;
    min-height: 36px !important;
    border-radius: 12px !important;
    background: var(--bg-tertiary) !important;
}

[data-theme="light"] .slots__item-description-item,
[data-theme="light"] .slots__item-description > .game__description-item {
    background: rgba(45, 73, 61, 0.035) !important;
}

[data-theme="dark"] .slots__item-description-item,
[data-theme="dark"] .slots__item-description > .game__description-item {
    background: #1f2433 !important;
}

/* Иконки в кружках: FontAwesome поверх зелёного круга */
.slots__item-description-item:before {
    content: '' !important;
    position: absolute !important;
    left: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    background: var(--accent) !important;
    border-radius: 50% !important;
    filter: none !important;
}

.slots__item-description > .game__description-item:before {
    content: '' !important;
    position: absolute !important;
    left: 8px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    background: var(--accent) !important;
    border-radius: 50% !important;
    filter: none !important;
}

[data-theme="light"] .slots__item-description-item:before,
[data-theme="light"] .slots__item-description > .game__description-item:before {
    background: #2D493D !important;
}

.slots__item-description-item:after {
    position: absolute !important;
    left: 23px !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 1 !important;
    color: #fff !important;
    font-family: "Font Awesome 5 Free" !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    pointer-events: none !important;
}

.slots__item-description > .game__description-item:after {
    position: absolute !important;
    left: 23px !important;
    top: 50% !important;
    transform: translate(-50%, -50%) !important;
    z-index: 1 !important;
    color: #fff !important;
    font-family: "Font Awesome 5 Free" !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    pointer-events: none !important;
}

[data-theme="dark"] .slots__item-description-item:after,
[data-theme="dark"] .slots__item-description > .game__description-item:after {
    color: #1a1f2e !important;
}

.slots__item-description-item--time:before {
    content: '' !important;
}
.slots__item-description-item--time:after {
    content: '\f017' !important;
}
.slots__item-description-item--place:before {
    content: '' !important;
}
.slots__item-description-item--place:after {
    content: '\f3c5' !important;
}
.slots__item-description-item--price:before,
.slots__item-description-item--cost:before {
    content: '' !important;
}
.slots__item-description-item--price:after,
.slots__item-description-item--cost:after {
    content: '\f158' !important;
}
.slots__item-description-item--level:before {
    content: '' !important;
}
.slots__item-description-item--level:after {
    content: '\f005' !important;
}
.slots__item-description-item--coach:before {
    content: '' !important;
}
.slots__item-description-item--coach:after {
    content: '\f007' !important;
}
.slots__item-description-item--sex:before {
    content: '' !important;
}
.slots__item-description-item--sex:after {
    content: '\f228' !important;
    left: 22px !important;
    font-size: 12px !important;
}

.slots__item-description-item--status:before {
    content: '' !important;
}
.slots__item-description-item--status:after {
    content: '\f00d' !important;
}

.slots__item-description-item--weather:before {
    content: '' !important;
}
.slots__item-description-item--weather:after {
    content: '\f2c9' !important;
}

.training-week-event__weather {
    color: var(--text-on-accent) !important;
    font-weight: 700 !important;
}

.training-week-event--joined .training-week-event__weather {
    color: var(--alert-success-text) !important;
}

.slots__item-description-item > * {
    padding-left: 0 !important;
}

.slots__item-description > .game__description-item > * {
    padding-left: 0 !important;
}

.slots__item-description-item > div {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
}

.slots__item-description > .game__description-item > div {
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
}

.slots__item-description-item:not(:last-child) {
    margin-bottom: 0 !important;
}

.slots__item-description > .game__description-item:not(:last-child) {
    margin-bottom: 0 !important;
}

.slots__item-description-item-label {
    width: 72px !important;
    min-width: 72px !important;
    flex: 0 0 72px !important;
    margin-right: 10px !important;
    font-size: 11px !important;
    text-transform: capitalize !important;
    letter-spacing: 0 !important;
    margin-bottom: 0 !important;
    color: var(--text-muted) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
}

.slots__item-description > .game__description-item .game__description-item-label {
    width: 72px !important;
    min-width: 72px !important;
    flex: 0 0 72px !important;
    margin-right: 10px !important;
    font-size: 11px !important;
    text-transform: capitalize !important;
    letter-spacing: 0 !important;
    margin-bottom: 0 !important;
    color: var(--text-muted) !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
}

.slots__item-description-item-value {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--text-heading) !important;
    line-height: 1.18 !important;
}

.slots__item-description > .game__description-item .game__description-item-value {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    font-size: 17px !important;
    font-weight: 700 !important;
    color: var(--text-heading) !important;
    line-height: 1.18 !important;
}

@media (min-width: 768px) {
    .slots__item-description-item--trainer {
        min-height: 54px !important;
    }

    .slots__item-description-item--trainer .slots__item-description-item-label {
        width: 62px !important;
        min-width: 62px !important;
        flex: 0 0 62px !important;
        margin-right: 8px !important;
    }

    .slots__item-description-item--trainer .slots__item-description-item-value {
        font-size: 13px !important;
        line-height: 1.12 !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }
}

.slots__item-description-item--time {
    padding: 10px 10px 10px 52px !important;
    min-height: 46px !important;
    background: var(--bg-alt) !important;
}

.slots__item-description-item--time .slots__item-description-item-label {
    width: 62px !important;
    min-width: 62px !important;
    flex-basis: 62px !important;
    margin-right: 8px !important;
}

[data-theme="light"] .slots__item-description-item--time {
    background: rgba(45, 73, 61, 0.07) !important;
}

[data-theme="dark"] .slots__item-description-item--time {
    background: #2f3749 !important;
}

.slots__item-description-item--time:before {
    left: 8px !important;
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    min-height: 36px !important;
}

.slots__item-description-item--time:after {
    left: 26px !important;
    font-size: 14px !important;
}

.slots__item-description-item--time .slots__item-description-item-value {
    font-size: 23px !important;
    font-weight: 700 !important;
    color: var(--text-heading) !important;
    line-height: 1.15 !important;
}

/* Аватарки игроков */
.slots__item-place {
    margin: 12px 0 14px !important;
    padding: 16px 22px !important;
    background: var(--bg-tertiary) !important;
    border: 1px solid var(--border-color) !important;
    border-radius: 16px !important;
}

[data-theme="light"] .slots__item-place {
    background: #F7F2ED !important;
    border-color: #E5DAD0 !important;
}

[data-theme="dark"] .slots__item-place {
    background: #1f2433 !important;
    border-color: #3d4558 !important;
}

.slots__item-place .row {
    display: grid !important;
    grid-template-columns: repeat(3, 54px) !important;
    gap: 12px 14px !important;
    margin: 0 auto !important;
    align-items: center !important;
    justify-content: center !important;
    justify-items: center !important;
}

.slots__item-place .row:before,
.slots__item-place .row:after {
    content: none !important;
    display: none !important;
}

.slots__item-place .row > div {
    float: none !important;
    width: 54px !important;
    max-width: 54px !important;
    height: 54px !important;
    padding: 0 !important;
    flex: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.slots__item-place-user {
    position: relative !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 50% !important;
    overflow: visible !important;
}

.slots__item-place-user .player-avatar-ring {
    z-index: 0;
    top: -5px !important;
    left: -5px !important;
    right: -5px !important;
    bottom: -5px !important;
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)) !important;
    mask: radial-gradient(farthest-side, transparent calc(100% - 3px), #000 calc(100% - 3px)) !important;
}

.slots__item-place-user-img {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

.slots__item-place-user--empty {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    border-radius: 50% !important;
    background: var(--bg-secondary) !important;
    border: 1px solid var(--border-color) !important;
    background-image: none !important;
}

[data-theme="light"] .slots__item-place-user--empty {
    background: #FFFFFF !important;
    border-color: #D9CFC5 !important;
}

[data-theme="dark"] .slots__item-place-user--empty {
    background: #2a3142 !important;
    border-color: #4a5568 !important;
}

/* Кнопки записи */
.slots__item p {
    margin: 12px 0 0 !important;
}

.slots__item p:first-of-type {
    margin-top: 14px !important;
}

.slots__item .d-flex {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
}

.slots__item .d-flex p {
    margin: 0 !important;
}

.slots__item-friend-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
}

.slots__item-friend-actions .slots__item-record,
.slots__item-friend-actions .game__record {
    flex: 1 1 calc(50% - 4px) !important;
    width: auto !important;
    margin: 0 !important;
}

.slots__item-record {
    display: block !important;
    width: 100% !important;
    padding: 12px 16px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    text-align: center !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    transition: transform .15s ease, box-shadow .15s ease, background-color .15s ease !important;
}

.slots__item-record:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 8px 18px rgba(36, 36, 36, 0.12) !important;
}

/* Кнопка записи - с заливкой */
.slots__item .btn-primary,
.slots__item-record.btn-primary {
    background-color: var(--accent) !important;
    border: none !important;
    color: var(--text-on-accent) !important;
}

.slots__item .btn-primary:hover,
.slots__item-record.btn-primary:hover {
    background-color: var(--accent-hover) !important;
}

.slots__item .btn-pink,
.slots__item-record.btn-pink {
    background-color: #E9548C !important;
    border: none !important;
    color: #fff !important;
}

.slots__item .btn-pink:hover,
.slots__item-record.btn-pink:hover {
    background-color: #D8447B !important;
}

.slots__item .btn-danger,
.slots__item-record.btn-danger {
    background-color: #E46B6F !important;
    border: none !important;
    color: #fff !important;
}

.slots__item .btn-danger:hover,
.slots__item-record.btn-danger:hover {
    background-color: #D85C60 !important;
}

/* Убираем старую зелёную обводку текущего пользователя */
.slots__item-place-user--current:after {
    display: none;
}

/* Адаптив для мобильных */
@media (max-width: 767px) {
    .tooltip {
        left: 50% !important;
        right: auto !important;
        width: max-content !important;
        min-width: 120px !important;
        max-width: calc(100vw - 32px) !important;
        transform: translateX(-50%) !important;
    }

    .tooltip-inner {
        width: auto !important;
        min-width: 120px !important;
        max-width: calc(100vw - 32px) !important;
        text-align: center !important;
    }

    .slots__item {
        padding: 16px !important;
    }
    
    .slots__item-description {
        gap: 12px !important;
    }
    
    .slots__item-description-item:before {
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
        min-height: 30px !important;
    }

    .slots__item-description-item {
        padding-left: 46px !important;
        min-height: 36px !important;
    }

    .slots__item-description > .game__description-item {
        padding-left: 46px !important;
        min-height: 36px !important;
    }

    .slots__item-description-item:after {
        left: 23px !important;
        font-size: 13px !important;
    }

    .slots__item-description > .game__description-item:before {
        width: 30px !important;
        height: 30px !important;
        min-width: 30px !important;
        min-height: 30px !important;
    }

    .slots__item-description > .game__description-item:after {
        left: 23px !important;
        font-size: 13px !important;
    }
    
    .slots__item-description-item-value {
        font-size: 16px !important;
    }
    
    .slots__item-description-item--time .slots__item-description-item-value {
        font-size: 20px !important;
    }
    
    .slots__item-place-user,
    .slots__item-place-user-img,
    .slots__item-place-user--empty {
        width: 52px !important;
        height: 52px !important;
        min-width: 52px !important;
        min-height: 52px !important;
    }
}

.training-mobile-only {
    display: none !important;
}

.training-desktop-only {
    display: block !important;
}

@media (min-width: 768px) {
    .trainings-search.search--compact-calendar .search__list {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: flex-end !important;
        justify-content: center !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: 760px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding: 20px 0 4px !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        white-space: nowrap !important;
        scrollbar-width: none !important;
    }

    .trainings-search.search--compact-calendar .search__list::-webkit-scrollbar {
        display: none !important;
    }

    .trainings-search.search--compact-calendar .search__list > li {
        flex: 0 0 auto !important;
        float: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .trainings-search.search--compact-calendar .search__item {
        width: 58px !important;
        min-width: 58px !important;
        height: 72px !important;
        min-height: 72px !important;
        padding: 9px 8px 7px !important;
    }

    .trainings-search.search--compact-calendar .search__item[style] {
        width: 48px !important;
        min-width: 48px !important;
    }

    .trainings-search.search--compact-calendar .training-calendar-today {
        width: 82px !important;
        min-width: 82px !important;
    }

    .trainings-search.search--compact-calendar .training-calendar-today .search__item-day {
        margin-bottom: 3px !important;
        font-size: 12px !important;
        font-weight: 800 !important;
    }

    .trainings-search.search--compact-calendar .training-calendar-today .search__item-date {
        font-size: 22px !important;
        line-height: 1 !important;
    }

    .trainings-search.search--compact-calendar .search__item-label {
        top: -18px !important;
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%) !important;
        white-space: nowrap !important;
    }

    .training-filters-panel {
        max-width: 760px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .training-abonement-wizard-holder {
        width: 100% !important;
        max-width: 1040px !important;
        margin: 0 auto 20px !important;
    }

    .training-abonement-wizard-holder .abonement-wizard {
        margin: 0 !important;
    }

    .training-desktop-only {
        width: 100% !important;
    }

    .training-desktop-day-list {
        display: flex !important;
        flex-direction: column !important;
        gap: 28px !important;
        width: 100% !important;
        max-width: 1040px !important;
        margin: 0 auto !important;
    }

    .training-desktop-day {
        width: 100% !important;
    }

    .training-desktop-day[hidden] {
        display: none !important;
    }

    .training-desktop-day__header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 16px !important;
        margin-bottom: 12px !important;
    }

    .training-desktop-day__title {
        margin: 0 !important;
        text-align: left !important;
    }

    .training-desktop-day__count {
        flex: 0 0 auto !important;
        padding: 6px 12px !important;
        border-radius: 999px !important;
        background: var(--bg-secondary) !important;
        color: var(--text-muted) !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }

    .training-desktop-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 420px)) !important;
        gap: 16px !important;
        align-items: stretch !important;
        justify-content: start !important;
        width: 100% !important;
    }

    .training-compact-card {
        position: relative !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 9px !important;
        min-width: 0 !important;
        min-height: 0 !important;
        padding: 14px !important;
        border: 1px solid var(--border-subtle) !important;
        border-radius: 14px !important;
        background: var(--bg-secondary) !important;
        box-shadow: 0 8px 22px rgba(0, 0, 0, 0.06) !important;
    }

    .training-compact-card__link {
        position: absolute !important;
        inset: 0 !important;
        z-index: 1 !important;
        border-radius: inherit !important;
    }

    .training-compact-card__header {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        gap: 12px !important;
        padding: 10px 12px !important;
        border-radius: 10px !important;
        background: var(--bg-tertiary) !important;
    }

    .training-compact-card__time {
        color: var(--text-heading) !important;
        font-size: 24px !important;
        font-weight: 900 !important;
        line-height: 1.08 !important;
        white-space: pre-line !important;
    }

    .training-compact-card__counter {
        flex: 0 0 auto !important;
        padding: 5px 9px !important;
        border-radius: 999px !important;
        background: var(--accent) !important;
        color: var(--text-on-accent) !important;
        font-size: 13px !important;
        font-weight: 900 !important;
    }

    .training-compact-card__meta {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 6px !important;
    }

    .training-compact-card__row {
        display: grid !important;
        grid-template-columns: 72px minmax(0, 1fr) !important;
        align-items: center !important;
        gap: 8px !important;
        min-height: 32px !important;
        padding: 6px 9px !important;
        border-radius: 9px !important;
        background: var(--bg-tertiary) !important;
    }

    .training-compact-card__row--coach {
        grid-column: 1 / -1 !important;
    }

    .training-compact-card__label {
        color: var(--text-muted) !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 1.1 !important;
    }

    .training-compact-card__value {
        min-width: 0 !important;
        color: var(--text-heading) !important;
        font-size: 14px !important;
        font-weight: 800 !important;
        line-height: 1.15 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
    }

    .training-compact-card__row--coach .training-compact-card__value {
        font-size: 15px !important;
        font-weight: 900 !important;
        white-space: normal !important;
    }

    .training-compact-card__players {
        padding: 9px !important;
        border: 1px solid var(--border-color) !important;
        border-radius: 11px !important;
        background: var(--bg-primary) !important;
    }

    .training-compact-card__players-head {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        margin-bottom: 8px !important;
        color: var(--text-secondary) !important;
        font-size: 12px !important;
        font-weight: 800 !important;
    }

    .training-compact-card__avatars {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 8px !important;
        min-height: 44px !important;
    }

    .training-compact-card__avatar {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        border: 1px solid var(--border-color) !important;
        border-radius: 50% !important;
        background: var(--bg-secondary) !important;
        overflow: hidden !important;
    }

    .training-compact-card__avatar img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }

    .training-compact-card__empty {
        color: var(--text-muted) !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        line-height: 30px !important;
    }

    .training-compact-card__actions {
        position: relative !important;
        z-index: 2 !important;
        display: flex !important;
    }

    .training-compact-card__button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 100% !important;
        min-height: 38px !important;
        padding: 9px 14px !important;
        border: 1px solid transparent !important;
        border-radius: 10px !important;
        font-size: 14px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
        text-align: center !important;
        text-decoration: none !important;
    }

    .training-compact-card__button--join {
        background: var(--accent) !important;
        color: var(--text-on-accent) !important;
    }

    .training-compact-card__button--leave {
        background: var(--bg-secondary) !important;
        border-color: #E46B6F !important;
        color: #E46B6F !important;
    }

    .training-compact-card__button--disabled {
        background: var(--bg-tertiary) !important;
        color: var(--text-muted) !important;
    }
}

@media (max-width: 767px) {
    .trainings-search.search--compact-calendar {
        padding-bottom: 8px !important;
    }

    .trainings-search.search--compact-calendar .search__container {
        padding-bottom: 0 !important;
    }

    .trainings-search.search--compact-calendar .search__list {
        display: none !important;
    }

    .training-toolbar {
        gap: 10px !important;
    }

    .training-toolbar .training-tabs,
    .training-view-switch {
        width: 100% !important;
        border: 1px solid var(--border-color) !important;
        border-radius: 18px !important;
        background: var(--bg-secondary) !important;
        overflow: hidden !important;
    }

    .training-tab,
    .training-view-switch__item {
        flex: 1 1 0 !important;
        justify-content: center !important;
        border-radius: 16px !important;
        text-align: center !important;
    }

    .training-filters-panel {
        border-radius: 16px !important;
        background: var(--bg-secondary) !important;
    }

    .training-filters-panel__summary {
        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        min-height: 44px !important;
    }

    .training-filters-panel__body {
        gap: 14px !important;
    }

    .training-filters-panel .filter-link {
        border-radius: 999px !important;
        padding: 8px 12px !important;
    }

    .training-filters-reset {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 28px !important;
        margin-left: auto !important;
        padding: 5px 10px !important;
        border: 1px solid var(--border-color) !important;
        border-radius: 999px !important;
        background: var(--bg-tertiary) !important;
        color: var(--text-secondary) !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        text-decoration: none !important;
    }

    .training-filters-reset[hidden] {
        display: none !important;
    }

    .trainings-mobile-day-view {
        padding-top: 8px !important;
        padding-bottom: 18px !important;
        background: var(--bg-primary) !important;
    }

    .trainings-mobile-day-view .container {
        width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    .trainings-mobile-day-view .days__container {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
    }

    .training-abonement-wizard-holder .abonement-wizard {
        margin: 0 !important;
    }

    .training-abonement-wizard-holder .abonement-wizard__open-btn {
        display: none !important;
    }

    .training-mobile-only {
        display: flex !important;
        flex-direction: column !important;
        gap: 14px !important;
    }

    .training-desktop-only {
        display: none !important;
    }

    .training-day-group {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .training-day-group__header {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 10px !important;
        padding: 0 4px !important;
    }

    .training-day-group__title {
        display: inline-flex !important;
        align-items: center !important;
        gap: 8px !important;
        min-width: 0 !important;
        color: var(--text-heading) !important;
        font-size: 15px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
    }

    .training-day-group__icon,
    .training-day-group__empty-icon {
        position: relative !important;
        width: 28px !important;
        height: 28px !important;
        flex: 0 0 28px !important;
        border: 1px solid var(--border-color) !important;
        border-radius: 8px !important;
        background: var(--bg-secondary) !important;
    }

    .training-day-group__icon:after {
        content: '\f073' !important;
        position: absolute !important;
        inset: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: var(--accent) !important;
        font-family: "Font Awesome 5 Free" !important;
        font-size: 13px !important;
        font-weight: 900 !important;
    }

    .training-day-group__count {
        flex: 0 0 auto !important;
        padding: 5px 10px !important;
        border-radius: 999px !important;
        background: var(--bg-secondary) !important;
        color: var(--text-muted) !important;
        font-size: 12px !important;
        font-weight: 700 !important;
        white-space: nowrap !important;
    }

    .training-day-group__list {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .training-day-group__empty {
        display: flex !important;
        align-items: center !important;
        gap: 12px !important;
        min-height: 62px !important;
        padding: 12px 16px !important;
        border: 1px dashed var(--border-color) !important;
        border-radius: 14px !important;
        background: var(--bg-secondary) !important;
    }

    .training-day-group__empty-icon:after {
        content: '\f5ca' !important;
        position: absolute !important;
        inset: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: var(--accent) !important;
        font-family: "Font Awesome 5 Free" !important;
        font-size: 13px !important;
        font-weight: 900 !important;
    }

    .training-day-group__empty-title {
        color: var(--text-heading) !important;
        font-size: 14px !important;
        font-weight: 800 !important;
        line-height: 1.2 !important;
    }

    .training-day-group__empty-text {
        margin-top: 2px !important;
        color: var(--text-secondary) !important;
        font-size: 12px !important;
        line-height: 1.2 !important;
    }

    .mobile-training-card {
        display: grid !important;
        grid-template-columns: 88px minmax(0, 1fr) !important;
        min-height: 96px !important;
        border: 1px solid var(--border-color) !important;
        border-radius: 14px !important;
        background: var(--bg-secondary) !important;
        box-shadow: 0 4px 14px rgba(0, 0, 0, 0.06) !important;
        overflow: hidden !important;
        cursor: pointer !important;
    }

    .mobile-training-card__time {
        display: grid !important;
        grid-template-rows: auto 1fr auto !important;
        align-items: stretch !important;
        gap: 4px !important;
        padding: 10px 8px !important;
        background: var(--accent) !important;
        color: var(--text-on-accent) !important;
    }

    .mobile-training-card__time--weather {
        justify-content: space-between !important;
    }

    .mobile-training-card__time-frame {
        grid-row: 1 !important;
        font-size: 19px !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
    }

    .mobile-training-card__surface-brief {
        display: inline-flex !important;
        grid-row: 3 !important;
        align-items: center !important;
        align-self: end !important;
        gap: 6px !important;
        color: rgba(255, 255, 255, 0.9) !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 1.15 !important;
    }

    .mobile-training-card__surface-brief:before {
        content: '\f1ad' !important;
        font-family: "Font Awesome 5 Free" !important;
        font-size: 11px !important;
        font-weight: 900 !important;
    }

    .mobile-training-card__weather {
        display: inline-flex !important;
        grid-row: 3 !important;
        align-items: center !important;
        align-self: end !important;
        gap: 7px !important;
        color: rgba(255, 255, 255, 0.9) !important;
        font-size: 15px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
    }

    .mobile-training-card__weather:before {
        content: '\f185' !important;
        font-family: "Font Awesome 5 Free" !important;
        font-size: 15px !important;
        font-weight: 900 !important;
    }

    .mobile-training-card__body {
        display: grid !important;
        grid-template-rows: auto auto 1fr auto !important;
        gap: 4px !important;
        min-width: 0 !important;
        padding: 8px 10px !important;
    }

    .mobile-training-card__topline {
        display: flex !important;
        grid-row: 1 !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
    }

    .mobile-training-card__level {
        display: inline-flex !important;
        align-items: center !important;
        max-width: 130px !important;
        padding: 3px 8px !important;
        border-radius: 7px !important;
        background: var(--accent) !important;
        color: var(--text-on-accent) !important;
        font-size: 11px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .mobile-training-card__counter {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 5px !important;
        min-width: 40px !important;
        padding: 3px 8px !important;
        border-radius: 999px !important;
        background: var(--accent) !important;
        color: var(--text-on-accent) !important;
        font-size: 12px !important;
        font-weight: 900 !important;
        line-height: 1.2 !important;
    }

    .mobile-training-card__counter:before {
        content: '\f0c0' !important;
        font-family: "Font Awesome 5 Free" !important;
        font-size: 10px !important;
        font-weight: 900 !important;
        line-height: 1 !important;
    }

    .mobile-training-card__counter--full {
        background: #A36A38 !important;
    }

    .mobile-training-card__meta {
        position: relative !important;
        min-width: 0 !important;
        padding-left: 18px !important;
        color: var(--text-secondary) !important;
        font-size: 12px !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }

    .mobile-training-card__meta:before {
        position: absolute !important;
        left: 0 !important;
        top: 0 !important;
        width: 14px !important;
        color: var(--text-muted) !important;
        font-family: "Font Awesome 5 Free" !important;
        font-size: 11px !important;
        font-weight: 900 !important;
        text-align: center !important;
    }

    .mobile-training-card__meta--coach:before {
        content: '\f007' !important;
    }

    .mobile-training-card__meta--coach {
        grid-row: 2 !important;
    }

    .mobile-training-card__meta--surface-outdoor:before {
        content: '\f57d' !important;
    }

    .mobile-training-card__meta--surface-indoor:before,
    .mobile-training-card__surface-brief--indoor:before {
        content: '\f1ad' !important;
    }

    .mobile-training-card__progress {
        grid-row: 3 !important;
        align-self: center !important;
        height: 4px !important;
        margin-top: 0 !important;
        border-radius: 999px !important;
        background: var(--bg-tertiary) !important;
        overflow: hidden !important;
    }

    .mobile-training-card__progress span {
        display: block !important;
        max-width: 100% !important;
        height: 100% !important;
        border-radius: inherit !important;
        background: var(--accent) !important;
        transition: width .2s ease !important;
    }

    .mobile-training-card__footer {
        display: flex !important;
        grid-row: 4 !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 8px !important;
        min-height: 30px !important;
        min-width: 0 !important;
    }

    .mobile-training-card__footer .mobile-training-card__meta {
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }

    .mobile-training-card__actions {
        display: flex !important;
        flex: 0 0 auto !important;
        justify-content: flex-end !important;
        margin-top: 0 !important;
    }

    .mobile-training-card__button {
        position: relative !important;
        z-index: 2 !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-width: 88px !important;
        min-height: 30px !important;
        padding: 6px 11px !important;
        border: 1px solid transparent !important;
        border-radius: 9px !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        text-align: center !important;
        text-decoration: none !important;
    }

    .mobile-training-card__button--join {
        background: var(--accent) !important;
        color: var(--text-on-accent) !important;
    }

    .mobile-training-card__button--leave {
        background: var(--bg-secondary) !important;
        border-color: #E46B6F !important;
        color: #E46B6F !important;
    }

    .mobile-training-card__button--disabled {
        background: var(--bg-tertiary) !important;
        color: var(--text-muted) !important;
        cursor: default !important;
    }

    .mobile-training-card__button.is-loading {
        opacity: .7 !important;
        pointer-events: none !important;
    }

    .training-day-contact {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
        margin-top: -2px !important;
        padding: 12px 14px !important;
        border-radius: 16px !important;
        background: var(--accent) !important;
        color: var(--text-on-accent) !important;
        font-size: 13px !important;
        font-weight: 900 !important;
    }

    .training-day-contact a {
        flex: 0 0 auto !important;
        padding: 8px 13px !important;
        border: 1px solid rgba(255, 255, 255, 0.35) !important;
        border-radius: 10px !important;
        color: var(--text-on-accent) !important;
        font-size: 12px !important;
        font-weight: 900 !important;
        text-decoration: none !important;
    }
}

.abonement-wizard {
    margin: 10px 0;
}

.abonement-wizard__open-btn {
    min-width: 220px;
}

.abonement-wizard__overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2000;
    padding: 16px;
}

.abonement-wizard__modal {
    background: #fff;
    color: #222;
    border-radius: 12px;
    max-width: 520px;
    width: 100%;
    padding: 24px;
    position: relative;
    max-height: 90vh;
    overflow-y: auto;
}

.abonement-wizard__close {
    position: absolute;
    top: 8px;
    right: 12px;
    border: none;
    background: transparent;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
}

.abonement-wizard__title {
    margin: 0 0 16px;
    text-align: center;
}

.abonement-wizard__subtitle {
    margin-bottom: 12px;
    font-weight: 600;
}

.abonement-wizard__error {
    color: #c0392b;
    margin-bottom: 12px;
}

.abonement-wizard__options,
.abonement-wizard__tariffs {
    display: grid;
    gap: 10px;
}

.abonement-wizard__option,
.abonement-wizard__tariff {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 12px;
    background: #fafafa;
    cursor: pointer;
    text-align: left;
}

.abonement-wizard__option.active,
.abonement-wizard__tariff.active {
    border-color: #d4af37;
    background: #fff8e1;
}

.abonement-wizard__tariff {
    display: grid;
    gap: 4px;
}

.abonement-wizard__option--rich {
    display: grid;
    gap: 6px;
}

.abonement-wizard__option-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}

.abonement-wizard__badge {
    display: inline-block;
    background: #c0392b;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
    border-radius: 6px;
    padding: 1px 6px;
}

.abonement-wizard__option-price {
    font-size: 14px;
}

.abonement-wizard__summary {
    background: #f5f5f5;
    border-radius: 8px;
    padding: 12px;
    margin-bottom: 16px;
}

.abonement-wizard__field {
    display: block;
    margin-bottom: 12px;
}

.abonement-wizard__field input {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
}

.abonement-wizard__note {
    font-size: 14px;
    color: #666;
}

.abonement-wizard__note--verify {
    color: #7a5b00;
    background: #fff8e1;
    border: 1px solid #f0d58c;
    border-radius: 8px;
    padding: 10px 12px;
    margin-bottom: 12px;
}

.abonement-wizard__actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 16px;
}

.abonement-type {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    font-size: 16px;
}

.abonement-type--day {
    background: #fff3cd;
    color: #d4af37;
}

.abonement-type--evening {
    background: #e8eaf6;
    color: #3949ab;
}

.abonement-wizard__discount-banner {
    background: #fff3cd;
    border: 1px solid #f0d58c;
    border-radius: 8px;
    padding: 10px 12px;
    margin: 0 0 16px;
    text-align: center;
    color: #7a5b00;
    font-weight: 600;
}

.phone-verification {
    margin: 12px 0;
    padding: 12px;
    border: 1px solid #e6e6e6;
    border-radius: 8px;
    background: #fafafa;
}

.phone-verification--compact {
    margin-top: 8px;
    padding: 10px;
}

.phone-verification__hint {
    margin: 0 0 10px;
    font-size: 14px;
    color: #666;
}

.phone-verification__hint--warn {
    color: #7a5b00;
    background: #fff8e1;
    border: 1px solid #f0d58c;
    border-radius: 8px;
    padding: 10px 12px;
}

.phone-verification__hint--muted {
    color: #888;
    font-size: 13px;
}

.phone-verification__call-block {
    margin-top: 12px;
    text-align: center;
}

.phone-verification__call-number {
    margin: 8px 0 12px;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: 0.5px;
    color: #222;
}

.phone-verification__call-btn,
.phone-verification__start-btn {
    width: 100%;
    max-width: 280px;
    margin: 0 auto;
    display: block;
}

.phone-verification__countdown {
    margin: 10px 0 0;
    font-size: 14px;
    color: #555;
}

.phone-verification__steps {
    margin: 0 0 12px;
    padding-left: 18px;
    font-size: 14px;
    color: #444;
}

.phone-verification__steps li {
    margin-bottom: 4px;
}

.phone-verification__waiting {
    margin-top: 12px;
}

.phone-verification__deeplink {
    display: inline-block;
    margin-top: 8px;
}

.phone-verification__channels {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
}

.phone-verification__channel-btn {
    min-width: 120px;
}

.phone-verification__code-block {
    margin-top: 12px;
    display: grid;
    gap: 8px;
}

.phone-verification__field {
    display: block;
}

.phone-verification__field input {
    display: block;
    width: 100%;
    margin-top: 6px;
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    letter-spacing: 4px;
    text-align: center;
}

.phone-verification__confirm-btn {
    width: 100%;
}

.phone-verification__error {
    color: #c0392b;
    margin: 8px 0 0;
    font-size: 14px;
}

.phone-verification__success {
    color: #1e7e34;
    margin: 0;
    font-weight: 600;
}

.phone-verification__resend-note {
    margin: 8px 0 0;
    font-size: 13px;
    color: #666;
}

.phone-verification-status {
    display: inline-block;
    margin-left: 6px;
    font-size: 13px;
    color: #c0392b;
}

.phone-verification-status--verified {
    color: #1e7e34;
}

.abonement-wizard__price {
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}

.abonement-wizard__price-old {
    text-decoration: line-through;
    color: #999;
    font-size: 14px;
}

.abonement-wizard__price-new {
    color: #c0392b;
    font-weight: 700;
}

.abonement-purchase-cta {
    text-align: center;
    margin: 16px 0 20px;
}

.abonements-landing {
    background: linear-gradient(180deg, #8fc8df 0%, #f7efe2 58%, #ffffff 100%);
    color: #1f2d3d;
    padding: 28px 0 56px;
}

.abonements-hero {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 28px;
    align-items: center;
    min-height: 430px;
    padding: 42px;
    border-radius: 28px;
    background:
        radial-gradient(circle at 15% 75%, rgba(46, 103, 128, 0.2) 0 12%, transparent 13%),
        linear-gradient(135deg, rgba(65, 143, 174, 0.95), rgba(132, 197, 219, 0.9));
    box-shadow: 0 20px 45px rgba(36, 75, 90, 0.22);
}

.abonements-hero:before,
.abonements-hero:after {
    content: "";
    position: absolute;
    bottom: -10px;
    width: 110px;
    height: 180px;
    background: rgba(28, 97, 65, 0.18);
    border-radius: 60px 60px 0 0;
}

.abonements-hero:before {
    left: 18px;
    transform: rotate(-16deg);
}

.abonements-hero:after {
    right: 110px;
    transform: rotate(12deg);
}

.abonements-hero__content {
    position: relative;
    z-index: 1;
    text-align: center;
}

.abonements-hero__brand {
    display: inline-block;
    padding: 8px 34px;
    border: 2px solid rgba(255, 255, 255, 0.9);
    border-radius: 999px;
    color: #fffbea;
    font-size: 28px;
    font-weight: 800;
    letter-spacing: 4px;
    text-transform: uppercase;
}

.abonements-hero__title {
    margin: 24px 0 4px;
    color: #fff8d6;
    font-size: clamp(86px, 18vw, 180px);
    font-weight: 900;
    line-height: 0.9;
    letter-spacing: -8px;
}

.abonements-hero__subtitle {
    max-width: 540px;
    margin: 0 auto 12px;
    color: #fffbea;
    font-size: 24px;
    font-weight: 800;
    line-height: 1.2;
    text-transform: uppercase;
}

.abonements-hero__date {
    max-width: 520px;
    margin: 0 auto 18px;
    padding: 12px 16px;
    border-radius: 14px;
    background: rgba(255, 251, 234, 0.94);
    color: #264d63;
    font-size: 17px;
    font-weight: 700;
}

.abonements-hero__ball {
    position: relative;
    z-index: 1;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    background:
        linear-gradient(45deg, transparent 44%, rgba(255, 255, 255, 0.55) 45% 55%, transparent 56%),
        radial-gradient(circle at 35% 30%, #fff4b5 0 24%, transparent 25%),
        conic-gradient(from 20deg, #f4cf55 0 23%, #377da0 23% 45%, #fff4b5 45% 62%, #377da0 62% 78%, #f4cf55 78% 100%);
    box-shadow: 0 22px 35px rgba(46, 80, 92, 0.28);
}

.abonements-info-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin-top: 28px;
}

.abonements-info-card,
.abonements-rule,
.abonements-bottom-cta {
    border: 1px solid rgba(45, 104, 126, 0.14);
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 12px 28px rgba(35, 74, 89, 0.1);
}

.abonements-info-card {
    padding: 24px;
}

.abonements-info-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
    border-radius: 50%;
    background: #2f7d9c;
    color: #fffbea;
    font-weight: 800;
}

.abonements-info-card h2,
.abonements-bottom-cta h2 {
    margin: 0 0 10px;
    color: #1f2d3d !important;
    font-size: 22px;
    font-weight: 800;
}

.abonements-info-card p,
.abonements-rule span,
.abonements-bottom-cta p {
    margin: 0;
    color: #4b5b68;
    font-size: 16px;
    line-height: 1.55;
}

.abonements-rules {
    display: grid;
    gap: 12px;
    margin-top: 22px;
}

.abonements-rule {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 18px 22px;
}

.abonements-rule strong {
    color: #244f62;
    font-size: 18px;
    font-weight: 800;
    text-transform: uppercase;
}

.abonements-bottom-cta {
    margin-top: 28px;
    padding: 28px;
    text-align: center;
}

.abonements-bottom-cta p {
    margin-bottom: 18px;
}

@media (max-width: 767px) {
    .abonements-landing {
        padding: 18px 0 36px;
    }

    .abonements-hero {
        grid-template-columns: 1fr;
        min-height: auto;
        padding: 26px 18px;
        border-radius: 20px;
    }

    .abonements-hero__brand {
        font-size: 20px;
        letter-spacing: 2px;
    }

    .abonements-hero__title {
        letter-spacing: -4px;
    }

    .abonements-hero__subtitle {
        font-size: 18px;
    }

    .abonements-hero__ball {
        display: none;
    }

    .abonements-info-grid,
    .abonements-rule {
        grid-template-columns: 1fr;
    }

    .abonements-info-card,
    .abonements-rule,
    .abonements-bottom-cta {
        padding: 18px;
    }
}

/* ========================================
   Профиль игрока
   ======================================== */

.profile-contact-actions {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin: 10px 0 14px;
}

.profile-contact-actions__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    border: 1px solid var(--accent);
    color: var(--accent) !important;
    text-decoration: none !important;
    font-size: 22px;
    transition: background-color 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

.profile-contact-actions__link:hover,
.profile-contact-actions__link:focus {
    background-color: var(--accent);
    color: var(--text-on-accent) !important;
    transform: translateY(-1px);
}

.profile-history-tabs {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin: 16px 0 12px;
}

.profile-history-tabs__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    padding: 8px 14px;
    background: transparent !important;
    background-image: none !important;
    border: 1px solid var(--accent);
    border-radius: 999px;
    color: var(--accent) !important;
    text-decoration: none !important;
    font-weight: 600;
    text-shadow: none !important;
    box-shadow: none !important;
}

.profile-history-tabs__button:hover,
.profile-history-tabs__button:focus,
.profile-history-tabs__button--active {
    background: var(--accent) !important;
    background-image: none !important;
    border-color: var(--accent) !important;
    color: var(--text-on-accent) !important;
}

/* ========================================
   A11Y / lazy-load
   ======================================== */

.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.days__item-skeleton {
    padding: 12px 0 24px;
}

.days__item-skeleton-title {
    height: 24px;
    width: 40%;
    margin-bottom: 16px;
    border-radius: 6px;
    background: var(--bg-hover);
}

.days__item-skeleton-cards {
    height: 180px;
    border-radius: 12px;
    background: linear-gradient(90deg, var(--bg-hover) 25%, var(--bg-secondary) 50%, var(--bg-hover) 75%);
    background-size: 200% 100%;
    animation: days-skeleton-shimmer 1.2s ease-in-out infinite;
}

@keyframes days-skeleton-shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@media (prefers-reduced-motion: reduce) {
    .days__item-skeleton-cards {
        animation: none;
    }
}

/* ========================================
   Mobile compact schedule
   ======================================== */

@media (max-width: 767px) {
    .header .navbar-inverse {
        min-height: 92px !important;
    }

    .header .navbar-header {
        min-height: 91px !important;
        padding: 0 !important;
    }

    .header .navbar-brand {
        left: 18px !important;
        padding: 0 !important;
    }

    .header .navbar-brand img,
    .header .navbar-inverse .navbar-brand img {
        width: 64px !important;
        border-width: 0 !important;
        box-shadow: none !important;
    }

    .header .header__address.hidden-lg,
    .header__address.navbar-text.hidden-lg {
        left: 58% !important;
        width: 60% !important;
        font-size: 12px !important;
        line-height: 1.25 !important;
        text-align: left !important;
    }

    .header__address .address-text {
        margin-bottom: 8px !important;
    }

    .search--compact-calendar .search__container {
        padding-top: 8px !important;
        padding-bottom: 6px !important;
    }

    .search--compact-calendar .search__title {
        margin-bottom: 18px !important;
        font-size: 22px !important;
        line-height: 1.2 !important;
    }

    .search-calendar {
        grid-template-columns: 40px minmax(0, 1fr) 40px;
        column-gap: 6px;
        padding-top: 20px;
        max-width: 100%;
    }

    .search-calendar__nav {
        height: 56px;
    }

    .search-calendar__arrow {
        width: 40px;
        height: 56px;
        font-size: 24px;
    }

    .search--compact-calendar .search-calendar__scroll .search__list--days {
        gap: 5px;
        padding: 0 1px 2px;
    }

    .search--compact-calendar .search__item--day {
        width: 48px !important;
        min-width: 48px !important;
        height: 56px !important;
        min-height: 56px !important;
        padding: 6px 4px !important;
        border-radius: 10px !important;
    }

    .search--compact-calendar .search__item-day {
        margin-bottom: 3px !important;
        font-size: 11px !important;
    }

    .search--compact-calendar .search__item-date {
        font-size: 22px !important;
        line-height: 1 !important;
    }

    .search--compact-calendar .search__item-label {
        top: -18px !important;
        left: 50% !important;
        right: auto !important;
        transform: translateX(-50%);
        width: max-content;
        max-width: calc(100% + 8px);
        padding: 2px 6px !important;
        font-size: 8px !important;
        text-align: center;
        white-space: nowrap;
    }

    .search--compact-calendar .training-week__subtitle {
        margin-top: 6px !important;
        font-size: 13px !important;
        line-height: 1.2 !important;
    }

    .search--compact-calendar + .content.days {
        padding-top: 4px !important;
    }

    .search--compact-calendar + .content.days .days__title {
        margin-bottom: 12px !important;
        font-size: 22px !important;
        line-height: 1.2 !important;
    }

    .search--compact-calendar + .content.days .days__item-title--search {
        margin-bottom: 8px !important;
        font-size: 18px !important;
        line-height: 1.25 !important;
    }

    .search--compact-calendar + .content.days .container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .search--compact-calendar + .content.days .days__container {
        max-width: none !important;
        width: 100% !important;
    }

    .search--compact-calendar + .content.days .days__item-list.row {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .search--compact-calendar + .content.days .days__item-list > [class*="col-"] {
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .search--compact-calendar + .content.days .slots__item {
        padding: 16px 18px 18px !important;
        border-radius: 16px !important;
    }

    .search--compact-calendar + .content.days .slots__item-summary {
        margin-bottom: 12px !important;
        padding: 0 !important;
        background: transparent !important;
        border-radius: 0 !important;
    }

    .search--compact-calendar + .content.days .slots__item-summary-time {
        color: #2d493d !important;
        font-size: 27px !important;
        font-weight: 800 !important;
        letter-spacing: -0.02em;
    }

    [data-theme="dark"] .search--compact-calendar + .content.days .slots__item-summary-time {
        color: var(--text-heading) !important;
    }

    .search--compact-calendar + .content.days .slots__item-summary-meta {
        flex-wrap: nowrap !important;
        gap: 5px !important;
        margin-top: 7px !important;
        color: var(--text-secondary) !important;
        font-size: 14px !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }

    .search--compact-calendar + .content.days .slots__item-summary-weather {
        flex: 0 0 auto;
    }

    .search--compact-calendar + .content.days .slots__item-summary-weather-icon {
        width: 17px !important;
        height: 17px !important;
    }

    .content.days .days__item-list > .slots__item-col {
        width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        float: none !important;
    }

    .content.days .slots__item-col .slots__item {
        padding: 14px 18px 16px !important;
        border-radius: 16px !important;
    }

    .content.days .slots__item-summary {
        margin-bottom: 10px !important;
        padding: 0 !important;
        background: transparent !important;
        border-radius: 0 !important;
    }

    .content.days .slots__item-summary-time {
        color: #2d493d !important;
        font-size: 29px !important;
        font-weight: 800 !important;
        line-height: 1.05 !important;
        letter-spacing: -0.03em;
    }

    [data-theme="dark"] .content.days .slots__item-summary-time {
        color: var(--text-heading) !important;
    }

    .content.days .slots__item-summary-meta {
        flex-wrap: nowrap !important;
        gap: 5px !important;
        margin-top: 6px !important;
        color: #7a7068 !important;
        font-size: 14.5px !important;
        font-weight: 500 !important;
        line-height: 1.1 !important;
        white-space: nowrap !important;
    }

    [data-theme="dark"] .content.days .slots__item-summary-meta {
        color: var(--text-secondary) !important;
    }

    .content.days .slots__item-summary-weather {
        flex: 0 0 auto;
    }

    .content.days .slots__item-summary-weather-icon {
        width: 17px !important;
        height: 17px !important;
    }

    [data-theme="light"] .content.days .slots__item-summary-time {
        color: #000000 !important;
        -webkit-text-fill-color: #000000 !important;
        text-shadow: none !important;
    }

    [data-theme="light"] .content.days .slots__item-summary-meta {
        color: #51473f !important;
        opacity: 1 !important;
    }

    [data-theme="light"] .content.days .slots__item-summary-meta span {
        color: inherit !important;
    }

    [data-theme="light"] .content.days .slots__item-summary-separator {
        color: #7d6858 !important;
        opacity: 1 !important;
    }

    html[data-theme="light"] .content.days .slots__item-summary-time {
        color: #000000 !important;
        -webkit-text-fill-color: #000000 !important;
        opacity: 1 !important;
        filter: none !important;
        text-shadow: none !important;
    }

    html[data-theme="light"] .content.days .slots__item-summary-meta,
    html[data-theme="light"] .content.days .slots__item-summary-meta span,
    html[data-theme="light"] .content.days .slots__item-summary-weather,
    html[data-theme="light"] .content.days .slots__item-summary-weather .fas {
        color: #302821 !important;
        opacity: 1 !important;
        filter: none !important;
        font-weight: 650 !important;
    }

    html[data-theme="light"] .content.days .slots__item-summary-separator {
        color: #5c4b3e !important;
        opacity: 1 !important;
    }

    .content.days .slots__item-col .slots__item-place {
        margin: 10px 0 12px !important;
        padding: 12px 14px !important;
        border-radius: 14px !important;
    }

    .content.days .slots__item-col .slots__item-place .row {
        grid-template-columns: repeat(3, 50px) !important;
        gap: 10px 13px !important;
    }

    .content.days .slots__item-col .slots__item-place .row > div {
        width: 50px !important;
        max-width: 50px !important;
    }

    .content.days .slots__item-col .slots__item-place-user,
    .content.days .slots__item-col .slots__item-place-user-img,
    .content.days .slots__item-col .slots__item-place-user--empty {
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
    }

    .content.days .slots__item-col .slots__item p {
        margin: 0 !important;
    }

    .content.days .slots__item-col .slots__item-record {
        padding: 11px 16px !important;
        border-radius: 12px !important;
    }
}

html[data-theme="light"] .content.days .slots__item-summary-time {
    color: #000000 !important;
    -webkit-text-fill-color: #000000 !important;
    opacity: 1 !important;
    filter: none !important;
    font-weight: 900 !important;
    text-shadow: none !important;
}

html[data-theme="light"] .content.days .slots__item-summary-meta,
html[data-theme="light"] .content.days .slots__item-summary-meta span,
html[data-theme="light"] .content.days .slots__item-summary-weather,
html[data-theme="light"] .content.days .slots__item-summary-weather .fas {
    color: #222222 !important;
    -webkit-text-fill-color: #222222 !important;
    opacity: 1 !important;
    filter: none !important;
    font-size: 15px !important;
    font-weight: 700 !important;
}

html[data-theme="light"] .content.days .slots__item-summary-separator {
    color: #3a3a3a !important;
    -webkit-text-fill-color: #3a3a3a !important;
    opacity: 1 !important;
}

/* ========================================
   Trainings compact schedule refresh
   ======================================== */

.trainings-search .search__container {
    padding-top: 22px;
    padding-bottom: 22px;
}

.trainings-search .search__title {
    margin-bottom: 16px;
}

.training-toolbar {
    margin-bottom: 12px !important;
}

.training-filters-panel {
    margin-top: 10px !important;
}

.training-week {
    padding-top: 8px !important;
}

.training-week .container {
    width: 100%;
    max-width: none;
}

.training-week__grid {
    grid-template-columns: repeat(60, minmax(132px, 132px)) !important;
    gap: 8px !important;
    overflow-x: auto;
    padding: 0 14px 14px !important;
    scroll-snap-type: x proximity;
}

.training-week__day {
    min-width: 132px !important;
    scroll-snap-align: start;
}

.training-week__day-body {
    min-height: 260px !important;
    padding: 6px !important;
}

.training-week-event {
    padding: 6px 7px !important;
}

.training-week-event__time {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 4px !important;
}

.training-week-event__time-frame {
    min-width: 0;
}

.training-week-event__weather {
    flex: 0 0 auto;
    margin-top: 0 !important;
    font-size: 11px !important;
    line-height: 1.1 !important;
    opacity: 0.95 !important;
}

@media (max-width: 767px) {
    .header .navbar-inverse {
        min-height: 82px !important;
    }

    .header .navbar-header {
        min-height: 82px !important;
    }

    .header .navbar-inverse .navbar-brand {
        margin-top: 2px !important;
    }

    .header .navbar-brand {
        left: 18px !important;
    }

    .header .navbar-brand img,
    .header .navbar-inverse .navbar-brand img {
        width: 78px !important;
        height: 78px !important;
        object-fit: cover;
        border-width: 0 !important;
        border-radius: 50%;
        clip-path: circle(45% at 50% 50%);
        box-shadow: none !important;
    }

    .header .header__address.hidden-lg,
    .header__address.navbar-text.hidden-lg {
        position: absolute !important;
        top: 22px !important;
        left: 128px !important;
        right: 12px !important;
        transform: none !important;
        margin: 0 !important;
        padding: 0 !important;
        width: auto !important;
        font-size: 11px !important;
        line-height: 1.2 !important;
        text-align: left !important;
        white-space: normal !important;
    }

    .trainings-search:not(.search--compact-calendar) .search__container,
    .trainings-search.search--compact-calendar .search__container {
        padding-top: 10px !important;
        padding-bottom: 8px !important;
    }

    .trainings-search .search__title {
        margin-bottom: 10px !important;
        font-size: 22px !important;
        line-height: 1.15 !important;
    }

    .training-toolbar {
        gap: 6px !important;
        margin-bottom: 8px !important;
    }

    .training-toolbar .training-tabs {
        gap: 5px !important;
    }

    .training-tab {
        padding: 7px 13px !important;
        margin: 0 !important;
        font-size: 13px !important;
    }

    .training-view-switch__item {
        padding: 4px 10px !important;
        font-size: 12px !important;
    }

    .training-filters-panel {
        margin-top: 8px !important;
    }

    .training-filters-panel__summary {
        padding: 8px 12px !important;
    }

    .training-week {
        padding-top: 4px !important;
    }

    .training-week__grid {
        grid-template-columns: repeat(60, minmax(118px, 118px)) !important;
        gap: 6px !important;
        padding: 0 10px 12px !important;
    }

    .training-week__day {
        min-width: 118px !important;
        border-radius: 9px !important;
    }

    .training-week__day-header {
        padding: 6px 5px !important;
    }

    .training-week__day-body {
        min-height: 220px !important;
        padding: 5px !important;
        gap: 5px !important;
    }

    .training-week-event {
        padding: 5px 6px !important;
    }

    .training-week-event__weather {
        font-size: 10px !important;
    }
}

/* Телефон в шапке — заметный и явно кликабельный (решение владельца 14.07) */
.nav-phone {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 17px;
  font-weight: 700;
  color: inherit;
  text-decoration: none;
  white-space: nowrap;
}
.nav-phone:hover, .nav-phone:focus {
  color: #AC8972;
  text-decoration: none;
}
.nav-phone__icon { width: 15px; height: 15px; flex: 0 0 auto; }

/* Одна кнопка «Войти» в шапке */
.nav-login-btn { min-width: 96px; font-weight: 600; }

/* Контактный кластер шапки: адрес с пином + телефон, единый стиль. */
.header__contacts {
    display: inline-flex;
    align-items: center;
    gap: 20px;
    white-space: nowrap;
}
.nav-address {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 15px;
    text-decoration: none;
    transition: color 0.15s ease;
}
.nav-address:hover, .nav-address:focus { color: #AC8972; text-decoration: none; }
.nav-address__icon { width: 15px; height: 15px; flex: 0 0 auto; opacity: 0.9; }
/* Кликабельный адрес в мобильной шапке (бургер) — без подчёркивания. */
.header__address .address-text { text-decoration: none; }
.header__address a.address-text:hover, .header__address a.address-text:focus { color: #AC8972; text-decoration: none; }
.nav-phone { font-size: 16px; }

/* ===================================================================
   Единая шапка: бар записи + выпадашка «Наш клуб» + аккаунт (14.07)
   Игровое (запись) — контейнер-бар слева; клубное — за выпадашкой;
   личное/роль — справа под аватаром. Зонирование логикой и дизайном.
   =================================================================== */

/* Десктоп (≥1200px): шапка справа от логотипа — две выровненные строки.
   Строка 1: контакты слева · аккаунт справа. Строка 2: бар записи слева ·
   «Наш клуб» справа.

   ВАЖНО про логотип: у него margin-bottom:-90px и z-index:100 — он «свисает»
   на 90px вниз и лежит поверх шапки. Если полагаться на float-обтекание,
   вторая строка на некоторых ширинах/браузерах уезжает ПОД круг (баг 14.07).
   Поэтому логотип вынимаем из потока (position:absolute), а под него в
   контейнере резервируем фиксированную колонку (padding-left) — обе строки
   всегда правее логотипа, детерминированно и кросс-браузерно. */
@media (min-width: 1200px) {
    .header .navbar-inverse .container { position: relative; }
    /* Логотип — вне потока, прижат к левому краю контейнера, поверх шапки. */
    .header .navbar-header {
        position: absolute;
        left: 0;
        top: 0;
        margin: 0;
        z-index: 120;
    }
    /* Bootstrap форсит .navbar-collapse.collapse{display:block!important} —
       перебиваем на flex тем же !important. padding-left = колонка логотипа. */
    .header .navbar-collapse.collapse {
        display: flex !important;
        flex-wrap: wrap;
        align-items: center;
        column-gap: 20px;
        row-gap: 8px;
        padding-top: 16px;
        padding-bottom: 10px;
        padding-left: 232px;   /* лого 190px + рамка/зазор — гарантированный клиренс */
        padding-right: 260px;  /* колонка аккаунта справа (он позиционирован absolute) */
    }
    /* Строка 1 — контакты слева */
    .header .header__block--address {
        order: 1;
        width: auto; height: auto; margin: 0; padding: 0; float: none;
    }
    /* Аккаунт — правый кластер, вертикально по центру банда (приглашение +
       крупный аватар вместе). Вне потока, чтобы не привязываться к строкам. */
    .header .header__account {
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
        margin: 0;
        gap: 14px;
        z-index: 110;
    }
    /* Строка 2 — бар записи и «Наш клуб» рядом слева, с отступом между ними */
    .header .nav-main {
        order: 3;
        flex-basis: 100%;
        display: flex;
        align-items: center;
        justify-content: flex-start;
        gap: 18px;
        float: none;
        margin: 0;
    }
    /* Аватар в шапке — крупнее (решение владельца 14.07) */
    .header .nav-account__avatar { width: 46px; height: 46px; }
}

/* Бар записи — скруглённый контейнер (эхо мобильного таб-бара). */
.nav-play {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 4px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 999px;
}
.nav-play__item {
    display: inline-block;
    padding: 7px 15px;
    border-radius: 999px;
    color: #fff;
    font-size: 15px;
    line-height: 1.1;
    text-decoration: none;
    white-space: nowrap;
    transition: background 0.15s ease, color 0.15s ease;
}
.nav-play__item:hover,
.nav-play__item:focus {
    background: rgba(255, 255, 255, 0.14);
    color: #fff;
    text-decoration: none;
}
.nav-play__item.is-active {
    background: #AC8972;
    color: #fff;
}

/* Выпадашка «Наш клуб» и профиля — общий скелет. */
.nav-club,
.nav-account {
    position: relative;
    display: inline-block;
}
.nav-club__toggle,
.nav-account__toggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 14px;
    background: transparent;
    border: 0;
    border-radius: 999px;
    color: #fff;
    font-size: 15px;
    line-height: 1.1;
    cursor: pointer;
    transition: background 0.15s ease;
}
.nav-club__toggle:hover,
.nav-account__toggle:hover { background: rgba(255, 255, 255, 0.12); }
.nav-club__toggle.is-active { color: #AC8972; }
.nav-caret { width: 14px; height: 14px; transition: transform 0.18s ease; }
.nav-club.is-open .nav-caret,
.nav-account.is-open .nav-caret { transform: rotate(180deg); }

.nav-club__menu,
.nav-account__menu {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 190px;
    padding: 6px;
    background: #fff;
    border: 1px solid rgba(45, 73, 61, 0.12);
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
    z-index: 1200;
}
.nav-club.is-open .nav-club__menu,
.nav-account.is-open .nav-account__menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.nav-club__menu a,
.nav-account__menu a {
    display: block;
    padding: 9px 12px;
    border-radius: 9px;
    color: #2d493d;
    font-size: 15px;
    text-decoration: none;
    white-space: nowrap;
}
.nav-club__menu a:hover,
.nav-account__menu a:hover { background: #f2efe6; color: #2d493d; text-decoration: none; }
.nav-club__menu a.is-active { color: #AC8972; font-weight: 600; }

/* Аккаунт справа (верхний ряд): бейдж лояльности + аватар с выпадашкой. */
.header__account {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.nav-loyalty {
    display: inline-flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 1px;
    padding: 5px 12px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.08);
    line-height: 1.15;
    text-decoration: none;
    transition: background 0.15s ease;
}
.nav-loyalty:hover { background: rgba(255, 255, 255, 0.16); text-decoration: none; }
.nav-loyalty__level {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
}
.nav-loyalty__balance { color: rgba(255, 255, 255, 0.82); font-size: 12px; }
.nav-medal {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55), 0 1px 2px rgba(0, 0, 0, 0.3);
}
.nav-loyalty.is-lapsed { background: rgba(255, 255, 255, 0.05); }
.nav-loyalty.is-lapsed .nav-loyalty__level { color: rgba(255, 255, 255, 0.5); }
.nav-loyalty.is-lapsed .nav-loyalty__balance { color: rgba(255, 255, 255, 0.4); }
.nav-loyalty.is-lapsed .nav-medal { filter: grayscale(1); opacity: 0.6; }

/* Не-участник: приглашение «Вступить в клуб» ВМЕСТО баллов/статуса — задача
   чипа завести человека в программу (решение владельца 14.07). */
.nav-loyalty-join {
    display: inline-flex;
    align-items: center;
    padding: 8px 16px;
    border: 1px solid rgba(172, 137, 114, 0.9);
    border-radius: 999px;
    color: #fff;
    font-size: 14px;
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease;
}
.nav-loyalty-join:hover, .nav-loyalty-join:focus { background: #AC8972; color: #fff; text-decoration: none; }

.nav-account__avatar {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    object-fit: cover;
    border: 1px solid rgba(255, 255, 255, 0.3);
}
.nav-account__name { color: #fff; font-size: 15px; }
.nav-login-btn { min-width: 96px; font-weight: 600; }

/* Бургер-меню (768–1199px): шапка сворачивается в вертикальный список.
   «Разбираем» бар записи и выпадашки в плоское меню — контейнеры/дропдауны
   тут ни к чему, всё раскрыто и прижато вправо, как было у старого меню.
   На <768px весь блок скрыт (навигацию несёт нижний таб-бар). */
@media (max-width: 1199px) {
    .header .nav-main {
        display: block;
        float: none;
        clear: both;
        margin: 6px 0 0;
    }
    .nav-play {
        display: block;
        padding: 0;
        background: none;
        border: 0;
        border-radius: 0;
    }
    .nav-play__item,
    .nav-club__toggle {
        display: block;
        width: 100%;
        padding: 11px 15px;
        text-align: right;
        border-radius: 0;
        font-size: 16px;
    }
    .nav-play__item.is-active { background: transparent; color: #AC8972; }
    .nav-club { display: block; }
    .nav-club__toggle .nav-caret { display: none; }
    /* Клубные пункты в бургере — всегда раскрыты плоским списком */
    .nav-club__menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        min-width: 0;
        padding: 0;
        background: transparent;
        border: 0;
        box-shadow: none;
    }
    .nav-club__menu a {
        text-align: right;
        color: #fff;
        padding: 11px 15px;
        border-radius: 0;
        font-size: 16px;
    }
    .nav-club__menu a:hover { background: rgba(255, 255, 255, 0.10); color: #fff; }
    .nav-club__menu a.is-active { color: #AC8972; }

    /* Аккаунт в бургере — плоско, выпадашка профиля раскрыта списком */
    .header__account { display: block; float: none; }
    .nav-account { display: block; }
    .nav-account__menu {
        position: static;
        opacity: 1;
        visibility: visible;
        transform: none;
        padding: 0;
        background: transparent;
        border: 0;
        box-shadow: none;
    }
    .nav-account__menu a { text-align: right; color: #fff; padding: 11px 15px; border-radius: 0; }
    .nav-account__menu a:hover { background: rgba(255, 255, 255, 0.10); color: #fff; }
    .nav-account__toggle .nav-caret { display: none; }
}
@media (max-width: 767px) {
    .header .nav-main,
    .header .header__account { display: none; }
}

/* ── Мобильная шапка v2: лого влево, телефон под адресом, правый кластер аккаунта (владелец 14.07) ── */
.mobile-account { display: none; }

@media (max-width: 767px) {
    /* лого — сдвиг влево, круг вровень с чипами контента */
    .header .navbar-inverse .navbar-brand {
        left: 0 !important;
        margin-left: -10px !important;
    }

    /* адрес + телефон: обе строки блоком, телефон начинается ровно под «ул.» */
    .header .header__address.hidden-lg,
    .header__address.navbar-text.hidden-lg {
        left: 96px !important;
        right: 150px !important;
    }
    .header__address .address-text { display: block; }
    .header__address .nav-phone--mobile {
        display: block;
        margin-top: 5px;
        font-size: 15px !important;
        font-weight: 700;
    }

    /* правый кластер: аватар + приглашение/бонусы + медаль статуса */
    .mobile-account {
        display: flex;
        align-items: center;
        gap: 9px;
        height: 42px;
        position: absolute;
        top: 50%;
        right: 22px;
        transform: translateY(-50%);
        z-index: 101;
    }
    .mobile-account__avatar-link {
        display: flex;
        flex: 0 0 42px;
        align-items: center;
        line-height: 0;
    }
    .mobile-account__avatar {
        width: 42px;
        height: 42px;
        border-radius: 50%;
        object-fit: cover;
        border: 2px solid var(--accent);
        display: block;
    }
    .mobile-account__loyalty {
        display: inline-flex;
        align-items: center;
        height: 42px;
        gap: 6px;
        text-decoration: none;
        color: var(--accent-text);
    }
    .mobile-account__balance {
        display: inline-flex;
        align-items: center;
        height: 100%;
        font-size: 14px;
        font-weight: 700;
        line-height: 1.05;
        white-space: nowrap;
    }
    .mobile-account .nav-medal {
        width: 15px;
        height: 15px;
        border-radius: 50%;
        display: inline-block;
        flex: 0 0 auto;
        box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.28);
    }
    .mobile-account__loyalty.is-lapsed .nav-medal { filter: grayscale(1); opacity: 0.6; }
    .mobile-account__loyalty.is-lapsed .mobile-account__balance { opacity: 0.55; }
    .mobile-account__join {
        font-size: 12px;
        font-weight: 700;
        line-height: 1.05;
        text-align: center;
        text-decoration: none;
        color: var(--accent-text);
    }
    .mobile-account__login {
        font-size: 13px;
        font-weight: 700;
        padding: 6px 15px;
        border-radius: 999px;
        border: 1px solid var(--accent);
        background: transparent;
        color: var(--accent-text);
    }

    /* WebView мог сохранять старое расположение кластера слева. Привязываем
       именно прямого потомка шапки к правому краю, включая аватар и вход. */
    .header .navbar-header > .mobile-account {
        display: flex !important;
        left: auto !important;
        right: 16px !important;
        z-index: 102;
    }
}
