/* =========================================================================
   EasyForDoctor — Design System
   Sobrescreve variáveis do Bootstrap 5.3.3. Carregar logo APÓS o CSS do Bootstrap.
   ========================================================================= */

:root {
    /* Marca */
    --efd-brand: #1C7C54;
    --efd-brand-strong: #145C3F;
    --efd-brand-soft: #E3F3EA;

    /* Neutros */
    --efd-ink: #1F2A24;
    --efd-muted: #5B6B62;
    --efd-canvas: #F6F8F6;
    --efd-border: #DCE5E0;

    /* Atenção / pendência */
    --efd-warn: #B45309;
    --efd-warn-ink: #7C4A05;
    --efd-warn-bg: #FEF6E7;
    --efd-warn-border: #F5DFAE;

    /* Status da Consulta */
    --efd-status-agendada: #2563EB;
    --efd-status-confirmada: #2F9E5B;
    --efd-status-cancelada: #DC2626;
    --efd-status-realizada: #0F766E;

    /* Fontes */
    --efd-font-body: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --efd-font-head: 'Manrope', system-ui, -apple-system, sans-serif;
    --efd-font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;

    /* Bootstrap: cor primária = marca */
    --bs-primary: #1C7C54;
    --bs-primary-rgb: 28, 124, 84;
    --bs-primary-text-emphasis: #145C3F;
    --bs-primary-bg-subtle: #E3F3EA;
    --bs-primary-border-subtle: #B9DECB;

    --bs-link-color: #1C7C54;
    --bs-link-color-rgb: 28, 124, 84;
    --bs-link-hover-color: #145C3F;

    --bs-body-color: #1F2A24;
    --bs-body-color-rgb: 31, 42, 36;
    --bs-body-bg: #F6F8F6;
    --bs-secondary-color: #5B6B62;
    --bs-border-color: #DCE5E0;

    --bs-font-sans-serif: var(--efd-font-body);
    --bs-focus-ring-color: rgba(28, 124, 84, .25);
}

/* --------------------------------------------------------------------- Base */

body {
    font-family: var(--efd-font-body);
    color: var(--efd-ink);
    background: var(--efd-canvas);
}

h1, h2, h3, h4, h5, h6,
.navbar-brand, .btn, .form-label, .nav-link {
    font-family: var(--efd-font-head);
}

h1, .h1 { font-size: 1.6rem; font-weight: 800; }
h2, .h2 { font-size: 1.25rem; font-weight: 700; }
h3, .h3 { font-size: 1.5rem; font-weight: 800; }
.h6, h6 { font-weight: 700; }

.text-muted { color: var(--efd-muted) !important; }

.form-label {
    font-size: .78rem;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: var(--efd-muted);
}

/* Dados sempre monoespaçados: CPF, telefone, datas/horários, códigos */
.dado-mono,
td.dado-mono,
.cpf, .telefone, .data, .horario {
    font-family: var(--efd-font-mono);
    font-variant-numeric: tabular-nums;
}

/* ------------------------------------------------------------------ Botões */

.btn { font-weight: 600; }

.btn-primary {
    --bs-btn-bg: var(--efd-brand);
    --bs-btn-border-color: var(--efd-brand);
    --bs-btn-hover-bg: var(--efd-brand-strong);
    --bs-btn-hover-border-color: var(--efd-brand-strong);
    --bs-btn-active-bg: var(--efd-brand-strong);
    --bs-btn-active-border-color: var(--efd-brand-strong);
    --bs-btn-disabled-bg: var(--efd-brand);
    --bs-btn-disabled-border-color: var(--efd-brand);
}

.btn-outline-primary {
    --bs-btn-color: var(--efd-brand);
    --bs-btn-border-color: var(--efd-brand);
    --bs-btn-hover-bg: var(--efd-brand);
    --bs-btn-hover-border-color: var(--efd-brand);
    --bs-btn-active-bg: var(--efd-brand-strong);
    --bs-btn-active-border-color: var(--efd-brand-strong);
}

/* ---------------------------------------------------------------- Foco/inputs */

.form-control:focus,
.form-select:focus,
.form-check-input:focus,
.btn:focus-visible,
.btn-close:focus {
    border-color: var(--efd-brand);
    box-shadow: 0 0 0 .25rem var(--bs-focus-ring-color);
}

.form-check-input:checked {
    background-color: var(--efd-brand);
    border-color: var(--efd-brand);
}

::selection { background: var(--efd-brand-soft); }

.invalid-feedback { color: var(--efd-status-cancelada); }
.form-control.is-invalid,
.was-validated .form-control:invalid {
    border-color: var(--efd-status-cancelada);
}

/* --------------------------------------------------------------- Navbar/Sidebar */

.navbar.bg-primary,
#sidebar {
    background: var(--efd-brand) !important;
}

#sidebar .sidebar-brand {
    border-bottom-color: rgba(255, 255, 255, .18);
}
#sidebar a.ativo { background: var(--efd-brand-strong); }

/* ------------------------------------------------------------------- Cards */

.card {
    border-color: var(--efd-border);
    border-radius: .6rem;
}
.card-header {
    background: var(--efd-brand-soft);
    border-bottom-color: var(--efd-border);
    font-family: var(--efd-font-head);
    font-weight: 700;
}

/* ------------------------------------------------------------------ Tabela */

.table > thead {
    background: var(--efd-brand-soft);
}
.table > thead th {
    font-family: var(--efd-font-head);
    font-weight: 700;
    color: var(--efd-ink);
    border-bottom-color: var(--efd-border);
}
.table td, .table th { border-color: var(--efd-border); }

/* --------------------------------------------------------------- Alertas */

.alert-success {
    --bs-alert-color: var(--efd-brand-strong);
    --bs-alert-bg: var(--efd-brand-soft);
    --bs-alert-border-color: #B9DECB;
}

/* --------------------------------------------------- Componentes customizados */

/* Pill de status da Consulta */
.status-pill {
    display: inline-block;
    padding: .18rem .6rem;
    border-radius: 999px;
    font-family: var(--efd-font-mono);
    font-size: .74rem;
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 1.4;
    border: 1px solid transparent;
}
.status-pill.status-agendada  { color: var(--efd-status-agendada);  background: #E7EEFE; border-color: #C7D8FB; }
.status-pill.status-confirmada { color: var(--efd-status-confirmada); background: #E5F4EC; border-color: #BEE4CE; }
.status-pill.status-cancelada { color: var(--efd-status-cancelada); background: #FCE9E9; border-color: #F6C9C9; }
.status-pill.status-realizada { color: var(--efd-status-realizada); background: #E1F1F0; border-color: #B9E0DD; }

/* Badge de perfil (Usuario.tipo) */
.role-badge {
    display: inline-block;
    padding: .12rem .5rem;
    border-radius: .35rem;
    background: var(--efd-brand-soft);
    color: var(--efd-brand-strong);
    font-family: var(--efd-font-head);
    font-size: .74rem;
    font-weight: 600;
}

/* =========================================================================
   Configurações — Visão geral (hub)
   ========================================================================= */
.cfg-hero {
    background: linear-gradient(120deg, #0E1F18 0%, #123528 45%, #145C3F 130%);
    border-radius: 12px;
    color: #E8F1EC;
    padding: 15px 18px;
    box-shadow: 0 18px 40px -28px rgba(20, 92, 63, .75);
}
.cfg-hero .cfg-hero-sec { color: #C7D8CF; }
.cfg-hero .cfg-rotulo { color: #8FC7AC; }
.cfg-hero .cfg-metrica-valor { color: #fff; }
.cfg-hero .cfg-metrica-leg { color: #A9C6BA; }
.cfg-hero .cfg-barra { background: rgba(255, 255, 255, .18); }
.cfg-hero .cfg-barra > i { background: #55E6A5; }

.cfg-rotulo {
    font-family: var(--efd-font-head);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--efd-muted);
}

.cfg-metrica-valor {
    font-family: var(--efd-font-head);
    font-size: 21px;
    font-weight: 800;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
    color: var(--efd-ink);
}
.cfg-metrica-leg {
    font-family: var(--efd-font-mono);
    font-size: 11px;
    color: var(--efd-muted);
}

.cfg-barra {
    height: 5px;
    border-radius: 999px;
    background: #EEF2F0;
    overflow: hidden;
}
.cfg-barra > i {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--efd-brand);
}
