/* ========================================
   THEME-CUSTOM.CSS
   Estilos globais, variáveis, reset e layout principal
======================================== */

/* ========================================
   1. IMPORTAÇÕES E VARIÁVEIS GLOBAIS
======================================== */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap');

:root {
    /* Paleta Lux Spa Premium */
    --primary-color: #8F1A18;
    --primary-dark: #5B1F24;
    --secondary-color: #C8A47A;
    --tertiary-color: #E7E1D6;
    --text-color: #3A1F1F;
    --muted-color: #7B6661;
    --body-bg-color: #F7F1EA;
    --header-footer-bg: #EFE6DA;
    --card-bg-color: #FFFDF9;
    --black-lux: #111111;
    --gold-lux: #C19A3B;
    --text-color-branco: #FFFFFF;

    /* Estrutura do sistema */
    --sidebar-width-expanded: 260px;
    --sidebar-width-collapsed: 88px;
    --header-height: 70px;

    /* Compatibilidade com Bootstrap */
    --bs-primary: #2563EB;
}

/* ========================================
   2. RESET BÁSICO E BODY
======================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    font-family: 'Poppins', sans-serif;
}

body {
    color: var(--text-color);
    background: linear-gradient(
        135deg,
        #F7F1EA 0%,
        #EFE6DA 50%,
        #FFFDF9 100%
    );
    transition: padding-left 0.4s ease;
}

/* ========================================
   3. ESTRUTURA DO CONTEÚDO PRINCIPAL
======================================== */
.main-content {
    width: 100%;
    height: 100vh;
    padding-left: calc(var(--sidebar-width-expanded) + 10px);
    display: flex;
    flex-direction: column;
    transition: padding-left 0.4s ease;
}

body.sidebar-collapsed .main-content {
    padding-left: calc(var(--sidebar-width-collapsed) + 10px);
}

.content-body {
    flex-grow: 1;
    overflow-y: auto;
    padding: 24px;
    margin: 10px;
    background: var(--card-bg-color);
    border: 1px solid rgba(200, 164, 122, 0.28);
    border-radius: 8px;
    box-shadow: 0 18px 45px rgba(91, 31, 36, 0.08);
    scrollbar-width: thin;
    scrollbar-color: var(--primary-color) #F7F1EA;
}

/* ========================================
   4. BOTÕES GLOBAIS
======================================== */
.btn-primary,
.btn-success,
.btn-info,
.badge-primary,
.page-item.active .page-link,
.bg-primary {
    color: #FFFFFF !important;
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
}

.btn-primary,
.btn-secondary {
    font-weight: 700;
}

.btn-primary:hover,
.btn-success:hover,
.btn-info:hover {
    color: #FFFFFF !important;
    background-color: var(--primary-dark) !important;
    border-color: var(--primary-dark) !important;
}

.btn-secondary,
.btn-outline-primary:hover,
.btn-warning {
    color: #2B1818 !important;
    background-color: var(--secondary-color) !important;
    border-color: var(--secondary-color) !important;
}

.btn-outline-primary {
    color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
}

/* ========================================
   5. LINKS E TEXTOS
======================================== */
.text-primary,
a,
.text-custom {
    color: var(--primary-color) !important;
}

a:hover {
    color: var(--primary-dark) !important;
}

/* ========================================
   6. CARDS, MODAIS, MENUS E CAMPOS
======================================== */
.card,
.modal-content,
.dropdown-menu,
.table,
.form-control,
.custom-select,
.bootstrap-select .dropdown-toggle {
    border-color: rgba(200, 164, 122, 0.32) !important;
}

.card-header,
.modal-header {
    color: var(--primary-dark) !important;
    background: linear-gradient(90deg, #913C32, #FFFDF9) !important;
    border-bottom: 1px solid rgba(200, 164, 122, 0.35) !important;
}

.form-control:focus,
.custom-select:focus,
.bootstrap-select .dropdown-toggle:focus {
    border-color: var(--secondary-color) !important;
    box-shadow: 0 0 0 0.2rem rgba(143, 26, 24, 0.16) !important;
}

/* ========================================
   7. ALERTAS
======================================== */
.alert-success {
    color: #5B1F24;
    background-color: #EFE6DA;
    border-color: #C8A47A;
}

.alert-danger {
    color: #5B1F24;
    background-color: #F5E4E2;
    border-color: #8F1A18;
}

.alert-info {
    color: #3A1F1F;
    background-color: #F7F1EA;
    border-color: #C8A47A;
}

/* ========================================
   8. CABEÇALHO DAS TABELAS
======================================== */
.table thead th {
    padding: 16px 18px !important;
    color: #5A1F1B !important;
    background: linear-gradient(180deg, #FFF8F0 0%, #F8EFE4 100%) !important;
    border-top: 2px solid var(--secondary-color) !important;
    border-right: 1px solid rgba(200, 164, 122, 0.30) !important;
    border-bottom: 2px solid #E4D2BF !important;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.3px;
    line-height: 1.25;
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
    transition: background 0.25s ease;
}

.table thead th:last-child {
    border-right: none !important;
}

.table thead th:hover {
    background: linear-gradient(180deg, #FFF3E7 0%, #F5E8D7 100%) !important;
}

/* Setas de ordenação do DataTables */
table.dataTable thead .sorting::before,
table.dataTable thead .sorting::after,
table.dataTable thead .sorting_asc::before,
table.dataTable thead .sorting_asc::after,
table.dataTable thead .sorting_desc::before,
table.dataTable thead .sorting_desc::after {
    color: var(--primary-color) !important;
    opacity: 0.35;
}

table.dataTable thead .sorting_asc::after,
table.dataTable thead .sorting_desc::after {
    opacity: 1;
}

/* ========================================
   9. CORPO DAS TABELAS
======================================== */
.table tbody tr {
    transition:
        background-color 0.25s ease,
        box-shadow 0.25s ease;
}

.table tbody td {
    border-bottom: 1px solid #EFE7DD !important;
    vertical-align: middle;
}

.table tbody tr:hover td {
    background-color: #FCF8F4 !important;
}

/* ========================================
   10. CONTROLES DO DATATABLES
======================================== */
.dataTables_wrapper .dataTables_filter input {
    min-height: 42px;
    padding: 8px 14px;

    color: var(--text-color);
    background-color: #FFFFFF;
    border: 1px solid #DCC7AF;
    border-radius: 12px;
    outline: none;

    box-shadow: none;

    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease,
        background-color 0.25s ease;
}

.dataTables_wrapper .dataTables_filter input:focus {
    background-color: #FFFDF9;
    border-color: var(--primary-color);

    box-shadow: 0 0 0 4px rgba(145, 60, 50, 0.12);
}

.dataTables_wrapper .dataTables_length select {
    min-height: 42px;
    padding: 6px 30px 6px 10px;

    color: var(--text-color);
    background-color: #FFFFFF;
    border: 1px solid #DCC7AF;
    border-radius: 10px;
    outline: none;

    box-shadow: none;

    transition:
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}

.dataTables_wrapper .dataTables_length select:focus {
    border-color: var(--primary-color);
    box-shadow: 0 0 0 4px rgba(145, 60, 50, 0.12);
}

/* Paginação do DataTables */
.dataTables_wrapper .dataTables_paginate .paginate_button,
.dataTables_wrapper .dataTables_paginate .page-link {
    min-width: 38px;
    min-height: 38px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    margin: 0 2px;
    padding: 7px 12px !important;

    color: var(--primary-color) !important;
    background: #FFFFFF !important;
    border: 1px solid #E3D2C2 !important;
    border-radius: 10px !important;

    box-shadow: none !important;

    transition:
        color 0.25s ease,
        background-color 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
}

.dataTables_wrapper .dataTables_paginate .paginate_button:hover,
.dataTables_wrapper .dataTables_paginate .page-link:hover {
    color: #FFFFFF !important;
    background: var(--primary-color) !important;
    border-color: var(--primary-color) !important;

    transform: translateY(-1px);
}

.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover,
.dataTables_wrapper .dataTables_paginate .page-item.active .page-link {
    color: #FFFFFF !important;
    background: linear-gradient(
        180deg,
        #A24337,
        #7A2F28
    ) !important;
    border-color: var(--primary-color) !important;

    box-shadow: 0 4px 10px rgba(145, 60, 50, 0.20) !important;
}

.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
.dataTables_wrapper .dataTables_paginate .page-item.disabled .page-link {
    color: #B8AAA1 !important;
    background: #F8F3EE !important;
    border-color: #E9DDD2 !important;

    cursor: not-allowed;
    opacity: 0.75;
}

/* ========================================
   11. BADGES DE STATUS - LUX SPA PREMIUM
======================================== */
.badge-status {
    width: 140px;
    height: 34px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF;
    border: 1px solid rgba(255, 255, 255, 0.20);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.3px;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.28);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.badge-status:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}

/* Pendente */
.badge-pendente {
    color: #4E342E;
    background: linear-gradient(180deg, #FFD54F, #FFB300);
}

/* Confirmado */
.badge-confirmado {
    background: linear-gradient(180deg, #4F8EF7, #2563EB);
}

/* Concluído */
.badge-concluido {
    background: linear-gradient(180deg, #34D399, #16A34A);
}

/* Cancelado */
.badge-cancelado {
    background: linear-gradient(180deg, #F87171, #DC2626);
}

/* Aguardando pagamento - uso futuro */
.badge-aguardando {
    background: linear-gradient(135deg, #7C3AED, #5B21B6);
}

/* Faltou - uso futuro */
.badge-faltou {
    background: linear-gradient(135deg, #64748B, #475569);
}

/* Em atendimento - uso futuro */
.badge-em-atendimento {
    background: linear-gradient(135deg, #14B8A6, #0F766E);
}

/* ========================================
   12. BOTÃO VISUALIZAR - LUX SPA PREMIUM
======================================== */
.btn-visualizar {
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #FFFFFF !important;
    background: linear-gradient(180deg, #A24337, #7A2F28);
    border: none;
    border-radius: 15px;
    text-decoration: none !important;
    box-shadow: 0 4px 12px rgba(145, 60, 50, 0.22), inset 0 1px 0 rgba(255, 255, 255, 0.18);
    transition: transform 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}

.btn-visualizar i {
    color: #FFFFFF !important;
    font-size: 17px;
}

.btn-visualizar:hover {
    color: #FFFFFF !important;
    background: linear-gradient(180deg, #B54E41, #913C32);
    text-decoration: none !important;
    transform: translateY(-2px);
    box-shadow: 0 8px 18px rgba(145, 60, 50, 0.30);
}

.btn-visualizar:focus {
    color: #FFFFFF !important;
    outline: none;
    box-shadow: 0 0 0 4px rgba(145, 60, 50, 0.18), 0 8px 18px rgba(145, 60, 50, 0.24);
}

/* ========================================
   13. BARRA DE ROLAGEM DO CONTEÚDO
======================================== */
.content-body::-webkit-scrollbar {
    width: 8px;
}

.content-body::-webkit-scrollbar-button {
    display: none;
}

.content-body::-webkit-scrollbar-track {
    background: #F7F1EA;
}

.content-body::-webkit-scrollbar-thumb {
    background-color: var(--primary-color);
    border-radius: 10px;
}

.content-body::-webkit-scrollbar-thumb:hover {
    background-color: var(--primary-dark);
}

/* ========================================
   14. RESPONSIVIDADE E OVERLAY
======================================== */
@media (max-width: 767.98px) {
    .main-content {
        padding-left: 0;
    }

    .sidebar-overlay {
        position: fixed;
        inset: 0;
        z-index: 999;
        background-color: rgba(0, 0, 0, 0.40);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.4s ease;
    }

    body.mobile-sidebar-open .sidebar-overlay {
        opacity: 1;
        pointer-events: auto;
    }

    .badge-status {
        width: 120px;
        height: 32px;
        padding: 0 14px;
        font-size: 12px;
    }

    .btn-visualizar {
        width: 40px;
        height: 40px;
        border-radius: 12px;
    }

    .table thead th {
        padding: 12px 10px !important;
        font-size: 14px;
    }

    .dataTables_wrapper .dataTables_filter,
    .dataTables_wrapper .dataTables_length {
        width: 100%;
        margin-bottom: 10px;
        text-align: left;
    }

    .dataTables_wrapper .dataTables_filter input {
        width: 100%;
        margin-left: 0;
        margin-top: 6px;
    }

    .dataTables_wrapper .dataTables_paginate {
        display: flex;
        flex-wrap: wrap;
        gap: 4px;
        justify-content: center;
    }
}

/* ========================================
   15. ACESSIBILIDADE
======================================== */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}