/* ============================================= */
/* RESET, VARIÁVEIS E ESTILOS GERAIS             */
/* ============================================= */
:root {
    --cor-principal: #3498db;
    --cor-sucesso: #27ae60;
    --cor-perigo: #e74c3c;
    --cor-aviso: #f39c12;
    --cor-fundo: #f4f7f6;
    --cor-texto: #333;
    --cor-texto-claro: #6c757d;
    --cor-titulo: #2c3e50;
    --cor-branco: #ffffff;
    --cor-borda: #dee2e6;
    --sombra-caixa: 0 4px 15px rgba(0, 0, 0, 0.08);
    --font-principal: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}
body {
    font-family: var(--font-principal);
    background-color: var(--cor-fundo);
    color: var(--cor-texto);
    line-height: 1.6;
    transition: background-color 0.3s, color 0.3s;
}
.container {
    max-width: 1200px;
    margin: 0 auto;
    background-color: var(--cor-branco);
    padding: 25px;
    border-radius: 8px;
    box-shadow: var(--sombra-caixa);
}

/* ============================================= */
/* PÁGINA PÚBLICA DE AGENDAMENTO (index.php)     */
/* ============================================= */
.main-public {
    display: flex;
    justify-content: center;
    padding: 20px;
}
.public-container {
    width: 100%;
    max-width: 1400px;
}
.public-header {
    text-align: center;
    margin-bottom: 30px;
}
.public-header h1 {
    font-weight: 600;
    font-size: 2.2rem;
    margin-bottom: 8px;
}
.public-header p {
    font-size: 1.1rem;
    color: var(--cor-texto-claro);
}
.calendar-wrapper {
    position: relative;
    min-height: 400px;
}
#calendar-loader {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 15px;
    font-size: 1rem;
    color: var(--cor-principal);
    font-weight: 500;
    z-index: 10;
}
.spinner {
    border: 4px solid rgba(0,0,0,0.1);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border-left-color: var(--cor-principal);
    animation: spin 1s ease infinite;
}
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}
#calendar { transition: opacity 0.3s ease; }
.fc { font-family: var(--font-principal); }
.fc .fc-button-primary { background-color: var(--cor-principal); border-color: var(--cor-principal); }
.fc .fc-button-primary:hover { background-color: #0069d9; border-color: #0062cc; }
.fc-theme-standard .fc-scrollgrid, .fc-theme-standard td, .fc-theme-standard th { border-color: var(--cor-borda); }

/* ============================================= */
/* MODAL, FORMULÁRIOS E FEEDBACK                 */
/* ============================================= */
.modal-form { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; overflow: auto; background-color: rgba(33, 37, 41, 0.6); justify-content: center; align-items: center; }
.modal-content { background-color: var(--cor-branco); padding: 30px; border-radius: 8px; box-shadow: var(--sombra-caixa); width: 90%; max-width: 500px; position: relative; }
.close-button { color: #aaa; float: right; font-size: 28px; font-weight: bold; position: absolute; top: 10px; right: 20px; cursor: pointer; }
form { display: flex; flex-direction: column; gap: 15px; }
form label { font-weight: 500; color: var(--cor-titulo); }
form input, form textarea { background-color: #f8f9fa; border: 1px solid var(--cor-borda); padding: 12px; border-radius: 6px; font-family: var(--font-principal); font-size: 1rem; transition: border-color 0.2s, box-shadow 0.2s; }
form input:focus, form textarea:focus { border-color: var(--cor-principal); box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25); outline: none; }
form button { background-color: var(--cor-sucesso); padding: 14px; font-size: 1.1rem; font-weight: 600; color: var(--cor-branco); border: none; border-radius: 6px; cursor: pointer; transition: background-color 0.2s; }
form button:hover { background-color: #218838; }
.card-feedback { max-width: 600px; margin: 0 auto; padding: 30px; border-radius: 8px; box-shadow: var(--sombra-caixa); }
.card-feedback.success { border-left: 5px solid var(--cor-sucesso); background-color: #f0fff8; }
.card-feedback.error { border-left: 5px solid var(--cor-perigo); background-color: #fff0f0; }
.btn-link { color: var(--cor-principal); text-decoration: none; font-weight: 600; }
.admin-login { max-width: 400px; margin-top: 50px; }
.erro { color: #e74c3c; background-color: #fdd; border: 1px solid #e74c3c; padding: 10px; border-radius: 4px; }

/* ============================================= */
/* CSS DASHBOARD MODERNO E INTUITIVO             */
/* ============================================= */
.admin-dashboard-modern .container { padding: 0; box-shadow: none; background: none; }
.admin-dashboard-modern .header-admin { margin-bottom: 20px; display: flex; justify-content: space-between; align-items: center; }
.header-actions { display: flex; align-items: center; gap: 15px; }
.btn-view-site { display: flex; align-items: center; gap: 5px; background-color: var(--cor-principal); color: white; padding: 8px 15px; text-decoration: none; border-radius: 5px; font-weight: bold; transition: background-color 0.3s; }
.btn-view-site:hover { background-color: #2980b9; }
.admin-dashboard-modern .user-info { display: flex; align-items: center; gap: 15px; }
.admin-dashboard-modern .btn-logout { display: flex; align-items: center; gap: 5px; background-color: var(--cor-perigo); color: white; padding: 8px 15px; text-decoration: none; border-radius: 5px; font-weight: bold; transition: background-color 0.3s; }
.admin-dashboard-modern .btn-logout:hover { background-color: #c0392b; }
.kpi-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 30px; }
.kpi-card { background: var(--cor-branco); padding: 25px; border-radius: 12px; box-shadow: var(--sombra-caixa); display: flex; align-items: center; gap: 20px; border-left: 5px solid; transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s; }
.kpi-card:hover { transform: translateY(-5px); box-shadow: 0 8px 25px rgba(0,0,0,0.15); }
.kpi-card i { font-size: 3rem; padding: 15px; border-radius: 50%; color: #fff; }
.kpi-card .text .number { font-size: 2.5rem; font-weight: 700; line-height: 1; color: var(--cor-titulo); }
.kpi-card .text .label { font-size: 1rem; color: var(--cor-texto-claro); }
.kpi-card.pending { border-color: var(--cor-aviso); } .kpi-card.pending i { background-color: var(--cor-aviso); }
.kpi-card.today { border-color: var(--cor-principal); } .kpi-card.today i { background-color: var(--cor-principal); }
.kpi-card.upcoming { border-color: var(--cor-sucesso); } .kpi-card.upcoming i { background-color: var(--cor-sucesso); }
.card-panel { background-color: var(--cor-branco); border-radius: 8px; padding: 25px; box-shadow: 0 2px 10px rgba(0,0,0,0.08); margin-bottom: 30px; transition: background-color 0.3s, color 0.3s; }
.card-panel h2 { margin-top: 0; border-bottom: 2px solid var(--cor-borda); padding-bottom: 10px; margin-bottom: 20px; font-size: 1.4rem; color: var(--cor-titulo); display: flex; align-items: center; gap: 10px; }
.card-panel h2 i { color: var(--cor-principal); }
.table-responsive { width: 100%; overflow-x: auto; }
.table-agendamentos { width: 100%; border-collapse: collapse; }
.table-agendamentos th, .table-agendamentos td { padding: 12px 15px; border-bottom: 1px solid var(--cor-borda); text-align: left; vertical-align: top; }
.table-agendamentos th { background-color: #f7f9fa; font-weight: 600; color: #555; }
.table-agendamentos tbody tr:hover { background-color: #f1f1f1; }
.table-agendamentos td.actions, .table-agendamentos td.actions-pending { text-align: left; white-space: nowrap; }
.actions-pending { display: flex; gap: 10px; align-items: center; }
.assunto-col { max-width: 350px; white-space: normal; word-wrap: break-word; }
.btn-action-text { padding: 8px 15px; border-radius: 5px; text-decoration: none; color: white; font-weight: 600; display: flex; align-items: center; gap: 5px; transition: transform 0.2s ease, box-shadow 0.2s ease; border: none; cursor: pointer; }
.btn-action-text:hover { transform: scale(1.05); box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.btn-action-text.btn-confirm { background-color: var(--cor-sucesso); }
.btn-action-text.btn-cancel { background-color: var(--cor-perigo); }
.btn-action { display: inline-block; padding: 5px 8px; margin: 0 3px; border-radius: 5px; text-decoration: none; color: white; font-size: 1rem; transition: opacity 0.3s; }
.btn-action:hover { opacity: 0.8; }
.btn-action.btn-cancel { background-color: var(--cor-aviso); }
.btn-action.btn-delete { background-color: var(--cor-perigo); }
.settings-accordion { border: 1px solid var(--cor-borda); }
.settings-accordion summary { cursor: pointer; outline: none; display: block; }
.settings-accordion summary:hover { background-color: #f9f9f9; }
.settings-accordion summary h2 { border: none; margin: 0; }
.settings-accordion[open] summary { border-bottom: 1px solid var(--cor-borda); }
.admin-forms-container { display: flex; gap: 30px; flex-wrap: wrap; padding-top: 20px;}
.admin-forms-container .form-section { flex: 1; min-width: 300px; }
.admin-forms-container form button { display: flex; align-items: center; justify-content: center; gap: 8px; background-color: var(--cor-principal); border: none; color: white; padding: 12px; border-radius: 4px; cursor: pointer; font-size: 1rem; font-weight: bold; }
.admin-forms-container form button:hover { background-color: #2980b9; }
.whatsapp-link { display: inline-flex; align-items: center; gap: 5px; margin-top: 5px; padding: 3px 8px; background-color: #25D366; color: white !important; border-radius: 15px; font-size: 0.9em; font-weight: 500; text-decoration: none; transition: all 0.2s ease; }
.whatsapp-link:hover { background-color: #128C7E; transform: scale(1.05); }
.whatsapp-link .bx { font-size: 1.2em; }

/* ============================================= */
/* ESTILOS PARA O GERENCIADOR DE HORÁRIOS        */
/* ============================================= */
.horarios-manager { display: flex; gap: 30px; flex-wrap: wrap; margin-top: 20px; }
.horarios-list { flex: 2; min-width: 320px; display: flex; flex-direction: column; gap: 15px; }
.horarios-form { flex: 1; min-width: 280px; background-color: var(--cor-fundo); padding: 20px; border-radius: 8px; border: 1px solid var(--cor-borda); }
.horarios-form h3 { margin-top: 0; text-align: center; margin-bottom: 20px; }
.dia-horario { display: flex; align-items: flex-start; gap: 15px; padding-bottom: 15px; border-bottom: 1px solid var(--cor-borda); }
.dia-horario:last-child { border-bottom: none; }
.dia-horario strong { flex-basis: 110px; flex-shrink: 0; padding-top: 5px; }
.dia-horario .blocos { display: flex; flex-wrap: wrap; gap: 10px; }
.bloco-horario { background-color: var(--cor-principal); color: white; padding: 5px 10px; border-radius: 5px; display: flex; align-items: center; gap: 8px; font-weight: 500; font-size: 0.9em; }
.bloco-horario .btn-delete-horario { color: white; text-decoration: none; font-weight: bold; opacity: 0.7; transition: opacity 0.2s; line-height: 1; font-size: 1.2em; }
.bloco-horario .btn-delete-horario:hover { opacity: 1; }
.fechado { color: var(--cor-texto-claro); font-style: italic; padding-top: 5px; }
.form-group-inline { display: flex; gap: 10px; }
.horarios-form .form-group { margin-bottom: 15px; }
.horarios-form select, .horarios-form input[type="time"] { width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px; }
.btn-submit-horario { width: 100%; margin-top: 10px; background: var(--cor-sucesso) !important; color: white; border: none; padding: 12px; border-radius: 4px; cursor: pointer; font-size: 1rem; font-weight: bold; display: flex; align-items: center; justify-content: center; gap: 8px; }
.btn-submit-horario:hover { background: #218838 !important; }

/* ============================================= */
/* MODO CLARO / ESCURO (DARK MODE)               */
/* ============================================= */
body[data-theme="dark"] { --cor-fundo: #22272e; --cor-texto: #cdd9e5; --cor-branco: #2d333b; --cor-borda: #444c56; --cor-hover: #434a53; --cor-titulo: #ffffff; --cor-texto-claro: #8a939e; }
body[data-theme="dark"] .table-agendamentos th { background-color: #333942; }
body[data-theme="dark"] .table-agendamentos tbody tr:hover { background-color: var(--cor-hover); }
body[data-theme="dark"] .settings-accordion summary:hover { background-color: var(--cor-hover); }
body[data-theme="dark"] .horarios-form { background-color: #262b32; }
.theme-switcher { background: none; border: 2px solid #ccc; border-radius: 50%; width: 40px; height: 40px; cursor: pointer; display: flex; justify-content: center; align-items: center; font-size: 1.5rem; color: #888; transition: all 0.3s ease; }
.theme-switcher:hover { color: var(--cor-texto); border-color: var(--cor-principal); }
.theme-switcher .bx-sun { display: none; }
body[data-theme="dark"] .theme-switcher .bx-sun { display: inline-block; }
body[data-theme="dark"] .theme-switcher .bx-moon { display: none; }

/* ============================================= */
/* RESPONSIVIDADE GERAL                          */
/* ============================================= */
@media (max-width: 768px) {
    body { padding: 0; }
    .main-public { padding: 10px; }
    .public-container { padding: 15px; }
    .public-header h1 { font-size: 1.8rem; }
    .fc .fc-toolbar.fc-header-toolbar { flex-direction: column; gap: 15px; }
}