/* ====================================================================
   GRAY COLOR SCHEME OVERRIDES FOR BOOTSTRAP CLASSES
   Переопределение красных danger классов Bootstrap на серую схему
   ==================================================================== */

/* Переопределение кнопок danger */
.btn-danger {
    color: var(--text-primary);
    background-color: var(--gray-danger);
    border-color: var(--gray-danger);
}

.btn-danger:hover {
    color: var(--text-primary);
    background-color: var(--accent-primary);
    border-color: var(--accent-primary);
    transform: translateY(-2px);
}

.btn-danger:focus,
.btn-danger.focus {
    color: var(--text-primary);
    background-color: var(--accent-primary);
    border-color: var(--accent-primary);
    box-shadow: 0 0 0 0.25rem rgba(255, 107, 107, 0.25);
}

.btn-danger:active,
.btn-danger.active,
.show > .btn-danger.dropdown-toggle {
    color: var(--text-primary);
    background-color: var(--accent-primary);
    border-color: var(--accent-primary);
}

.btn-danger:disabled,
.btn-danger.disabled {
    color: var(--text-primary);
    background-color: var(--gray-danger);
    border-color: var(--gray-danger);
    opacity: 0.65;
}

/* Переопределение текстовых danger классов */
.text-danger {
    color: var(--gray-danger);
}

/* Переопределение фоновых danger классов */
.bg-danger {
    background-color: var(--gray-error-bg);
    color: var(--gray-danger);
}

/* Переопределение границ danger */
.border-danger {
    border-color: var(--gray-danger);
}

/* Переопределение alert-danger */
.alert-danger {
    color: var(--gray-danger);
    background-color: var(--gray-error-bg);
    border-color: var(--gray-error-border);
}

.alert-danger hr {
    border-top-color: var(--gray-danger);
}

.alert-danger .alert-link {
    color: var(--accent-primary);
}

/* Переопределение badge-danger */
.badge-danger {
    color: var(--text-primary);
    background-color: var(--gray-danger);
}

/* Переопределение list-group-item-danger */
.list-group-item-danger {
    color: var(--gray-danger);
    background-color: var(--gray-error-bg);
}

.list-group-item-danger.list-group-item-action:hover,
.list-group-item-danger.list-group-item-action:focus {
    color: var(--gray-danger);
    background-color: var(--bg-tertiary);
}

.list-group-item-danger.list-group-item-action.active {
    color: var(--text-primary);
    background-color: var(--gray-danger);
    border-color: var(--gray-danger);
}

/* Переопределение table-danger */
.table-danger,
.table-danger > th,
.table-danger > td {
    background-color: var(--gray-error-bg);
}

.table-hover .table-danger:hover {
    background-color: var(--bg-tertiary);
}

/* Переопределение form validation */
.invalid-feedback {
    color: var(--gray-danger);
}

.was-validated .form-control:invalid,
.form-control.is-invalid {
    border-color: var(--gray-danger);
}

.was-validated .form-control:invalid:focus,
.form-control.is-invalid:focus {
    border-color: var(--gray-danger);
    box-shadow: 0 0 0 0.25rem rgba(255, 107, 107, 0.25);
}

/* Переопределение progress-bar-danger */
.progress-bar-danger {
    background-color: var(--gray-danger);
}

/* Переопределение text-danger для иконок */
.bi-x-circle,
.bi-exclamation-triangle,
.bi-exclamation-circle {
    color: var(--gray-danger);
}

/* Специальные классы для VideoMania */
/* Использование более специфичных селекторов для переопределения Bootstrap без !important */
/* Повышаем специфичность через каскад и контекст компонентов */
.videomania-container .status-failed,
.videomania-container .image-failed,
.videomania-container .result-error i,
.generation-container .status-failed,
.generation-container .image-failed,
.generation-container .result-error i,
.storyboard-container .status-failed,
.storyboard-container .image-failed,
.storyboard-container .result-error i,
body .status-failed,
body .image-failed,
body .result-error i,
/* Дополнительная специфичность для переопределения inline стилей */
[class*="status-"].status-failed,
[class*="image-"].image-failed,
[class*="result-"].result-error i {
    color: var(--error);
}

/* Усиление специфичности через :where() для современных браузеров */
:where(.status-failed),
:where(.image-failed),
:where(.result-error) i {
    color: var(--error);
}

/* Обеспечение приоритета через @layer для браузеров с поддержкой CSS Layers */
@layer overrides {
    .status-failed,
    .image-failed,
    .result-error i {
        color: var(--error);
    }
}

/* Переопределение красных акцентов на Gray акценты */
.btn-outline-danger {
    color: var(--gray-danger);
    border-color: var(--gray-danger);
}

.btn-outline-danger:hover {
    color: var(--text-primary);
    background-color: var(--gray-danger);
    border-color: var(--gray-danger);
}

.btn-outline-danger:focus,
.btn-outline-danger.focus {
    box-shadow: 0 0 0 0.25rem rgba(255, 107, 107, 0.5);
}

.btn-outline-danger:disabled,
.btn-outline-danger.disabled {
    color: var(--gray-danger);
    background-color: transparent;
}

/* Замена красных индикаторов */
.spinner-border-danger {
    color: var(--gray-danger);
}

.text-danger-emphasis {
    color: var(--accent-primary);
}

/* Замена красных ссылок */
.link-danger {
    color: var(--gray-danger);
}

.link-danger:hover,
.link-danger:focus {
    color: var(--accent-primary);
}

/* Переопределение dropdown-item-danger */
.dropdown-item-danger,
.dropdown-item-danger:hover,
.dropdown-item-danger:focus {
    color: var(--gray-danger);
    background-color: var(--gray-error-bg);
}

/* Переопределение pagination */
.page-item.active .page-link {
    background-color: var(--accent-primary);
    border-color: var(--accent-primary);
}

/* Переопределение красных тостов */
.toast-danger {
    color: var(--gray-danger);
    background-color: var(--gray-error-bg);
    border-color: var(--gray-error-border);
}

/* Переопределение красных модальных окон */
.modal-header.bg-danger {
    background-color: var(--gray-error-bg);
    color: var(--gray-danger);
}

.btn:hover,
.btn:focus {
    box-shadow: none;
}

/* Глобальное переопределение всех красных цветов */
[style*="#dc3545"],
[style*="#ff4458"],
[style*="#cc2244"],
[style*="#ef4444"] {
    color: var(--gray-danger);
}

[style*="background-color: #dc3545"],
[style*="background-color: #ff4458"],
[style*="background-color: #cc2244"],
[style*="background-color: #ef4444"] {
    background-color: var(--gray-danger);
}

[style*="border-color: #dc3545"],
[style*="border-color: #ff4458"],
[style*="border-color: #cc2244"],
[style*="border-color: #ef4444"] {
    border-color: var(--gray-danger);
}

/* ====================================================================
   НОВЫЕ GRAY DANGER КЛАССЫ ДЛЯ РАСКАДРОВКИ
   ==================================================================== */

/* Замена text-danger на text-gray-danger */
.text-gray-danger {
    color: var(--gray-glossy);
}

/* Замена btn-danger на btn-gray-danger */
/* btn-gray-danger использует модифицированный .vm-button-glossy */
.btn-gray-danger {
    color: var(--text-primary);
    padding: 0.375rem 0.75rem;
    font-weight: 500;
    /* Меньшие тени для danger кнопки */
    box-shadow: 
        0 2px 4px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.btn-gray-danger:hover {
    background: var(--gray-glossy-hover);
    border-color: var(--gray-glossy-border);
    transform: translateY(-1px);
    box-shadow: 
        0 4px 8px rgba(0, 0, 0, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
}

.btn-gray-danger:active {
    transform: translateY(0);
    box-shadow: 
        0 1px 2px rgba(0, 0, 0, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.btn-gray-danger:disabled {
    background: var(--bg-tertiary);
    color: var(--text-secondary);
    border-color: var(--gray-separator);
    cursor: not-allowed;
    opacity: 0.6;
    transform: none;
    box-shadow: none;
} 