@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic&display=swap);

/* ===== SIMPLEBAR С КРАСИВЫМ СКРОЛЛОМ ===== */
[data-simplebar] {
    position: relative;
    flex-direction: column;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-content: flex-start;
    align-items: flex-start;
}

.simplebar-wrapper {
    width: inherit;
    height: inherit;
    max-width: inherit;
    max-height: inherit;
    overflow: hidden;
}

.simplebar-mask {
    direction: inherit;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: auto !important;
    height: auto !important;
    padding: 0;
    margin: 0;
    overflow: hidden;
    z-index: 0;
}

.simplebar-offset {
    direction: inherit !important;
    box-sizing: inherit !important;
    resize: none !important;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 0;
    margin: 0;
    -webkit-overflow-scrolling: touch;
}

.simplebar-content-wrapper {
    direction: inherit;
    box-sizing: border-box !important;
    position: relative;
    display: block;
    height: 100%;
    width: auto;
    max-width: 100%;
    max-height: 100%;
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.simplebar-content-wrapper::-webkit-scrollbar,
.simplebar-hide-scrollbar::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

.simplebar-content:before,
.simplebar-content:after {
    content: ' ';
    display: table;
}

.simplebar-placeholder {
    max-width: 100%;
    max-height: 100%;
    width: 100%;
    pointer-events: none;
}

.simplebar-height-auto-observer-wrapper {
    box-sizing: inherit !important;
    height: 100%;
    width: 100%;
    max-width: 1px;
    position: relative;
    float: left;
    max-height: 1px;
    padding: 0;
    margin: 0;
    pointer-events: none;
    flex-grow: inherit;
    flex-shrink: 0;
    flex-basis: 0;
    overflow: hidden;
    z-index: -1;
}

.simplebar-height-auto-observer {
    box-sizing: inherit;
    display: block;
    opacity: 0;
    position: absolute;
    top: 0;
    left: 0;
    height: 1000%;
    width: 1000%;
    min-height: 1px;
    min-width: 1px;
    overflow: hidden;
    pointer-events: none;
    z-index: -1;
}

.simplebar-track {
    position: absolute;
    right: 0;
    bottom: 0;
    pointer-events: none;
    overflow: hidden;
    z-index: 1;
}

[data-simplebar].simplebar-dragging {
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

[data-simplebar].simplebar-dragging .simplebar-content {
    pointer-events: none;
}

[data-simplebar].simplebar-dragging .simplebar-track {
    pointer-events: all;
}

.simplebar-scrollbar {
    position: absolute;
    left: 0;
    right: 0;
    min-height: 10px;
}

.simplebar-scrollbar:before {
    position: absolute;
    content: '';
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border-radius: 7px;
    left: 2px;
    right: 2px;
    opacity: 0;
    transition: opacity 0.2s linear, box-shadow 0.2s ease;
    box-shadow: 0 2px 5px rgba(59, 130, 246, 0.3);
    
}

.simplebar-scrollbar.simplebar-visible:before {
    opacity: 0.8;
    transition: opacity 0s linear;
}

.simplebar-scrollbar.simplebar-visible:hover:before {
    opacity: 1;
    box-shadow: 0 0 10px rgba(59, 130, 246, 0.5);
}

.simplebar-track.simplebar-vertical {
    top: 0;
    width: 11px;
}

.simplebar-track.simplebar-vertical .simplebar-scrollbar:before {
    top: 2px;
    bottom: 2px;
}

.simplebar-track.simplebar-horizontal {
    left: 0;
    height: 11px;
}

.simplebar-track.simplebar-horizontal .simplebar-scrollbar {
    right: auto;
    left: 0;
    top: 2px;
    height: 7px;
    min-height: 0;
    min-width: 10px;
    width: auto;
}

.simplebar-track.simplebar-horizontal .simplebar-scrollbar:before {
    height: 100%;
    left: 2px;
    right: 2px;
}

[data-simplebar-direction='rtl'] .simplebar-track.simplebar-vertical {
    right: auto;
    left: 0;
}

.hs-dummy-scrollbar-size {
    direction: rtl;
    position: fixed;
    opacity: 0;
    visibility: hidden;
    height: 500px;
    width: 500px;
    overflow-y: hidden;
    overflow-x: scroll;
}

.simplebar-hide-scrollbar {
    position: fixed;
    left: 0;
    visibility: hidden;
    overflow-y: scroll;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

/* ===== КАСТОМНЫЙ СКРОЛЛБАР ДЛЯ ВСЕГО САЙТА ===== */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 10px;
}

::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(59, 130, 246, 0.3);
}

::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(135deg, rgb(37, 99, 235), rgb(29, 78, 216));
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.5);
}

::-webkit-scrollbar-corner {
    background: transparent;
}

/* Для Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: rgb(59, 130, 246) rgba(255, 255, 255, 0.05);
}




@charset "UTF-8";

/* ===== КРАСИВЫЙ SWITCH ===== */
.switch {
    font-size: 0.9rem;
    position: relative;
}

.switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    border: 0;
    background: none;
}

.switch input + label {
    position: relative;
    display: inline-block;
    vertical-align: middle;
    min-width: 3.8rem;
    height: 1.9rem;
    line-height: 1.9rem;
    text-indent: 4.3rem;
    border-radius: 2rem;
    cursor: pointer;
    user-select: none;
    outline: none;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.switch input + label:before,
.switch input + label:after {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    content: '';
    display: block;
    width: 3.8rem;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.switch input + label:before {
    right: 0;
    background: linear-gradient(135deg, #4a5568, #2d3748);
    border-radius: 2rem;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);
}

.switch input + label:after {
    top: 2px;
    left: 2px;
    width: calc(1.9rem - 4px);
    height: calc(1.9rem - 4px);
    background: linear-gradient(135deg, #e2e8f0, #cbd5e0);
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2), inset 0 -2px 2px rgba(255, 255, 255, 0.5);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.switch input:checked + label:before {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2), 0 0 10px rgba(59, 130, 246, 0.3);
}

.switch input:checked + label:after {
    margin-left: 1.9rem;
    background: linear-gradient(135deg, #ffffff, #f7fafc);
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2), inset 0 -2px 2px rgba(255, 255, 255, 0.8);
    transform: scale(1.05);
}

.switch input:focus + label:before {
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.2), 0 0 0 4px rgba(59, 130, 246, 0.3);
    outline: none;
}

.switch input:disabled + label {
    color: #a0aec0;
    cursor: not-allowed;
    opacity: 0.6;
}

.switch input:disabled + label:before {
    background: linear-gradient(135deg, #4a5568, #2d3748);
    opacity: 0.5;
}

.switch input:disabled + label:after {
    background: #a0aec0;
    opacity: 0.5;
}

.switch input:active + label:after {
    transform: scale(0.95);
}

.switch input:checked:active + label:after {
    transform: scale(1.05) translateX(1.9rem);
}

/* ===== МАЛЕНЬКИЙ SWITCH ===== */
.switch.switch-sm {
    font-size: 0.7875rem;
}

.switch.switch-sm input + label {
    min-width: 3.1rem;
    height: 1.55rem;
    line-height: 1.55rem;
    text-indent: 3.6rem;
}

.switch.switch-sm input + label:before {
    width: 3.1rem;
}

.switch.switch-sm input + label:after {
    width: calc(1.55rem - 4px);
    height: calc(1.55rem - 4px);
}

.switch.switch-sm input:checked + label:after {
    margin-left: 1.55rem;
}

/* ===== БОЛЬШОЙ SWITCH ===== */
.switch.switch-lg {
    font-size: 1.125rem;
}

.switch.switch-lg input + label {
    min-width: 4.8rem;
    height: 2.4rem;
    line-height: 2.4rem;
    text-indent: 5.3rem;
}

.switch.switch-lg input + label:before {
    width: 4.8rem;
}

.switch.switch-lg input + label:after {
    width: calc(2.4rem - 4px);
    height: calc(2.4rem - 4px);
}

.switch.switch-lg input:checked + label:after {
    margin-left: 2.4rem;
}

/* ===== РАЗНЫЕ ЦВЕТА ДЛЯ SWITCH ===== */
.switch-primary input:checked + label:before {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
}

.switch-success input:checked + label:before {
    background: linear-gradient(135deg, #10b981, #059669);
}

.switch-danger input:checked + label:before {
    background: linear-gradient(135deg, #ef4444, #dc2626);
}

.switch-warning input:checked + label:before {
    background: linear-gradient(135deg, #f59e0b, #d97706);
}

/* ===== АНИМАЦИЯ ПРИ ЗАГРУЗКЕ ===== */
.switch.switch-loading input + label:after {
    animation: switchPulse 1.5s infinite;
}

@keyframes switchPulse {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
    }
    70% {
        box-shadow: 0 0 0 6px rgba(59, 130, 246, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
}

/* ===== ОТСТУПЫ ===== */
.switch + .switch {
    margin-left: 1rem;
}

/* ===== ТЕМНАЯ ТЕМА (уже и так темная) ===== */
.switch-dark input + label:before {
    background: linear-gradient(135deg, #2d3748, #1a202c);
}

.switch-dark input:checked + label:before {
    background: linear-gradient(135deg, #4a5568, #2d3748);
}

/* ===== ЭФФЕКТ ВОЛНЫ ПРИ КЛИКЕ ===== */
.switch input + label {
    overflow: hidden;
}

.switch input + label:after {
    z-index: 2;
}

.switch input + label:before {
    z-index: 1;
}

.switch input:focus + label {
    animation: ripple 0.4s ease-out;
}

@keyframes ripple {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.3);
    }
    100% {
        box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
    }
}

/*!
 * Bootstrap v4.6.2 с улучшенным дизайном
 */

:root {
	
	
	
	  --blue: #007bff;
  --indigo: #6610f2;
  --purple: #6f42c1;
  --pink: #e83e8c;
  --red: #dc3545;
  --orange: #fd7e14;
  --yellow: #ffc107;
  --green: #28a745;
  --teal: #20c997;
  --cyan: #17a2b8;
  --white: #ffffff;
  --gray: #7E8299;
  --gray-dark: #3F4254;

  --dark: rgb(6, 9, 31);
  --white: #ffffff;
	
	
	

    
    /* ===== ЦВЕТА ДЛЯ ТЕМ ===== */
    --primary: rgb(59, 130, 246);
    --secondary: #475569;
    --success: #10b981;
    --info: #0ea5e9;
    --warning: #f59e0b;
    --danger: #f43f5e;
    --light: #cbd5e1;

    
    /* ===== ДОПОЛНИТЕЛЬНЫЕ ЦВЕТА ===== */
    --primary-soft: rgba(59, 130, 246, 0.1);
    --success-soft: rgba(16, 185, 129, 0.1);
    --danger-soft: rgba(244, 63, 94, 0.1);
    --warning-soft: rgba(245, 158, 11, 0.1);
    
    /* ===== ГРАДИЕНТЫ ===== */
    --gradient-primary: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    --gradient-success: linear-gradient(135deg, #10b981, #059669);
    --gradient-danger: linear-gradient(135deg, #f43f5e, #e11d48);
    --gradient-warning: linear-gradient(135deg, #f59e0b, #d97706);
    --gradient-info: linear-gradient(135deg, #0ea5e9, #0284c7);
    --gradient-dark: linear-gradient(135deg, #1e293b, #0f172a);
    
    /* ===== ТЕНИ ===== */
    --shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.05);
    --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.15);
    --shadow-primary: 0 4px 15px rgba(59, 130, 246, 0.3);
    --shadow-success: 0 4px 15px rgba(16, 185, 129, 0.3);
    --shadow-danger: 0 4px 15px rgba(244, 63, 94, 0.3);
    
    /* ===== РАДИУСЫ ===== */
    --radius-sm: 0.25rem;
    --radius-md: 0.5rem;
    --radius-lg: 1rem;
    --radius-xl: 1.5rem;
    --radius-full: 9999px;
    
    /* ===== BREAKPOINTS ===== */
    --breakpoint-xs: 0;
    --breakpoint-sm: 576px;
    --breakpoint-md: 768px;
    --breakpoint-lg: 992px;
    --breakpoint-xl: 1200px;
    
    /* ===== ШРИФТЫ ===== */
    --font-family-sans-serif: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    
    /* ===== АНИМАЦИИ ===== */
    --transition-base: all 0.3s ease;
    --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-bounce: all 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* ===== БАЗОВЫЕ СТИЛИ ===== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* ===== УЛУЧШЕННЫЕ СТИЛИ ДЛЯ BOOTSTRAP КОМПОНЕНТОВ ===== */

/* Кнопки */
.btn {
    border-radius: var(--radius-md);
    font-weight: 500;
    transition: var(--transition-smooth);
    position: relative;
    overflow: hidden;
}

.btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.2);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.btn:hover::after {
    width: 300px;
    height: 300px;
}

.btn-primary {
    background: var(--gradient-primary);
    border: none;
    box-shadow: var(--shadow-primary);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(59, 130, 246, 0.4);
}

.btn-success {
    background: var(--gradient-success);
    border: none;
    box-shadow: var(--shadow-success);
}

.btn-success:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(16, 185, 129, 0.4);
}

.btn-danger {
    background: var(--gradient-danger);
    border: none;
    box-shadow: var(--shadow-danger);
}

.btn-danger:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(244, 63, 94, 0.4);
}

/* Карточки */
.card {
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
    background: #1e293b;
    transition: var(--dark);
    overflow: hidden;
}



/* Формы */
.form-control {
    background: #334155;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-md);
    color: white;
    transition: var(--transition-base);
}

.form-control:focus {
    background: #334155;
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-light);
    color: white;
}

/* Бэджи */
.badge {
    padding: 0.4rem 0.8rem;
    border-radius: var(--radius-full);
    font-weight: 500;
}

.badge-primary {
    background: var(--gradient-primary);
}

.badge-success {
    background: var(--gradient-success);
}

.badge-danger {
    background: var(--gradient-danger);
}

/* Алерты */
.alert {
    border: none;
    border-radius: var(--radius-lg);
    padding: 1rem 1.25rem;
    border-left: 4px solid transparent;
}

.alert-primary {
    background: var(--primary-soft);
    border-left-color: var(--primary);
    color: white;
}

.alert-success {
    background: var(--success-soft);
    border-left-color: var(--success);
    color: white;
}

.alert-danger {
    background: var(--danger-soft);
    border-left-color: var(--danger);
    color: white;
}

/* Дропдауны */
.dropdown-menu {
    background: #1e293b;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-xl);
    padding: 0.5rem;
}

.dropdown-item {
    color: #cbd5e1;
    border-radius: var(--radius-md);
    transition: var(--transition-base);
    padding: 0.5rem 1rem;
}

.dropdown-item:hover {
    background: var(--primary-soft);
    color: white;
    transform: translateX(5px);
}

/* Модальные окна */
.modal-content {
    background: rgb(6, 9, 31);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
}

.modal-header {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    padding: 1.25rem 1.5rem;
}

.modal-footer {
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    padding: 1.25rem 1.5rem;
}

/* Навигация */
.nav-link {
    color: #cbd5e1;
    border-radius: var(--radius-md);
    transition: var(--transition-base);
}

.nav-link:hover {
    background: var(--primary-soft);
    color: white;
}

.nav-link.active {
    background: var(--gradient-primary);
    color: white;
}

/* Таблицы */
.table {
    color: white;
}

.table thead th {
    border-bottom: 2px solid rgba(255, 255, 255, 0.1);
    color: white;
    font-weight: 600;
}

.table td {
    border-color: rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
}

.table-hover tbody tr:hover {
    background: var(--primary-soft);
    color: white;
}

/* Пагинация */
.page-link {
    background: #1e293b;
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    border-radius: var(--radius-md);
    margin: 0 2px;
    transition: var(--transition-base);
}

.page-link:hover {
    background: var(--primary-soft);
    border-color: var(--primary-light);
    color: white;
}

.page-item.active .page-link {
    background: var(--gradient-primary);
    border-color: var(--primary);
    color: white;
}

/* Прогресс бары */
.progress {
    background: #334155;
    border-radius: var(--radius-full);
    overflow: hidden;
}

.progress-bar {
    background: var(--gradient-primary);
    border-radius: var(--radius-full);
}

/* Списки */
.list-group-item {
    background: #1e293b;
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    border-radius: var(--radius-md) !important;
    margin-bottom: 2px;
}

.list-group-item:hover {
    background: var(--primary-soft);
    color: white;
}

.list-group-item.active {
    background: var(--gradient-primary);
    border-color: var(--primary);
    color: white;
}




*,
*:before,
*:after {
    box-sizing: border-box;
}

html {
    font-family: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1;
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: rgba(59, 130, 246, 0.1);
    scroll-behavior: smooth;
}

article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
    display: block;
}

body {
    margin: 0;
    font-family: 'Lato', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    font-size: 0.9rem;
    font-weight: 400;
    line-height: 1.6;
    color: #ffffff;
    text-align: left;
    background: var(--dark);

}

[tabindex="-1"]:focus:not(:focus-visible) {
    outline: 0 !important;
}

hr {
    box-sizing: content-box;
    height: 0;
    overflow: visible;
    border: 0;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    margin: 1rem 0;
}

h1, h2, h3, h4, h5, h6 {
    margin-top: 0;
    margin-bottom: 0.5rem;
    font-weight: 600;
    line-height: 1.2;
    color: #ffffff;
}

h1 {
    font-size: 2.5rem;
    background: linear-gradient(135deg, #fff, rgb(59, 130, 246));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

h2 {
    font-size: 2rem;
    color: rgb(59, 130, 246);
}

p {
    margin-top: 0;
    margin-bottom: 1rem;
    color: #cbd5e1;
}

abbr[title],
abbr[data-original-title] {
    text-decoration: underline dotted;
    cursor: help;
    border-bottom: 0;
    text-decoration-skip-ink: none;
}

address {
    margin-bottom: 1rem;
    font-style: normal;
    line-height: inherit;
    color: #cbd5e1;
}

ol,
ul,
dl {
    margin-top: 0;
    margin-bottom: 1rem;
}

ol ol,
ul ul,
ol ul,
ul ol {
    margin-bottom: 0;
}

dt {
    font-weight: 700;
    color: #ffffff;
}

dd {
    margin-bottom: 0.5rem;
    margin-left: 0;
    color: #cbd5e1;
}

blockquote {
    margin: 0 0 0.5rem;

    border-left: 2px solid rgb(59, 130, 246);
    background: rgba(59, 130, 246, 0.1);
    border-radius: 0.5rem;
    color: #cbd5e1;
}

b,
strong {
    font-weight: bolder;
    color: #ffffff;
}

small {
    font-size: 80%;
    color: #94a3b8;
}

sub,
sup {
    position: relative;
    font-size: 75%;
    line-height: 0;
    vertical-align: baseline;
}

sub {
    bottom: -0.25em;
}

sup {
    top: -0.5em;
}

a {
    color: rgb(59, 130, 246);
    text-decoration: none;
    background-color: transparent;
    transition: color 0.3s ease;
}

a:hover {
    color: rgb(37, 99, 235);
    text-decoration: underline;
}

a:not([href]):not([class]),
a:not([href]):not([class]):hover {
    color: inherit;
    text-decoration: none;
}

code,
kbd,
pre,
samp {
    font-family: SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace;
    font-size: 1em;
}

pre {
    margin-top: 0;
    margin-bottom: 1rem;
    overflow: auto;
    -ms-overflow-style: scrollbar;
    background: #1e293b;
    padding: 1rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
}

figure {
    margin: 0 0 1rem;
}

img {
    vertical-align: middle;
    border-style: none;
    max-width: 100%;
    height: 25px;
    border-radius: 10px;
}

svg {
    overflow: hidden;
    vertical-align: middle;
}

table {
    border-collapse: collapse;
    width: 100%;
}

caption {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    color: #94a3b8;
    text-align: left;
    caption-side: bottom;
}

th {
    text-align: inherit;
    text-align: -webkit-match-parent;
    color: #ffffff;
    font-weight: 500;
}

label {
    display: inline-block;
    margin-bottom: 0.5rem;
    color: #cbd5e1;
    font-weight: 500;
}

button {
    border-radius: 0;
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
    overflow: visible;
    text-transform: none;
    -webkit-appearance: button;
}

button:focus:not(:focus-visible) {
    outline: 0;
}

button,
input,
optgroup,
select,
textarea {
    margin: 0;
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

button,
input {
    overflow: visible;
}

button,
select {
    text-transform: none;
}

[role="button"] {
    cursor: pointer;
}

select {
    word-wrap: normal;
}

button:not(:disabled),
[type="button"]:not(:disabled),
[type="reset"]:not(:disabled),
[type="submit"]:not(:disabled) {
    cursor: pointer;
}

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
    padding: 0;
    border-style: none;
}

input[type="radio"],
input[type="checkbox"] {
    box-sizing: border-box;
    padding: 0;
    accent-color: rgb(59, 130, 246);
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="month"] {
    -webkit-appearance: listbox;
}

textarea {
    overflow: auto;
    resize: vertical;
}

fieldset {
    min-width: 0;
    padding: 0;
    margin: 0;
    border: 0;
}

legend {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 0;
    margin-bottom: 0.5rem;
    font-size: 1.5rem;
    line-height: inherit;
    color: inherit;
    white-space: normal;
}

progress {
    vertical-align: baseline;
}

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
    height: auto;
}

[type="search"] {
    outline-offset: -2px;
    -webkit-appearance: none;
}

[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

::-webkit-file-upload-button {
    font: inherit;
    -webkit-appearance: button;
}

output {
    display: inline-block;
}

summary {
    display: list-item;
    cursor: pointer;
    color: #cbd5e1;
}

template {
    display: none;
}

[hidden] {
    display: none !important;
}

/* ===== ДОПОЛНИТЕЛЬНЫЕ УЛУЧШЕНИЯ ===== */

::selection {
    background: rgb(59, 130, 246);
    color: white;
}

::-moz-selection {
    background: rgb(59, 130, 246);
    color: white;
}

:focus-visible {
    outline: 2px solid rgb(59, 130, 246);
    outline-offset: 2px;
    border-radius: 4px;
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
textarea:-webkit-autofill,
textarea:-webkit-autofill:hover,
textarea:-webkit-autofill:focus,
select:-webkit-autofill,
select:-webkit-autofill:hover,
select:-webkit-autofill:focus {
    -webkit-text-fill-color: white;
    -webkit-box-shadow: 0 0 0px 1000px #334155 inset;
    transition: background-color 5000s ease-in-out 0s;
}

/* Плавная прокрутка для якорей */
html {
    scroll-padding-top: 70px;
}

/* Улучшенные списки */
ul, ol {
    padding-left: 1.5rem;
}

li {
    color: #cbd5e1;
    margin-bottom: 0.25rem;
}

/* Кастомные маркеры для списков */
ul li::marker {
    color: rgb(59, 130, 246);
}

/* Цитаты */
blockquote p:last-child {
    margin-bottom: 0;
}

blockquote footer {
    color: #94a3b8;
    font-size: 0.875rem;
    margin-top: 0.5rem;
}

/* Горизонтальная линия */
hr {
    background: linear-gradient(90deg, transparent, rgb(59, 130, 246), transparent);
    height: 1px;
    border: none;
}



/* ===== ТИПОГРАФИКА ===== */
.h1, .h2, .h3, .h4, .h5, .h6,
h1, h2, h3, h4, h5, h6 {
    margin-bottom: 0.5rem;
    font-weight: 600;
    line-height: 1.2;
    color: #ffffff;
}

.h1, h1 {
    font-size: 2.5rem;
    background: linear-gradient(135deg, #ffffff, rgb(59, 130, 246));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    display: inline-block;
}

.h2, h2 {
    font-size: 2rem;
    color: rgb(59, 130, 246);
    border-left: 4px solid rgb(59, 130, 246);
    padding-left: 1rem;
}

.h3, h3 {
    font-size: 1.75rem;
    color: #ffffff;
    position: relative;
    display: inline-block;
}

.h3:after {
    content: '';
    position: absolute;
    bottom: -5px;
    left: 0;
    width: 50px;
    height: 3px;
    background: linear-gradient(90deg, rgb(59, 130, 246), transparent);
    border-radius: 3px;
}

.h4, h4 {
    font-size: 1.5rem;
    color: #cbd5e1;
    font-weight: 500;
}

.h5, h5 {
    font-size: 1.25rem;
    color: #ffffff;
}

.h6, h6 {
    font-size: 1rem;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ===== LEAD ТЕКСТ ===== */
.lead {
    font-size: 1.25rem;
    font-weight: 300;
    color: #cbd5e1;
    line-height: 1.7;
}

/* ===== DISPLAY ЗАГОЛОВКИ ===== */
.display-1 {
    font-size: 6rem;
    font-weight: 700;
    line-height: 1.2;
    background: linear-gradient(135deg, #ffffff, rgb(59, 130, 246), #8b5cf6);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 2px 10px rgba(59, 130, 246, 0.2);
}

.display-2 {
    font-size: 5.5rem;
    font-weight: 600;
    line-height: 1.2;
    color: #ffffff;
    text-shadow: 0 2px 15px rgba(59, 130, 246, 0.3);
}

.display-3 {
    font-size: 4.5rem;
    font-weight: 500;
    line-height: 1.2;
    color: #cbd5e1;
}

.display-4 {
    font-size: 3.5rem;
    font-weight: 400;
    line-height: 1.2;
    color: #94a3b8;
}

/* ===== HR ЛИНИЯ ===== */
hr {
    margin-top: 1rem;
    margin-bottom: 1rem;
    border: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.3), rgb(59, 130, 246), rgba(59, 130, 246, 0.3), transparent);
}

/* ===== МАЛЕНЬКИЙ ТЕКСТ ===== */
.small, small {
    font-size: 0.875em;
    font-weight: 400;
    color: #94a3b8;
}

/* ===== MARK ТЕКСТ ===== */
.mark, mark {
    padding: 0.2em 0.4em;
    background: rgba(59, 130, 246, 0.2);
    color: #ffffff;
    border-radius: 4px;
    border-left: 2px solid rgb(59, 130, 246);
}

/* ===== СПИСКИ ===== */
.list-unstyled {
    padding-left: 0;
    list-style: none;
}

.list-inline {
    padding-left: 0;
    list-style: none;
}

.list-inline-item {
    display: inline-block;
}

.list-inline-item:not(:last-child) {
    margin-right: 0.5rem;
}

/* Стилизованные списки */
.list-styled {
    list-style: none;
    padding-left: 0;
}

.list-styled li {
    padding: 0.5rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.list-styled li:last-child {
    border-bottom: none;
}

.list-styled li:before {
    content: '→';
    color: rgb(59, 130, 246);
    margin-right: 0.5rem;
    font-weight: bold;
}

/* ===== INITIALISM ===== */
.initialism {
    font-size: 90%;
    text-transform: uppercase;
    color: rgb(59, 130, 246);
    letter-spacing: 1px;
}

/* ===== BLOCKQUOTE ===== */
.blockquote {
    font-size: 1.125rem;
    margin-bottom: 1rem;
    padding: 1rem 1.5rem;
    background: rgba(30, 41, 59, 0.8);
    border-left: 4px solid rgb(59, 130, 246);
    border-radius: 0.5rem;
    color: #cbd5e1;
    font-style: italic;
}

.blockquote-footer {
    display: block;
    font-size: 0.7rem;
    color: #94a3b8;
    margin-top: 0.1rem;
}

.blockquote-footer:before {
    content: "— ";
}

/* ===== ИЗОБРАЖЕНИЯ ===== */
.img-fluid {
    max-width: 100%;
    height: auto;
    border-radius: 0.5rem;
}

.img-thumbnail {
    max-width: 100%;
    height: auto;
    padding: 0.25rem;
    background: #1e293b;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 0.5rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
}

.img-thumbnail:hover {
    transform: scale(1.02);
    box-shadow: 0 8px 15px rgba(59, 130, 246, 0.2);
    border-color: rgb(59, 130, 246);
}

/* ===== FIGURE ===== */
.figure {
    display: inline-block;
    margin: 0;
}

.figure-img {
    margin-bottom: 0.5rem;
    line-height: 1;
    border-radius: 0.5rem;
    overflow: hidden;
}

.figure-img img {
    transition: transform 0.3s ease;
}

.figure-img:hover img {
    transform: scale(1.05);
}

.figure-caption {
    font-size: 90%;
    color: #94a3b8;
    text-align: center;
    padding: 0.5rem;
}

/* ===== КОД ===== */
code {
    font-size: 87.5%;
    color: #f43f5e;
    word-wrap: break-word;
    background: rgba(244, 63, 94, 0.1);
    padding: 0.2rem 0.4rem;
    border-radius: 4px;
}

a > code {
    color: inherit;
}

kbd {
    padding: 0.2rem 0.4rem;
    font-size: 87.5%;
    color: #ffffff;
    background: #1e293b;
    border-radius: 4px;
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

kbd kbd {
    padding: 0;
    font-size: 100%;
    font-weight: 700;
    box-shadow: none;
}

pre {
    display: block;
    font-size: 87.5%;
    color: #cbd5e1;
    background: #1e293b;
    padding: 1rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
    overflow: auto;
}

pre code {
    font-size: inherit;
    color: inherit;
    word-break: normal;
    background: none;
    padding: 0;
}

.pre-scrollable {
    max-height: 340px;
    overflow-y: auto;
}

/* ===== КОНТЕЙНЕРЫ ===== */
.container,
.container-fluid,
.container-sm,
.container-md,
.container-lg,
.container-xl {
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    margin-right: auto;
    margin-left: auto;
}

/* Анимация появления контейнеров */
.container {
    animation: fadeInUp 0.5s ease;
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== МЕДИА-ЗАПРОСЫ ДЛЯ КОНТЕЙНЕРОВ ===== */
@media (min-width: 576px) {
    .container, .container-sm {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container, .container-sm, .container-md {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container, .container-sm, .container-md, .container-lg {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container, .container-sm, .container-md, .container-lg, .container-xl {
        max-width: 1140px;
    }
}

/* ===== ДОПОЛНИТЕЛЬНЫЕ КЛАССЫ ДЛЯ ТИПОГРАФИКИ ===== */
.text-gradient {
    background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.text-glow {
    text-shadow: 0 0 15px rgba(59, 130, 246, 0.5);
}

.text-underline {
    position: relative;
    display: inline-block;
}

.text-underline:after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(90deg, rgb(59, 130, 246), transparent);
    border-radius: 2px;
}







/* ===== МЕДИА-ЗАПРОСЫ ДЛЯ КОНТЕЙНЕРОВ ===== */
@media (min-width: 576px) {
    .container, .container-sm {
        max-width: 540px;
    }
}

@media (min-width: 768px) {
    .container, .container-sm, .container-md {
        max-width: 720px;
    }
}

@media (min-width: 992px) {
    .container, .container-sm, .container-md, .container-lg {
        max-width: 960px;
    }
}

@media (min-width: 1200px) {
    .container, .container-sm, .container-md, .container-lg, .container-xl {
        max-width: 1140px;
    }
}

/* ===== СИСТЕМА СЕТКИ ===== */
.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
    row-gap: 30px; /* Добавляем отступ между рядами */
}

/* Анимация для рядов */
.row > * {
    animation: fadeInScale 0.5s ease forwards;
    opacity: 0;
}

@keyframes fadeInScale {
    0% {
        opacity: 0;
        transform: scale(0.95);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

/* Задержки для анимации колонок */
.row > *:nth-child(1) { animation-delay: 0.1s; }
.row > *:nth-child(2) { animation-delay: 0.15s; }
.row > *:nth-child(3) { animation-delay: 0.2s; }
.row > *:nth-child(4) { animation-delay: 0.25s; }
.row > *:nth-child(5) { animation-delay: 0.3s; }
.row > *:nth-child(6) { animation-delay: 0.35s; }
.row > *:nth-child(7) { animation-delay: 0.4s; }
.row > *:nth-child(8) { animation-delay: 0.45s; }
.row > *:nth-child(9) { animation-delay: 0.5s; }
.row > *:nth-child(10) { animation-delay: 0.55s; }
.row > *:nth-child(11) { animation-delay: 0.6s; }
.row > *:nth-child(12) { animation-delay: 0.65s; }

.no-gutters {
    margin-right: 0;
    margin-left: 0;
}

.no-gutters > .col,
.no-gutters > [class*="col-"] {
    padding-right: 0;
    padding-left: 0;
}

/* ===== КОЛОНКИ ===== */
.col,
.col-1,
.col-2,
.col-3,
.col-4,
.col-5,
.col-6,
.col-7,
.col-8,
.col-9,
.col-10,
.col-11,
.col-12,
.col-auto,
.col-sm,
.col-sm-1,
.col-sm-2,
.col-sm-3,
.col-sm-4,
.col-sm-5,
.col-sm-6,
.col-sm-7,
.col-sm-8,
.col-sm-9,
.col-sm-10,
.col-sm-11,
.col-sm-12,
.col-sm-auto,
.col-md,
.col-md-1,
.col-md-2,
.col-md-3,
.col-md-4,
.col-md-5,
.col-md-6,
.col-md-7,
.col-md-8,
.col-md-9,
.col-md-10,
.col-md-11,
.col-md-12,
.col-md-auto,
.col-lg,
.col-lg-1,
.col-lg-2,
.col-lg-3,
.col-lg-4,
.col-lg-5,
.col-lg-6,
.col-lg-7,
.col-lg-8,
.col-lg-9,
.col-lg-10,
.col-lg-11,
.col-lg-12,
.col-lg-auto,
.col-xl,
.col-xl-1,
.col-xl-2,
.col-xl-3,
.col-xl-4,
.col-xl-5,
.col-xl-6,
.col-xl-7,
.col-xl-8,
.col-xl-9,
.col-xl-10,
.col-xl-11,
.col-xl-12,
.col-xl-auto {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    padding-top: 4px;
    transition: all 0.3s ease;
}










/* Эффект при наведении на колонку */
.col:hover,
[class*="col-"]:hover {
    transform: translateY(-2px);
}

.col {
    flex-basis: 0;
    flex-grow: 1;
    max-width: 100%;
}

.row-cols-1 > * {
    flex: 0 0 100%;
    max-width: 100%;
}

.row-cols-2 > * {
    flex: 0 0 50%;
    max-width: 50%;
}

.row-cols-3 > * {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%;
}

.row-cols-4 > * {
    flex: 0 0 25%;
    max-width: 25%;
}

.row-cols-5 > * {
    flex: 0 0 20%;
    max-width: 20%;
}

.row-cols-6 > * {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%;
}

.col-auto {
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
}

.col-1 {
    flex: 0 0 8.33333333%;
    max-width: 8.33333333%;
}

.col-2 {
    flex: 0 0 16.66666667%;
    max-width: 16.66666667%;
}

.col-3 {
    flex: 0 0 25%;
    max-width: 25%;
}

.col-4 {
    flex: 0 0 33.33333333%;
    max-width: 33.33333333%;
}

.col-5 {
    flex: 0 0 41.66666667%;
    max-width: 41.66666667%;
}

.col-6 {
    flex: 0 0 50%;
    max-width: 50%;
}

.col-7 {
    flex: 0 0 58.33333333%;
    max-width: 58.33333333%;
}

.col-8 {
    flex: 0 0 66.66666667%;
    max-width: 66.66666667%;
}

.col-9 {
    flex: 0 0 75%;
    max-width: 75%;
}

.col-10 {
    flex: 0 0 83.33333333%;
    max-width: 83.33333333%;
}

.col-11 {
    flex: 0 0 91.66666667%;
    max-width: 91.66666667%;
}

.col-12 {
    flex: 0 0 100%;
    max-width: 100%;
}

/* ===== ПОРЯДОК ===== */
.order-first {
    order: -1;
}

.order-last {
    order: 13;
}

.order-0 { order: 0; }
.order-1 { order: 1; }
.order-2 { order: 2; }
.order-3 { order: 3; }
.order-4 { order: 4; }
.order-5 { order: 5; }
.order-6 { order: 6; }
.order-7 { order: 7; }
.order-8 { order: 8; }
.order-9 { order: 9; }
.order-10 { order: 10; }
.order-11 { order: 11; }
.order-12 { order: 12; }

/* ===== ОТСТУПЫ ===== */
.offset-1 { margin-left: 8.33333333%; }
.offset-2 { margin-left: 16.66666667%; }
.offset-3 { margin-left: 25%; }
.offset-4 { margin-left: 33.33333333%; }
.offset-5 { margin-left: 41.66666667%; }
.offset-6 { margin-left: 50%; }
.offset-7 { margin-left: 58.33333333%; }
.offset-8 { margin-left: 66.66666667%; }
.offset-9 { margin-left: 75%; }
.offset-10 { margin-left: 83.33333333%; }
.offset-11 { margin-left: 91.66666667%; }

/* ===== ДОПОЛНИТЕЛЬНЫЕ КЛАССЫ ДЛЯ КРАСИВОЙ СЕТКИ ===== */

/* Колонки с градиентной границей */
.col-border-gradient {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
}

.col-border-gradient::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 2px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6) border-box;
    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
    mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

/* Колонки с подсветкой */
.col-glow {
    transition: box-shadow 0.3s ease;
}

.col-glow:hover {
    box-shadow: 0 0 25px rgba(59, 130, 246, 0.3);
}

/* Разделители между колонками */
.col-divider:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 15%;
    height: 70%;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgb(59, 130, 246), transparent);
}

/* Адаптивные отступы */
@media (max-width: 768px) {
    .row {
        row-gap: 20px;
    }
    
    .col-divider:not(:last-child)::after {
        display: none;
    }
}

/* Анимация для появления колонок при скролле */
.col-animate {
    opacity: 0;
    transform: translateY(20px);
    transition: all 0.6s ease;
}

.col-animate.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Красивые отступы для разных брейкпоинтов */
@media (min-width: 576px) {
    .row-sm-gap { row-gap: 30px; }
}

@media (min-width: 768px) {
    .row-md-gap { row-gap: 40px; }
}

@media (min-width: 992px) {
    .row-lg-gap { row-gap: 50px; }
}

@media (min-width: 1200px) {
    .row-xl-gap { row-gap: 60px; }
}








/* ===== SM (576px и выше) ===== */
@media (min-width: 576px) {
    .col-sm {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
        transition: all 0.3s ease;
    }
    
    .col-sm:hover {
        transform: translateY(-3px);
    }
    
    .row-cols-sm-1 > * {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    .row-cols-sm-2 > * {
        flex: 0 0 50%;
        max-width: 50%;
    }
    
    .row-cols-sm-3 > * {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }
    
    .row-cols-sm-4 > * {
        flex: 0 0 25%;
        max-width: 25%;
    }
    
    .row-cols-sm-5 > * {
        flex: 0 0 20%;
        max-width: 20%;
    }
    
    .row-cols-sm-6 > * {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }
    
    .col-sm-auto {
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }
    
    .col-sm-1 {
        flex: 0 0 8.33333333%;
        max-width: 8.33333333%;
    }
    
    .col-sm-2 {
        flex: 0 0 16.66666667%;
        max-width: 16.66666667%;
    }
    
    .col-sm-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }
    
    .col-sm-4 {
        flex: 0 0 33.33333333%;
        max-width: 33.33333333%;
    }
    
    .col-sm-5 {
        flex: 0 0 41.66666667%;
        max-width: 41.66666667%;
    }
    
    .col-sm-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }
    
    .col-sm-7 {
        flex: 0 0 58.33333333%;
        max-width: 58.33333333%;
    }
    
    .col-sm-8 {
        flex: 0 0 66.66666667%;
        max-width: 66.66666667%;
    }
    
    .col-sm-9 {
        flex: 0 0 75%;
        max-width: 75%;
    }
    
    .col-sm-10 {
        flex: 0 0 83.33333333%;
        max-width: 83.33333333%;
    }
    
    .col-sm-11 {
        flex: 0 0 91.66666667%;
        max-width: 91.66666667%;
    }
    
    .col-sm-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    /* ===== ПОРЯДОК ДЛЯ SM ===== */
    .order-sm-first { order: -1; }
    .order-sm-last { order: 13; }
    .order-sm-0 { order: 0; }
    .order-sm-1 { order: 1; }
    .order-sm-2 { order: 2; }
    .order-sm-3 { order: 3; }
    .order-sm-4 { order: 4; }
    .order-sm-5 { order: 5; }
    .order-sm-6 { order: 6; }
    .order-sm-7 { order: 7; }
    .order-sm-8 { order: 8; }
    .order-sm-9 { order: 9; }
    .order-sm-10 { order: 10; }
    .order-sm-11 { order: 11; }
    .order-sm-12 { order: 12; }
    
    /* ===== ОТСТУПЫ ДЛЯ SM ===== */
    .offset-sm-0 { margin-left: 0; }
    .offset-sm-1 { margin-left: 8.33333333%; }
    .offset-sm-2 { margin-left: 16.66666667%; }
    .offset-sm-3 { margin-left: 25%; }
    .offset-sm-4 { margin-left: 33.33333333%; }
    .offset-sm-5 { margin-left: 41.66666667%; }
    .offset-sm-6 { margin-left: 50%; }
    .offset-sm-7 { margin-left: 58.33333333%; }
    .offset-sm-8 { margin-left: 66.66666667%; }
    .offset-sm-9 { margin-left: 75%; }
    .offset-sm-10 { margin-left: 83.33333333%; }
    .offset-sm-11 { margin-left: 91.66666667%; }
    
    /* ===== ДЕКОРАТИВНЫЕ ЭЛЕМЕНТЫ ДЛЯ SM ===== */
    .col-sm-border-gradient {
        position: relative;
        border-radius: 12px;
        overflow: hidden;
    }
    
    .col-sm-border-gradient::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        border: 2px solid transparent;
        border-radius: 12px;
        background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6) border-box;
        -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
        mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        pointer-events: none;
    }
    
    .col-sm-glow:hover {
        box-shadow: 0 0 25px rgba(59, 130, 246, 0.3);
    }
}

/* ===== MD (768px и выше) ===== */
@media (min-width: 768px) {
    .col-md {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
        transition: all 0.3s ease;
    }
    
    .col-md:hover {
        transform: translateY(-4px);
    }
    
    .row-cols-md-1 > * {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    .row-cols-md-2 > * {
        flex: 0 0 50%;
        max-width: 50%;
    }
    
    .row-cols-md-3 > * {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }
    
    .row-cols-md-4 > * {
        flex: 0 0 25%;
        max-width: 25%;
    }
    
    .row-cols-md-5 > * {
        flex: 0 0 20%;
        max-width: 20%;
    }
    
    .row-cols-md-6 > * {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }
    
    .col-md-auto {
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }
    
    .col-md-1 {
        flex: 0 0 8.33333333%;
        max-width: 8.33333333%;
    }
    
    .col-md-2 {
        flex: 0 0 16.66666667%;
        max-width: 16.66666667%;
    }
    
    .col-md-3 {
        flex: 0 0 25%;
        max-width: 25%;
    }
    
    .col-md-4 {
        flex: 0 0 33.33333333%;
        max-width: 33.33333333%;
    }
    
    .col-md-5 {
        flex: 0 0 41.66666667%;
        max-width: 41.66666667%;
    }
    
    .col-md-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }
    
    .col-md-7 {
        flex: 0 0 58.33333333%;
        max-width: 58.33333333%;
    }
    
    .col-md-8 {
        flex: 0 0 66.66666667%;
        max-width: 66.66666667%;
    }
    
    .col-md-9 {
        flex: 0 0 75%;
        max-width: 75%;
    }
    
    .col-md-10 {
        flex: 0 0 83.33333333%;
        max-width: 83.33333333%;
    }
    
    .col-md-11 {
        flex: 0 0 91.66666667%;
        max-width: 91.66666667%;
    }
    
    .col-md-12 {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    /* ===== ПОРЯДОК ДЛЯ MD ===== */
    .order-md-first { order: -1; }
    .order-md-last { order: 13; }
    .order-md-0 { order: 0; }
    .order-md-1 { order: 1; }
    .order-md-2 { order: 2; }
    .order-md-3 { order: 3; }
    .order-md-4 { order: 4; }
    .order-md-5 { order: 5; }
    .order-md-6 { order: 6; }
    .order-md-7 { order: 7; }
    .order-md-8 { order: 8; }
    .order-md-9 { order: 9; }
    .order-md-10 { order: 10; }
    .order-md-11 { order: 11; }
    .order-md-12 { order: 12; }
    
    /* ===== ОТСТУПЫ ДЛЯ MD ===== */
    .offset-md-0 { margin-left: 0; }
    .offset-md-1 { margin-left: 8.33333333%; }
    .offset-md-2 { margin-left: 16.66666667%; }
    .offset-md-3 { margin-left: 25%; }
    .offset-md-4 { margin-left: 33.33333333%; }
    .offset-md-5 { margin-left: 41.66666667%; }
    .offset-md-6 { margin-left: 50%; }
    .offset-md-7 { margin-left: 58.33333333%; }
    .offset-md-8 { margin-left: 66.66666667%; }
    .offset-md-9 { margin-left: 75%; }
    .offset-md-10 { margin-left: 83.33333333%; }
    .offset-md-11 { margin-left: 91.66666667%; }
    
    /* ===== ДЕКОРАТИВНЫЕ ЭЛЕМЕНТЫ ДЛЯ MD ===== */
    .col-md-border-gradient {
        position: relative;
        border-radius: 16px;
        overflow: hidden;
    }
    
    .col-md-border-gradient::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        border: 3px solid transparent;
        border-radius: 16px;
        background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6, #ec4899) border-box;
        -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
        mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        pointer-events: none;
    }
    
    .col-md-glow:hover {
        box-shadow: 0 0 30px rgba(59, 130, 246, 0.4);
    }
    
    /* ===== РАЗДЕЛИТЕЛИ ДЛЯ MD ===== */
    .col-md-divider:not(:last-child)::after {
        content: '';
        position: absolute;
        right: 0;
        top: 15%;
        height: 70%;
        width: 2px;
        background: linear-gradient(180deg, transparent, rgb(59, 130, 246), #8b5cf6, transparent);
        border-radius: 2px;
    }
}

/* ===== ОБЩИЕ АНИМАЦИИ ДЛЯ ВСЕХ КОЛОНОК ===== */
[class*="col-"] {
    animation: slideInFade 0.5s ease forwards;
    opacity: 0;
}

@keyframes slideInFade {
    0% {
        opacity: 0;
        transform: translateX(-10px);
    }
    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Задержки для анимаций */
[class*="col-"]:nth-child(1) { animation-delay: 0.1s; }
[class*="col-"]:nth-child(2) { animation-delay: 0.15s; }
[class*="col-"]:nth-child(3) { animation-delay: 0.2s; }
[class*="col-"]:nth-child(4) { animation-delay: 0.25s; }
[class*="col-"]:nth-child(5) { animation-delay: 0.3s; }
[class*="col-"]:nth-child(6) { animation-delay: 0.35s; }
[class*="col-"]:nth-child(7) { animation-delay: 0.4s; }
[class*="col-"]:nth-child(8) { animation-delay: 0.45s; }
[class*="col-"]:nth-child(9) { animation-delay: 0.5s; }
[class*="col-"]:nth-child(10) { animation-delay: 0.55s; }
[class*="col-"]:nth-child(11) { animation-delay: 0.6s; }
[class*="col-"]:nth-child(12) { animation-delay: 0.65s; }

/* ===== КЛАССЫ ДЛЯ КОНТЕЙНЕРОВ ===== */
.container-sm,
.container-md,
.container-lg,
.container-xl {
    transition: all 0.3s ease;
}

.container-sm:hover,
.container-md:hover,
.container-lg:hover,
.container-xl:hover {
    box-shadow: 0 5px 20px rgba(59, 130, 246, 0.1);
}










/* ===== LG (992px и выше) ===== */
@media (min-width: 992px) {
    .col-lg {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
        transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    .col-lg:hover {
        transform: translateY(-5px);
    }
    
    .row-cols-lg-1 > * {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    .row-cols-lg-2 > * {
        flex: 0 0 50%;
        max-width: 50%;
    }
    
    .row-cols-lg-3 > * {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }
    
    .row-cols-lg-4 > * {
        flex: 0 0 25%;
        max-width: 25%;
    }
    
    .row-cols-lg-5 > * {
        flex: 0 0 20%;
        max-width: 20%;
    }
    
    .row-cols-lg-6 > * {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }
    
    .col-lg-auto {
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }
    
    .col-lg-1 { flex: 0 0 8.33333333%; max-width: 8.33333333%; }
    .col-lg-2 { flex: 0 0 16.66666667%; max-width: 16.66666667%; }
    .col-lg-3 { flex: 0 0 25%; max-width: 25%; }
    .col-lg-4 { flex: 0 0 33.33333333%; max-width: 33.33333333%; }
    .col-lg-5 { flex: 0 0 41.66666667%; max-width: 41.66666667%; }
    .col-lg-6 { flex: 0 0 50%; max-width: 50%; }
    .col-lg-7 { flex: 0 0 58.33333333%; max-width: 58.33333333%; }
    .col-lg-8 { flex: 0 0 66.66666667%; max-width: 66.66666667%; }
    .col-lg-9 { flex: 0 0 75%; max-width: 75%; }
    .col-lg-10 { flex: 0 0 83.33333333%; max-width: 83.33333333%; }
    .col-lg-11 { flex: 0 0 91.66666667%; max-width: 91.66666667%; }
    .col-lg-12 { flex: 0 0 100%; max-width: 100%; }
    
    /* Порядок */
    .order-lg-first { order: -1; }
    .order-lg-last { order: 13; }
    .order-lg-0 { order: 0; }
    .order-lg-1 { order: 1; }
    .order-lg-2 { order: 2; }
    .order-lg-3 { order: 3; }
    .order-lg-4 { order: 4; }
    .order-lg-5 { order: 5; }
    .order-lg-6 { order: 6; }
    .order-lg-7 { order: 7; }
    .order-lg-8 { order: 8; }
    .order-lg-9 { order: 9; }
    .order-lg-10 { order: 10; }
    .order-lg-11 { order: 11; }
    .order-lg-12 { order: 12; }
    
    /* Отступы */
    .offset-lg-0 { margin-left: 0; }
    .offset-lg-1 { margin-left: 8.33333333%; }
    .offset-lg-2 { margin-left: 16.66666667%; }
    .offset-lg-3 { margin-left: 25%; }
    .offset-lg-4 { margin-left: 33.33333333%; }
    .offset-lg-5 { margin-left: 41.66666667%; }
    .offset-lg-6 { margin-left: 50%; }
    .offset-lg-7 { margin-left: 58.33333333%; }
    .offset-lg-8 { margin-left: 66.66666667%; }
    .offset-lg-9 { margin-left: 75%; }
    .offset-lg-10 { margin-left: 83.33333333%; }
    .offset-lg-11 { margin-left: 91.66666667%; }
    
    /* Декоративные элементы для LG */
    .col-lg-border-gradient {
        position: relative;
        border-radius: 20px;
        overflow: hidden;
    }
    
    .col-lg-border-gradient::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        border: 3px solid transparent;
        border-radius: 20px;
        background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6, #ec4899, #10b981) border-box;
        -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
        mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        pointer-events: none;
        animation: borderRotate 4s linear infinite;
    }
    
    .col-lg-glow:hover {
        box-shadow: 0 0 40px rgba(59, 130, 246, 0.5);
    }
    
    .col-lg-divider:not(:last-child)::after {
        content: '';
        position: absolute;
        right: 0;
        top: 10%;
        height: 80%;
        width: 2px;
        background: linear-gradient(180deg, transparent, rgb(59, 130, 246), #8b5cf6, #ec4899, transparent);
        border-radius: 2px;
    }
}

/* ===== XL (1200px и выше) ===== */
@media (min-width: 1200px) {
    .col-xl {
        flex-basis: 0;
        flex-grow: 1;
        max-width: 100%;
        transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    }
    
    .col-xl:hover {
        transform: translateY(-6px) scale(1.02);
    }
    
    .row-cols-xl-1 > * {
        flex: 0 0 100%;
        max-width: 100%;
    }
    
    .row-cols-xl-2 > * {
        flex: 0 0 50%;
        max-width: 50%;
    }
    
    .row-cols-xl-3 > * {
        flex: 0 0 33.3333333333%;
        max-width: 33.3333333333%;
    }
    
    .row-cols-xl-4 > * {
        flex: 0 0 25%;
        max-width: 25%;
    }
    
    .row-cols-xl-5 > * {
        flex: 0 0 20%;
        max-width: 20%;
    }
    
    .row-cols-xl-6 > * {
        flex: 0 0 16.6666666667%;
        max-width: 16.6666666667%;
    }
    
    .col-xl-auto {
        flex: 0 0 auto;
        width: auto;
        max-width: 100%;
    }
    
    .col-xl-1 { flex: 0 0 8.33333333%; max-width: 8.33333333%; }
    .col-xl-2 { flex: 0 0 16.66666667%; max-width: 16.66666667%; }
    .col-xl-3 { flex: 0 0 25%; max-width: 25%; }
    .col-xl-4 { flex: 0 0 33.33333333%; max-width: 33.33333333%; }
    .col-xl-5 { flex: 0 0 41.66666667%; max-width: 41.66666667%; }
    .col-xl-6 { flex: 0 0 50%; max-width: 50%; }
    .col-xl-7 { flex: 0 0 58.33333333%; max-width: 58.33333333%; }
    .col-xl-8 { flex: 0 0 66.66666667%; max-width: 66.66666667%; }
    .col-xl-9 { flex: 0 0 75%; max-width: 75%; }
    .col-xl-10 { flex: 0 0 83.33333333%; max-width: 83.33333333%; }
    .col-xl-11 { flex: 0 0 91.66666667%; max-width: 91.66666667%; }
    .col-xl-12 { flex: 0 0 100%; max-width: 100%; }
    
    /* Порядок */
    .order-xl-first { order: -1; }
    .order-xl-last { order: 13; }
    .order-xl-0 { order: 0; }
    .order-xl-1 { order: 1; }
    .order-xl-2 { order: 2; }
    .order-xl-3 { order: 3; }
    .order-xl-4 { order: 4; }
    .order-xl-5 { order: 5; }
    .order-xl-6 { order: 6; }
    .order-xl-7 { order: 7; }
    .order-xl-8 { order: 8; }
    .order-xl-9 { order: 9; }
    .order-xl-10 { order: 10; }
    .order-xl-11 { order: 11; }
    .order-xl-12 { order: 12; }
    
    /* Отступы */
    .offset-xl-0 { margin-left: 0; }
    .offset-xl-1 { margin-left: 8.33333333%; }
    .offset-xl-2 { margin-left: 16.66666667%; }
    .offset-xl-3 { margin-left: 25%; }
    .offset-xl-4 { margin-left: 33.33333333%; }
    .offset-xl-5 { margin-left: 41.66666667%; }
    .offset-xl-6 { margin-left: 50%; }
    .offset-xl-7 { margin-left: 58.33333333%; }
    .offset-xl-8 { margin-left: 66.66666667%; }
    .offset-xl-9 { margin-left: 75%; }
    .offset-xl-10 { margin-left: 83.33333333%; }
    .offset-xl-11 { margin-left: 91.66666667%; }
    
    /* Декоративные элементы для XL */
    .col-xl-border-gradient {
        position: relative;
        border-radius: 24px;
        overflow: hidden;
    }
    
    .col-xl-border-gradient::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        border: 4px solid transparent;
        border-radius: 24px;
        background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6, #ec4899, #10b981, #f59e0b) border-box;
        -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
        mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
        -webkit-mask-composite: xor;
        mask-composite: exclude;
        pointer-events: none;
        animation: borderRotate 3s linear infinite;
    }
    
    .col-xl-glow:hover {
        box-shadow: 0 0 50px rgba(59, 130, 246, 0.6);
    }
    
    .col-xl-divider:not(:last-child)::after {
        content: '';
        position: absolute;
        right: 0;
        top: 5%;
        height: 90%;
        width: 3px;
        background: linear-gradient(180deg, transparent, rgb(59, 130, 246), #8b5cf6, #ec4899, #10b981, transparent);
        border-radius: 3px;
        animation: dividerPulse 3s ease infinite;
    }
}

/* ===== АНИМАЦИИ ДЛЯ ГРАНИЦ ===== */
@keyframes borderRotate {
    0% {
        filter: hue-rotate(0deg);
    }
    100% {
        filter: hue-rotate(360deg);
    }
}

@keyframes dividerPulse {
    0%, 100% {
        opacity: 0.5;
    }
    50% {
        opacity: 1;
    }
}

/* ===== ТАБЛИЦЫ ===== */
.table {
    width: 100%;
    margin-bottom: 1rem;
    color: #ffffff;
    background: transparent;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.table td,
.table th {
    padding: 1rem;
    vertical-align: top;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(30, 41, 59, 0.8);

    transition: all 0.3s ease;
}

.table thead th {
    vertical-align: bottom;
    border-bottom: 2px solid rgb(59, 130, 246);
    background: rgba(59, 130, 246, 0.2);
    color: #ffffff;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 0.85rem;
}

.table tbody + tbody {
    border-top: 2px solid rgba(59, 130, 246, 0.3);
}

/* Маленькая таблица */
.table-sm td,
.table-sm th {
    padding: 0.5rem;
}

/* Таблица с границами */
.table-bordered {
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
}

.table-bordered td,
.table-bordered th {
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.table-bordered thead td,
.table-bordered thead th {
    border-bottom-width: 2px;
    border-bottom-color: rgb(59, 130, 246);
}

/* Таблица без границ */
.table-borderless td,
.table-borderless th,
.table-borderless thead th,
.table-borderless tbody + tbody {
    border: 0;
}

/* Полосатая таблица */
.table-striped tbody tr:nth-of-type(odd) {
    background: rgba(59, 130, 246, 0.05);
}

/* Таблица с hover эффектом */
.table-hover tbody tr:hover {
    background: rgba(59, 130, 246, 0.15);
    color: #ffffff;
    transform: scale(1.01);
    box-shadow: 0 2px 10px rgba(59, 130, 246, 0.2);
}

/* ===== ЦВЕТНЫЕ ТАБЛИЦЫ ===== */
.table-primary,
.table-primary > td,
.table-primary > th {
    background: rgba(59, 130, 246, 0.2);
    color: #ffffff;
}

.table-hover .table-primary:hover,
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th {
    background: rgba(59, 130, 246, 0.3);
}

.table-secondary,
.table-secondary > td,
.table-secondary > th {
    background: rgba(71, 85, 105, 0.2);
    color: #ffffff;
}

.table-hover .table-secondary:hover,
.table-hover .table-secondary:hover > td,
.table-hover .table-secondary:hover > th {
    background: rgba(71, 85, 105, 0.3);
}

.table-success,
.table-success > td,
.table-success > th {
    background: rgba(16, 185, 129, 0.2);
    color: #ffffff;
}

.table-hover .table-success:hover,
.table-hover .table-success:hover > td,
.table-hover .table-success:hover > th {
    background: rgba(16, 185, 129, 0.3);
}

.table-info,
.table-info > td,
.table-info > th {
    background: rgba(14, 165, 233, 0.2);
    color: #ffffff;
}

.table-hover .table-info:hover,
.table-hover .table-info:hover > td,
.table-hover .table-info:hover > th {
    background: rgba(14, 165, 233, 0.3);
}

.table-warning,
.table-warning > td,
.table-warning > th {
    background: rgba(245, 158, 11, 0.2);
    color: #ffffff;
}

.table-hover .table-warning:hover,
.table-hover .table-warning:hover > td,
.table-hover .table-warning:hover > th {
    background: rgba(245, 158, 11, 0.3);
}

.table-danger,
.table-danger > td,
.table-danger > th {
    background: rgba(244, 63, 94, 0.2);
    color: #ffffff;
}

.table-hover .table-danger:hover,
.table-hover .table-danger:hover > td,
.table-hover .table-danger:hover > th {
    background: rgba(244, 63, 94, 0.3);
}

.table-light,
.table-light > td,
.table-light > th {
    background: rgba(203, 213, 225, 0.2);
    color: #ffffff;
}

.table-hover .table-light:hover,
.table-hover .table-light:hover > td,
.table-hover .table-light:hover > th {
    background: rgba(203, 213, 225, 0.3);
}

.table-dark,
.table-dark > td,
.table-dark > th {
    background: rgba(15, 23, 42, 0.8);
    color: #ffffff;
}

.table-hover .table-dark:hover,
.table-hover .table-dark:hover > td,
.table-hover .table-dark:hover > th {
    background: rgba(15, 23, 42, 0.9);
}

/* ===== ЗАГОЛОВКИ ТАБЛИЦ ===== */
.table .thead-dark th {
    background: linear-gradient(135deg, #0f172a, #1e293b);
    border-color: rgb(59, 130, 246);
    color: #ffffff;
}

.table .thead-light th {
    background: linear-gradient(135deg, #cbd5e1, #e2e8f0);
    border-color: rgb(59, 130, 246);
    color: #0f172a;
}

/* ===== ТЕМНАЯ ТАБЛИЦА ===== */
.table-dark {
    background: #0f172a;
    color: #ffffff;
}

.table-dark td,
.table-dark th,
.table-dark thead th {
    border-color: rgba(255, 255, 255, 0.1);
}

.table-dark.table-bordered {
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.table-dark.table-striped tbody tr:nth-of-type(odd) {
    background: rgba(255, 255, 255, 0.05);
}

.table-dark.table-hover tbody tr:hover {
    background: rgba(59, 130, 246, 0.2);
    color: #ffffff;
}

/* ===== АКТИВНАЯ СТРОКА ===== */
.table .table-active,
.table .table-active > td,
.table .table-active > th {
    background: rgba(59, 130, 246, 0.3);
}

.table-hover .table-active:hover,
.table-hover .table-active:hover > td,
.table-hover .table-active:hover > th {
    background: rgba(59, 130, 246, 0.4);
}

/* ===== ДОПОЛНИТЕЛЬНЫЕ СТИЛИ ДЛЯ ТАБЛИЦ ===== */
.table-responsive {
    border-radius: 16px;
    overflow: hidden;
}

.table-responsive::-webkit-scrollbar {
    height: 8px;
}

.table-responsive::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
}

.table-responsive::-webkit-scrollbar-thumb {
    background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
    border-radius: 4px;
}









/* ===== АДАПТИВНЫЕ ТАБЛИЦЫ ===== */
@media (max-width: 575.98px) {
    .table-responsive-sm {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-radius: 12px;
        margin-bottom: 1rem;
    }
    
    .table-responsive-sm > .table-bordered {
        border: 0;
    }
    
    .table-responsive-sm::-webkit-scrollbar {
        height: 6px;
    }
    
    .table-responsive-sm::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 3px;
    }
    
    .table-responsive-sm::-webkit-scrollbar-thumb {
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
        border-radius: 3px;
    }
}

@media (max-width: 767.98px) {
    .table-responsive-md {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-radius: 12px;
        margin-bottom: 1rem;
    }
    
    .table-responsive-md > .table-bordered {
        border: 0;
    }
    
    .table-responsive-md::-webkit-scrollbar {
        height: 6px;
    }
    
    .table-responsive-md::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 3px;
    }
    
    .table-responsive-md::-webkit-scrollbar-thumb {
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
        border-radius: 3px;
    }
}

@media (max-width: 991.98px) {
    .table-responsive-lg {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-radius: 12px;
        margin-bottom: 1rem;
    }
    
    .table-responsive-lg > .table-bordered {
        border: 0;
    }
    
    .table-responsive-lg::-webkit-scrollbar {
        height: 6px;
    }
    
    .table-responsive-lg::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 3px;
    }
    
    .table-responsive-lg::-webkit-scrollbar-thumb {
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
        border-radius: 3px;
    }
}

@media (max-width: 1199.98px) {
    .table-responsive-xl {
        display: block;
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-radius: 12px;
        margin-bottom: 1rem;
    }
    
    .table-responsive-xl > .table-bordered {
        border: 0;
    }
    
    .table-responsive-xl::-webkit-scrollbar {
        height: 6px;
    }
    
    .table-responsive-xl::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.05);
        border-radius: 3px;
    }
    
    .table-responsive-xl::-webkit-scrollbar-thumb {
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
        border-radius: 3px;
    }
}

.table-responsive {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    border-radius: 16px;
    margin-bottom: 1rem;
    background: rgba(30, 41, 59, 0.5);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.table-responsive > .table-bordered {
    border: 0;
}

.table-responsive::-webkit-scrollbar {
    height: 8px;
}

.table-responsive::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
}

.table-responsive::-webkit-scrollbar-thumb {
    background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6, #ec4899);
    border-radius: 4px;
}

.table-responsive::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(90deg, rgb(37, 99, 235), #7c3aed, #db2777);
}

/* ===== ФОРМЫ ===== */
.form-control {
    display: block;
    width: 100%;
    height: 2.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.95rem;
    font-weight: 400;
    line-height: 1.5;
    color: #ffffff;
    background: rgba(30, 41, 59, 0.8);
    background-clip: padding-box;
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    backdrop-filter: blur(10px);
}

.form-control:focus {
    color: #ffffff;
    background: rgba(30, 41, 59, 0.95);
    border-color: rgb(59, 130, 246);
    outline: 0;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2), 0 4px 10px rgba(0, 0, 0, 0.2);
    transform: translateY(-1px);
}

.form-control:hover:not(:disabled):not([readonly]) {
    border-color: rgba(59, 130, 246, 0.5);
    background: rgba(30, 41, 59, 0.9);
}

.form-control:disabled,
.form-control[readonly] {
    background: rgba(15, 23, 42, 0.5);
    border-color: rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.5);
    cursor: not-allowed;
}

/* Placeholder стили */
.form-control::placeholder {
    color: rgba(148, 163, 184, 0.6);
    font-style: italic;
    transition: all 0.3s ease;
}

.form-control:focus::placeholder {
    opacity: 0.5;
    transform: translateX(5px);
}

/* Размеры форм */
.form-control-lg {
    height: 3.2rem;
    padding: 0.75rem 1.25rem;
    font-size: 1.1rem;
    border-radius: 16px;
}

.form-control-sm {
    height: 2rem;
    padding: 0.25rem 0.75rem;
    font-size: 0.85rem;
    border-radius: 8px;
}

/* ===== ДОПОЛНИТЕЛЬНЫЕ СТИЛИ ДЛЯ ФОРМ ===== */

/* Форма с иконкой слева */
.form-control-icon-left {
    padding-left: 2.5rem;
}

.input-icon-left {
    position: relative;
}

.input-icon-left i,
.input-icon-left svg {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: rgb(59, 130, 246);
    z-index: 10;
    font-size: 1.1rem;
}

/* Форма с иконкой справа */
.form-control-icon-right {
    padding-right: 2.5rem;
}

.input-icon-right {
    position: relative;
}

.input-icon-right i,
.input-icon-right svg {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: rgb(59, 130, 246);
    z-index: 10;
    font-size: 1.1rem;
}

/* Форма с градиентной границей */
.form-control-gradient {
    position: relative;
    background: transparent;
    border: none;
    padding: 0;
}

.form-control-gradient input {
    background: rgba(30, 41, 59, 0.8);
    border: 2px solid transparent;
    border-radius: 12px;
    position: relative;
    z-index: 2;
}

.form-control-gradient::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6, #ec4899);
    border-radius: 14px;
    z-index: 1;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.form-control-gradient:hover::before,
.form-control-gradient input:focus::before {
    opacity: 1;
}

/* Форма с эффектом свечения */
.form-control-glow {
    transition: all 0.3s ease;
}

.form-control-glow:focus {
    box-shadow: 0 0 20px rgba(59, 130, 246, 0.4);
}

/* Форма с underline эффектом */
.form-control-underline {
    border-top: none;
    border-left: none;
    border-right: none;
    border-radius: 0;
    padding-left: 0;
    background: transparent;
    box-shadow: none;
}

.form-control-underline:focus {
    transform: none;
    box-shadow: 0 4px 10px rgba(59, 130, 246, 0.2);
}

/* ===== ФЛОТИРУЮЩИЕ ЛЕЙБЛЫ ===== */
.form-floating {
    position: relative;
}

.form-floating .form-control {
    height: 3.5rem;
    padding: 1rem 0.75rem 0.5rem;
}

.form-floating label {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 1rem 0.75rem;
    pointer-events: none;
    border: 1px solid transparent;
    transform-origin: 0 0;
    transition: all 0.2s ease;
    color: rgba(148, 163, 184, 0.8);
}

.form-floating .form-control:focus ~ label,
.form-floating .form-control:not(:placeholder-shown) ~ label {
    opacity: 0.65;
    transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
    color: rgb(59, 130, 246);
}

/* ===== ВАЛИДАЦИЯ ФОРМ ===== */
.form-control.is-valid,
.was-validated .form-control:valid {
    border-color: #10b981;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2310b981' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.form-control.is-valid:focus,
.was-validated .form-control:valid:focus {
    border-color: #10b981;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
}

.form-control.is-invalid,
.was-validated .form-control:invalid {
    border-color: #f43f5e;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23f43f5e'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23f43f5e' stroke='none'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}

.form-control.is-invalid:focus,
.was-validated .form-control:invalid:focus {
    border-color: #f43f5e;
    box-shadow: 0 0 0 4px rgba(244, 63, 94, 0.2);
}

/* ===== ГРУППЫ ФОРМ ===== */
.input-group {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
}

.input-group .form-control {
    position: relative;
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
}

.input-group-text {
    display: flex;
    align-items: center;
    padding: 0.5rem 1rem;
    font-size: 0.95rem;
    font-weight: 400;
    line-height: 1.5;
    color: #ffffff;
    text-align: center;
    white-space: nowrap;
    background: rgba(59, 130, 246, 0.2);
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    transition: all 0.3s ease;
}

.input-group-text i,
.input-group-text svg {
    color: rgb(59, 130, 246);
    font-size: 1.1rem;
}

.input-group:hover .input-group-text {
    border-color: rgba(59, 130, 246, 0.3);
    background: rgba(59, 130, 246, 0.25);
}

/* ===== РАЗНЫЕ ЦВЕТА ДЛЯ ФОРМ ===== */
.form-control-primary {
    border-color: rgb(59, 130, 246);
}

.form-control-primary:focus {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.form-control-success {
    border-color: #10b981;
}

.form-control-success:focus {
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
}

.form-control-danger {
    border-color: #f43f5e;
}

.form-control-danger:focus {
    box-shadow: 0 0 0 4px rgba(244, 63, 94, 0.2);
}

.form-control-warning {
    border-color: #f59e0b;
}

.form-control-warning:focus {
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.2);
}











/* ===== PREFERS REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
    .form-control {
        transition: none;
    }
}

/* ===== EXPAND ===== */
.form-control::-ms-expand {
    background-color: transparent;
    border: 0;
}

/* ===== FOCUS СТИЛИ ===== */
.form-control:focus {
    color: #ffffff;
    background: rgba(30, 41, 59, 0.95);
    border-color: rgb(59, 130, 246);
    outline: 0;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2), 0 4px 15px rgba(0, 0, 0, 0.2);
    transform: translateY(-1px);
}

/* ===== PLACEHOLDER ===== */
.form-control::placeholder {
    color: rgba(148, 163, 184, 0.6);
    opacity: 1;
    font-style: italic;
    transition: all 0.3s ease;
}

.form-control:focus::placeholder {
    opacity: 0.5;
    transform: translateX(5px);
}

/* ===== DISABLED И READONLY ===== */
.form-control:disabled,
.form-control[readonly] {
    background: rgba(15, 23, 42, 0.5);
    border-color: rgba(255, 255, 255, 0.05);
    color: rgba(255, 255, 255, 0.5);
    opacity: 1;
    cursor: not-allowed;
    box-shadow: none;
}

/* ===== DATE INPUTS ===== */
input[type="date"].form-control,
input[type="datetime-local"].form-control,
input[type="month"].form-control,
input[type="time"].form-control {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    color-scheme: dark;
}

/* ===== SELECT STYLES ===== */
select.form-control {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    background-size: 16px 12px;
    padding-right: 2.5rem;
    appearance: none;
}

select.form-control:focus {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%233b82f6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}

select.form-control:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #ffffff;
}

select.form-control:focus::-ms-value {
    background: rgba(59, 130, 246, 0.1);
    color: #ffffff;
}

/* ===== FILE INPUTS ===== */
.form-control-file,
.form-control-range {
    display: block;
    width: 100%;
    padding: 0.5rem;
    background: rgba(30, 41, 59, 0.8);
    border: 2px dashed rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    color: #cbd5e1;
    transition: all 0.3s ease;
}

.form-control-file:hover,
.form-control-range:hover {
    border-color: rgb(59, 130, 246);
    background: rgba(30, 41, 59, 0.9);
}

/* ===== COL FORM LABELS ===== */
.col-form-label {
    padding-top: calc(0.5rem + 2px);
    padding-bottom: calc(0.5rem + 2px);
    margin-bottom: 0;
    font-size: inherit;
    line-height: 1.5;
    color: #cbd5e1;
    font-weight: 500;
}

.col-form-label-lg {
    padding-top: calc(0.75rem + 2px);
    padding-bottom: calc(0.75rem + 2px);
    font-size: 1.125rem;
    line-height: 1.5;
}

.col-form-label-sm {
    padding-top: calc(0.375rem + 2px);
    padding-bottom: calc(0.375rem + 2px);
    font-size: 0.875rem;
    line-height: 1.5;
}

/* ===== PLAINTEXT ===== */
.form-control-plaintext {
    display: block;
    width: 100%;
    padding: 0.5rem 0;
    margin-bottom: 0;
    font-size: 0.95rem;
    line-height: 1.5;
    color: #ffffff;
    background-color: transparent;
    border: solid transparent;
    border-width: 2px 0;
}

.form-control-plaintext.form-control-lg,
.form-control-plaintext.form-control-sm {
    padding-left: 0;
    padding-right: 0;
}

/* ===== SIZE VARIANTS ===== */
.form-control-sm {
    height: 2rem;
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 8px;
}

.form-control-lg {
    height: 3.2rem;
    padding: 0.75rem 1.25rem;
    font-size: 1.1rem;
    line-height: 1.5;
    border-radius: 16px;
}

/* ===== TEXTAREA & MULTIPLE SELECT ===== */
select.form-control[multiple],
select.form-control[size],
textarea.form-control {
    height: auto;
    min-height: 100px;
}

textarea.form-control {
    resize: vertical;
}

/* ===== FORM GROUP ===== */
.form-group {
    margin-bottom: 1.5rem;
}

.form-text {
    display: block;
    margin-top: 0.375rem;
    font-size: 0.875rem;
    color: #94a3b8;
}

/* ===== FORM ROW ===== */
.form-row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -5px;
    margin-left: -5px;
}

.form-row > .col,
.form-row > [class*="col-"] {
    padding-right: 5px;
    padding-left: 5px;
}

/* ===== CHECKBOXES & RADIOS ===== */
.form-check {
    position: relative;
    display: block;
    padding-left: 1.75rem;
    margin-bottom: 0.5rem;
}

.form-check-input {
    position: absolute;
    margin-top: 0.3rem;
    margin-left: -1.75rem;
    width: 1.2rem;
    height: 1.2rem;
    accent-color: rgb(59, 130, 246);
}

.form-check-input:checked {
    filter: drop-shadow(0 2px 4px rgba(59, 130, 246, 0.3));
}

.form-check-input:disabled ~ .form-check-label,
.form-check-input[disabled] ~ .form-check-label {
    color: #64748b;
    cursor: not-allowed;
}

.form-check-label {
    margin-bottom: 0;
    color: #cbd5e1;
    cursor: pointer;
    transition: color 0.2s ease;
}

.form-check-label:hover {
    color: #ffffff;
}

/* ===== INLINE CHECKBOXES ===== */
.form-check-inline {
    display: inline-flex;
    align-items: center;
    padding-left: 0;
    margin-right: 1rem;
}

.form-check-inline .form-check-input {
    position: static;
    margin-top: 0;
    margin-right: 0.5rem;
    margin-left: 0;
}

/* ===== VALIDATION FEEDBACK ===== */
.valid-feedback {
    display: none;
    width: 100%;
    margin-top: 0.375rem;
    font-size: 0.875em;
    color: #10b981;
    animation: slideDown 0.3s ease;
}

.valid-tooltip {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 5;
    display: none;
    max-width: 100%;
    padding: 0.375rem 0.75rem;
    margin-top: 0.2rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #ffffff;
    background: linear-gradient(135deg, #10b981, #059669);
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(16, 185, 129, 0.3);
    animation: slideDown 0.3s ease;
}

/* ===== VALID STATES ===== */
.is-valid ~ .valid-feedback,
.is-valid ~ .valid-tooltip,
.was-validated :valid ~ .valid-feedback,
.was-validated :valid ~ .valid-tooltip {
    display: block;
}

.form-control.is-valid,
.was-validated .form-control:valid {
    border-color: #10b981;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2310b981'%3e%3cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.4em + 0.25rem) center;
    background-size: calc(1em + 0.5rem) calc(1em + 0.5rem);
    padding-right: calc(2em + 1rem);
}

.form-control.is-valid:focus,
.was-validated .form-control:valid:focus {
    border-color: #10b981;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
}

select.form-control.is-valid,
.was-validated select.form-control:valid {
    background-position: right 2rem center, right 0.75rem center;
    padding-right: 4rem;
}

textarea.form-control.is-valid,
.was-validated textarea.form-control:valid {
    background-position: top calc(0.4em + 0.25rem) right calc(0.4em + 0.25rem);
}

/* ===== CUSTOM SELECT VALID ===== */
.custom-select.is-valid,
.was-validated .custom-select:valid {
    border-color: #10b981;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e") right 0.75rem center/16px 12px no-repeat, rgba(30, 41, 59, 0.8) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%2310b981'%3e%3cpath d='M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z'/%3e%3c/svg%3e") center right 2rem/calc(1em + 0.5rem) calc(1em + 0.5rem) no-repeat;
    padding-right: 4rem;
}

.custom-select.is-valid:focus,
.was-validated .custom-select:valid:focus {
    border-color: #10b981;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
}

/* ===== FORM CHECK VALID ===== */
.form-check-input.is-valid ~ .form-check-label,
.was-validated .form-check-input:valid ~ .form-check-label {
    color: #10b981;
}

.form-check-input.is-valid ~ .valid-feedback,
.form-check-input.is-valid ~ .valid-tooltip,
.was-validated .form-check-input:valid ~ .valid-feedback,
.was-validated .form-check-input:valid ~ .valid-tooltip {
    display: block;
}

/* ===== CUSTOM CONTROL VALID ===== */
.custom-control-input.is-valid ~ .custom-control-label,
.was-validated .custom-control-input:valid ~ .custom-control-label {
    color: #10b981;
}

.custom-control-input.is-valid ~ .custom-control-label::before,
.was-validated .custom-control-input:valid ~ .custom-control-label::before {
    border-color: #10b981;
}

.custom-control-input.is-valid:checked ~ .custom-control-label::before,
.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before {
    background: linear-gradient(135deg, #10b981, #059669);
    border-color: #10b981;
}

.custom-control-input.is-valid:focus ~ .custom-control-label::before,
.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
}

.custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before,
.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before {
    border-color: #10b981;
}

/* ===== CUSTOM FILE VALID ===== */
.custom-file-input.is-valid ~ .custom-file-label,
.was-validated .custom-file-input:valid ~ .custom-file-label {
    border-color: #10b981;
}

.custom-file-input.is-valid:focus ~ .custom-file-label,
.was-validated .custom-file-input:valid:focus ~ .custom-file-label {
    border-color: #10b981;
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.2);
}

/* ===== INVALID STATES ===== */
.invalid-feedback {
    display: none;
    width: 100%;
    margin-top: 0.375rem;
    font-size: 0.875em;
    color: #f43f5e;
    animation: slideDown 0.3s ease;
}

.invalid-tooltip {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 5;
    display: none;
    max-width: 100%;
    padding: 0.375rem 0.75rem;
    margin-top: 0.2rem;
    font-size: 0.875rem;
    line-height: 1.5;
    color: #ffffff;
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(244, 63, 94, 0.3);
    animation: slideDown 0.3s ease;
}

.form-row > .col > .invalid-tooltip,
.form-row > [class*="col-"] > .invalid-tooltip {
    left: 5px;
}

.is-invalid ~ .invalid-feedback,
.is-invalid ~ .invalid-tooltip,
.was-validated :invalid ~ .invalid-feedback,
.was-validated :invalid ~ .invalid-tooltip {
    display: block;
}

.form-control.is-invalid,
.was-validated .form-control:invalid {
    border-color: #f43f5e;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f43f5e'%3e%3cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right calc(0.4em + 0.25rem) center;
    background-size: calc(1em + 0.5rem) calc(1em + 0.5rem);
    padding-right: calc(2em + 1rem);
}

.form-control.is-invalid:focus,
.was-validated .form-control:invalid:focus {
    border-color: #f43f5e;
    box-shadow: 0 0 0 4px rgba(244, 63, 94, 0.2);
}

select.form-control.is-invalid,
.was-validated select.form-control:invalid {
    background-position: right 2rem center, right 0.75rem center;
    padding-right: 4rem;
}

textarea.form-control.is-invalid,
.was-validated textarea.form-control:invalid {
    background-position: top calc(0.4em + 0.25rem) right calc(0.4em + 0.25rem);
}

/* ===== CUSTOM SELECT INVALID ===== */
.custom-select.is-invalid,
.was-validated .custom-select:invalid {
    border-color: #f43f5e;
    background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e") right 0.75rem center/16px 12px no-repeat, rgba(30, 41, 59, 0.8) url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f43f5e'%3e%3cpath d='M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z'/%3e%3c/svg%3e") center right 2rem/calc(1em + 0.5rem) calc(1em + 0.5rem) no-repeat;
    padding-right: 4rem;
}

.custom-select.is-invalid:focus,
.was-validated .custom-select:invalid:focus {
    border-color: #f43f5e;
    box-shadow: 0 0 0 4px rgba(244, 63, 94, 0.2);
}

/* ===== FORM CHECK INVALID ===== */
.form-check-input.is-invalid ~ .form-check-label,
.was-validated .form-check-input:invalid ~ .form-check-label {
    color: #f43f5e;
}

.form-check-input.is-invalid ~ .invalid-feedback,
.form-check-input.is-invalid ~ .invalid-tooltip,
.was-validated .form-check-input:invalid ~ .invalid-feedback,
.was-validated .form-check-input:invalid ~ .invalid-tooltip {
    display: block;
}

/* ===== CUSTOM CONTROL INVALID ===== */
.custom-control-input.is-invalid ~ .custom-control-label,
.was-validated .custom-control-input:invalid ~ .custom-control-label {
    color: #f43f5e;
}

.custom-control-input.is-invalid ~ .custom-control-label::before,
.was-validated .custom-control-input:invalid ~ .custom-control-label::before {
    border-color: #f43f5e;
}

.custom-control-input.is-invalid:checked ~ .custom-control-label::before,
.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    border-color: #f43f5e;
}

.custom-control-input.is-invalid:focus ~ .custom-control-label::before,
.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 4px rgba(244, 63, 94, 0.2);
}

.custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before,
.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before {
    border-color: #f43f5e;
}

/* ===== CUSTOM FILE INVALID ===== */
.custom-file-input.is-invalid ~ .custom-file-label,
.was-validated .custom-file-input:invalid ~ .custom-file-label {
    border-color: #f43f5e;
}

.custom-file-input.is-invalid:focus ~ .custom-file-label,
.was-validated .custom-file-input:invalid:focus ~ .custom-file-label {
    border-color: #f43f5e;
    box-shadow: 0 0 0 4px rgba(244, 63, 94, 0.2);
}

/* ===== FORM INLINE ===== */
.form-inline {
    display: flex;
    flex-flow: row wrap;
    align-items: center;
}

.form-inline .form-check {
    width: 100%;
}

@media (min-width: 576px) {
    .form-inline label {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 0;
    }
    
    .form-inline .form-group {
        display: flex;
        flex: 0 0 auto;
        flex-flow: row wrap;
        align-items: center;
        margin-bottom: 0;
    }
    
    .form-inline .form-control {
        display: inline-block;
        width: auto;
        vertical-align: middle;
    }
    
    .form-inline .form-control-plaintext {
        display: inline-block;
    }
    
    .form-inline .input-group,
    .form-inline .custom-select {
        width: auto;
    }
    
    .form-inline .form-check {
        display: flex;
        align-items: center;
        justify-content: center;
        width: auto;
        padding-left: 0;
    }
    
    .form-inline .form-check-input {
        position: relative;
        flex-shrink: 0;
        margin-top: 0;
        margin-right: 0.25rem;
        margin-left: 0;
    }
    
    .form-inline .custom-control {
        align-items: center;
        justify-content: center;
    }
    
    .form-inline .custom-control-label {
        margin-bottom: 0;
    }
}

/* ===== АНИМАЦИИ ===== */
@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}



















/* ===== FORM INLINE ===== */
@media (min-width: 576px) {
    .form-inline label {
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 0;
        color: #cbd5e1;
        font-weight: 500;
    }
    
    .form-inline .form-group {
        display: flex;
        flex: 0 0 auto;
        flex-flow: row wrap;
        align-items: center;
        margin-bottom: 0;
        gap: 0.5rem;
    }
    
    .form-inline .form-control {
        display: inline-block;
        width: auto;
        vertical-align: middle;
    }
    
    .form-inline .form-control-plaintext {
        display: inline-block;
        color: #ffffff;
    }
    
    .form-inline .custom-select,
    .form-inline .input-group {
        width: auto;
    }
    
    .form-inline .form-check {
        display: flex;
        align-items: center;
        justify-content: center;
        width: auto;
        padding-left: 0;
    }
    
    .form-inline .form-check-input {
        position: relative;
        flex-shrink: 0;
        margin-top: 0;
        margin-right: 0.25rem;
        margin-left: 0;
        accent-color: rgb(59, 130, 246);
    }
    
    .form-inline .custom-control {
        align-items: center;
        justify-content: center;
    }
    
    .form-inline .custom-control-label {
        margin-bottom: 0;
        color: #cbd5e1;
    }
}

/* ===== КНОПКИ ===== */
.btn {
    display: inline-block;
    font-weight: 500;
    color: #ffffff;
    text-align: center;
    vertical-align: middle;
    user-select: none;
    background: transparent;
    border: 2px solid transparent;
    padding: 0.6rem 1.5rem;
    font-size: 0.95rem;
    line-height: 1.5;
    border-radius: 50px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    letter-spacing: 0.3px;
}

/* Эффект волны при клике */
.btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
    z-index: 1;
}

.btn:hover::after {
    width: 300px;
    height: 300px;
}

.btn:active::after {
    background: rgba(255, 255, 255, 0.2);
}

/* ===== ТИПЫ КНОПОК ===== */

/* Primary Button */
.btn-primary {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border: none;
    box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(59, 130, 246, 0.4);
    background: linear-gradient(135deg, rgb(37, 99, 235), rgb(29, 78, 216));
}

.btn-primary:active {
    transform: translateY(0);
    box-shadow: 0 2px 10px rgba(59, 130, 246, 0.3);
}

/* Secondary Button */
.btn-secondary {
    background: linear-gradient(135deg, #475569, #334155);
    border: none;
    box-shadow: 0 4px 15px rgba(71, 85, 105, 0.3);
}

.btn-secondary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(71, 85, 105, 0.4);
    background: linear-gradient(135deg, #334155, #1e293b);
}

/* Success Button */
.btn-success {
    background: linear-gradient(135deg, #10b981, #059669);
    border: none;
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3);
}

.btn-success:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(16, 185, 129, 0.4);
    background: linear-gradient(135deg, #059669, #047857);
}

/* Danger Button */
.btn-danger {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    border: none;
    box-shadow: 0 4px 15px rgba(244, 63, 94, 0.3);
}

.btn-danger:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(244, 63, 94, 0.4);
    background: linear-gradient(135deg, #e11d48, #be123c);
}

/* Warning Button */
.btn-warning {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border: none;
    box-shadow: 0 4px 15px rgba(245, 158, 11, 0.3);
    color: #ffffff;
}

.btn-warning:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(245, 158, 11, 0.4);
    background: linear-gradient(135deg, #d97706, #b45309);
}

/* Info Button */
.btn-info {
    background: linear-gradient(135deg, #0ea5e9, #0284c7);
    border: none;
    box-shadow: 0 4px 15px rgba(14, 165, 233, 0.3);
}

.btn-info:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(14, 165, 233, 0.4);
    background: linear-gradient(135deg, #0284c7, #0369a1);
}

/* Light Button */
.btn-light {
    background: linear-gradient(135deg, #cbd5e1, #e2e8f0);
    border: none;
    color: #0f172a;
    box-shadow: 0 4px 15px rgba(203, 213, 225, 0.3);
}

.btn-light:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(203, 213, 225, 0.4);
    background: linear-gradient(135deg, #e2e8f0, #f1f5f9);
}

/* Dark Button */
.btn-dark {
    background: linear-gradient(135deg, #1e293b, #0f172a);
    border: none;
    box-shadow: 0 4px 15px rgba(15, 23, 42, 0.3);
}

.btn-dark:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(15, 23, 42, 0.4);
    background: linear-gradient(135deg, #0f172a, #020617);
}

/* Link Button */
.btn-link {
    background: transparent;
    border: none;
    color: rgb(59, 130, 246);
    box-shadow: none;
    font-weight: 500;
    text-decoration: none;
}

.btn-link:hover {
    color: rgb(37, 99, 235);
    text-decoration: underline;
    transform: translateY(-1px);
    background: rgba(59, 130, 246, 0.1);
    box-shadow: none;
}

.btn-link::after {
    display: none;
}

/* ===== OUTLINE КНОПКИ ===== */
.btn-outline-primary {
    background: transparent;
    border: 2px solid rgb(59, 130, 246);
    color: rgb(59, 130, 246);
    box-shadow: none;
}

.btn-outline-primary:hover {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(59, 130, 246, 0.3);
}

.btn-outline-secondary {
    background: transparent;
    border: 2px solid #475569;
    color: #475569;
}

.btn-outline-secondary:hover {
    background: linear-gradient(135deg, #475569, #334155);
    color: #ffffff;
    transform: translateY(-2px);
}

.btn-outline-success {
    background: transparent;
    border: 2px solid #10b981;
    color: #10b981;
}

.btn-outline-success:hover {
    background: linear-gradient(135deg, #10b981, #059669);
    color: #ffffff;
    transform: translateY(-2px);
}

.btn-outline-danger {
    background: transparent;
    border: 2px solid #f43f5e;
    color: #f43f5e;
}

.btn-outline-danger:hover {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    color: #ffffff;
    transform: translateY(-2px);
}

.btn-outline-warning {
    background: transparent;
    border: 2px solid #f59e0b;
    color: #f59e0b;
}

.btn-outline-warning:hover {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #ffffff;
    transform: translateY(-2px);
}

.btn-outline-info {
    background: transparent;
    border: 2px solid #0ea5e9;
    color: #0ea5e9;
}

.btn-outline-info:hover {
    background: linear-gradient(135deg, #0ea5e9, #0284c7);
    color: #ffffff;
    transform: translateY(-2px);
}

.btn-outline-light {
    background: transparent;
    border: 2px solid #cbd5e1;
    color: #cbd5e1;
}

.btn-outline-light:hover {
    background: linear-gradient(135deg, #cbd5e1, #e2e8f0);
    color: #0f172a;
    transform: translateY(-2px);
}

.btn-outline-dark {
    background: transparent;
    border: 2px solid #0f172a;
    color: #0f172a;
}

.btn-outline-dark:hover {
    background: linear-gradient(135deg, #0f172a, #020617);
    color: #ffffff;
    transform: translateY(-2px);
}

/* ===== РАЗМЕРЫ КНОПОК ===== */
.btn-lg {
    padding: 0.8rem 2rem;
    font-size: 1.1rem;
    border-radius: 60px;
}

.btn-sm {
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
    border-radius: 40px;
}

.btn-xs {
    padding: 0.25rem 0.75rem;
    font-size: 0.75rem;
    border-radius: 30px;
}

/* ===== КРУГЛЫЕ КНОПКИ ===== */
.btn-circle {
    width: 45px;
    height: 45px;
    padding: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
}

.btn-circle.btn-lg {
    width: 60px;
    height: 60px;
    font-size: 1.5rem;
}

.btn-circle.btn-sm {
    width: 35px;
    height: 35px;
    font-size: 1rem;
}

.btn-circle.btn-xs {
    width: 28px;
    height: 28px;
    font-size: 0.85rem;
}

/* ===== КНОПКИ С ИКОНКАМИ ===== */
.btn-icon-left i,
.btn-icon-left svg {
    margin-right: 0.5rem;
    vertical-align: middle;
}

.btn-icon-right i,
.btn-icon-right svg {
    margin-left: 0.5rem;
    vertical-align: middle;
}

.btn-icon-only {
    padding: 0.6rem;
    border-radius: 50%;
}

.btn-icon-only i,
.btn-icon-only svg {
    margin: 0;
}

/* ===== БЛОЧНЫЕ КНОПКИ ===== */
.btn-block {
    display: block;
    width: 100%;
}

.btn-block + .btn-block {
    margin-top: 0.5rem;
}

/* ===== СОСТОЯНИЯ КНОПОК ===== */
.btn:focus,
.btn.focus {
    outline: 0;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.btn:disabled,
.btn.disabled {
    opacity: 0.6;
    pointer-events: none;
    cursor: not-allowed;
    filter: grayscale(0.5);
    transform: none !important;
    box-shadow: none !important;
}

.btn:not(:disabled):not(.disabled):active,
.btn:not(:disabled):not(.disabled).active {
    transform: scale(0.98);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* ===== КНОПКИ С ЭФФЕКТОМ СВЕЧЕНИЯ ===== */
.btn-glow-primary {
    animation: glowPrimary 2s infinite;
}

@keyframes glowPrimary {
    0% {
        box-shadow: 0 0 5px rgba(59, 130, 246, 0.3);
    }
    50% {
        box-shadow: 0 0 20px rgba(59, 130, 246, 0.6);
    }
    100% {
        box-shadow: 0 0 5px rgba(59, 130, 246, 0.3);
    }
}

.btn-glow-success {
    animation: glowSuccess 2s infinite;
}

@keyframes glowSuccess {
    0% {
        box-shadow: 0 0 5px rgba(16, 185, 129, 0.3);
    }
    50% {
        box-shadow: 0 0 20px rgba(16, 185, 129, 0.6);
    }
    100% {
        box-shadow: 0 0 5px rgba(16, 185, 129, 0.3);
    }
}

.btn-glow-danger {
    animation: glowDanger 2s infinite;
}

@keyframes glowDanger {
    0% {
        box-shadow: 0 0 5px rgba(244, 63, 94, 0.3);
    }
    50% {
        box-shadow: 0 0 20px rgba(244, 63, 94, 0.6);
    }
    100% {
        box-shadow: 0 0 5px rgba(244, 63, 94, 0.3);
    }
}

/* ===== КНОПКИ С ГРАДИЕНТНОЙ ГРАНИЦЕЙ ===== */
.btn-gradient-border {
    position: relative;
    background: transparent;
    border: none;
    color: #ffffff;
    z-index: 1;
}

.btn-gradient-border::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6, #ec4899);
    border-radius: 52px;
    z-index: -2;
}

.btn-gradient-border::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    border-radius: 50px;
    z-index: -1;
    transition: all 0.3s ease;
}

.btn-gradient-border:hover {
    transform: translateY(-2px);
}

.btn-gradient-border:hover::after {
    opacity: 0.9;
}

/* ===== КНОПКИ ЗАГРУЗКИ ===== */
.btn-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}

.btn-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1.2rem;
    height: 1.2rem;
    margin-top: -0.6rem;
    margin-left: -0.6rem;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-top-color: #ffffff;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* ===== КНОПКИ С ЭФФЕКТОМ ПУЛЬСАЦИИ ===== */
.btn-pulse {
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.7);
    }
    70% {
        box-shadow: 0 0 0 10px rgba(59, 130, 246, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
}











/* ===== PREFERS REDUCED MOTION ===== */
@media (prefers-reduced-motion: reduce) {
    .btn {
        transition: none;
    }
    
    .btn::after {
        display: none;
    }
}

/* ===== БАЗОВЫЕ СТИЛИ КНОПОК ===== */
.btn {
    display: inline-block;
    font-weight: 500;
    color: #ffffff;
    text-align: center;
    vertical-align: middle;
    user-select: none;
    background: transparent;
    border: 2px solid transparent;
    padding: 0.6rem 1.5rem;
    font-size: 0.95rem;
    line-height: 1.5;
    border-radius: 50px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    position: relative;
    overflow: hidden;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    letter-spacing: 0.3px;
}

/* Эффект волны при клике */
.btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    transform: translate(-50%, -50%);
    transition: width 0.6s ease-out, height 0.6s ease-out;
    z-index: 1;
    pointer-events: none;
}

.btn:hover::after {
    width: 300px;
    height: 300px;
}

.btn:active::after {
    background: rgba(255, 255, 255, 0.3);
    width: 400px;
    height: 400px;
}

.btn:hover {
    color: #ffffff;
    text-decoration: none;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.btn:focus,
.btn.focus {
    outline: 0;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.3);
}

.btn:disabled,
.btn.disabled {
    opacity: 0.6;
    box-shadow: none;
    pointer-events: none;
    cursor: not-allowed;
    transform: none !important;
    filter: grayscale(0.3);
}

.btn:not(:disabled):not(.disabled) {
    cursor: pointer;
}

.btn:not(:disabled):not(.disabled):active,
.btn:not(:disabled):not(.disabled).active {
    transform: scale(0.98) translateY(0);
    box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.2);
}

.btn:not(:disabled):not(.disabled):active:focus,
.btn:not(:disabled):not(.disabled).active:focus {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.3), inset 0 3px 8px rgba(0, 0, 0, 0.2);
}

a.btn.disabled,
fieldset:disabled a.btn {
    pointer-events: none;
}

/* ===== PRIMARY BUTTON ===== */
.btn-primary {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border: none;
    box-shadow: 0 4px 15px rgba(59, 130, 246, 0.3);
    color: #ffffff;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary.focus {
    background: linear-gradient(135deg, rgb(37, 99, 235), rgb(29, 78, 216));
    border: none;
    box-shadow: 0 8px 25px rgba(59, 130, 246, 0.4);
    color: #ffffff;
}

.btn-primary:focus,
.btn-primary.focus {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.3);
}

.btn-primary:disabled,
.btn-primary.disabled {
    background: linear-gradient(135deg, #60a5fa, #3b82f6);
    opacity: 0.6;
}

.btn-primary:not(:disabled):not(.disabled):active,
.btn-primary:not(:disabled):not(.disabled).active,
.show > .btn-primary.dropdown-toggle {
    background: linear-gradient(135deg, rgb(29, 78, 216), rgb(30, 64, 175));
    border: none;
    color: #ffffff;
}

.btn-primary:not(:disabled):not(.disabled):active:focus,
.btn-primary:not(:disabled):not(.disabled).active:focus,
.show > .btn-primary.dropdown-toggle:focus {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.3), inset 0 3px 8px rgba(0, 0, 0, 0.2);
}

/* ===== SECONDARY BUTTON ===== */
.btn-secondary {
    background: linear-gradient(135deg, #475569, #334155);
    border: none;
    box-shadow: 0 4px 15px rgba(71, 85, 105, 0.3);
    color: #ffffff;
}

.btn-secondary:hover,
.btn-secondary:focus,
.btn-secondary.focus {
    background: linear-gradient(135deg, #334155, #1e293b);
    border: none;
    box-shadow: 0 8px 25px rgba(71, 85, 105, 0.4);
    color: #ffffff;
}

.btn-secondary:focus,
.btn-secondary.focus {
    box-shadow: 0 0 0 4px rgba(71, 85, 105, 0.3);
}

.btn-secondary:disabled,
.btn-secondary.disabled {
    background: linear-gradient(135deg, #64748b, #475569);
}

.btn-secondary:not(:disabled):not(.disabled):active,
.btn-secondary:not(:disabled):not(.disabled).active,
.show > .btn-secondary.dropdown-toggle {
    background: linear-gradient(135deg, #1e293b, #0f172a);
    border: none;
    color: #ffffff;
}

/* ===== SUCCESS BUTTON ===== */
.btn-success {
    background: linear-gradient(135deg, #10b981, #059669);
    border: none;
    box-shadow: 0 4px 15px rgba(16, 185, 129, 0.3);
    color: #ffffff;
}

.btn-success:hover,
.btn-success:focus,
.btn-success.focus {
    background: linear-gradient(135deg, #059669, #047857);
    border: none;
    box-shadow: 0 8px 25px rgba(16, 185, 129, 0.4);
    color: #ffffff;
}

.btn-success:focus,
.btn-success.focus {
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.3);
}

.btn-success:disabled,
.btn-success.disabled {
    background: linear-gradient(135deg, #34d399, #10b981);
}

.btn-success:not(:disabled):not(.disabled):active,
.btn-success:not(:disabled):not(.disabled).active,
.show > .btn-success.dropdown-toggle {
    background: linear-gradient(135deg, #047857, #065f46);
    border: none;
    color: #ffffff;
}

/* ===== INFO BUTTON ===== */
.btn-info {
    background: linear-gradient(135deg, #0ea5e9, #0284c7);
    border: none;
    box-shadow: 0 4px 15px rgba(14, 165, 233, 0.3);
    color: #ffffff;
}

.btn-info:hover,
.btn-info:focus,
.btn-info.focus {
    background: linear-gradient(135deg, #0284c7, #0369a1);
    border: none;
    box-shadow: 0 8px 25px rgba(14, 165, 233, 0.4);
    color: #ffffff;
}

.btn-info:focus,
.btn-info.focus {
    box-shadow: 0 0 0 4px rgba(14, 165, 233, 0.3);
}

.btn-info:disabled,
.btn-info.disabled {
    background: linear-gradient(135deg, #38bdf8, #0ea5e9);
}

.btn-info:not(:disabled):not(.disabled):active,
.btn-info:not(:disabled):not(.disabled).active,
.show > .btn-info.dropdown-toggle {
    background: linear-gradient(135deg, #0369a1, #075985);
    border: none;
    color: #ffffff;
}

/* ===== WARNING BUTTON ===== */
.btn-warning {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border: none;
    box-shadow: 0 4px 15px rgba(245, 158, 11, 0.3);
    color: #ffffff;
}

.btn-warning:hover,
.btn-warning:focus,
.btn-warning.focus {
    background: linear-gradient(135deg, #d97706, #b45309);
    border: none;
    box-shadow: 0 8px 25px rgba(245, 158, 11, 0.4);
    color: #ffffff;
}

.btn-warning:focus,
.btn-warning.focus {
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.3);
}

.btn-warning:disabled,
.btn-warning.disabled {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
}

.btn-warning:not(:disabled):not(.disabled):active,
.btn-warning:not(:disabled):not(.disabled).active,
.show > .btn-warning.dropdown-toggle {
    background: linear-gradient(135deg, #b45309, #92400e);
    border: none;
    color: #ffffff;
}

/* ===== DANGER BUTTON ===== */
.btn-danger {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    border: none;
    box-shadow: 0 4px 15px rgba(244, 63, 94, 0.3);
    color: #ffffff;
}

.btn-danger:hover,
.btn-danger:focus,
.btn-danger.focus {
    background: linear-gradient(135deg, #e11d48, #be123c);
    border: none;
    box-shadow: 0 8px 25px rgba(244, 63, 94, 0.4);
    color: #ffffff;
}

.btn-danger:focus,
.btn-danger.focus {
    box-shadow: 0 0 0 4px rgba(244, 63, 94, 0.3);
}

.btn-danger:disabled,
.btn-danger.disabled {
    background: linear-gradient(135deg, #fb7185, #f43f5e);
}

.btn-danger:not(:disabled):not(.disabled):active,
.btn-danger:not(:disabled):not(.disabled).active,
.show > .btn-danger.dropdown-toggle {
    background: linear-gradient(135deg, #be123c, #9f1239);
    border: none;
    color: #ffffff;
}

/* ===== LIGHT BUTTON ===== */
.btn-light {
    background: linear-gradient(135deg, #cbd5e1, #e2e8f0);
    border: none;
    box-shadow: 0 4px 15px rgba(203, 213, 225, 0.3);
    color: #0f172a;
}

.btn-light:hover,
.btn-light:focus,
.btn-light.focus {
    background: linear-gradient(135deg, #e2e8f0, #f1f5f9);
    border: none;
    box-shadow: 0 8px 25px rgba(203, 213, 225, 0.4);
    color: #0f172a;
}

.btn-light:focus,
.btn-light.focus {
    box-shadow: 0 0 0 4px rgba(203, 213, 225, 0.3);
}

.btn-light:disabled,
.btn-light.disabled {
    background: linear-gradient(135deg, #e2e8f0, #cbd5e1);
    color: #64748b;
}

.btn-light:not(:disabled):not(.disabled):active,
.btn-light:not(:disabled):not(.disabled).active,
.show > .btn-light.dropdown-toggle {
    background: linear-gradient(135deg, #f1f5f9, #ffffff);
    border: none;
    color: #0f172a;
}

/* ===== DARK BUTTON ===== */
.btn-dark {
    background: linear-gradient(135deg, #1e293b, #0f172a);
    border: none;
    box-shadow: 0 4px 15px rgba(15, 23, 42, 0.3);
    color: #ffffff;
}

.btn-dark:hover,
.btn-dark:focus,
.btn-dark.focus {
    background: linear-gradient(135deg, #0f172a, #020617);
    border: none;
    box-shadow: 0 8px 25px rgba(15, 23, 42, 0.4);
    color: #ffffff;
}

.btn-dark:focus,
.btn-dark.focus {
    box-shadow: 0 0 0 4px rgba(15, 23, 42, 0.3);
}

.btn-dark:disabled,
.btn-dark.disabled {
    background: linear-gradient(135deg, #334155, #1e293b);
}

.btn-dark:not(:disabled):not(.disabled):active,
.btn-dark:not(:disabled):not(.disabled).active,
.show > .btn-dark.dropdown-toggle {
    background: linear-gradient(135deg, #020617, #000000);
    border: none;
    color: #ffffff;
}

/* ===== OUTLINE BUTTONS ===== */
.btn-outline-primary {
    border: 2px solid rgb(59, 130, 246);
    color: rgb(59, 130, 246);
    background: transparent;
    box-shadow: none;
}

.btn-outline-primary:hover {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border-color: transparent;
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(59, 130, 246, 0.3);
}

.btn-outline-primary:focus,
.btn-outline-primary.focus {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.3);
}

.btn-outline-primary:disabled,
.btn-outline-primary.disabled {
    background: transparent;
    border-color: #94a3b8;
    color: #94a3b8;
}

.btn-outline-primary:not(:disabled):not(.disabled):active,
.btn-outline-primary:not(:disabled):not(.disabled).active,
.show > .btn-outline-primary.dropdown-toggle {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border-color: transparent;
    color: #ffffff;
}

.btn-outline-secondary {
    border: 2px solid #475569;
    color: #475569;
    background: transparent;
}

.btn-outline-secondary:hover {
    background: linear-gradient(135deg, #475569, #334155);
    border-color: transparent;
    color: #ffffff;
}

.btn-outline-secondary:focus,
.btn-outline-secondary.focus {
    box-shadow: 0 0 0 4px rgba(71, 85, 105, 0.3);
}

.btn-outline-success {
    border: 2px solid #10b981;
    color: #10b981;
    background: transparent;
}

.btn-outline-success:hover {
    background: linear-gradient(135deg, #10b981, #059669);
    border-color: transparent;
    color: #ffffff;
}

.btn-outline-success:focus,
.btn-outline-success.focus {
    box-shadow: 0 0 0 4px rgba(16, 185, 129, 0.3);
}

.btn-outline-info {
    border: 2px solid #0ea5e9;
    color: #0ea5e9;
    background: transparent;
}

.btn-outline-info:hover {
    background: linear-gradient(135deg, #0ea5e9, #0284c7);
    border-color: transparent;
    color: #ffffff;
}

.btn-outline-info:focus,
.btn-outline-info.focus {
    box-shadow: 0 0 0 4px rgba(14, 165, 233, 0.3);
}

.btn-outline-warning {
    border: 2px solid #f59e0b;
    color: #f59e0b;
    background: transparent;
}

.btn-outline-warning:hover {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    border-color: transparent;
    color: #ffffff;
}

.btn-outline-warning:focus,
.btn-outline-warning.focus {
    box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.3);
}

.btn-outline-danger {
    border: 2px solid #f43f5e;
    color: #f43f5e;
    background: transparent;
}

.btn-outline-danger:hover {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    border-color: transparent;
    color: #ffffff;
}

.btn-outline-danger:focus,
.btn-outline-danger.focus {
    box-shadow: 0 0 0 4px rgba(244, 63, 94, 0.3);
}

.btn-outline-light {
    border: 2px solid #cbd5e1;
    color: #cbd5e1;
    background: transparent;
}

.btn-outline-light:hover {
    background: linear-gradient(135deg, #cbd5e1, #e2e8f0);
    border-color: transparent;
    color: #0f172a;
}

.btn-outline-light:focus,
.btn-outline-light.focus {
    box-shadow: 0 0 0 4px rgba(203, 213, 225, 0.3);
}

.btn-outline-dark {
    border: 2px solid #0f172a;
    color: #0f172a;
    background: transparent;
}

.btn-outline-dark:hover {
    background: linear-gradient(135deg, #0f172a, #020617);
    border-color: transparent;
    color: #ffffff;
}

.btn-outline-dark:focus,
.btn-outline-dark.focus {
    box-shadow: 0 0 0 4px rgba(15, 23, 42, 0.3);
}

/* ===== LINK BUTTON ===== */
.btn-link {
    font-weight: 500;
    color: rgb(59, 130, 246);
    text-decoration: none;
    background: transparent;
    border: none;
    box-shadow: none;
}

.btn-link:hover {
    color: rgb(37, 99, 235);
    text-decoration: underline;
    background: transparent;
    transform: translateY(-1px);
    box-shadow: none;
}

.btn-link:focus,
.btn-link.focus {
    text-decoration: underline;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.3);
}

.btn-link:disabled,
.btn-link.disabled {
    color: #94a3b8;
    pointer-events: none;
    text-decoration: none;
}

/* ===== BUTTON SIZES ===== */
.btn-lg,
.btn-group-lg > .btn {
    padding: 0.8rem 2rem;
    font-size: 1.1rem;
    line-height: 1.5;
    border-radius: 60px;
}

.btn-sm,
.btn-group-sm > .btn {
    padding: 0.4rem 1rem;
    font-size: 0.85rem;
    line-height: 1.5;
    border-radius: 40px;
}

.btn-xs {
    padding: 0.25rem 0.75rem;
    font-size: 0.75rem;
    line-height: 1.5;
    border-radius: 30px;
}

/* ===== BLOCK BUTTON ===== */
.btn-block {
    display: block;
    width: 100%;
}

.btn-block + .btn-block {
    margin-top: 0.5rem;
}

input[type="button"].btn-block,
input[type="reset"].btn-block,
input[type="submit"].btn-block {
    width: 100%;
}

/* ===== FADE ANIMATION ===== */
.fade {
    transition: opacity 0.2s ease-in-out;
}

.fade:not(.show) {
    opacity: 0;
}












@media (prefers-reduced-motion: reduce) {
    .fade {
        transition: none;
    }
    .collapsing {
        transition: none;
    }
    .collapsing.width {
        transition: none;
    }
}

.fade {
    transition: opacity 0.2s ease-in-out;
}

.fade:not(.show) {
    opacity: 0;
}

.collapse:not(.show) {
    display: none;
}

.collapsing {
    position: relative;
    height: 0;
    overflow: hidden;
    transition: height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.collapsing.width {
    width: 0;
    height: auto;
    transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.dropdown,
.dropleft,
.dropright,
.dropup {
    position: relative;
}

.dropdown-toggle {
    white-space: nowrap;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.5rem;
    vertical-align: middle;
    content: "";
    border-top: 0.3em solid;
    border-right: 0.3em solid transparent;
    border-bottom: 0;
    border-left: 0.3em solid transparent;
    transition: transform 0.2s ease;
}

.show > .dropdown-toggle::after {
    transform: rotate(180deg);
}

.dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 1000;
    display: none;
    float: left;
    min-width: 12rem;
    padding: 0.5rem 0;
    margin: 0.1rem 0 0;
    font-size: 0.9rem;
    color: #ffffff;
    text-align: left;
    list-style: none;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    background-clip: padding-box;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    box-shadow: 0 20px 40px -10px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(59, 130, 246, 0.1);
    animation: dropdownFade 0.2s ease;
}

@keyframes dropdownFade {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dropdown-menu.show {
    display: block;
}

.dropdown-menu-left {
    left: 0;
    right: auto;
}

.dropdown-menu-right {
    left: auto;
    right: 0;
}

@media (min-width: 576px) {
    .dropdown-menu-sm-left {
        left: 0;
        right: auto;
    }
    .dropdown-menu-sm-right {
        left: auto;
        right: 0;
    }
}

@media (min-width: 768px) {
    .dropdown-menu-md-left {
        left: 0;
        right: auto;
    }
    .dropdown-menu-md-right {
        left: auto;
        right: 0;
    }
}

@media (min-width: 992px) {
    .dropdown-menu-lg-left {
        left: 0;
        right: auto;
    }
    .dropdown-menu-lg-right {
        left: auto;
        right: 0;
    }
}

/* ===== ДОПОЛНИТЕЛЬНЫЕ УЛУЧШЕНИЯ ===== */

/* Стили для пунктов меню */
.dropdown-item {
    display: block;
    width: 100%;
    padding: 0.5rem 1.2rem;
    clear: both;
    font-weight: 400;
    color: #cbd5e1;
    text-align: inherit;
    white-space: nowrap;
    background: transparent;
    border: 0;
    transition: all 0.2s ease;
    position: relative;
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: #ffffff;
    text-decoration: none;
    background: rgba(59, 130, 246, 0.1);
    padding-left: 1.5rem;
}

.dropdown-item.active,
.dropdown-item:active {
    color: #ffffff;
    text-decoration: none;
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
}

.dropdown-item:disabled,
.dropdown-item.disabled {
    color: #64748b;
    pointer-events: none;
    background: transparent;
}

/* Разделитель */
.dropdown-divider {
    height: 0;
    margin: 0.5rem 0;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Заголовок */
.dropdown-header {
    display: block;
    padding: 0.5rem 1.2rem;
    margin-bottom: 0;
    font-size: 0.875rem;
    color: #94a3b8;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

/* Текст */
.dropdown-item-text {
    display: block;
    padding: 0.5rem 1.2rem;
    color: #cbd5e1;
}

/* Dropup */
.dropup .dropdown-menu {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: 0.1rem;
}

.dropup .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.5rem;
    vertical-align: middle;
    content: "";
    border-top: 0;
    border-right: 0.3em solid transparent;
    border-bottom: 0.3em solid;
    border-left: 0.3em solid transparent;
}

/* Dropright */
.dropright .dropdown-menu {
    top: 0;
    left: 100%;
    right: auto;
    bottom: auto;
    margin-top: 0;
    margin-left: 0.1rem;
}

.dropright .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.5rem;
    vertical-align: middle;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0;
    border-bottom: 0.3em solid transparent;
    border-left: 0.3em solid;
}

/* Dropleft */
.dropleft .dropdown-menu {
    top: 0;
    left: auto;
    right: 100%;
    bottom: auto;
    margin-top: 0;
    margin-right: 0.125rem;
}

.dropleft .dropdown-toggle::before {
    display: inline-block;
    margin-right: 0.5rem;
    vertical-align: middle;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0.3em solid;
    border-bottom: 0.3em solid transparent;
}

.dropleft .dropdown-toggle::after {
    display: none;
}


















@media (min-width: 1200px) {
    .dropdown-menu-xl-left {
        left: 0;
        right: auto;
    }
    .dropdown-menu-xl-right {
        left: auto;
        right: 0;
    }
}

.dropup .dropdown-menu {
    top: auto;
    bottom: 100%;
    margin-top: 0;
    margin-bottom: 0.125rem;
}

.dropright .dropdown-menu {
    top: 0;
    right: auto;
    left: 100%;
    margin-top: 0;
    margin-left: 0.125rem;
}

.dropright .dropdown-toggle::after {
    display: inline-block;
    margin-left: 0.5rem;
    vertical-align: middle;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0;
    border-bottom: 0.3em solid transparent;
    border-left: 0.3em solid;
    transition: transform 0.2s ease;
}

.dropleft .dropdown-menu {
    top: 0;
    right: 100%;
    left: auto;
    margin-top: 0;
    margin-right: 0.125rem;
}

.dropleft .dropdown-toggle::before {
    display: inline-block;
    margin-right: 0.5rem;
    vertical-align: middle;
    content: "";
    border-top: 0.3em solid transparent;
    border-right: 0.3em solid;
    border-bottom: 0.3em solid transparent;
    transition: transform 0.2s ease;
}

.dropleft .dropdown-toggle::after {
    display: none;
}

.dropdown-menu[x-placement^="bottom"],
.dropdown-menu[x-placement^="left"],
.dropdown-menu[x-placement^="right"],
.dropdown-menu[x-placement^="top"] {
    right: auto;
    bottom: auto;
}

.dropdown-divider {
    height: 0;
    margin: 0.5rem 0;
    overflow: hidden;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.dropdown-item {
    display: block;
    width: 100%;
    padding: 0.5rem 0.7rem;
    clear: both;
    font-weight: 400;
    color: #cbd5e1;
    text-align: inherit;
    white-space: nowrap;
    background: transparent;
    border: 0;
    transition: all 0.2s ease;
    position: relative;
}

.dropdown-item:hover,
.dropdown-item:focus {
    color: #ffffff;
    text-decoration: none;
    background: rgba(59, 130, 246, 0.1);
    padding-left: 1.5rem;
}

.dropdown-item.active,
.dropdown-item:active {
    color: #ffffff;
    text-decoration: none;
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
}

.dropdown-item.disabled,
.dropdown-item:disabled {
    color: #64748b;
    background-color: transparent;
    pointer-events: none;
}

.dropdown-menu.show {
    display: block;
}

.dropdown-header {
    display: block;
    padding: 0.5rem 0.5rem;
    margin-bottom: 0;
    font-size: 0.875rem;
    color: #94a3b8;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.dropdown-item-text {
    display: block;
    padding: 0.5rem 1.2rem;
    color: #cbd5e1;
}

/* ===== BUTTON GROUPS ===== */
.btn-group,
.btn-group-vertical {
    position: relative;
    display: inline-flex;
    vertical-align: middle;
}

.btn-group > .btn,
.btn-group-vertical > .btn {
    position: relative;
    flex: 1 1 auto;
}

.btn-group > .btn:hover,
.btn-group-vertical > .btn:hover,
.btn-group > .btn:focus,
.btn-group-vertical > .btn:focus,
.btn-group > .btn:active,
.btn-group-vertical > .btn:active,
.btn-group > .btn.active,
.btn-group-vertical > .btn.active {
    z-index: 1;
}

.btn-toolbar {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
}

.btn-toolbar .input-group {
    width: auto;
}

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) {
    margin-left: -1px;
}

.btn-group > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group > .btn-group:not(:last-child) > .btn {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.btn-group > .btn:not(:first-child),
.btn-group > .btn-group:not(:first-child) > .btn {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.dropdown-toggle-split {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.dropdown-toggle-split::after,
.dropup .dropdown-toggle-split::after,
.dropright .dropdown-toggle-split::after {
    margin-left: 0;
}

.dropleft .dropdown-toggle-split::before {
    margin-right: 0;
}

.btn-sm + .dropdown-toggle-split,
.btn-group-sm > .btn + .dropdown-toggle-split {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
}

.btn-lg + .dropdown-toggle-split,
.btn-group-lg > .btn + .dropdown-toggle-split {
    padding-left: 1rem;
    padding-right: 1rem;
}

.btn-group.show .dropdown-toggle {
    box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.2);
}

.btn-group.show .dropdown-toggle.btn-link {
    box-shadow: none;
}

/* ===== BUTTON GROUP VERTICAL ===== */
.btn-group-vertical {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.btn-group-vertical > .btn,
.btn-group-vertical > .btn-group {
    width: 100%;
}

.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) {
    margin-top: -1px;
}

.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),
.btn-group-vertical > .btn-group:not(:last-child) > .btn {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.btn-group-vertical > .btn:not(:first-child),
.btn-group-vertical > .btn-group:not(:first-child) > .btn {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

/* ===== BUTTON GROUP TOGGLE ===== */
.btn-group-toggle > .btn,
.btn-group-toggle > .btn-group > .btn {
    margin-bottom: 0;
}

.btn-group-toggle > .btn input[type="radio"],
.btn-group-toggle > .btn input[type="checkbox"],
.btn-group-toggle > .btn-group > .btn input[type="radio"],
.btn-group-toggle > .btn-group > .btn input[type="checkbox"] {
    position: absolute;
    clip: rect(0, 0, 0, 0);
    pointer-events: none;
}

/* ===== INPUT GROUP ===== */
.input-group {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
}

.input-group > .form-control,
.input-group > .form-control-plaintext,
.input-group > .custom-select,
.input-group > .custom-file {
    position: relative;
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
    margin-bottom: 0;
}

.input-group > .form-control + .form-control,
.input-group > .form-control + .custom-select,
.input-group > .form-control + .custom-file,
.input-group > .form-control-plaintext + .form-control,
.input-group > .form-control-plaintext + .custom-select,
.input-group > .form-control-plaintext + .custom-file,
.input-group > .custom-select + .form-control,
.input-group > .custom-select + .custom-select,
.input-group > .custom-select + .custom-file,
.input-group > .custom-file + .form-control,
.input-group > .custom-file + .custom-select,
.input-group > .custom-file + .custom-file {
    margin-left: -1px;
}

.input-group > .form-control:focus,
.input-group > .custom-select:focus,
.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {
    z-index: 3;
}

.input-group > .custom-file .custom-file-input:focus {
    z-index: 4;
}

.input-group > .form-control:not(:first-child),
.input-group > .custom-select:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.input-group > .custom-file {
    display: flex;
    align-items: center;
}

.input-group > .custom-file:not(:last-child) .custom-file-label,
.input-group > .custom-file:not(:last-child) .custom-file-label::after {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group > .custom-file:not(:first-child) .custom-file-label {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.input-group:not(.has-validation) > .form-control:not(:last-child),
.input-group:not(.has-validation) > .custom-select:not(:last-child),
.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label,
.input-group:not(.has-validation) > .custom-file:not(:last-child) .custom-file-label::after {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group.has-validation > .form-control:nth-last-child(n + 3),
.input-group.has-validation > .custom-select:nth-last-child(n + 3),
.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label,
.input-group.has-validation > .custom-file:nth-last-child(n + 3) .custom-file-label::after {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group-prepend,
.input-group-append {
    display: flex;
}

.input-group-prepend .btn,
.input-group-append .btn {
    position: relative;
    z-index: 2;
}

.input-group-prepend .btn:focus,
.input-group-append .btn:focus {
    z-index: 3;
}

.input-group-prepend .btn + .btn,
.input-group-prepend .btn + .input-group-text,
.input-group-prepend .input-group-text + .btn,
.input-group-prepend .input-group-text + .input-group-text,
.input-group-append .btn + .btn,
.input-group-append .btn + .input-group-text,
.input-group-append .input-group-text + .btn,
.input-group-append .input-group-text + .input-group-text {
    margin-left: -1px;
}

.input-group-prepend {
    margin-right: -1px;
}

.input-group-append {
    margin-left: -1px;
}

.input-group-text {
    display: flex;
    align-items: center;
    padding: 0.5rem 1rem;
    margin-bottom: 0;
    font-size: 0.95rem;
    font-weight: 400;
    line-height: 1.5;
    color: #ffffff;
    text-align: center;
    white-space: nowrap;
    background: rgba(59, 130, 246, 0.1);
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    transition: all 0.3s ease;
}

.input-group-text input[type="radio"],
.input-group-text input[type="checkbox"] {
    margin-top: 0;
    accent-color: rgb(59, 130, 246);
}

/* Input group sizes */
.input-group-lg > .form-control:not(textarea),
.input-group-lg > .custom-select {
    height: 3.2rem;
}

.input-group-lg > .form-control,
.input-group-lg > .custom-select,
.input-group-lg > .input-group-prepend > .btn,
.input-group-lg > .input-group-append > .btn,
.input-group-lg > .input-group-prepend > .input-group-text,
.input-group-lg > .input-group-append > .input-group-text {
    padding: 0.75rem 1.25rem;
    font-size: 1.1rem;
    line-height: 1.5;
    border-radius: 16px;
}

.input-group-sm > .form-control:not(textarea),
.input-group-sm > .custom-select {
    height: 2rem;
}

.input-group-sm > .form-control,
.input-group-sm > .custom-select,
.input-group-sm > .input-group-prepend > .btn,
.input-group-sm > .input-group-append > .btn,
.input-group-sm > .input-group-prepend > .input-group-text,
.input-group-sm > .input-group-append > .input-group-text {
    padding: 0.375rem 0.75rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 8px;
}

.input-group-lg > .custom-select,
.input-group-sm > .custom-select {
    padding-right: 1.75rem;
}

/* Input group border radius fixes */
.input-group > .input-group-prepend > .btn,
.input-group > .input-group-prepend > .input-group-text,
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .btn,
.input-group:not(.has-validation) > .input-group-append:not(:last-child) > .input-group-text,
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .btn,
.input-group.has-validation > .input-group-append:nth-last-child(n + 3) > .input-group-text,
.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),
.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.input-group > .input-group-append > .btn,
.input-group > .input-group-append > .input-group-text,
.input-group > .input-group-prepend:first-child > .btn:not(:first-child),
.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child),
.input-group > .input-group-prepend:not(:first-child) > .btn,
.input-group > .input-group-prepend:not(:first-child) > .input-group-text {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

/* ===== CUSTOM CONTROLS ===== */
.custom-control {
    position: relative;
    z-index: 1;
    display: block;
    min-height: 1.5rem;
    padding-left: 2rem;
    print-color-adjust: exact;
}

.custom-control-inline {
    display: inline-flex;
    margin-right: 1rem;
}

.custom-control-input {
    position: absolute;
    left: 0;
    z-index: -1;
    width: 1.2rem;
    height: 1.35rem;
    opacity: 0;
}

.custom-control-input:checked ~ .custom-control-label::before {
    color: #ffffff;
    border-color: rgb(59, 130, 246);
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
}

.custom-control-input:focus ~ .custom-control-label::before {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {
    border-color: rgb(59, 130, 246);
}

.custom-control-input:not(:disabled):active ~ .custom-control-label::before {
    color: #ffffff;
    background-color: rgba(59, 130, 246, 0.3);
    border-color: rgb(59, 130, 246);
}

.custom-control-input:disabled ~ .custom-control-label,
.custom-control-input[disabled] ~ .custom-control-label {
    color: #64748b;
}

.custom-control-input:disabled ~ .custom-control-label::before,
.custom-control-input[disabled] ~ .custom-control-label::before {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(255, 255, 255, 0.1);
}

.custom-control-label {
    position: relative;
    margin-bottom: 0;
    vertical-align: top;
    color: #cbd5e1;
    cursor: pointer;
}

.custom-control-label::before {
    position: absolute;
    left: -2rem;
    top: 0.15rem;
    display: block;
    width: 1.2rem;
    height: 1.2rem;
    pointer-events: none;
    content: "";
    background: rgba(30, 41, 59, 0.8);
    border: 2px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    transition: all 0.2s ease;
}

.custom-control-label::after {
    position: absolute;
    left: -2rem;
    top: 0.15rem;
    display: block;
    width: 1.2rem;
    height: 1.2rem;
    content: "";
    background: 50% / 50% 50% no-repeat;
}

/* ===== CUSTOM CHECKBOX ===== */
.custom-checkbox .custom-control-label::before {
    border-radius: 6px;
}

.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {
    border-color: rgb(59, 130, 246);
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
}

.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e");
}

.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before,
.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {
    background: rgba(59, 130, 246, 0.3);
}

/* ===== CUSTOM RADIO ===== */
.custom-radio .custom-control-label::before {
    border-radius: 50%;
}

.custom-radio .custom-control-input:checked ~ .custom-control-label::after {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}

.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background: rgba(59, 130, 246, 0.3);
}

/* ===== CUSTOM SWITCH ===== */
.custom-switch {
    padding-left: 3rem;
}

.custom-switch .custom-control-label::before {
    left: -3rem;
    width: 2.2rem;
    pointer-events: all;
    border-radius: 1.2rem;
}

.custom-switch .custom-control-label::after {
    top: calc(0.15rem + 2px);
    left: calc(-3rem + 2px);
    width: calc(1.2rem - 4px);
    height: calc(1.2rem - 4px);
    background: rgba(255, 255, 255, 0.8);
    border-radius: 50%;
    transition: transform 0.2s ease;
}

.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
    transform: translateX(1rem);
    background: #ffffff;
}
















@media (prefers-reduced-motion: reduce) {
    .custom-switch .custom-control-label::after {
        transition: none;
    }
}

/* ===== CUSTOM SWITCH ===== */
.custom-switch .custom-control-input:checked ~ .custom-control-label::after {
    transform: translateX(0.9rem);
    background: #ffffff;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {
    background: rgba(59, 130, 246, 0.3);
    border-color: rgba(59, 130, 246, 0.3);
}

/* ===== CUSTOM SELECT ===== */
.custom-select {
    display: inline-block;
    width: 100%;
    height: 2.5rem;
    padding: 0.5rem 2.5rem 0.5rem 1rem;
    font-size: 0.95rem;
    font-weight: 400;
    line-height: 1.5;
    color: #ffffff;
    vertical-align: middle;
    background: rgba(30, 41, 59, 0.8);
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23cbd5e1' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 16px 12px;
    transition: all 0.3s ease;
}

.custom-select:focus {
    border-color: rgb(59, 130, 246);
    outline: 0;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%233b82f6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}

.custom-select:focus::-ms-value {
    color: #ffffff;
    background: rgba(59, 130, 246, 0.1);
}

.custom-select[multiple],
.custom-select[size]:not([size="1"]) {
    height: auto;
    padding-right: 1rem;
    background-image: none;
}

.custom-select:disabled {
    background: rgba(30, 41, 59, 0.5);
    color: #64748b;
    border-color: rgba(255, 255, 255, 0.05);
    cursor: not-allowed;
}

.custom-select::-ms-expand {
    display: none;
}

.custom-select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #ffffff;
}

/* Select sizes */
.custom-select-sm {
    height: 2rem;
    padding: 0.25rem 2rem 0.25rem 0.75rem;
    font-size: 0.875rem;
    border-radius: 8px;
}

.custom-select-lg {
    height: 3.2rem;
    padding: 0.75rem 3rem 0.75rem 1.25rem;
    font-size: 1.1rem;
    border-radius: 16px;
}

/* ===== CUSTOM FILE ===== */
.custom-file {
    position: relative;
    display: inline-block;
    width: 100%;
    height: 2.5rem;
    margin-bottom: 0;
}

.custom-file-input {
    position: relative;
    z-index: 2;
    width: 100%;
    height: 2.5rem;
    margin: 0;
    opacity: 0;
    overflow: hidden;
}

.custom-file-input:focus ~ .custom-file-label {
    border-color: rgb(59, 130, 246);
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.custom-file-input:disabled ~ .custom-file-label,
.custom-file-input[disabled] ~ .custom-file-label {
    background: rgba(30, 41, 59, 0.5);
    border-color: rgba(255, 255, 255, 0.05);
    color: #64748b;
    cursor: not-allowed;
}

.custom-file-input:lang(en) ~ .custom-file-label::after {
    content: "Browse";
}

.custom-file-input ~ .custom-file-label[data-browse]::after {
    content: attr(data-browse);
}

.custom-file-label {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1;
    height: 2.5rem;
    padding: 0.5rem 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #cbd5e1;
    background: rgba(30, 41, 59, 0.8);
    border: 2px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    transition: all 0.3s ease;
}

.custom-file-label::after {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    display: block;
    height: calc(100% - 4px);
    padding: 0.5rem 1rem;
    line-height: 1.5;
    color: #ffffff;
    content: "Browse";
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border-left: 2px solid rgb(59, 130, 246);
    border-radius: 0 10px 10px 0;
    margin: 2px;
    transition: all 0.3s ease;
}

.custom-file-label:hover::after {
    background: linear-gradient(135deg, rgb(37, 99, 235), rgb(29, 78, 216));
}

/* ===== CUSTOM RANGE ===== */
.custom-range {
    width: 100%;
    height: 1.5rem;
    padding: 0;
    background: transparent;
    appearance: none;
}

.custom-range:focus {
    outline: 0;
}

.custom-range:focus::-webkit-slider-thumb {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.custom-range:focus::-moz-range-thumb {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.custom-range:focus::-ms-thumb {
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.custom-range::-moz-focus-outer {
    border: 0;
}

/* Webkit thumb */
.custom-range::-webkit-slider-thumb {
    width: 1.2rem;
    height: 1.2rem;
    margin-top: -0.5rem;
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    appearance: none;
    transition: all 0.2s ease;
}

.custom-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.4);
}

.custom-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.1);
    border-color: transparent;
    border-radius: 1rem;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Mozilla thumb */
.custom-range::-moz-range-thumb {
    width: 1.2rem;
    height: 1.2rem;
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    appearance: none;
    transition: all 0.2s ease;
}

.custom-range::-moz-range-thumb:hover {
    transform: scale(1.15);
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.4);
}

.custom-range::-moz-range-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.1);
    border-color: transparent;
    border-radius: 1rem;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* MS thumb */
.custom-range::-ms-thumb {
    width: 1.2rem;
    height: 1.2rem;
    margin-top: 0;
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    appearance: none;
    transition: all 0.2s ease;
}

.custom-range::-ms-thumb:hover {
    transform: scale(1.15);
    box-shadow: 0 0 15px rgba(59, 130, 246, 0.4);
}

.custom-range::-ms-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background: transparent;
    border-color: transparent;
    border-width: 0.5rem;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
}

.custom-range::-ms-fill-lower {
    background: rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
}

.custom-range::-ms-fill-upper {
    margin-right: 15px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 1rem;
}

/* Disabled state */
.custom-range:disabled::-webkit-slider-thumb {
    background: #64748b;
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
}

.custom-range:disabled::-webkit-slider-runnable-track {
    cursor: not-allowed;
    opacity: 0.5;
}

.custom-range:disabled::-moz-range-thumb {
    background: #64748b;
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
}

.custom-range:disabled::-moz-range-track {
    cursor: not-allowed;
    opacity: 0.5;
}

.custom-range:disabled::-ms-thumb {
    background: #64748b;
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
}










@media (prefers-reduced-motion: reduce) {
    .custom-range::-webkit-slider-thumb {
        transition: none;
    }
    .custom-range::-moz-range-thumb {
        transition: none;
    }
    .custom-range::-ms-thumb {
        transition: none;
    }
    .custom-control-label::before,
    .custom-file-label,
    .custom-select {
        transition: none;
    }
}

/* ===== CUSTOM RANGE WEBKIT ===== */
.custom-range::-webkit-slider-thumb {
    width: 1.2rem;
    height: 1.2rem;
    margin-top: -0.35rem;
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2), 0 0 0 0 rgba(59, 130, 246, 0.3);
    appearance: none;
    transition: all 0.2s ease;
}

.custom-range::-webkit-slider-thumb:hover {
    transform: scale(1.15);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4), 0 0 0 4px rgba(59, 130, 246, 0.1);
}

.custom-range::-webkit-slider-thumb:active {
    transform: scale(1.05);
    background: linear-gradient(135deg, rgb(37, 99, 235), rgb(29, 78, 216));
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.5);
}

.custom-range::-webkit-slider-runnable-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background: linear-gradient(90deg, #334155, #475569);
    border-radius: 1rem;
    box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ===== CUSTOM RANGE MOZILLA ===== */
.custom-range::-moz-range-thumb {
    width: 1.2rem;
    height: 1.2rem;
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    appearance: none;
    transition: all 0.2s ease;
}

.custom-range::-moz-range-thumb:hover {
    transform: scale(1.15);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

.custom-range::-moz-range-thumb:active {
    transform: scale(1.05);
    background: linear-gradient(135deg, rgb(37, 99, 235), rgb(29, 78, 216));
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.5);
}

.custom-range::-moz-range-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background: linear-gradient(90deg, #334155, #475569);
    border-radius: 1rem;
    box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ===== CUSTOM RANGE MS ===== */
.custom-range::-ms-thumb {
    width: 1.2rem;
    height: 1.2rem;
    margin-top: 0;
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    border: 2px solid #ffffff;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    appearance: none;
    transition: all 0.2s ease;
}

.custom-range::-ms-thumb:hover {
    transform: scale(1.15);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

.custom-range::-ms-thumb:active {
    transform: scale(1.05);
    background: linear-gradient(135deg, rgb(37, 99, 235), rgb(29, 78, 216));
    box-shadow: 0 2px 8px rgba(59, 130, 246, 0.5);
}

.custom-range::-ms-track {
    width: 100%;
    height: 0.5rem;
    color: transparent;
    cursor: pointer;
    background: transparent;
    border-color: transparent;
    border-width: 0.5rem;
    box-shadow: inset 0 1px 4px rgba(0, 0, 0, 0.3);
}

.custom-range::-ms-fill-lower {
    background: linear-gradient(90deg, #334155, #3b82f6);
    border-radius: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

.custom-range::-ms-fill-upper {
    margin-right: 15px;
    background: linear-gradient(90deg, #475569, #64748b);
    border-radius: 1rem;
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* ===== DISABLED STATE ===== */
.custom-range:disabled::-webkit-slider-thumb {
    background: linear-gradient(135deg, #64748b, #475569);
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
    border-color: #94a3b8;
}

.custom-range:disabled::-webkit-slider-runnable-track {
    cursor: not-allowed;
    opacity: 0.5;
    background: #334155;
}

.custom-range:disabled::-moz-range-thumb {
    background: linear-gradient(135deg, #64748b, #475569);
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
    border-color: #94a3b8;
}

.custom-range:disabled::-moz-range-track {
    cursor: not-allowed;
    opacity: 0.5;
    background: #334155;
}

.custom-range:disabled::-ms-thumb {
    background: linear-gradient(135deg, #64748b, #475569);
    transform: none;
    box-shadow: none;
    cursor: not-allowed;
    border-color: #94a3b8;
}

.custom-range:disabled::-ms-fill-lower,
.custom-range:disabled::-ms-fill-upper {
    background: #334155;
    opacity: 0.5;
}

/* ===== CUSTOM CONTROL LABEL ===== */
.custom-control-label::before {
    transition: all 0.2s ease;
}

.custom-control-label:hover::before {
    border-color: rgb(59, 130, 246);
    box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1);
}

/* ===== CUSTOM FILE LABEL ===== */
.custom-file-label {
    transition: all 0.3s ease;
}

.custom-file-label:hover {
    border-color: rgb(59, 130, 246);
    background: rgba(30, 41, 59, 0.9);
}

/* ===== CUSTOM SELECT ===== */
.custom-select {
    transition: all 0.3s ease;
}

.custom-select:hover {
    border-color: rgb(59, 130, 246);
    background: rgba(30, 41, 59, 0.9);
}

/* ===== ДОПОЛНИТЕЛЬНЫЕ СТИЛИ ДЛЯ RANGE ===== */

/* Range с градиентом заполнения */
.custom-range-gradient {
    position: relative;
}

.custom-range-gradient::-webkit-slider-runnable-track {
    background: linear-gradient(90deg, rgb(59, 130, 246) var(--value, 0%), #475569 var(--value, 0%));
}

.custom-range-gradient::-moz-range-track {
    background: linear-gradient(90deg, rgb(59, 130, 246) var(--value, 0%), #475569 var(--value, 0%));
}

.custom-range-gradient::-ms-fill-lower {
    background: rgb(59, 130, 246);
}

.custom-range-gradient::-ms-fill-upper {
    background: #475569;
}

/* Range с метками */
.custom-range-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    color: #94a3b8;
    font-size: 0.875rem;
}

.custom-range-labels span {
    position: relative;
    cursor: pointer;
    transition: color 0.2s ease;
}

.custom-range-labels span:hover {
    color: rgb(59, 130, 246);
}

.custom-range-labels span.active {
    color: rgb(59, 130, 246);
    font-weight: 600;
}

/* Range с tooltip */
.custom-range-tooltip {
    position: relative;
}

.custom-range-tooltip .range-value {
    position: absolute;
    top: -2rem;
    left: var(--thumb-position, 0%);
    transform: translateX(-50%);
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
    color: white;
    padding: 0.25rem 0.5rem;
    border-radius: 6px;
    font-size: 0.875rem;
    white-space: nowrap;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
    pointer-events: none;
    transition: left 0.1s ease;
}

.custom-range-tooltip .range-value::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid rgb(37, 99, 235);
}

/* Range с разными цветами */
.custom-range-primary::-webkit-slider-thumb {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
}

.custom-range-primary::-moz-range-thumb {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
}

.custom-range-primary::-ms-thumb {
    background: linear-gradient(135deg, rgb(59, 130, 246), rgb(37, 99, 235));
}

.custom-range-success::-webkit-slider-thumb {
    background: linear-gradient(135deg, #10b981, #059669);
}

.custom-range-success::-moz-range-thumb {
    background: linear-gradient(135deg, #10b981, #059669);
}

.custom-range-success::-ms-thumb {
    background: linear-gradient(135deg, #10b981, #059669);
}

.custom-range-danger::-webkit-slider-thumb {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
}

.custom-range-danger::-moz-range-thumb {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
}

.custom-range-danger::-ms-thumb {
    background: linear-gradient(135deg, #f43f5e, #e11d48);
}

.custom-range-warning::-webkit-slider-thumb {
    background: linear-gradient(135deg, #f59e0b, #d97706);
}

.custom-range-warning::-moz-range-thumb {
    background: linear-gradient(135deg, #f59e0b, #d97706);
}

.custom-range-warning::-ms-thumb {
    background: linear-gradient(135deg, #f59e0b, #d97706);
}

/* Размеры range */
.custom-range-lg {
    height: 2rem;
}

.custom-range-lg::-webkit-slider-thumb {
    width: 1.5rem;
    height: 1.5rem;
    margin-top: -0.5rem;
}

.custom-range-lg::-webkit-slider-runnable-track {
    height: 0.6rem;
}

.custom-range-lg::-moz-range-thumb {
    width: 1.5rem;
    height: 1.5rem;
}

.custom-range-lg::-moz-range-track {
    height: 0.6rem;
}

.custom-range-lg::-ms-thumb {
    width: 1.5rem;
    height: 1.5rem;
}

.custom-range-sm {
    height: 1.2rem;
}

.custom-range-sm::-webkit-slider-thumb {
    width: 0.9rem;
    height: 0.9rem;
    margin-top: -0.25rem;
}

.custom-range-sm::-webkit-slider-runnable-track {
    height: 0.4rem;
}

.custom-range-sm::-moz-range-thumb {
    width: 0.9rem;
    height: 0.9rem;
}

.custom-range-sm::-moz-range-track {
    height: 0.4rem;
}

.custom-range-sm::-ms-thumb {
    width: 0.9rem;
    height: 0.9rem;
}












@media (prefers-reduced-motion: reduce) {
    .custom-control-label::before,
    .custom-file-label,
    .custom-select {
        transition: none;
    }
}

.nav {
    display: flex;
    flex-wrap: wrap;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

.nav-link {
    display: block;
    padding: 0.5rem 1rem;
    color: #cbd5e1;
    transition: color 0.3s ease, background-color 0.3s ease;
}

.nav-link:hover,
.nav-link:focus {
    color: #ffffff;
    text-decoration: none;
    background-color: rgba(59, 130, 246, 0.1);
}

.nav-link.disabled {
    color: #64748b;
    cursor: default;
    pointer-events: none;
}

.nav-tabs {
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.nav-tabs .nav-link {
    background-color: transparent;
    border: 1px solid transparent;
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    margin-bottom: -1px;
    transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus {
    border-color: rgba(59, 130, 246, 0.3) rgba(59, 130, 246, 0.3) transparent;
    isolation: isolate;
    background-color: rgba(59, 130, 246, 0.05);
}

.nav-tabs .nav-link.disabled {
    background-color: transparent;
    border-color: transparent;
    color: #64748b;
}

.nav-tabs .nav-item.show .nav-link,
.nav-tabs .nav-link.active {
    background-color: #1e293b;
    border-color: rgb(59, 130, 246) rgb(59, 130, 246) transparent;
    color: #ffffff;
}

.nav-tabs .dropdown-menu {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    margin-top: -1px;
}

.nav-pills .nav-link {
    background: none;
    border: 0;
    border-radius: 4px;
    transition: color 0.3s ease, background-color 0.3s ease, box-shadow 0.3s ease;
}

.nav-pills .nav-link:hover {
    background-color: rgba(59, 130, 246, 0.1);
}

.nav-pills .nav-link.active,
.nav-pills .show > .nav-link {
    background-color: rgb(59, 130, 246);
    color: #ffffff;
    box-shadow: 0 4px 10px rgba(59, 130, 246, 0.3);
}

.nav-fill .nav-item,
.nav-fill > .nav-link {
    flex: 1 1 auto;
    text-align: center;
}

.nav-justified .nav-item,
.nav-justified > .nav-link {
    flex-basis: 0;
    flex-grow: 1;
    text-align: center;
}

.tab-content > .tab-pane {
    display: none;
}

.tab-content > .active {
    display: block;
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.navbar {
    padding: 0.5rem 1rem;
    position: relative;
    background-color: rgba(15, 23, 42, 0.9);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.navbar .container,
.navbar .container-fluid,
.navbar .container-sm,
.navbar .container-md,
.navbar .container-lg,
.navbar .container-xl {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
}

.navbar-brand {
    display: inline-block;
    padding-top: 0.32rem;
    padding-bottom: 0.32rem;
    margin-right: 1rem;
    font-size: 1.125rem;
    line-height: inherit;
    white-space: nowrap;
    color: #ffffff;
    transition: color 0.3s ease;
}

.navbar-brand:hover,
.navbar-brand:focus {
    color: rgb(59, 130, 246);
    text-decoration: none;
}

.navbar-nav {
    display: flex;
    flex-direction: column;
    padding-left: 0;
    margin-bottom: 0;
    list-style: none;
}

.navbar-nav .nav-link {
    padding-left: 0;
    padding-right: 0;
    color: #cbd5e1;
    transition: color 0.3s ease;
}

.navbar-nav .nav-link:hover {
    color: #ffffff;
}

.navbar-nav .nav-link.active {
    color: rgb(59, 130, 246);
}

.navbar-nav .dropdown-menu {
    position: static;
    float: none;
}

.navbar-text {
    display: inline-block;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    color: #cbd5e1;
}

.navbar-collapse {
    flex-basis: 100%;
    flex-grow: 1;
    align-items: center;
}

.navbar-toggler {
    padding: 0.25rem 0.75rem;
    font-size: 1.125rem;
    line-height: 1;
    background-color: transparent;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 4px;
    transition: border-color 0.3s ease, background-color 0.3s ease;
}

.navbar-toggler:hover,
.navbar-toggler:focus {
    text-decoration: none;
    border-color: rgb(59, 130, 246);
    background-color: rgba(59, 130, 246, 0.1);
}

.navbar-toggler-icon {
    display: inline-block;
    width: 1.5em;
    height: 1.5em;
    vertical-align: middle;
    content: "";
    background: no-repeat center center;
    background-size: 100% 100%;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.8)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-toggler:hover .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgb(59, 130, 246)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.navbar-nav-scroll {
    max-height: 75vh;
    overflow-y: auto;
}

@media (max-width: 575.98px) {
    .navbar-expand-sm > .container,
    .navbar-expand-sm > .container-fluid,
    .navbar-expand-sm > .container-lg,
    .navbar-expand-sm > .container-md,
    .navbar-expand-sm > .container-sm,
    .navbar-expand-sm > .container-xl {
        padding-left: 0;
        padding-right: 0;
    }
}

/* Анимация для dropdown-menu */
.dropdown-menu {
    animation: dropdownFade 0.2s ease;
}

@keyframes dropdownFade {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}



















@media (min-width: 576px) {
    .navbar-expand-sm {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }
    
    .navbar-expand-sm .navbar-nav {
        flex-direction: row;
    }
    
    .navbar-expand-sm .navbar-nav .dropdown-menu {
        position: absolute;
        animation: dropdownSlide 0.2s ease;
    }
    
    .navbar-expand-sm .navbar-nav .nav-link {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        transition: all 0.3s ease;
        position: relative;
    }
    
    .navbar-expand-sm .navbar-nav .nav-link::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        right: 50%;
        height: 2px;
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
        transition: all 0.3s ease;
        opacity: 0;
        border-radius: 2px;
    }
    
    .navbar-expand-sm .navbar-nav .nav-link:hover::after {
        left: 25%;
        right: 25%;
        opacity: 0.5;
    }
    
    .navbar-expand-sm .navbar-nav .nav-link.active {
        color: rgb(59, 130, 246);
    }
    
    .navbar-expand-sm .navbar-nav .nav-link.active::after {
        left: 0;
        right: 0;
        opacity: 1;
    }
    
    .navbar-expand-sm > .container,
    .navbar-expand-sm > .container-fluid,
    .navbar-expand-sm > .container-sm,
    .navbar-expand-sm > .container-md,
    .navbar-expand-sm > .container-lg,
    .navbar-expand-sm > .container-xl {
        flex-wrap: nowrap;
    }
    
    .navbar-expand-sm .navbar-nav-scroll {
        overflow: visible;
    }
    
    .navbar-expand-sm .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
        transition: all 0.3s ease;
    }
    
    .navbar-expand-sm .navbar-toggler {
        display: none;
    }
}

@keyframes dropdownSlide {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (max-width: 767.98px) {
    .navbar-expand-md > .container,
    .navbar-expand-md > .container-fluid,
    .navbar-expand-md > .container-lg,
    .navbar-expand-md > .container-md,
    .navbar-expand-md > .container-sm,
    .navbar-expand-md > .container-xl {
        padding-left: 0;
        padding-right: 0;
        transition: padding 0.3s ease;
    }
}

/* Дополнительные анимации для navbar */
.navbar {
    transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

.navbar-brand {
    transition: color 0.3s ease, transform 0.3s ease;
}

.navbar-brand:hover {
    transform: translateY(-1px);
}

.navbar-toggler {
    transition: all 0.3s ease;
}

.navbar-toggler:active {
    transform: scale(0.95);
}





@media (min-width: 768px) {
    .navbar-expand-md {
        flex-flow: row nowrap;
        justify-content: flex-start;
    }
    
    .navbar-expand-md .navbar-nav {
        flex-direction: row;
    }
    
    .navbar-expand-md .navbar-nav .dropdown-menu {
        position: absolute;
        animation: dropdownSlide 0.2s ease;
    }
    
    .navbar-expand-md .navbar-nav .nav-link {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        transition: all 0.3s ease;
        position: relative;
    }
    
    .navbar-expand-md .navbar-nav .nav-link::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        right: 50%;
        height: 2px;
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
        transition: all 0.3s ease;
        opacity: 0;
        border-radius: 2px;
    }
    
    .navbar-expand-md .navbar-nav .nav-link:hover {
        color: #ffffff;
    }
    
    .navbar-expand-md .navbar-nav .nav-link:hover::after {
        left: 25%;
        right: 25%;
        opacity: 0.5;
    }
    
    .navbar-expand-md .navbar-nav .nav-link.active {
        color: rgb(59, 130, 246);
        font-weight: 500;
    }
    
    .navbar-expand-md .navbar-nav .nav-link.active::after {
        left: 0;
        right: 0;
        opacity: 1;
    }
    
    .navbar-expand-md > .container,
    .navbar-expand-md > .container-fluid,
    .navbar-expand-md > .container-sm,
    .navbar-expand-md > .container-md,
    .navbar-expand-md > .container-lg,
    .navbar-expand-md > .container-xl {
        flex-wrap: nowrap;
    }
    
    .navbar-expand-md .navbar-nav-scroll {
        overflow: visible;
    }
    
    .navbar-expand-md .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
        animation: navbarFade 0.3s ease;
    }
    
    .navbar-expand-md .navbar-toggler {
        display: none;
    }
}

@keyframes dropdownSlide {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes navbarFade {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

/* Анимация пульсации для активных элементов */
.navbar-expand-md .navbar-nav .nav-link.active {
    animation: navPulse 2s infinite;
}

@keyframes navPulse {
    0% {
        text-shadow: 0 0 0 rgba(59, 130, 246, 0);
    }
    50% {
        text-shadow: 0 0 8px rgba(59, 130, 246, 0.4);
    }
    100% {
        text-shadow: 0 0 0 rgba(59, 130, 246, 0);
    }
}



@media (max-width: 991.98px) {
    .navbar-expand-lg > .container,
    .navbar-expand-lg > .container-fluid,
    .navbar-expand-lg > .container-lg,
    .navbar-expand-lg > .container-md,
    .navbar-expand-lg > .container-sm,
    .navbar-expand-lg > .container-xl {
        padding-left: 0;
        padding-right: 0;
        transition: padding 0.3s ease;
    }
}

@media (min-width: 992px) {
    .navbar-expand-lg {
        flex-flow: row nowrap;
        justify-content: flex-start;
        transition: all 0.3s ease;
    }
    
    .navbar-expand-lg .navbar-nav {
        flex-direction: row;
        gap: 0.25rem;
    }
    
    .navbar-expand-lg .navbar-nav .dropdown-menu {
        position: absolute;
        animation: dropdownSlide 0.2s ease;
    }
    
    .navbar-expand-lg .navbar-nav .nav-link {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        transition: all 0.3s ease;
        position: relative;
        border-radius: 4px;
    }
    
    .navbar-expand-lg .navbar-nav .nav-link::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        right: 50%;
        height: 2px;
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
        transition: all 0.3s ease;
        opacity: 0;
        border-radius: 2px;
    }
    
    .navbar-expand-lg .navbar-nav .nav-link:hover {
        color: #ffffff;
        background: rgba(59, 130, 246, 0.1);
    }
    
    .navbar-expand-lg .navbar-nav .nav-link:hover::after {
        left: 25%;
        right: 25%;
        opacity: 0.5;
    }
    
    .navbar-expand-lg .navbar-nav .nav-link.active {
        color: rgb(59, 130, 246);
        font-weight: 500;
    }
    
    .navbar-expand-lg .navbar-nav .nav-link.active::after {
        left: 0;
        right: 0;
        opacity: 1;
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6, #ec4899);
    }
    
    .navbar-expand-lg .navbar-nav .nav-link.active {
        animation: navGlow 2s infinite;
    }
    
    .navbar-expand-lg > .container,
    .navbar-expand-lg > .container-fluid,
    .navbar-expand-lg > .container-sm,
    .navbar-expand-lg > .container-md,
    .navbar-expand-lg > .container-lg,
    .navbar-expand-lg > .container-xl {
        flex-wrap: nowrap;
    }
    
    .navbar-expand-lg .navbar-nav-scroll {
        overflow: visible;
    }
    
    .navbar-expand-lg .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
        animation: navbarSlide 0.3s ease;
    }
    
    .navbar-expand-lg .navbar-toggler {
        display: none;
    }
}

@keyframes dropdownSlide {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes navbarSlide {
    from {
        opacity: 0;
        transform: translateX(-10px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

@keyframes navGlow {
    0% {
        text-shadow: 0 0 0 rgba(59, 130, 246, 0);
    }
    50% {
        text-shadow: 0 0 10px rgba(59, 130, 246, 0.5);
    }
    100% {
        text-shadow: 0 0 0 rgba(59, 130, 246, 0);
    }
}

/* Стили для скролла */
.navbar-nav-scroll {
    scrollbar-width: thin;
    scrollbar-color: rgb(59, 130, 246) rgba(255, 255, 255, 0.05);
}

.navbar-nav-scroll::-webkit-scrollbar {
    width: 4px;
    height: 4px;
}

.navbar-nav-scroll::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, 0.05);
    border-radius: 4px;
}

.navbar-nav-scroll::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, rgb(59, 130, 246), #8b5cf6);
    border-radius: 4px;
}

.navbar-nav-scroll::-webkit-scrollbar-thumb:hover {
    background: linear-gradient(135deg, rgb(37, 99, 235), #7c3aed);
}





@media (max-width: 1199.98px) {
    .navbar-expand-xl > .container,
    .navbar-expand-xl > .container-fluid,
    .navbar-expand-xl > .container-lg,
    .navbar-expand-xl > .container-md,
    .navbar-expand-xl > .container-sm,
    .navbar-expand-xl > .container-xl {
        padding-left: 0;
        padding-right: 0;
        transition: padding 0.3s ease;
    }
}

@media (min-width: 1200px) {
    .navbar-expand-xl {
        flex-flow: row nowrap;
        justify-content: flex-start;
        transition: all 0.3s ease;
    }
    
    .navbar-expand-xl .navbar-nav {
        flex-direction: row;
        gap: 0.25rem;
    }
    
    .navbar-expand-xl .navbar-nav .dropdown-menu {
        position: absolute;
        animation: dropdownSlide 0.2s ease;
    }
    
    .navbar-expand-xl .navbar-nav .nav-link {
        padding-left: 0.5rem;
        padding-right: 0.5rem;
        transition: all 0.3s ease;
        position: relative;
        border-radius: 4px;
    }
    
    .navbar-expand-xl .navbar-nav .nav-link::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        right: 50%;
        height: 2px;
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
        transition: all 0.3s ease;
        opacity: 0;
        border-radius: 2px;
    }
    
    .navbar-expand-xl .navbar-nav .nav-link:hover {
        color: #ffffff;
        background: rgba(59, 130, 246, 0.1);
    }
    
    .navbar-expand-xl .navbar-nav .nav-link:hover::after {
        left: 25%;
        right: 25%;
        opacity: 0.5;
    }
    
    .navbar-expand-xl .navbar-nav .nav-link.active {
        color: rgb(59, 130, 246);
        font-weight: 500;
    }
    
    .navbar-expand-xl .navbar-nav .nav-link.active::after {
        left: 0;
        right: 0;
        opacity: 1;
        background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6, #ec4899);
    }
    
    .navbar-expand-xl > .container,
    .navbar-expand-xl > .container-fluid,
    .navbar-expand-xl > .container-sm,
    .navbar-expand-xl > .container-md,
    .navbar-expand-xl > .container-lg,
    .navbar-expand-xl > .container-xl {
        flex-wrap: nowrap;
    }
    
    .navbar-expand-xl .navbar-nav-scroll {
        overflow: visible;
    }
    
    .navbar-expand-xl .navbar-collapse {
        display: flex !important;
        flex-basis: auto;
        animation: navbarSlide 0.3s ease;
    }
    
    .navbar-expand-xl .navbar-toggler {
        display: none;
    }
}

.navbar-expand {
    flex-flow: row nowrap;
    justify-content: flex-start;
}

.navbar-expand > .container,
.navbar-expand > .container-fluid,
.navbar-expand > .container-lg,
.navbar-expand > .container-md,
.navbar-expand > .container-sm,
.navbar-expand > .container-xl {
    padding-left: 0;
    padding-right: 0;
}

.navbar-expand .navbar-nav {
    flex-direction: row;
}

.navbar-expand .navbar-nav .dropdown-menu {
    position: absolute;
    animation: dropdownSlide 0.2s ease;
}

.navbar-expand .navbar-nav .nav-link {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    transition: all 0.3s ease;
    position: relative;
}

.navbar-expand .navbar-nav .nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    right: 50%;
    height: 2px;
    background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
    transition: all 0.3s ease;
    opacity: 0;
    border-radius: 2px;
}

.navbar-expand .navbar-nav .nav-link:hover::after {
    left: 25%;
    right: 25%;
    opacity: 0.5;
}

.navbar-expand .navbar-nav .nav-link.active::after {
    left: 0;
    right: 0;
    opacity: 1;
}

.navbar-expand > .container,
.navbar-expand > .container-fluid,
.navbar-expand > .container-lg,
.navbar-expand > .container-md,
.navbar-expand > .container-sm,
.navbar-expand > .container-xl {
    flex-wrap: nowrap;
}

.navbar-expand .navbar-nav-scroll {
    overflow: visible;
}

.navbar-expand .navbar-collapse {
    display: flex !important;
    flex-basis: auto;
}

.navbar-expand .navbar-toggler {
    display: none;
}

/* ===== LIGHT NAVBAR ===== */
.navbar-light .navbar-brand,
.navbar-light .navbar-brand:focus,
.navbar-light .navbar-brand:hover {
    color: #222;
    transition: color 0.3s ease;
}

.navbar-light .navbar-nav .nav-link {
    color: rgba(34, 34, 34, 0.7);
    transition: all 0.3s ease;
    position: relative;
}

.navbar-light .navbar-nav .nav-link:hover,
.navbar-light .navbar-nav .nav-link:focus {
    color: #222;
    background: rgba(59, 130, 246, 0.05);
}

.navbar-light .navbar-nav .nav-link::after {
    background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
}

.navbar-light .navbar-nav .nav-link.disabled {
    color: rgba(0, 0, 0, 0.3);
}

.navbar-light .navbar-nav .active > .nav-link,
.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .nav-link.show,
.navbar-light .navbar-nav .show > .nav-link {
    color: rgb(59, 130, 246);
    font-weight: 500;
}

.navbar-light .navbar-toggler {
    border-color: rgba(34, 34, 34, 0.1);
    color: rgba(34, 34, 34, 0.7);
    transition: all 0.3s ease;
}

.navbar-light .navbar-toggler:hover {
    border-color: rgb(59, 130, 246);
    background: rgba(59, 130, 246, 0.05);
}

.navbar-light .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(34, 34, 34, 0.7)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
    transition: all 0.3s ease;
}

.navbar-light .navbar-toggler:hover .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgb(59, 130, 246)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

.navbar-light .navbar-text {
    color: rgba(34, 34, 34, 0.7);
}

.navbar-light .navbar-text a,
.navbar-light .navbar-text a:focus,
.navbar-light .navbar-text a:hover {
    color: #222;
}

/* ===== DARK NAVBAR ===== */
.navbar-dark .navbar-brand,
.navbar-dark .navbar-brand:focus,
.navbar-dark .navbar-brand:hover {
    color: #fff;
    transition: color 0.3s ease;
    background: linear-gradient(135deg, #fff, rgb(59, 130, 246));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.navbar-dark .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.6);
    transition: all 0.3s ease;
    position: relative;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
    color: #fff;
    background: rgba(59, 130, 246, 0.1);
}

.navbar-dark .navbar-nav .nav-link::after {
    background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
}

.navbar-dark .navbar-nav .nav-link.disabled {
    color: rgba(255, 255, 255, 0.25);
}

.navbar-dark .navbar-nav .active > .nav-link,
.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .nav-link.show,
.navbar-dark .navbar-nav .show > .nav-link {
    color: rgb(59, 130, 246);
    font-weight: 500;
}

.navbar-dark .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.1);
    color: rgba(255, 255, 255, 0.6);
    transition: all 0.3s ease;
}

.navbar-dark .navbar-toggler:hover {
    border-color: rgb(59, 130, 246);
    background: rgba(59, 130, 246, 0.1);
}

.navbar-dark .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgba(255, 255, 255, 0.6)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
    transition: all 0.3s ease;
}

.navbar-dark .navbar-toggler:hover .navbar-toggler-icon {
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30'%3E%3Cpath stroke='rgb(59, 130, 246)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
}

.navbar-dark .navbar-text {
    color: rgba(255, 255, 255, 0.6);
}

.navbar-dark .navbar-text a,
.navbar-dark .navbar-text a:focus,
.navbar-dark .navbar-text a:hover {
    color: #fff;
}

/* ===== КАРТОЧКИ ===== */
.card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    word-wrap: break-word;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    background-clip: border-box;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 20px;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
}

.card:hover {

    box-shadow: 0 12px 30px rgba(59, 130, 246, 0.2);
    border-color: rgba(59, 130, 246, 0.3);
}

.card > hr {
    margin-left: 0;
    margin-right: 0;
    background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.3), transparent);
    height: 1px;
    border: none;
}

.card > .list-group {
    border-top: inherit;
    border-bottom: inherit;
}

.card > .list-group:first-child {
    border-top-width: 0;
    border-top-left-radius: 19px;
    border-top-right-radius: 19px;
}

.card > .list-group:last-child {
    border-bottom-width: 0;
    border-bottom-left-radius: 19px;
    border-bottom-right-radius: 19px;
}

.card > .card-header + .list-group,
.card > .list-group + .card-footer {
    border-top: 0;
}

.card-body {
    flex: 1 1 auto;
    color: #cbd5e1;
}

.card-title {
    margin-bottom: 0.75rem;
    color: #ffffff;
    font-weight: 600;
}



.card-subtitle {
    margin-top: -0.375rem;
    margin-bottom: 0;
    color: #94a3b8;
}

.card-text:last-child {
    margin-bottom: 0;
}

.card-text {
    color: #cbd5e1;
}

.card-link:hover {
    text-decoration: none;
    color: rgb(59, 130, 246);
}

.card-link + .card-link {
    margin-left: 1.25rem;
}

.card-header {
    padding: 0.5rem 0.8rem;
    margin-bottom: 0;
    background: rgba(59, 130, 246, 0.1);
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    color: #ffffff;
    font-weight: 600;
    border-top-left-radius: 19px;
    border-top-right-radius: 19px;
}

.card-header:first-child {
    border-radius: 19px 19px 0 0;
}

.card-footer {
    padding: 0.8rem 1rem;
    background: rgba(59, 130, 246, 0.05);
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    color: #cbd5e1;
    border-bottom-left-radius: 19px;
    border-bottom-right-radius: 19px;
}

.card-footer:last-child {
    border-radius: 0 0 19px 19px;
}

.card-header-tabs {
    margin-right: -0.625rem;
    margin-bottom: -1rem;
    margin-left: -0.625rem;
    border-bottom: 0;
}

.card-header-pills {
    margin-right: -0.625rem;
    margin-left: -0.625rem;
}

.card-img-overlay {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 1.5rem;
    border-radius: 19px;
    background: linear-gradient(135deg, rgba(15, 23, 42, 0.8), rgba(30, 41, 59, 0.8));
    backdrop-filter: blur(5px);
}

.card-img,
.card-img-top,
.card-img-bottom {
    flex-shrink: 0;
    width: 100%;
    transition: all 0.3s ease;
}

.card-img,
.card-img-top {
    border-top-left-radius: 19px;
    border-top-right-radius: 19px;
}

.card-img,
.card-img-bottom {
    border-bottom-left-radius: 19px;
    border-bottom-right-radius: 19px;
}

.card-img:hover {
    transform: scale(1.02);
}

.card-deck .card {
    margin-bottom: 15px;
    animation: cardFade 0.5s ease;
}

@keyframes cardFade {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Анимации для карточек */
.card {
    animation: cardAppear 0.5s ease;
}

@keyframes cardAppear {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Задержки для card-deck */
.card-deck .card:nth-child(1) { animation-delay: 0.1s; }
.card-deck .card:nth-child(2) { animation-delay: 0.2s; }
.card-deck .card:nth-child(3) { animation-delay: 0.3s; }
.card-deck .card:nth-child(4) { animation-delay: 0.4s; }
.card-deck .card:nth-child(5) { animation-delay: 0.5s; }
.card-deck .card:nth-child(6) { animation-delay: 0.6s; }













@media (min-width: 576px) {
    .card-deck {
        display: flex;
        flex-flow: row wrap;
        margin-left: -15px;
        margin-right: -15px;
        gap: 1rem;
    }
    
    .card-deck .card {
        flex: 1 0 0%;
        margin-bottom: 0;
        margin-left: 15px;
        margin-right: 15px;
        transition: all 0.3s ease;
        animation: cardDeckAppear 0.5s ease;
    }
    
    .card-deck .card:hover {
        transform: translateY(-8px) scale(1.02);
        z-index: 10;
    }
}

@keyframes cardDeckAppear {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Задержки для card-deck */
.card-deck .card:nth-child(1) { animation-delay: 0.1s; }
.card-deck .card:nth-child(2) { animation-delay: 0.2s; }
.card-deck .card:nth-child(3) { animation-delay: 0.3s; }
.card-deck .card:nth-child(4) { animation-delay: 0.4s; }
.card-deck .card:nth-child(5) { animation-delay: 0.5s; }
.card-deck .card:nth-child(6) { animation-delay: 0.6s; }

.card-group > .card {
    margin-bottom: 15px;
    transition: all 0.3s ease;
}

@media (min-width: 576px) {
    .card-group {
        display: flex;
        flex-flow: row wrap;
        gap: 1px;
    }
    
    .card-group > .card {
        flex: 1 0 0%;
        margin-bottom: 0;
        transition: all 0.3s ease;
        position: relative;
    }
    
    .card-group > .card + .card {
        border-left: 0;
        margin-left: 0;
    }
    
    .card-group > .card:not(:last-child) {
        border-bottom-right-radius: 0;
        border-top-right-radius: 0;
    }
    
    .card-group > .card:not(:last-child) .card-header,
    .card-group > .card:not(:last-child) .card-img-top {
        border-top-right-radius: 0;
    }
    
    .card-group > .card:not(:last-child) .card-footer,
    .card-group > .card:not(:last-child) .card-img-bottom {
        border-bottom-right-radius: 0;
    }
    
    .card-group > .card:not(:first-child) {
        border-bottom-left-radius: 0;
        border-top-left-radius: 0;
    }
    
    .card-group > .card:not(:first-child) .card-header,
    .card-group > .card:not(:first-child) .card-img-top {
        border-top-left-radius: 0;
    }
    
    .card-group > .card:not(:first-child) .card-footer,
    .card-group > .card:not(:first-child) .card-img-bottom {
        border-bottom-left-radius: 0;
    }
    
    .card-group > .card:hover {
        transform: translateY(-5px);
        z-index: 5;
        box-shadow: 0 15px 30px rgba(59, 130, 246, 0.3);
    }
    
    .card-group > .card:hover + .card {
        border-left-color: rgb(59, 130, 246);
    }
}

.card-columns {
    column-gap: 1.5rem;
    orphans: 1;
    widows: 1;
}

.card-columns .card {
    display: inline-block;
    width: 100%;
    margin-bottom: 1rem;
    transition: all 0.3s ease;
    animation: cardColumnAppear 0.5s ease;
    break-inside: avoid;
}

.card-columns .card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 30px rgba(59, 130, 246, 0.2);
}

@keyframes cardColumnAppear {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Задержки для card-columns */
.card-columns .card:nth-child(1) { animation-delay: 0.1s; }
.card-columns .card:nth-child(2) { animation-delay: 0.15s; }
.card-columns .card:nth-child(3) { animation-delay: 0.2s; }
.card-columns .card:nth-child(4) { animation-delay: 0.25s; }
.card-columns .card:nth-child(5) { animation-delay: 0.3s; }
.card-columns .card:nth-child(6) { animation-delay: 0.35s; }
.card-columns .card:nth-child(7) { animation-delay: 0.4s; }
.card-columns .card:nth-child(8) { animation-delay: 0.45s; }
.card-columns .card:nth-child(9) { animation-delay: 0.5s; }
.card-columns .card:nth-child(10) { animation-delay: 0.55s; }

@media (min-width: 576px) {
    .card-columns {
        column-count: 3;
    }
}

@media (min-width: 768px) {
    .card-columns {
        column-count: 4;
    }
}

@media (min-width: 992px) {
    .card-columns {
        column-count: 4;
    }
}

/* Дополнительные анимации для card-deck */
.card-deck .card {
    position: relative;
    overflow: hidden;
}

.card-deck .card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(59, 130, 246, 0.1), transparent);
    transition: left 0.5s ease;
    pointer-events: none;
}

.card-deck .card:hover::before {
    left: 100%;
}

/* Эффект свечения для card-group */
.card-group > .card {
    position: relative;
    overflow: hidden;
}

.card-group > .card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6, #ec4899);
    transform: scaleX(0);
    transition: transform 0.3s ease;
}

.card-group > .card:hover::after {
    transform: scaleX(1);
}

/* Анимация для card-columns при скролле */
.card-columns .card {
    opacity: 0;
    animation: cardScrollAppear 0.6s ease forwards;
}

@keyframes cardScrollAppear {
    0% {
        opacity: 0;
        transform: translateY(30px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Разные радиусы для card-group */
.card-group > .card {
    border-radius: 20px;
    overflow: hidden;
}

.card-group > .card:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.card-group > .card:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}















@media (min-width: 576px) {
    .card-columns {
        column-count: 3;
        column-gap: 1.25rem;
        orphans: 1;
        widows: 1;
    }
    
    .card-columns .card {
        display: inline-block;
        width: 100%;
        transition: all 0.3s ease;
        animation: cardColumnAppear 0.5s ease;
    }
    
    .card-columns .card:hover {
        transform: translateY(-5px);
        box-shadow: 0 15px 30px rgba(59, 130, 246, 0.2);
    }
}

@keyframes cardColumnAppear {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.accordion {
    overflow-anchor: none;
}

.accordion > .card {
    overflow: hidden;
    transition: all 0.3s ease;
}

.accordion > .card:not(:last-of-type) {
    border-bottom: 0;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

.accordion > .card:not(:first-of-type) {
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.accordion > .card > .card-header {
    border-radius: 0;
    margin-bottom: -1px;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
    color: #ffffff;
}

.accordion > .card > .card-header:hover {
    color: rgb(59, 130, 246);
    padding-left: 1.5rem;
}

.accordion > .card > .card-header::before {
    content: '\f107';
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    position: absolute;
    left: 0.5rem;
    top: 50%;
    transform: translateY(-50%) rotate(0deg);
    transition: transform 0.3s ease;
    color: rgb(59, 130, 246);
    opacity: 0;
}

.accordion > .card > .card-header:hover::before {
    opacity: 1;
}

.accordion > .card > .card-header[aria-expanded="true"]::before {
    transform: translateY(-50%) rotate(180deg);
    opacity: 1;
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    list-style: none;
    border-radius: 12px;
}

.breadcrumb-item + .breadcrumb-item {
    padding-left: 0.5rem;
}

.breadcrumb-item + .breadcrumb-item::before {
    float: left;
    padding-right: 0.5rem;
    color: #94a3b8;
    content: "›";
    font-size: 1.2rem;
    line-height: 1;
    transition: all 0.3s ease;
}

.breadcrumb-item + .breadcrumb-item:hover::before {
    color: rgb(59, 130, 246);
    transform: translateX(2px);
}

.breadcrumb-item {
    color: #cbd5e1;
    transition: all 0.3s ease;
}

.breadcrumb-item a {
    color: #cbd5e1;
    text-decoration: none;
    transition: all 0.3s ease;
    position: relative;
}

.breadcrumb-item a:hover {
    color: rgb(59, 130, 246);
}

.breadcrumb-item a::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 0;
    height: 1px;
    background: linear-gradient(90deg, rgb(59, 130, 246), #8b5cf6);
    transition: width 0.3s ease;
}

.breadcrumb-item a:hover::after {
    width: 100%;
}

.breadcrumb-item.active {
    color: rgb(59, 130, 246);
    font-weight: 500;
}

.pagination {
    display: flex;
    padding-left: 0;
    list-style: none;
    border-radius: 12px;
    gap: 0.25rem;
}

.page-link {
    position: relative;
    display: block;
    padding: 0.5rem 0.75rem;
    margin-left: 0;
    line-height: 1.25;
    color: #cbd5e1;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 8px;
    transition: all 0.3s ease;
}

.page-link:hover {
    z-index: 2;
    color: rgb(59, 130, 246);
    text-decoration: none;
    border-color: rgb(59, 130, 246);
    transform: translateY(-2px);
}

.page-link:focus {
    z-index: 3;
    outline: 0;
    box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.2);
}

.page-item:first-child .page-link {
    border-top-left-radius: 8px;
    border-bottom-left-radius: 8px;
}

.page-item:last-child .page-link {
    border-top-right-radius: 8px;
    border-bottom-right-radius: 8px;
}

.page-item.active .page-link {
    z-index: 3;
    color: rgb(59, 130, 246);
    border-color: rgb(59, 130, 246);
    background: transparent;
    font-weight: 600;
}

.page-item.active .page-link:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.2);
}

.page-item.disabled .page-link {
    color: #64748b;
    pointer-events: none;
    cursor: auto;
    border-color: rgba(255, 255, 255, 0.05);
}

.pagination-lg .page-link {
    padding: 0.75rem 1.5rem;
    font-size: 1.125rem;
    line-height: 1.5;
    border-radius: 12px;
}

.pagination-lg .page-item:first-child .page-link {
    border-top-left-radius: 12px;
    border-bottom-left-radius: 12px;
}

.pagination-lg .page-item:last-child .page-link {
    border-top-right-radius: 12px;
    border-bottom-right-radius: 12px;
}

.pagination-sm .page-link {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.5;
    border-radius: 6px;
}

.pagination-sm .page-item:first-child .page-link {
    border-top-left-radius: 6px;
    border-bottom-left-radius: 6px;
}

.pagination-sm .page-item:last-child .page-link {
    border-top-right-radius: 6px;
    border-bottom-right-radius: 6px;
}

.badge {
    display: inline-block;
    padding: 0.4em 0.8em;
    font-size: 75%;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: 50px;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    border: 1px solid transparent;
}

.badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(59, 130, 246, 0.2);
}

.badge:empty {
    display: none;
}

.btn .badge {
    position: relative;
    top: -1px;
    margin-left: 0.25rem;
}

.badge-primary {
    background: transparent;
    border-color: rgb(59, 130, 246);
    color: rgb(59, 130, 246);
}

.badge-primary:hover {
    background: rgb(59, 130, 246);
    color: #ffffff;
}

.badge-secondary {
    background: transparent;
    border-color: #64748b;
    color: #64748b;
}

.badge-secondary:hover {
    background: #64748b;
    color: #ffffff;
}

.badge-success {
    background: transparent;
    border-color: #10b981;
    color: #10b981;
}

.badge-success:hover {
    background: #10b981;
    color: #ffffff;
}

.badge-danger {
    background: transparent;
    border-color: #f43f5e;
    color: #f43f5e;
}

.badge-danger:hover {
    background: #f43f5e;
    color: #ffffff;
}

.badge-warning {
    background: transparent;
    border-color: #f59e0b;
    color: #f59e0b;
}

.badge-warning:hover {
    background: #f59e0b;
    color: #ffffff;
}

.badge-info {
    background: transparent;
    border-color: #0ea5e9;
    color: #0ea5e9;
}

.badge-info:hover {
    background: #0ea5e9;
    color: #ffffff;
}

.badge-light {
    background: transparent;
    border-color: #cbd5e1;
    color: #cbd5e1;
}

.badge-light:hover {
    background: #cbd5e1;
    color: #0f172a;
}

.badge-dark {
    background: transparent;
    border-color: #1e293b;
    color: #1e293b;
}

.badge-dark:hover {
    background: #1e293b;
    color: #ffffff;
}

.badge-pill {
    padding-right: 1rem;
    padding-left: 1rem;
    border-radius: 50px;
}

.badge-icon {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.badge-icon i,
.badge-icon svg {
    font-size: 0.7rem;
    transition: all 0.3s ease;
}

.badge:hover .badge-icon i,
.badge:hover .badge-icon svg {
    transform: scale(1.1);
}

.badge-pulse {
    animation: badgePulse 2s infinite;
}

@keyframes badgePulse {
    0% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
    }
    70% {
        box-shadow: 0 0 0 6px rgba(59, 130, 246, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(59, 130, 246, 0);
    }
}

.badge-glow {
    animation: badgeGlow 2s infinite;
}

@keyframes badgeGlow {
    0% {
        filter: brightness(1);
    }
    50% {
        filter: brightness(1.2);
        box-shadow: 0 0 15px currentColor;
    }
    100% {
        filter: brightness(1);
    }
}

.badge-counter {
    position: absolute;
    top: -5px;
    right: -5px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    font-size: 0.65rem;
    line-height: 18px;
    border-radius: 9px;
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    color: white;
    border: 2px solid #1e293b;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    animation: counterPulse 2s infinite;
}

@keyframes counterPulse {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}










@media (prefers-reduced-motion: reduce) {
    .badge {
        transition: none;
    }
}

a.badge:hover,
a.badge:focus {
    text-decoration: none;
}

.badge:empty {
    display: none;
}

.btn .badge {
    position: relative;
    top: -1px;
    transition: all 0.3s ease;
}

.btn:hover .badge {
    transform: scale(1.1);
}

.badge-pill {
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    border-radius: 50px;
}

/* ===== BADGE PRIMARY ===== */
.badge-primary {
    background-color: #181C32;
    color: #fff;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(38, 119, 221, 0.3);
}

a.badge-primary:hover,
a.badge-primary:focus {
    background-color: #1c5fb4;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(38, 119, 221, 0.4);
}

a.badge-primary.focus,
a.badge-primary:focus {
    box-shadow: 0 0 0 4px rgba(38, 119, 221, 0.3);
    outline: 0;
}

/* ===== BADGE SECONDARY ===== */
.badge-secondary {
    background-color: #444;
    color: #fff;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(68, 68, 68, 0.3);
}

a.badge-secondary:hover,
a.badge-secondary:focus {
    background-color: #2b2b2b;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(68, 68, 68, 0.4);
}

a.badge-secondary.focus,
a.badge-secondary:focus {
    box-shadow: 0 0 0 4px rgba(68, 68, 68, 0.3);
    outline: 0;
}

/* ===== BADGE SUCCESS ===== */
.badge-success {
    background-color: #00bc8c;
    color: #fff;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(0, 188, 140, 0.3);
}

a.badge-success:hover,
a.badge-success:focus {
    background-color: #008966;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(0, 188, 140, 0.4);
}

a.badge-success.focus,
a.badge-success:focus {
    box-shadow: 0 0 0 4px rgba(0, 188, 140, 0.3);
    outline: 0;
}

/* ===== BADGE INFO ===== */
.badge-info {
    background-color: #3498db;
    color: #fff;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(52, 152, 219, 0.3);
}

a.badge-info:hover,
a.badge-info:focus {
    background-color: #217dbb;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(52, 152, 219, 0.4);
}

a.badge-info.focus,
a.badge-info:focus {
    box-shadow: 0 0 0 4px rgba(52, 152, 219, 0.3);
    outline: 0;
}

/* ===== BADGE WARNING ===== */
.badge-warning {
    background-color: #6f42c1;
    color: #fff;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(111, 66, 193, 0.3);
}

a.badge-warning:hover,
a.badge-warning:focus {
    background-color: #59339d;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(111, 66, 193, 0.4);
}

a.badge-warning.focus,
a.badge-warning:focus {
    box-shadow: 0 0 0 4px rgba(111, 66, 193, 0.3);
    outline: 0;
}

/* ===== BADGE DANGER ===== */
.badge-danger {
    background-color: #e74c3c;
    color: #fff;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(231, 76, 60, 0.3);
}

a.badge-danger:hover,
a.badge-danger:focus {
    background-color: #d62c1a;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(231, 76, 60, 0.4);
}

a.badge-danger.focus,
a.badge-danger:focus {
    box-shadow: 0 0 0 4px rgba(231, 76, 60, 0.3);
    outline: 0;
}

/* ===== BADGE LIGHT ===== */
.badge-light {
    background-color: #adb5bd;
    color: #222;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(173, 181, 189, 0.3);
}

a.badge-light:hover,
a.badge-light:focus {
    background-color: #919ca6;
    color: #222;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(173, 181, 189, 0.4);
}

a.badge-light.focus,
a.badge-light:focus {
    box-shadow: 0 0 0 4px rgba(173, 181, 189, 0.3);
    outline: 0;
}

/* ===== BADGE DARK ===== */
.badge-dark {
    background-color: #303030;
    color: #fff;
    transition: all 0.3s ease;
    box-shadow: 0 2px 5px rgba(48, 48, 48, 0.3);
}

a.badge-dark:hover,
a.badge-dark:focus {
    background-color: #171717;
    color: #fff;
    transform: translateY(-2px);
    box-shadow: 0 4px 10px rgba(48, 48, 48, 0.4);
}

a.badge-dark.focus,
a.badge-dark:focus {
    box-shadow: 0 0 0 4px rgba(48, 48, 48, 0.3);
    outline: 0;
}

/* ===== JUMBOTRON ===== */
.jumbotron {
    padding: 2rem 1rem;
    margin-bottom: 2rem;
    border-radius: 24px;
    background-color: var(--dark);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    transition: all 0.3s ease;
}

.jumbotron:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.4);
}

.jumbotron-fluid {
    padding-right: 0;
    padding-left: 0;
    border-radius: 0;
}

/* Анимации для бэджей */
.badge {
    animation: badgeAppear 0.3s ease;
}

@keyframes badgeAppear {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.badge-pulse {
    animation: badgePulse 2s infinite;
}

@keyframes badgePulse {
    0% {
        box-shadow: 0 0 0 0 rgba(38, 119, 221, 0.4);
    }
    70% {
        box-shadow: 0 0 0 6px rgba(38, 119, 221, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(38, 119, 221, 0);
    }
}

.badge-glow {
    animation: badgeGlow 2s infinite;
}

@keyframes badgeGlow {
    0% {
        filter: brightness(1);
    }
    50% {
        filter: brightness(1.1);
    }
    100% {
        filter: brightness(1);
    }
}

.badge-float {
    animation: badgeFloat 3s ease-in-out infinite;
}

@keyframes badgeFloat {
    0% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-3px);
    }
    100% {
        transform: translateY(0);
    }
}

/* Счетчик уведомлений */
.badge-counter {
    position: absolute;
    top: -8px;
    right: -8px;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    font-size: 0.65rem;
    line-height: 20px;
    border-radius: 10px;
    background-color: #e74c3c;
    color: white;
    border: 2px solid #303030;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    animation: counterPop 2s infinite;
}

@keyframes counterPop {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}












@media (min-width: 576px) {
    .jumbotron {
        padding: 4rem 2rem;
    }
}

.jumbotron-fluid {
    border-radius: 0;
    padding-left: 0;
    padding-right: 0;
}

/* ===== JUMBOTRON УЛУЧШЕНИЯ ===== */
.jumbotron {
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
}

.jumbotron:hover {
    transform: translateY(-2px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2);
}

.jumbotron::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
    transition: left 0.5s ease;
    pointer-events: none;
}

.jumbotron:hover::before {
    left: 100%;
}

/* ===== ALERTS ===== */
.alert {
    position: relative;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 16px;
    transition: all 0.3s ease;
    animation: alertAppear 0.3s ease;
}

@keyframes alertAppear {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.alert:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.alert-heading {
    color: inherit;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.alert-link {
    font-weight: 700;
    transition: all 0.2s ease;
}

.alert-link:hover {
    text-decoration: underline;
    opacity: 0.9;
}

.alert-dismissible {
    padding-right: 4rem;
}

.alert-dismissible .close {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 2;
    padding: 1rem 1.25rem;
    color: inherit;
    background: transparent;
    border: 0;
    font-size: 1.25rem;
    cursor: pointer;
    transition: all 0.2s ease;
}

.alert-dismissible .close:hover {
    transform: scale(1.1);
    opacity: 0.8;
}

/* ===== ALERT VARIANTS ===== */
.alert-primary {
    background: #d4e4f8;
    border-color: #c2d9f5;
    color: #143e73;
    border-left: 4px solid #2677dd;
}

.alert-primary hr {
    border-top-color: #accbf1;
}

.alert-primary .alert-link {
    color: #0c2748;
}

.alert-secondary {
    background: #dadada;
    border-color: #cbcbcb;
    color: #232323;
    border-left: 4px solid #6c757d;
}

.alert-secondary hr {
    border-top-color: #bebebe;
}

.alert-secondary .alert-link {
    color: #0a0a0a;
}

.alert-success {
    background: #ccf2e8;
    border-color: #b8ecdf;
    color: #006249;
    border-left: 4px solid #00bc8c;
}

.alert-success hr {
    border-top-color: #a4e7d6;
}

.alert-success .alert-link {
    color: #002f23;
}

.alert-info {
    background: #d6eaf8;
    border-color: #c6e2f5;
    color: #1b4f72;
    border: 1px solid #5301c3fc;
    border-radius: 20px;
}

.alert-info hr {
    border-top-color: #b0d7f1;
    
}

.alert-info .alert-link {
    color: #113249;
}

.alert-warning {
    background: #e2d9f3;
    border-color: #d7caee;
    color: #3a2264;
    border-left: 4px solid #6f42c1;
}

.alert-warning hr {
    border-top-color: #c8b7e8;
}

.alert-warning .alert-link {
    color: #24153e;
}

.alert-danger {
    background: #fadbd8;
    border-color: #f8cdc8;
    color: #78281f;
    border-left: 4px solid #e74c3c;
}

.alert-danger hr {
    border-top-color: #f5b8b1;
}

.alert-danger .alert-link {
    color: #4f1a15;
}

.alert-light {
    background: #eff0f2;
    border-color: #e8eaed;
    color: #5a5e62;
    border-left: 4px solid #adb5bd;
}

.alert-light hr {
    border-top-color: #dadde2;
}

.alert-light .alert-link {
    color: #424547;
}

.alert-dark {
    background: #d6d6d6;
    border-color: #c5c5c5;
    color: #191919;
    border-left: 4px solid #343a40;
}

.alert-dark hr {
    border-top-color: #b8b8b8;
}

.alert-dark .alert-link {
    color: #000;
}

/* ===== PROGRESS BAR ===== */
@keyframes progress-bar-stripes {
    0% {
        background-position: 1rem 0;
    }
    100% {
        background-position: 0 0;
    }
}

.progress {
    display: flex;
    height: 0.75rem;
    overflow: hidden;
    font-size: 0.75rem;
    background: #2d2d2d;
    border-radius: 50px;
    box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
}

.progress:hover {
    transform: scaleY(1.1);
    box-shadow: 0 0 10px rgba(38, 119, 221, 0.3);
}

.progress-bar {
    display: flex;
    flex-direction: column;
    justify-content: center;
    overflow: hidden;
    color: #fff;
    text-align: center;
    white-space: nowrap;
    background: linear-gradient(135deg, #2677dd, #1a5fb4);
    border-radius: 50px;
    transition: width 0.6s ease;
    box-shadow: 0 2px 5px rgba(38, 119, 221, 0.3);
    position: relative;
}

.progress-bar::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    animation: progressShine 2s infinite;
}

@keyframes progressShine {
    0% {
        left: -100%;
    }
    100% {
        left: 100%;
    }
}

.progress-bar-striped {
    background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
    background-size: 1rem 1rem;
}

.progress-bar-animated {
    animation: progress-bar-stripes 1s linear infinite;
}

.progress-bar-animated:hover {
    animation-duration: 0.5s;
}

/* Разные цвета для прогресс баров */
.progress-bar-success {
    background: linear-gradient(135deg, #00bc8c, #009970);
}

.progress-bar-info {
    background: linear-gradient(135deg, #3498db, #2980b9);
}

.progress-bar-warning {
    background: linear-gradient(135deg, #f39c12, #e67e22);
}

.progress-bar-danger {
    background: linear-gradient(135deg, #e74c3c, #c0392b);
}

/* Размеры прогресс баров */
.progress-xs {
    height: 0.25rem;
}

.progress-sm {
    height: 0.5rem;
}

.progress-lg {
    height: 1rem;
}

.progress-xl {
    height: 1.25rem;
}

/* Прогресс бар с меткой */
.progress-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 0.25rem;
    color: #cbd5e1;
    font-size: 0.875rem;
}

/* Анимация для прогресс бара при появлении */
.progress-bar {
    animation: progressAppear 0.6s ease;
}

@keyframes progressAppear {
    from {
        width: 0;
    }
    to {
        width: attr(aria-valuenow);
    }
}














@media (prefers-reduced-motion: reduce) {
    .progress-bar {
        transition: none;
    }
    .progress-bar-animated {
        animation: none;
    }
}

/* ===== PROGRESS BAR ===== */
.progress-bar-striped {
    background-image: linear-gradient(45deg, 
        rgba(255, 255, 255, 0.15) 25%, 
        transparent 25%, 
        transparent 50%, 
        rgba(255, 255, 255, 0.15) 50%, 
        rgba(255, 255, 255, 0.15) 75%, 
        transparent 75%, 
        transparent
    );
    background-size: 1rem 1rem;
}

.progress-bar-animated {
    animation: progress-bar-stripes 1s linear infinite;
}

@keyframes progress-bar-stripes {
    0% {
        background-position: 1rem 0;
    }
    100% {
        background-position: 0 0;
    }
}
/* ===== MEDIA ===== */
.media {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
    padding: 0.5rem;
    background: rgb(3, 23, 7);
    border-radius: 16px;
    backdrop-filter: indigo(10px);
    -webkit-backdrop-filter: indigo(10px);
    border: 1px solid rgb(41, 12, 12);
    transition: all 0.3s ease;
}


.media:hover {
    border-color: #2677dd;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(38, 119, 221, 0.2);
}

.media-body {
    flex: 1;
    color: #fff;
}

/* ===== LIST GROUP ===== */
.list-group {
    display: flex;
    flex-direction: column;
    padding-left: 0;
    margin-bottom: 0;
    border-radius: 16px;
    gap: 4px;
}

.list-group-item-action {
    width: 100%;
    color: #fff;
    text-align: inherit;
    transition: all 0.3s ease;
}

.list-group-item-action:hover,
.list-group-item-action:focus {
    color: #fff;
    text-decoration: none;
    background-color: rgba(38, 119, 221, 0.1);
    z-index: 1;
}

.list-group-item-action:active {
    background-color: rgba(38, 119, 221, 0.2);
    color: #fff;
}

.list-group-item {
    position: relative;
    display: block;
    padding: 1rem 1.25rem;
    background-color: #303030;
    border: 1px solid #444;
    border-radius: 12px;
    color: #fff;
    transition: all 0.3s ease;
}

.list-group-item:first-child {
    border-top-left-radius: 12px;
    border-top-right-radius: 12px;
}

.list-group-item:last-child {
    border-bottom-left-radius: 12px;
    border-bottom-right-radius: 12px;
}

.list-group-item:hover {
    background-color: #3a3a3a;
    border-color: #2677dd;
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(38, 119, 221, 0.15);
}

.list-group-item.disabled,
.list-group-item:disabled {
    background-color: #2a2a2a;
    color: #888;
    pointer-events: none;
    border-color: #3a3a3a;
}

.list-group-item.active {
    z-index: 2;
    color: #fff;
    background: linear-gradient(135deg, #2677dd, #1a5fb4);
    border-color: #2677dd;
    box-shadow: 0 4px 12px rgba(38, 119, 221, 0.3);
}

.list-group-item.active:hover {
    background: linear-gradient(135deg, #2a82e8, #1f6ac4);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(38, 119, 221, 0.4);
}

.list-group-item + .list-group-item {
    border-top-width: 0;
}

.list-group-item + .list-group-item.active {
    border-top-width: 1px;
    margin-top: -1px;
}

/* ===== HORIZONTAL LIST GROUP ===== */
.list-group-horizontal {
    flex-direction: row;
    gap: 4px;
}

.list-group-horizontal > .list-group-item:first-child {
    border-top-left-radius: 12px;
    border-bottom-left-radius: 12px;
    border-top-right-radius: 0;
}

.list-group-horizontal > .list-group-item:last-child {
    border-top-right-radius: 12px;
    border-bottom-right-radius: 12px;
    border-bottom-left-radius: 0;
}

.list-group-horizontal > .list-group-item.active {
    margin-top: 0;
}

.list-group-horizontal > .list-group-item + .list-group-item {
    border-left-width: 0;
    border-top-width: 1px;
}

.list-group-horizontal > .list-group-item + .list-group-item.active {
    border-left-width: 1px;
    margin-left: -1px;
}

/* ===== LIST GROUP ANIMATIONS ===== */
.list-group-item {
    animation: listItemAppear 0.3s ease;
}

@keyframes listItemAppear {
    from {
        opacity: 0;
        transform: translateX(-10px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.list-group-item:nth-child(1) { animation-delay: 0.05s; }
.list-group-item:nth-child(2) { animation-delay: 0.1s; }
.list-group-item:nth-child(3) { animation-delay: 0.15s; }
.list-group-item:nth-child(4) { animation-delay: 0.2s; }
.list-group-item:nth-child(5) { animation-delay: 0.25s; }
.list-group-item:nth-child(6) { animation-delay: 0.3s; }
.list-group-item:nth-child(7) { animation-delay: 0.35s; }
.list-group-item:nth-child(8) { animation-delay: 0.4s; }
.list-group-item:nth-child(9) { animation-delay: 0.45s; }
.list-group-item:nth-child(10) { animation-delay: 0.5s; }











@media (min-width: 576px) {
    .list-group-horizontal-sm {
        flex-direction: row;
        gap: 4px;
    }
    
    .list-group-horizontal-sm > .list-group-item {
        border-radius: 12px;
        margin-bottom: 0;
        transition: all 0.3s ease;
    }
    
    .list-group-horizontal-sm > .list-group-item:first-child {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        border-top-left-radius: 12px;
        border-bottom-left-radius: 12px;
    }
    
    .list-group-horizontal-sm > .list-group-item:last-child {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        border-top-right-radius: 12px;
        border-bottom-right-radius: 12px;
    }
    
    .list-group-horizontal-sm > .list-group-item.active {
        margin-top: 0;
        background: linear-gradient(135deg, #2677dd, #1a5fb4);
        border-color: #2677dd;
        box-shadow: 0 4px 12px rgba(38, 119, 221, 0.3);
    }
    
    .list-group-horizontal-sm > .list-group-item.active:hover {
        background: linear-gradient(135deg, #2a82e8, #1f6ac4);
        transform: translateY(-2px);
        box-shadow: 0 8px 20px rgba(38, 119, 221, 0.4);
    }
    
    .list-group-horizontal-sm > .list-group-item + .list-group-item {
        border-left-width: 0;
        border-top-width: 1px;
    }
    
    .list-group-horizontal-sm > .list-group-item + .list-group-item.active {
        border-left-width: 1px;
        margin-left: -1px;
    }
}

@media (min-width: 768px) {
    .list-group-horizontal-md {
        flex-direction: row;
        gap: 4px;
    }
    
    .list-group-horizontal-md > .list-group-item {
        border-radius: 12px;
        margin-bottom: 0;
        transition: all 0.3s ease;
    }
    
    .list-group-horizontal-md > .list-group-item:first-child {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        border-top-left-radius: 12px;
        border-bottom-left-radius: 12px;
    }
    
    .list-group-horizontal-md > .list-group-item:last-child {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        border-top-right-radius: 12px;
        border-bottom-right-radius: 12px;
    }
    
    .list-group-horizontal-md > .list-group-item.active {
        margin-top: 0;
        background: linear-gradient(135deg, #2677dd, #1a5fb4);
        border-color: #2677dd;
        box-shadow: 0 4px 12px rgba(38, 119, 221, 0.3);
    }
    
    .list-group-horizontal-md > .list-group-item.active:hover {
        background: linear-gradient(135deg, #2a82e8, #1f6ac4);
        transform: translateY(-2px);
        box-shadow: 0 8px 20px rgba(38, 119, 221, 0.4);
    }
    
    .list-group-horizontal-md > .list-group-item + .list-group-item {
        border-left-width: 0;
        border-top-width: 1px;
    }
    
    .list-group-horizontal-md > .list-group-item + .list-group-item.active {
        border-left-width: 1px;
        margin-left: -1px;
    }
}

/* Анимация для горизонтальных списков */
.list-group-horizontal-sm > .list-group-item,
.list-group-horizontal-md > .list-group-item {
    animation: slideInRight 0.3s ease;
}

@keyframes slideInRight {
    from {
        opacity: 0;
        transform: translateX(-10px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.list-group-horizontal-sm > .list-group-item:nth-child(1) { animation-delay: 0.05s; }
.list-group-horizontal-sm > .list-group-item:nth-child(2) { animation-delay: 0.1s; }
.list-group-horizontal-sm > .list-group-item:nth-child(3) { animation-delay: 0.15s; }
.list-group-horizontal-sm > .list-group-item:nth-child(4) { animation-delay: 0.2s; }
.list-group-horizontal-sm > .list-group-item:nth-child(5) { animation-delay: 0.25s; }

.list-group-horizontal-md > .list-group-item:nth-child(1) { animation-delay: 0.05s; }
.list-group-horizontal-md > .list-group-item:nth-child(2) { animation-delay: 0.1s; }
.list-group-horizontal-md > .list-group-item:nth-child(3) { animation-delay: 0.15s; }
.list-group-horizontal-md > .list-group-item:nth-child(4) { animation-delay: 0.2s; }
.list-group-horizontal-md > .list-group-item:nth-child(5) { animation-delay: 0.25s; }
















@media (min-width: 992px) {
    .list-group-horizontal-lg {
        flex-direction: row;
        gap: 6px;
        padding: 4px;
        background: #2a2a2a;
        border-radius: 16px;
    }
    
    .list-group-horizontal-lg > .list-group-item {
        border-radius: 12px;
        margin-bottom: 0;
        border: 1px solid #444;
        background: #303030;
        color: #fff;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        position: relative;
        overflow: hidden;
    }
    
    .list-group-horizontal-lg > .list-group-item:first-child {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        border-top-left-radius: 12px;
        border-bottom-left-radius: 12px;
    }
    
    .list-group-horizontal-lg > .list-group-item:last-child {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        border-top-right-radius: 12px;
        border-bottom-right-radius: 12px;
    }
    
    /* Hover эффект */
    .list-group-horizontal-lg > .list-group-item:hover {
        border-color: #2677dd;
        transform: translateY(-2px);
        box-shadow: 0 8px 20px rgba(38, 119, 221, 0.25);
        background: #3a3a3a;
        z-index: 2;
    }
    
    /* Активный элемент */
    .list-group-horizontal-lg > .list-group-item.active {
        margin-top: 0;
        background: linear-gradient(135deg, #2677dd, #1a5fb4);
        border-color: #2677dd;
        color: #fff;
        font-weight: 600;
        box-shadow: 0 4px 12px rgba(38, 119, 221, 0.4);
        position: relative;
        z-index: 3;
    }
    
    .list-group-horizontal-lg > .list-group-item.active:hover {
        background: linear-gradient(135deg, #2a82e8, #1f6ac4);
        transform: translateY(-3px);
        box-shadow: 0 12px 24px rgba(38, 119, 221, 0.5);
    }
    
    /* Эффект пульсации для активного элемента */
    .list-group-horizontal-lg > .list-group-item.active::after {
        content: '';
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        border-radius: 12px;
        box-shadow: 0 0 0 0 rgba(38, 119, 221, 0.5);
        animation: pulse 2s infinite;
    }
    
    @keyframes pulse {
        0% {
            box-shadow: 0 0 0 0 rgba(38, 119, 221, 0.5);
        }
        70% {
            box-shadow: 0 0 0 8px rgba(38, 119, 221, 0);
        }
        100% {
            box-shadow: 0 0 0 0 rgba(38, 119, 221, 0);
        }
    }
    
    /* Соседние элементы */
    .list-group-horizontal-lg > .list-group-item + .list-group-item {
        border-left-width: 0;
        border-top-width: 1px;
    }
    
    .list-group-horizontal-lg > .list-group-item + .list-group-item.active {
        border-left-width: 1px;
        margin-left: -1px;
    }
    
    /* Эффект свечения при наведении */
    .list-group-horizontal-lg > .list-group-item::before {
        content: '';
        position: absolute;
        top: 0;
        left: -100%;
        width: 100%;
        height: 100%;
        background: linear-gradient(90deg, transparent, rgba(38, 119, 221, 0.2), transparent);
        transition: left 0.5s ease;
        pointer-events: none;
    }
    
    .list-group-horizontal-lg > .list-group-item:hover::before {
        left: 100%;
    }
}

/* Анимация появления для элементов */
@media (min-width: 992px) {
    .list-group-horizontal-lg > .list-group-item {
        animation: slideInUp 0.4s ease forwards;
        opacity: 0;
    }
    
    @keyframes slideInUp {
        from {
            opacity: 0;
            transform: translateY(20px);
        }
        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
    
    .list-group-horizontal-lg > .list-group-item:nth-child(1) { animation-delay: 0.1s; }
    .list-group-horizontal-lg > .list-group-item:nth-child(2) { animation-delay: 0.15s; }
    .list-group-horizontal-lg > .list-group-item:nth-child(3) { animation-delay: 0.2s; }
    .list-group-horizontal-lg > .list-group-item:nth-child(4) { animation-delay: 0.25s; }
    .list-group-horizontal-lg > .list-group-item:nth-child(5) { animation-delay: 0.3s; }
    .list-group-horizontal-lg > .list-group-item:nth-child(6) { animation-delay: 0.35s; }
}







@media (min-width: 1200px) {
    .list-group-horizontal-xl {
        flex-direction: row;
        gap: 8px;
        padding: 4px;
        background: #2a2a2a;
        border-radius: 20px;
    }
    
    .list-group-horizontal-xl > .list-group-item {
        border-radius: 14px;
        margin-bottom: 0;
        border: 1px solid #444;
        background: #303030;
        color: #fff;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        position: relative;
        overflow: hidden;
    }
    
    .list-group-horizontal-xl > .list-group-item:first-child {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
        border-top-left-radius: 14px;
        border-bottom-left-radius: 14px;
    }
    
    .list-group-horizontal-xl > .list-group-item:last-child {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
        border-top-right-radius: 14px;
        border-bottom-right-radius: 14px;
    }
    
    .list-group-horizontal-xl > .list-group-item:hover {
        border-color: #2677dd;
        transform: translateY(-3px);
        box-shadow: 0 10px 25px rgba(38, 119, 221, 0.3);
        background: #3a3a3a;
        z-index: 2;
    }
    
    .list-group-horizontal-xl > .list-group-item.active {
        margin-top: 0;
        background: linear-gradient(135deg, #2677dd, #1a5fb4);
        border-color: #2677dd;
        color: #fff;
        font-weight: 600;
        box-shadow: 0 6px 15px rgba(38, 119, 221, 0.5);
        z-index: 3;
    }
    
    .list-group-horizontal-xl > .list-group-item.active:hover {
        background: linear-gradient(135deg, #2a82e8, #1f6ac4);
        transform: translateY(-4px);
        box-shadow: 0 15px 30px rgba(38, 119, 221, 0.6);
    }
    
    .list-group-horizontal-xl > .list-group-item + .list-group-item {
        border-left-width: 0;
        border-top-width: 1px;
    }
    
    .list-group-horizontal-xl > .list-group-item + .list-group-item.active {
        border-left-width: 1px;
        margin-left: -1px;
    }
}

/* ===== LIST GROUP FLUSH ===== */
.list-group-flush {
    border-radius: 0;
}

.list-group-flush > .list-group-item {
    border-width: 0 0 1px 0;
    border-color: #444;
    background: #303030;
    color: #fff;
    transition: all 0.3s ease;
}

.list-group-flush > .list-group-item:last-child {
    border-bottom-width: 0;
}

.list-group-flush > .list-group-item:hover {
    background: #3a3a3a;
    padding-left: 1.5rem;
    border-color: #2677dd;
}

/* ===== COLORED LIST GROUP ITEMS ===== */
.list-group-item-primary {
    background: rgba(38, 119, 221, 0.15);
    color: #99c2ff;
    border-color: rgba(38, 119, 221, 0.3);
}

.list-group-item-primary.list-group-item-action:hover,
.list-group-item-primary.list-group-item-action:focus {
    background: rgba(38, 119, 221, 0.25);
    color: #fff;
}

.list-group-item-primary.list-group-item-action.active {
    background: #2677dd;
    border-color: #2677dd;
    color: #fff;
}

.list-group-item-secondary {
    background: rgba(68, 68, 68, 0.3);
    color: #ccc;
    border-color: rgba(68, 68, 68, 0.5);
}

.list-group-item-secondary.list-group-item-action:hover,
.list-group-item-secondary.list-group-item-action:focus {
    background: rgba(68, 68, 68, 0.4);
    color: #fff;
}

.list-group-item-secondary.list-group-item-action.active {
    background: #444;
    border-color: #444;
    color: #fff;
}

.list-group-item-success {
    background: rgba(0, 188, 140, 0.15);
    color: #8fffd4;
    border-color: rgba(0, 188, 140, 0.3);
}

.list-group-item-success.list-group-item-action:hover,
.list-group-item-success.list-group-item-action:focus {
    background: rgba(0, 188, 140, 0.25);
    color: #fff;
}

.list-group-item-success.list-group-item-action.active {
    background: #00bc8c;
    border-color: #00bc8c;
    color: #fff;
}

.list-group-item-info {
    background: rgba(52, 152, 219, 0.15);
    color: #b8e2ff;
    border-color: rgba(52, 152, 219, 0.3);
}

.list-group-item-info.list-group-item-action:hover,
.list-group-item-info.list-group-item-action:focus {
    background: rgba(52, 152, 219, 0.25);
    color: #fff;
}

.list-group-item-info.list-group-item-action.active {
    background: #3498db;
    border-color: #3498db;
    color: #fff;
}

.list-group-item-warning {
    background: rgba(111, 66, 193, 0.15);
    color: #d6bcff;
    border-color: rgba(111, 66, 193, 0.3);
}

.list-group-item-warning.list-group-item-action:hover,
.list-group-item-warning.list-group-item-action:focus {
    background: rgba(111, 66, 193, 0.25);
    color: #fff;
}

.list-group-item-warning.list-group-item-action.active {
    background: #6f42c1;
    border-color: #6f42c1;
    color: #fff;
}

.list-group-item-danger {
    background: rgba(231, 76, 60, 0.15);
    color: #ffbcb5;
    border-color: rgba(231, 76, 60, 0.3);
}

.list-group-item-danger.list-group-item-action:hover,
.list-group-item-danger.list-group-item-action:focus {
    background: rgba(231, 76, 60, 0.25);
    color: #fff;
}

.list-group-item-danger.list-group-item-action.active {
    background: #e74c3c;
    border-color: #e74c3c;
    color: #fff;
}

.list-group-item-light {
    background: rgba(173, 181, 189, 0.15);
    color: #e9ecef;
    border-color: rgba(173, 181, 189, 0.3);
}

.list-group-item-light.list-group-item-action:hover,
.list-group-item-light.list-group-item-action:focus {
    background: rgba(173, 181, 189, 0.25);
    color: #000;
}

.list-group-item-light.list-group-item-action.active {
    background: #adb5bd;
    border-color: #adb5bd;
    color: #000;
}

.list-group-item-dark {
    background: rgba(48, 48, 48, 0.3);
    color: #aaa;
    border-color: rgba(48, 48, 48, 0.5);
}

.list-group-item-dark.list-group-item-action:hover,
.list-group-item-dark.list-group-item-action:focus {
    background: rgba(48, 48, 48, 0.4);
    color: #fff;
}

.list-group-item-dark.list-group-item-action.active {
    background: #303030;
    border-color: #303030;
    color: #fff;
}

/* ===== CLOSE BUTTON ===== */
.close {
    float: right;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    color: #fff;
    text-shadow: none;
    opacity: 0.6;
    transition: all 0.3s ease;
}

.close:hover {
    color: #2677dd;
    text-decoration: none;
    opacity: 1;
    transform: rotate(90deg);
}

.close:not(:disabled):not(.disabled):hover,
.close:not(:disabled):not(.disabled):focus {
    opacity: 1;
    color: #2677dd;
}

button.close {
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
}

a.close.disabled {
    pointer-events: none;
    opacity: 0.3;
}

/* ===== TOAST ===== */
.toast {
    flex-basis: 350px;
    max-width: 350px;
    font-size: 0.9rem;
    background: #2a2a2a;
    border: 1px solid #444;
    border-radius: 16px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    opacity: 0;
    transition: all 0.3s ease;
    backdrop-filter: blur(10px);
}

.toast:not(:last-child) {
    margin-bottom: 0.75rem;
}

.toast.showing {
    opacity: 1;
}

.toast.show {
    display: block;
    opacity: 1;
    animation: toastSlideIn 0.3s ease;
}

@keyframes toastSlideIn {
    from {
        opacity: 0;
        transform: translateX(20px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.toast.hide {
    display: none;
}

.toast-header {
    display: flex;
    align-items: center;
    padding: 0.75rem 1rem;
    background: #303030;
    border-bottom: 1px solid #444;
    border-top-left-radius: 15px;
    border-top-right-radius: 15px;
    color: #ccc;
}

.toast-body {
    padding: 1rem;
    color: #fff;
}

/* ===== MODAL ===== */
.modal-open {
    overflow: hidden;
}

.modal-open .modal {
    overflow-x: hidden;
    overflow-y: auto;
}

.modal {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1050;
    display: none;
    width: 100%;
    height: 100%;
    overflow: hidden;
    outline: 0;
}

.modal-dialog {
    position: relative;
    width: auto;
    margin: 0.5rem;
    pointer-events: none;
}

.modal.fade .modal-dialog {
    transform: translateY(-30px);
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.modal.show .modal-dialog {
    transform: translateY(0);
}















@media (prefers-reduced-motion: reduce) {
    .modal.fade .modal-dialog {
        transition: none;
    }
}

.modal.show .modal-dialog {
    transform: none;
}

.modal.modal-static .modal-dialog {
    transform: scale(1.02);
}

/* ===== MODAL DIALOG SCROLLABLE ===== */
.modal-dialog-scrollable {
    display: flex;
    max-height: calc(100% - 2rem);
}

.modal-dialog-scrollable .modal-content {
    max-height: calc(100vh - 2rem);
    overflow: hidden;
}

.modal-dialog-scrollable .modal-header,
.modal-dialog-scrollable .modal-footer {
    flex-shrink: 0;
}

.modal-dialog-scrollable .modal-body {
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #2677dd #444;
}

.modal-dialog-scrollable .modal-body::-webkit-scrollbar {
    width: 6px;
}

.modal-dialog-scrollable .modal-body::-webkit-scrollbar-track {
    background: #444;
    border-radius: 10px;
}

.modal-dialog-scrollable .modal-body::-webkit-scrollbar-thumb {
    background: #2677dd;
    border-radius: 10px;
}

.modal-dialog-scrollable .modal-body::-webkit-scrollbar-thumb:hover {
    background: #1a5fb4;
}

/* ===== MODAL DIALOG CENTERED ===== */
.modal-dialog-centered {
    display: flex;
    align-items: center;
    min-height: calc(100% - 2rem);
}

.modal-dialog-centered::before {
    display: block;
    height: min-content;
    content: "";
}

.modal-dialog-centered.modal-dialog-scrollable {
    flex-direction: column;
    justify-content: center;
    height: 100%;
}

.modal-dialog-centered.modal-dialog-scrollable .modal-content {
    max-height: none;
}

.modal-dialog-centered.modal-dialog-scrollable::before {
    content: none;
}

/* ===== MODAL CONTENT ===== */
.modal-content {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    background: var(--dark);
    background-clip: padding-box;
    border: 1px solid rgba(38, 119, 221, 0.2);
    border-radius: 24px;
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
    outline: 0;
    pointer-events: auto;
    animation: modalAppear 0.3s ease;
}

@keyframes modalAppear {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== MODAL BACKDROP ===== */
.modal-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1040;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(4px);
}

.modal-backdrop.fade {
    opacity: 0;
    transition: opacity 0.3s ease;
}

.modal-backdrop.show {
    opacity: 0.8;
}

/* ===== MODAL HEADER ===== */
.modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid rgba(38, 119, 221, 0.2);
    border-top-left-radius: 23px;
    border-top-right-radius: 23px;
    background: rgba(38, 119, 221, 0.05);
}

.modal-header .close {
    padding: 1rem;
    margin: -1rem -1rem -1rem auto;
    color: #fff;
    opacity: 0.6;
    transition: all 0.3s ease;
}

.modal-header .close:hover {
    opacity: 1;
    color: #2677dd;
    transform: rotate(90deg);
}

/* ===== MODAL TITLE ===== */
.modal-title {
    margin-bottom: 0;
    line-height: 1.5;
    color: #fff;
    font-weight: 600;
    font-size: 1.25rem;
}

/* ===== MODAL BODY ===== */
.modal-body {
    position: relative;
    flex: 1 1 auto;
    padding: 1rem;
    color: #e0e0e0;
}

/* ===== MODAL FOOTER ===== */
.modal-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    padding: 1rem 1.5rem;
    border-top: 1px solid rgba(38, 119, 221, 0.2);
    border-bottom-left-radius: 23px;
    border-bottom-right-radius: 23px;
    background: var(--dark);
    gap: 0.5rem;
}

.modal-footer > * {
    margin: 0;
}

/* ===== MODAL SCROLLBAR MEASURE ===== */
.modal-scrollbar-measure {
    position: absolute;
    top: -9999px;
    width: 50px;
    height: 50px;
    overflow: scroll;
}

/* ===== MODAL SIZES ===== */
@media (min-width: 576px) {
    .modal-dialog {
        max-width: 500px;
        margin: 1.75rem auto;
    }
    
    .modal-dialog-scrollable {
        max-height: calc(100% - 3.5rem);
    }
    
    .modal-dialog-scrollable .modal-content {
        max-height: calc(100vh - 3.5rem);
    }
    
    .modal-dialog-centered {
        min-height: calc(100% - 3.5rem);
    }
    
    .modal-dialog-centered::before {
        height: min-content;
    }
    
    .modal-sm {
        max-width: 300px;
    }
}

@media (min-width: 992px) {
    .modal-lg,
    .modal-xl {
        max-width: 800px;
    }
}

@media (min-width: 1200px) {
    .modal-xl {
        max-width: 1140px;
    }
}

/* ===== MODAL ANIMATIONS ===== */
.modal.fade .modal-dialog {
    transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.modal.show .modal-dialog {
    transform: none;
}

/* ===== MODAL WITH GRADIENT BORDER ===== */
.modal-content-gradient {
    position: relative;
    border: none;
}

.modal-content-gradient::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(135deg, #2677dd, #6f42c1, #e74c3c);
    border-radius: 26px;
    z-index: -1;
    opacity: 0.5;
    transition: opacity 0.3s ease;
}

.modal-content-gradient:hover::before {
    opacity: 0.8;
}

/* ===== MODAL WITH GLOW ===== */
.modal-content-glow {
    box-shadow: 0 0 30px rgba(38, 119, 221, 0.3);
    animation: modalGlow 3s infinite;
}

@keyframes modalGlow {
    0% {
        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5), 0 0 0 0 rgba(38, 119, 221, 0.3);
    }
    50% {
        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5), 0 0 30px 10px rgba(38, 119, 221, 0.5);
    }
    100% {
        box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5), 0 0 0 0 rgba(38, 119, 221, 0.3);
    }
}












@media (min-width: 576px) {
    .modal-dialog {
        max-width: 500px;
        margin: 1.75rem auto;
    }
    
    .modal-dialog-scrollable {
        max-height: calc(100% - 3.5rem);
    }
    
    .modal-dialog-scrollable .modal-content {
        max-height: calc(100vh - 3.5rem);
    }
    
    .modal-dialog-centered {
        min-height: calc(100% - 3.5rem);
    }
    
    .modal-dialog-centered::before {
        height: min-content;
    }
    
    .modal-content {
        box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(38, 119, 221, 0.2);
    }
    
    .modal-sm {
        max-width: 300px;
    }
}

@media (min-width: 992px) {
    .modal-lg,
    .modal-xl {
        max-width: 800px;
    }
}

@media (min-width: 1200px) {
    .modal-xl {
        max-width: 1140px;
    }
}

/* ===== TOOLTIP ===== */
.tooltip {
    position: absolute;
    z-index: 1070;
    display: block;
    margin: 0;
    font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-style: normal;
    font-weight: 400;
    line-height: 1.6;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    word-break: normal;
    word-spacing: normal;
    white-space: normal;
    line-break: auto;
    font-size: 0.875rem;
    word-wrap: break-word;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.tooltip.show {
    opacity: 0.95;
}

.tooltip .arrow {
    position: absolute;
    display: block;
    width: 0.8rem;
    height: 0.4rem;
}

.tooltip .arrow::before {
    position: absolute;
    content: "";
    border-color: transparent;
    border-style: solid;
}

.bs-tooltip-top,
.bs-tooltip-auto[x-placement^="top"] {
    padding: 0.4rem 0;
}

.bs-tooltip-top .arrow,
.bs-tooltip-auto[x-placement^="top"] .arrow {
    bottom: 0;
}

.bs-tooltip-top .arrow::before,
.bs-tooltip-auto[x-placement^="top"] .arrow::before {
    top: 0;
    border-width: 0.4rem 0.4rem 0;
    border-top-color: #2677dd;
}

.bs-tooltip-right,
.bs-tooltip-auto[x-placement^="right"] {
    padding: 0 0.4rem;
}

.bs-tooltip-right .arrow,
.bs-tooltip-auto[x-placement^="right"] .arrow {
    left: 0;
    width: 0.4rem;
    height: 0.8rem;
}

.bs-tooltip-right .arrow::before,
.bs-tooltip-auto[x-placement^="right"] .arrow::before {
    right: 0;
    border-width: 0.4rem 0.4rem 0.4rem 0;
    border-right-color: #2677dd;
}

.bs-tooltip-bottom,
.bs-tooltip-auto[x-placement^="bottom"] {
    padding: 0.4rem 0;
}

.bs-tooltip-bottom .arrow,
.bs-tooltip-auto[x-placement^="bottom"] .arrow {
    top: 0;
}

.bs-tooltip-bottom .arrow::before,
.bs-tooltip-auto[x-placement^="bottom"] .arrow::before {
    bottom: 0;
    border-width: 0 0.4rem 0.4rem;
    border-bottom-color: #2677dd;
}

.bs-tooltip-left,
.bs-tooltip-auto[x-placement^="left"] {
    padding: 0 0.4rem;
}

.bs-tooltip-left .arrow,
.bs-tooltip-auto[x-placement^="left"] .arrow {
    right: 0;
    width: 0.4rem;
    height: 0.8rem;
}

.bs-tooltip-left .arrow::before,
.bs-tooltip-auto[x-placement^="left"] .arrow::before {
    left: 0;
    border-width: 0.4rem 0 0.4rem 0.4rem;
    border-left-color: #2677dd;
}

.tooltip-inner {
    max-width: 200px;
    padding: 0.5rem 1rem;
    color: #fff;
    text-align: center;
    background: linear-gradient(135deg, #2677dd, #1a5fb4);
    border-radius: 12px;
    box-shadow: 0 4px 15px rgba(38, 119, 221, 0.3);
    font-weight: 500;
}

/* ===== POPOVER ===== */
.popover {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1060;
    display: block;
    max-width: 276px;
    font-family: "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-style: normal;
    font-weight: 400;
    line-height: 1.6;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    letter-spacing: normal;
    word-break: normal;
    word-spacing: normal;
    white-space: normal;
    line-break: auto;
    font-size: 0.875rem;
    word-wrap: break-word;
    background: linear-gradient(135deg, #2a2a2a, #303030);
    background-clip: padding-box;
    border: 1px solid rgba(38, 119, 221, 0.2);
    border-radius: 20px;
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.3);
    animation: popoverAppear 0.2s ease;
}

@keyframes popoverAppear {
    from {
        opacity: 0;
        transform: scale(0.95);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.popover .arrow {
    position: absolute;
    display: block;
    width: 1rem;
    height: 0.5rem;
    margin: 0 0.3rem;
}

.popover .arrow::before,
.popover .arrow::after {
    position: absolute;
    display: block;
    content: "";
    border-color: transparent;
    border-style: solid;
}

.bs-popover-top,
.bs-popover-auto[x-placement^="top"] {
    margin-bottom: 0.5rem;
}

.bs-popover-top > .arrow,
.bs-popover-auto[x-placement^="top"] > .arrow {
    bottom: calc(-0.5rem - 1px);
}

.bs-popover-top > .arrow::before,
.bs-popover-auto[x-placement^="top"] > .arrow::before {
    bottom: 0;
    border-width: 0.5rem 0.5rem 0;
    border-top-color: rgba(38, 119, 221, 0.4);
}

.bs-popover-top > .arrow::after,
.bs-popover-auto[x-placement^="top"] > .arrow::after {
    bottom: 1px;
    border-width: 0.5rem 0.5rem 0;
    border-top-color: #2a2a2a;
}

.bs-popover-right,
.bs-popover-auto[x-placement^="right"] {
    margin-left: 0.5rem;
}

.bs-popover-right > .arrow,
.bs-popover-auto[x-placement^="right"] > .arrow {
    left: calc(-0.5rem - 1px);
    width: 0.5rem;
    height: 1rem;
    margin: 0.3rem 0;
}

.bs-popover-right > .arrow::before,
.bs-popover-auto[x-placement^="right"] > .arrow::before {
    left: 0;
    border-width: 0.5rem 0.5rem 0.5rem 0;
    border-right-color: rgba(38, 119, 221, 0.4);
}

.bs-popover-right > .arrow::after,
.bs-popover-auto[x-placement^="right"] > .arrow::after {
    left: 1px;
    border-width: 0.5rem 0.5rem 0.5rem 0;
    border-right-color: #2a2a2a;
}

.bs-popover-bottom,
.bs-popover-auto[x-placement^="bottom"] {
    margin-top: 0.5rem;
}

.bs-popover-bottom > .arrow,
.bs-popover-auto[x-placement^="bottom"] > .arrow {
    top: calc(-0.5rem - 1px);
}

.bs-popover-bottom > .arrow::before,
.bs-popover-auto[x-placement^="bottom"] > .arrow::before {
    top: 0;
    border-width: 0 0.5rem 0.5rem;
    border-bottom-color: rgba(38, 119, 221, 0.4);
}

.bs-popover-bottom > .arrow::after,
.bs-popover-auto[x-placement^="bottom"] > .arrow::after {
    top: 1px;
    border-width: 0 0.5rem 0.5rem;
    border-bottom-color: #2a2a2a;
}

.bs-popover-bottom .popover-header::before,
.bs-popover-auto[x-placement^="bottom"] .popover-header::before {
    position: absolute;
    top: 0;
    left: 50%;
    display: block;
    width: 1rem;
    margin-left: -0.5rem;
    content: "";
    border-bottom: 1px solid rgba(38, 119, 221, 0.2);
}

.bs-popover-left,
.bs-popover-auto[x-placement^="left"] {
    margin-right: 0.5rem;
}

.bs-popover-left > .arrow,
.bs-popover-auto[x-placement^="left"] > .arrow {
    right: calc(-0.5rem - 1px);
    width: 0.5rem;
    height: 1rem;
    margin: 0.3rem 0;
}

.bs-popover-left > .arrow::before,
.bs-popover-auto[x-placement^="left"] > .arrow::before {
    right: 0;
    border-width: 0.5rem 0 0.5rem 0.5rem;
    border-left-color: rgba(38, 119, 221, 0.4);
}

.bs-popover-left > .arrow::after,
.bs-popover-auto[x-placement^="left"] > .arrow::after {
    right: 1px;
    border-width: 0.5rem 0 0.5rem 0.5rem;
    border-left-color: #2a2a2a;
}

.popover-header {
    padding: 0.75rem 1rem;
    margin-bottom: 0;
    font-size: 1rem;
    color: #fff;
    background: rgba(38, 119, 221, 0.1);
    border-bottom: 1px solid rgba(38, 119, 221, 0.2);
    border-top-left-radius: 19px;
    border-top-right-radius: 19px;
    font-weight: 600;
}

.popover-header:empty {
    display: none;
}

.popover-body {
    padding: 1rem;
    color: #e0e0e0;
}

/* ===== CAROUSEL ===== */
.carousel {
    position: relative;
}

.carousel.pointer-event {
    touch-action: pan-y;
}

.carousel-inner {
    position: relative;
    width: 100%;
    overflow: hidden;
    border-radius: 20px;
}

.carousel-inner::after {
    display: block;
    clear: both;
    content: "";
}

.carousel-item {
    position: relative;
    display: none;
    float: left;
    width: 100%;
    margin-right: -100%;
    backface-visibility: hidden;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.carousel-item.active,
.carousel-item-next,
.carousel-item-prev {
    display: block;
}

.carousel-item-next:not(.carousel-item-left),
.active.carousel-item-right {
    transform: translateX(100%);
}

.carousel-item-prev:not(.carousel-item-right),
.active.carousel-item-left {
    transform: translateX(-100%);
}

.carousel-fade .carousel-item {
    opacity: 0;
    transition-property: opacity;
    transform: none;
}

.carousel-fade .carousel-item.active,
.carousel-fade .carousel-item-next.carousel-item-left,
.carousel-fade .carousel-item-prev.carousel-item-right {
    z-index: 1;
    opacity: 1;
}

.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
    z-index: 0;
    opacity: 0;
    transition: opacity 0s 0.6s;
}

















@media (prefers-reduced-motion: reduce) {
    .carousel-item {
        transition: none;
    }
    .carousel-fade .active.carousel-item-left,
    .carousel-fade .active.carousel-item-right {
        transition: none;
    }
    .carousel-control-next,
    .carousel-control-prev {
        transition: none;
    }
}

.carousel-item-next,
.carousel-item-prev,
.carousel-item.active {
    display: block;
}

.carousel-item-next:not(.carousel-item-left),
.active.carousel-item-right {
    transform: translateX(100%);
}

.carousel-item-prev:not(.carousel-item-right),
.active.carousel-item-left {
    transform: translateX(-100%);
}

/* ===== CAROUSEL FADE ===== */
.carousel-fade .carousel-item {
    opacity: 0;
    transition-property: opacity;
    transform: none;
}

.carousel-fade .carousel-item.active,
.carousel-fade .carousel-item-next.carousel-item-left,
.carousel-fade .carousel-item-prev.carousel-item-right {
    z-index: 1;
    opacity: 1;
}

.carousel-fade .active.carousel-item-left,
.carousel-fade .active.carousel-item-right {
    z-index: 0;
    opacity: 0;
    transition: opacity 0s 0.6s;
}

/* ===== CAROUSEL CONTROLS ===== */
.carousel-control-prev,
.carousel-control-next {
    position: absolute;
    top: 0;
    bottom: 0;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15%;
    padding: 0;
    color: #fff;
    text-align: center;
    background: linear-gradient(90deg, rgba(38, 119, 221, 0.2), transparent);
    border: 0;
    opacity: 0.6;
    transition: all 0.3s ease;
    cursor: pointer;
}

.carousel-control-prev:hover,
.carousel-control-next:hover {
    opacity: 1;
    background: linear-gradient(90deg, rgba(38, 119, 221, 0.4), transparent);
    transform: scale(1.05);
}

.carousel-control-prev:focus,
.carousel-control-next:focus {
    outline: 0;
    opacity: 0.9;
}

.carousel-control-prev {
    left: 0;
    border-radius: 0 20px 20px 0;
}

.carousel-control-next {
    right: 0;
    border-radius: 20px 0 0 20px;
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    background: 50% / 100% 100% no-repeat;
    transition: all 0.3s ease;
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.3));
}

.carousel-control-prev:hover .carousel-control-prev-icon,
.carousel-control-next:hover .carousel-control-next-icon {
    transform: scale(1.2);
}

.carousel-control-prev-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%232677dd' width='24' height='24' viewBox='0 0 8 8'%3E%3Cpath d='m5.25 0-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3E%3C/svg%3E");
}

.carousel-control-next-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%232677dd' width='24' height='24' viewBox='0 0 8 8'%3E%3Cpath d='m2.75 0-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3E%3C/svg%3E");
}

/* ===== CAROUSEL INDICATORS ===== */
.carousel-indicators {
    position: absolute;
    right: 0;
    bottom: 20px;
    left: 0;
    z-index: 15;
    display: flex;
    justify-content: center;
    padding-left: 0;
    margin-right: 15%;
    margin-left: 15%;
    list-style: none;
    gap: 8px;
}

.carousel-indicators li {
    box-sizing: content-box;
    flex: 0 1 auto;
    width: 30px;
    height: 4px;
    padding: 0;
    margin-right: 3px;
    margin-left: 3px;
    text-indent: -999px;
    cursor: pointer;
    background: rgba(255, 255, 255, 0.3);
    border: none;
    border-radius: 4px;
    transition: all 0.3s ease;
}

.carousel-indicators li:hover {
    background: rgba(38, 119, 221, 0.6);
    transform: scaleY(1.5);
}

.carousel-indicators .active {
    background: #2677dd;
    width: 40px;
    box-shadow: 0 0 10px rgba(38, 119, 221, 0.5);
}

/* ===== CAROUSEL CAPTION ===== */
.carousel-caption {
    position: absolute;
    right: 15%;
    bottom: 80px;
    left: 15%;
    z-index: 10;
    padding: 1.5rem;
    color: #fff;
    text-align: center;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.7), rgba(38, 119, 221, 0.3));
    border-radius: 20px;
    backdrop-filter: blur(5px);
    border: 1px solid rgba(255, 255, 255, 0.1);
    animation: captionFade 0.5s ease;
}

@keyframes captionFade {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.carousel-caption h5 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #fff;
}

.carousel-caption p {
    font-size: 1rem;
    margin-bottom: 0;
    color: #e0e0e0;
}

/* ===== CAROUSEL DARK VARIANT ===== */
.carousel-dark .carousel-control-prev-icon,
.carousel-dark .carousel-control-next-icon {
    filter: invert(1) grayscale(100);
}

.carousel-dark .carousel-indicators li {
    background-color: rgba(0, 0, 0, 0.5);
}

.carousel-dark .carousel-caption {
    color: #000;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.3));
}

/* ===== CAROUSEL ANIMATIONS ===== */
.carousel-item {
    animation: carouselSlide 0.6s ease;
}

@keyframes carouselSlide {
    from {
        opacity: 0.8;
    }
    to {
        opacity: 1;
    }
}

/* ===== CAROUSEL WITH THUMBNAILS ===== */
.carousel-thumbnails {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 1rem;
}

.carousel-thumbnail {
    width: 60px;
    height: 40px;
    border-radius: 8px;
    overflow: hidden;
    cursor: pointer;
    opacity: 0.6;
    transition: all 0.3s ease;
    border: 2px solid transparent;
}

.carousel-thumbnail:hover {
    opacity: 0.9;
    transform: translateY(-3px);
}

.carousel-thumbnail.active {
    opacity: 1;
    border-color: #2677dd;
    box-shadow: 0 0 15px rgba(38, 119, 221, 0.5);
}

.carousel-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ===== CAROUSEL WITH CUSTOM ARROWS ===== */
.carousel-arrows .carousel-control-prev,
.carousel-arrows .carousel-control-next {
    width: 50px;
    height: 50px;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(38, 119, 221, 0.3);
    border-radius: 50%;
    backdrop-filter: blur(5px);
}

.carousel-arrows .carousel-control-prev {
    left: 20px;
}

.carousel-arrows .carousel-control-next {
    right: 20px;
}

.carousel-arrows .carousel-control-prev:hover,
.carousel-arrows .carousel-control-next:hover {
    background: rgba(38, 119, 221, 0.7);
    transform: translateY(-50%) scale(1.1);
}


























@media (prefers-reduced-motion: reduce) {
    .carousel-indicators li {
        transition: none;
    }
    .spinner-border,
    .spinner-grow {
        animation-duration: 1.5s;
    }
}

/* ===== CAROUSEL INDICATORS ===== */
.carousel-indicators .active {
    opacity: 1;
}

/* ===== CAROUSEL CAPTION ===== */
.carousel-caption {
    position: absolute;
    right: 15%;
    bottom: 20px;
    left: 15%;
    z-index: 10;
    padding-top: 20px;
    padding-bottom: 20px;
    color: #fff;
    text-align: center;
    background: rgba(0, 0, 0, 0.5);
    border-radius: 12px;
    backdrop-filter: blur(5px);
}

/* ===== SPINNERS ===== */
@keyframes spinner-border {
    to {
        transform: rotate(360deg);
    }
}

.spinner-border {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: -0.125em;
    border: 0.25em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spinner-border 0.75s linear infinite;
    color: #2677dd;
}

.spinner-border-sm {
    width: 1rem;
    height: 1rem;
    border-width: 0.2em;
}

@keyframes spinner-grow {
    0% {
        transform: scale(0);
    }
    50% {
        opacity: 1;
        transform: none;
    }
}

.spinner-grow {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: -0.125em;
    background-color: #2677dd;
    border-radius: 50%;
    opacity: 0;
    animation: spinner-grow 0.75s linear infinite;
}

.spinner-grow-sm {
    width: 1rem;
    height: 1rem;
}

/* ===== ALIGNMENT ===== */
.align-baseline { vertical-align: baseline !important; }
.align-top { vertical-align: top !important; }
.align-middle { vertical-align: middle !important; }
.align-bottom { vertical-align: bottom !important; }
.align-text-bottom { vertical-align: text-bottom !important; }
.align-text-top { vertical-align: text-top !important; }

/* ===== BACKGROUND COLORS (ТЁМНЫЙ ФОН) ===== */
.bg-primary {
    background-color: #2677dd !important;
}
a.bg-primary:hover,
a.bg-primary:focus,
button.bg-primary:hover,
button.bg-primary:focus {
    background-color: #1c5fb4 !important;
}

.bg-secondary {
    background-color: #444 !important;
}
a.bg-secondary:hover,
a.bg-secondary:focus,
button.bg-secondary:hover,
button.bg-secondary:focus {
    background-color: #2b2b2b !important;
}

.bg-success {
    background-color: #00bc8c !important;
}
a.bg-success:hover,
a.bg-success:focus,
button.bg-success:hover,
button.bg-success:focus {
    background-color: #008966 !important;
}

.bg-info {
    background-color: #181C32 !important;
}
a.bg-info:hover,
a.bg-info:focus,
button.bg-info:hover,
button.bg-info:focus {
    background-color: #0f1326 !important;
}

.bg-warning {
    background-color: #6f42c1 !important;
}
a.bg-warning:hover,
a.bg-warning:focus,
button.bg-warning:hover,
button.bg-warning:focus {
    background-color: #59339d !important;
}

.bg-danger {
    background-color: #e74c3c !important;
}
a.bg-danger:hover,
a.bg-danger:focus,
button.bg-danger:hover,
button.bg-danger:focus {
    background-color: #d62c1a !important;
}

.bg-light {
    background-color: #adb5bd !important;
}
a.bg-light:hover,
a.bg-light:focus,
button.bg-light:hover,
button.bg-light:focus {
    background-color: #919ca6 !important;
}

.bg-dark {
    background-color: rgb(6, 9, 31); !important;
}
a.bg-dark:hover,
a.bg-dark:focus,
button.bg-dark:hover,
button.bg-dark:focus {
    background-color: #171717 !important;
}

/* Градиенты */
.bg-gradient-primary {
    background: #2677dd linear-gradient(180deg, #256ac1, #2677dd) repeat-x !important;
}
.bg-gradient-secondary {
    background: #444 linear-gradient(180deg, #3f3f3f, #444) repeat-x !important;
}
.bg-gradient-success {
    background: #00bc8c linear-gradient(180deg, #05a57c, #00bc8c) repeat-x !important;
}
.bg-gradient-info {
    background: #3498db linear-gradient(180deg, #3186bf, #3498db) repeat-x !important;
}
.bg-gradient-warning {
    background: #6f42c1 linear-gradient(180deg, #633da9, #6f42c1) repeat-x !important;
}
.bg-gradient-danger {
    background: #e74c3c linear-gradient(180deg, #c94638, #e74c3c) repeat-x !important;
}
.bg-gradient-light {
    background: #adb5bd linear-gradient(180deg, #989fa6, #adb5bd) repeat-x !important;
}
.bg-gradient-dark {
    background: var(--dark) !important;
}

.bg-white {
    background-color: #fff !important;
}
.bg-transparent {
    background-color: transparent !important;
}

/* ===== BORDERS (ТЁМНЫЕ) ===== */
.border {
    border: 1px solid #444 !important;
}
.border-top {
    border-top: 1px solid #444 !important;
}
.border-right {
    border-right: 1px solid #444 !important;
}
.border-bottom {
    border-bottom: 1px solid #444 !important;
}
.border-left {
    border-left: 1px solid #444 !important;
}
.border-0 {
    border: 0 !important;
}
.border-top-0 {
    border-top: 0 !important;
}
.border-right-0 {
    border-right: 0 !important;
}
.border-bottom-0 {
    border-bottom: 0 !important;
}
.border-left-0 {
    border-left: 0 !important;
}

.border-primary {
    border-color: #2677dd !important;
}
.border-secondary {
    border-color: #444 !important;
}
.border-success {
    border-color: #00bc8c !important;
}
.border-info {
    border-color: #181C32 !important;
}
.border-warning {
    border-color: #6f42c1 !important;
}
.border-danger {
    border-color: #e74c3c !important;
}
.border-light {
    border-color: #adb5bd !important;
}
.border-dark {
    border-color: #303030 !important;
}
.border-white {
    border-color: #fff !important;
}

/* ===== BORDER RADIUS ===== */
.rounded-sm {
    border-radius: 8px !important;
}
.rounded {
    border-radius: 12px !important;
}
.rounded-top {
    border-top-left-radius: 12px !important;
    border-top-right-radius: 12px !important;
}
.rounded-right {
    border-top-right-radius: 12px !important;
    border-bottom-right-radius: 12px !important;
}
.rounded-bottom {
    border-bottom-right-radius: 12px !important;
    border-bottom-left-radius: 12px !important;
}
.rounded-left {
    border-top-left-radius: 12px !important;
    border-bottom-left-radius: 12px !important;
}
.rounded-lg {
    border-radius: 20px !important;
}
.rounded-circle {
    border-radius: 50% !important;
}
.rounded-pill {
    border-radius: 50px !important;
}
.rounded-0 {
    border-radius: 0 !important;
}

/* ===== CLEARFIX ===== */
.clearfix::after {
    display: block;
    clear: both;
    content: "";
}

/* ===== DISPLAY UTILITIES ===== */
.d-none { display: none !important; }
.d-inline { display: inline !important; }
.d-inline-block { display: inline-block !important; }
.d-block { display: block !important; }
.d-table { display: table !important; }
.d-table-row { display: table-row !important; }
.d-table-cell { display: table-cell !important; }
.d-flex { display: flex !important; }
.d-inline-flex { display: inline-flex !important; }

@media (min-width: 576px) {
    .d-sm-none { display: none !important; }
    .d-sm-inline { display: inline !important; }
    .d-sm-inline-block { display: inline-block !important; }
    .d-sm-block { display: block !important; }
    .d-sm-table { display: table !important; }
    .d-sm-table-row { display: table-row !important; }
    .d-sm-table-cell { display: table-cell !important; }
    .d-sm-flex { display: flex !important; }
    .d-sm-inline-flex { display: inline-flex !important; }
}







 
 













/* ===== RESPONSIVE DISPLAY UTILITIES ===== */
@media (min-width: 768px) {
    .d-md-none { display: none !important; }
    .d-md-inline { display: inline !important; }
    .d-md-inline-block { display: inline-block !important; }
    .d-md-block { display: block !important; }
    .d-md-table { display: table !important; }
    .d-md-table-row { display: table-row !important; }
    .d-md-table-cell { display: table-cell !important; }
    .d-md-flex { display: flex !important; }
    .d-md-inline-flex { display: inline-flex !important; }
}

@media (min-width: 992px) {
    .d-lg-none { display: none !important; }
    .d-lg-inline { display: inline !important; }
    .d-lg-inline-block { display: inline-block !important; }
    .d-lg-block { display: block !important; }
    .d-lg-table { display: table !important; }
    .d-lg-table-row { display: table-row !important; }
    .d-lg-table-cell { display: table-cell !important; }
    .d-lg-flex { display: flex !important; }
    .d-lg-inline-flex { display: inline-flex !important; }
}

@media (min-width: 1200px) {
    .d-xl-none { display: none !important; }
    .d-xl-inline { display: inline !important; }
    .d-xl-inline-block { display: inline-block !important; }
    .d-xl-block { display: block !important; }
    .d-xl-table { display: table !important; }
    .d-xl-table-row { display: table-row !important; }
    .d-xl-table-cell { display: table-cell !important; }
    .d-xl-flex { display: flex !important; }
    .d-xl-inline-flex { display: inline-flex !important; }
}

/* ===== GLOBAL STYLES WITH DARK BACKGROUND ===== */
body {
    background-color: var(--bg-deep-dark);
    color: #e2e8f0;
}

/* Navbar */
.navbar {
    background-color: var(--bg-deep-darker) !important;
    border-bottom: 1px solid rgba(38, 119, 221, 0.15);
}

.navbar-brand {
    color: #fff !important;
}

.navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.7) !important;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
    color: #fff !important;
    background: rgba(38, 119, 221, 0.1);
}

.navbar-nav .nav-link.active {
    color: var(--primary-blue) !important;
}

/* Cards */
.card {
    background-color: var(--dark);
    border: 1px solid rgba(38, 119, 221, 0.15);
    border-radius: 16px;
}

.card-header {
    background: rgba(38, 119, 221, 0.1);
    border-bottom: 1px solid rgba(38, 119, 221, 0.15);
}

/* Modal */
.modal-content {
    background-color: var(--dark);
    border: 1px solid rgba(38, 119, 221, 0.2);
    border-radius: 20px;
}

.modal-header {
    border-bottom: 1px solid rgba(38, 119, 221, 0.15);
    background: rgba(38, 119, 221, 0.05);
}

.modal-footer {
    border-top: 1px solid rgba(38, 119, 221, 0.15);
    background: rgba(38, 119, 221, 0.05);
}

/* Dropdown */
.dropdown-menu {
    background-color: var(--dark);
    border: 1px solid rgba(38, 119, 221, 0.2);
    border-radius: 16px;
}

.dropdown-item {
    color: #cbd5e1;
}

.dropdown-item:hover,
.dropdown-item:focus {
    background: rgba(38, 119, 221, 0.1);
    color: #fff;
}

.dropdown-item.active {
    background: linear-gradient(135deg, var(--primary-blue), var(--primary-blue-dark));
    color: #fff;
}

/* List Group */
.list-group {
    background: transparent;
}

.list-group-item {
    background-color: var(--dark);
    border: 1px solid rgba(38, 119, 221, 0.15);
    border-radius: 12px !important;
    color: #e2e8f0;
}

.list-group-item:hover {
    background-color: rgba(38, 119, 221, 0.1);
    border-color: var(--primary-blue);
}

.list-group-item.active {
    background: linear-gradient(135deg, var(--primary-blue), var(--primary-blue-dark));
    border-color: var(--primary-blue);
}

/* Progress */
.progress {
    background-color: var(--bg-deep-darker);
    border-radius: 50px;
}

.progress-bar {
    background: linear-gradient(90deg, var(--primary-blue), var(--primary-blue-dark));
}

/* Jumbotron */
.jumbotron {
    background-color: var(--bg-surface) !important;
    border-radius: 24px;
}

/* Alerts */
.alert {
    border-radius: 16px;
    border-left-width: 4px;
}

.alert-primary {
    background: rgba(38, 119, 221, 0.15);
    border-left-color: var(--primary-blue);
    color: #e2e8f0;
}

.alert-success {
    background: rgba(0, 188, 140, 0.15);
    border-left-color: #00bc8c;
    color: #e2e8f0;
}

.alert-danger {
    background: rgba(231, 76, 60, 0.15);
    border-left-color: #e74c3c;
    color: #e2e8f0;
}

/* Tables */
.table {
    color: #e2e8f0;
}

.table thead th {
    border-bottom-color: rgba(38, 119, 221, 0.3);
}

.table td,
.table th {
    border-top-color: rgba(38, 119, 221, 0.15);
}

.table-hover tbody tr:hover {
    background: rgba(38, 119, 221, 0.1);
    color: #fff;
}

/* Forms */
.form-control {
    background-color: var(--bg-surface-2);
    border: 1px solid rgba(38, 119, 221, 0.2);
    color: #fff;
}

.form-control:focus {
    background-color: var(--bg-surface-2);
    border-color: var(--primary-blue);
    box-shadow: 0 0 0 3px rgba(38, 119, 221, 0.2);
}

/* Buttons */
.btn-primary {
    background: linear-gradient(135deg, var(--primary-blue), var(--primary-blue-dark));
    border: none;
    box-shadow: 0 4px 15px rgba(38, 119, 221, 0.3);
}

.btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(38, 119, 221, 0.4);
}

.btn-outline-primary {
    border-color: var(--primary-blue);
    color: var(--primary-blue);
}

.btn-outline-primary:hover {
    background: var(--primary-blue);
    color: #fff;
}

/* Badges */
.badge-primary {
    background: linear-gradient(135deg, var(--primary-blue), var(--primary-blue-dark));
}

.badge-success {
    background: linear-gradient(135deg, #00bc8c, #008966);
}

.badge-danger {
    background: linear-gradient(135deg, #e74c3c, #d62c1a);
}

/* Pagination */
.page-link {
    background-color: var(--bg-surface);
    border-color: rgba(38, 119, 221, 0.2);
    color: #e2e8f0;
}

.page-link:hover {
    background-color: rgba(38, 119, 221, 0.1);
    border-color: var(--primary-blue);
    color: #fff;
}

.page-item.active .page-link {
    background: linear-gradient(135deg, var(--primary-blue), var(--primary-blue-dark));
    border-color: var(--primary-blue);
}

/* Breadcrumb */
.breadcrumb {
    background-color: var(--bg-surface);
    border-radius: 50px;
}

.breadcrumb-item a {
    color: #94a3b8;
}

.breadcrumb-item a:hover {
    color: var(--primary-blue);
}

.breadcrumb-item.active {
    color: var(--primary-blue);
}

/* Tooltips */
.tooltip-inner {
    background: linear-gradient(135deg, var(--primary-blue), var(--primary-blue-dark));
    border-radius: 8px;
}

.bs-tooltip-top .arrow::before,
.bs-tooltip-auto[x-placement^="top"] .arrow::before {
    border-top-color: var(--primary-blue);
}

/* Popovers */
.popover {
    background-color: var(--bg-surface);
    border-color: rgba(38, 119, 221, 0.3);
}

.popover-header {
    background: rgba(38, 119, 221, 0.1);
    border-bottom-color: rgba(38, 119, 221, 0.2);
    color: #fff;
}

.popover-body {
    color: #e2e8f0;
}

.bs-popover-top .arrow::after,
.bs-popover-auto[x-placement^="top"] .arrow::after {
    border-top-color: var(--bg-surface);
}

/* Carousel */
.carousel-indicators li {
    background-color: rgba(255, 255, 255, 0.3);
}

.carousel-indicators .active {
    background-color: var(--primary-blue);
}

.carousel-control-prev-icon,
.carousel-control-next-icon {
    filter: drop-shadow(0 2px 5px rgba(0, 0, 0, 0.5));
}

/* Close button */
.close {
    color: #fff;
    opacity: 0.6;
}

.close:hover {
    color: var(--primary-blue);
    opacity: 1;
}

/* Spinners */
.spinner-border,
.spinner-grow {
    color: var(--primary-blue);
}









@media print {
    .d-print-none { display: none !important; }
    .d-print-inline { display: inline !important; }
    .d-print-inline-block { display: inline-block !important; }
    .d-print-block { display: block !important; }
    .d-print-table { display: table !important; }
    .d-print-table-row { display: table-row !important; }
    .d-print-table-cell { display: table-cell !important; }
    .d-print-flex { display: flex !important; }
    .d-print-inline-flex { display: inline-flex !important; }
}

/* ===== EMBED RESPONSIVE ===== */
.embed-responsive {
    position: relative;
    display: block;
    width: 100%;
    padding: 0;
    overflow: hidden;
}

.embed-responsive::before {
    display: block;
    content: "";
}

.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
    border-radius: 16px;
}

.embed-responsive-21by9::before {
    padding-top: 42.85714286%;
}

.embed-responsive-16by9::before {
    padding-top: 56.25%;
}

.embed-responsive-4by3::before {
    padding-top: 75%;
}

.embed-responsive-1by1::before {
    padding-top: 100%;
}

/* ===== FLEX UTILITIES ===== */
.flex-row { flex-direction: row !important; }
.flex-column { flex-direction: column !important; }
.flex-row-reverse { flex-direction: row-reverse !important; }
.flex-column-reverse { flex-direction: column-reverse !important; }

.flex-wrap { flex-wrap: wrap !important; }
.flex-nowrap { flex-wrap: nowrap !important; }
.flex-wrap-reverse { flex-wrap: wrap-reverse !important; }

.flex-fill { flex: 1 1 auto !important; }
.flex-grow-0 { flex-grow: 0 !important; }
.flex-grow-1 { flex-grow: 1 !important; }
.flex-shrink-0 { flex-shrink: 0 !important; }
.flex-shrink-1 { flex-shrink: 1 !important; }

.justify-content-start { justify-content: flex-start !important; }
.justify-content-end { justify-content: flex-end !important; }
.justify-content-center { justify-content: center !important; }
.justify-content-between { justify-content: space-between !important; }
.justify-content-around { justify-content: space-around !important; }

.align-items-start { align-items: flex-start !important; }
.align-items-end { align-items: flex-end !important; }
.align-items-center { align-items: center !important; }
.align-items-baseline { align-items: baseline !important; }
.align-items-stretch { align-items: stretch !important; }

.align-content-start { align-content: flex-start !important; }
.align-content-end { align-content: flex-end !important; }
.align-content-center { align-content: center !important; }
.align-content-between { align-content: space-between !important; }
.align-content-around { align-content: space-around !important; }
.align-content-stretch { align-content: stretch !important; }

.align-self-auto { align-self: auto !important; }
.align-self-start { align-self: flex-start !important; }
.align-self-end { align-self: flex-end !important; }
.align-self-center { align-self: center !important; }
.align-self-baseline { align-self: baseline !important; }
.align-self-stretch { align-self: stretch !important; }














@media (min-width: 576px) {
    .flex-sm-row { flex-direction: row !important; }
    .flex-sm-column { flex-direction: column !important; }
    .flex-sm-row-reverse { flex-direction: row-reverse !important; }
    .flex-sm-column-reverse { flex-direction: column-reverse !important; }
    
    .flex-sm-wrap { flex-wrap: wrap !important; }
    .flex-sm-nowrap { flex-wrap: nowrap !important; }
    .flex-sm-wrap-reverse { flex-wrap: wrap-reverse !important; }
    
    .flex-sm-fill { flex: 1 1 auto !important; }
    .flex-sm-grow-0 { flex-grow: 0 !important; }
    .flex-sm-grow-1 { flex-grow: 1 !important; }
    .flex-sm-shrink-0 { flex-shrink: 0 !important; }
    .flex-sm-shrink-1 { flex-shrink: 1 !important; }
    
    .justify-content-sm-start { justify-content: flex-start !important; }
    .justify-content-sm-end { justify-content: flex-end !important; }
    .justify-content-sm-center { justify-content: center !important; }
    .justify-content-sm-between { justify-content: space-between !important; }
    .justify-content-sm-around { justify-content: space-around !important; }
    
    .align-items-sm-start { align-items: flex-start !important; }
    .align-items-sm-end { align-items: flex-end !important; }
    .align-items-sm-center { align-items: center !important; }
    .align-items-sm-baseline { align-items: baseline !important; }
    .align-items-sm-stretch { align-items: stretch !important; }
    
    .align-content-sm-start { align-content: flex-start !important; }
    .align-content-sm-end { align-content: flex-end !important; }
    .align-content-sm-center { align-content: center !important; }
    .align-content-sm-between { align-content: space-between !important; }
    .align-content-sm-around { align-content: space-around !important; }
    .align-content-sm-stretch { align-content: stretch !important; }
    
    .align-self-sm-auto { align-self: auto !important; }
    .align-self-sm-start { align-self: flex-start !important; }
    .align-self-sm-end { align-self: flex-end !important; }
    .align-self-sm-center { align-self: center !important; }
    .align-self-sm-baseline { align-self: baseline !important; }
    .align-self-sm-stretch { align-self: stretch !important; }
}










@media (min-width: 768px) {
    .flex-md-row { flex-direction: row !important; }
    .flex-md-column { flex-direction: column !important; }
    .flex-md-row-reverse { flex-direction: row-reverse !important; }
    .flex-md-column-reverse { flex-direction: column-reverse !important; }
    .flex-md-wrap { flex-wrap: wrap !important; }
    .flex-md-nowrap { flex-wrap: nowrap !important; }
    .flex-md-wrap-reverse { flex-wrap: wrap-reverse !important; }
    .flex-md-fill { flex: 1 1 auto !important; }
    .flex-md-grow-0 { flex-grow: 0 !important; }
    .flex-md-grow-1 { flex-grow: 1 !important; }
    .flex-md-shrink-0 { flex-shrink: 0 !important; }
    .flex-md-shrink-1 { flex-shrink: 1 !important; }
    .justify-content-md-start { justify-content: flex-start !important; }
    .justify-content-md-end { justify-content: flex-end !important; }
    .justify-content-md-center { justify-content: center !important; }
    .justify-content-md-between { justify-content: space-between !important; }
    .justify-content-md-around { justify-content: space-around !important; }
    .align-items-md-start { align-items: flex-start !important; }
    .align-items-md-end { align-items: flex-end !important; }
    .align-items-md-center { align-items: center !important; }
    .align-items-md-baseline { align-items: baseline !important; }
    .align-items-md-stretch { align-items: stretch !important; }
    .align-content-md-start { align-content: flex-start !important; }
    .align-content-md-end { align-content: flex-end !important; }
    .align-content-md-center { align-content: center !important; }
    .align-content-md-between { align-content: space-between !important; }
    .align-content-md-around { align-content: space-around !important; }
    .align-content-md-stretch { align-content: stretch !important; }
    .align-self-md-auto { align-self: auto !important; }
    .align-self-md-start { align-self: flex-start !important; }
    .align-self-md-end { align-self: flex-end !important; }
    .align-self-md-center { align-self: center !important; }
    .align-self-md-baseline { align-self: baseline !important; }
    .align-self-md-stretch { align-self: stretch !important; }
}








@media (min-width: 992px) {
    .flex-lg-row { flex-direction: row !important; }
    .flex-lg-column { flex-direction: column !important; }
    .flex-lg-row-reverse { flex-direction: row-reverse !important; }
    .flex-lg-column-reverse { flex-direction: column-reverse !important; }
    .flex-lg-wrap { flex-wrap: wrap !important; }
    .flex-lg-nowrap { flex-wrap: nowrap !important; }
    .flex-lg-wrap-reverse { flex-wrap: wrap-reverse !important; }
    .flex-lg-fill { flex: 1 1 auto !important; }
    .flex-lg-grow-0 { flex-grow: 0 !important; }
    .flex-lg-grow-1 { flex-grow: 1 !important; }
    .flex-lg-shrink-0 { flex-shrink: 0 !important; }
    .flex-lg-shrink-1 { flex-shrink: 1 !important; }
    .justify-content-lg-start { justify-content: flex-start !important; }
    .justify-content-lg-end { justify-content: flex-end !important; }
    .justify-content-lg-center { justify-content: center !important; }
    .justify-content-lg-between { justify-content: space-between !important; }
    .justify-content-lg-around { justify-content: space-around !important; }
    .align-items-lg-start { align-items: flex-start !important; }
    .align-items-lg-end { align-items: flex-end !important; }
    .align-items-lg-center { align-items: center !important; }
    .align-items-lg-baseline { align-items: baseline !important; }
    .align-items-lg-stretch { align-items: stretch !important; }
    .align-content-lg-start { align-content: flex-start !important; }
    .align-content-lg-end { align-content: flex-end !important; }
    .align-content-lg-center { align-content: center !important; }
    .align-content-lg-between { align-content: space-between !important; }
    .align-content-lg-around { align-content: space-around !important; }
    .align-content-lg-stretch { align-content: stretch !important; }
    .align-self-lg-auto { align-self: auto !important; }
    .align-self-lg-start { align-self: flex-start !important; }
    .align-self-lg-end { align-self: flex-end !important; }
    .align-self-lg-center { align-self: center !important; }
    .align-self-lg-baseline { align-self: baseline !important; }
    .align-self-lg-stretch { align-self: stretch !important; }
}






@media (min-width: 1200px) {
    .flex-xl-row { flex-direction: row !important; }
    .flex-xl-column { flex-direction: column !important; }
    .flex-xl-row-reverse { flex-direction: row-reverse !important; }
    .flex-xl-column-reverse { flex-direction: column-reverse !important; }
    .flex-xl-wrap { flex-wrap: wrap !important; }
    .flex-xl-nowrap { flex-wrap: nowrap !important; }
    .flex-xl-wrap-reverse { flex-wrap: wrap-reverse !important; }
    .flex-xl-fill { flex: 1 1 auto !important; }
    .flex-xl-grow-0 { flex-grow: 0 !important; }
    .flex-xl-grow-1 { flex-grow: 1 !important; }
    .flex-xl-shrink-0 { flex-shrink: 0 !important; }
    .flex-xl-shrink-1 { flex-shrink: 1 !important; }
    .justify-content-xl-start { justify-content: flex-start !important; }
    .justify-content-xl-end { justify-content: flex-end !important; }
    .justify-content-xl-center { justify-content: center !important; }
    .justify-content-xl-between { justify-content: space-between !important; }
    .justify-content-xl-around { justify-content: space-around !important; }
    .align-items-xl-start { align-items: flex-start !important; }
    .align-items-xl-end { align-items: flex-end !important; }
    .align-items-xl-center { align-items: center !important; }
    .align-items-xl-baseline { align-items: baseline !important; }
    .align-items-xl-stretch { align-items: stretch !important; }
    .align-content-xl-start { align-content: flex-start !important; }
    .align-content-xl-end { align-content: flex-end !important; }
    .align-content-xl-center { align-content: center !important; }
    .align-content-xl-between { align-content: space-between !important; }
    .align-content-xl-around { align-content: space-around !important; }
    .align-content-xl-stretch { align-content: stretch !important; }
    .align-self-xl-auto { align-self: auto !important; }
    .align-self-xl-start { align-self: flex-start !important; }
    .align-self-xl-end { align-self: flex-end !important; }
    .align-self-xl-center { align-self: center !important; }
    .align-self-xl-baseline { align-self: baseline !important; }
    .align-self-xl-stretch { align-self: stretch !important; }
}

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








@media (min-width: 576px) {
    .float-sm-left { float: left !important; }
    .float-sm-right { float: right !important; }
    .float-sm-none { float: none !important; }
}

@media (min-width: 768px) {
    .float-md-left { float: left !important; }
    .float-md-right { float: right !important; }
    .float-md-none { float: none !important; }
}

@media (min-width: 992px) {
    .float-lg-left { float: left !important; }
    .float-lg-right { float: right !important; }
    .float-lg-none { float: none !important; }
}




@media (min-width: 1200px) {
    .float-xl-left { float: left !important; }
    .float-xl-right { float: right !important; }
    .float-xl-none { float: none !important; }
}

/* ===== USER SELECT ===== */
.user-select-all {
    -webkit-user-select: all !important;
    -moz-user-select: all !important;
    user-select: all !important;
}
.user-select-auto {
    -webkit-user-select: auto !important;
    -moz-user-select: auto !important;
    user-select: auto !important;
}
.user-select-none {
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    user-select: none !important;
}

/* ===== OVERFLOW ===== */
.overflow-auto { overflow: auto !important; }
.overflow-hidden { overflow: hidden !important; }

/* ===== POSITION ===== */
.position-static { position: static !important; }
.position-relative { position: relative !important; }
.position-absolute { position: absolute !important; }
.position-fixed { position: fixed !important; }
.position-sticky { position: sticky !important; }

/* ===== FIXED POSITIONS ===== */
.fixed-top {
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 1030;
}
.fixed-bottom {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1030;
}

@supports (position: sticky) {
    .sticky-top {
        position: sticky;
        top: 0;
        z-index: 1020;
    }
}

/* ===== SR ONLY ===== */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
    position: static;
    width: auto;
    height: auto;
    overflow: visible;
    clip: auto;
    white-space: normal;
}

/* ===== SHADOWS ===== */
.shadow-sm { box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2) !important; }
.shadow { box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3) !important; }
.shadow-lg { box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4) !important; }
.shadow-none { box-shadow: none !important; }

/* ===== WIDTH & HEIGHT ===== */
.w-25 { width: 25% !important; }
.w-50 { width: 50% !important; }
.w-75 { width: 75% !important; }
.w-100 { width: 100% !important; }
.w-auto { width: auto !important; }

.h-25 { height: 25% !important; }
.h-50 { height: 50% !important; }
.h-75 { height: 75% !important; }
.h-100 { height: 100% !important; }
.h-auto { height: auto !important; }

.mw-100 { max-width: 100% !important; }
.mh-100 { max-height: 100% !important; }

.min-vw-100 { min-width: 100vw !important; }
.min-vh-100 { min-height: 100vh !important; }
.vw-100 { width: 100vw !important; }
.vh-100 { height: 100vh !important; }

/* ===== MARGINS ===== */
.m-0 { margin: 0 !important; }
.mt-0, .my-0 { margin-top: 0 !important; }
.mr-0, .mx-0 { margin-right: 0 !important; }
.mb-0, .my-0 { margin-bottom: 0 !important; }
.ml-0, .mx-0 { margin-left: 0 !important; }

.m-1 { margin: 0.25rem !important; }
.mt-1, .my-1 { margin-top: 0.25rem !important; }
.mr-1, .mx-1 { margin-right: 0.25rem !important; }
.mb-1, .my-1 { margin-bottom: 0.25rem !important; }
.ml-1, .mx-1 { margin-left: 0.25rem !important; }

.m-2 { margin: 0.5rem !important; }
.mt-2, .my-2 { margin-top: 0.5rem !important; }
.mr-2, .mx-2 { margin-right: 0.5rem !important; }
.mb-2, .my-2 { margin-bottom: 0.5rem !important; }
.ml-2, .mx-2 { margin-left: 0.5rem !important; }

.m-3 { margin: 1rem !important; }
.mt-3, .my-3 { margin-top: 1rem !important; }
.mr-3, .mx-3 { margin-right: 1rem !important; }
.mb-3, .my-3 { margin-bottom: 1rem !important; }
.ml-3, .mx-3 { margin-left: 1rem !important; }

.m-4 { margin: 1.5rem !important; }
.mt-4, .my-4 { margin-top: 1.5rem !important; }
.mr-4, .mx-4 { margin-right: 1.5rem !important; }
.mb-4, .my-4 { margin-bottom: 1.5rem !important; }
.ml-4, .mx-4 { margin-left: 1.5rem !important; }

.m-5 { margin: 3rem !important; }
.mt-5, .my-5 { margin-top: 3rem !important; }
.mr-5, .mx-5 { margin-right: 3rem !important; }
.mb-5, .my-5 { margin-bottom: 3rem !important; }
.ml-5, .mx-5 { margin-left: 3rem !important; }

/* ===== PADDINGS ===== */
.p-0 { padding: 0 !important; }
.pt-0, .py-0 { padding-top: 0 !important; }
.pr-0, .px-0 { padding-right: 0 !important; }
.pb-0, .py-0 { padding-bottom: 0 !important; }
.pl-0, .px-0 { padding-left: 0 !important; }

.p-1 { padding: 0.25rem !important; }
.pt-1, .py-1 { padding-top: 0.25rem !important; }
.pr-1, .px-1 { padding-right: 0.25rem !important; }
.pb-1, .py-1 { padding-bottom: 0.25rem !important; }
.pl-1, .px-1 { padding-left: 0.25rem !important; }

.p-2 { padding: 0.5rem !important; }
.pt-2, .py-2 { padding-top: 0.5rem !important; }
.pr-2, .px-2 { padding-right: 0.5rem !important; }
.pb-2, .py-2 { padding-bottom: 0.5rem !important; }
.pl-2, .px-2 { padding-left: 0.5rem !important; }

.p-3 { padding: 1rem !important; }
.pt-3, .py-3 { padding-top: 1rem !important; }
.pr-3, .px-3 { padding-right: 1rem !important; }
.pb-3, .py-3 { padding-bottom: 1rem !important; }
.pl-3, .px-3 { padding-left: 1rem !important; }

.p-4 { padding: 1.5rem !important; }
.pt-4, .py-4 { padding-top: 1.5rem !important; }
.pt-10 { padding-top: 2rem !important; }
.pr-4, .px-4 { padding-right: 1.5rem !important; }
.pb-4, .py-4 { padding-bottom: 1.5rem !important; }
.pl-4, .px-4 { padding-left: 1.5rem !important; }

.p-5 { padding: 3rem !important; }
.pt-5, .py-5 { padding-top: 3rem !important; }
.pr-5, .px-5 { padding-right: 3rem !important; }
.pb-5, .py-5 { padding-bottom: 3rem !important; }
.pl-5, .px-5 { padding-left: 3rem !important; }

/* ===== NEGATIVE MARGINS ===== */
.m-n1 { margin: -0.25rem !important; }
.mt-n1, .my-n1 { margin-top: -0.25rem !important; }
.mr-n1, .mx-n1 { margin-right: -0.25rem !important; }
.mb-n1, .my-n1 { margin-bottom: -0.25rem !important; }
.ml-n1, .mx-n1 { margin-left: -0.25rem !important; }

.m-n2 { margin: -0.5rem !important; }
.mt-n2, .my-n2 { margin-top: -0.5rem !important; }
.mr-n2, .mx-n2 { margin-right: -0.5rem !important; }
.mb-n2, .my-n2 { margin-bottom: -0.5rem !important; }
.ml-n2, .mx-n2 { margin-left: -0.5rem !important; }

.m-n3 { margin: -1rem !important; }
.mt-n3, .my-n3 { margin-top: -1rem !important; }
.mr-n3, .mx-n3 { margin-right: -1rem !important; }
.mb-n3, .my-n3 { margin-bottom: -1rem !important; }
.ml-n3, .mx-n3 { margin-left: -1rem !important; }

.m-n4 { margin: -1.5rem !important; }
.mt-n4, .my-n4 { margin-top: -1.5rem !important; }
.mr-n4, .mx-n4 { margin-right: -1.5rem !important; }
.mb-n4, .my-n4 { margin-bottom: -1.5rem !important; }
.ml-n4, .mx-n4 { margin-left: -1.5rem !important; }

.m-n5 { margin: -3rem !important; }
.mt-n5, .my-n5 { margin-top: -3rem !important; }
.mr-n5, .mx-n5 { margin-right: -3rem !important; }
.mb-n5, .my-n5 { margin-bottom: -3rem !important; }
.ml-n5, .mx-n5 { margin-left: -3rem !important; }

/* ===== AUTO MARGINS ===== */
.m-auto { margin: auto !important; }
.mt-auto, .my-auto { margin-top: auto !important; }
.mr-auto, .mx-auto { margin-right: auto !important; }
.mb-auto, .my-auto { margin-bottom: auto !important; }
.ml-auto, .mx-auto { margin-left: auto !important; }













@media (min-width: 576px) {
    .m-sm-0 { margin: 0 !important; }
    .mt-sm-0, .my-sm-0 { margin-top: 0 !important; }
    .mr-sm-0, .mx-sm-0 { margin-right: 0 !important; }
    .mb-sm-0, .my-sm-0 { margin-bottom: 0 !important; }
    .ml-sm-0, .mx-sm-0 { margin-left: 0 !important; }

    .m-sm-1 { margin: 0.25rem !important; }
    .mt-sm-1, .my-sm-1 { margin-top: 0.25rem !important; }
    .mr-sm-1, .mx-sm-1 { margin-right: 0.25rem !important; }
    .mb-sm-1, .my-sm-1 { margin-bottom: 0.25rem !important; }
    .ml-sm-1, .mx-sm-1 { margin-left: 0.25rem !important; }

    .m-sm-2 { margin: 0.5rem !important; }
    .mt-sm-2, .my-sm-2 { margin-top: 0.5rem !important; }
    .mr-sm-2, .mx-sm-2 { margin-right: 0.5rem !important; }
    .mb-sm-2, .my-sm-2 { margin-bottom: 0.5rem !important; }
    .ml-sm-2, .mx-sm-2 { margin-left: 0.5rem !important; }

    .m-sm-3 { margin: 1rem !important; }
    .mt-sm-3, .my-sm-3 { margin-top: 1rem !important; }
    .mr-sm-3, .mx-sm-3 { margin-right: 1rem !important; }
    .mb-sm-3, .my-sm-3 { margin-bottom: 1rem !important; }
    .ml-sm-3, .mx-sm-3 { margin-left: 1rem !important; }

    .m-sm-4 { margin: 1.5rem !important; }
    .mt-sm-4, .my-sm-4 { margin-top: 1.5rem !important; }
    .mr-sm-4, .mx-sm-4 { margin-right: 1.5rem !important; }
    .mb-sm-4, .my-sm-4 { margin-bottom: 1.5rem !important; }
    .ml-sm-4, .mx-sm-4 { margin-left: 1.5rem !important; }

    .m-sm-5 { margin: 3rem !important; }
    .mt-sm-5, .my-sm-5 { margin-top: 3rem !important; }
    .mr-sm-5, .mx-sm-5 { margin-right: 3rem !important; }
    .mb-sm-5, .my-sm-5 { margin-bottom: 3rem !important; }
    .ml-sm-5, .mx-sm-5 { margin-left: 3rem !important; }

    .p-sm-0 { padding: 0 !important; }
    .pt-sm-0, .py-sm-0 { padding-top: 0 !important; }
    .pr-sm-0, .px-sm-0 { padding-right: 0 !important; }
    .pb-sm-0, .py-sm-0 { padding-bottom: 0 !important; }
    .pl-sm-0, .px-sm-0 { padding-left: 0 !important; }

    .p-sm-1 { padding: 0.25rem !important; }
    .pt-sm-1, .py-sm-1 { padding-top: 0.25rem !important; }
    .pr-sm-1, .px-sm-1 { padding-right: 0.25rem !important; }
    .pb-sm-1, .py-sm-1 { padding-bottom: 0.25rem !important; }
    .pl-sm-1, .px-sm-1 { padding-left: 0.25rem !important; }

    .p-sm-2 { padding: 0.5rem !important; }
    .pt-sm-2, .py-sm-2 { padding-top: 0.5rem !important; }
    .pr-sm-2, .px-sm-2 { padding-right: 0.5rem !important; }
    .pb-sm-2, .py-sm-2 { padding-bottom: 0.5rem !important; }
    .pl-sm-2, .px-sm-2 { padding-left: 0.5rem !important; }

    .p-sm-3 { padding: 1rem !important; }
    .pt-sm-3, .py-sm-3 { padding-top: 1rem !important; }
    .pr-sm-3, .px-sm-3 { padding-right: 1rem !important; }
    .pb-sm-3, .py-sm-3 { padding-bottom: 1rem !important; }
    .pl-sm-3, .px-sm-3 { padding-left: 1rem !important; }

    .p-sm-4 { padding: 1.5rem !important; }
    .pt-sm-4, .py-sm-4 { padding-top: 1.5rem !important; }
    .pr-sm-4, .px-sm-4 { padding-right: 1.5rem !important; }
    .pb-sm-4, .py-sm-4 { padding-bottom: 1.5rem !important; }
    .pl-sm-4, .px-sm-4 { padding-left: 1.5rem !important; }

    .p-sm-5 { padding: 3rem !important; }
    .pt-sm-5, .py-sm-5 { padding-top: 3rem !important; }
    .pr-sm-5, .px-sm-5 { padding-right: 3rem !important; }
    .pb-sm-5, .py-sm-5 { padding-bottom: 3rem !important; }
    .pl-sm-5, .px-sm-5 { padding-left: 3rem !important; }

    .m-sm-n1 { margin: -0.25rem !important; }
    .mt-sm-n1, .my-sm-n1 { margin-top: -0.25rem !important; }
    .mr-sm-n1, .mx-sm-n1 { margin-right: -0.25rem !important; }
    .mb-sm-n1, .my-sm-n1 { margin-bottom: -0.25rem !important; }
    .ml-sm-n1, .mx-sm-n1 { margin-left: -0.25rem !important; }

    .m-sm-n2 { margin: -0.5rem !important; }
    .mt-sm-n2, .my-sm-n2 { margin-top: -0.5rem !important; }
    .mr-sm-n2, .mx-sm-n2 { margin-right: -0.5rem !important; }
    .mb-sm-n2, .my-sm-n2 { margin-bottom: -0.5rem !important; }
    .ml-sm-n2, .mx-sm-n2 { margin-left: -0.5rem !important; }

    .m-sm-n3 { margin: -1rem !important; }
    .mt-sm-n3, .my-sm-n3 { margin-top: -1rem !important; }
    .mr-sm-n3, .mx-sm-n3 { margin-right: -1rem !important; }
    .mb-sm-n3, .my-sm-n3 { margin-bottom: -1rem !important; }
    .ml-sm-n3, .mx-sm-n3 { margin-left: -1rem !important; }

    .m-sm-n4 { margin: -1.5rem !important; }
    .mt-sm-n4, .my-sm-n4 { margin-top: -1.5rem !important; }
    .mr-sm-n4, .mx-sm-n4 { margin-right: -1.5rem !important; }
    .mb-sm-n4, .my-sm-n4 { margin-bottom: -1.5rem !important; }
    .ml-sm-n4, .mx-sm-n4 { margin-left: -1.5rem !important; }

    .m-sm-n5 { margin: -3rem !important; }
    .mt-sm-n5, .my-sm-n5 { margin-top: -3rem !important; }
    .mr-sm-n5, .mx-sm-n5 { margin-right: -3rem !important; }
    .mb-sm-n5, .my-sm-n5 { margin-bottom: -3rem !important; }
    .ml-sm-n5, .mx-sm-n5 { margin-left: -3rem !important; }

    .m-sm-auto { margin: auto !important; }
    .mt-sm-auto, .my-sm-auto { margin-top: auto !important; }
    .mr-sm-auto, .mx-sm-auto { margin-right: auto !important; }
    .mb-sm-auto, .my-sm-auto { margin-bottom: auto !important; }
    .ml-sm-auto, .mx-sm-auto { margin-left: auto !important; }
}












@media (min-width: 768px) {
    .m-md-0 { margin: 0 !important; }
    .mt-md-0, .my-md-0 { margin-top: 0 !important; }
    .mr-md-0, .mx-md-0 { margin-right: 0 !important; }
    .mb-md-0, .my-md-0 { margin-bottom: 0 !important; }
    .ml-md-0, .mx-md-0 { margin-left: 0 !important; }

    .m-md-1 { margin: 0.25rem !important; }
    .mt-md-1, .my-md-1 { margin-top: 0.25rem !important; }
    .mr-md-1, .mx-md-1 { margin-right: 0.25rem !important; }
    .mb-md-1, .my-md-1 { margin-bottom: 0.25rem !important; }
    .ml-md-1, .mx-md-1 { margin-left: 0.25rem !important; }

    .m-md-2 { margin: 0.5rem !important; }
    .mt-md-2, .my-md-2 { margin-top: 0.5rem !important; }
    .mr-md-2, .mx-md-2 { margin-right: 0.5rem !important; }
    .mb-md-2, .my-md-2 { margin-bottom: 0.5rem !important; }
    .ml-md-2, .mx-md-2 { margin-left: 0.5rem !important; }

    .m-md-3 { margin: 1rem !important; }
    .mt-md-3, .my-md-3 { margin-top: 1rem !important; }
    .mr-md-3, .mx-md-3 { margin-right: 1rem !important; }
    .mb-md-3, .my-md-3 { margin-bottom: 1rem !important; }
    .ml-md-3, .mx-md-3 { margin-left: 1rem !important; }

    .m-md-4 { margin: 1.5rem !important; }
    .mt-md-4, .my-md-4 { margin-top: 1.5rem !important; }
    .mr-md-4, .mx-md-4 { margin-right: 1.5rem !important; }
    .mb-md-4, .my-md-4 { margin-bottom: 1.5rem !important; }
    .ml-md-4, .mx-md-4 { margin-left: 1.5rem !important; }

    .m-md-5 { margin: 3rem !important; }
    .mt-md-5, .my-md-5 { margin-top: 3rem !important; }
    .mr-md-5, .mx-md-5 { margin-right: 3rem !important; }
    .mb-md-5, .my-md-5 { margin-bottom: 3rem !important; }
    .ml-md-5, .mx-md-5 { margin-left: 3rem !important; }

    .p-md-0 { padding: 0 !important; }
    .pt-md-0, .py-md-0 { padding-top: 0 !important; }
    .pr-md-0, .px-md-0 { padding-right: 0 !important; }
    .pb-md-0, .py-md-0 { padding-bottom: 0 !important; }
    .pl-md-0, .px-md-0 { padding-left: 0 !important; }

    .p-md-1 { padding: 0.25rem !important; }
    .pt-md-1, .py-md-1 { padding-top: 0.25rem !important; }
    .pr-md-1, .px-md-1 { padding-right: 0.25rem !important; }
    .pb-md-1, .py-md-1 { padding-bottom: 0.25rem !important; }
    .pl-md-1, .px-md-1 { padding-left: 0.25rem !important; }

    .p-md-2 { padding: 0.5rem !important; }
    .pt-md-2, .py-md-2 { padding-top: 0.5rem !important; }
    .pr-md-2, .px-md-2 { padding-right: 0.5rem !important; }
    .pb-md-2, .py-md-2 { padding-bottom: 0.5rem !important; }
    .pl-md-2, .px-md-2 { padding-left: 0.5rem !important; }

    .p-md-3 { padding: 1rem !important; }
    .pt-md-3, .py-md-3 { padding-top: 1rem !important; }
    .pr-md-3, .px-md-3 { padding-right: 1rem !important; }
    .pb-md-3, .py-md-3 { padding-bottom: 1rem !important; }
    .pl-md-3, .px-md-3 { padding-left: 1rem !important; }

    .p-md-4 { padding: 1.5rem !important; }
    .pt-md-4, .py-md-4 { padding-top: 1.5rem !important; }
    .pr-md-4, .px-md-4 { padding-right: 1.5rem !important; }
    .pb-md-4, .py-md-4 { padding-bottom: 1.5rem !important; }
    .pl-md-4, .px-md-4 { padding-left: 1.5rem !important; }

    .p-md-5 { padding: 3rem !important; }
    .pt-md-5, .py-md-5 { padding-top: 3rem !important; }
    .pr-md-5, .px-md-5 { padding-right: 3rem !important; }
    .pb-md-5, .py-md-5 { padding-bottom: 3rem !important; }
    .pl-md-5, .px-md-5 { padding-left: 3rem !important; }

    .m-md-n1 { margin: -0.25rem !important; }
    .mt-md-n1, .my-md-n1 { margin-top: -0.25rem !important; }
    .mr-md-n1, .mx-md-n1 { margin-right: -0.25rem !important; }
    .mb-md-n1, .my-md-n1 { margin-bottom: -0.25rem !important; }
    .ml-md-n1, .mx-md-n1 { margin-left: -0.25rem !important; }

    .m-md-n2 { margin: -0.5rem !important; }
    .mt-md-n2, .my-md-n2 { margin-top: -0.5rem !important; }
    .mr-md-n2, .mx-md-n2 { margin-right: -0.5rem !important; }
    .mb-md-n2, .my-md-n2 { margin-bottom: -0.5rem !important; }
    .ml-md-n2, .mx-md-n2 { margin-left: -0.5rem !important; }

    .m-md-n3 { margin: -1rem !important; }
    .mt-md-n3, .my-md-n3 { margin-top: -1rem !important; }
    .mr-md-n3, .mx-md-n3 { margin-right: -1rem !important; }
    .mb-md-n3, .my-md-n3 { margin-bottom: -1rem !important; }
    .ml-md-n3, .mx-md-n3 { margin-left: -1rem !important; }

    .m-md-n4 { margin: -1.5rem !important; }
    .mt-md-n4, .my-md-n4 { margin-top: -1.5rem !important; }
    .mr-md-n4, .mx-md-n4 { margin-right: -1.5rem !important; }
    .mb-md-n4, .my-md-n4 { margin-bottom: -1.5rem !important; }
    .ml-md-n4, .mx-md-n4 { margin-left: -1.5rem !important; }

    .m-md-n5 { margin: -3rem !important; }
    .mt-md-n5, .my-md-n5 { margin-top: -3rem !important; }
    .mr-md-n5, .mx-md-n5 { margin-right: -3rem !important; }
    .mb-md-n5, .my-md-n5 { margin-bottom: -3rem !important; }
    .ml-md-n5, .mx-md-n5 { margin-left: -3rem !important; }

    .m-md-auto { margin: auto !important; }
    .mt-md-auto, .my-md-auto { margin-top: auto !important; }
    .mr-md-auto, .mx-md-auto { margin-right: auto !important; }
    .mb-md-auto, .my-md-auto { margin-bottom: auto !important; }
    .ml-md-auto, .mx-md-auto { margin-left: auto !important; }
}








@media (min-width: 992px) {
    .m-lg-0 { margin: 0 !important; }
    .mt-lg-0, .my-lg-0 { margin-top: 0 !important; }
    .mr-lg-0, .mx-lg-0 { margin-right: 0 !important; }
    .mb-lg-0, .my-lg-0 { margin-bottom: 0 !important; }
    .ml-lg-0, .mx-lg-0 { margin-left: 0 !important; }

    .m-lg-1 { margin: 0.25rem !important; }
    .mt-lg-1, .my-lg-1 { margin-top: 0.25rem !important; }
    .mr-lg-1, .mx-lg-1 { margin-right: 0.25rem !important; }
    .mb-lg-1, .my-lg-1 { margin-bottom: 0.25rem !important; }
    .ml-lg-1, .mx-lg-1 { margin-left: 0.25rem !important; }

    .m-lg-2 { margin: 0.5rem !important; }
    .mt-lg-2, .my-lg-2 { margin-top: 0.5rem !important; }
    .mr-lg-2, .mx-lg-2 { margin-right: 0.5rem !important; }
    .mb-lg-2, .my-lg-2 { margin-bottom: 0.5rem !important; }
    .ml-lg-2, .mx-lg-2 { margin-left: 0.5rem !important; }

    .m-lg-3 { margin: 1rem !important; }
    .mt-lg-3, .my-lg-3 { margin-top: 1rem !important; }
    .mr-lg-3, .mx-lg-3 { margin-right: 1rem !important; }
    .mb-lg-3, .my-lg-3 { margin-bottom: 1rem !important; }
    .ml-lg-3, .mx-lg-3 { margin-left: 1rem !important; }

    .m-lg-4 { margin: 1.5rem !important; }
    .mt-lg-4, .my-lg-4 { margin-top: 1.5rem !important; }
    .mr-lg-4, .mx-lg-4 { margin-right: 1.5rem !important; }
    .mb-lg-4, .my-lg-4 { margin-bottom: 1.5rem !important; }
    .ml-lg-4, .mx-lg-4 { margin-left: 1.5rem !important; }

    .m-lg-5 { margin: 3rem !important; }
    .mt-lg-5, .my-lg-5 { margin-top: 3rem !important; }
    .mr-lg-5, .mx-lg-5 { margin-right: 3rem !important; }
    .mb-lg-5, .my-lg-5 { margin-bottom: 3rem !important; }
    .ml-lg-5, .mx-lg-5 { margin-left: 3rem !important; }

    .p-lg-0 { padding: 0 !important; }
    .pt-lg-0, .py-lg-0 { padding-top: 0 !important; }
    .pr-lg-0, .px-lg-0 { padding-right: 0 !important; }
    .pb-lg-0, .py-lg-0 { padding-bottom: 0 !important; }
    .pl-lg-0, .px-lg-0 { padding-left: 0 !important; }

    .p-lg-1 { padding: 0.25rem !important; }
    .pt-lg-1, .py-lg-1 { padding-top: 0.25rem !important; }
    .pr-lg-1, .px-lg-1 { padding-right: 0.25rem !important; }
    .pb-lg-1, .py-lg-1 { padding-bottom: 0.25rem !important; }
    .pl-lg-1, .px-lg-1 { padding-left: 0.25rem !important; }

    .p-lg-2 { padding: 0.5rem !important; }
    .pt-lg-2, .py-lg-2 { padding-top: 0.5rem !important; }
    .pr-lg-2, .px-lg-2 { padding-right: 0.5rem !important; }
    .pb-lg-2, .py-lg-2 { padding-bottom: 0.5rem !important; }
    .pl-lg-2, .px-lg-2 { padding-left: 0.5rem !important; }

    .p-lg-3 { padding: 1rem !important; }
    .pt-lg-3, .py-lg-3 { padding-top: 1rem !important; }
    .pr-lg-3, .px-lg-3 { padding-right: 1rem !important; }
    .pb-lg-3, .py-lg-3 { padding-bottom: 1rem !important; }
    .pl-lg-3, .px-lg-3 { padding-left: 1rem !important; }

    .p-lg-4 { padding: 1.5rem !important; }
    .pt-lg-4, .py-lg-4 { padding-top: 1.5rem !important; }
    .pr-lg-4, .px-lg-4 { padding-right: 1.5rem !important; }
    .pb-lg-4, .py-lg-4 { padding-bottom: 1.5rem !important; }
    .pl-lg-4, .px-lg-4 { padding-left: 1.5rem !important; }

    .p-lg-5 { padding: 3rem !important; }
    .pt-lg-5, .py-lg-5 { padding-top: 3rem !important; }
    .pr-lg-5, .px-lg-5 { padding-right: 3rem !important; }
    .pb-lg-5, .py-lg-5 { padding-bottom: 3rem !important; }
    .pl-lg-5, .px-lg-5 { padding-left: 3rem !important; }

    .m-lg-n1 { margin: -0.25rem !important; }
    .mt-lg-n1, .my-lg-n1 { margin-top: -0.25rem !important; }
    .mr-lg-n1, .mx-lg-n1 { margin-right: -0.25rem !important; }
    .mb-lg-n1, .my-lg-n1 { margin-bottom: -0.25rem !important; }
    .ml-lg-n1, .mx-lg-n1 { margin-left: -0.25rem !important; }

    .m-lg-n2 { margin: -0.5rem !important; }
    .mt-lg-n2, .my-lg-n2 { margin-top: -0.5rem !important; }
    .mr-lg-n2, .mx-lg-n2 { margin-right: -0.5rem !important; }
    .mb-lg-n2, .my-lg-n2 { margin-bottom: -0.5rem !important; }
    .ml-lg-n2, .mx-lg-n2 { margin-left: -0.5rem !important; }

    .m-lg-n3 { margin: -1rem !important; }
    .mt-lg-n3, .my-lg-n3 { margin-top: -1rem !important; }
    .mr-lg-n3, .mx-lg-n3 { margin-right: -1rem !important; }
    .mb-lg-n3, .my-lg-n3 { margin-bottom: -1rem !important; }
    .ml-lg-n3, .mx-lg-n3 { margin-left: -1rem !important; }

    .m-lg-n4 { margin: -1.5rem !important; }
    .mt-lg-n4, .my-lg-n4 { margin-top: -1.5rem !important; }
    .mr-lg-n4, .mx-lg-n4 { margin-right: -1.5rem !important; }
    .mb-lg-n4, .my-lg-n4 { margin-bottom: -1.5rem !important; }
    .ml-lg-n4, .mx-lg-n4 { margin-left: -1.5rem !important; }

    .m-lg-n5 { margin: -3rem !important; }
    .mt-lg-n5, .my-lg-n5 { margin-top: -3rem !important; }
    .mr-lg-n5, .mx-lg-n5 { margin-right: -3rem !important; }
    .mb-lg-n5, .my-lg-n5 { margin-bottom: -3rem !important; }
    .ml-lg-n5, .mx-lg-n5 { margin-left: -3rem !important; }

    .m-lg-auto { margin: auto !important; }
    .mt-lg-auto, .my-lg-auto { margin-top: auto !important; }
    .mr-lg-auto, .mx-lg-auto { margin-right: auto !important; }
    .mb-lg-auto, .my-lg-auto { margin-bottom: auto !important; }
    .ml-lg-auto, .mx-lg-auto { margin-left: auto !important; }
}










@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link:after{background-color:transparent;bottom:0;content:"";left:0;pointer-events:auto;position:absolute;right:0;top:0;z-index:1}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}











/* ===== TEXT ALIGN ===== */
@media (min-width: 576px) {
    .text-sm-left { text-align: left !important; }
    .text-sm-right { text-align: right !important; }
    .text-sm-center { text-align: center !important; }
}

@media (min-width: 768px) {
    .text-md-left { text-align: left !important; }
    .text-md-right { text-align: right !important; }
    .text-md-center { text-align: center !important; }
}

@media (min-width: 992px) {
    .text-lg-left { text-align: left !important; }
    .text-lg-right { text-align: right !important; }
    .text-lg-center { text-align: center !important; }
}

@media (min-width: 1200px) {
    .text-xl-left { text-align: left !important; }
    .text-xl-right { text-align: right !important; }
    .text-xl-center { text-align: center !important; }
}

/* ===== TEXT TRANSFORM ===== */
.text-lowercase { text-transform: lowercase !important; }
.text-uppercase { text-transform: uppercase !important; }
.text-capitalize { text-transform: capitalize !important; }

/* ===== FONT WEIGHT ===== */
.font-weight-light { font-weight: 300 !important; }
.font-weight-lighter { font-weight: lighter !important; }
.font-weight-normal { font-weight: 400 !important; }
.font-weight-bold { font-weight: 700 !important; }
.font-weight-bolder { font-weight: bolder !important; }
.font-italic { font-style: italic !important; }

/* ===== TEXT COLORS ===== */
.text-white { color: #fff !important; }

.text-primary { color: #2677dd !important; }
a.text-primary:hover,
a.text-primary:focus { color: #1a5fb4 !important; }

.text-secondary { color: #444 !important; }
a.text-secondary:hover,
a.text-secondary:focus { color: #2b2b2b !important; }

.text-success { color: #00bc8c !important; }
a.text-success:hover,
a.text-success:focus { color: #008966 !important; }

.text-info { color: #3498db !important; }
a.text-info:hover,
a.text-info:focus { color: #217dbb !important; }

.text-warning { color: #6f42c1 !important; }
a.text-warning:hover,
a.text-warning:focus { color: #59339d !important; }

.text-danger { color: #e74c3c !important; }
a.text-danger:hover,
a.text-danger:focus { color: #d62c1a !important; }

.text-light { color: #adb5bd !important; }
a.text-light:hover,
a.text-light:focus { color: #919ca6 !important; }

.text-dark { color: #303030 !important; }
a.text-dark:hover,
a.text-dark:focus { color: #171717 !important; }

.text-body { color: #fff !important; }
.text-muted { color: #94a3b8 !important; }
.text-black-50 { color: rgba(0, 0, 0, 0.5) !important; }
.text-white-50 { color: rgba(255, 255, 255, 0.5) !important; }

/* ===== TEXT HIDE ===== */
.text-hide {
    font: 0/0 a;
    color: transparent;
    text-shadow: none;
    background-color: transparent;
    border: 0;
}

/* ===== TEXT DECORATION ===== */
.text-decoration-none { text-decoration: none !important; }

/* ===== TEXT BREAK ===== */
.text-break {
    word-wrap: break-word !important;
    word-break: break-word !important;
}

/* ===== TEXT RESET ===== */
.text-reset { color: inherit !important; }

/* ===== VISIBILITY ===== */
.visible { visibility: visible !important; }
.invisible { visibility: hidden !important; }









@media print {
    *,
    *::before,
    *::after {
        text-shadow: none !important;
        box-shadow: none !important;
    }

    a:not(.btn) {
        text-decoration: underline;
    }

    abbr[title]::after {
        content: " (" attr(title) ")";
    }

    pre {
        white-space: pre-wrap !important;
    }

    pre,
    blockquote {
        border: 1px solid #adb5bd;
        page-break-inside: avoid;
    }

    img,
    tr,
    blockquote {
        page-break-inside: avoid;
    }

    h2,
    h3,
    p {
        orphans: 3;
        widows: 3;
    }

    h2,
    h3 {
        page-break-after: avoid;
    }

    @page {
        size: a3;
    }

    body,
    .container {
        min-width: 992px !important;
    }

    .navbar {
        display: none;
    }

    .badge {
        border: 1px solid #000;
    }

    .table {
        border-collapse: collapse !important;
    }

    .table td,
    .table th {
        background-color: #fff !important;
    }

    .table-bordered th,
    .table-bordered td {
        border: 1px solid #dee2e6 !important;
    }

    .table-dark {
        color: inherit;
    }

    .table-dark th,
    .table-dark td,
    .table-dark thead th,
    .table-dark tbody + tbody {
        border-color: #444;
    }

    .table .thead-dark th {
        color: inherit;
        border-color: #444;
    }
}

.blockquote-footer {
    color: #888;
}

/* ===== TABLE COLORS ===== */
.table-primary,
.table-primary > th,
.table-primary > td {
    background-color: #2677dd;
}

.table-secondary,
.table-secondary > th,
.table-secondary > td {
    background-color: #444;
}

.table-light,
.table-light > th,
.table-light > td {
    background-color: #adb5bd;
}

.table-dark,
.table-dark > th,
.table-dark > td {
    background-color: #303030;
}

.table-success,
.table-success > th,
.table-success > td {
    background-color: #00bc8c;
}

.table-info,
.table-info > th,
.table-info > td {
    background-color: #3498db;
}

.table-danger,
.table-danger > th,
.table-danger > td {
    background-color: #e74c3c;
}

.table-warning,
.table-warning > th,
.table-warning > td {
    background-color: #6f42c1;
}

.table-active,
.table-active > th,
.table-active > td {
    background-color: rgba(0, 0, 0, 0.075);
}

/* ===== TABLE HOVER ===== */
.table-hover .table-primary:hover,
.table-hover .table-primary:hover > td,
.table-hover .table-primary:hover > th {
    background-color: #206bca;
}

.table-hover .table-secondary:hover,
.table-hover .table-secondary:hover > td,
.table-hover .table-secondary:hover > th {
    background-color: #373737;
}

.table-hover .table-light:hover,
.table-hover .table-light:hover > td,
.table-hover .table-light:hover > th {
    background-color: #9fa8b2;
}

.table-hover .table-dark:hover,
.table-hover .table-dark:hover > td,
.table-hover .table-dark:hover > th {
    background-color: #232323;
}

.table-hover .table-success:hover,
.table-hover .table-success:hover > td,
.table-hover .table-success:hover > th {
    background-color: #00a379;
}

.table-hover .table-info:hover,
.table-hover .table-info:hover > td,
.table-hover .table-info:hover > th {
    background-color: #258cd1;
}

.table-hover .table-danger:hover,
.table-hover .table-danger:hover > td,
.table-hover .table-danger:hover > th {
    background-color: #e43725;
}

.table-hover .table-warning:hover,
.table-hover .table-warning:hover > td,
.table-hover .table-warning:hover > th {
    background-color: #643ab0;
}

.table-hover .table-active:hover,
.table-hover .table-active:hover > td,
.table-hover .table-active:hover > th {
    background-color: rgba(0, 0, 0, 0.075);
}

/* ===== NAVIGATION ===== */
.breadcrumb a,
.nav-tabs .nav-link,
.nav-tabs .nav-link.active,
.nav-tabs .nav-link.active:hover,
.nav-tabs .nav-link.active:focus,
.nav-tabs .nav-item.open .nav-link,
.nav-tabs .nav-item.open .nav-link:hover,
.nav-tabs .nav-item.open .nav-link:focus,
.nav-pills .nav-link,
.nav-pills .nav-link.active,
.nav-pills .nav-link.active:hover,
.nav-pills .nav-link.active:focus,
.nav-pills .nav-item.open .nav-link,
.nav-pills .nav-item.open .nav-link:hover,
.nav-pills .nav-item.open .nav-link:focus,
.input-group-addon {
    color: #fff;
}

/* ===== PAGINATION ===== */
.pagination a:hover {
    text-decoration: none;
}

/* ===== CLOSE BUTTON ===== */
.close {
    opacity: 0.6;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.close:hover,
.close:focus {
    opacity: 1;
    transform: rotate(90deg);
}

/* ===== ALERTS ===== */
.alert {
    border: none;
    color: #fff;
    border-radius: 16px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.alert .alert-link,
.alert a {
    color: #fff;
    text-decoration: underline;
}

.alert-primary {
    background: linear-gradient(135deg, #2677dd, #1a5fb4);
}
.alert-secondary {
    background: linear-gradient(135deg, #444, #333);
}
.alert-success {
    background: linear-gradient(135deg, #00bc8c, #008966);
}
.alert-info {
    background: linear-gradient(135deg, #220606, #220f3d);
}
.alert-warning {
    background: linear-gradient(135deg, #6f42c1, #59339d);
}
.alert-danger {
    background: linear-gradient(135deg, #e74c3c, #d62c1a);
}
.alert-light {
    background: linear-gradient(135deg, #adb5bd, #8f9aa6);
}
.alert-dark {
    background: linear-gradient(135deg, #303030, #202020);
}

/* ===== LIST GROUP ===== */
.list-group-item-action {
    color: #fff;
    transition: all 0.3s ease;
}

.list-group-item-action:hover,
.list-group-item-action:focus {
    background-color: #444;
    color: #fff;
}

.list-group-item-action .list-group-item-heading {
    color: #fff;
}






/*!
 * animate.css - http://daneden.me/animate
 * Version - 3.5.2
 * Licensed under the MIT license - http://opensource.org/licenses/MIT
 *
 * Copyright (c) 2017 Daniel Eden
 */

.animated {
    animation-duration: 1s;
    animation-fill-mode: both;
}

.animated.infinite {
    animation-iteration-count: infinite;
}

.animated.hinge {
    animation-duration: 2s;
}

.animated.bounceIn,
.animated.bounceOut,
.animated.flipOutX,
.animated.flipOutY {
    animation-duration: 0.75s;
}

@keyframes bounce {
    0%, 20%, 53%, 80%, 100% {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
        transform: translate3d(0, 0, 0);
    }
    40%, 43% {
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        transform: translate3d(0, -30px, 0);
    }
    70% {
        animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06);
        transform: translate3d(0, -15px, 0);
    }
    90% {
        transform: translate3d(0, -4px, 0);
    }
}

.bounce {
    animation-name: bounce;
    transform-origin: center bottom;
}

@keyframes flash {
    0%, 50%, 100% {
        opacity: 1;
    }
    25%, 75% {
        opacity: 0;
    }
}

.flash {
    animation-name: flash;
}

@keyframes pulse {
    0% {
        transform: scale3d(1, 1, 1);
    }
    50% {
        transform: scale3d(1.05, 1.05, 1.05);
    }
    100% {
        transform: scale3d(1, 1, 1);
    }
}

.pulse {
    animation-name: pulse;
}

@keyframes rubberBand {
    0% {
        transform: scale3d(1, 1, 1);
    }
    30% {
        transform: scale3d(1.25, 0.75, 1);
    }
    40% {
        transform: scale3d(0.75, 1.25, 1);
    }
    50% {
        transform: scale3d(1.15, 0.85, 1);
    }
    65% {
        transform: scale3d(0.95, 1.05, 1);
    }
    75% {
        transform: scale3d(1.05, 0.95, 1);
    }
    100% {
        transform: scale3d(1, 1, 1);
    }
}

.rubberBand {
    animation-name: rubberBand;
}

@keyframes shake {
    0%, 100% {
        transform: translate3d(0, 0, 0);
    }
    10%, 30%, 50%, 70%, 90% {
        transform: translate3d(-10px, 0, 0);
    }
    20%, 40%, 60%, 80% {
        transform: translate3d(10px, 0, 0);
    }
}

.shake {
    animation-name: shake;
}






@keyframes headShake {
    0% {
        transform: translateX(0);
    }
    6.5% {
        transform: translateX(-6px) rotateY(-9deg);
    }
    18.5% {
        transform: translateX(5px) rotateY(7deg);
    }
    31.5% {
        transform: translateX(-3px) rotateY(-5deg);
    }
    43.5% {
        transform: translateX(2px) rotateY(3deg);
    }
    50% {
        transform: translateX(0);
    }
}

.headShake {
    animation-name: headShake;
    animation-timing-function: ease-in-out;
}

@keyframes swing {
    20% {
        transform: rotate(15deg);
    }
    40% {
        transform: rotate(-10deg);
    }
    60% {
        transform: rotate(5deg);
    }
    80% {
        transform: rotate(-5deg);
    }
    100% {
        transform: rotate(0deg);
    }
}

.swing {
    animation-name: swing;
    transform-origin: top center;
}

@keyframes tada {
    0% {
        transform: scale3d(1, 1, 1);
    }
    10%, 20% {
        transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg);
    }
    30%, 50%, 70%, 90% {
        transform: scale3d(1.1, 1.1, 1.1) rotate(3deg);
    }
    40%, 60%, 80% {
        transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg);
    }
    100% {
        transform: scale3d(1, 1, 1);
    }
}

.tada {
    animation-name: tada;
}

@keyframes wobble {
    0% {
        transform: translate3d(0, 0, 0);
    }
    15% {
        transform: translate3d(-25%, 0, 0) rotate(-5deg);
    }
    30% {
        transform: translate3d(20%, 0, 0) rotate(3deg);
    }
    45% {
        transform: translate3d(-15%, 0, 0) rotate(-3deg);
    }
    60% {
        transform: translate3d(10%, 0, 0) rotate(2deg);
    }
    75% {
        transform: translate3d(-5%, 0, 0) rotate(-1deg);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.wobble {
    animation-name: wobble;
}

@keyframes jello {
    0%, 11.1%, 100% {
        transform: translate3d(0, 0, 0);
    }
    22.2% {
        transform: skewX(-12.5deg) skewY(-12.5deg);
    }
    33.3% {
        transform: skewX(6.25deg) skewY(6.25deg);
    }
    44.4% {
        transform: skewX(-3.125deg) skewY(-3.125deg);
    }
    55.5% {
        transform: skewX(1.5625deg) skewY(1.5625deg);
    }
    66.6% {
        transform: skewX(-0.78125deg) skewY(-0.78125deg);
    }
    77.7% {
        transform: skewX(0.390625deg) skewY(0.390625deg);
    }
    88.8% {
        transform: skewX(-0.1953125deg) skewY(-0.1953125deg);
    }
}

.jello {
    animation-name: jello;
    transform-origin: center;
}






@keyframes bounceIn {
    0%, 20%, 40%, 60%, 80%, 100% {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        transform: scale3d(0.3, 0.3, 0.3);
    }
    20% {
        transform: scale3d(1.1, 1.1, 1.1);
    }
    40% {
        transform: scale3d(0.9, 0.9, 0.9);
    }
    60% {
        opacity: 1;
        transform: scale3d(1.03, 1.03, 1.03);
    }
    80% {
        transform: scale3d(0.97, 0.97, 0.97);
    }
    100% {
        opacity: 1;
        transform: scale3d(1, 1, 1);
    }
}

.bounceIn {
    animation-name: bounceIn;
    animation-duration: 0.75s;
}

@keyframes bounceInDown {
    0%, 60%, 75%, 90%, 100% {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        transform: translate3d(0, -3000px, 0);
    }
    60% {
        opacity: 1;
        transform: translate3d(0, 25px, 0);
    }
    75% {
        transform: translate3d(0, -10px, 0);
    }
    90% {
        transform: translate3d(0, 5px, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.bounceInDown {
    animation-name: bounceInDown;
    animation-duration: 0.75s;
}

@keyframes bounceInLeft {
    0%, 60%, 75%, 90%, 100% {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        transform: translate3d(-3000px, 0, 0);
    }
    60% {
        opacity: 1;
        transform: translate3d(25px, 0, 0);
    }
    75% {
        transform: translate3d(-10px, 0, 0);
    }
    90% {
        transform: translate3d(5px, 0, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.bounceInLeft {
    animation-name: bounceInLeft;
    animation-duration: 0.75s;
}

@keyframes bounceInRight {
    0%, 60%, 75%, 90%, 100% {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        transform: translate3d(3000px, 0, 0);
    }
    60% {
        opacity: 1;
        transform: translate3d(-25px, 0, 0);
    }
    75% {
        transform: translate3d(10px, 0, 0);
    }
    90% {
        transform: translate3d(-5px, 0, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.bounceInRight {
    animation-name: bounceInRight;
    animation-duration: 0.75s;
}








@keyframes bounceInUp {
    0%, 60%, 75%, 90%, 100% {
        animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
    }
    0% {
        opacity: 0;
        transform: translate3d(0, 3000px, 0);
    }
    60% {
        opacity: 1;
        transform: translate3d(0, -20px, 0);
    }
    75% {
        transform: translate3d(0, 10px, 0);
    }
    90% {
        transform: translate3d(0, -5px, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.bounceInUp {
    animation-name: bounceInUp;
    animation-duration: 0.75s;
}

@keyframes bounceOut {
    20% {
        transform: scale3d(0.9, 0.9, 0.9);
    }
    50%, 55% {
        opacity: 1;
        transform: scale3d(1.1, 1.1, 1.1);
    }
    100% {
        opacity: 0;
        transform: scale3d(0.3, 0.3, 0.3);
    }
}

.bounceOut {
    animation-name: bounceOut;
    animation-duration: 0.75s;
}

@keyframes bounceOutDown {
    20% {
        transform: translate3d(0, 10px, 0);
    }
    40%, 45% {
        opacity: 1;
        transform: translate3d(0, -20px, 0);
    }
    100% {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
    }
}

.bounceOutDown {
    animation-name: bounceOutDown;
    animation-duration: 0.75s;
}

@keyframes bounceOutLeft {
    20% {
        opacity: 1;
        transform: translate3d(20px, 0, 0);
    }
    100% {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
    }
}

.bounceOutLeft {
    animation-name: bounceOutLeft;
    animation-duration: 0.75s;
}

@keyframes bounceOutRight {
    20% {
        opacity: 1;
        transform: translate3d(-20px, 0, 0);
    }
    100% {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
    }
}

.bounceOutRight {
    animation-name: bounceOutRight;
    animation-duration: 0.75s;
}

@keyframes bounceOutUp {
    20% {
        transform: translate3d(0, -10px, 0);
    }
    40%, 45% {
        opacity: 1;
        transform: translate3d(0, 20px, 0);
    }
    100% {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
    }
}

.bounceOutUp {
    animation-name: bounceOutUp;
    animation-duration: 0.75s;
}

@keyframes fadeIn {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

.fadeIn {
    animation-name: fadeIn;
    animation-duration: 0.3s;
}

@keyframes fadeInDown {
    0% {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInDown {
    animation-name: fadeInDown;
    animation-duration: 0.3s;
}











@keyframes fadeInDownBig {
    0% {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInDownBig {
    animation-name: fadeInDownBig;
    animation-duration: 0.5s;
}

@keyframes fadeInLeft {
    0% {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInLeft {
    animation-name: fadeInLeft;
    animation-duration: 0.3s;
}

@keyframes fadeInLeftBig {
    0% {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInLeftBig {
    animation-name: fadeInLeftBig;
    animation-duration: 0.5s;
}

@keyframes fadeInRight {
    0% {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInRight {
    animation-name: fadeInRight;
    animation-duration: 0.3s;
}

@keyframes fadeInRightBig {
    0% {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInRightBig {
    animation-name: fadeInRightBig;
    animation-duration: 0.5s;
}

@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInUp {
    animation-name: fadeInUp;
    animation-duration: 0.3s;
}

@keyframes fadeInUpBig {
    0% {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.fadeInUpBig {
    animation-name: fadeInUpBig;
    animation-duration: 0.5s;
}

@keyframes fadeOut {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

.fadeOut {
    animation-name: fadeOut;
    animation-duration: 0.3s;
}

@keyframes fadeOutDown {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(0, 100%, 0);
    }
}

.fadeOutDown {
    animation-name: fadeOutDown;
    animation-duration: 0.3s;
}

@keyframes fadeOutDownBig {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(0, 2000px, 0);
    }
}

.fadeOutDownBig {
    animation-name: fadeOutDownBig;
    animation-duration: 0.5s;
}

@keyframes fadeOutLeft {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(-100%, 0, 0);
    }
}

.fadeOutLeft {
    animation-name: fadeOutLeft;
    animation-duration: 0.3s;
}

@keyframes fadeOutLeftBig {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(-2000px, 0, 0);
    }
}

.fadeOutLeftBig {
    animation-name: fadeOutLeftBig;
    animation-duration: 0.5s;
}

@keyframes fadeOutRight {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(100%, 0, 0);
    }
}

.fadeOutRight {
    animation-name: fadeOutRight;
    animation-duration: 0.3s;
}

@keyframes fadeOutRightBig {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(2000px, 0, 0);
    }
}

.fadeOutRightBig {
    animation-name: fadeOutRightBig;
    animation-duration: 0.5s;
}











@keyframes fadeOutUp {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(0, -100%, 0);
    }
}

.fadeOutUp {
    animation-name: fadeOutUp;
    animation-duration: 0.3s;
}

@keyframes fadeOutUpBig {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(0, -2000px, 0);
    }
}

.fadeOutUpBig {
    animation-name: fadeOutUpBig;
    animation-duration: 0.5s;
}

@keyframes flip {
    0% {
        transform: perspective(400px) rotateY(-360deg);
        animation-timing-function: ease-out;
    }
    40% {
        transform: perspective(400px) translateZ(150px) rotateY(-190deg);
        animation-timing-function: ease-out;
    }
    50% {
        transform: perspective(400px) translateZ(150px) rotateY(-170deg);
        animation-timing-function: ease-in;
    }
    80% {
        transform: perspective(400px) scale3d(0.95, 0.95, 0.95);
        animation-timing-function: ease-in;
    }
    100% {
        transform: perspective(400px);
        animation-timing-function: ease-in;
    }
}

.animated.flip {
    animation-name: flip;
    backface-visibility: visible;
    animation-duration: 0.6s;
}

@keyframes flipInX {
    0% {
        transform: perspective(400px) rotateX(90deg);
        animation-timing-function: ease-in;
        opacity: 0;
    }
    40% {
        transform: perspective(400px) rotateX(-20deg);
        animation-timing-function: ease-in;
    }
    60% {
        transform: perspective(400px) rotateX(10deg);
        opacity: 1;
    }
    80% {
        transform: perspective(400px) rotateX(-5deg);
    }
    100% {
        transform: perspective(400px);
    }
}

.flipInX {
    animation-name: flipInX;
    backface-visibility: visible !important;
    animation-duration: 0.6s;
}









@keyframes flipInY {
    0% {
        transform: perspective(400px) rotateY(90deg);
        animation-timing-function: ease-in;
        opacity: 0;
    }
    40% {
        transform: perspective(400px) rotateY(-20deg);
        animation-timing-function: ease-in;
    }
    60% {
        transform: perspective(400px) rotateY(10deg);
        opacity: 1;
    }
    80% {
        transform: perspective(400px) rotateY(-5deg);
    }
    100% {
        transform: perspective(400px);
    }
}

.flipInY {
    animation-name: flipInY;
    backface-visibility: visible !important;
    animation-duration: 0.6s;
}

@keyframes flipOutX {
    0% {
        transform: perspective(400px);
    }
    30% {
        transform: perspective(400px) rotateX(-20deg);
        opacity: 1;
    }
    100% {
        transform: perspective(400px) rotateX(90deg);
        opacity: 0;
    }
}

.flipOutX {
    animation-name: flipOutX;
    backface-visibility: visible !important;
    animation-duration: 0.6s;
}

@keyframes flipOutY {
    0% {
        transform: perspective(400px);
    }
    30% {
        transform: perspective(400px) rotateY(-15deg);
        opacity: 1;
    }
    100% {
        transform: perspective(400px) rotateY(90deg);
        opacity: 0;
    }
}

.flipOutY {
    animation-name: flipOutY;
    backface-visibility: visible !important;
    animation-duration: 0.6s;
}

@keyframes lightSpeedIn {
    0% {
        transform: translate3d(100%, 0, 0) skewX(-30deg);
        opacity: 0;
    }
    60% {
        transform: skewX(20deg);
        opacity: 1;
    }
    80% {
        transform: skewX(-5deg);
        opacity: 1;
    }
    100% {
        transform: translate3d(0, 0, 0);
        opacity: 1;
    }
}

.lightSpeedIn {
    animation-name: lightSpeedIn;
    animation-timing-function: ease-out;
    animation-duration: 0.5s;
}

@keyframes lightSpeedOut {
    0% {
        opacity: 1;
    }
    100% {
        transform: translate3d(100%, 0, 0) skewX(30deg);
        opacity: 0;
    }
}

.lightSpeedOut {
    animation-name: lightSpeedOut;
    animation-timing-function: ease-in;
    animation-duration: 0.5s;
}

@keyframes rotateIn {
    0% {
        transform: rotate(-200deg);
        transform-origin: center;
        opacity: 0;
    }
    100% {
        transform: rotate(0);
        transform-origin: center;
        opacity: 1;
    }
}

.rotateIn {
    animation-name: rotateIn;
    animation-duration: 0.5s;
}








@keyframes rotateInDownLeft {
    0% {
        transform: rotate(-45deg);
        transform-origin: left bottom;
        opacity: 0;
    }
    100% {
        transform: rotate(0);
        transform-origin: left bottom;
        opacity: 1;
    }
}

.rotateInDownLeft {
    animation-name: rotateInDownLeft;
    animation-duration: 0.5s;
}

@keyframes rotateInDownRight {
    0% {
        transform: rotate(45deg);
        transform-origin: right bottom;
        opacity: 0;
    }
    100% {
        transform: rotate(0);
        transform-origin: right bottom;
        opacity: 1;
    }
}

.rotateInDownRight {
    animation-name: rotateInDownRight;
    animation-duration: 0.5s;
}

@keyframes rotateInUpLeft {
    0% {
        transform: rotate(45deg);
        transform-origin: left bottom;
        opacity: 0;
    }
    100% {
        transform: rotate(0);
        transform-origin: left bottom;
        opacity: 1;
    }
}

.rotateInUpLeft {
    animation-name: rotateInUpLeft;
    animation-duration: 0.5s;
}

@keyframes rotateInUpRight {
    0% {
        transform: rotate(-90deg);
        transform-origin: right bottom;
        opacity: 0;
    }
    100% {
        transform: rotate(0);
        transform-origin: right bottom;
        opacity: 1;
    }
}

.rotateInUpRight {
    animation-name: rotateInUpRight;
    animation-duration: 0.5s;
}

@keyframes rotateOut {
    0% {
        transform-origin: center;
        opacity: 1;
    }
    100% {
        transform: rotate(200deg);
        transform-origin: center;
        opacity: 0;
    }
}

.rotateOut {
    animation-name: rotateOut;
    animation-duration: 0.5s;
}

@keyframes rotateOutDownLeft {
    0% {
        transform-origin: left bottom;
        opacity: 1;
    }
    100% {
        transform: rotate(45deg);
        transform-origin: left bottom;
        opacity: 0;
    }
}

.rotateOutDownLeft {
    animation-name: rotateOutDownLeft;
    animation-duration: 0.5s;
}

@keyframes rotateOutDownRight {
    0% {
        transform-origin: right bottom;
        opacity: 1;
    }
    100% {
        transform: rotate(-45deg);
        transform-origin: right bottom;
        opacity: 0;
    }
}

.rotateOutDownRight {
    animation-name: rotateOutDownRight;
    animation-duration: 0.5s;
}

@keyframes rotateOutUpLeft {
    0% {
        transform-origin: left bottom;
        opacity: 1;
    }
    100% {
        transform: rotate(-45deg);
        transform-origin: left bottom;
        opacity: 0;
    }
}

.rotateOutUpLeft {
    animation-name: rotateOutUpLeft;
    animation-duration: 0.5s;
}

@keyframes rotateOutUpRight {
    0% {
        transform-origin: right bottom;
        opacity: 1;
    }
    100% {
        transform: rotate(90deg);
        transform-origin: right bottom;
        opacity: 0;
    }
}

.rotateOutUpRight {
    animation-name: rotateOutUpRight;
    animation-duration: 0.5s;
}

@keyframes hinge {
    0% {
        transform-origin: top left;
        animation-timing-function: ease-in-out;
    }
    20%, 60% {
        transform: rotate(80deg);
        transform-origin: top left;
        animation-timing-function: ease-in-out;
    }
    40%, 80% {
        transform: rotate(60deg);
        transform-origin: top left;
        animation-timing-function: ease-in-out;
        opacity: 1;
    }
    100% {
        transform: translate3d(0, 700px, 0);
        opacity: 0;
    }
}

.hinge {
    animation-name: hinge;
    animation-duration: 2s;
}

@keyframes jackInTheBox {
    0% {
        opacity: 0;
        transform: scale(0.1) rotate(30deg);
        transform-origin: center bottom;
    }
    50% {
        transform: rotate(-10deg);
    }
    70% {
        transform: rotate(3deg);
    }
    100% {
        opacity: 1;
        transform: scale(1);
    }
}

.jackInTheBox {
    animation-name: jackInTheBox;
    animation-duration: 0.8s;
}










@keyframes rollIn {
    0% {
        opacity: 0;
        transform: translate3d(-100%, 0, 0) rotate(-120deg);
    }
    100% {
        opacity: 1;
        transform: translate3d(0, 0, 0);
    }
}

.rollIn {
    animation-name: rollIn;
    animation-duration: 0.5s;
}

@keyframes rollOut {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
        transform: translate3d(100%, 0, 0) rotate(120deg);
    }
}

.rollOut {
    animation-name: rollOut;
    animation-duration: 0.5s;
}

@keyframes zoomIn {
    0% {
        opacity: 0;
        transform: scale3d(0.3, 0.3, 0.3);
    }
    50% {
        opacity: 1;
    }
    100% {
        transform: scale3d(1, 1, 1);
        opacity: 1;
    }
}

.zoomIn {
    animation-name: zoomIn;
    animation-duration: 0.3s;
}

@keyframes zoomInDown {
    0% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }
    60% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    }
    100% {
        transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
    }
}

.zoomInDown {
    animation-name: zoomInDown;
    animation-duration: 0.5s;
}

@keyframes zoomInLeft {
    0% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }
    60% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    }
    100% {
        transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
    }
}

.zoomInLeft {
    animation-name: zoomInLeft;
    animation-duration: 0.5s;
}

@keyframes zoomInRight {
    0% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }
    60% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    }
    100% {
        transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
    }
}

.zoomInRight {
    animation-name: zoomInRight;
    animation-duration: 0.5s;
}

@keyframes zoomInUp {
    0% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }
    60% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    }
    100% {
        transform: scale3d(1, 1, 1) translate3d(0, 0, 0);
    }
}

.zoomInUp {
    animation-name: zoomInUp;
    animation-duration: 0.5s;
}

@keyframes zoomOut {
    0% {
        opacity: 1;
    }
    50% {
        opacity: 0;
        transform: scale3d(0.3, 0.3, 0.3);
    }
    100% {
        opacity: 0;
    }
}

.zoomOut {
    animation-name: zoomOut;
    animation-duration: 0.3s;
}

@keyframes zoomOutDown {
    40% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }
    100% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0);
        transform-origin: center bottom;
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    }
}

.zoomOutDown {
    animation-name: zoomOutDown;
    animation-duration: 0.5s;
}

@keyframes zoomOutLeft {
    40% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0);
    }
    100% {
        opacity: 0;
        transform: scale(0.1) translate3d(-2000px, 0, 0);
        transform-origin: left center;
    }
}

.zoomOutLeft {
    animation-name: zoomOutLeft;
    animation-duration: 0.5s;
}

@keyframes zoomOutRight {
    40% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0);
    }
    100% {
        opacity: 0;
        transform: scale(0.1) translate3d(2000px, 0, 0);
        transform-origin: right center;
    }
}

.zoomOutRight {
    animation-name: zoomOutRight;
    animation-duration: 0.5s;
}









@keyframes zoomOutUp {
    40% {
        opacity: 1;
        transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0);
        animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
    }
    100% {
        opacity: 0;
        transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0);
        transform-origin: center bottom;
        animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);
    }
}

.zoomOutUp {
    animation-name: zoomOutUp;
    animation-duration: 0.5s;
}

@keyframes slideInDown {
    0% {
        transform: translate3d(0, -100%, 0);
        visibility: visible;
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.slideInDown {
    animation-name: slideInDown;
    animation-duration: 0.4s;
}

@keyframes slideInLeft {
    0% {
        transform: translate3d(-100%, 0, 0);
        visibility: visible;
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.slideInLeft {
    animation-name: slideInLeft;
    animation-duration: 0.4s;
}

@keyframes slideInRight {
    0% {
        transform: translate3d(100%, 0, 0);
        visibility: visible;
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.slideInRight {
    animation-name: slideInRight;
    animation-duration: 0.4s;
}

@keyframes slideInUp {
    0% {
        transform: translate3d(0, 100%, 0);
        visibility: visible;
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

.slideInUp {
    animation-name: slideInUp;
    animation-duration: 0.4s;
}

@keyframes slideOutDown {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(0, 100%, 0);
        visibility: hidden;
    }
}

.slideOutDown {
    animation-name: slideOutDown;
    animation-duration: 0.4s;
}

@keyframes slideOutLeft {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(-100%, 0, 0);
        visibility: hidden;
    }
}

.slideOutLeft {
    animation-name: slideOutLeft;
    animation-duration: 0.4s;
}

@keyframes slideOutRight {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(100%, 0, 0);
        visibility: hidden;
    }
}

.slideOutRight {
    animation-name: slideOutRight;
    animation-duration: 0.4s;
}

@keyframes slideOutUp {
    0% {
        transform: translate3d(0, 0, 0);
    }
    100% {
        transform: translate3d(0, -100%, 0);
        visibility: hidden;
    }
}

.slideOutUp {
    animation-name: slideOutUp;
    animation-duration: 0.4s;
}

/* ===== FLIP LOADER ===== */
.flip-loader {
    position: relative;
    display: inline-block;
    width: 64px;
    height: 64px;
}

.flip-loader div {
    position: absolute;
    display: inline-block;
    width: 13px;
    background: #2677dd;
    border: 1px solid #1a5fb4;
    border-radius: 4px;
    animation: flip-loader 1.2s cubic-bezier(0, 0.5, 0.5, 1) infinite;
    box-shadow: 0 2px 5px rgba(38, 119, 221, 0.3);
}

.flip-loader div:first-child {
    left: 0;
    animation-delay: -0.24s;
}

.flip-loader div:nth-child(2) {
    left: 20px;
    animation-delay: -0.12s;
}

.flip-loader div:nth-child(3) {
    left: 39px;
    animation-delay: 0;
}

@keyframes flip-loader {
    0% {
        top: 6px;
        height: 51px;
    }
    50%, 100% {
        top: 19px;
        height: 26px;
    }
}

/* ===== CIRCLES ===== */
.circle-1 {
    width: 120px;
    height: 120px;
    background: linear-gradient(135deg, #612e8d, #4a1f6a);
    border-radius: 50%;
    box-shadow: 0 4px 15px rgba(97, 46, 141, 0.4);
}
.circle-2 {
    width: 100px;
    height: 100px;
    background: linear-gradient(135deg, #c22286, #9e1b6c);
    border-radius: 50%;
    box-shadow: 0 4px 15px rgba(194, 34, 134, 0.4);
}
.circle-3 {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #ea225e, #c01a4a);
    border-radius: 50%;
    box-shadow: 0 4px 15px rgba(234, 34, 94, 0.4);
}
.circle-4 {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #ed5b35, #c9492a);
    border-radius: 50%;
    box-shadow: 0 4px 15px rgba(237, 91, 53, 0.4);
}
.circle-5 {
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, #f5b52e, #da981f);
    border-radius: 50%;
    box-shadow: 0 4px 15px rgba(245, 181, 46, 0.4);
}
.circle-6 {
    width: 20px;
    height: 20px;
    background: linear-gradient(135deg, #81c540, #63a32f);
    border-radius: 50%;
    box-shadow: 0 4px 15px rgba(129, 197, 64, 0.4);
}
.circle-7 {
    width: 10px;
    height: 10px;
    background: linear-gradient(135deg, #00a396, #008274);
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 163, 150, 0.4);
}
.circle-8 {
    width: 5px;
    height: 5px;
    background: linear-gradient(135deg, #1674bc, #105d97);
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(22, 116, 188, 0.4);
}

.circle-1,
.circle-2,
.circle-3,
.circle-4,
.circle-5,
.circle-6,
.circle-7,
.circle-8 {
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-name: spin;
    animation-timing-function: linear;
    border: none;
    transition: all 0.3s ease;
}

.circle-1:hover,
.circle-2:hover,
.circle-3:hover,
.circle-4:hover,
.circle-5:hover,
.circle-6:hover,
.circle-7:hover,
.circle-8:hover {
    transform: scale(1.1);
    filter: brightness(1.1);
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.bLoading,
.spin-me-round {
    animation: spin_refresh 0.7s linear infinite;
}

@keyframes spin_refresh {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}













@keyframes spin_refresh {
    0% {
        transform: scale(1) rotate(0deg);
    }
    100% {
        transform: scale(1) rotate(360deg);
    }
}

/* ===== GLOWING BUTTONS ===== */
.glowing_btn {
    animation: glowingBtn 1.5s infinite;
}

@keyframes glowingBtn {
    0% {
        box-shadow: 0 0 3px #b20000;
    }
    50% {
        box-shadow: 0 0 14px #ff3333;
    }
    100% {
        box-shadow: 0 0 3px #b20000;
    }
}

.glowing_white_btn {
    animation: glowingWhiteBtn 1.5s infinite;
}

@keyframes glowingWhiteBtn {
    0% {
        box-shadow: 0 0 3px #ffffff;
    }
    50% {
        box-shadow: 0 0 14px #ffffff;
    }
    100% {
        box-shadow: 0 0 3px #ffffff;
    }
}

.glowing_warning_btn {
    animation: glowingWarningBtn 1.5s infinite;
}

@keyframes glowingWarningBtn {
    0% {
        box-shadow: 0 0 3px #6b5b28;
    }
    50% {
        box-shadow: 0 0 14px #ffed4a;
    }
    100% {
        box-shadow: 0 0 3px #6b5b28;
    }
}

.glowing_text_warning {
    animation: glowingWarningTxt 1.5s infinite;
}

@keyframes glowingWarningTxt {
    0% {
        color: #6b5b28;
    }
    50% {
        color: #ffed4a;
    }
    100% {
        color: #6b5b28;
    }
}

/* ===== TOAST ===== */
.toast-title {
    font-weight: 600;
}

.toast-message {
    word-wrap: break-word;
}

.toast-message a,
.toast-message label {
    color: #fff;
}

.toast-message a:hover {
    color: #ccc;
    text-decoration: none;
}

.toast-close-button {
    position: relative;
    right: -0.3em;
    top: -0.3em;
    float: right;
    font-size: 18px;
    font-weight: 600;
    line-height: 1;
    color: #fff;
    text-shadow: 0 1px 0 #fff;
    opacity: 0.8;
    transition: all 0.3s ease;
}

.toast-close-button:hover,
.toast-close-button:focus {
    color: #2677dd;
    text-decoration: none;
    cursor: pointer;
    opacity: 1;
    transform: rotate(90deg);
}

.rtl .toast-close-button {
    right: auto;
    left: -0.3em;
    float: left;
}

button.toast-close-button {
    padding: 0;
    cursor: pointer;
    background: transparent;
    border: 0;
    appearance: none;
}

/* Toast positions */
.toast-top-center {
    top: 60px;
    right: 0;
    width: 100%;
}
.toast-bottom-center {
    bottom: 0;
    right: 0;
    width: 100%;
}
.toast-top-full-width {
    top: 0;
    right: 0;
    width: 100%;
}
.toast-bottom-full-width {
    bottom: 0;
    right: 0;
    width: 100%;
}
.toast-top-left {
    top: 60px;
    left: 12px;
}
.toast-top-right {
    top: 60px;
    right: 12px;
}
.toast-bottom-right {
    bottom: 12px;
    right: 12px;
}
.toast-bottom-left {
    bottom: 12px;
    left: 12px;
}

/* Toast container */
#toast-container {
    position: fixed;
    z-index: 999999;
    pointer-events: none;
}

#toast-container * {
    box-sizing: border-box;
}

#toast-container > div {
    position: relative;
    width: 300px;
    margin: 0 0 6px;
    padding: 15px 15px 15px 50px;
    color: #fff;
    background: linear-gradient(135deg, #2a2a2a, #1e1e2a);
    background-repeat: no-repeat;
    background-position: 15px center;
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
    opacity: 0.95;
    overflow: hidden;
    pointer-events: auto;
    border-left: 4px solid;
    transition: all 0.3s ease;
}

#toast-container > div.rtl {
    padding: 15px 50px 15px 15px;
    background-position: right 15px center;
    direction: rtl;
}

#toast-container > div:hover {
    opacity: 1;
    transform: translateY(-2px);
    box-shadow: 0 12px 25px rgba(0, 0, 0, 0.4);
}

/* Toast types */
#toast-container > .toast-info {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=) !important;
    border-left-color: #3498db;
}

#toast-container > .toast-error {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=) !important;
    border-left-color: #e74c3c;
}

#toast-container > .toast-success {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==) !important;
    border-left-color: #00bc8c;
}

#toast-container > .toast-warning {
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=) !important;
    border-left-color: #f39c12;
}

/* Toast container positions */
#toast-container.toast-top-center > div,
#toast-container.toast-bottom-center > div {
    width: 300px;
    margin-left: auto;
    margin-right: auto;
}

#toast-container.toast-top-full-width > div,
#toast-container.toast-bottom-full-width > div {
    width: 96%;
    margin-left: auto;
    margin-right: auto;
}

/* Toast background colors */
.toast {
    background: #2a2a2a;
    border-radius: 16px;
}

.toast-success {
    background: #00bc8c;
}

.toast-error {
    background: #e74c3c;
}

.toast-info {
    background: #3498db;
}

.toast-warning {
    background: #f39c12;
}

.toast-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 4px;
    background: rgba(255, 255, 255, 0.7);
    opacity: 0.6;
    animation: toastProgress 3s linear forwards;
}

@keyframes toastProgress {
    0% {
        width: 100%;
    }
    100% {
        width: 0%;
    }
}











/* ===== TOAST RESPONSIVE ===== */
@media (max-width: 240px) {
    #toast-container > div {
        width: 11em;
        padding: 8px 8px 8px 50px;
    }
    #toast-container > div.rtl {
        padding: 8px 50px 8px 8px;
    }
    #toast-container .toast-close-button {
        right: -0.2em;
        top: -0.2em;
    }
    #toast-container .rtl .toast-close-button {
        right: 0.2em;
        left: -0.2em;
    }
}

@media (min-width: 241px) and (max-width: 480px) {
    #toast-container > div {
        width: 18em;
        padding: 8px 8px 8px 50px;
    }
    #toast-container > div.rtl {
        padding: 8px 50px 8px 8px;
    }
    #toast-container .toast-close-button {
        right: -0.2em;
        top: -0.2em;
    }
    #toast-container .rtl .toast-close-button {
        right: 0.2em;
        left: -0.2em;
    }
}

@media (min-width: 481px) and (max-width: 768px) {
    #toast-container > div {
        width: 25em;
        padding: 15px 15px 15px 50px;
    }
    #toast-container > div.rtl {
        padding: 15px 50px 15px 15px;
    }
}

/* ===== MODAL FULLSCREEN ===== */
.modal-fullscreen.modal-dialog {
    width: 100%;
    height: 100%;
    margin: 0;
    max-width: none;
}

.modal-fullscreen .modal-content {
    height: 100%;
    border: 0;
    border-radius: 0;
    background: var(--dark);
}

.modal-fullscreen .modal-body {
    overflow-y: auto;
}

/* ===== BODY & WRAPPER ===== */

wrapper {
    min-height: 100vh;
}

/* ===== ICON NAV SOLO ===== */
.icon-nav-solo {
    font-size: 18px;
    transition: all 0.3s ease;
}

.icon-nav-solo:hover {
    transform: scale(1.1);
    color: #2677dd;
}

/* ===== NS CLASS ===== */
.NS {
    display: none;
}

/* ===== BADGE NOTIFY ===== */
.badge-notify {
    position: relative;
    top: -11px;
    left: -9px;
    margin-right: -15px;
    background: linear-gradient(135deg, #f43f5e, #e11d48);
    color: white;
    border-radius: 50px;
    padding: 2px 6px;
    font-size: 10px;
    font-weight: bold;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    animation: badgePulse 2s infinite;
}

/* ===== POINTER AREA ===== */
.pointer_area {
    cursor: pointer;
    transition: all 0.3s ease;
}

.pointer_area:hover {
    transform: scale(1.05);
}

/* ===== LOGIN CAROUSEL ===== */
#login_carousel .carousel-inner .carousel-item {
    height: 65vh;
    min-height: 350px;
    background: no-repeat center center scroll;
    background-size: cover;
    position: relative;
}

#login_carousel .carousel-inner .carousel-item::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(0, 0, 0, 0.5), rgba(38, 119, 221, 0.3));
}

/* ===== BTAG ===== */
.btag {
    font-size: 8px;
    color: #94a3b8;
}

/* ===== FLIPF ===== */
.flipF {
    display: inline-block;
    transform: scaleX(-1);
    vertical-align: top;
}

/* ===== AVATAR STATUS ===== */
.avatar-is-offline {
    box-shadow: 0 0 4px 1px #64748b;
    transition: all 0.3s ease;
}
.avatar-is-online {
    box-shadow: 0 0 3px 3px #10b981;
    transition: all 0.3s ease;
}
.avatar-is-away {
    box-shadow: 0 0 3px 3px #f43f5e;
    transition: all 0.3s ease;
}
.avatar-is-offline:hover,
.avatar-is-online:hover,
.avatar-is-away:hover {
    transform: scale(1.05);
}

/* ===== SHADOWS ===== */
.shadow-warning {
    box-shadow: 0 0 8px 5px #f43f5e !important;
    z-index: 998;
    animation: pulseWarning 2s infinite;
}
.shadow-success {
    box-shadow: 0 0 8px 5px #10b981 !important;
    z-index: 998;
    animation: pulseSuccess 2s infinite;
}
.shadow-primary {
    box-shadow: 0 0 8px 5px #2677dd !important;
    z-index: 998;
    animation: pulsePrimary 2s infinite;
}

@keyframes pulseWarning {
    0% { box-shadow: 0 0 0 0 rgba(244, 63, 94, 0.4); }
    70% { box-shadow: 0 0 0 8px rgba(244, 63, 94, 0); }
    100% { box-shadow: 0 0 0 0 rgba(244, 63, 94, 0); }
}

@keyframes pulseSuccess {
    0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4); }
    70% { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); }
    100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); }
}

@keyframes pulsePrimary {
    0% { box-shadow: 0 0 0 0 rgba(38, 119, 221, 0.4); }
    70% { box-shadow: 0 0 0 8px rgba(38, 119, 221, 0); }
    100% { box-shadow: 0 0 0 0 rgba(38, 119, 221, 0); }
}

.message-reply-highlight {

    transition: all 0.3s ease;
}

/* ===== GROUP IMAGE ===== */
.group-image {
    width: 35px;
    height: 35px;
    margin-right: 5px;
    border-radius: 12px;
    object-fit: cover;
    transition: all 0.3s ease;
}

.group-image:hover {
    transform: scale(1.1);

}

/* ===== NOWRAP ===== */
.nowrap {
    white-space: nowrap;
}

/* ===== TABLE LINKS ===== */
.table_links a:link,
.table_links a:visited,
.table_links a:hover,
.table_links a:active {
    color: #cbd5e1;
    text-decoration: none;
    transition: all 0.3s ease;
}

.table_links a:hover {
    color: #2677dd;
    text-decoration: underline;
}

/* ===== DROPDOWN NOTIFY ===== */
.dropdown-menu.notify-drop {
    min-width: 330px;
    max-height: 560px;
    background: #1e293b;
    border: 1px solid rgba(38, 119, 221, 0.2);
    border-radius: 20px;
    overflow: hidden;
    backdrop-filter: blur(10px);
}

.dropdown-menu.notify-drop .drop-content {
    max-height: 480px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #2677dd #334155;
}

.dropdown-menu.notify-drop .drop-content::-webkit-scrollbar {
    width: 7px;
    background-color: #334155;
}
.dropdown-menu.notify-drop .drop-content::-webkit-scrollbar-track {
    background-color: #334155;
    border-radius: 10px;
}
.dropdown-menu.notify-drop .drop-content::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #2677dd, #1a5fb4);
    border-radius: 10px;
}

.dropdown-menu.notify-drop .notify-drop-footer {
    position: relative;
    bottom: 0;
    padding: 12px;
    text-align: center;
    border-top: 1px solid rgba(38, 119, 221, 0.2);
    background: #0f172a;
}

.dropdown-menu.notify-drop .notify-drop-footer a {
    color: #94a3b8;
    text-decoration: none;
    transition: all 0.3s ease;
}

.dropdown-menu.notify-drop .notify-drop-footer a:hover {
    color: #2677dd;
}

/* ===== ACCORDION ARROW ===== */
.accordion_arrow .card .card-header:before {
    content: "\f0aa";
    float: right;
    font-family: "Font Awesome 5 Free";
    font-weight: 900;
    font-size: 18px;
    color: #2677dd;
    transform: rotate(0deg);
    transition: transform 0.4s ease;
}

.accordion_arrow .card .card-header.collapsed:before {
    color: #94a3b8;
    transform: rotate(180deg);
}

.accordion_arrow .panel-heading {
    cursor: pointer;
}

/* ===== TEXTAREA ===== */
.txtc textarea {
    min-height: 100px;
    max-height: 300px;
    resize: vertical;
    background: #0f172a;
    border: 1px solid rgba(38, 119, 221, 0.2);
    border-radius: 16px;
    color: #fff;
    padding: 12px;
    transition: all 0.3s ease;
}

.txtc textarea:focus {
    border-color: #2677dd;
    box-shadow: 0 0 0 3px rgba(38, 119, 221, 0.2);
    outline: none;
}

/* ===== EXPANDABLE IMAGE ===== */
.expImg {
    position: relative;
    cursor: pointer;
    overflow: hidden;
    border-radius: 16px;
    transition: all 0.3s ease;
}

.expImg:hover {
    transform: scale(1.02);
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
}

.img_overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background: rgba(38, 119, 221, 0.7);
    border-radius: 16px;
    opacity: 0;
    transition: opacity 0.5s ease;
    backdrop-filter: blur(2px);
}

.expImg:hover .img_overlay {
    opacity: 0.8;
}

.img_text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 10;
}

.expImg:hover .img_text {
    opacity: 1;
}

/* ===== CIRCLE BUTTONS ===== */
.btn-circle {
    width: 45px;
    height: 45px;
    padding: 0;
    border-radius: 50%;
    text-align: center;
    line-height: 45px;
    transition: all 0.3s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.btn-circle i {
    position: relative;
    top: -1px;
    transition: all 0.3s ease;
}

.btn-circle:hover {
    transform: scale(1.1);
    box-shadow: 0 5px 15px rgba(38, 119, 221, 0.4);
}

.btn-circle:hover i {
    transform: scale(1.1);
}

.btn-circle-sm {
    width: 35px;
    height: 35px;
    font-size: 0.9rem;
    line-height: 35px;
}

.btn-circle-lg {
    width: 90px;
    height: 90px;
    font-size: 1.2rem;
    line-height: 90px;
}

.btn-circle-xl {
    width: 120px;
    height: 120px;
    font-size: 1.5rem;
    line-height: 120px;
}










@media (max-width: 991px) {
    .display-4 {
        font-size: 3.2em;
    }
    .dropdown-menu.notify-drop {
        min-width: 100%;
    }
}

@media (max-width: 767px) {
    .display-4 {
        font-size: 2.2em;
    }
    .text-left-xs {
        text-align: left;
    }
}

@media (max-width: 576px) {
    .h3.page-header,
    .h4.page-header {
        font-size: 21px;
    }
}

/* ===== MESSENGER SIDEBAR ===== */
#message_sidebar_content {
    max-height: 100%;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #2677dd #334155;
}

#message_sidebar_content::-webkit-scrollbar {
    width: 6px;
}
#message_sidebar_content::-webkit-scrollbar-track {
    background: #334155;
    border-radius: 10px;
}
#message_sidebar_content::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #2677dd, #1a5fb4);
    border-radius: 10px;
}

#message_sidebar_container {
    max-width: 450px;
    min-width: 300px;
}

#message_content_container {
    width: 1%;
}

#messenger_container {
    min-width: 360px;
    background: #0f172a;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
}

#message_content_card {
    overflow-y: auto;
    scrollbar-width: thin;
}

/* ===== ALERTS ===== */
#new_message_alert,
#reply_message_alert {
    position: absolute;
    bottom: 80px;
    width: calc(100% - 15px);
    z-index: 1000;
    animation: slideUp 0.3s ease;
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== BOBLLE ZONE ===== */
.bobble-zone {
    overflow: hidden;
    text-overflow: ellipsis !important;
    white-space: nowrap;
}

/* ===== YOUTUBE THUMB ===== */
.youtube_thumb_view span.yt_logo_place {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    display: block;
    background-image: url(/vendor/messenger/images/yt_icon_rgb.png);
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 25% 25%;
    z-index: 1;
    transition: all 0.3s ease;
}

.youtube_thumb_view:hover span.yt_logo_place {
    transform: scale(1.1);
}

/* ===== DRAG DROP OVERLAY ===== */
.drag_drop_overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.3);
    border: 2px dashed #2677dd;
    pointer-events: none;
    z-index: 99;
    border-radius: 16px;
}

.disabled-message-overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(2px);
    z-index: 99;
    border-radius: 16px;
}

/* ===== THREAD LIST STATUS ===== */
.thread-list-status {
    position: absolute;
    right: 12px;
    margin-top: 24px;
}

/* ===== MESSAGES IMAGE VIEW ===== */
.messages-image-view {
    min-height: 250px;
    border-radius: 16px;
    overflow: hidden;
}

.msg-ctnr-unread {
    background-color: rgba(38, 119, 221, 0.1) !important;
    border-left: 3px solid #2677dd;
}

/* ===== INBOX ===== */
.inbox.main-inbox {
    height: calc(100vh - 56px);
}

/* ===== GROUP IMAGE CHECK ===== */
.grp-img-check {
    cursor: pointer;
    transition: all 0.3s ease;
}
.grp-img-check:hover {
    transform: scale(1.05);
}
.grp-img-checked {
    background-color: rgba(38, 119, 221, 0.2);
    border: 2px solid #2677dd;
    border-radius: 12px;
}
.grp-img-box {
    margin-bottom: 5px;
}

/* ===== SEEN BY ===== */
.seen-by .bobble-image {
    width: 20px;
    height: 20px;
    margin-left: 1px;
    opacity: 0.5;
    box-shadow: 0 0 2px 1px #94a3b8 !important;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.seen-by-final .bobble-image {
    width: 22px;
    height: 22px;
    margin-left: 1px;
    box-shadow: 0 0 2px 1px #10b981 !important;
    border-radius: 50%;
    transition: all 0.3s ease;
}

.seen-by-final .bobble-image.bobble-image-away {
    width: 20px;
    height: 20px;
    opacity: 0.5;
    box-shadow: 0 0 2px 1px #94a3b8 !important;
}

/* ===== MAIN BOBBLE STATUS ===== */
.main-bobble-offline {
    box-shadow: 0 0 4px 2px #64748b;
    transition: all 0.3s ease;
}
.main-bobble-away {
    box-shadow: 0 0 6px 4px #f43f5e;
    transition: all 0.3s ease;
}
.main-bobble-online {
    box-shadow: 0 0 6px 4px #10b981;
    transition: all 0.3s ease;
}

/* ===== TYPING INDICATOR ===== */
.bobble-typing {
    margin-right: 2px;
}
.typing-ellipsis {
    position: relative;
    bottom: -4px;
    display: inline-block;
    width: 19px;
    font-size: 5px;
}
.typing-ellipsis div {
    display: inline;
    margin-right: 1px;
    animation-duration: 1.4s;
    animation-fill-mode: both;
    animation-iteration-count: infinite;
    animation-name: blink;
}
.typing-ellipsis div:nth-child(2) {
    animation-delay: 0.2s;
}
.typing-ellipsis div:nth-child(3) {
    animation-delay: 0.4s;
}
@keyframes blink {
    0% { opacity: 0.8; }
    30% { opacity: 0.5; }
    100% { opacity: 1; }
}

/* ===== IMAGES ===== */
.small_img {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    object-fit: cover;
}
.group-current-avatar {
    height: 100px;
    border-radius: 20px;
    object-fit: cover;
}






#FS_main_section {

    position: relative;
    min-height: 100vh;
    overflow-y: auto;
    overflow-x: hidden;
    scroll-behavior: smooth;
}




#thread_header_area {
    position: sticky;
    top: 0;
    z-index: 100;
    height: -50px;
    margin-top: 0;
    margin-left: 0;
    padding: 1px 16px;

    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    align-items: center;
    justify-content: space-between;
}
.glow-pic {
    border-radius: 50%;
    box-shadow: 0 0 5px 1px #2677dd;
    transition: all 0.3s ease;
}
.glow-pic:hover {
    transform: scale(1.05);
    box-shadow: 0 0 15px 3px #2677dd;
}
.pad10 {
    padding: 10px;
}

/* ===== MESSAGE AVATAR ===== */
.message-avatar {
    width: 35px;
    height: 35px;
    margin-left: 3px;
    margin-right: 2px;
    border-radius: 50%;
    box-shadow: 0 0 5px 1px #2677dd;
    transition: all 0.3s ease;
}

/* ===== THREAD LIST AVATAR ===== */
.medium-image,
.thread-list-avatar {
    width: 45px;
    height: 45px;
    border-radius: 12px;
    object-fit: cover;
}
.thread-list-avatar {
    margin-right: 7px;
    transition: all 0.3s ease;
}
.thread-list-avatar:hover {
    transform: scale(1.05);
}
.lg-image {
    width: 75px;
    height: 75px;
    margin-right: 10px;
    border-radius: 16px;
    object-fit: cover;
}

/* ===== MESSAGES PANEL ===== */
.messages-panel {
    display: inline-block;
    width: 100%;
}

/* ===== CHAT BODY ===== */
.chat-body {
    width: 100%;
    height: calc(110vh - 270px);
    margin-bottom: 10px;
    padding: 20px 5px 5px;
    overflow-y: auto;
    scrollbar-width: thin;
    scrollbar-color: #2677dd #334155;
    background: #0f172a;
    border-radius: 20px;
}

.chat-body::-webkit-scrollbar {
    width: 7px;
    height: 7px;
    background-color: #334155;
}
.chat-body::-webkit-scrollbar-track {
    background-color: #334155;
    border-radius: 10px;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.3);
}
.chat-body::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #2677dd, #1a5fb4);
    border-radius: 10px;
    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}

.chat-body.chat-special {
    height: calc(100vh - 134px);
    margin-bottom: 0;
    padding: 0;
}

/* ===== EMOJI PICKER ===== */
.emoji-picker__wrapper {
    z-index: 1099 !important;
}

/* ===== MESSAGE REACTIONS ===== */
.message-reactions {
    position: relative;
    width: 100%;
}
.message-reactions .reactions-body {
    position: relative;
    float: left;
    width: auto;
    margin: -15px 10px 15px 15px;
    color: #e2e8f0;
    background: #1e293b;
    padding: 4px 8px;
    border-radius: 50px;
    z-index: 999;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}
.message-reactions .reactions-body .reacted-by-me {
    box-shadow: 0 0 2px 1px #2677dd;
}
.message-reactions img.joypixels,
.replying-to-alert img.joypixels {
    height: 16px;
}
.action-payload img.joypixels {
    height: 20px;
}
.message-reactions.my-reactions .reactions-body {
    float: right;
}
.message-reactions.grouped-reactions {
    padding-left: 40px;
}
.message-reactions .reactions-body .reaction-badge {
    margin-right: 2px;
    transition: all 0.3s ease;
}
.message-reactions .reactions-body .reaction-badge:hover {
    transform: scale(1.1);
}

/* ===== REPLY STYLES ===== */
.reply-text {
    color: #94a3b8;
    font-size: 12px;
}
.reply-border {
    border-left: 2px solid #2677dd;
    padding-left: 10px;
    margin-left: 5px;
}

/* ===== MESSAGE AUDIO PLAYER ===== */
.message-audio-player {
    margin: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border-radius: 12px;
}

/* ===== MESSAGE STYLES ===== */
.message {
    position: relative;
    width: 100%;
    animation: fadeIn 0.3s ease;
}

.message .message-body {
    position: relative;
    float: left;
    width: auto;
    max-width: calc(100% - 111px);
    margin: 1px 2.5px 12px 7px;
    padding: 2px 2px;
    background: linear-gradient(135deg, #1e293b, #0f172a);
    border: 1px solid rgba(38, 119, 221, 0.2);
    border-radius: 15px;
    color: #e2e8f0;
    transition: all 0.3s ease;
    white-space: pre-wrap;

}

.message .message-body:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.message:before {
  /*  position: absolute;
    top: 6px;
    left: 45px;
    float: left;
    content: "";
    border: 11px solid transparent; */
    border: none;
    border-right: 13px solid rgba(38, 119, 221, 0.2);
    z-index: 1;
}

.message .message-avatar {
    float: left;
}

.message .message-info {
    width: 100%;
    height: 22px;
}

.message .message-info > h5 > i {
    margin: 0 2px 0 0;
    font-size: 9px;
    font-weight: 700;
    color: #94a3b8;
}

.message .message-info > h5 {
    float: right;
    margin: 8px 0 0;
    padding-right: 10px;
    font-size: 10px;
    color: #94a3b8;
}

.message .message-info > h4 {
    float: left;
    margin: 7px 13px 0 10px;
    font-size: 11px;
    font-weight: 700;
    color: #2677dd;
}

.message hr {
    width: 96%;
    margin: 2px 2%;
    opacity: 0.5;
    border-color: #2677dd;
}

.message .message-text {
    padding: 3px 3px 3px 3px;
    font-size: 14px;
    text-align: left;
    word-wrap: break-word;
    white-space: pre-wrap;

}

/* MY MESSAGE */
.message.my-message .message-body {
    float: right;
    margin: 0 15px 9px 5px;
    max-width: calc(100% - 71px);
    background: linear-gradient(135deg, #2677dd, #1a5fb4);
    white-space: pre-wrap;

}

.message.my-message:after {
  /*  position: absolute;
    right: 5px;
    top: 11px;
    content: "";
    border: 10px solid transparent;
    border-left: 12px solid #2677dd; */
    border: none;
    z-index: 2;
}

.message.my-message:before {
  /*  position: absolute;
    right: 3px;
    top: 10px;
    float: left;
    left: auto;
    content: "";
    border: 11px solid transparent;
    border-left: 13px solid #1a5fb4; */
    border: none;
    z-index: 1;
}

.message.my-message .message-info > h5 {
    float: left;
    padding-left: 10px;
    padding-right: 15px;
}

.message.my-message .message-info > h4 {
    float: right;
}

/* GROUPED MESSAGE */
.message.grouped-message {
    padding-left: 40px;
    white-space: pre-wrap;

}

.message.grouped-message .message-body {
    margin-top: -8px;
    max-width: calc(100% - 71px);
}

.message.grouped-message.my-message {
    padding-left: 0;
}

.message.grouped-message:before,
.message.grouped-message:after {
    display: none;
}

/* SYSTEM MESSAGE */
.system-message {
    margin-bottom: 10px !important;
    text-align: center;
    color: #94a3b8;
    font-size: 12px;
    white-space: pre-wrap;

}

/* SEEN BY */
.seen-by-final {
    padding-bottom: 4px !important;
}

.seen-by {
    margin-bottom: 15px !important;
}

.seen-by:hover {
    box-shadow: 0 1.4px 2px -2px #2677dd;
}

/* INFO MESSAGE */
.message.info .message-body {
    background: rgba(38, 119, 221, 0.1);
    border: 1px solid rgba(38, 119, 221, 0.2);
    color: #e2e8f0;
}

.message .message-body a {
    color: #2677dd;
    text-decoration: underline;
}

.message .message-body a:hover {
    color: #1a5fb4;
}

.message.info:before,
.message.info:after {
    border-right: 13px solid rgba(38, 119, 221, 0.2);
}

.message.info .message-info > h4,
.message.info .message-info > h5,
.message.info .message-info > h5 > i {
    color: #94a3b8;
}

/* ===== CHAT FOOTER ===== */
.chat-footer {
    position: relative;
    width: 100%;
    padding: 8px;
    background: #0f172a;
    border-top: 1px solid rgba(38, 119, 221, 0.2);
    border-radius: 0 0 20px 20px;
}

.thread_list_item img.joypixels {
    height: 20px;
}

/* ===== INBOX MESSAGES LIST ===== */
.inbox ul.messages-list {
    margin: 5px 0 0;
    padding: 0;
    list-style: none;
}

.inbox ul.messages-list li {
    margin-bottom: 6px;
    padding: 5px 10px;
    overflow: hidden;
    cursor: pointer;
    border-radius: 16px;
    text-overflow: ellipsis !important;
    white-space: nowrap;
    transition: all 0.3s ease;
    background: #0f172a;
}

.inbox ul.messages-list li a {
    color: #e2e8f0;
    text-decoration: none;
}

.inbox ul.messages-list li a:hover {
    text-decoration: none;
    color: #2677dd;
}

.inbox ul.messages-list li.unread .header,
.inbox ul.messages-list li.unread .title {
    font-weight: 700;
    color: #2677dd;
}

.inbox ul.messages-list li:hover {
    background: #1e293b;
    transform: translateX(5px);
}

.thread_body_li {
    width: 1%;
}

.inbox ul.messages-list li .description {
    font-size: 12px;
    color: #94a3b8;
}

.inbox ul.messages-list li .description,
.inbox ul.messages-list li .from {
    overflow: hidden;
    text-overflow: ellipsis !important;
    white-space: nowrap;
}

/* ===== MESSAGE TEXT ===== */
.message-text a {
    text-decoration: underline;
    color: #2677dd;
}

.message:hover .message_hover_opt {
    display: block;
}

.message_hover_opt .fas:hover {
    text-shadow: 0 1px 3px #2677dd;
    color: #2677dd;
}

/* ===== MESSAGE INPUT ===== */
#message_text_input {

    background: #1e293b;
border: 1px solid rgb(253 5 5 / 50%);
    border-radius: 20px;
    color: #fff;
    padding: 5px 10px;
    transition: all 0.3s ease;
}

#message_text_input:focus {
    border-color: #2677dd;
    box-shadow: 0 0 0 3px rgba(38, 119, 221, 0.2);
    outline: none;
}

.pr-special-btn {
    padding-right: 30px;
}

.inline_send_msg_btn_1 {
    margin-top: 2px;
}

.inline_send_msg_btn_2 {
    position: absolute;
    right: 19px;
    bottom: 0;
}

.message .embed-responsive {
    max-width: 425px;
    width: 35vw;
    border-radius: 12px;
    overflow: hidden;
}








@media (max-width: 767px) {
    #message_sidebar_container {
        max-width: 100%;
        min-width: 150px;
    }
    #messenger_container {
        min-width: 90px;
    }
    .form-group-xs-nm {
        margin-bottom: 0;
    }
}

/* ===== VIDEO CALL ===== */
#my_video_ctrn.mine_video_call {
    position: fixed;
    bottom: 58px;
    left: 50%;
    width: 240px;
    margin-left: -120px;
    z-index: 1000;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    border: 2px solid #2677dd;
}

#videos {
    margin-bottom: 60px;
}

.group_stream.embed-responsive {
    max-height: 80vh;
    border-radius: 20px;
    overflow: hidden;
}

.medium-image-call {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid #2677dd;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
}

/* ===== PLAYER CONTROLS ===== */
.other_stream_ctnr .player_main_controls {
    opacity: 0;
    visibility: hidden;
    transition: visibility 0.2s, opacity 0.2s linear;
}

.other_stream_ctnr:hover .player_main_controls {
    opacity: 1;
    visibility: visible;
}

span.player_control_expand {
    position: absolute;
    right: 0;
    bottom: 0;
    display: block;
    z-index: 1;
    transition: all 0.3s ease;
}

span.player_control_expand:hover {
    transform: scale(1.1);
}

span.player_control_sound {
    position: absolute;
    left: 0;
    bottom: 0;
    display: block;
    z-index: 1;
    transition: all 0.3s ease;
}

span.player_control_sound:hover {
    transform: scale(1.1);
}

span.player_control_play {
    position: absolute;
    top: 25%;
    left: 50%;
    display: block;
    z-index: 1;
    transition: all 0.3s ease;
}

span.player_control_play button {
    position: relative;
    left: -50%;
    background: rgba(0, 0, 0, 0.7);
    border: none;
    border-radius: 50%;
    width: 50px;
    height: 50px;
    color: white;
    cursor: pointer;
    transition: all 0.3s ease;
}

span.player_control_play button:hover {
    transform: scale(1.1);
    background: #2677dd;
}

span.player_control_play_large {
    position: absolute;
    top: 33%;
    left: 50%;
    display: block;
    z-index: 1;
}

span.player_control_play_large button {
    position: relative;
    left: -50%;
    background: rgba(0, 0, 0, 0.8);
    border: none;
    border-radius: 50%;
    width: 70px;
    height: 70px;
    color: white;
    font-size: 24px;
    cursor: pointer;
    transition: all 0.3s ease;
}

span.player_control_play_large button:hover {
    transform: scale(1.1);
    background: #2677dd;
}

/* ===== TEXT COLORS ===== */
.text-dark {
    color: #e2e8f0 !important;
}

.modal-header.text-light {
    color: #ffffff !important;
}

.special-text-warning.text-warning {
    color: #f59e0b !important;
}

/* ===== BADGES ===== */
.badge.badge-light {
    background-color: #334155 !important;
    color: #e2e8f0 !important;
}

/* ===== BACKGROUNDS ===== */
.bg-light {
    background-color: #334155 !important;
}

.bg-dark.invert-dark-mode.text-light {
    background-color: #334155 !important;
    color: #e2e8f0 !important;
}

.bg-gradient-primary.invert-dark-mode.text-light {
    color: #e2e8f0 !important;
}

.card-body.msg-ctnr-unread {
    background-color: rgba(111, 66, 193, 0.2) !important;
    border-left: 3px solid #6f42c1;
}

/* ===== SEEN BY HOVER ===== */
.seen-by:hover {
    box-shadow: 0 1.4px 2px -2px #f59e0b !important;
}

/* ===== SOCKET ERROR ===== */
.socket-error-main {
    color: #e2e8f0 !important;
}

/* ===== INBOX MESSAGES ===== */
.inbox ul.messages-list li a {
    color: #e2e8f0 !important;
}

.inbox ul.messages-list li[class*="alert-"] a,
.system-message .text-dark:hover {
    color: #ffffff !important;
}

li.thread_list_item:hover {
    background-color: #2677dd !important;
    border-color: #2677dd !important;
    transform: translateX(5px);
}

/* ===== OUTLINE DARK BUTTON ===== */
.btn-outline-dark {
    border-color: #cbd5e1;
    color: #cbd5e1;
    transition: all 0.3s ease;
}

.btn-outline-dark:hover {
    background-color: #2677dd;
    border-color: #2677dd;
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(38, 119, 221, 0.3);
}

/* ===== AVATAR STATUS ===== */
.avatar-is-offline {
    border-radius: 50%;
    box-shadow: 0 0 4px 1px #94a3b8 !important;
    transition: all 0.3s ease;
}
.avatar-is-online {
    border-radius: 50%;
    box-shadow: 0 0 3px 3px #10b981 !important;
    transition: all 0.3s ease;
}
.avatar-is-away {
    border-radius: 50%;
    box-shadow: 0 0 3px 3px #f43f5e !important;
    transition: all 0.3s ease;
}
.avatar-is-offline:hover,
.avatar-is-online:hover,
.avatar-is-away:hover {
    transform: scale(1.05);
}

/* ===== MAIN BOBBLE STATUS ===== */
.main-bobble-online {
    border-radius: 50%;
    box-shadow: 0 0 6px 4px #10b981 !important;
    transition: all 0.3s ease;
}
.main-bobble-offline {
    border-radius: 50%;
    box-shadow: 0 0 4px 2px #94a3b8 !important;
    transition: all 0.3s ease;
}
.main-bobble-away {
    border-radius: 50%;
    box-shadow: 0 0 6px 4px #f43f5e !important;
    transition: all 0.3s ease;
}
.main-bobble-online:hover,
.main-bobble-offline:hover,
.main-bobble-away:hover {
    transform: scale(1.05);
}

/* ===== MESSAGE AVATAR ===== */
.message-avatar {
    box-shadow: 0 0 5px 1px #2677dd !important;
    transition: all 0.3s ease;
}
.message-avatar:hover {
    transform: scale(1.1);
}

/* ===== REPLY STYLES ===== */
.reply-text {
    color: #94a3b8 !important;
}
.reply-border {
    border-left: 2px solid #2677dd !important;
    border-color: #2677dd !important;
    padding-left: 10px;
}

/* ===== MESSAGE REACTIONS ===== */
.message-reactions .reactions-body,
.message-reactions.my-reactions .reactions-body {
    color: #e2e8f0 !important;
    background: #1e293b;
    border-radius: 50px;
    padding: 4px 10px;
    font-size: 12px;
}

/* ===== MY MESSAGE STYLES ===== */
.message.my-message:after {
    border-left: 12px solid #2677dd !important;
}
.message.my-message:before {
    border-left: 13px solid #1a5fb4 !important;
}
.message .message-body {
    background: linear-gradient(135deg, #1c1218, #0f0620) !important;
    border: 1px solid #500101fc !important;
}
.message .message-body,
.message .message-info > h4,
.message .message-info > h5,
.message .message-info > h5 > i {
    color: #ffffff !important;
}

/* ===== INFO MESSAGE ===== */
.message.info .message-body {
    background-color: var(--dark) !important;
    border: 1px solid #96684c !important;
    color: #e2e8f0 !important;
}
.message .message-body a {
    color: #2677dd !important;
}
.message .message-body a:hover {
    color: #1a5fb4 !important;
}
.message.info:after,
.message.info:before {
    border-right: 13px solid #334155 !important;
}
.message.info .message-info > h4 {
    color: #e2e8f0 !important;
}
.message.info .message-info > h5,
.message.info .message-info > h5 > i {
    color: #e2e8f0 !important;
    opacity: 0.8;
}

/* ===== MESSAGE HOVER OPT ===== */
.message_hover_opt {
    color: #94a3b8 !important;
    transition: all 0.3s ease;
}
.message_hover_opt:hover {
    color: #2677dd !important;
}

/* ===== SYSTEM MESSAGE ===== */
.system-message.alert-warning {
    background: linear-gradient(135deg, #f43f5e, #e11d48) !important;
    color: #ffffff !important;
    border: none;
    border-radius: 16px;
}

/* ===== CUSTOM SCROLLBAR ===== */
.chat-body::-webkit-scrollbar,
.chat-body::-webkit-scrollbar-track {
    background-color: #1e293b !important;
}
.chat-body::-webkit-scrollbar-thumb {
    background: linear-gradient(135deg, #2677dd, #1a5fb4) !important;
    border-radius: 10px;
}

/* ===== VIDEO HR ===== */
hr.wb-video-hr {
    border-top: 1px dotted #2677dd !important;
}

















body {
    background-color: var(--dark);
    color: #e2e8f0;
}

/* Навбар */
.navbar {
    background-color: var(--dark) !important;
    border-bottom: 1px solid rgba(38, 119, 221, 0.2);
}

/* Карточки */
.card {
    background-color: var(--dark);
    border-color: rgba(38, 119, 221, 0.15);
}

/* Модальные окна */
.modal-content {
    background-color: var(--dark);
    border-color: rgba(38, 119, 221, 0.2);
}

/* Дропдауны */
.dropdown-menu {
    background-color: var(--dark);
    border-color: rgba(38, 119, 221, 0.2);
}

/* Лист группы */
.list-group-item {
    background-color: var(--dark);
    border-color: rgba(38, 119, 221, 0.15);
}

/* Прогресс бар */
.progress {
    background-color: var(--dark);
}

/* Джумботрон */
.jumbotron {
    background-color: var(--dark) !important;
}

/* Футер и другие элементы */
.bg-dark {
    background-color: var(--dark) !important;
}

.bg-primary {
    background: linear-gradient(135deg, #2677dd, #1a5fb4) !important;
}

/* Адаптация для остальных фонов */
.bg-secondary {
    background-color: #2d3748 !important;
}

.bg-success {
    background-color: #059669 !important;
}

.bg-info {
    background-color: #2563eb !important;
}

.bg-warning {
    background-color: #d97706 !important;
}

.bg-danger {
    background-color: #dc2626 !important;
}

.bg-light {
    background-color: var(--dark) !important;
    color: #fff;
}




/* Telegram Login Button Styling */
.telegram-login-wrapper {
    margin-top: 1rem;
}

.telegram-login-wrapper iframe {
    border-radius: 12px !important;
    transition: all 0.3s ease;
}

.telegram-login-wrapper iframe:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}
















































    /* ==========================================================================
       КОМПЛЕКСНЫЕ СТИЛИ СИСТЕМЫ ОТСЛЕЖИВАНИЯ (ULTRA PREMIUM EDITION)
       ========================================================================== */

    :root {
        --cyber-bg: #09090b;
        --glass-bg: rgba(255, 255, 255, 0.015);
        --glass-border: rgba(255, 255, 255, 0.04);
        --neon-blue: #3b82f6;
        --neon-purple: #a855f7;
        --neon-green: #10b981;
        --neon-red: #ff0055;
        --dark-shadow: 0 15px 30px rgba(0,0,0,0.8);
    }

    /* === 1. ГЛОБАЛЬНАЯ ТИПОГРАФИКА И ЗАГОЛОВОК === */
    .tracking-widest { letter-spacing: 2px; text-transform: uppercase; }
    .text-gradient {
        background: linear-gradient(to right, #60a5fa, #c084fc, #34d399);
        -webkit-background-clip: text; -webkit-text-fill-color: transparent;
        text-shadow: 0 0 20px rgba(192, 132, 252, 0.3);
    }
    
    .epic-header { position: relative; perspective: 1000px; }
    .floating-icon { animation: floatIcon 4s ease-in-out infinite; }
    .icon-glow {
        position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
        width: 50px; height: 50px; background: radial-gradient(circle, rgba(96,165,250,0.4) 0%, transparent 70%);
        z-index: -1; filter: blur(10px); animation: pulseGlow 4s ease-in-out infinite;
    }
    
    @keyframes floatIcon { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }
    @keyframes pulseGlow { 0%, 100% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.2); } }

    /* === 2. БЛОК СКАНИРОВАНИЯ (ПОИСК) === */
    .epic-search-block {
        display: flex; align-items: center; 
        background: rgba(10, 12, 16, 0.95); 
        border: 1px solid rgba(255, 0, 85, 0.15); 
        border-radius: 40px; padding: 5px; 
        transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        backdrop-filter: blur(12px);
        box-shadow: 0 15px 25px rgba(0, 0, 0, 0.7), 0 0 12px rgba(255, 0, 85, 0.15); 
    }
    .epic-search-block:hover {
        transform: translateY(-2px);
        box-shadow: 0 20px 35px rgba(0, 0, 0, 0.85), 0 0 20px rgba(255, 0, 85, 0.25);
    }
    .epic-search-block:focus-within {
        border-color: rgba(255, 0, 85, 0.5);
        box-shadow: 0 15px 25px rgba(0, 0, 0, 0.9), 0 0 30px rgba(255, 0, 85, 0.4); 
    }
    
    /* Состояние ошибки для поля ввода */
    .search-error-state {
        border-color: rgba(255, 0, 85, 0.8) !important;
        box-shadow: 0 0 20px rgba(255, 0, 85, 0.5) !important;
        animation: shakeError 0.5s ease-in-out;
    }
    @keyframes shakeError {
        0%, 100% { transform: translateX(0); }
        25% { transform: translateX(-5px); }
        75% { transform: translateX(5px); }
    }

    .search-icon { margin-left: 14px; color: #71717a; transition: all 0.3s; }
    .epic-search-block:focus-within .search-icon { color: var(--neon-red); filter: drop-shadow(0 0 6px var(--neon-red)); }
    .search-input {
        flex: 1; border: none; background: transparent !important; padding: 8px 14px;
        font-size: 0.9rem; outline: none; color: #ffffff !important; font-weight: 500; letter-spacing: 1px;
    }
    .search-input::placeholder { color: rgba(255,255,255,0.3); }
    
    .epic-search-btn {
        background: linear-gradient(135deg, #e11d48, #9f1239); color: white; border: none; border-radius: 40px;
        padding: 8px 20px; font-weight: 700; font-size: 0.8rem; text-transform: uppercase;
        letter-spacing: 1px; transition: all 0.2s ease; box-shadow: 0 0 12px rgba(225, 29, 72, 0.4);
    }
    .epic-search-btn:hover { background: linear-gradient(135deg, #f43f5e, #be123c); box-shadow: 0 0 20px rgba(225, 29, 72, 0.6); }
    .epic-search-btn:active { transform: scale(0.95); }

    /* === 3. ЭКРАН ОШИБКИ (СИГНАЛ НЕ НАЙДЕН) === */
    .error-card-glow {
        box-shadow: 0 20px 40px rgba(0,0,0,0.9), 0 0 30px rgba(255,0,85,0.2) !important;
        border: 1px solid rgba(255,0,85,0.3) !important;
    }
    .error-icon-wrapper { position: relative; display: inline-block; }
    .glitch-icon { filter: drop-shadow(0 0 15px rgba(255,0,85,0.8)); animation: glitchAnim 2s infinite; }
    .error-ripple {
        position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
        width: 100%; height: 100%; border-radius: 50%; border: 2px solid rgba(255,0,85,0.5);
        animation: rippleEffect 2s linear infinite; z-index: -1;
    }
    
    @keyframes glitchAnim {
        0% { transform: translate(0) }
        20% { transform: translate(-2px, 2px) }
        40% { transform: translate(-2px, -2px) }
        60% { transform: translate(2px, 2px) }
        80% { transform: translate(2px, -2px) }
        100% { transform: translate(0) }
    }
    @keyframes rippleEffect {
        0% { width: 0; height: 0; opacity: 1; }
        100% { width: 120px; height: 120px; opacity: 0; }
    }
    .cyber-scanline-error {
        position: absolute; top: 0; left: 0; right: 0; height: 2px;
        background: linear-gradient(to right, transparent, rgba(255, 0, 85, 0.8), transparent);
        opacity: 0.6; animation: scanlineError 2s linear infinite; z-index: 0;
    }
    @keyframes scanlineError { 0% { top: 0; } 100% { top: 100%; } }

    /* === 4. ФОН КАРТОЧКИ ИСТОРИИ (ПРОДВИНУТЫЙ) === */
    .epic-card-bg {
        background: var(--cyber-bg); position: relative; overflow: hidden; 
        border: 1px solid rgba(255,255,255,0.04) !important; box-shadow: var(--dark-shadow);
    }
    
    /* Сетка */
    .cyber-grid-bg {
        position: absolute; top: 0; left: 0; right: 0; bottom: 0;
        background-image: 
            linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
            linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
        background-size: 20px 20px; z-index: 0; pointer-events: none;
        mask-image: linear-gradient(to bottom, transparent, black 20%, black 80%, transparent);
        -webkit-mask-image: linear-gradient(to bottom, transparent, black 20%, black 80%, transparent);
    }
    
    /* Летящие частицы данных (Particles CSS) */
    .data-particles {
        position: absolute; top: 100%; left: 0; width: 100%; height: 100%;
        background-image: radial-gradient(rgba(59, 130, 246, 0.8) 1px, transparent 1px);
        background-size: 40px 40px; background-position: 0 0;
        animation: flyParticles 15s linear infinite; opacity: 0.3; z-index: 0; pointer-events: none;
    }
    @keyframes flyParticles { 0% { transform: translateY(0); } 100% { transform: translateY(-1000px); } }

    .cyber-scanline {
        position: absolute; top: 0; left: 0; right: 0; height: 1px;
        background: linear-gradient(to right, transparent, rgba(59, 130, 246, 0.5), transparent);
        opacity: 0.4; animation: scanline 4s linear infinite; z-index: 0;
    }
    @keyframes scanline { 0% { top: 0; } 100% { top: 100%; } }
    
    .tracking-title { font-size: 0.75rem; letter-spacing: 1.5px; }
    .laser-line { height: 1px; width: 100px; background: linear-gradient(90deg, transparent, var(--neon-blue), var(--neon-purple), transparent); opacity: 0.8; box-shadow: 0 0 8px var(--neon-blue); }

    /* === 5. 3D ТАЙМЛАЙН КОНТЕЙНЕР === */
    .custom-timeline { display: flex; flex-direction: column; perspective: 1000px; padding-top: 10px; }
    .timeline-row { display: flex; gap: 14px; position: relative; padding-bottom: 28px; opacity: 0; animation: fadeInRow 0.6s ease forwards; transform-style: preserve-3d; }
    .timeline-row:last-child { padding-bottom: 0; }
    @keyframes fadeInRow { from { transform: translateZ(-40px) translateY(15px) rotateX(-5deg); opacity: 0; } to { transform: translateZ(0) translateY(0) rotateX(0); opacity: 1; } }

    /* === 6. ОРБЫ-ИКОНКИ С ВНУТРЕННИМ СВЕЧЕНИЕМ === */
    .timeline-icon {
        width: 34px; height: 34px; flex-shrink: 0; border-radius: 50%;
        display: flex; align-items: center; justify-content: center; color: white; position: relative; z-index: 3;
        box-shadow: inset -2px -2px 6px rgba(0,0,0,0.8), inset 2px 2px 6px rgba(255,255,255,0.3), 0 5px 12px rgba(0,0,0,0.7);
        border: 1px solid rgba(255,255,255,0.1); transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    }
    .timeline-row:hover .timeline-icon { transform: scale(1.15) translateZ(15px); }
    
    .epic-icon-blue { background: linear-gradient(135deg, #3b82f6, #1e3a8a); }
    .epic-icon-purple { background: linear-gradient(135deg, #a855f7, #581c87); }
    .epic-icon-green { background: linear-gradient(135deg, #10b981, #064e3b); }

    /* === 7. КАРТОЧКИ (ULTRA GLASSMORPHISM) === */
    .timeline-card {
        flex-grow: 1; margin-top: -3px; position: relative;
        background: var(--glass-bg);
        border-top: 1px solid var(--glass-border); border-left: 1px solid var(--glass-border);
        border-radius: 10px; padding: 10px 14px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
        box-shadow: 0 10px 20px rgba(0,0,0,0.4);
        transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        transform-origin: left center;
    }
    .timeline-row:hover .timeline-card {
        transform: perspective(1000px) rotateY(-3deg) rotateX(1deg) translateY(-3px) scale(1.02);
        box-shadow: -12px 15px 25px rgba(0,0,0,0.6), 0 0 25px var(--glow-color);
        background: rgba(255,255,255,0.03); border-top-color: rgba(255,255,255,0.1);
    }

    /* === 8. ЛИНИИ И ЛЕТЯЩИЕ 3D СТРЕЛКИ === */
    .timeline-track {
        position: absolute; left: 16px; /* Строго по центру 34px сферы */
        top: 34px; bottom: 0; width: 2px; z-index: 2;
        perspective: 800px; transform-style: preserve-3d;
    }
    .track-core {
        position: absolute; top: 0; bottom: 0; left: 0; width: 2px;
        background: rgba(255,255,255,0.05);
    }
    .track-1 .track-core { background: linear-gradient(180deg, var(--neon-blue), var(--neon-purple)); box-shadow: 0 0 6px var(--neon-blue); }
    .track-2 .track-core { background: linear-gradient(180deg, var(--neon-purple), var(--neon-green)); box-shadow: 0 0 6px var(--neon-purple); }

    /* SVG 3D СТРЕЛКИ С РАЗМЫТИЕМ В ДВИЖЕНИИ */
    .moving-arrow-svg {
        position: absolute; left: 50%; width: 16px; height: 16px; margin-left: -8px; 
        opacity: 0; animation: flow3DArrows 2.5s cubic-bezier(0.4, 0, 0.2, 1) infinite;
        filter: drop-shadow(0 4px 4px rgba(0,0,0,0.5));
    }
    .arrow-blue { color: #bfdbfe; filter: drop-shadow(0 0 6px var(--neon-blue)); }
    .arrow-purple { color: #e9d5ff; filter: drop-shadow(0 0 6px var(--neon-purple)); }
    
    .delay-0 { animation-delay: 0s; }
    .delay-1 { animation-delay: 0.8s; }
    .delay-2 { animation-delay: 1.6s; }

    /* Безупречная анимация полета */
    @keyframes flow3DArrows {
        0% { top: 0; opacity: 0; transform: translateZ(-20px) rotateX(60deg) scale(0.6); }
        15% { opacity: 1; transform: translateZ(10px) rotateX(0deg) scale(1.1); }
        85% { opacity: 1; transform: translateZ(10px) rotateX(0deg) scale(1.1); }
        100% { top: calc(100% - 16px); opacity: 0; transform: translateZ(-20px) rotateX(60deg) scale(0.6); }
    }

    /* === 9. ТЕКСТЫ И БЕЙДЖИ === */
    .status-title { font-size: 0.75rem; letter-spacing: 1px; }
    
    .epic-date-badge {
        font-size: 0.65rem; padding: 3px 8px; border-radius: 4px;
        background: rgba(0,0,0,0.5); display: inline-flex; align-items: center;
        border: 1px solid rgba(255,255,255,0.04); letter-spacing: 0.5px;
        box-shadow: inset 0 0 8px rgba(0,0,0,1);
    }
    .date-blue { color: #93c5fd; border-left: 2px solid var(--neon-blue); }
    .date-purple { color: #d8b4fe; border-left: 2px solid var(--neon-purple); }
    .date-green { color: #6ee7b7; border-left: 2px solid var(--neon-green); }
    
    .epic-badge-current {
        background: linear-gradient(90deg, var(--neon-green), #047857); color: white;
        font-size: 0.6rem; padding: 2px 6px; border-radius: 3px; font-weight: 800;
        text-transform: uppercase; letter-spacing: 0.5px; box-shadow: 0 0 10px rgba(16,185,129,0.5);
    }
    
    /* === 10. АНИМАЦИИ И АДАПТИВНОСТЬ === */
    .animate__zoomIn { animation: animate__zoomIn 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
    @keyframes animate__zoomIn { from { opacity: 0; transform: scale3d(0.95, 0.95, 0.95); } 100% { opacity: 1; } }
    
    .pulse-icon { animation: pulseIcon 2s infinite; }
    @keyframes pulseIcon { 0% { transform: scale(1); } 50% { transform: scale(1.15); filter: drop-shadow(0 0 6px var(--neon-blue)); } 100% { transform: scale(1); } }

    @media (max-width: 576px) {
        .timeline-row { gap: 10px; }
        .timeline-track { left: 16px; }
        .timeline-icon { width: 32px; height: 32px; }
        .epic-search-block { padding: 4px; border-radius: 30px; }
        .epic-search-btn { padding: 8px 14px; font-size: 0.75rem; }
        .epic-header h1 { font-size: 1.1rem !important; }
    }
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
       /* =========================================================
       СТИЛЬ КРУГЛЫХ КАПСУЛ (Изоляция 100%)
       ========================================================= */

    /* 1. ГЛАВНЫЙ БЛОК (Темнее, чтобы капсулы выделялись) */
    .tg-dock-wrapper {
    	margin-top: 200px;
        position: fixed;
        bottom: 1px;
        left: 5px;
        right: 5px;
        background: rgba(10, 10, 14, 0.85); /* Более темный основной фон */
        border: 1px solid #a122006e;
        border-radius: 26px; /* Внешний радиус */
        z-index: 1050;
        padding: 5px; /* Компактный паддинг внутри */
        box-shadow: 0 10px 20px rgba(0, 0, 0, 0.6);
    }


    .tg-dock-list {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin: 0;
        padding: 0;
        list-style: none;
        width: 100%;
        gap: 3px; /* Расстояние между капсулами */
    }

    .tg-dock-item {
        flex: 1;
        display: flex;
        justify-content: center;
        position: relative;
    }

    .tg-dock-link {
        display: block;
        width: 100%;
        text-decoration: none !important;
        -webkit-tap-highlight-color: transparent;
    }

    /* 2. ПОДБЛОКИ (Индивидуальный цвет и КРУГЛЫЙ радиус) */
    .tg-dock-pill {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 2.5px;
                border: 1px solid #7c5e965e;
        background: #5706bd24; /* Светлее главного фона - контраст! */
        border-radius: 100px; /* СИЛЬНО ЗАКРУГЛЕННЫЕ КРАЯ (почти круглые) */
        padding: 1px 0; /* Компактный отступ */
        color: #fff; /* Светло-серый текст */
        transition: all 0.25s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.05);
    }

    /* Иконки теперь снова цветные благодаря svg-defs! */
    .tg-icon {
        transition: transform 0.25s ease-in-out;
        filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5)); /* Легкая тень под цветной иконкой */
    }

    .tg-dock-label {
        font-size: 0.55rem; /* Маленький аккуратный текст */
        font-weight: 600;
        letter-spacing: 0.2px;
    }

    .tg-icon-box {
        position: relative;
        display: inline-flex;
    }

    /* === 3. АКТИВНОЕ СОСТОЯНИЕ (Подсветка капсулы) === */
    .tg-dock-item.is-active .tg-dock-pill {
        background: rgba(59, 130, 246, 0.15); /* Синеватое свечение активной капсулы */
        color: #fff;
        border: 1px solid rgba(59, 130, 246, 0.3); /* Легкая синяя рамка */
        box-shadow: inset 0 0 10px rgba(59, 130, 246, 0.1), 0 4px 10px rgba(0,0,0,0.3);
    }

    .tg-dock-item.is-active .tg-icon {
        transform: scale(1.1) translateY(-1px); /* Иконка слегка "выпрыгивает" */
    }

    /* Кнопка выхода */
    .pill-logout {
        color: rgba(239, 68, 68, 0.8);
    }
    .tg-dock-link:active .pill-logout {
        background: rgba(239, 68, 68, 0.2);
    }

    /* Эффект нажатия (тап) */
    .tg-dock-link:active .tg-dock-pill {
        transform: scale(0.92);
        opacity: 0.8;
    }

    /* === 4. УМНЫЕ БЕЙДЖИ === */
    .tg-badge {
        position: absolute;
        top: -4px;
        right: -6px;
        background: linear-gradient(135deg, #ef4444, #b91c1c); 
        color: white;
        border-radius: 10px;
        min-width: 14px;
        height: 14px;
        font-size: 8px;
        font-weight: 800;
        display: flex;
        align-items: center;
        justify-content: center;
        padding: 0 4px;
        border: 1.5px solid #1c1c22;
        z-index: 5;
        transition: opacity 0.2s ease, transform 0.2s ease;
        box-shadow: 0 2px 5px rgba(239, 68, 68, 0.5);
    }

    .tg-badge:empty {
        opacity: 0;
        transform: scale(0);
        pointer-events: none;
    }

    /* Сброс стрелки Bootstrap */
    .tg-dock-item .dropdown-toggle::after { display: none !important; }

    /* === 5. ВЫПАДАЮЩЕЕ МЕНЮ (ДРУЗЬЯ) === */
    .tg-dropup-menu {
        background: rgba(18, 18, 22, 0.95) !important; 

        border: 1px solid rgba(255, 255, 255, 0.08) !important;
        border-radius: 18px !important;
        box-shadow: 0 -5px 25px rgba(0, 0, 0, 0.6) !important;
        width: 240px;
        bottom: calc(100% + 10px) !important;
        padding: 0 !important;
        transform-origin: bottom center;
        animation: dropupScaleIn 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
    }

    @keyframes dropupScaleIn {
        from { opacity: 0; transform: translateY(10px) scale(0.95); }
        to { opacity: 1; transform: translateY(0) scale(1); }
    }

    .tg-dropup-inner { padding: 10px; }

    .tg-segment-control {
        display: flex;
        background: rgba(255, 255, 255, 0.08);
        padding: 3px;
        border-radius: 10px;
        margin-bottom: 10px;
    }

    .tg-segment-btn {
        flex: 1;
        text-align: center;
        color: #a1a1aa;
        font-size: 0.75rem;
        padding: 5px;
        border-radius: 8px;
        text-decoration: none !important;
        transition: all 0.2s ease;
    }

    .tg-segment-btn.active {
        background: rgba(59, 130, 246, 0.25);
        color: #60a5fa;
        font-weight: 600;
        box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    }

    .tg-dropup-footer {
        margin-top: 8px;
        padding-top: 8px;
        border-top: 1px solid rgba(255,255,255,0.05);
        text-align: center;
    }

    .tg-find-link {
        color: #60a5fa;
        font-size: 0.75rem;
        font-weight: 600;
        text-decoration: none !important;
    }

    @media (min-width: 768px) {
        .tg-dock-wrapper { display: none !important; }
        body { padding-bottom: 0; }
    }