/* ========================================
   AGENDA CUSTOM CSS - Layout Completo Tela Cheia
   ======================================== */

/* Remover padding/margin da página quando na agenda */
body:has(.agenda-container) {
    overflow: hidden !important;
}

body:has(.agenda-container) .content-page {
    padding: 0 !important;
    margin: 0 !important;
}

/* Layout completo da agenda - TELA CHEIA */
.agenda-container {
    display: flex !important;
    height: 100vh !important;
    width: 100vw !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    background: white !important;
    z-index: 999 !important;
}

/* Sidebar da agenda com botão visível */
.agenda-sidebar {
    display: flex !important;
    flex-direction: column !important;
    width: 200px !important;
    min-width: 200px !important;
    max-width: 200px !important;
    height: 100vh !important;
    background: #f8f9fa !important;
    border-right: 1px solid #dee2e6 !important;
    padding: 10px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    z-index: 1000 !important;
}

/* Seções da sidebar */
.navigation-buttons {
    flex-shrink: 0;
}

.filters-section {
    flex-shrink: 0;
    margin-top: 15px;
}

.status-section {
    flex-shrink: 0;
    margin-top: 15px;
}

/* Botão Retornar - GARANTIR VISIBILIDADE */
.agenda-sidebar > .mt-auto {
    margin-top: auto !important;
    padding: 15px 0 15px 0 !important;
    flex-shrink: 0 !important;
    min-height: 60px !important;
    position: sticky !important;
    bottom: 0 !important;
    background: #f8f9fa !important;
    border-top: 1px solid #dee2e6 !important;
    z-index: 10 !important;
}

.agenda-sidebar .mt-auto .btn-warning {
    background-color: #ffc107 !important;
    border-color: #ffc107 !important;
    color: #212529 !important;
    font-weight: 600 !important;
    padding: 10px 20px !important;
    font-size: 14px !important;
    width: 100% !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
    display: block !important;
}

.agenda-sidebar .mt-auto .btn-warning:hover {
    background-color: #ffb300 !important;
    border-color: #ffb300 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 8px rgba(0,0,0,0.15) !important;
}

/* Área principal da agenda - MÁXIMO ESPAÇO */
.agenda-main {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100vh !important;
    overflow: hidden !important;
    background: white !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Schedule ocupando todo espaço */
.agenda-schedule {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: calc(100vh - 10px) !important;
    overflow: hidden !important;
}

.agenda-schedule .card {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border: none !important;
    min-height: 0 !important; /* Permite que o flexbox encolha */
}

.agenda-schedule .card-body {
    flex: 1 !important;
    padding: 0 !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important; /* Permite que o flexbox encolha */
}

.schedule-container {
    flex: 1 !important;
    overflow: auto !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    min-height: 100% !important;
}

/* Tabela da agenda */
.schedule-table {
    table-layout: fixed !important;
    width: 100% !important;
    margin: 0 !important;
    height: 100% !important;
    flex: 1 !important;
}

.schedule-table tbody {
    height: 100% !important;
    display: table-row-group !important;
}

/* Linhas da agenda com altura dinâmica */
.time-slot-row {
    height: inherit !important;
}

.time-slot-row td {
    height: inherit !important;
    min-height: inherit !important;
    vertical-align: middle !important;
    border: 1px solid #e9ecef !important;
}

/* Células clicáveis - TODAS AS CÉLULAS */
.appointment-cell-container {
    cursor: pointer !important;
    padding: 0 !important;
    transition: all 0.2s !important;
    position: relative !important;
    vertical-align: middle !important;
    height: 100% !important;
    min-height: 100% !important;
    border: 1px solid #e9ecef !important;
}

/* Garantir que os agendamentos ocupem toda a altura da célula - ALTURA FIXA */
.appointment-cell {
    height: 100% !important;
    min-height: 100% !important;
    max-height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    padding: 0.5px 1px !important;
    overflow: hidden !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
}

/* Permitir cliques em cadeados clicáveis */
.agenda-fechada {
    pointer-events: auto !important;
    cursor: pointer !important;
}

.agenda-fechada:hover {
    background-color: #e9ecef !important;
}

.agenda-fechada * {
    pointer-events: none !important;
}

/* Garantir que células vazias também sejam clicáveis */
.appointment-cell-container:empty::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    cursor: pointer !important;
}

.appointment-cell-container:hover {
    background-color: #f0f0f0 !important;
}

.appointment-cell-container.agenda-fechada {
    cursor: pointer !important;
    background-color: #f8f9fa !important;
}

.appointment-cell-container.agenda-fechada:hover {
    background-color: #e9ecef !important;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1) !important;
}

/* Responsividade */
@media (max-width: 992px) {
    .agenda-sidebar {
        width: 200px !important;
        min-width: 200px !important;
        max-width: 200px !important;
    }
}

@media (max-width: 768px) {
    .agenda-sidebar {
        width: 180px !important;
        min-width: 180px !important;
        max-width: 180px !important;
        padding: 10px !important;
    }
    
    .agenda-sidebar .btn {
        font-size: 0.75rem !important;
        padding: 0.25rem 0.5rem !important;
    }
    
    .agenda-sidebar h6 {
        font-size: 0.85rem !important;
    }
    
    /* Ajustar tamanho das células em telas menores */
    .appointment-cell-container {
        height: 100% !important;
        min-height: 20px !important;
    }
}

@media (max-width: 576px) {
    .agenda-sidebar {
        width: 150px !important;
        min-width: 150px !important;
        max-width: 150px !important;
        padding: 8px !important;
    }
    
    .agenda-sidebar .btn {
        font-size: 0.7rem !important;
        padding: 0.2rem 0.4rem !important;
    }
    
    .agenda-sidebar h6 {
        font-size: 0.8rem !important;
    }
    
    /* Ajustar ainda mais em telas muito pequenas */
    .appointment-cell-container {
        height: 100% !important;
        min-height: 18px !important;
    }
    
    .professional-column {
        min-width: 80px !important;
        font-size: 0.7rem !important;
    }
    
    .time-column {
        width: 60px !important;
        min-width: 60px !important;
        font-size: 0.7rem !important;
    }
    
    /* Esconder ícones em telas muito pequenas para economizar espaço */
    .agenda-sidebar .btn i {
        display: none !important;
    }
}

/* Forçar remoção de margens do content-wrapper */
.content-wrapper {
    margin: 0 !important;
    padding: 0 !important;
}

/* Garantir que nenhum elemento pai adicione padding */
.page-content {
    padding: 0 !important;
}

/* Remover qualquer espaço extra do body quando na agenda */
body:has(.agenda-container) {
    padding-top: 0 !important;
    margin-top: 0 !important;
}