/**
 * Custom styles for CoreUI Pro v5.0.0
 * Fixes and customizations
 */

/* ============================================
   Базовый размер шрифта для всей темы
   ============================================ */

body {
    font-size: 0.875rem !important;
}

/* Уменьшаем заголовки */
h1 {
    font-size: 1.25rem !important;
}

h2 {
    font-size: 1.125rem !important;
}

h3 {
    font-size: 1rem !important;
}

h4 {
    font-size: 0.9375rem !important;
}

h5, h6 {
    font-size: 0.875rem !important;
}

/* Уменьшаем базовые элементы форм */
.form-label,
.form-control,
.form-select {
    font-size: 0.875rem !important;
}

/* Шрифт в кнопках еще меньше */
.btn {
    font-size: 0.8125rem !important;
}

/* Уменьшаем текст в input placeholder */
.form-control::placeholder {
    font-size: 0.875rem !important;
    color: #b3b8c2 !important;
}

/* Убираем иконку успешной валидации внутри input */
.was-validated .form-control:valid,
.form-control.is-valid {
    padding-right: 0.75rem !important;
    background-image: none !important;
}

.was-validated textarea.form-control:valid,
textarea.form-control.is-valid {
    padding-right: 0.75rem !important;
    background-image: none !important;
}

/* Убираем фокусную фиолетовую рамку у input */
.form-control:focus {
    border-color: var(--cui-border-color) !important;
    box-shadow: none !important;
}

/* ============================================
   Обратная совместимость с CoreUI v3
   ============================================ */

/* Класс float-right из Bootstrap 4 / CoreUI v3 */
.float-right {
    float: right !important;
}

.float-left {
    float: left !important;
}

/* ============================================
   Кастомная цветовая схема - #20a8d8
   ============================================ */

:root {
    /* Основной primary цвет */
    --cui-primary: #20a8d8;
    --cui-primary-rgb: 32, 168, 216;

    /* Оттенки primary */
    --cui-primary-bg-subtle: rgba(32, 168, 216, 0.1);
    --cui-primary-text-emphasis: #1a7da0;
    --cui-primary-border-subtle: rgba(32, 168, 216, 0.25);

    /* Цвета ссылок */
    --cui-link-color: #20a8d8;
    --cui-link-hover-color: #1e8bb5;
    --cui-link-color-rgb: 32, 168, 216;

    /* Состояния кнопок */
    --cui-btn-hover-bg: #1e8bb5;
    --cui-btn-hover-border-color: #1c84ab;
    --cui-btn-active-bg: #1a7da0;
    --cui-btn-active-border-color: #187696;
}

/* Кнопки primary */
.btn-primary {
    --cui-btn-bg: #20a8d8;
    --cui-btn-border-color: #20a8d8;
    --cui-btn-hover-bg: #1e8bb5;
    --cui-btn-hover-border-color: #1c84ab;
    --cui-btn-active-bg: #1a7da0;
    --cui-btn-active-border-color: #187696;
    --cui-btn-disabled-bg: #20a8d8;
    --cui-btn-disabled-border-color: #20a8d8;
}

/* Кнопки warning - оранжевый цвет */
.btn-warning {
    --cui-btn-bg: #f9b115;
    --cui-btn-border-color: #f9b115;
    --cui-btn-hover-bg: #fabd38;
    --cui-btn-hover-border-color: #fab92c;
    --cui-btn-active-bg: #fac144;
    --cui-btn-active-border-color: #fab92c;
    --cui-btn-disabled-bg: #f9b115;
    --cui-btn-disabled-border-color: #f9b115;
}

/* Кнопки info - голубой цвет */
.btn-info {
    --cui-btn-bg: #39afd1;
    --cui-btn-border-color: #39afd1;
    --cui-btn-hover-bg: #2e9fc0;
    --cui-btn-hover-border-color: #2a96b4;
    --cui-btn-active-bg: #258fad;
    --cui-btn-active-border-color: #2188a6;
    --cui-btn-disabled-bg: #39afd1;
    --cui-btn-disabled-border-color: #39afd1;
}

/* Кнопки success - зеленый цвет */
.btn-success {
    --cui-btn-bg: #51cf66;
    --cui-btn-border-color: #51cf66;
    --cui-btn-hover-bg: #3fb856;
    --cui-btn-hover-border-color: #3aad4f;
    --cui-btn-active-bg: #36a048;
    --cui-btn-active-border-color: #319341;
    --cui-btn-disabled-bg: #51cf66;
    --cui-btn-disabled-border-color: #51cf66;
}

/* Кнопки danger - красный цвет */
.btn-danger {
    --cui-btn-bg: #e55353;
    --cui-btn-border-color: #e55353;
    --cui-btn-hover-bg: #d43f3f;
    --cui-btn-hover-border-color: #c93a3a;
    --cui-btn-active-bg: #c23535;
    --cui-btn-active-border-color: #b53030;
    --cui-btn-disabled-bg: #e55353;
    --cui-btn-disabled-border-color: #e55353;
}

/* Ссылки */
a {
    color: #20a8d8;
}

a:hover {
    color: #1e8bb5;
}

/* ============================================
   Font Awesome иконки в sidebar
   ============================================ */

/* Поддержка Font Awesome иконок в nav-icon */
.sidebar-nav i.nav-icon {
    /* Отключаем flex для Font Awesome иконок */
    display: inline-block;
    /* Центрируем иконку */
    text-align: center;
    line-height: 1;
    /* Размеры как у SVG иконок CoreUI */
    width: var(--cui-sidebar-nav-link-icon-width, 24px);
    font-size: 1.25rem;
    /* Выравнивание по вертикали */
    vertical-align: middle;
}

/* Font Awesome псевдоэлемент */
.sidebar-nav i.nav-icon::before {
    display: inline-block;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
}

/* Цвета для Font Awesome иконок (как у CoreUI) */
.sidebar-nav .nav-link i.nav-icon {
    color: var(--cui-sidebar-nav-link-icon-color);
}

.sidebar-nav .nav-link:hover i.nav-icon {
    color: var(--cui-sidebar-nav-link-hover-icon-color);
}

.sidebar-nav .nav-link.active i.nav-icon {
    color: var(--cui-sidebar-nav-link-active-icon-color);
}

.sidebar-nav .nav-link.disabled i.nav-icon {
    color: var(--cui-sidebar-nav-link-disabled-icon-color);
}

/* Пустые Font Awesome контейнеры (для выравнивания) */
.sidebar-nav i.nav-icon:empty {
    /* Для пустых иконок сохраняем ширину */
    display: inline-block;
}

/* Узкий sidebar - Font Awesome иконки */
@media (min-width: 992px) {
    .sidebar-narrow-unfoldable:not(:hover) .nav-icon,
    .sidebar-narrow .nav-icon {
        /* Для узкого sidebar - Font Awesome иконки тоже должны быть по центру */
        text-align: center;
    }

    .sidebar-narrow-unfoldable:not(:hover) i.nav-icon,
    .sidebar-narrow i.nav-icon {
        width: calc(var(--cui-sidebar-narrow-width) - var(--cui-sidebar-nav-padding-x) * 2 - var(--cui-sidebar-nav-link-padding-x) * 2);
    }
}

/* ============================================
   Логотип в sidebar header
   ============================================ */

/* Выравнивание высоты sidebar-header с верхним header */
.sidebar-header {
    height: 53px !important;
    min-height: 53px !important;
    display: flex;
    align-items: center;
    padding: 0 1rem !important;
    box-sizing: border-box;
}

/* Логотип с темным фоном */
.sidebar-header .sidebar-brand {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: 1;
}

/* Уменьшаем размер логотипа для выравнивания */
.sidebar-header .sidebar-brand-full,
.sidebar-header .sidebar-brand-narrow {
    height: 40px !important;
    max-width: 100%;
    object-fit: contain;
}

/* ============================================
   Выравнивание верхнего header
   ============================================ */

/* Добавляем верхнюю границу к sidebar для выравнивания */
.sidebar {
    border-top: 1px solid rgba(0, 0, 21, 0.175);
}

/* Точная высота верхнего header для выравнивания */
.header .container-fluid {
    min-height: 54px;
    display: flex;
    align-items: center;
}

/* Убираем верхний отступ у первого nav-title */
.sidebar-nav .nav-title:first-child {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Уменьшаем размер шрифта в sidebar меню */
.sidebar-nav .nav-link {
    font-size: 0.875rem !important;
}

.sidebar-nav .nav-title {
    font-size: 0.75rem !important;
}

/* ============================================
   Уменьшаем шрифт в верхнем меню (header)
   ============================================ */

/* Верхнее меню навигации */
.header-nav .nav-link {
    font-size: 0.875rem !important;
}

/* Имя пользователя и роль в header */
.header-nav .text-body {
    font-size: 0.875rem !important;
}

.header-nav .text-body-secondary {
    font-size: 0.75rem !important;
}

/* Все пункты верхнего меню с padding и border-radius */
.header-nav .nav-link {
    padding: 0.5rem 1rem !important;
    border-radius: 0.375rem !important;
    border: 1px solid transparent !important;
    transition: all 0.15s ease-in-out !important;
}

/* При наведении на неактивный пункт - outline стиль */
.header-nav .nav-item:not(.active) .nav-link:hover {
    background-color: transparent !important;
    color: #20a8d8 !important;
    border-color: #20a8d8 !important;
}

/* Активный пункт верхнего меню как кнопка с заливкой */
.header-nav .nav-item.active .nav-link {
    background-color: #20a8d8 !important;
    color: #fff !important;
    border-color: #20a8d8 !important;
}

.header-nav .nav-item.active .nav-link:hover {
    background-color: #1e8bb5 !important;
    color: #fff !important;
    border-color: #1e8bb5 !important;
}

/* ============================================
   Настройки ширины и выравнивания рабочей области
   ============================================ */

/* Контейнер с фиксированной шириной */
.container-custom {
    width: 100%;
    padding-right: var(--cui-gutter-x, 1rem);
    padding-left: var(--cui-gutter-x, 1rem);
    margin-right: auto;
    margin-left: auto;
}

/* Конкретные значения ширины */
.container-custom[data-content-width="1200"] {
    max-width: 1200px;
}

.container-custom[data-content-width="1400"] {
    max-width: 1400px;
}

.container-custom[data-content-width="1600"] {
    max-width: 1600px;
}

.container-custom[data-content-width="1920"] {
    max-width: 1920px;
}

/* Выравнивание по центру (по умолчанию) */
.content-align-center {
    margin-left: auto;
    margin-right: auto;
}

/* Выравнивание по левому краю */
.content-align-left {
    margin-left: 0;
    margin-right: auto;
}

/* ============================================
   Выравнивание элементов меню второго уровня
   ============================================ */

/* Выравнивание элементов меню второго уровня по началу текста элемента первого уровня */
/* У первого уровня текст начинается на: padding-x (1rem) + icon-width (1.25rem) + icon-margin (0.75rem) = 3rem */

/* Для элементов с Font Awesome иконками отступ меньше, так как иконка не сдвигается влево */
.sidebar-nav .nav-group-items .nav-link:has(> i.nav-icon.fa-solid) {
    padding-left: calc(var(--cui-sidebar-nav-link-padding-x) + var(--cui-sidebar-nav-link-icon-width) + var(--cui-sidebar-nav-link-icon-margin)) !important;
}

/* Для элементов с bullet-иконками используем больший отступ */
.sidebar-nav .nav-group-items .nav-link:has(> span.nav-icon) {
    padding-left: 3rem !important;
}

/* Fallback для браузеров без поддержки :has() */
@supports not selector(:has(*)) {
    .sidebar-nav .nav-group-items .nav-link {
        padding-left: 3rem !important;
    }
}

/* Корректируем позицию иконок второго уровня */
/* Для Font Awesome иконок второго уровня используем обычное выравнивание */
.sidebar-nav .nav-group-items i.nav-icon {
    margin-left: 0 !important;
    margin-right: var(--cui-sidebar-nav-link-icon-margin) !important;
}

/* Для bullet-иконок второго уровня (без fa_icon) сдвигаем влево */
.sidebar-nav .nav-group-items span.nav-icon {
    margin-left: calc((var(--cui-sidebar-nav-link-icon-width) + var(--cui-sidebar-nav-link-icon-margin)) * -1) !important;
    margin-right: var(--cui-sidebar-nav-link-icon-margin) !important;
}

/* ============================================
   Оранжевая иконка для активного соревнования
   ============================================ */

/* Активное соревнование (раскрытое) имеет оранжевую иконку календаря */
.sidebar-nav .nav-group.show > .nav-link i.nav-icon.fa-calendar-check {
    color: #ff9800 !important; /* Оранжевый цвет */
}

/* Активный пункт меню соревнования тоже оранжевый */
.sidebar-nav .nav-group > .nav-link.active i.nav-icon.fa-calendar-check {
    color: #ff9800 !important; /* Оранжевый цвет */
}

/* При наведении на раскрытое соревнование */
.sidebar-nav .nav-group.show > .nav-link:hover i.nav-icon.fa-calendar-check {
    color: #f57c00 !important; /* Более темный оранжевый при наведении */
}

/* ============================================
   Стили модальных окон (как в CoreUI v3)
   ============================================ */

/* Компактная шапка модального окна с голубым фоном */
.modal-header {
    background-color: #20a8d8 !important;
    color: #fff !important;
    padding: 0.75rem 1rem !important;
    border-bottom: none !important;
}

/* Заголовок модального окна */
.modal-header .modal-title {
    color: #fff !important;
    font-size: 1rem !important;
    font-weight: 500 !important;
}

/* Кнопка закрытия в шапке (крестик) */
.modal-header button.btn-close {
    filter: brightness(0) invert(1) !important;
    opacity: 0.8 !important;
    padding: 0 !important;
    margin: 0 0 0 auto !important;
    width: 1rem !important;
    height: 1rem !important;
    background-size: 1rem !important;
    box-shadow: none !important;
    border: none !important;
    background-color: transparent !important;
    transition: opacity 0.15s ease-in-out !important;
}

.modal-header button.btn-close:hover {
    opacity: 1 !important;
}

.modal-header button.btn-close:focus {
    box-shadow: none !important;
    outline: none !important;
    opacity: 1 !important;
}

/* Уменьшаем отступы в теле модального окна */
.modal-body {
    padding: 1rem !important;
}

/* Уменьшаем отступы в footer модального окна */
.modal-footer {
    padding: 0.75rem 1rem !important;
}

/* Компактные кнопки в модальных окнах */
.modal-footer .btn {
    padding: 0.375rem 0.75rem !important;
}

/* Уменьшаем отступы у таблиц внутри модальных окон */
.modal-body .table {
    font-size: 0.875rem !important;
    margin-bottom: 0.5rem !important;
}

.modal-body .table th,
.modal-body .table td {
    padding: 0.5rem !important;
}

/* Компактные формы в модальных окнах */
.modal-body .form-label {
    margin-bottom: 0.25rem !important;
}

.modal-body .form-control,
.modal-body .form-select {
    padding: 0.375rem 0.75rem !important;
}

/* Уменьшаем отступы между элементами форм */
.modal-body .mb-3 {
    margin-bottom: 0.75rem !important;
}

/* Компактные заголовки внутри модальных окон */
.modal-body h2,
.modal-body h3,
.modal-body h4,
.modal-body h5 {
    margin-top: 0.5rem !important;
    margin-bottom: 0.5rem !important;
}

/* Вторичная кнопка (Отмена) */
.btn.btn-secondary {
    background-color: #6c757d !important;
    border-color: #6c757d !important;
    color: #fff !important;
}

.btn.btn-secondary:hover {
    background-color: #5a6268 !important;
    border-color: #545b62 !important;
}

/* ============================================
   CoreUI Buttons: base outline / base ghost (в теме v5.0.0 нет .btn-outline/.btn-ghost)
   https://coreui.io/bootstrap/docs/components/buttons/
   ============================================ */
.btn.btn-outline {
    --cui-btn-color: var(--cui-body-color);
    --cui-btn-border-color: var(--cui-border-color);
    --cui-btn-hover-color: var(--cui-body-color);
    --cui-btn-hover-bg: rgba(0, 0, 0, 0.05);
    --cui-btn-hover-border-color: var(--cui-border-color);
    --cui-btn-active-color: var(--cui-body-color);
    --cui-btn-active-bg: rgba(0, 0, 0, 0.10);
    --cui-btn-active-border-color: var(--cui-border-color);
    --cui-btn-disabled-color: var(--cui-body-color);
    --cui-btn-disabled-bg: transparent;
    --cui-btn-disabled-border-color: var(--cui-border-color);
    --cui-gradient: none;
}

.btn.btn-ghost {
    --cui-btn-color: var(--cui-body-color);
    --cui-btn-border-color: transparent;
    --cui-btn-hover-color: var(--cui-body-color);
    --cui-btn-hover-bg: rgba(0, 0, 0, 0.05);
    --cui-btn-hover-border-color: rgba(0, 0, 0, 0.05);
    --cui-btn-active-color: var(--cui-body-color);
    --cui-btn-active-bg: rgba(0, 0, 0, 0.10);
    --cui-btn-active-border-color: rgba(0, 0, 0, 0.10);
    --cui-btn-disabled-color: var(--cui-body-color);
    --cui-btn-disabled-bg: transparent;
    --cui-btn-disabled-border-color: transparent;
}

[data-coreui-theme="dark"] .btn.btn-outline,
.dark-theme .btn.btn-outline {
    --cui-btn-hover-bg: rgba(255, 255, 255, 0.08);
    --cui-btn-active-bg: rgba(255, 255, 255, 0.14);
}

[data-coreui-theme="dark"] .btn.btn-ghost,
.dark-theme .btn.btn-ghost {
    --cui-btn-hover-bg: rgba(255, 255, 255, 0.08);
    --cui-btn-hover-border-color: rgba(255, 255, 255, 0.08);
    --cui-btn-active-bg: rgba(255, 255, 255, 0.14);
    --cui-btn-active-border-color: rgba(255, 255, 255, 0.14);
}

/* ============================================
   CoreUI demo: отступ между демо-элементами и блоком кода (EnlighterJS)
   ============================================ */
/* EnlighterJS после инициализации заменяет <pre> на свой контейнер, поэтому задаем отступ и для pre, и для enlighter-обертки */
.coreui-demo pre[data-enlighter-language],
.coreui-demo .enlighter,
.coreui-demo [class*="enlighter-"] {
    margin-top: 10px !important;
}

/* ============================================
   Белый цвет текста для всех кнопок с цветным фоном
   ============================================ */
.btn-primary,
.btn-secondary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info,
.btn-dark {
    color: white !important;
}

.btn-primary:hover,
.btn-secondary:hover,
.btn-success:hover,
.btn-danger:hover,
.btn-warning:hover,
.btn-info:hover,
.btn-dark:hover {
    color: white !important;
}

/* Белый цвет иконок внутри кнопок */
.btn-primary span,
.btn-secondary span,
.btn-success span,
.btn-danger span,
.btn-warning span,
.btn-info span,
.btn-dark span {
    color: white !important;
}

/* Для темной темы также */
[data-coreui-theme="dark"] .btn-primary,
[data-coreui-theme="dark"] .btn-secondary,
[data-coreui-theme="dark"] .btn-success,
[data-coreui-theme="dark"] .btn-danger,
[data-coreui-theme="dark"] .btn-warning,
[data-coreui-theme="dark"] .btn-info,
[data-coreui-theme="dark"] .btn-dark {
    color: white !important;
}

/* ============================================
   Отступы для карточек
   ============================================ */
.card {
    margin-bottom: 15px;
}

/* ============================================
   Dark theme support: таблицы table.basic
   ============================================ */
[data-coreui-theme="dark"] table.basic,
.dark-theme table.basic
{
    background: var(--cui-body-bg, #1e2228);
    color: var(--cui-body-color, #e6e8eb);
}

[data-coreui-theme="dark"] table.basic th,
.dark-theme table.basic th
{
    background: #2a3038;
    color: var(--cui-body-color, #e6e8eb);
    border: 1px solid #3a414a;
}

[data-coreui-theme="dark"] table.basic td,
.dark-theme table.basic td
{
    background: transparent;
    color: var(--cui-body-color, #e6e8eb);
    border: 1px solid #2f363f;
}

[data-coreui-theme="dark"] table.basic tr.itog,
[data-coreui-theme="dark"] table.basic tr.subitog,
.dark-theme table.basic tr.itog,
.dark-theme table.basic tr.subitog
{
    background: #2a3038;
}

[data-coreui-theme="dark"] table.basic tr.itog,
.dark-theme table.basic tr.itog
{
    border-top: 3px solid #3a414a;
}

[data-coreui-theme="dark"] table.basic tr.subitog,
.dark-theme table.basic tr.subitog
{
    border-top: 1px solid #3a414a;
}

[data-coreui-theme="dark"] table.basic.b2 td,
.dark-theme table.basic.b2 td
{
    background: transparent;
    border-top: 1px solid #2f363f;
    border-bottom: 1px solid #2f363f;
}

[data-coreui-theme="dark"] table.basic.fz_small2 td,
.dark-theme table.basic.fz_small2 td
{
    background: transparent;
}

[data-coreui-theme="dark"] table.basic a.as_text,
.dark-theme table.basic a.as_text
{
    color: inherit;
}

[data-coreui-theme="dark"] table.basic div.comment,
.dark-theme table.basic div.comment
{
    color: #8cc6ff;
}

[data-coreui-theme="dark"] table.basic div.comment.red,
.dark-theme table.basic div.comment.red
{
    color: #ff6b6b;
}
