/* Inline стили и скрипт для предотвращения мерцания темы */
.card {
    box-shadow: var(--bs-box-shadow) !important;
}
:root, [data-bs-theme=light]  {    
    --bs-border-radius: 1.075rem!important;
}
.mirror-icon {
     transform: scaleX(-1);
     -webkit-transform: scaleX(-1); /* Для поддержки старых браузеров */
}
.theme-toggle {
    cursor: pointer;
    font-size: 1.3rem;
    transition: transform 0.3s ease;
}
.theme-icon-active {
    display: inline-block;
}
.theme-icon-inactive {
    display: none;
}
.theme-transition * {
    transition: background-color 0.3s ease, color 0.2s ease;
}




a {
    font-weight: 600;
}

/* Светлая тема */
html[data-bs-theme="light"] a:not(.btn):not(li a) {
    font-weight: 600;
    color: rgb(102, 119, 255); /* #6677ff */
}

/* Тёмная тема */
html[data-bs-theme="dark"] a:not(.btn):not(li a) {
    font-weight: 600;
    color: rgb(133, 161, 255);
}


#toTop {
    position: fixed;
    bottom: 13px;
    left: 7px;
    cursor: pointer;
    display: block;
    z-index: 999;
}
#toBottom {
    position: fixed;
    bottom: 13px;
    right: 7px;
    cursor: pointer;
    display: block;
    z-index: 999;
}


/* Font Size: 8px to 48px */
.fs-8 { font-size: 8px !important; }
.fs-9 { font-size: 9px !important; }
.fs-10 { font-size: 10px !important; }
.fs-11 { font-size: 11px !important; }
.fs-12 { font-size: 12px !important; }
.fs-13 { font-size: 13px !important; }
.fs-14 { font-size: 14px !important; }
.fs-15 { font-size: 15px !important; }
.fs-16 { font-size: 16px !important; }
.fs-18 { font-size: 18px !important; }
.fs-20 { font-size: 20px !important; }
.fs-24 { font-size: 24px !important; }
.fs-28 { font-size: 28px !important; }
.fs-32 { font-size: 32px !important; }
.fs-36 { font-size: 36px !important; }
.fs-40 { font-size: 40px !important; }
.fs-44 { font-size: 44px !important; }
.fs-48 { font-size: 48px !important; }

.fw-400 { font-weight: 400 !important; }
.fw-500 { font-weight: 500 !important; }
.fw-600 { font-weight: 600 !important; }
.fw-700 { font-weight: 700 !important; }


/* Width utility classes (25px to 250px, step 5px) */
.w-25-px { width: 25px !important; }
.w-30-px { width: 30px !important; }
.w-35-px { width: 35px !important; }
.w-40-px { width: 40px !important; }
.w-45-px { width: 45px !important; }
.w-50-px { width: 50px !important; }
.w-55-px { width: 55px !important; }
.w-60-px { width: 60px !important; }
.w-65-px { width: 65px !important; }
.w-70-px { width: 70px !important; }
.w-75-px { width: 75px !important; }
.w-80-px { width: 80px !important; }
.w-85-px { width: 85px !important; }
.w-90-px { width: 90px !important; }
.w-95-px { width: 95px !important; }
.w-100-px { width: 100px !important; }
.w-105-px { width: 105px !important; }
.w-110-px { width: 110px !important; }
.w-115-px { width: 115px !important; }
.w-120-px { width: 120px !important; }
.w-125-px { width: 125px !important; }
.w-130-px { width: 130px !important; }
.w-135-px { width: 135px !important; }
.w-140-px { width: 140px !important; }
.w-145-px { width: 145px !important; }
.w-150-px { width: 150px !important; }
.w-155-px { width: 155px !important; }
.w-160-px { width: 160px !important; }
.w-165-px { width: 165px !important; }
.w-170-px { width: 170px !important; }
.w-175-px { width: 175px !important; }
.w-180-px { width: 180px !important; }
.w-185-px { width: 185px !important; }
.w-190-px { width: 190px !important; }
.w-195-px { width: 195px !important; }
.w-200-px { width: 200px !important; }
.w-205-px { width: 205px !important; }
.w-210-px { width: 210px !important; }
.w-215-px { width: 215px !important; }
.w-220-px { width: 220px !important; }
.w-225-px { width: 225px !important; }
.w-230-px { width: 230px !important; }
.w-235-px { width: 235px !important; }
.w-240-px { width: 240px !important; }
.w-245-px { width: 245px !important; }
.w-250-px { width: 250px !important; }

/* min-width */
.min-w-25-px { min-width: 25px !important; }
.min-w-30-px { min-width: 30px !important; }
.min-w-35-px { min-width: 35px !important; }
.min-w-40-px { min-width: 40px !important; }
.min-w-45-px { min-width: 45px !important; }
.min-w-50-px { min-width: 50px !important; }
.min-w-55-px { min-width: 55px !important; }
.min-w-60-px { min-width: 60px !important; }
.min-w-65-px { min-width: 65px !important; }
.min-w-70-px { min-width: 70px !important; }
.min-w-75-px { min-width: 75px !important; }
.min-w-80-px { min-width: 80px !important; }
.min-w-85-px { min-width: 85px !important; }
.min-w-90-px { min-width: 90px !important; }
.min-w-95-px { min-width: 95px !important; }
.min-w-100-px { min-width: 100px !important; }
.min-w-105-px { min-width: 105px !important; }
.min-w-110-px { min-width: 110px !important; }
.min-w-115-px { min-width: 115px !important; }
.min-w-120-px { min-width: 120px !important; }
.min-w-125-px { min-width: 125px !important; }
.min-w-130-px { min-width: 130px !important; }
.min-w-135-px { min-width: 135px !important; }
.min-w-140-px { min-width: 140px !important; }
.min-w-145-px { min-width: 145px !important; }
.min-w-150-px { min-width: 150px !important; }
.min-w-155-px { min-width: 155px !important; }
.min-w-160-px { min-width: 160px !important; }
.min-w-165-px { min-width: 165px !important; }
.min-w-170-px { min-width: 170px !important; }
.min-w-175-px { min-width: 175px !important; }
.min-w-180-px { min-width: 180px !important; }
.min-w-185-px { min-width: 185px !important; }
.min-w-190-px { min-width: 190px !important; }
.min-w-195-px { min-width: 195px !important; }
.min-w-200-px { min-width: 200px !important; }
.min-w-205-px { min-width: 205px !important; }
.min-w-210-px { min-width: 210px !important; }
.min-w-215-px { min-width: 215px !important; }
.min-w-220-px { min-width: 220px !important; }
.min-w-225-px { min-width: 225px !important; }
.min-w-230-px { min-width: 230px !important; }
.min-w-235-px { min-width: 235px !important; }
.min-w-240-px { min-width: 240px !important; }
.min-w-245-px { min-width: 245px !important; }
.min-w-250-px { min-width: 250px !important; }

/* max-width */
.max-w-25-px { max-width: 25px !important; }
.max-w-30-px { max-width: 30px !important; }
.max-w-35-px { max-width: 35px !important; }
.max-w-40-px { max-width: 40px !important; }
.max-w-45-px { max-width: 45px !important; }
.max-w-50-px { max-width: 50px !important; }
.max-w-55-px { max-width: 55px !important; }
.max-w-60-px { max-width: 60px !important; }
.max-w-65-px { max-width: 65px !important; }
.max-w-70-px { max-width: 70px !important; }
.max-w-75-px { max-width: 75px !important; }
.max-w-80-px { max-width: 80px !important; }
.max-w-85-px { max-width: 85px !important; }
.max-w-90-px { max-width: 90px !important; }
.max-w-95-px { max-width: 95px !important; }
.max-w-100-px { max-width: 100px !important; }
.max-w-105-px { max-width: 105px !important; }
.max-w-110-px { max-width: 110px !important; }
.max-w-115-px { max-width: 115px !important; }
.max-w-120-px { max-width: 120px !important; }
.max-w-125-px { max-width: 125px !important; }
.max-w-130-px { max-width: 130px !important; }
.max-w-135-px { max-width: 135px !important; }
.max-w-140-px { max-width: 140px !important; }
.max-w-145-px { max-width: 145px !important; }
.max-w-150-px { max-width: 150px !important; }
.max-w-155-px { max-width: 155px !important; }
.max-w-160-px { max-width: 160px !important; }
.max-w-165-px { max-width: 165px !important; }
.max-w-170-px { max-width: 170px !important; }
.max-w-175-px { max-width: 175px !important; }
.max-w-180-px { max-width: 180px !important; }
.max-w-185-px { max-width: 185px !important; }
.max-w-190-px { max-width: 190px !important; }
.max-w-195-px { max-width: 195px !important; }
.max-w-200-px { max-width: 200px !important; }
.max-w-205-px { max-width: 205px !important; }
.max-w-210-px { max-width: 210px !important; }
.max-w-215-px { max-width: 215px !important; }
.max-w-220-px { max-width: 220px !important; }
.max-w-225-px { max-width: 225px !important; }
.max-w-230-px { max-width: 230px !important; }
.max-w-235-px { max-width: 235px !important; }
.max-w-240-px { max-width: 240px !important; }
.max-w-245-px { max-width: 245px !important; }
.max-w-250-px { max-width: 250px !important; }
.max-w-300-px { max-width: 300px !important; }
.max-w-350-px { max-width: 350px !important; }
.max-w-450-px { max-width: 450px !important; }



.text-left {
    text-align:left!important;
}
.text-center {
    text-align:center!important;
}
.text-right {
    text-align:right!important;
}

.btn {
    font-weight: 500!important;
}
.btn-action {
  color: #fff;
  background-color: #4a5df9;
  border-color: #4a5df9;
}

.btn-action:hover {
  color: #fff;
  background-color: #3f51e6;
  border-color: #3f51e6;
}

.btn-action:focus, .btn-action.focus {
  color: #fff;
  background-color: #3f51e6;
  border-color: #3f51e6;
  box-shadow: 0 0 0 0.25rem rgba(74, 93, 249, 0.5);
}

.btn-action:active, .btn-action.active {
  color: #fff;
  background-color: #3649d1;
  border-color: #3649d1;
}

.btn-action:disabled, .btn-action.disabled {
  color: #fff;
  background-color: #4a5df9;
  border-color: #4a5df9;
  opacity: 0.65;
}
.bg-action {
  background-color: #4a5df9 !important;
}
.text-action {
    color: #5865f2
}
.hover-action:hover {
    --bs-bg-opacity: 1;
    background-color: #4a5df9 !important;
}
.hover-light:hover {
    --bs-bg-opacity: 1;
    background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity))!important;
}


/* BEGIN event */
.event-active {
    border: 3px solid #ff7b72;
}
.event-today {
    border: 3px solid #3fb950;
}
.event-inactive {
    border: 3px solid var(--bs-card-border-color);
    -webkit-filter: grayscale(100%);
    -moz-filter: grayscale(100%);
    -ms-filter: grayscale(100%);
    -o-filter: grayscale(100%);
    filter: grayscale(100%);
    filter: gray;
}
.event-online {
    border: 3px solid #7289da;
    transition: border-color 0.3s ease-in-out;
    position: relative;
}

.event-online::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 3px solid rgba(76, 119, 224, 0.15);
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
    animation: ripple-lite 1.5s ease-out infinite;
}

@keyframes ripple-lite {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(2.5);
        opacity: 0;
    }
}
/* END event */



/* BEGIN club themes */
/* Плоские фоны */
.card-bg-soft-blue {
  background-color: #e7f1ff; /* светло-голубой */
  color: #0d3b66; /* тёмно-синий текст */
}

.card-bg-soft-green {
  background-color: #e9fbe7; /* мягкий зелёный */
  color: #1a4d2e; /* тёмный зелёный текст */
}

.card-bg-soft-yellow {
  background-color: #fff9e6; /* нежно-жёлтый */
  color: #664d00; /* коричневатый текст */
}

.card-bg-soft-pink {
  background-color: #fde7ef;
  color: #5c2b3b;
}

/* Градиенты */
.card-bg-gradient-action {
  background: linear-gradient(135deg, #6f7cfc, #4a5df9);
  color: #fff;
}

.card-bg-gradient-blue {
  background: linear-gradient(135deg, #6fb1fc, #4364f7);
  color: #fff;
}

.card-bg-gradient-green {
  background: linear-gradient(135deg, #5efc82, #00b36b);
  color: #fff;
}

.card-bg-gradient-purple {
  background: linear-gradient(135deg, #a18cd1, #fbc2eb);
  color: #2d0036;
}

.card-bg-gradient-orange {
  background: linear-gradient(135deg, #f6d365, #fda085);
  color: #4a2c00;
}

/* Поддержка тёмной темы Bootstrap */
[data-bs-theme="dark"] .card-bg-soft-blue {
  background-color: #0d3b66;
  color: #e7f1ff;
}

[data-bs-theme="dark"] .card-bg-soft-green {
  background-color: #1a4d2e;
  color: #e9fbe7;
}

[data-bs-theme="dark"] .card-bg-soft-yellow {
  background-color: #664d00;
  color: #fff9e6;
}

[data-bs-theme="dark"] .card-bg-soft-pink {
  background-color: #5c2b3b;
  color: #fde7ef;
}

/* END club themes */


.text-telegram {
    color: #0088cc !important;
}
.bg-telegram {
    background-color: #0088cc !important;
}
/* Оригинальные цвета Telegram */
.btn-telegram {
    background-color: #54a9eb;
    color: white;
    border: none;
    transition: background-color 0.3s ease;
}
.btn-telegram:hover,
.btn-telegram:focus {
    background-color: #46a1e7;
    color: white;
}
.btn-telegram:active {
    background-color: #46a1e7;
    color: white;
}

.dropdown-item, .nav-pills .nav-link, .hover-light, .form-control {
    border-radius: 0.4rem!important;
}

#avatar-clickable:hover {
  transform: scale(1.04);
  transition: transform 0.3s ease;
}


/* аватар группы */
.img-gr-av {
    width: 145px;
    height: 145px;
    object-fit: cover;
}

/*.h5 {*/
/*    font-size: 1.25rem;*/
/*}*/

/* md: планшеты (до 1200px) */
@media (max-width: 1200px) {
    .img-gr-av {
        width: 125px;
        height: 125px;
    }
    h5 {
        font-size: 1.15rem;
    }
}


/* md: планшеты (до 992px) */
@media (max-width: 992px) {
    .img-gr-av {
        width: 115px;
        height: 115px;
    }
    h5 {
        font-size: 1rem;
    }
    #toTop {
        bottom: 70px;
    }
    #toBottom {
        bottom: 70px;
    }
}

/* sm: телефоны (до 768px) */
@media (max-width: 768px) {
    .img-gr-av {
        width: 105px;
        height: 105px;
    }
    h5 {
        font-size: 0.95rem;
    }
}

/* xs: очень маленькие экраны (до 576px) */
@media (max-width: 576px) {
    .img-gr-av {
        width: 100px;
        height: 100px;
    }
    h5 {
        font-size: 0.95rem;
    }
    .col-md-12, .col-lg-12,
    .col-md-8, .col-lg-8,
    .col-md-9, .col-lg-9,
    .col-md-4, .col-lg-4,
    .col-md-3, .col-lg-3 {
        padding-right: 0px;
        padding-left: 0px;
    }
}
/* xs: очень маленькие экраны (после 768px) */
@media (min-width: 768px) {
    .text-sm-left {
        text-align:left!important;
    }
}


/* SELECT2 helpers for themes */
/* Светлая тема (bootstrap light) */
html[data-bs-theme="light"] .select2-container--default .select2-selection--single {
  background-color: #fff;
  border-color: #ccc;
  color: #212529;
  border-radius: 0.7rem;
}




html[data-bs-theme="light"] .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: #555 transparent transparent transparent;
}

html[data-bs-theme="light"] .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #0d6efd; /* bootstrap primary */
  color: white;
}

/* Тёмная тема (bootstrap dark) */
html[data-bs-theme="dark"] .select2-container--default .select2-selection--single {
  background-color: #212529; /* bootstrap dark background */
  border-color: #495057;
  color: #f8f9fa;
  border-radius: var(--bs-border-radius);
}

html[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border-color: #ddd transparent transparent transparent;
}

html[data-bs-theme="dark"] .select2-container--default .select2-results__option--highlighted[aria-selected] {
  background-color: #0d6efd; /* bootstrap primary */
  color: white;
}

/* Общие настройки */
.select2-container--default .select2-dropdown {
  border-radius: 0.375rem; /* bootstrap rounded */
  box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 0.15); /* bootstrap shadow */
}

/* Светлая тема */
html[data-bs-theme="light"] .select2-dropdown {
    background-color: white;
    border: 1px solid #aaa;
}

/* Тёмная тема */
html[data-bs-theme="dark"] .select2-dropdown {
    background-color: #212529; /* тёмный фон Bootstrap dark */
    border: 1px solid #495057; /* чуть светлее для контраста */
}

/* Светлая тема */
html[data-bs-theme="light"] .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #444; /* тёмно-серый текст для светлой темы */
    line-height: 28px;
}

/* Тёмная тема */
html[data-bs-theme="dark"] .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #e9ecef; /* светлый цвет текста для тёмной темы (Bootstrap light text) */
    line-height: 28px;
}

.select2-container .select2-selection--single {
    height: 55px!important;
}
.select2-container .select2-selection--single .select2-selection__rendered {
    padding-top: 20px!important;
}

/* Для светлой темы */
[data-bs-theme="light"] .select2-container--default .select2-results__option[aria-selected=true] {
    background-color: #ddd;
    color: #000;
}

/* Для тёмной темы */
[data-bs-theme="dark"] .select2-container--default .select2-results__option[aria-selected=true] {
    background-color: #444;
    color: #fff;
}



/* === multiple === */

/* Светлая тема */
html[data-bs-theme="light"] .select2-container--default .select2-selection--multiple {
    background-color: #fff; /* белый фон */
    border: 1px solid #aaa; /* серый бордер */
    border-radius: 4px;
    cursor: text;
}

/* Тёмная тема */
html[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple {
    background-color: #212529; /* фон Bootstrap dark */
    border: 1px solid #495057; /* тёмно-серый бордер */
    border-radius: 4px;
    cursor: text;
}

.select2-container .select2-selection--multiple .select2-selection__rendered {
    padding-top: 25px!important;
}

/* Светлая тема */
html[data-bs-theme="light"] .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #e4e4e4; /* светло-серый фон */
    border: 1px solid #aaa;    /* серый бордер */
}

/* Тёмная тема */
html[data-bs-theme="dark"] .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: #495057; /* тёмно-серый фон из Bootstrap */
    border: 1px solid #6c757d; /* серый бордер из Bootstrap */
}




/* Telegram-like blockquote */
blockquote {
    position: relative;
    margin: 1rem 0;
    padding: 0.75rem 1rem;
    border-left: 4px solid var(--bs-primary);
    border-radius: 0.25rem;
    background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
    color: var(--bs-body-color);         /* Подстраивается под тему */
    font-size: 0.95rem;
    line-height: 1.4;
}

blockquote p {
    margin-bottom: 0;
}

blockquote footer {
    display: block;
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--bs-secondary-color);
}

/* Для адаптации под темную тему, если используем data-bs-theme="dark" */
[data-bs-theme="dark"] blockquote {
    background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
    color: var(--bs-body-color);
    border-left-color: var(--bs-primary);
}

[data-bs-theme="light"] blockquote {
    background-color: rgba(var(--bs-tertiary-bg-rgb), var(--bs-bg-opacity)) !important;
    color: var(--bs-body-colo
}




