/* =========================================================
   Главная страница (лендинг)
   ========================================================= */

/* Отключаем горизонтальный скролл от full-bleed секций */
body {
    overflow-x: hidden;
}

/* Full-bleed: секция «от границы до границы» */
.full-bleed {
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

/* ---------- HERO ---------- */
.hero {
    position: relative;
    overflow: hidden;
    background: linear-gradient(135deg, #1b1f3b 0%, #2b2350 40%, #6f2d8f 100%);
    background-size: 200% 200%;
    animation: heroGradient 18s ease infinite;
    color: #fff;
    padding: 5rem 1rem 6rem;
}

@keyframes heroGradient {
    0%   { background-position: 0% 50%; }
    50%  { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.hero::before,
.hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(70px);
    opacity: .35;
    pointer-events: none;
}

.hero::before {
    width: 380px;
    height: 380px;
    background: #ff6ec7;
    top: -80px;
    left: -80px;
    animation: floatBlob 14s ease-in-out infinite;
}

.hero::after {
    width: 420px;
    height: 420px;
    background: #4d8bff;
    bottom: -120px;
    right: -100px;
    animation: floatBlob 16s ease-in-out infinite reverse;
}

@keyframes floatBlob {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50%      { transform: translate(30px, -30px) scale(1.08); }
}

.hero-content {
    position: relative;
    z-index: 2;
}

.hero-title {
    font-size: clamp(2rem, 4.5vw, 3.5rem);
    font-weight: 800;
    line-height: 1.1;
    animation: fadeUp .9s .1s both;
}

.hero-sub {
    font-size: 1.15rem;
    opacity: .9;
    animation: fadeUp .9s .25s both;
}

.hero-actions {
    animation: fadeUp .9s .4s both;
}

@keyframes fadeUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---------- Демонстрационная карточка ---------- */
.demo-card {
    max-width: 340px;
    margin: 0 auto;
    border-radius: 1rem;
    overflow: hidden;
    background: rgba(255, 255, 255, .08);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, .18);
    box-shadow: 0 20px 60px rgba(0, 0, 0, .35);
    animation: floatCard 6s ease-in-out infinite;
}

.demo-card__cover {
    height: 150px;
    background: linear-gradient(135deg, #ff6ec7, #4d8bff);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    color: rgba(255, 255, 255, .85);
}

.demo-card__body {
    padding: 1rem 1.15rem 1.15rem;
    color: #fff;
}

.demo-card__title {
    font-weight: 700;
    margin: 0 0 .25rem;
}

.demo-card__meta {
    font-size: .85rem;
    opacity: .85;
}

.demo-card__tags {
    margin-top: .65rem;
    display: flex;
    gap: .35rem;
    flex-wrap: wrap;
}

.demo-card__tag {
    font-size: .72rem;
    padding: .15rem .5rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .15);
}

@keyframes floatCard {
    0%, 100% { transform: translateY(0) rotate(-1.5deg); }
    50%      { transform: translateY(-14px) rotate(1.5deg); }
}

/* ---------- Общие заголовки секций ---------- */
.section-title {
    font-weight: 800;
    letter-spacing: -.01em;
    color: var(--bs-heading-color);
}

/* ---------- Возможности ---------- */
.feature-card {
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.75rem 1.5rem;
    height: 100%;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.feature-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
    border-color: var(--bs-primary);
}

.feature-icon {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.6rem;
    color: #fff;
    margin-bottom: 1rem;
}

.feature-icon--violet { background: linear-gradient(135deg, #7b3ff2, #b95cf2); }
.feature-icon--blue   { background: linear-gradient(135deg, #2f7bff, #4dd0ff); }
.feature-icon--pink   { background: linear-gradient(135deg, #ff4d8d, #ffa45c); }

/* ---------- Подписки ---------- */
.plans-section {
    background: var(--bs-tertiary-bg);
}

.plan-card {
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 2rem 1.5rem;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.plan-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
}

.plan-card--popular {
    border-color: var(--bs-primary);
    box-shadow: 0 14px 34px rgba(13, 110, 253, .15);
    position: relative;
}

.plan-card--popular::after {
    content: "Популярный";
    position: absolute;
    top: -12px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--bs-primary);
    color: #fff;
    padding: .2rem .75rem;
    border-radius: 999px;
    font-size: .75rem;
    font-weight: 600;
}

.plan-tag {
    display: inline-block;
    font-size: .75rem;
    font-weight: 600;
    padding: .25rem .6rem;
    border-radius: 999px;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    margin-bottom: .75rem;
}

.plan-price {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1;
    margin: .25rem 0;
    color: var(--bs-heading-color);
}

.plan-price small {
    font-size: .9rem;
    font-weight: 500;
    opacity: .7;
}

.plan-features {
    list-style: none;
    padding: 0;
    margin: 1rem 0 1.5rem;
}

.plan-features li {
    padding: .35rem 0;
    display: flex;
    gap: .5rem;
    align-items: flex-start;
    font-size: .95rem;
}

.plan-features li i {
    color: var(--bs-success);
    margin-top: .15rem;
}

/* ---------- FAQ ---------- */
.faq-accordion .accordion-item {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem !important;
    margin-bottom: .75rem;
    overflow: hidden;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.faq-accordion .accordion-button {
    font-weight: 600;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.faq-accordion .accordion-button:not(.collapsed) {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    box-shadow: none;
}

.faq-accordion .accordion-button:focus {
    box-shadow: none;
}

/* Иконка-стрелка аккордеона наследует цвет текста */
.faq-accordion .accordion-button::after {
    filter: none;
}

[data-bs-theme="dark"] .faq-accordion .accordion-button::after {
    filter: invert(1) brightness(1.5);
}

/* ---------- Плавное появление секций ---------- */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity .7s ease, transform .7s ease;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

/* ---------------------------------------------------------
   Блог: карточки записей
   --------------------------------------------------------- */

.blog-card {
    position: relative;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.5rem 1.5rem 1.25rem;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.blog-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
    border-color: var(--bs-primary);
}

.blog-card__tag {
    display: inline-block;
    font-size: .72rem;
    font-weight: 600;
    padding: .2rem .55rem;
    border-radius: 999px;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    margin-bottom: .75rem;
    width: fit-content;
}

.blog-card__title {
    font-size: 1.15rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 .5rem;
    color: var(--bs-heading-color);
}

.blog-card__title a {
    color: inherit;
}

.blog-card__title a:hover {
    color: var(--bs-primary);
}

.blog-card__excerpt {
    font-size: .92rem;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Слой поверх карточки, чтобы ссылка-«растяжка» вела на view, но кнопки действий не были перекрыты */
.blog-card__actions a {
    position: relative;
    z-index: 2;
}

/* Тёмная тема — карточка не сливается с фоном */
[data-bs-theme="dark"] .blog-card {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .35);
}

[data-bs-theme="dark"] .blog-card:hover {
    box-shadow: 0 14px 34px rgba(0, 0, 0, .55);
}

/* ---------------------------------------------------------
   Блог: просмотр статьи
   --------------------------------------------------------- */

.blog-article {
    max-width: 780px;
    margin: 0 auto;
}

.blog-article__header {
    margin-bottom: 2.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.blog-article__title {
    font-size: clamp(1.75rem, 3.2vw, 2.5rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -.01em;
    margin: 0 0 .75rem;
    color: var(--bs-heading-color);
}

.blog-article__lead {
    font-size: 1.1rem;
    line-height: 1.5;
    margin-bottom: 1rem;
}

.blog-article__meta span {
    white-space: nowrap;
}

/* ---------- Контент Markdown ---------- */

.blog-article__content {
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--bs-body-color);
    word-wrap: break-word;
}

.blog-article__content > *:first-child { margin-top: 0; }
.blog-article__content > *:last-child  { margin-bottom: 0; }

.blog-article__content h1,
.blog-article__content h2,
.blog-article__content h3,
.blog-article__content h4,
.blog-article__content h5,
.blog-article__content h6 {
    color: var(--bs-heading-color);
    font-weight: 700;
    line-height: 1.25;
    margin: 2rem 0 1rem;
}

.blog-article__content h1 { font-size: 1.75rem; }
.blog-article__content h2 { font-size: 1.5rem; }
.blog-article__content h3 { font-size: 1.25rem; }
.blog-article__content h4 { font-size: 1.1rem; }

.blog-article__content p {
    margin: 0 0 1.1rem;
}

.blog-article__content a {
    color: var(--bs-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.blog-article__content a:hover {
    text-decoration: none;
}

.blog-article__content strong { font-weight: 700; }

.blog-article__content img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: .75rem;
    margin: 1.5rem auto;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}

[data-bs-theme="dark"] .blog-article__content img {
    box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
}

.blog-article__content blockquote {
    border-left: 4px solid var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-body-color);
    padding: 1rem 1.25rem;
    border-radius: 0 .5rem .5rem 0;
    margin: 1.5rem 0;
    font-style: italic;
}

.blog-article__content blockquote p:last-child { margin-bottom: 0; }

.blog-article__content ul,
.blog-article__content ol {
    margin: 0 0 1.1rem 1.4rem;
    padding: 0;
}

.blog-article__content li { margin-bottom: .35rem; }

.blog-article__content code {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
    padding: .15rem .4rem;
    border-radius: .3rem;
    font-size: .9em;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.blog-article__content pre {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
    padding: 1rem 1.15rem;
    border-radius: .75rem;
    overflow-x: auto;
    margin: 1.5rem 0;
    border: 1px solid var(--bs-border-color);
}

.blog-article__content pre code {
    background: none;
    padding: 0;
    font-size: .9em;
}

.blog-article__content hr {
    border: 0;
    border-top: 1px solid var(--bs-border-color);
    margin: 2rem 0;
}

.blog-article__content table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.5rem 0;
    font-size: .95rem;
}

.blog-article__content th,
.blog-article__content td {
    border: 1px solid var(--bs-border-color);
    padding: .5rem .75rem;
    text-align: left;
}

.blog-article__content th {
    background: var(--bs-tertiary-bg);
    font-weight: 600;
}

/* ---------- Футер статьи ---------- */

.blog-article__footer {
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bs-border-color);
}

/* ---------- Корректировки для тёмной темы ---------- */
[data-bs-theme="dark"] .feature-card,
[data-bs-theme="dark"] .plan-card {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .35);
}

[data-bs-theme="dark"] .feature-card:hover,
[data-bs-theme="dark"] .plan-card:hover {
    box-shadow: 0 14px 34px rgba(0, 0, 0, .55);
}

[data-bs-theme="dark"] .plan-card--popular {
    box-shadow: 0 14px 34px rgba(13, 110, 253, .25);
}

/* ---------------------------------------------------------
   Страница входа
   --------------------------------------------------------- */

.site-login {
    min-height: calc(100vh - var(--navbar-height) - 200px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem 3rem;
}

.login-wrap {
    width: 100%;
    max-width: 480px;
}

.login-card {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);
    border-radius: 1.25rem;
    padding: 2.5rem 2rem 2rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .06);
}

[data-bs-theme="dark"] .login-card {
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}

/* Заголовок */
.login-card__header {
    text-align: center;
    margin-bottom: 2rem;
}

.login-card__icon {
    width: 64px;
    height: 64px;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: #fff;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, #7b3ff2, #b95cf2);
    box-shadow: 0 8px 24px rgba(123, 63, 242, .35);
}

.login-card__title {
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: -.01em;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
}

.login-card__sub {
    font-size: .95rem;
    color: var(--bs-secondary-color);
    margin: 0;
}

/* Поля */
.login-form .form-label {
    font-weight: 600;
    font-size: .9rem;
    margin-bottom: .35rem;
}

.login-form .input-group-text {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-secondary-color);
    min-width: 48px;
    justify-content: center;
}

.login-form .form-control {
    border-color: var(--bs-border-color);
}

.login-form .form-control:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

.login-form .invalid-feedback {
    font-size: .85rem;
}

/* Чекбокс «Запомнить меня» */
.login-form .form-check {
    margin-top: .75rem;
}

.login-form .form-check-input:checked {
    background-color: var(--bs-primary);
    border-color: var(--bs-primary);
}

/* Футер карточки */
.login-card__footer {
    text-align: center;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bs-border-color);
    font-size: .95rem;
    color: var(--bs-secondary-color);
}

/* На мобильных — меньше отступов */
@media (max-width: 575.98px) {
    .login-card {
        padding: 1.75rem 1.25rem 1.5rem;
        border-radius: 1rem;
    }
    .login-card__icon {
        width: 56px;
        height: 56px;
        font-size: 1.5rem;
    }
    .login-card__title {
        font-size: 1.35rem;
    }
}

/* ---------------------------------------------------------
   Форма пользователя (регистрация / редактирование)
   --------------------------------------------------------- */

.user-form {
    padding: 2rem 1rem 3rem;
}

.user-form__wrap {
    max-width: 720px;
    margin: 0 auto;
}

.user-form__card {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);
    border-radius: 1.25rem;
    padding: 2.5rem 2rem 2rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .06);
}

[data-bs-theme="dark"] .user-form__card {
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}

/* Заголовок */
.user-form__header {
    text-align: center;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.user-form__icon {
    width: 64px;
    height: 64px;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: #fff;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, #7b3ff2, #b95cf2);
    box-shadow: 0 8px 24px rgba(123, 63, 242, .35);
}

.user-form__title {
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: -.01em;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
}

.user-form__sub {
    font-size: .95rem;
    color: var(--bs-secondary-color);
    margin: 0;
}

/* Секции */
.user-form__section {
    margin-bottom: 2rem;
}

.user-form__section-title {
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin: 0 0 1rem;
}

/* Поля */
.user-form .form-label {
    font-weight: 600;
    font-size: .9rem;
    margin-bottom: .35rem;
}

.user-form .input-group-text {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-secondary-color);
    min-width: 46px;
    justify-content: center;
}

.user-form .form-control,
.user-form .form-select {
    border-color: var(--bs-border-color);
}

.user-form .form-control:focus,
.user-form .form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

.user-form .invalid-feedback {
    font-size: .85rem;
}

.user-form textarea.form-control {
    resize: vertical;
    min-height: 120px;
}

/* Аватар */
.avatar-uploader {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
}

.avatar-uploader__preview {
    flex: 0 0 auto;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--bs-tertiary-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4rem;
    color: var(--bs-secondary-color);
    border: 2px solid var(--bs-border-color);
}

.avatar-uploader__preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.avatar-uploader__controls {
    flex: 1 1 auto;
    min-width: 0;
}

/* Кнопки */
.user-form__actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bs-border-color);
    margin-top: 1rem;
}

.user-form__actions .btn {
    flex: 1 1 auto;
    min-width: 200px;
}

.user-form__footer {
    text-align: center;
    margin: 1.25rem 0 0;
    font-size: .95rem;
    color: var(--bs-secondary-color);
}

/* Мобильные */
@media (max-width: 575.98px) {
    .user-form__card {
        padding: 1.75rem 1.25rem 1.5rem;
        border-radius: 1rem;
    }
    .user-form__icon {
        width: 56px;
        height: 56px;
        font-size: 1.5rem;
    }
    .user-form__title {
        font-size: 1.35rem;
    }
    .avatar-uploader {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .user-form__actions .btn {
        min-width: 100%;
    }
}

/* ---------------------------------------------------------
   Форма блога (создание / редактирование записи)
   --------------------------------------------------------- */

.blog-form {
    padding: 2rem 1rem 3rem;
}

.blog-form__wrap {
    max-width: 820px;
    margin: 0 auto;
}

.blog-form__card {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);
    border-radius: 1.25rem;
    padding: 2.5rem 2rem 2rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .06);
}

[data-bs-theme="dark"] .blog-form__card {
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}

/* Заголовок */
.blog-form__header {
    text-align: center;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.blog-form__icon {
    width: 64px;
    height: 64px;
    border-radius: 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.75rem;
    color: #fff;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, #2f7bff, #4dd0ff);
    box-shadow: 0 8px 24px rgba(47, 123, 255, .35);
}

.blog-form__title {
    font-size: 1.6rem;
    font-weight: 800;
    letter-spacing: -.01em;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
}

.blog-form__sub {
    font-size: .95rem;
    color: var(--bs-secondary-color);
    margin: 0;
}

/* Секции */
.blog-form__section {
    margin-bottom: 2rem;
}

.blog-form__section-title {
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin: 0 0 1rem;
}

/* Поля */
.blog-form .form-label {
    font-weight: 600;
    font-size: .9rem;
    margin-bottom: .35rem;
}

.blog-form .input-group-text {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-secondary-color);
    min-width: 46px;
    justify-content: center;
}

.blog-form .form-control,
.blog-form .form-select {
    border-color: var(--bs-border-color);
}

.blog-form .form-control:focus,
.blog-form .form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

.blog-form .invalid-feedback {
    font-size: .85rem;
}

.blog-form textarea.form-control {
    min-height: 280px;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .95rem;
    line-height: 1.6;
}

/* Кнопки */
.blog-form__actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bs-border-color);
    margin-top: 1rem;
}

.blog-form__actions .btn {
    flex: 1 1 auto;
    min-width: 200px;
}

/* Мобильные */
@media (max-width: 575.98px) {
    .blog-form__card {
        padding: 1.75rem 1.25rem 1.5rem;
        border-radius: 1rem;
    }
    .blog-form__icon {
        width: 56px;
        height: 56px;
        font-size: 1.5rem;
    }
    .blog-form__title {
        font-size: 1.35rem;
    }
    .blog-form__actions .btn {
        min-width: 100%;
    }
}

/* ---------------------------------------------------------
   Markdown-редактор (форма блога)
   --------------------------------------------------------- */

.md-editor {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    overflow: hidden;
    background: var(--bs-body-bg);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.md-editor:focus-within {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

/* Toolbar */
.md-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .15rem;
    padding: .4rem .55rem;
    background: var(--bs-tertiary-bg);
    border-bottom: 1px solid var(--bs-border-color);
}

.md-toolbar__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: .4rem;
    background: transparent;
    color: var(--bs-body-color);
    font-size: 1rem;
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease;
}

.md-toolbar__btn:hover {
    background: var(--bs-secondary-bg);
    color: var(--bs-primary);
}

.md-toolbar__btn:focus-visible {
    outline: 2px solid var(--bs-primary);
    outline-offset: 1px;
}

.md-toolbar__sep {
    display: inline-block;
    width: 1px;
    height: 20px;
    background: var(--bs-border-color);
    margin: 0 .35rem;
}

/* Textarea */
.md-editor .md-textarea {
    border: 0;
    border-radius: 0;
    min-height: 320px;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .95rem;
    line-height: 1.6;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: none !important;
}

.md-editor .md-textarea:focus {
    outline: none;
}

/* Footer с счётчиком и кнопкой */
.md-editor__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    padding: .5rem .75rem;
    border-top: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    font-size: .85rem;
}

.md-counter {
    color: var(--bs-secondary-color);
    font-variant-numeric: tabular-nums;
}

.md-preview-btn.active {
    background: var(--bs-primary);
    color: #fff;
    border-color: var(--bs-primary);
}

/* Панель предпросмотра */
.md-preview-pane {
    padding: 1.25rem 1.5rem 1.5rem;
    border-top: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    max-height: 720px;
    overflow-y: auto;
}

/* Внутри — те же стили статьи, что и на странице просмотра */
.md-preview-pane.blog-article__content {
    font-size: 1rem;
    line-height: 1.7;
}

/* Мобильные */
@media (max-width: 575.98px) {
    .md-toolbar__btn {
        width: 30px;
        height: 30px;
        font-size: .9rem;
    }
    .md-toolbar__sep {
        display: none;
    }
    .md-editor__footer {
        flex-direction: column;
        align-items: stretch;
    }
    .md-preview-btn {
        width: 100%;
    }
}

/* ---------------------------------------------------------
   Поддержка: index
   --------------------------------------------------------- */

.support-card {
    position: relative;
    display: flex;
    align-items: stretch;
    gap: 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    background: var(--bs-body-bg);
    padding: 1rem 1.25rem;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.support-card:hover {
    border-color: var(--bs-primary);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .06);
    transform: translateY(-2px);
}

.support-card__body {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
}

.support-card__head {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .5rem;
}

.support-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
}

.support-card__title a { color: inherit; }
.support-card__title a:hover { color: var(--bs-primary); }

.support-card__excerpt {
    font-size: .92rem;
    line-height: 1.5;
}

.support-card__actions {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    justify-content: center;
    position: relative;
    z-index: 2;
}

/* ---------------------------------------------------------
   Поддержка: view
   --------------------------------------------------------- */

.support-view__wrap {
    max-width: 800px;
    margin: 0 auto;
}

.support-message {
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    background: var(--bs-body-bg);
    padding: 1.25rem 1.5rem;
    margin-bottom: 1.25rem;
}

.support-message--user {
    border-left: 4px solid var(--bs-primary);
}

.support-message--support {
    border-left: 4px solid var(--bs-success);
    background: var(--bs-success-bg-subtle);
}

.support-message__head {
    display: flex;
    align-items: center;
    color: var(--bs-heading-color);
    margin-bottom: .5rem;
}

.support-message__body {
    color: var(--bs-body-color);
    line-height: 1.65;
    white-space: pre-wrap;
    word-wrap: break-word;
}

/* Тёмная тема */
[data-bs-theme="dark"] .support-card:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
}

/* Мобильные */
@media (max-width: 575.98px) {
    .support-card {
        flex-direction: column;
        padding: 1rem;
    }
    .support-card__actions {
        flex-direction: row;
        justify-content: flex-end;
    }
}

/* ---------------------------------------------------------
   Support: панель фильтров
   --------------------------------------------------------- */

.support-filters {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1rem 1.15rem;
}

.support-filters__form .form-label {
    color: var(--bs-secondary-color);
}

.support-filters .form-control-sm,
.support-filters .form-select-sm {
    min-height: 34px;
}

.support-filters .form-switch .form-check-input {
    margin-top: .25rem;
}

/* ---------------------------------------------------------
   Support: карточка-плитка (сетка 4×5)
   --------------------------------------------------------- */

.support-card--tile {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    background: var(--bs-body-bg);
    padding: 1rem 1rem .85rem;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.support-card--tile:hover {
    transform: translateY(-3px);
    border-color: var(--bs-primary);
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}

.support-card--tile .support-card__head {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .6rem;
}

.support-card--tile .support-card__title {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
    /* Обрезка до 2 строк */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.support-card--tile .support-card__title a {
    color: inherit;
}

.support-card--tile .support-card__title a:hover {
    color: var(--bs-primary);
}

.support-card--tile .support-card__excerpt {
    font-size: .88rem;
    line-height: 1.5;
    /* Обрезка до 3 строк */
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.support-card--tile .support-card__foot {
    font-size: .8rem;
    line-height: 1.4;
}

.support-card--tile .support-card__actions a {
    position: relative;
    z-index: 2;
}

[data-bs-theme="dark"] .support-card--tile:hover {
    box-shadow: 0 8px 24px rgba(0, 0, 0, .5);
}

/* ---------------------------------------------------------
   Support: сводка по статусам
   --------------------------------------------------------- */

.support-summary {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1rem 1.25rem;
}

.support-summary__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 1rem;
}

.support-summary__item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: .2rem;
    padding: .35rem .25rem;
    border-left: 3px solid var(--bs-border-color);
    padding-left: .75rem;
}

.support-summary__value {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
    color: var(--bs-heading-color);
    font-variant-numeric: tabular-nums;
}

.support-summary__label {
    display: flex;
    align-items: center;
    font-size: .8rem;
    color: var(--bs-secondary-color);
    line-height: 1.3;
}

.support-summary__label .badge {
    width: 10px;
    height: 10px;
    padding: 0;
    border-radius: 50%;
    display: inline-block;
}

/* Цветные акценты по статусу — совпадают с бейджами карточек */
.support-summary__item--status:nth-child(2) { border-left-color: var(--bs-primary); }
.support-summary__item--status:nth-child(3) { border-left-color: var(--bs-warning); }
.support-summary__item--status:nth-child(4) { border-left-color: var(--bs-success); }
.support-summary__item--status:nth-child(5) { border-left-color: var(--bs-secondary); }

/* Мобильные */
@media (max-width: 575.98px) {
    .support-summary__grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .support-summary__value {
        font-size: 1.25rem;
    }
}

/* ---------------------------------------------------------
   Game: фильтры
   --------------------------------------------------------- */

.game-filters {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1rem 1.15rem;
}

.game-filters__form .form-label {
    color: var(--bs-secondary-color);
}

.game-filters .form-control-sm,
.game-filters .form-select-sm {
    min-height: 34px;
}

/* ---------------------------------------------------------
   Game: карточка
   --------------------------------------------------------- */

.game-card {
    position: relative;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    overflow: hidden;
    background: var(--bs-body-bg);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.game-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
    border-color: var(--bs-primary);
}

[data-bs-theme="dark"] .game-card:hover {
    box-shadow: 0 14px 34px rgba(0, 0, 0, .55);
}

.game-card__cover-link {
    position: relative;
    display: block;
    aspect-ratio: 4 / 3;
    background: var(--bs-tertiary-bg);
    overflow: hidden;
}

.game-card__cover {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .4s ease;
}

.game-card:hover .game-card__cover {
    transform: scale(1.05);
}

.game-card__cover--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color);
    font-size: 3rem;
}

.game-card__rating {
    position: absolute;
    top: .6rem;
    right: .6rem;
    background: rgba(0, 0, 0, .65);
    color: #fff;
    padding: .15rem .5rem;
    border-radius: 999px;
    font-size: .8rem;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    backdrop-filter: blur(4px);
}

.game-card__rating i { color: #f5c518; }

.game-card__tag {
    display: inline-block;
    font-size: .7rem;
    font-weight: 600;
    padding: .15rem .5rem;
    border-radius: 999px;
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    margin-bottom: .5rem;
    width: fit-content;
}

.game-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.game-card__title a { color: inherit; }
.game-card__title a:hover { color: var(--bs-primary); }

.game-card__excerpt {
    font-size: .85rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.game-card__actions a {
    position: relative;
    z-index: 2;
}

/* ---------------------------------------------------------
   Game: view
   --------------------------------------------------------- */

.game-view__cover {
    position: relative;
    border-radius: 1rem;
    overflow: hidden;
    aspect-ratio: 4 / 3;
    background: var(--bs-tertiary-bg);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
}

.game-view__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.game-view__cover-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color);
    font-size: 4rem;
}

.game-view__meta {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
}

.game-view__meta-item {
    display: flex;
    align-items: center;
    gap: .6rem;
}

.game-view__meta-item > i {
    font-size: 1.5rem;
    color: var(--bs-primary);
}

.game-view__meta-value {
    font-weight: 700;
    font-size: 1.1rem;
    line-height: 1;
    color: var(--bs-heading-color);
}

.game-view__meta-label {
    font-size: .8rem;
    color: var(--bs-secondary-color);
}

.game-view__section {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bs-border-color);
}

.game-view__description {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--bs-body-color);
}

/* ---------------------------------------------------------
   Game: форма
   --------------------------------------------------------- */

.game-form {
    padding: 2rem 1rem 3rem;
}

.game-form__wrap { max-width: 800px; margin: 0 auto; }

.game-form__card {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);
    border-radius: 1.25rem;
    padding: 2.5rem 2rem 2rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .06);
}

[data-bs-theme="dark"] .game-form__card {
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}

.game-form__header {
    text-align: center;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.game-form__icon {
    width: 64px; height: 64px;
    border-radius: 1rem;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.75rem; color: #fff;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, #2f7bff, #4dd0ff);
    box-shadow: 0 8px 24px rgba(47, 123, 255, .35);
}

.game-form__title {
    font-size: 1.6rem; font-weight: 800;
    letter-spacing: -.01em; margin: 0 0 .35rem;
    color: var(--bs-heading-color);
}

.game-form__sub {
    font-size: .95rem; color: var(--bs-secondary-color); margin: 0;
}

.game-form__section { margin-bottom: 2rem; }

.game-form__section-title {
    font-size: .8rem; font-weight: 700;
    letter-spacing: .08em; text-transform: uppercase;
    color: var(--bs-secondary-color); margin: 0 0 1rem;
}

.game-form .form-label { font-weight: 600; font-size: .9rem; margin-bottom: .35rem; }
.game-form .form-control,
.game-form .form-select { border-color: var(--bs-border-color); }
.game-form .form-control:focus,
.game-form .form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}
.game-form .invalid-feedback { font-size: .85rem; }

.game-form__actions {
    display: flex; gap: .75rem; flex-wrap: wrap;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bs-border-color);
    margin-top: 1rem;
}

.game-form__actions .btn { flex: 1 1 auto; min-width: 200px; }

@media (max-width: 575.98px) {
    .game-form__card { padding: 1.75rem 1.25rem 1.5rem; border-radius: 1rem; }
    .game-form__actions .btn { min-width: 100%; }
    .game-view__meta { gap: 1rem; }
}

/* ---------------------------------------------------------
   Host: index — карточки ведущих
   --------------------------------------------------------- */

.host-card {
    position: relative;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    overflow: hidden;
    background: var(--bs-body-bg);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.host-card:hover {
    transform: translateY(-4px);
    border-color: var(--bs-primary);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
}

[data-bs-theme="dark"] .host-card:hover {
    box-shadow: 0 14px 34px rgba(0, 0, 0, .55);
}

.host-card__head {
    position: relative;
    padding: 1.5rem 1rem 0;
    text-align: center;
}

.host-card__avatar {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--bs-body-bg);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .12);
}

.host-card__avatar--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2.5rem;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
}

.host-card__role {
    position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: .7rem;
    font-weight: 700;
    padding: .2rem .55rem;
    border-radius: 999px;
}

.host-card__role--pro {
    background: rgba(13, 110, 253, .12);
    color: var(--bs-primary);
}

.host-card__role--pro-plus {
    background: rgba(255, 193, 7, .18);
    color: #b48c00;
}

.host-card__title {
    font-size: 1.1rem;
    font-weight: 700;
    text-align: center;
    margin: 0 0 .2rem;
    color: var(--bs-heading-color);
}

.host-card__title a { color: inherit; }
.host-card__title a:hover { color: var(--bs-primary); }

.host-card__excerpt {
    font-size: .88rem;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* ---------------------------------------------------------
   Host: view — длинный профиль
   --------------------------------------------------------- */

.host-hero {
    display: flex;
    gap: 2rem;
    align-items: flex-start;
    padding: 2rem 0 2.5rem;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.host-hero__avatar {
    width: 160px;
    height: 160px;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 12px 30px rgba(0, 0, 0, .15);
    border: 4px solid var(--bs-body-bg);
}

.host-hero__avatar--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: 4rem;
}

.host-hero__avatar-wrap { flex: 0 0 auto; }
.host-hero__info { flex: 1 1 auto; min-width: 0; }

.host-hero__name {
    font-size: clamp(1.75rem, 3vw, 2.25rem);
    font-weight: 800;
    letter-spacing: -.01em;
    margin: 0 0 .25rem;
    color: var(--bs-heading-color);
}

.host-hero__contacts {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem 1.5rem;
    margin-bottom: 1rem;
    font-size: .95rem;
}

.host-hero__contact {
    color: var(--bs-secondary-color);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.host-hero__contact:hover { color: var(--bs-primary); }

.host-hero__lead {
    font-size: 1.05rem;
    line-height: 1.6;
    margin: .75rem 0 0;
}

/* Секции */
.host-section {
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.host-section:last-child { border-bottom: 0; padding-bottom: 0; }

.host-section__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.25rem;
    gap: 1rem;
    flex-wrap: wrap;
}

.host-section__title {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0;
    color: var(--bs-heading-color);
}

/* Расписание */
.host-schedule {
    display: flex;
    flex-direction: column;
    gap: .75rem;
}

.host-schedule__item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .85rem 1rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    background: var(--bs-body-bg);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.host-schedule__item:hover {
    border-color: var(--bs-primary);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .05);
}

.host-schedule__date {
    flex: 0 0 auto;
    width: 60px;
    text-align: center;
    border-right: 1px solid var(--bs-border-color);
    padding-right: .75rem;
}

.host-schedule__day {
    font-size: 1.5rem;
    font-weight: 800;
    line-height: 1;
    color: var(--bs-primary);
}

.host-schedule__month {
    font-size: .8rem;
    color: var(--bs-secondary-color);
    text-transform: uppercase;
    letter-spacing: .05em;
}

.host-schedule__info { flex: 1 1 auto; min-width: 0; }

.host-schedule__title {
    font-weight: 600;
    color: var(--bs-heading-color);
    margin-bottom: .2rem;
}

.host-schedule__cta { flex: 0 0 auto; }

/* Мини-карточки игр */
.host-mini-card {
    display: block;
    text-decoration: none;
    color: inherit;
    border-radius: .6rem;
    overflow: hidden;
    background: var(--bs-tertiary-bg);
    transition: transform .2s ease;
}

.host-mini-card:hover { transform: translateY(-3px); color: inherit; }

.host-mini-card__cover {
    aspect-ratio: 4 / 3;
    background: var(--bs-secondary-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color);
    font-size: 2rem;
    overflow: hidden;
}

.host-mini-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.host-mini-card__title {
    padding: .5rem .65rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--bs-heading-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Пустое состояние */
.host-empty {
    text-align: center;
    padding: 2.5rem 1rem;
    color: var(--bs-secondary-color);
    border: 1px dashed var(--bs-border-color);
    border-radius: .75rem;
}

.host-empty i {
    font-size: 2.5rem;
    display: block;
    margin-bottom: .5rem;
    opacity: .6;
}

/* Прошедшие сессии */
.host-past {
    list-style: none;
    padding: 0;
    margin: 0;
}

.host-past li {
    padding: .5rem 0;
    border-bottom: 1px dashed var(--bs-border-color);
    font-size: .95rem;
}

.host-past li:last-child { border-bottom: 0; }

/* Сайдбар */
.host-sidebar { position: sticky; top: calc(var(--navbar-height) + 1rem); }

.host-sidebar__card {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.25rem 1.25rem 1.15rem;
}

.host-sidebar__title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 .85rem;
    color: var(--bs-heading-color);
}

.host-sidebar__list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: .92rem;
}

.host-sidebar__list li {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .35rem 0;
    color: var(--bs-body-color);
}

.host-sidebar__list li i {
    color: var(--bs-secondary-color);
    width: 1rem;
    text-align: center;
}

.host-sidebar__list a {
    color: var(--bs-body-color);
    text-decoration: none;
}

.host-sidebar__list a:hover { color: var(--bs-primary); }

/* Мобильные */
@media (max-width: 767.98px) {
    .host-hero {
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 1.25rem;
    }
    .host-hero__contacts { justify-content: center; }
    .host-sidebar { position: static; }
}

/* ---------------------------------------------------------
   Markdown-контент: типографика
   --------------------------------------------------------- */

.host-description,
.md-rendered {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--bs-body-color);
    word-wrap: break-word;
}

.host-description > *:first-child,
.md-rendered > *:first-child { margin-top: 0; }

.host-description > *:last-child,
.md-rendered > *:last-child  { margin-bottom: 0; }

.host-description h1,
.host-description h2,
.host-description h3,
.host-description h4,
.md-rendered h1,
.md-rendered h2,
.md-rendered h3,
.md-rendered h4 {
    color: var(--bs-heading-color);
    font-weight: 700;
    line-height: 1.25;
    margin: 1.5rem 0 .75rem;
}

.host-description h1, .md-rendered h1 { font-size: 1.5rem; }
.host-description h2, .md-rendered h2 { font-size: 1.3rem; }
.host-description h3, .md-rendered h3 { font-size: 1.1rem; }

.host-description p, .md-rendered p { margin: 0 0 1rem; }

.host-description a, .md-rendered a {
    color: var(--bs-primary);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.host-description a:hover, .md-rendered a:hover { text-decoration: none; }

.host-description img, .md-rendered img {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: .75rem;
    margin: 1.25rem auto;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .08);
}

.host-description blockquote, .md-rendered blockquote {
    border-left: 4px solid var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    padding: .75rem 1.15rem;
    border-radius: 0 .5rem .5rem 0;
    margin: 1.25rem 0;
    font-style: italic;
}

.host-description ul, .host-description ol,
.md-rendered ul, .md-rendered ol {
    margin: 0 0 1rem 1.4rem;
    padding: 0;
}

.host-description code, .md-rendered code {
    background: var(--bs-tertiary-bg);
    padding: .12rem .35rem;
    border-radius: .3rem;
    font-size: .9em;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.host-description pre, .md-rendered pre {
    background: var(--bs-tertiary-bg);
    padding: 1rem 1.15rem;
    border-radius: .75rem;
    overflow-x: auto;
    border: 1px solid var(--bs-border-color);
}

/* ---------------------------------------------------------
   Ссылки на соцсети
   --------------------------------------------------------- */

.social-link {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-weight: 600;
    text-decoration: none !important;
    padding: .15rem .55rem;
    border-radius: 999px;
    transition: transform .15s ease, background-color .15s ease, color .15s ease;
}

.social-link:hover {
    transform: translateY(-1px);
}

.social-link i {
    font-size: 1.05em;
    line-height: 1;
}

/* Индивидуальные цвета бренда */
.social-link--vk        { color: #0077ff; background: rgba(0, 119, 255, .10); }
.social-link--telegram  { color: #229ed9; background: rgba(34, 158, 217, .12); }
.social-link--youtube   { color: #ff0000; background: rgba(255, 0, 0, .10); }
.social-link--rutube    { color: #12a537; background: rgba(18, 165, 55, .12); }
.social-link--max       { color: #8b5cf6; background: rgba(139, 92, 246, .12); }
.social-link--instagram { color: #e1306c; background: rgba(225, 48, 108, .12); }

.social-link:hover {
    filter: brightness(.92);
}

/* В тёмной теме приглушаем фон, чтобы не резало глаз */
[data-bs-theme="dark"] .social-link {
    background: rgba(255, 255, 255, .08);
    color: var(--bs-body-color);
}
[data-bs-theme="dark"] .social-link--vk        { color: #5aa9ff; }
[data-bs-theme="dark"] .social-link--telegram  { color: #6cc5e6; }
[data-bs-theme="dark"] .social-link--youtube   { color: #ff6b6b; }
[data-bs-theme="dark"] .social-link--rutube    { color: #4cbf6c; }
[data-bs-theme="dark"] .social-link--max       { color: #b39bff; }
[data-bs-theme="dark"] .social-link--instagram { color: #f07aa1; }

/* ---------------------------------------------------------
   Отзывы
   --------------------------------------------------------- */

.review-picker {
    background: var(--bs-tertiary-bg);
    padding: 1rem 1.15rem;
    border-radius: .75rem;
    border: 1px solid var(--bs-border-color);
}

.review-form {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1.25rem 1.5rem;
}

/* Выбор оценки 1–10 */
.rating-input {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .35rem;
}

.rating-input__btn {
    width: 38px;
    height: 38px;
    border-radius: .5rem;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-weight: 700;
    font-size: .95rem;
    cursor: pointer;
    transition: background-color .12s ease, color .12s ease, border-color .12s ease;
}

.rating-input__btn:hover,
.rating-input__btn.is-hover {
    border-color: var(--bs-primary);
    color: var(--bs-primary);
}

.rating-input__btn.is-active {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

.rating-input__hidden { display: none; }

/* Список отзывов */
.review-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.review-item {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1rem 1.25rem;
}

.review-item__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: .5rem;
    gap: .75rem;
}

.review-item__author {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-weight: 600;
    color: var(--bs-heading-color);
}

.review-item__rating {
    display: inline-flex;
    align-items: baseline;
    gap: .25rem;
}

.review-item__score {
    font-weight: 800;
    font-size: 1.35rem;
    color: var(--bs-primary);
    line-height: 1;
}

.review-item__bar {
    height: 6px;
    border-radius: 999px;
    background: var(--bs-tertiary-bg);
    overflow: hidden;
    margin-bottom: .75rem;
}

.review-item__bar-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--bs-danger), var(--bs-warning), var(--bs-success));
    border-radius: inherit;
    transition: width .4s ease;
}

.review-item__comment {
    line-height: 1.6;
    color: var(--bs-body-color);
    margin-bottom: .65rem;
    word-wrap: break-word;
}

.review-item__date { font-size: .8rem; }

.review-empty {
    text-align: center;
    padding: 3rem 1rem;
    color: var(--bs-secondary-color);
    border: 1px dashed var(--bs-border-color);
    border-radius: .75rem;
}

.review-empty i {
    display: block;
    font-size: 2.5rem;
    opacity: .5;
    margin-bottom: .5rem;
}

/* ---------------------------------------------------------
   Календарь
   --------------------------------------------------------- */

.calendar-page { padding: 1.5rem 0 3rem; }

.calendar-header { margin-bottom: 1.5rem; }

.calendar-header__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.calendar-header__title {
    font-size: 1.6rem;
    font-weight: 800;
    margin: 0 0 .5rem;
    color: var(--bs-heading-color);
}

.calendar-header__nav {
    display: inline-flex;
    gap: .35rem;
}

.calendar-filters {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: .85rem 1rem;
    margin-bottom: 1rem;
}

.calendar-filters .form-label {
    color: var(--bs-secondary-color);
    margin-bottom: .2rem;
}

.calendar-legend {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    font-size: .85rem;
    color: var(--bs-secondary-color);
}

.calendar-legend__item {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

.calendar-legend__item::before {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 3px;
}

.calendar-legend__item--session::before { background: var(--bs-primary); }
.calendar-legend__item--event::before   { background: var(--bs-success); }

/* --- Сетка --- */

.calendar-grid {
    display: grid;
    grid-template-columns: 64px 1fr;
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    overflow: hidden;
    background: var(--bs-body-bg);
}

.calendar-grid__time {
    border-right: 1px solid var(--bs-border-color);
    background: var(--bs-tertiary-bg);
    user-select: none;
}

.calendar-grid__time-slot {
    height: var(--slot-height);
    font-size: .72rem;
    color: var(--bs-secondary-color);
    text-align: right;
    padding-right: .5rem;
    line-height: var(--slot-height);
    position: relative;
}

.calendar-grid__time-slot.is-hour span {
    color: var(--bs-body-color);
    font-weight: 600;
}

.calendar-grid__body {
    position: relative;
    min-height: calc(var(--slot-count) * var(--slot-height));
}

.calendar-grid__line {
    height: var(--slot-height);
    border-bottom: 1px dashed var(--bs-border-color);
    opacity: .4;
}

.calendar-grid__line.is-hour {
    opacity: 1;
    border-bottom-style: solid;
}

.calendar-empty {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color);
    text-align: center;
    padding: 2rem;
}

.calendar-empty i {
    font-size: 2.5rem;
    opacity: .4;
    margin-bottom: .5rem;
}

/* --- Элементы --- */

.calendar-item {
    position: absolute;
    display: block;
    padding: .25rem .5rem;
    border-radius: .4rem;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
    font-size: .78rem;
    line-height: 1.25;
    border-left: 3px solid;
    box-shadow: 0 2px 6px rgba(0, 0, 0, .06);
    transition: transform .1s ease, box-shadow .15s ease;
    z-index: 1;
}

.calendar-item:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .15);
    color: inherit;
    z-index: 2;
}

.calendar-item--session {
    background: var(--bs-primary-bg-subtle);
    border-color: var(--bs-primary);
    color: var(--bs-primary-text-emphasis);
}

.calendar-item--event {
    background: var(--bs-success-bg-subtle);
    border-color: var(--bs-success);
    color: var(--bs-success-text-emphasis);
}

.calendar-item__time {
    font-size: .7rem;
    opacity: .8;
    font-weight: 600;
}

.calendar-item__title {
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.calendar-item__subtitle {
    font-size: .7rem;
    opacity: .8;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- Форма события --- */

.event-form { padding: 2rem 1rem 3rem; }
.event-form__wrap { max-width: 720px; margin: 0 auto; }

.event-form__card {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1.25rem;
    padding: 2.5rem 2rem 2rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .06);
}

[data-bs-theme="dark"] .event-form__card {
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}

.event-form__header {
    text-align: center;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.event-form__icon {
    width: 64px; height: 64px;
    border-radius: 1rem;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.75rem; color: #fff;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, #198754, #20c997);
    box-shadow: 0 8px 24px rgba(25, 135, 84, .35);
}

.event-form__title {
    font-size: 1.6rem;
    font-weight: 800;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
}

.event-form__sub {
    font-size: .95rem;
    color: var(--bs-secondary-color);
    margin: 0;
}

.event-form .form-label { font-weight: 600; font-size: .9rem; }
.event-form .form-control { border-color: var(--bs-border-color); }
.event-form .form-control:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}
.event-form .invalid-feedback { font-size: .85rem; }

.event-form__actions {
    display: flex; gap: .75rem; flex-wrap: wrap;
    padding-top: 1.5rem;
    margin-top: 1rem;
    border-top: 1px solid var(--bs-border-color);
}

.event-form__actions .btn { flex: 1 1 auto; min-width: 180px; }

/* --- Мобильные --- */

@media (max-width: 575.98px) {
    .calendar-grid { grid-template-columns: 48px 1fr; }
    .calendar-grid__time-slot { font-size: .65rem; padding-right: .35rem; }
    .calendar-item { font-size: .72rem; padding: .2rem .35rem; }
    .event-form__card { padding: 1.75rem 1.25rem 1.5rem; border-radius: 1rem; }
    .event-form__actions .btn { min-width: 100%; }
}

/* ---------------------------------------------------------
   Модалка события
   --------------------------------------------------------- */

.event-modal {
    border: 0;
    border-radius: 1rem;
    overflow: hidden;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.event-modal__header {
    border-bottom: 1px solid var(--bs-border-color);
    padding: 1.25rem 1.5rem;
    align-items: center;
}

.event-modal__icon {
    width: 48px;
    height: 48px;
    border-radius: .85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    color: #fff;
    flex: 0 0 auto;
    background: linear-gradient(135deg, #198754, #20c997);
    box-shadow: 0 6px 16px rgba(25, 135, 84, .35);
}

.event-modal__subtitle {
    font-size: .85rem;
    color: var(--bs-secondary-color);
    margin-top: 2px;
}

.event-modal__body {
    padding: 1.5rem;
    font-size: 1rem;
    line-height: 1.65;
}

.event-modal__description {
    margin-bottom: 1.25rem;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.event-modal__meta {
    display: flex;
    flex-wrap: wrap;
    gap: .65rem 1.5rem;
    padding-top: 1rem;
    border-top: 1px solid var(--bs-border-color);
    color: var(--bs-secondary-color);
    font-size: .92rem;
}

.event-modal__meta-item {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}

.event-modal__meta-item a {
    color: inherit;
    text-decoration: none;
    font-weight: 600;
}

.event-modal__meta-item a:hover { color: var(--bs-primary); }

.event-modal__footer {
    border-top: 1px solid var(--bs-border-color);
    padding: 1rem 1.5rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.event-modal__loader {
    text-align: center;
    color: var(--bs-secondary-color);
    padding: 2rem 0;
}

.calendar-modes {
    display: inline-flex;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .6rem;
    padding: 3px;
    gap: 2px;
}

.calendar-modes__btn {
    display: inline-flex;
    align-items: center;
    padding: .35rem .8rem;
    font-size: .85rem;
    font-weight: 600;
    color: var(--bs-body-color);
    text-decoration: none;
    border-radius: .45rem;
    transition: background-color .15s ease, color .15s ease;
}

.calendar-modes__btn:hover {
    background: var(--bs-secondary-bg);
    color: var(--bs-primary);
}

.calendar-modes__btn.is-active {
    background: var(--bs-primary);
    color: #fff;
}

.calendar-week__grid {
    display: grid;
    grid-template-columns: 56px repeat(7, 1fr);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    overflow: hidden;
    background: var(--bs-body-bg);
}

.calendar-week__head {
    padding: .5rem .35rem;
    text-align: center;
    background: var(--bs-tertiary-bg);
    border-bottom: 1px solid var(--bs-border-color);
    border-left: 1px solid var(--bs-border-color);
    font-size: .8rem;
    text-decoration: none;
    color: var(--bs-body-color);
}

.calendar-week__head--time {
    border-left: 0;
}

.calendar-week__head--day:hover {
    background: var(--bs-secondary-bg);
    color: var(--bs-primary);
}

.calendar-week__head--day.is-today {
    background: var(--bs-primary-bg-subtle);
    color: var(--bs-primary-text-emphasis);
    font-weight: 700;
}

.calendar-week__day-name {
    font-size: .7rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .7;
}

.calendar-week__day-num {
    font-size: .85rem;
    font-weight: 700;
}

.calendar-week__time {
    background: var(--bs-tertiary-bg);
    border-right: 1px solid var(--bs-border-color);
}

.calendar-week__time-slot {
    height: var(--slot-height);
    font-size: .65rem;
    color: var(--bs-secondary-color);
    text-align: right;
    padding-right: .35rem;
    line-height: var(--slot-height);
}

.calendar-week__time-slot.is-hour {
    color: var(--bs-body-color);
    font-weight: 600;
}

.calendar-week__day {
    position: relative;
    border-left: 1px solid var(--bs-border-color);
    min-height: calc(var(--slot-count) * var(--slot-height));
}

.calendar-week__line {
    height: var(--slot-height);
    border-bottom: 1px dashed var(--bs-border-color);
    opacity: .35;
}

.calendar-week__line.is-hour {
    opacity: .8;
    border-bottom-style: solid;
}

.calendar-week__item {
    position: absolute;
    display: block;
    padding: 2px 4px;
    border-radius: .3rem;
    font-size: .7rem;
    line-height: 1.15;
    overflow: hidden;
    border-left: 2px solid;
    text-decoration: none;
    color: inherit;
    z-index: 1;
}

.calendar-week__item:hover {
    z-index: 2;
    filter: brightness(.95);
}

.calendar-week__item-title {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: block;
}

.calendar-month__grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 1px;
    background: var(--bs-border-color);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    overflow: hidden;
}

.calendar-month__weekday {
    background: var(--bs-tertiary-bg);
    padding: .55rem .35rem;
    text-align: center;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
}

.calendar-month__weekday.is-weekend {
    color: var(--bs-danger);
}

.calendar-month__day {
    background: var(--bs-body-bg);
    aspect-ratio: 1 / 1;
    padding: .5rem .55rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-decoration: none;
    color: var(--bs-body-color);
    transition: background-color .15s ease;
    position: relative;
    min-height: 74px;
}

.calendar-month__day:hover {
    background: var(--bs-secondary-bg);
    color: var(--bs-body-color);
}

.calendar-month__day.is-weekend {
    background: rgba(var(--bs-danger-rgb), .03);
}

.calendar-month__day.is-other-month {
    opacity: .35;
}

.calendar-month__day.is-today {
    background: var(--bs-primary-bg-subtle);
    box-shadow: inset 0 0 0 2px var(--bs-primary);
}

.calendar-month__day-num {
    font-size: .95rem;
    font-weight: 600;
    line-height: 1;
}

.calendar-month__day.is-today .calendar-month__day-num {
    color: var(--bs-primary);
    font-weight: 800;
}

.calendar-month__dots {
    display: flex;
    gap: 3px;
    align-items: center;
}

.calendar-month__dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.calendar-month__dot--session { background: var(--bs-primary); }
.calendar-month__dot--event   { background: var(--bs-success); }

.calendar-month__day.has-items .calendar-month__day-num {
    font-weight: 800;
}

/* Мобильные */
@media (max-width: 767.98px) {
    .calendar-week__grid { grid-template-columns: 40px repeat(7, 1fr); }
    .calendar-week__head { font-size: .7rem; padding: .35rem .15rem; }
    .calendar-week__time-slot { font-size: .6rem; }
    .calendar-month__day { min-height: 54px; padding: .35rem .4rem; }
    .calendar-month__day-num { font-size: .85rem; }
    .calendar-month__dot { width: 6px; height: 6px; }
}

/* ---------------------------------------------------------
   Session: index — карточки
   --------------------------------------------------------- */

.session-filters {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1rem 1.15rem;
}

.session-filters .form-label {
    color: var(--bs-secondary-color);
    margin-bottom: .2rem;
}

.session-card {
    position: relative;
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    overflow: hidden;
    background: var(--bs-body-bg);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.session-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
    border-color: var(--bs-primary);
}

.session-card.is-past {
    opacity: .72;
}

[data-bs-theme="dark"] .session-card:hover {
    box-shadow: 0 14px 34px rgba(0, 0, 0, .55);
}

.session-card__cover {
    position: relative;
    aspect-ratio: 16 / 9;
    background: var(--bs-tertiary-bg);
    overflow: hidden;
}

.session-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.session-card__cover-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color);
    font-size: 2.5rem;
}

.session-card__badge {
    position: absolute;
    top: .6rem;
    left: .6rem;
    font-size: .72rem;
    font-weight: 600;
    padding: .2rem .55rem;
    border-radius: 999px;
    color: #fff;
    backdrop-filter: blur(4px);
}

.session-card__badge--live { background: rgba(220, 53, 69, .9); }
.session-card__badge--past { background: rgba(108, 117, 125, .85); }

.session-card__format {
    position: absolute;
    bottom: .6rem;
    right: .6rem;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    padding: .2rem .5rem;
    border-radius: 999px;
    font-size: .78rem;
    backdrop-filter: blur(4px);
}

.session-card__title {
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.session-card__title a { color: inherit; }
.session-card__title a:hover { color: var(--bs-primary); }

.session-card__actions a {
    position: relative;
    z-index: 2;
}

/* ---------------------------------------------------------
   Session: view
   --------------------------------------------------------- */

.session-view__hero {
    display: grid;
    grid-template-columns: minmax(260px, 380px) 1fr;
    gap: 2rem;
    align-items: flex-start;
    margin-bottom: 1.5rem;
}

.session-view__hero-cover {
    aspect-ratio: 16 / 9;
    border-radius: 1rem;
    overflow: hidden;
    background: var(--bs-tertiary-bg);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
}

.session-view__hero-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.session-view__cover-placeholder {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    color: var(--bs-secondary-color);
    font-size: 3.5rem;
}

.session-view__title {
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    font-weight: 800;
    line-height: 1.15;
    letter-spacing: -.01em;
    margin: 0 0 1rem;
    color: var(--bs-heading-color);
}

.session-view__meta {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    margin-bottom: .5rem;
}

.session-view__meta-item {
    display: flex;
    align-items: center;
    gap: .55rem;
}

.session-view__meta-item > i {
    font-size: 1.35rem;
    color: var(--bs-primary);
}

.session-view__meta-value {
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.1;
    color: var(--bs-heading-color);
}

.session-view__meta-label {
    font-size: .78rem;
    color: var(--bs-secondary-color);
}

.session-view__section {
    margin-bottom: 2rem;
    padding-bottom: 1.75rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.session-view__section:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.session-view__description {
    font-size: 1.05rem;
    line-height: 1.7;
    color: var(--bs-body-color);
}

.session-view__link-box {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    padding: .75rem 1rem;
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    font-size: .98rem;
    word-break: break-all;
}

.session-view__link-box i {
    font-size: 1.25rem;
    color: var(--bs-primary);
    flex: 0 0 auto;
}

.session-view__link-box a {
    color: var(--bs-primary);
    text-decoration: none;
    font-weight: 600;
}

.session-view__link-box a:hover { text-decoration: underline; }

.session-view__empty {
    text-align: center;
    padding: 2rem 1rem;
    border: 1px dashed var(--bs-border-color);
    border-radius: .75rem;
    color: var(--bs-secondary-color);
}

.session-view__empty i {
    font-size: 2rem;
    display: block;
    margin-bottom: .5rem;
    opacity: .5;
}

/* Участники */
.session-participants {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: .75rem;
}

.session-participants__item {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .5rem .75rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .6rem;
    background: var(--bs-body-bg);
}

.session-participants__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}

.session-participants__avatar--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: 1.15rem;
}

.session-participants__name {
    font-weight: 600;
    color: var(--bs-heading-color);
    line-height: 1.2;
}

.session-view__cta { margin-bottom: 1rem; }

.session-view__sidebar {
    position: sticky;
    top: calc(var(--navbar-height, 64px) + 1rem);
}

.session-view__sidebar-card {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1rem 1.15rem;
}

.session-view__sidebar-title {
    font-size: .95rem;
    font-weight: 700;
    margin: 0 0 .75rem;
    color: var(--bs-heading-color);
}

.session-view__sidebar-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: .9rem;
}

.session-view__sidebar-list li {
    display: flex;
    gap: .5rem;
    align-items: center;
    padding: .35rem 0;
}

.session-view__sidebar-list i {
    color: var(--bs-secondary-color);
    width: 1rem;
    text-align: center;
}

/* ---------------------------------------------------------
   Session: форма
   --------------------------------------------------------- */

.session-form {
    padding: 2rem 1rem 3rem;
}

.session-form__wrap { max-width: 800px; margin: 0 auto; }

.session-form__card {
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    border: 1px solid var(--bs-border-color);
    border-radius: 1.25rem;
    padding: 2.5rem 2rem 2rem;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .06);
}

[data-bs-theme="dark"] .session-form__card {
    box-shadow: 0 20px 60px rgba(0, 0, 0, .5);
}

.session-form__header {
    text-align: center;
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.session-form__icon {
    width: 64px; height: 64px;
    border-radius: 1rem;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 1.75rem; color: #fff;
    margin-bottom: 1rem;
    background: linear-gradient(135deg, #2f7bff, #4dd0ff);
    box-shadow: 0 8px 24px rgba(47, 123, 255, .35);
}

.session-form__title {
    font-size: 1.6rem;
    font-weight: 800;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
}

.session-form__sub {
    font-size: .95rem;
    color: var(--bs-secondary-color);
    margin: 0;
}

.session-form__section { margin-bottom: 2rem; }

.session-form__section-title {
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-secondary-color);
    margin: 0 0 1rem;
}

.session-form .form-label { font-weight: 600; font-size: .9rem; }
.session-form .form-control,
.session-form .form-select { border-color: var(--bs-border-color); }
.session-form .form-control:focus,
.session-form .form-select:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}
.session-form .invalid-feedback { font-size: .85rem; }

.session-form__actions {
    display: flex;
    gap: .75rem;
    flex-wrap: wrap;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bs-border-color);
    margin-top: 1rem;
}

.session-form__actions .btn { flex: 1 1 auto; min-width: 200px; }

/* Мобильные */
@media (max-width: 767.98px) {
    .session-view__hero {
        grid-template-columns: 1fr;
        gap: 1.25rem;
    }
    .session-view__sidebar {
        position: static;
    }
    .session-form__card {
        padding: 1.75rem 1.25rem 1.5rem;
        border-radius: 1rem;
    }
    .session-form__actions .btn { min-width: 100%; }
    .session-view__meta { gap: 1rem; }
}

/* ---------------------------------------------------------
   Company page
   --------------------------------------------------------- */

.company-page {
    padding-bottom: 3rem;
}

/* HERO */
.company-hero {
    background: linear-gradient(135deg, #1b1f3b 0%, #2b2350 45%, #6f2d8f 100%);
    color: #fff;
    padding: 4rem 1rem 5rem;
    position: relative;
    overflow: hidden;
}

.company-hero::before,
.company-hero::after {
    content: "";
    position: absolute;
    border-radius: 50%;
    filter: blur(90px);
    opacity: .3;
    pointer-events: none;
}

.company-hero::before {
    width: 360px; height: 360px;
    background: #ff6ec7;
    top: -100px; left: -80px;
}

.company-hero::after {
    width: 400px; height: 400px;
    background: #4d8bff;
    bottom: -140px; right: -100px;
}

.company-hero__inner {
    position: relative;
    z-index: 2;
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.company-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .85rem;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    backdrop-filter: blur(6px);
    font-size: .82rem;
    font-weight: 600;
    margin-bottom: 1.25rem;
}

.company-hero__badge i { color: #f5c518; }

.company-hero__title {
    font-size: clamp(2rem, 4vw, 3rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -.01em;
    margin: 0 0 1rem;
}

.company-hero__tagline {
    display: block;
    font-size: .45em;
    font-weight: 500;
    opacity: .75;
    margin-top: .35rem;
}

.company-hero__lead {
    font-size: 1.15rem;
    line-height: 1.55;
    opacity: .9;
    margin: 0 0 1.75rem;
}

.company-hero__socials {
    display: flex;
    justify-content: center;
    gap: .65rem;
    flex-wrap: wrap;
}

.company-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .12);
    color: #fff;
    font-size: 1.15rem;
    text-decoration: none;
    transition: transform .18s ease, background-color .18s ease;
}

.company-social-link:hover {
    transform: translateY(-2px);
    background: rgba(255, 255, 255, .25);
    color: #fff;
}

/* STATS */
.company-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.5rem 1rem;
    margin: -3rem auto 2.5rem;
    max-width: 900px;
    position: relative;
    z-index: 3;
    box-shadow: 0 14px 34px rgba(0, 0, 0, .08);
}

[data-bs-theme="dark"] .company-stats {
    box-shadow: 0 14px 34px rgba(0, 0, 0, .5);
}

.company-stats__item {
    text-align: center;
    padding: .25rem .5rem;
    border-right: 1px solid var(--bs-border-color);
}

.company-stats__item:last-child { border-right: 0; }

.company-stats__value {
    font-size: 1.75rem;
    font-weight: 800;
    line-height: 1;
    color: var(--bs-heading-color);
    font-variant-numeric: tabular-nums;
    margin-bottom: .35rem;
}

.company-stats__label {
    font-size: .82rem;
    color: var(--bs-secondary-color);
    line-height: 1.2;
}

/* Sections */
.company-section {
    margin-bottom: 3rem;
}

.company-section__title {
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--bs-heading-color);
    margin: 0 0 1.25rem;
    display: flex;
    align-items: center;
}

.company-section__title i {
    color: var(--bs-primary);
}

.company-description {
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--bs-body-color);
    max-width: 860px;
}

/* Values */
.company-value {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.25rem 1.35rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .85rem;
    height: 100%;
    transition: border-color .2s ease, transform .2s ease;
}

.company-value:hover {
    border-color: var(--bs-primary);
    transform: translateY(-3px);
}

.company-value__icon {
    flex: 0 0 auto;
    width: 52px;
    height: 52px;
    border-radius: .75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #fff;
    background: linear-gradient(135deg, #7b3ff2, #b95cf2);
    box-shadow: 0 8px 20px rgba(123, 63, 242, .3);
}

.company-value__title {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 .35rem;
    color: var(--bs-heading-color);
}

.company-value__text {
    font-size: .95rem;
    line-height: 1.55;
    color: var(--bs-secondary-color);
}

/* Team */
.company-person {
    text-align: center;
    padding: 1.5rem 1rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .85rem;
    height: 100%;
    transition: border-color .2s ease, transform .2s ease;
}

.company-person:hover {
    border-color: var(--bs-primary);
    transform: translateY(-3px);
}

.company-person__avatar {
    width: 84px;
    height: 84px;
    border-radius: 50%;
    margin: 0 auto .85rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.25rem;
    color: var(--bs-secondary-color);
    background: var(--bs-tertiary-bg);
}

.company-person__name {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--bs-heading-color);
    margin-bottom: .15rem;
}

.company-person__role {
    font-size: .85rem;
    color: var(--bs-primary);
    font-weight: 600;
    margin-bottom: .65rem;
}

.company-person__about {
    font-size: .88rem;
    line-height: 1.5;
    color: var(--bs-secondary-color);
}

/* Contacts */
.company-contacts {
    list-style: none;
    padding: 0;
    margin: 0;
}

.company-contacts li {
    display: flex;
    gap: .85rem;
    align-items: flex-start;
    padding: .85rem 0;
    border-bottom: 1px dashed var(--bs-border-color);
}

.company-contacts li:last-child { border-bottom: 0; }

.company-contacts li > i {
    flex: 0 0 auto;
    font-size: 1.25rem;
    color: var(--bs-primary);
    width: 24px;
    text-align: center;
    margin-top: 2px;
}

.company-contacts__label {
    font-size: .78rem;
    color: var(--bs-secondary-color);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .15rem;
}

.company-contacts__value {
    font-size: 1rem;
    color: var(--bs-body-color);
    font-weight: 500;
    word-break: break-word;
}

/* CTA */
.company-cta {
    margin-top: 2rem;
}

.company-cta__inner {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 2.5rem 1.5rem;
    text-align: center;
}

.company-cta__title {
    font-size: 1.5rem;
    font-weight: 800;
    margin: 0 0 .75rem;
    color: var(--bs-heading-color);
}

.company-cta__text {
    color: var(--bs-secondary-color);
    max-width: 540px;
    margin: 0 auto 1.5rem;
}

/* Mobile */
@media (max-width: 767.98px) {
    .company-hero { padding: 3rem 1rem 4rem; }
    .company-hero__title { font-size: 1.65rem; }
    .company-hero__lead   { font-size: 1rem; }

    .company-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: .5rem;
        padding: 1.25rem .75rem;
        margin-top: -2rem;
    }
    .company-stats__item {
        border-right: 0;
        border-bottom: 1px solid var(--bs-border-color);
        padding: .75rem .25rem;
    }
    .company-stats__item:nth-child(odd) { border-right: 1px solid var(--bs-border-color); }
    .company-stats__item:nth-last-child(-n+2) { border-bottom: 0; }

    .company-stats__value { font-size: 1.35rem; }
    .company-section { margin-bottom: 2.25rem; }
    .company-section__title { font-size: 1.2rem; }
    .company-cta__title { font-size: 1.25rem; }
}

/* ---------------------------------------------------------
   Session: отзывы
   --------------------------------------------------------- */

.session-review-form {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1.15rem 1.25rem;
}

.session-review-form .form-control:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}

.session-reviews {
    display: flex;
    flex-direction: column;
    gap: .85rem;
}

.session-review {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: .75rem;
    padding: 1rem 1.15rem;
}

.session-review__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: .75rem;
    margin-bottom: .55rem;
}

.session-review__author {
    display: flex;
    align-items: center;
    gap: .65rem;
}

.session-review__avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}

.session-review__avatar--placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: 1.15rem;
}

.session-review__name {
    font-weight: 600;
    color: var(--bs-heading-color);
    line-height: 1.2;
}

.session-review__score {
    display: inline-flex;
    align-items: baseline;
    gap: .2rem;
}

.session-review__score-value {
    font-size: 1.35rem;
    font-weight: 800;
    color: var(--bs-primary);
    line-height: 1;
}

.session-review__bar {
    height: 5px;
    border-radius: 999px;
    background: var(--bs-tertiary-bg);
    overflow: hidden;
    margin-bottom: .65rem;
}

.session-review__bar-fill {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--bs-danger), var(--bs-warning), var(--bs-success));
    border-radius: inherit;
}

.session-review__comment {
    line-height: 1.6;
    color: var(--bs-body-color);
    word-wrap: break-word;
}

/* Уважаем настройки пользователя: без анимации */
@media (prefers-reduced-motion: reduce) {
    .hero,
    .hero::before,
    .hero::after,
    .demo-card,
    .hero-title,
    .hero-sub,
    .hero-actions {
        animation: none !important;
    }
    .reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* ---------------------------------------------------------
   Профиль
   --------------------------------------------------------- */

.profile-page { padding: 1.5rem 0 3rem; }

/* Hero профиля */
.profile-hero {
    display: flex;
    gap: 1.5rem;
    align-items: center;
    padding: 1.75rem 1.5rem;
    background: linear-gradient(135deg, #1b1f3b 0%, #2b2350 45%, #6f2d8f 100%);
    color: #fff;
    border-radius: 1.25rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
}

.profile-hero__avatar {
    flex: 0 0 auto;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    overflow: hidden;
    background: rgba(255, 255, 255, .15);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 3px solid rgba(255, 255, 255, .25);
}

.profile-hero__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.profile-hero__avatar-placeholder {
    font-size: 3rem;
    color: rgba(255, 255, 255, .6);
}

.profile-hero__info { flex: 1 1 auto; min-width: 220px; }

.profile-hero__name {
    font-size: clamp(1.5rem, 2.8vw, 2rem);
    font-weight: 800;
    margin: 0 0 .15rem;
}

.profile-hero__login { opacity: .8; }

.profile-hero__actions .btn {
    border-color: rgba(255, 255, 255, .35);
    color: #fff;
}

.profile-hero__actions .btn:hover {
    background: rgba(255, 255, 255, .15);
    color: #fff;
    border-color: #fff;
}

/* Статистика */
.profile-stats {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.25rem 1rem;
}

.profile-stats__item {
    text-align: center;
    padding: .25rem .5rem;
    border-right: 1px solid var(--bs-border-color);
}

.profile-stats__item:last-child { border-right: 0; }

.profile-stats__value {
    font-size: 1.6rem;
    font-weight: 800;
    line-height: 1;
    color: var(--bs-heading-color);
    font-variant-numeric: tabular-nums;
    margin-bottom: .3rem;
}

.profile-stats__label {
    font-size: .8rem;
    color: var(--bs-secondary-color);
    line-height: 1.2;
}

/* Секции */
.profile-section {
    margin-bottom: 2.5rem;
}

.profile-section__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.profile-section__title {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0;
    color: var(--bs-heading-color);
}

.profile-empty {
    text-align: center;
    padding: 2.25rem 1rem;
    border: 1px dashed var(--bs-border-color);
    border-radius: .75rem;
    color: var(--bs-secondary-color);
}

.profile-empty i {
    font-size: 2.25rem;
    display: block;
    margin-bottom: .5rem;
    opacity: .5;
}

/* Сайдбар */
.profile-sidebar__card {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.25rem 1.15rem 1.15rem;
}

.profile-sidebar__title {
    font-size: .95rem;
    font-weight: 700;
    margin: 0 0 .85rem;
    color: var(--bs-heading-color);
}

.profile-sidebar__list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: .92rem;
}

.profile-sidebar__list li + li { margin-top: .35rem; }

.profile-sidebar__list a {
    display: inline-flex;
    align-items: center;
    color: var(--bs-body-color);
    text-decoration: none;
    padding: .25rem 0;
}

.profile-sidebar__list a:hover { color: var(--bs-primary); }

/* ---------------------------------------------------------
   Таймер подписки
   --------------------------------------------------------- */

.subscription-timer__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: .5rem;
}

.subscription-timer__role {
    font-weight: 700;
    color: var(--bs-heading-color);
    font-size: .95rem;
}

.subscription-timer__days {
    font-size: .85rem;
    color: var(--bs-secondary-color);
    font-variant-numeric: tabular-nums;
}

.subscription-timer__bar {
    height: 6px;
    border-radius: 999px;
    background: var(--bs-tertiary-bg);
    overflow: hidden;
    margin-bottom: .5rem;
}

.subscription-timer__bar span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--bs-primary), var(--bs-success));
    border-radius: inherit;
    transition: width .4s ease;
}

.subscription-timer__bar--large {
    height: 10px;
    margin: .85rem 0;
}

.subscription-timer__meta {
    font-size: .82rem;
    color: var(--bs-secondary-color);
}

/* ---------------------------------------------------------
   Games (личный кабинет)
   --------------------------------------------------------- */

.profile-games__add {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.25rem 1.35rem;
}

/* ---------------------------------------------------------
   Settings
   --------------------------------------------------------- */

.profile-settings { padding: 1.5rem 0 3rem; }

.settings-card {
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1rem;
    padding: 1.5rem 1.5rem 1.25rem;
}

.settings-card__title {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 1.15rem;
    color: var(--bs-heading-color);
}

.settings-card .form-label { font-weight: 600; font-size: .9rem; }
.settings-card .form-control { border-color: var(--bs-border-color); }
.settings-card .form-control:focus {
    border-color: var(--bs-primary);
    box-shadow: 0 0 0 .2rem rgba(13, 110, 253, .15);
}
.settings-card .invalid-feedback { font-size: .85rem; }

.settings-card__actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 1rem;
    margin-top: 1rem;
    border-top: 1px solid var(--bs-border-color);
}

.settings-avatar { text-align: center; }
.settings-avatar__preview {
    width: 72px;
    height: 72px;
    border-radius: 50%;
    object-fit: cover;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--bs-tertiary-bg);
    color: var(--bs-secondary-color);
    font-size: 1.75rem;
}

.settings-info {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: .9rem;
}

.settings-info li {
    display: flex;
    justify-content: space-between;
    padding: .35rem 0;
    border-bottom: 1px dashed var(--bs-border-color);
}

.settings-info li:last-child { border-bottom: 0; }

/* ---------------------------------------------------------
   Subscriptions
   --------------------------------------------------------- */

.profile-subscriptions { padding: 1.5rem 0 3rem; }

.subscription-current__inner {
    background: linear-gradient(135deg, #1b1f3b 0%, #2b2350 60%, #6f2d8f 100%);
    color: #fff;
    border-radius: 1.25rem;
    padding: 1.75rem 1.85rem;
}

.subscription-current__inner--empty {
    background: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
    text-align: center;
    padding: 2.5rem 1.5rem;
}

.subscription-current__inner--empty i {
    font-size: 2.5rem;
    color: var(--bs-secondary-color);
    display: block;
    margin-bottom: .75rem;
}

.subscription-current__head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    flex-wrap: wrap;
}

.subscription-current__label {
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .7;
}

.subscription-current__title {
    font-size: 1.5rem;
    font-weight: 800;
    margin: .15rem 0 0;
}

.subscription-current__days {
    text-align: right;
}

.subscription-current__days-value {
    font-size: 2.25rem;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

.subscription-current__days-label {
    font-size: .8rem;
    opacity: .75;
}

.subscription-current__meta {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    font-size: .85rem;
    opacity: .85;
}

.plan-card--current {
    border-color: var(--bs-success) !important;
    box-shadow: 0 0 0 2px var(--bs-success-bg-subtle);
}

/* Модальное окно оплаты */
.payment-methods {
    display: grid;
    gap: .5rem;
}

.payment-method {
    display: block;
    cursor: pointer;
}

.payment-method input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.payment-method__body {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .75rem .95rem;
    border: 1px solid var(--bs-border-color);
    border-radius: .65rem;
    transition: border-color .15s ease, background-color .15s ease;
}

.payment-method__body > i {
    font-size: 1.5rem;
    color: var(--bs-primary);
}

.payment-method:hover .payment-method__body {
    border-color: var(--bs-primary);
}

.payment-method input:checked + .payment-method__body {
    border-color: var(--bs-primary);
    background: var(--bs-primary-bg-subtle);
    box-shadow: 0 0 0 2px rgba(13, 110, 253, .15);
}

/* Мобильные */
@media (max-width: 767.98px) {
    .profile-hero {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }
    .profile-hero__info { text-align: center; }
    .profile-hero__actions { justify-content: center; display: flex; flex-wrap: wrap; gap: .5rem; }

    .profile-stats {
        grid-template-columns: repeat(2, 1fr);
        gap: .5rem;
    }
    .profile-stats__item {
        border-right: 0;
        border-bottom: 1px solid var(--bs-border-color);
        padding: .75rem .25rem;
    }
    .profile-stats__item:nth-child(odd) { border-right: 1px solid var(--bs-border-color); }
    .profile-stats__item:nth-last-child(-n+1) { border-bottom: 0; }

    .subscription-current__inner { padding: 1.35rem 1.25rem; }
    .subscription-current__title { font-size: 1.25rem; }
    .subscription-current__days { text-align: left; }
    .subscription-current__days-value { font-size: 1.75rem; }
    .settings-card { padding: 1.25rem 1.15rem 1rem; }
}

/* ---------------------------------------------------------
   Главная для ведущих
   --------------------------------------------------------- */

/* Hero ведущих — смещённый оттенок, чтобы визуально отличать */
.hero--hosts {
    background: linear-gradient(135deg, #0f2a3d 0%, #1e4256 45%, #2c6e7a 100%);
    background-size: 200% 200%;
}

.hero--hosts::before { background: #4dd0ff; }
.hero--hosts::after  { background: #7b3ff2; }

.demo-card__cover--hosts {
    background: linear-gradient(135deg, #2f7bff, #4dd0ff);
}

/* Тизер-блок с переходом на ведущих */
.leading-teaser {
    background: var(--bs-tertiary-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 1.25rem;
    padding: 2rem 2rem 1.75rem;
}

.leading-teaser--cta {
    background: linear-gradient(135deg, #1b1f3b 0%, #2b2350 50%, #6f2d8f 100%);
    border-color: transparent;
    color: #fff;
}

.leading-teaser--cta .leading-teaser__title,
.leading-teaser--cta .leading-teaser__text {
    color: #fff;
}

.leading-teaser--cta .leading-teaser__text {
    opacity: .85;
}

.leading-teaser__label {
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--bs-primary);
    margin-bottom: .5rem;
}

.leading-teaser__title {
    font-size: clamp(1.25rem, 2.4vw, 1.75rem);
    font-weight: 800;
    letter-spacing: -.01em;
    margin: 0 0 .65rem;
    color: var(--bs-heading-color);
}

.leading-teaser__text {
    color: var(--bs-secondary-color);
    line-height: 1.6;
    max-width: 640px;
}

/* Бесплатный тариф */
.plan-card--free {
    border-color: var(--bs-success);
    box-shadow: 0 0 0 2px var(--bs-success-bg-subtle);
}

.plan-price--free {
    font-size: 2rem;
    font-weight: 800;
    color: var(--bs-success);
    margin: .25rem 0 .5rem;
}

/* Мобильные */
@media (max-width: 767.98px) {
    .leading-teaser {
        padding: 1.5rem 1.25rem;
    }
    .leading-teaser__title {
        font-size: 1.15rem;
    }
}