/* ===== IMPORTAÇÃO DE TODOS OS ARQUIVOS ===== */

/* BASE */
@import '_variables.css';
@import '_reset.css';
@import '_typography.css';
@import '_utilities.css';
@import '_theme-patterns.css';

/* COMPONENTES */
@import 'components/_buttons.css';
@import 'components/_cards.css';
@import 'components/_carrossel.css';
@import 'components/_forms.css';
@import 'components/_modal-galeria.css';
@import 'components/_upload.css';
@import 'components/_menu-conta.css';
@import 'components/_busca.css';

/* MODAIS MODERNOS */
@import 'components/modals.css';

/* LAYOUT */
@import 'layout/_header.css';
@import 'layout/_footer.css';
@import 'layout/_grid.css';
@import 'layout/_sidebar.css';

/* EFEITOS */
@import 'effects.css';

/* PÁGINAS */
@import 'pages/__shared.css';

/* ===== OTIMIZAÇÕES DE PERFORMANCE ===== */

/* Lazy loading de imagens */
img[loading="lazy"] {
    content-visibility: auto;
    contain: content;
}

/* Redução de reflows */
.calendario-dia,
.card,
.evento-card,
.material-card,
.norma-card {
    contain: layout style paint;
}

/* Prevenção de repaints desnecessários */
.galeria-item img,
.evento-header-bg {
    will-change: transform;
    transform: translateZ(0);
}

/* Animações otimizadas */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    .calendario-dia,
    .card,
    .evento-card {
        transform: none !important;
    }
}

/* Otimização para telas grandes */
@media (min-width: 1920px) {
    #container {
        max-width: 1800px;
        margin: 0 auto;
    }
    
    .eventos-grid {
        grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    }
    
    .galeria-grid {
        grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    }
}

/* Otimização para telas 4K */
@media (min-width: 2560px) {
    body {
        font-size: 18px;
    }
    
    .card-pauta,
    .material-card,
    .norma-card {
        padding: 32px;
    }
    
    .galeria-grid {
        grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    }
    
    .eventos-grid {
        grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    }
}

/* ===== BOTÕES DE FAVORITO ===== */
.favorito-btn {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: white;
    color: #ffd700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    transition: all 0.3s ease;
    z-index: 10;
    opacity: 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.card:hover .favorito-btn,
.material-card:hover .favorito-btn,
.norma-card:hover .favorito-btn,
.evento-card:hover .favorito-btn,
.card-pauta:hover .favorito-btn,
.card-edital:hover .favorito-btn {
    opacity: 1;
}

.favorito-btn:hover {
    transform: scale(1.1);
}

.favorito-btn.favorito-ativo {
    background: #daa139;
    color: white;
}

.favoritos-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    border-radius: 20px;
    background: #daa139;
    color: white;
    font-size: 11px;
    font-weight: 600;
    margin-left: 8px;
}