/**
 * Стили для дашборда и внутренних страниц
 */

body {
    background: var(--background);
}

/* Основной контейнер с sidebar */
.dashboard-layout {
    display: flex;
    max-width: 1400px;
    margin: 0 auto;
    gap: var(--spacing-xl);
    padding: var(--spacing-xl) var(--spacing-lg);
}

.container-main {
    flex: 1;
}

/* Приветственная секция */
.welcome-section {
    background: var(--white);
    border-radius: var(--radius-lg);
    padding: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
    box-shadow: var(--shadow);
    animation: fadeIn 0.4s ease-out;
}

.welcome-section h1 {
    margin-bottom: var(--spacing-sm);
    color: var(--black);
    font-size: var(--text-3xl);
    font-weight: 500;
}

.welcome-section p {
    color: var(--text-secondary);
    margin: 0;
}

/* Статистика - стили перенесены в stats.css */

/* Быстрые действия */
/* Кнопки типа транзакции в модалке — единый нейтральный стиль */
.transaction-type-group .btn-transaction-type {
    color: var(--text-secondary) !important;
    border: 1px solid var(--gray-300) !important;
    background-color: var(--white) !important;
}

.transaction-type-group .btn-check:checked + .btn-transaction-income {
    color: var(--success) !important;
    border-color: var(--success) !important;
    background-color: var(--success-light) !important;
}

.transaction-type-group .btn-check:checked + .btn-transaction-expense {
    color: var(--danger) !important;
    border-color: var(--danger) !important;
    background-color: var(--danger-light) !important;
}

.transaction-type-group .btn-check:checked + .btn-transaction-transfer {
    color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    background-color: var(--primary-light) !important;
}

.transaction-type-group .btn-transaction-type:hover {
    border-color: var(--gray-400) !important;
    background-color: var(--gray-50) !important;
}

.transaction-type-group .btn-check:checked + .btn-transaction-income:hover {
    background-color: var(--success-light) !important;
    border-color: var(--success) !important;
}

.transaction-type-group .btn-check:checked + .btn-transaction-expense:hover {
    background-color: var(--danger-light) !important;
    border-color: var(--danger) !important;
}

.transaction-type-group .btn-check:checked + .btn-transaction-transfer:hover {
    background-color: var(--primary-light) !important;
    border-color: var(--primary-color) !important;
}

/* Кнопки с иконками в таблицах — серый фон по умолчанию, цвет при наведении */
.table .btn.btn-sm.btn-outline-primary,
.table .btn.btn-sm.btn-outline-secondary,
.table .btn.btn-sm.btn-outline-danger,
.table .btn.btn-sm.btn-outline-success {
    background-color: var(--gray-100) !important;
    border-color: var(--gray-200) !important;
    color: var(--text-secondary) !important;
}

.table .btn.btn-sm.btn-outline-primary:hover {
    background-color: var(--primary-light) !important;
    border-color: var(--primary-color) !important;
    color: var(--primary-color) !important;
}

.table .btn.btn-sm.btn-outline-secondary:hover {
    background-color: var(--gray-200) !important;
    border-color: var(--gray-400) !important;
    color: var(--text-primary) !important;
}

.table .btn.btn-sm.btn-outline-danger:hover {
    background-color: var(--danger-light) !important;
    border-color: var(--danger) !important;
    color: var(--danger) !important;
}

.table .btn.btn-sm.btn-outline-success:hover {
    background-color: var(--success-light) !important;
    border-color: var(--success) !important;
    color: var(--success) !important;
}

.btn-outline-success:hover {
    background: var(--primary-color);
    border-color: var(--primary-color);
    color: var(--white);
    transform: translateY(-2px);
}

.btn-outline-warning:hover {
    background: var(--orange);
    border-color: var(--orange);
    color: var(--white);
    transform: translateY(-2px);
}

/* Блоки заголовков страниц */
.container-main .d-flex.justify-content-between {
    gap: var(--spacing-lg);
}

.container-main .d-flex.justify-content-between h1 {
    font-size: var(--text-3xl);
    margin-bottom: var(--spacing-xs);
}

.container-main .d-flex.justify-content-between .text-muted {
    font-size: var(--text-sm);
}

/* Адаптивность */
@media (max-width: 992px) {
    .dashboard-layout {
        flex-direction: column;
        padding: var(--spacing-lg) var(--spacing);
        padding-bottom: calc(70px + env(safe-area-inset-bottom) + var(--spacing-lg));
    }
}

@media (max-width: 768px) {
    .stat-card h3 {
        font-size: var(--text-3xl);
    }
    
    .welcome-section {
        padding: var(--spacing-lg);
    }
    
    .welcome-section h1 {
        font-size: var(--text-2xl);
    }
    
    /* Адаптивные стили для заголовков страниц */
    .container-main .d-flex.justify-content-between {
        flex-direction: column;
        align-items: flex-start !important;
        gap: var(--spacing);
    }
    
    .container-main .d-flex.justify-content-between h1 {
        font-size: var(--text-2xl);
        margin-bottom: var(--spacing-xs);
    }
    
    .container-main .d-flex.justify-content-between .text-muted {
        font-size: var(--text-sm);
        margin-bottom: var(--spacing);
    }
    
    /* Кнопки в заголовках - на всю ширину или wrap */
    .container-main .d-flex.justify-content-between > div:last-child,
    .container-main .d-flex.justify-content-between > button:last-child {
        width: 100%;
    }
    
    /* Если кнопки в div с классом d-flex (несколько кнопок) */
    .container-main .d-flex.justify-content-between > div:last-child.d-flex {
        flex-direction: column;
        width: 100%;
        gap: var(--spacing-sm);
    }
    
    /* Если кнопки в div без класса d-flex, но внутри есть кнопки */
    .container-main .d-flex.justify-content-between > div:last-child:not(.d-flex) {
        display: flex;
        flex-direction: column;
        width: 100%;
        gap: var(--spacing-sm);
    }
    
    .container-main .d-flex.justify-content-between > div:last-child .btn,
    .container-main .d-flex.justify-content-between > button:last-child {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 480px) {
    .container-main .d-flex.justify-content-between h1 {
        font-size: var(--text-xl);
    }
}

/* Секция архива — сворачиваемая по умолчанию */
.archive-section-toggle {
    cursor: pointer;
    text-align: left;
    font-weight: 500;
}

.archive-section-toggle:hover {
    color: var(--text-primary) !important;
}

.archive-section-toggle .archive-chevron {
    transition: transform 0.2s ease;
}

.archive-section-toggle[aria-expanded="true"] .archive-chevron {
    transform: rotate(90deg);
}
