/* ================================================================
   Prontuário Eletrônico — Prefeitura de Mossoró / RN
   Sistema de Urgência e Hospitais
   ================================================================ */

/* --- Variáveis (identidade visual UPAS — atualização 2026) ----- */
:root {
    --pe-navy:           #061018;
    --pe-navy-mid:       #0c1f36;
    --pe-navy-light:     #153a5c;
    --pe-topbar-start:   #050d16;
    --pe-topbar-end:     #0f2844;
    --pe-accent:         #00b4a0;
    --pe-accent-soft:    rgba(0, 180, 160, 0.14);
    --pe-accent-hover:   #009688;
    --pe-bg:             #aebdd1;
    --pe-card:           #ffffff;
    --pe-border:         rgba(13, 40, 71, 0.06);
    --pe-border-light:   rgba(13, 40, 71, 0.05);
    --pe-text:           #0c1220;
    --pe-text-muted:     #5a6b82;
    --pe-font-sans:      "Plus Jakarta Sans", "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
    --pe-radius:         14px;
    --pe-radius-sm:      9px;
    --pe-shadow-xs:      0 1px 2px rgba(6, 16, 24, 0.04), 0 4px 16px rgba(6, 16, 24, 0.05);
    --pe-shadow-sm:      0 6px 24px rgba(6, 16, 24, 0.06);
    --pe-shadow:         0 12px 40px rgba(6, 16, 24, 0.08);
    --pe-shadow-lg:      0 20px 56px rgba(6, 16, 24, 0.1);
    --pe-transition:     0.22s cubic-bezier(0.25, 0.8, 0.25, 1);

    /* Botões — formato AGHU / sistemas hospitalares Ebserh (compactos, borda 1px, cores por função) */
    --pe-aghu-btn-save: #216747;
    --pe-aghu-btn-save-hover: #1a5238;
    --pe-aghu-btn-save-focus: rgba(33, 103, 71, 0.35);
    --pe-aghu-btn-new: #2a4c72;
    --pe-aghu-btn-new-hover: #1f3b5b;
    --pe-aghu-btn-new-focus: rgba(42, 76, 114, 0.35);
    --pe-aghu-btn-edit: #1565c0;
    --pe-aghu-btn-edit-hover: #0d47a1;
    --pe-aghu-btn-edit-focus: rgba(21, 101, 192, 0.35);
    --pe-aghu-btn-search: #546e7a;
    --pe-aghu-btn-search-hover: #3d5259;
    --pe-aghu-btn-search-focus: rgba(84, 110, 122, 0.35);
    --pe-aghu-btn-open: #5c35a8;
    --pe-aghu-btn-open-hover: #452788;
    --pe-aghu-btn-open-focus: rgba(92, 53, 168, 0.35);
    --pe-aghu-btn-print: #7b1fa2;
    --pe-aghu-btn-print-hover: #6a1b9a;
    --pe-aghu-btn-print-focus: rgba(123, 31, 162, 0.35);
    --pe-aghu-btn-outline-fg: #00695c;
    --pe-aghu-btn-outline-hover-bg: #00695c;
    --pe-aghu-btn-cancel-bg: #ffffff;
    --pe-aghu-btn-cancel-border: #b0bec5;
    --pe-aghu-btn-cancel-text: #37474f;
    --pe-aghu-btn-cancel-hover-bg: #eceff1;
    --pe-aghu-toolbar-bg: linear-gradient(180deg, #eef1f5 0%, #e3e8ee 100%);
    --pe-aghu-toolbar-border: #cfd9e6;

    /* Superfícies — alinhado ao bloco «visual hospitalar» (tabelas, cartões) */
    --pe-aghu-navy: #1f3b5b;
    --pe-aghu-navy-2: #2a4c72;
    --pe-aghu-line: #cfd9e6;
    --pe-aghu-line-2: #b9c8da;
    --pe-aghu-bg: #aebdd1;
    --pe-aghu-surface: #ffffff;
}

/* --- Reset / base ----------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

/* Skip link — WCAG 2.1 — visível apenas ao receber foco via teclado */
.pe-skip-link {
    position: absolute;
    top: -3rem;
    left: 0.5rem;
    z-index: 9999;
    background: var(--pe-navy);
    color: #fff;
    padding: 0.4rem 0.9rem;
    border-radius: 0 0 var(--pe-radius-sm) var(--pe-radius-sm);
    font-size: 0.85rem;
    font-weight: 600;
    transition: top .15s;
    text-decoration: none;
}
.pe-skip-link:focus {
    top: 0;
    outline: 3px solid var(--pe-accent);
}

.pe-body {
    font-family: var(--pe-font-sans);
    background-color: var(--pe-bg);
    background-image:
        radial-gradient(ellipse 100% 70% at 100% 0%, rgba(0, 180, 160, 0.09) 0%, transparent 55%),
        radial-gradient(ellipse 80% 50% at 0% 100%, rgba(12, 31, 54, 0.06) 0%, transparent 50%);
    color: var(--pe-text);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    font-size: 0.9375rem;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    letter-spacing: -0.01em;
}

/* ================================================================
   TOPBAR
   ================================================================ */
.pe-topbar {
    background: linear-gradient(105deg, var(--pe-topbar-start) 0%, var(--pe-navy-mid) 42%, var(--pe-topbar-end) 100%);
    color: #fff;
    border-bottom: 2px solid var(--pe-accent);
    position: sticky;
    top: 0;
    z-index: 1040;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.22);
    -webkit-backdrop-filter: saturate(1.15) blur(10px);
    backdrop-filter: saturate(1.15) blur(10px);
}

.pe-theme-toggle {
    color: rgba(255, 255, 255, 0.82) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: var(--pe-radius-sm);
    padding: 0.2rem 0.5rem;
    margin-right: 0.35rem;
    background: rgba(255, 255, 255, 0.06);
    transition: background var(--pe-transition), border-color var(--pe-transition), color var(--pe-transition);
}

.pe-theme-toggle:hover,
.pe-theme-toggle:focus {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.38) !important;
}

.pe-topbar-login-theme {
    position: relative;
    z-index: 2;
}

.pe-topbar-inner {
    padding: 0 1.75rem;
}

/* Topbar-row: flex com título absolutamente centrado */
.pe-topbar-row {
    position: relative;
    display: flex;
    align-items: center;
    padding: 0.5rem 0;
    min-height: 62px;
    gap: 0.75rem;
}

/* Ícone de saúde — extremo esquerdo */
.pe-brand-icon {
    position: relative;
    z-index: 1;
    flex-shrink: 0;
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,.14);
    border-radius: var(--pe-radius-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.24);
    font-size: 1.15rem;
    color: #fff;
}

/* Título — absolutamente centrado em relação ao topbar-row inteiro */
.pe-brand {
    position: absolute;
    left: 0;
    right: 0;
    text-align: center;
    line-height: 1.25;
    pointer-events: none;
    z-index: 0;
}

.pe-brand-title {
    display: block;
    font-weight: 700;
    font-size: 1rem;
    letter-spacing: .02em;
    white-space: nowrap;
}

.pe-brand-sub {
    display: block;
    font-size: 0.75rem;
    opacity: .72;
    font-weight: 400;
    white-space: nowrap;
}

/* Área do usuário — extremo direito, 2 linhas empilhadas */
.pe-user-area {
    position: relative;
    z-index: 1;
    margin-left: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.28rem;
}

/* Linha 1: nome + botão sair */
.pe-user-top {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Linha 2: unidade */
.pe-user-bottom {
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

/* Nome do usuário */
.pe-user-name {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 0.82rem;
    font-weight: 600;
    white-space: nowrap;
    color: rgba(255,255,255,.92);
}

.pe-user-name i { font-size: 1rem; opacity: .85; }

/* Botão Sair */
.pe-btn-sair {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
    color: rgba(255,255,255,.78);
    text-decoration: none;
    font-size: 0.79rem;
    font-weight: 600;
    padding: 0.18rem 0.55rem;
    border-radius: var(--pe-radius-sm);
    border: 1px solid rgba(255,255,255,.28);
    transition: background var(--pe-transition), color var(--pe-transition), border-color var(--pe-transition);
    white-space: nowrap;
}

.pe-btn-sair:hover {
    background: rgba(255,255,255,.16);
    color: #fff;
    border-color: rgba(255,255,255,.5);
}

.pe-btn-sair i { font-size: 0.9rem; }

/* Badge de unidade (quando só 1 estabelecimento) */
.pe-unit-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    background: rgba(255,255,255,.1);
    padding: 0.2rem 0.6rem;
    border-radius: var(--pe-radius-sm);
    border: 1px solid rgba(255,255,255,.18);
    font-size: 0.75rem;
    font-weight: 600;
    max-width: 240px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: rgba(255,255,255,.85);
}

.pe-unit-badge i { opacity: .8; font-size: 0.85rem; }

/* Formulário de troca de unidade (quando múltiplas) */
.pe-unit-form {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin: 0;
}

.pe-unit-form-icon {
    font-size: 0.82rem;
    opacity: .72;
    flex-shrink: 0;
    color: #fff;
}

/* Select estilizado para o topbar escuro */
.pe-topbar-select {
    appearance: none;
    -webkit-appearance: none;
    background-color: rgba(255,255,255,.1);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='rgba(255,255,255,.6)'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.45rem center;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--pe-radius-sm);
    color: rgba(255,255,255,.88);
    font-size: 0.75rem;
    font-weight: 600;
    font-family: inherit;
    padding: 0.18rem 1.6rem 0.18rem 0.55rem;
    cursor: pointer;
    max-width: 220px;
    transition: border-color var(--pe-transition), background-color var(--pe-transition);
}

.pe-topbar-select:hover {
    background-color: rgba(255,255,255,.16);
    border-color: rgba(255,255,255,.38);
}

.pe-topbar-select:focus {
    outline: none;
    border-color: rgba(255,255,255,.5);
    box-shadow: 0 0 0 2px rgba(255,255,255,.1);
}

.pe-topbar-select option {
    background-color: var(--pe-navy);
    color: #fff;
    font-size: 0.85rem;
}

/* Compat. legado */
.pe-topbar-sep   { display: none; }
.pe-topbar-sep-v { display: none; }

/* Compat. com links legados */
.pe-link-light {
    color: rgba(255,255,255,.85);
    text-decoration: none;
    font-weight: 600;
    transition: color var(--pe-transition);
}
.pe-link-light:hover { color: var(--pe-accent); }

/* ================================================================
   SUBNAV (Navegação principal)
   ================================================================ */
.pe-subnav {
    background: linear-gradient(180deg, #d9e2ee 0%, #ccd7e6 100%);
    border-bottom: 1px solid var(--pe-border);
    box-shadow: 0 4px 24px rgba(6, 16, 24, 0.05);
}

.pe-nav-kanban-label {
    color: #e6a008;
    font-weight: 700;
}

/* Painel Kanban / termômetro (painel_kanban.php) */
.pe-kanban-board.kanban-board {
    display: flex;
    gap: 20px;
    overflow-x: auto;
    padding-bottom: 20px;
    align-items: flex-start;
}
.pe-kanban-board .pe-kanban-column.kanban-column {
    flex: 1;
    min-width: 320px;
    background: rgba(13, 40, 71, 0.03);
    border-radius: 12px;
    padding: 15px;
    border: 1px solid var(--pe-border-light);
}
[data-theme="dark"] .pe-kanban-board .pe-kanban-column.kanban-column {
    background: rgba(255, 255, 255, 0.02);
}
.pe-kanban-board .kanban-header {
    font-weight: 700;
    text-transform: uppercase;
    margin-bottom: 15px;
    font-size: 15px;
    border-bottom: 2px solid var(--pe-accent);
    padding-bottom: 10px;
    display: flex;
    justify-content: space-between;
}
.pe-kanban-board .kanban-card {
    background: var(--pe-card);
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 10px;
    box-shadow: var(--pe-shadow-sm);
    border-left: 5px solid #ccc;
    position: relative;
    transition: all 0.2s;
}
.pe-kanban-board .kanban-card:hover {
    transform: translateY(-3px);
    box-shadow: var(--pe-shadow);
}
.pe-kanban-board .kanban-card[data-risco="vermelho"] {
    border-left-color: #c62828;
}
.pe-kanban-board .kanban-card[data-risco="laranja"] {
    border-left-color: #e65100;
}
.pe-kanban-board .kanban-card[data-risco="amarelo"] {
    border-left-color: #f9a825;
}
.pe-kanban-board .kanban-card[data-risco="verde"] {
    border-left-color: #2e7d32;
}
.pe-kanban-board .kanban-card[data-risco="azul"] {
    border-left-color: #1565c0;
}
.pe-kanban-board .card-delayed {
    animation: peKanbanPulseWarning 2s infinite;
}
@keyframes peKanbanPulseWarning {
    0% {
        box-shadow: 0 0 0 0 rgba(220, 53, 69, 0.4);
    }
    70% {
        box-shadow: 0 0 0 8px rgba(220, 53, 69, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(220, 53, 69, 0);
    }
}
.pe-kanban-board .k-title {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 5px;
}
.pe-kanban-board .k-info {
    font-size: 12px;
    color: var(--pe-text-muted);
}
.pe-kanban-board .k-timer {
    position: absolute;
    top: 15px;
    right: 15px;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.05);
}
.pe-kanban-board .k-timer.delayed {
    background: #dc3545;
    color: #fff;
}

.pe-subnav .nav {
    display: flex;
    align-items: stretch;
    padding: 0;
    gap: 0;
    overflow-x: visible;
    flex-wrap: wrap;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.pe-subnav .nav::-webkit-scrollbar { display: none; }

.pe-subnav .nav-link {
    color: var(--pe-text-muted);
    font-weight: 600;
    font-size: 0.83rem;
    border-radius: 0;
    padding: 0.62rem 0.9rem;
    white-space: nowrap;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    transition: color var(--pe-transition), background var(--pe-transition);
    border-bottom: 2px solid transparent;
    position: relative;
}

.pe-subnav .nav-link i {
    font-size: 0.95rem;
}

.pe-subnav .nav-link:hover {
    color: var(--pe-navy);
    background: rgba(13,40,71,.04);
    border-bottom-color: var(--pe-border);
}

.pe-subnav .nav-link.active {
    color: var(--pe-navy);
    background: var(--pe-accent-soft);
    border-bottom-color: var(--pe-accent);
    font-weight: 700;
}

/* Contexto de sessão — portal + unidade (casca tipo sistemas hospitalares / AGHUx) */
.pe-workspace-strip {
    background: linear-gradient(180deg, rgba(0, 180, 160, 0.08) 0%, rgba(238, 242, 248, 0.97) 55%);
    border-bottom: 1px solid var(--pe-border-light);
    font-size: 0.8125rem;
}

.pe-workspace-strip-inner {
    padding: 0.4rem 0;
}

.pe-workspace-strip-portal {
    font-weight: 700;
    color: var(--pe-navy);
    letter-spacing: 0.02em;
}

.pe-workspace-strip-sep {
    display: inline-block;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--pe-accent);
    opacity: 0.75;
    flex-shrink: 0;
}

.pe-workspace-strip-unit {
    color: var(--pe-text-muted);
    font-weight: 600;
    max-width: min(62vw, 480px);
}

.pe-workspace-strip-warn {
    color: var(--pe-text-muted);
}

.pe-workspace-strip-warn strong {
    color: var(--pe-navy);
    font-weight: 700;
}

/* Navegação com submenus — permite quebra em ecrãs estreitos */
.pe-nav-main {
    flex-wrap: wrap;
    row-gap: 0.15rem;
}

.pe-subnav .nav-item.dropdown .nav-link.dropdown-toggle::after {
    margin-left: 0.25rem;
    vertical-align: 0.12em;
}

.pe-nav-dropdown {
    min-width: 15rem;
    border: 1px solid var(--pe-border-light);
    border-radius: var(--pe-radius-sm);
    box-shadow: var(--pe-shadow);
    padding-top: 0.35rem;
    padding-bottom: 0.35rem;
}

.pe-nav-dropdown .dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    padding: 0.45rem 1rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--pe-text);
}

.pe-nav-dropdown .dropdown-item:hover,
.pe-nav-dropdown .dropdown-item:focus {
    background: rgba(13, 40, 71, 0.06);
    color: var(--pe-navy);
}

.pe-nav-dropdown .dropdown-header {
    font-size: 0.65rem;
    letter-spacing: 0.06em;
}

/* Dashboard — hero e mosaico de acesso rápido */
.pe-dashboard-hero-bg {
    background: linear-gradient(118deg, var(--pe-navy) 0%, var(--pe-navy-mid) 45%, #1b5a8a 100%);
    border: none;
    border-bottom: 3px solid var(--pe-accent);
}

.pe-dashboard-hero-icon {
    font-size: 4rem;
    opacity: 0.38;
    color: rgba(255, 255, 255, 0.95);
}

.pe-dashboard-hero .pe-dashboard-hero-lead {
    opacity: 0.94;
    font-size: 0.95rem;
    line-height: 1.5;
}

.pe-quick-tile-inner {
    transition: transform var(--pe-transition), box-shadow var(--pe-transition);
    border: 1px solid var(--pe-border-light) !important;
}

.pe-quick-tile:hover .pe-quick-tile-inner {
    transform: translateY(-3px);
    box-shadow: var(--pe-shadow) !important;
    border-color: rgba(13, 40, 71, 0.18) !important;
}

.pe-icon-violet {
    color: #6a1b9a;
}

.letter-spacing-1 {
    letter-spacing: 0.08em;
}

.pe-btn-voltar {
    flex-shrink: 0;
}

/* ================================================================
   (barra de contexto removida — seletor integrado ao topbar)
   ================================================================ */

/* ================================================================
   CONTEÚDO PRINCIPAL
   ================================================================ */
/*
 * Não usar transform nesta animação: qualquer transform no ancestral prende position:fixed
 * (modais Bootstrap, toasts) ao <main> — o backdrop fica por cima e o ecrã “congela”.
 * O efeito de entrada fica só em opacity (leve, sem slide).
 */
@keyframes fadeUpIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.pe-main {
    flex: 1;
    width: 100%;
    padding-top: 2rem;
    padding-bottom: 3rem;
    animation: fadeUpIn 0.55s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* Largura máxima legível + centrado; padding horizontal vem de .container-fluid + regra abaixo */
.pe-main-inner {
    width: 100%;
    max-width: 1920px;
    margin-left: auto;
    margin-right: auto;
}

.pe-main > .container-fluid,
.pe-main.container-fluid,
.pe-main-inner.container-fluid {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
}

/* Cabeçalho de página padrão — painel tipo dashboard premium (ambos portais) */
.pe-page-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    width: 100%;
    margin-bottom: 1.5rem;
    padding: 1rem 1.2rem;
    background-color: var(--pe-card);
    background-image: linear-gradient(118deg, rgba(0, 180, 160, 0.07) 0%, rgba(255, 255, 255, 0) 48%);
    border: 1px solid var(--pe-border-light);
    border-left: 4px solid var(--pe-accent);
    border-radius: var(--pe-radius);
    box-shadow: var(--pe-shadow-xs);
}

.pe-page-header > * {
    min-width: 0;
}

.pe-page-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--pe-navy);
    margin: 0;
}

/* ================================================================
   CARDS
   ================================================================ */
.card {
    border: 1px solid var(--pe-border-light);
    border-radius: var(--pe-radius);
    box-shadow: var(--pe-shadow-xs);
    background: var(--pe-card);
    min-width: 0;
    max-width: 100%;
}

.card-header {
    background: #fff;
    border-bottom: 1px solid var(--pe-border-light);
    padding: 0.9rem 1.25rem;
    font-weight: 700;
    font-size: 0.875rem;
    color: var(--pe-navy);
    border-radius: var(--pe-radius) var(--pe-radius) 0 0 !important;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    row-gap: 0.35rem;
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
}

.card-body {
    padding: 1.25rem;
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
}

/* Abas na ficha de atendimento (médico) — navegação compacta */
.pe-atend-med-nav .nav-link {
    font-weight: 600;
    font-size: 0.82rem;
    white-space: nowrap;
}
.pe-atend-med-nav .nav-link.active {
    font-weight: 700;
}

.card-footer {
    background: #fafbfc;
    border-top: 1px solid var(--pe-border-light);
    padding: 0.85rem 1.25rem;
    border-radius: 0 0 var(--pe-radius) var(--pe-radius);
    min-width: 0;
    overflow-wrap: break-word;
    word-break: normal;
}

/* Cards estatísticos do dashboard */
.pe-card-stat {
    border: none;
    border-radius: var(--pe-radius);
    box-shadow: var(--pe-shadow-sm);
    border-left: 4px solid var(--pe-accent);
    transition: transform var(--pe-transition), box-shadow var(--pe-transition);
    background: var(--pe-card);
    min-width: 0;
    max-width: 100%;
}

.pe-card-stat:hover {
    transform: translateY(-2px);
    box-shadow: var(--pe-shadow);
}

.pe-card-stat .card-body { padding: 1.25rem 1.35rem; }

.pe-card-stat .pe-stat-label {
    font-size: 0.755rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--pe-text-muted);
    margin-bottom: 0.5rem;
    overflow-wrap: break-word;
    word-break: normal;
}

.pe-card-stat h2 {
    font-size: 0.8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--pe-text-muted);
    margin-bottom: 0.45rem;
    overflow-wrap: break-word;
    word-break: normal;
}

.pe-card-stat .display-6 {
    font-size: clamp(1.35rem, 2vw + 0.85rem, 2.3rem);
    font-weight: 800;
    color: var(--pe-navy);
    line-height: 1.05;
    letter-spacing: -.02em;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.pe-card-stat.pe-stat-blue   { border-left-color: #1565c0; }
.pe-card-stat.pe-stat-green  { border-left-color: #2e7d32; }
.pe-card-stat.pe-stat-red    { border-left-color: #c62828; }
.pe-card-stat.pe-stat-orange { border-left-color: #e65100; }

/* ================================================================
   FORMULÁRIOS
   ================================================================ */
.form-label {
    font-weight: 600;
    font-size: 0.8rem;
    color: var(--pe-text-muted);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: 0.3rem;
}

.form-label.pe-form-label-case,
.pe-form-label-case {
    text-transform: none;
    letter-spacing: normal;
}

.form-control,
.form-select {
    border-color: var(--pe-border);
    border-radius: var(--pe-radius-sm);
    font-size: 0.9rem;
    color: var(--pe-text);
    background-color: #fff;
    transition: border-color var(--pe-transition), box-shadow var(--pe-transition);
    padding: 0.46rem 0.75rem;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--pe-navy-light);
    box-shadow: 0 0 0 3px rgba(30,87,153,.14);
    outline: none;
}

.form-control::placeholder { color: #a8bdd1; }

.form-control-lg {
    font-size: 0.975rem;
    padding: 0.6rem 0.9rem;
    border-radius: var(--pe-radius-sm);
}

.form-text {
    font-size: 0.78rem;
    color: var(--pe-text-muted);
    margin-top: 0.25rem;
    line-height: 1.4;
}

/* Grelha e campos: ritmo consistente e alinhamento em flex (evita colunas “desalinhadas”) */
.pe-main-inner .row {
    --bs-gutter-x: 1rem;
    --bs-gutter-y: 0.75rem;
}

.pe-main-inner .row > [class*="col-"] {
    min-width: 0;
}

.pe-main-inner .mb-3:last-child {
    margin-bottom: 0 !important;
}

.pe-main-inner textarea.form-control {
    min-height: 5.5rem;
}

/* Rodapés de card com botões: alinhamento e espaçamento uniforme */
.pe-main-inner .card-footer:has(.btn) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
}

.pe-main-inner .card-footer:has(.btn) > .ms-auto {
    margin-left: auto !important;
}

.pe-main-inner .card-footer:has(.btn) .btn {
    flex-shrink: 0;
}

/* Filtro + select na mesma linha (input-group) */
.pe-select-search-wrap .input-group.pe-select-search-ig {
    flex-wrap: nowrap;
    align-items: stretch;
}
.pe-select-search-wrap .pe-select-search-ig > .pe-select-search-q {
    flex: 0 1 40%;
    min-width: 5.75rem;
    max-width: 11rem;
}
.pe-select-search-wrap .input-group-lg.pe-select-search-ig > .pe-select-search-q {
    min-width: 7.5rem;
    max-width: 13rem;
}
.pe-select-search-wrap .input-group-sm.pe-select-search-ig > .pe-select-search-q {
    min-width: 5rem;
    max-width: 9rem;
}
.pe-select-search-wrap .pe-select-search-ig > .form-select {
    flex: 1 1 auto;
    min-width: 0;
}
.pe-select-search-wrap .pe-select-search-icon {
    padding-left: 0.45rem;
    padding-right: 0.45rem;
}

/* Agenda especializada: pesquisa de profissional da unidade (sem select) */
.pe-agenda-prof-autocomplete {
    position: relative;
}
.pe-agenda-prof-autocomplete .pe-agenda-prof-suggestions {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 1050;
    margin-top: 2px;
    max-height: 240px;
    overflow-y: auto;
    box-shadow: 0 0.35rem 1rem rgba(0, 0, 0, 0.12);
}
.pe-agenda-prof-autocomplete .pe-agenda-prof-suggestions .list-group-item {
    cursor: pointer;
    border-left-width: 1px;
    border-right-width: 1px;
}
.pe-agenda-prof-autocomplete .pe-agenda-prof-suggestions .list-group-item:first-child {
    border-top-left-radius: 0.25rem;
    border-top-right-radius: 0.25rem;
}
.pe-agenda-prof-autocomplete .pe-agenda-prof-suggestions .list-group-item:last-child {
    border-bottom-left-radius: 0.25rem;
    border-bottom-right-radius: 0.25rem;
}

/* Cabeçalho de seção de formulário — organização vertical estilo AGHU (título + campos abaixo) */
.pe-form-section {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.pe-form-section::before {
    display: none;
}

.pe-form-section > h2,
.pe-form-section > .h6 {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--pe-navy);
    margin: 0;
    padding-bottom: 0.45rem;
    border-bottom: 1px solid var(--pe-border-light);
    width: 100%;
}

.pe-form-section > h2::before,
.pe-form-section > .h6::before {
    content: '';
    display: block;
    width: 3px;
    height: 16px;
    background: var(--pe-accent);
    border-radius: 2px;
    flex-shrink: 0;
}

.input-group .form-control { z-index: 1; }
.input-group .btn { z-index: 1; }

/* ================================================================
   BOTÕES (formato AGHU: cantos 3–4px, peso 600–700, altura mínima consistente)
   ================================================================ */
.btn {
    border-radius: 4px;
    font-weight: 600;
    font-size: 0.875rem;
    transition: background var(--pe-transition), border-color var(--pe-transition), color var(--pe-transition), box-shadow var(--pe-transition);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 30px;
    line-height: 1.15;
    padding: 0.35rem 0.65rem;
    border-width: 1px;
    box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06) inset;
    white-space: nowrap;
}

.btn.btn-sm {
    min-height: 28px;
    padding: 0.26rem 0.5rem;
    font-size: 0.8125rem;
}

.btn i {
    font-size: 0.92em;
    flex-shrink: 0;
}

.btn-primary {
    background: var(--pe-aghu-btn-new);
    border-color: var(--pe-aghu-btn-new);
    color: #fff;
}

.btn-primary:hover,
.btn-primary:focus {
    background: var(--pe-aghu-btn-new-hover);
    border-color: var(--pe-aghu-btn-new-hover);
    box-shadow: 0 2px 8px var(--pe-aghu-btn-new-focus);
    color: #fff;
}

.btn-success {
    background: var(--pe-aghu-btn-save);
    border-color: var(--pe-aghu-btn-save);
    color: #fff;
}

.btn-success:hover,
.btn-success:focus {
    background: var(--pe-aghu-btn-save-hover);
    border-color: var(--pe-aghu-btn-save-hover);
    box-shadow: 0 2px 8px var(--pe-aghu-btn-save-focus);
    color: #fff;
}

.btn-outline-secondary {
    border-color: var(--pe-border);
    color: var(--pe-text-muted);
}

.btn-outline-secondary:hover {
    background: var(--pe-bg);
    border-color: #b0bec5;
    color: var(--pe-text);
}

.btn-outline-info {
    border-color: #0288d1;
    color: #0277bd;
}

.btn-outline-info:hover {
    background: #e1f5fe;
    border-color: #0277bd;
    color: #01579b;
}

/* ================================================================
   BOTÕES SEMÂNTICOS — cor consistente por funcionalidade
   ================================================================
   🟢 Salvar / Confirmar / Registrar / Concluir
   🔵 Novo / Cadastrar
   🔷 Editar
   🔍 Buscar / Pesquisar / Filtrar / Atualizar
   📂 Abrir / Ver / Ir para / Iniciar
   🖨️ Imprimir / Gerar arquivo
   ➕ Adicionar linha
   💊 Usar / Copiar
   (Cancelar/Voltar → btn-pe-cancel; alternativa: btn-outline-secondary. Excluir → btn-danger)
   Barra de acções: .pe-aghu-toolbar

/* Salvar / Confirmar / Registrar / Concluir — verde institucional AGHU */
.btn-pe-save {
    background: var(--pe-aghu-btn-save);
    border-color: var(--pe-aghu-btn-save);
    color: #fff;
}
.btn-pe-save:hover, .btn-pe-save:focus {
    background: var(--pe-aghu-btn-save-hover);
    border-color: var(--pe-aghu-btn-save-hover);
    color: #fff;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-save-focus);
}

/* Novo / Cadastrar — azul petróleo AGHU */
.btn-pe-new {
    background: var(--pe-aghu-btn-new);
    border-color: var(--pe-aghu-btn-new);
    color: #fff;
}
.btn-pe-new:hover, .btn-pe-new:focus {
    background: var(--pe-aghu-btn-new-hover);
    border-color: var(--pe-aghu-btn-new-hover);
    color: #fff;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-new-focus);
}

/* Editar */
.btn-pe-edit {
    background: var(--pe-aghu-btn-edit);
    border-color: var(--pe-aghu-btn-edit);
    color: #fff;
}
.btn-pe-edit:hover, .btn-pe-edit:focus {
    background: var(--pe-aghu-btn-edit-hover);
    border-color: var(--pe-aghu-btn-edit-hover);
    color: #fff;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-edit-focus);
}

/* Buscar / Pesquisar / Filtrar / Atualizar */
.btn-pe-search {
    background: var(--pe-aghu-btn-search);
    border-color: var(--pe-aghu-btn-search);
    color: #fff;
}
.btn-pe-search:hover, .btn-pe-search:focus {
    background: var(--pe-aghu-btn-search-hover);
    border-color: var(--pe-aghu-btn-search-hover);
    color: #fff;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-search-focus);
}

/* Abrir / Ver / Ir para / Iniciar atendimento */
.btn-pe-open {
    background: var(--pe-aghu-btn-open);
    border-color: var(--pe-aghu-btn-open);
    color: #fff;
}
.btn-pe-open:hover, .btn-pe-open:focus {
    background: var(--pe-aghu-btn-open-hover);
    border-color: var(--pe-aghu-btn-open-hover);
    color: #fff;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-open-focus);
}

.bg-pe-open {
    background-color: #5c35a8 !important;
}

/* Imprimir / Gerar arquivo */
.btn-pe-print {
    background: var(--pe-aghu-btn-print);
    border-color: var(--pe-aghu-btn-print);
    color: #fff;
}
.btn-pe-print:hover, .btn-pe-print:focus {
    background: var(--pe-aghu-btn-print-hover);
    border-color: var(--pe-aghu-btn-print-hover);
    color: #fff;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-print-focus);
}

/* Adicionar linha / Usar prescrição / Copiar — contorno (estilo botão secundário AGHU) */
.btn-pe-add,
.btn-pe-use {
    background: var(--pe-aghu-btn-cancel-bg);
    border-color: var(--pe-aghu-btn-outline-fg);
    color: var(--pe-aghu-btn-outline-fg);
    box-shadow: none;
}
.btn-pe-add:hover, .btn-pe-add:focus,
.btn-pe-use:hover, .btn-pe-use:focus {
    background: var(--pe-aghu-btn-outline-hover-bg);
    border-color: var(--pe-aghu-btn-outline-hover-bg);
    color: #fff;
    box-shadow: 0 1px 4px rgba(0, 105, 92, 0.35);
}

/* Ficha retroativa — verde claro com texto escuro */
.btn-pe-retroativa {
    background: #c8e6c9;
    border-color: #81c784;
    color: #14532d;
    box-shadow: none;
}
.btn-pe-retroativa:hover, .btn-pe-retroativa:focus {
    background: #a5d6a7;
    border-color: #66bb6a;
    color: #0b3d16;
    box-shadow: 0 1px 4px rgba(20, 83, 45, 0.28);
}

/* Cancelar / Voltar — fundo claro e borda (padrão AGHU «Cancelar») */
.btn-pe-cancel {
    background: var(--pe-aghu-btn-cancel-bg);
    border-color: var(--pe-aghu-btn-cancel-border);
    color: var(--pe-aghu-btn-cancel-text);
    box-shadow: none;
}
.btn-pe-cancel:hover, .btn-pe-cancel:focus {
    background: var(--pe-aghu-btn-cancel-hover-bg);
    border-color: #90a4ae;
    color: #263238;
}

/* Barra de acções tipo toolbar AGHU (rodapé de formulário / filtros) */
.pe-aghu-toolbar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.55rem 0.65rem;
    background: var(--pe-aghu-toolbar-bg);
    border: 1px solid var(--pe-aghu-toolbar-border);
    border-radius: 4px;
}
.pe-aghu-toolbar .ms-auto {
    margin-left: auto;
}

/* ================================================================
   PACIENTE NÃO IDENTIFICADO
   ================================================================ */

/* Banner de alerta do modo emergência no formulário */
.pe-nao-ident-card {
    border: 2px solid #e65100;
    border-radius: var(--pe-radius);
    background: linear-gradient(135deg, #fff8f5 0%, #fff3ee 100%);
    padding: 1rem 1.25rem;
    margin-bottom: 0.5rem;
}
.pe-nao-ident-card.ativo {
    background: linear-gradient(135deg, #fff3e0 0%, #ffe0b2 100%);
    border-color: #e65100;
    box-shadow: 0 2px 12px rgba(230, 81, 0, 0.18);
}

/* Título do card */
.pe-nao-ident-titulo {
    font-size: 1rem;
    font-weight: 700;
    color: #b71c1c;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.25rem;
}
.pe-nao-ident-titulo i {
    font-size: 1.25rem;
    color: #e65100;
}

/* Hub faturamento — cartão «Competência BPA» (texto sempre claro sobre gradiente) */
.pe-card-bpa-competencia {
    background: linear-gradient(135deg, #1a237e 0%, #283593 100%);
    color: #fff;
}
.pe-card-bpa-competencia .card-body {
    color: #fff !important;
}
.pe-card-bpa-competencia-desc {
    color: rgba(255, 255, 255, 0.88) !important;
}
.pe-card-bpa-competencia-desc strong {
    color: #fff !important;
    font-weight: 700;
}

/* ================================================================
   DARK MODE — contraste global (texto legível sobre fundos escuros)
   ================================================================ */
[data-theme="dark"] {
    color-scheme: dark;
    --pe-bg: #0a0f16;
    --pe-card: #121a28;
    --pe-text: #eef2f9;
    --pe-text-muted: #9db0c4;
    --pe-border: rgba(255, 255, 255, 0.1);
    --pe-border-light: rgba(255, 255, 255, 0.07);
    --pe-accent-soft: rgba(0, 180, 160, 0.16);
    /* Bootstrap 5 — herdam em cards / modais / formulários */
    --bs-body-color: var(--pe-text);
    --bs-body-bg: var(--pe-bg);
    --bs-secondary-color: var(--pe-text-muted);
    --bs-tertiary-color: rgba(238, 242, 249, 0.58);
    --bs-border-color: rgba(255, 255, 255, 0.12);
    --bs-link-color: #5ed4c8;
    --bs-link-hover-color: #9af0e6;
    --bs-emphasis-color: #fff;
}

[data-theme="dark"] .pe-body {
    color: var(--pe-text);
    background-image:
        radial-gradient(ellipse 100% 60% at 100% 0%, rgba(0, 180, 160, 0.07) 0%, transparent 50%),
        radial-gradient(ellipse 70% 40% at 0% 100%, rgba(20, 50, 80, 0.28) 0%, transparent 50%);
}

[data-theme="dark"] .pe-main,
[data-theme="dark"] .pe-main p,
[data-theme="dark"] .pe-main li,
[data-theme="dark"] .pe-main dd,
[data-theme="dark"] .pe-main dt {
    color: var(--pe-text);
}

[data-theme="dark"] .card {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
    border-color: var(--pe-border-light) !important;
}

[data-theme="dark"] .card-body,
[data-theme="dark"] .card-text {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .card-header,
[data-theme="dark"] .card-footer {
    background-color: rgba(255, 255, 255, 0.04) !important;
    color: var(--pe-text) !important;
    border-color: var(--pe-border-light) !important;
}

/* Hub faturamento — ícone de aviso legível; competência BPA harmonizada com o tema escuro */
[data-theme="dark"] .pe-faturamento-hub .text-warning {
    color: #ffb74d !important;
}

[data-theme="dark"] .pe-card-bpa-competencia {
    background: linear-gradient(135deg, #1a3358 0%, #243d5c 100%) !important;
    border: 1px solid rgba(120, 180, 255, 0.22) !important;
    color: #f0f6ff !important;
}

[data-theme="dark"] .pe-card-bpa-competencia .card-body {
    color: #f0f6ff !important;
}

[data-theme="dark"] .pe-card-bpa-competencia-desc,
[data-theme="dark"] .pe-card-bpa-competencia-desc strong {
    color: rgba(230, 240, 255, 0.94) !important;
}

[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select {
    background-color: #1a2434 !important;
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
}

/* Ficheiro (PDF, etc.): em modo escuro o Chrome/Edge pintam a área e o botão nativos a branco */
[data-theme="dark"] input[type="file"].form-control,
[data-theme="dark"] input.form-control[type="file"] {
    color-scheme: dark;
    background-color: #1a2434 !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] input[type="file"].form-control::file-selector-button,
[data-theme="dark"] input.form-control[type="file"]::file-selector-button {
    background: #243044 !important;
    color: var(--pe-text) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: var(--pe-radius-sm);
    padding: 0.35rem 0.9rem;
    margin-right: 0.65rem;
    font-weight: 600;
    cursor: pointer;
}

[data-theme="dark"] input[type="file"].form-control:hover::file-selector-button,
[data-theme="dark"] input.form-control[type="file"]:hover::file-selector-button {
    background: #2d3d56 !important;
}

[data-theme="dark"] input[type="file"].form-control::-webkit-file-upload-button,
[data-theme="dark"] input.form-control[type="file"]::-webkit-file-upload-button {
    background: #243044 !important;
    color: var(--pe-text) !important;
    border: 1px solid rgba(255, 255, 255, 0.22) !important;
    border-radius: var(--pe-radius-sm);
    padding: 0.35rem 0.9rem;
    margin-right: 0.65rem;
    font-weight: 600;
    cursor: pointer;
}

[data-theme="dark"] input[type="file"].form-control:hover::-webkit-file-upload-button,
[data-theme="dark"] input.form-control[type="file"]:hover::-webkit-file-upload-button {
    background: #2d3d56 !important;
}

[data-theme="dark"] .form-control::placeholder {
    color: #7a8fa3 !important;
    opacity: 1;
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus {
    background-color: #1f2c40 !important;
    color: #fff !important;
    border-color: var(--pe-accent) !important;
    box-shadow: 0 0 0 3px rgba(0, 180, 160, 0.22) !important;
}

[data-theme="dark"] .form-control:disabled,
[data-theme="dark"] .form-select:disabled {
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .form-label,
[data-theme="dark"] .col-form-label {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .form-text {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .input-group-text {
    background-color: rgba(255, 255, 255, 0.07) !important;
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
}

[data-theme="dark"] .pe-workspace-strip {
    background: linear-gradient(180deg, rgba(0, 180, 160, 0.14) 0%, rgba(12, 18, 32, 0.96) 100%);
    border-bottom-color: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .pe-workspace-strip-portal {
    color: var(--pe-text);
}

[data-theme="dark"] .pe-workspace-strip-warn strong {
    color: var(--pe-accent);
}

[data-theme="dark"] .pe-subnav {
    background: linear-gradient(180deg, #141d2c 0%, #101824 100%) !important;
    border-bottom-color: var(--pe-border) !important;
    box-shadow: none;
}

[data-theme="dark"] .pe-subnav .nav-link {
    color: var(--pe-text-muted) !important;
    border-bottom-color: transparent !important;
}

[data-theme="dark"] .pe-subnav .nav-link:hover {
    color: var(--pe-text) !important;
    background: rgba(255, 255, 255, 0.06) !important;
}

[data-theme="dark"] .pe-subnav .nav-link.active {
    color: var(--pe-accent) !important;
    background: rgba(0, 180, 160, 0.12) !important;
    border-bottom-color: var(--pe-accent) !important;
}

[data-theme="dark"] .pe-nav-dropdown {
    background-color: var(--pe-card) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}

[data-theme="dark"] .pe-nav-dropdown .dropdown-item {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-nav-dropdown .dropdown-item:hover,
[data-theme="dark"] .pe-nav-dropdown .dropdown-item:focus {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
}

[data-theme="dark"] .pe-nav-dropdown .dropdown-header {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .dropdown-menu {
    background-color: var(--pe-card) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .dropdown-item {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
}

[data-theme="dark"] .dropdown-header {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .dropdown-divider {
    border-top-color: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .pe-card-stat {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-card-stat .display-6 {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-login-card {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .pe-login-body {
    color: var(--pe-text);
}

[data-theme="dark"] .table {
    --bs-table-bg: var(--pe-card);
    --bs-table-color: var(--pe-text);
    --bs-table-border-color: rgba(255, 255, 255, 0.1);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.045);
    --bs-table-hover-bg: rgba(255, 255, 255, 0.08);
    --bs-table-active-bg: rgba(255, 255, 255, 0.1);
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .table > :not(caption) > * > * {
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    /* Não forçar box-shadow: none aqui — o BS 5 usa inset no hover/striped; ver fim do ficheiro */
}

/* table-light no escuro: senão cabeçalho fica com texto claro sobre fundo claro (some) */
[data-theme="dark"] .table thead.table-light > tr > th,
[data-theme="dark"] thead.table-light > tr > th {
    background-color: #1a2838 !important;
    color: #f0f4f8 !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
}

[data-theme="dark"] .table tfoot.table-light > tr > th,
[data-theme="dark"] .table tfoot.table-light > tr > td,
[data-theme="dark"] tfoot.table-light > tr > th,
[data-theme="dark"] tfoot.table-light > tr > td {
    background-color: #1e2d42 !important;
    color: #f0f4f8 !important;
    border-color: rgba(255, 255, 255, 0.18) !important;
}

[data-theme="dark"] .table.pe-table thead th {
    background: var(--pe-navy) !important;
    color: #fff !important;
}

/* Hover .table-hover no escuro: definido após o bloco enterprise (#edf3fa) */

[data-theme="dark"] .pe-page-title,
[data-theme="dark"] .pe-form-section > h2,
[data-theme="dark"] .pe-form-section > .h6,
[data-theme="dark"] .pe-section-title {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-page-header {
    /* Enterprise aplica background #fff com !important mais abaixo; estes !important mantêm o escuro. */
    background-color: var(--pe-card) !important;
    background-image: linear-gradient(118deg, rgba(0, 180, 160, 0.14) 0%, rgba(255, 255, 255, 0) 52%) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    border-left-color: var(--pe-accent) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-form-section {
    background-color: var(--pe-card) !important;
    border-color: var(--pe-border-light) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-text-muted {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .text-muted {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .text-dark,
[data-theme="dark"] .text-body {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .text-secondary {
    color: #b0c0d4 !important;
}

[data-theme="dark"] .bg-light,
[data-theme="dark"] .bg-body-secondary {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .border,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-bottom {
    border-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .nav-tabs .nav-link {
    color: var(--pe-text-muted) !important;
    background: transparent !important;
    border-color: transparent !important;
}

[data-theme="dark"] .nav-tabs .nav-link:hover {
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.12) rgba(255, 255, 255, 0.12) transparent !important;
}

[data-theme="dark"] .nav-tabs .nav-link.active {
    color: var(--pe-text) !important;
    background-color: var(--pe-card) !important;
    border-color: rgba(255, 255, 255, 0.14) rgba(255, 255, 255, 0.14) var(--pe-card) !important;
}

[data-theme="dark"] .nav-tabs {
    border-bottom-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .list-group-item {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .list-group-item-action:hover,
[data-theme="dark"] .list-group-item-action:focus {
    background-color: rgba(255, 255, 255, 0.06) !important;
    color: var(--pe-text) !important;
}

/* ================================================================
   MODAIS — shell PEP (Bootstrap 5, todas as áreas)
   ================================================================ */
.modal-content {
    border: none;
    border-radius: var(--pe-radius);
    box-shadow: var(--pe-shadow-lg);
    overflow: hidden;
}

.modal-dialog {
    margin: 1rem auto;
}

.modal-header {
    padding: 1rem 1.25rem;
}

.modal-header .modal-title {
    font-weight: 700;
    font-size: 1.0625rem;
    line-height: 1.35;
    letter-spacing: -0.015em;
}

.modal-body {
    padding: 1.25rem;
}

.modal-body > :last-child {
    margin-bottom: 0;
}

.modal-footer {
    padding: 0.875rem 1.25rem;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    background-color: rgba(238, 242, 248, 0.78);
    border-top: 1px solid var(--pe-border-light);
}

.modal-footer.border-0 {
    border-top: none !important;
}

/* Modal de exames — garantir visibilidade acima do backdrop (portal especializada / overflow) */
#modalAmbSolicitarExames.modal,
#modalSolicitarExames.modal {
    z-index: 1065;
}

body.modal-open #modalAmbSolicitarExames.modal.show,
body.modal-open #modalSolicitarExames.modal.show {
    z-index: 1065;
}

.modal-header.pe-modal-header-chamada,
.modal-header.pe-modal-header-chamada-amb,
.modal-header.bg-info,
.modal-header.bg-primary,
.modal-header.bg-secondary,
.modal-header.bg-success,
.modal-header.bg-danger,
.modal-header.bg-warning,
.modal-header.bg-pe-open {
    border-bottom-color: transparent;
}

.pe-body {
    --bs-backdrop-opacity: 0.44;
}

.pe-dashboard-version-pill {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

[data-theme="dark"] .modal-content {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .modal-body {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .modal-footer {
    background-color: rgba(8, 14, 22, 0.94) !important;
    color: var(--pe-text) !important;
    border-top: 1px solid rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .modal-header {
    background: linear-gradient(105deg, var(--pe-navy-mid) 0%, #152a42 100%) !important;
    color: #fff !important;
    border-bottom-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .modal-header .btn-close {
    filter: invert(1) brightness(1.2);
}

[data-theme="dark"] .modal-header.pe-modal-header-chamada {
    background: linear-gradient(90deg, #0d2045, #1a3a6a) !important;
    color: #fff !important;
    border-bottom-color: transparent !important;
}

[data-theme="dark"] .modal-header.pe-modal-header-chamada-amb {
    background: linear-gradient(105deg, #1e1b4b 0%, #312e81 52%, #4338ca 100%) !important;
    border-bottom: 3px solid var(--pe-accent) !important;
    color: #fff !important;
}

[data-theme="dark"] .modal-header.bg-info.text-white {
    background: linear-gradient(105deg, #087990 0%, #0aa2c0 100%) !important;
    color: #fff !important;
}

[data-theme="dark"] .modal-header.bg-pe-open.text-white {
    background: linear-gradient(105deg, var(--pe-navy-mid) 0%, var(--pe-accent-hover) 100%) !important;
    color: #fff !important;
}

[data-theme="dark"] .btn-outline-secondary {
    color: #c5d2e0 !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
}

[data-theme="dark"] .btn-outline-secondary:hover,
[data-theme="dark"] .btn-outline-secondary:focus {
    background: rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
    border-color: rgba(255, 255, 255, 0.35) !important;
}

[data-theme="dark"] .btn-outline-info {
    color: #7ee8de !important;
    border-color: rgba(0, 180, 160, 0.55) !important;
}

[data-theme="dark"] .btn-outline-info:hover,
[data-theme="dark"] .btn-outline-info:focus {
    background: rgba(0, 180, 160, 0.18) !important;
    color: #e8fffc !important;
    border-color: var(--pe-accent) !important;
}

[data-theme="dark"] .btn-outline-dark {
    color: #e8ecf2 !important;
    border-color: rgba(255, 255, 255, 0.35) !important;
}

[data-theme="dark"] .btn-outline-dark:hover,
[data-theme="dark"] .btn-outline-dark:focus {
    background: rgba(255, 255, 255, 0.12) !important;
    color: #fff !important;
}

[data-theme="dark"] .btn-outline-primary {
    color: #7ec8ff !important;
    border-color: rgba(100, 181, 246, 0.55) !important;
}

[data-theme="dark"] .btn-outline-primary:hover,
[data-theme="dark"] .btn-outline-primary:focus {
    background: rgba(100, 181, 246, 0.15) !important;
    color: #fff !important;
}

[data-theme="dark"] .alert-success {
    background: rgba(46, 125, 50, 0.22) !important;
    border-color: rgba(76, 175, 80, 0.55) !important;
    color: #c8e6c9 !important;
}

[data-theme="dark"] .alert-danger {
    background: rgba(198, 40, 40, 0.2) !important;
    border-color: rgba(239, 83, 80, 0.55) !important;
    color: #ffcdd2 !important;
}

[data-theme="dark"] .alert-warning {
    background: rgba(230, 81, 0, 0.18) !important;
    border-color: rgba(255, 183, 77, 0.45) !important;
    color: #ffe0b2 !important;
}

[data-theme="dark"] .alert-info {
    background: rgba(21, 101, 192, 0.22) !important;
    border-color: rgba(100, 181, 246, 0.45) !important;
    color: #bbdefb !important;
}

[data-theme="dark"] .alert-primary {
    background: rgba(13, 40, 71, 0.55) !important;
    border-color: rgba(100, 181, 246, 0.4) !important;
    color: #e3f2fd !important;
}

[data-theme="dark"] .page-link {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .page-link:hover {
    background-color: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
}

[data-theme="dark"] .page-item.active .page-link {
    background-color: var(--pe-accent) !important;
    border-color: var(--pe-accent) !important;
    color: #061018 !important;
}

[data-theme="dark"] .page-item.disabled .page-link {
    background-color: rgba(255, 255, 255, 0.04) !important;
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .pe-farmacia-ac-list {
    background: var(--pe-card) !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
}

[data-theme="dark"] .pe-farmacia-ac-item {
    background: var(--pe-card) !important;
    color: var(--pe-text) !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

[data-theme="dark"] .pe-farmacia-ac-item:hover {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #fff !important;
}

[data-theme="dark"] .toast {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .toast-header {
    background: rgba(255, 255, 255, 0.06) !important;
    color: var(--pe-text) !important;
    border-bottom-color: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .offcanvas,
[data-theme="dark"] .offcanvas-header,
[data-theme="dark"] .offcanvas-body {
    background-color: var(--pe-card) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .breadcrumb-item,
[data-theme="dark"] .breadcrumb-item a {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .breadcrumb-item.active {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .progress {
    background-color: rgba(255, 255, 255, 0.08) !important;
}

[data-theme="dark"] pre,
[data-theme="dark"] code {
    background: rgba(255, 255, 255, 0.08) !important;
    color: #e0e8f0 !important;
}

[data-theme="dark"] .border-light {
    border-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .shadow,
[data-theme="dark"] .shadow-sm {
    box-shadow: 0 0.35rem 1.2rem rgba(0, 0, 0, 0.35) !important;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.18);
}

[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.28);
}

[data-theme="dark"] .text-black,
[data-theme="dark"] .link-dark {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .form-check-input {
    background-color: #1a2434;
    border-color: rgba(255, 255, 255, 0.32);
}

[data-theme="dark"] .form-check-input:checked {
    background-color: var(--pe-accent);
    border-color: var(--pe-accent);
}

[data-theme="dark"] .form-check-label {
    color: var(--pe-text);
}

[data-theme="dark"] .invalid-feedback {
    color: #ffcdd2;
}

[data-theme="dark"] .valid-feedback {
    color: #c8e6c9;
}

[data-theme="dark"] .k-timer {
    background: rgba(255, 255, 255, 0.1) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .k-timer.delayed {
    background: #e65100 !important;
    color: #fff !important;
}

/* --- Modo escuro: relatórios, laudos, prontuário, faturamento (AC), BPA ----- */
.pe-historico-dia-relatorio {
    background: var(--pe-card);
    color: var(--pe-text);
}

.pe-infobox-paciente {
    background: rgba(21, 101, 192, 0.08);
    border-left: 4px solid #1565c0;
}
[data-theme="dark"] .pe-infobox-paciente {
    background: rgba(21, 101, 192, 0.22);
    color: var(--pe-text);
}

.pe-monospace-out {
    white-space: pre-wrap;
    background: var(--pe-card);
    color: var(--pe-text);
    padding: 1rem;
    border-radius: 0.5rem;
    border: 1px solid var(--pe-border-light);
}

.lab-texto-origem-wrap {
    background: var(--pe-card);
}
[data-theme="dark"] .lab-texto-origem-wrap {
    border-color: rgba(255, 255, 255, 0.12) !important;
}

[data-theme="dark"] .pe-timeline {
    border-left-color: rgba(255, 255, 255, 0.14) !important;
}
[data-theme="dark"] .pe-timeline-marker {
    border-color: var(--pe-card) !important;
}
[data-theme="dark"] .pe-badge-exam {
    background-color: #1a2434 !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    color: var(--pe-text) !important;
}
[data-theme="dark"] .nav-tabs .nav-link.active {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-nao-ident-card {
    background: linear-gradient(135deg, #2a1f18 0%, #3d2a1c 100%) !important;
    border-color: rgba(230, 81, 0, 0.45) !important;
}
[data-theme="dark"] .pe-nao-ident-card.ativo {
    background: linear-gradient(135deg, #3d2618 0%, #4d3016 100%) !important;
}
[data-theme="dark"] .pe-nao-ident-banner {
    background: linear-gradient(90deg, #2a2214, #332018);
    border-left-color: #ff9800;
}

[data-theme="dark"] .pe-nao-ident-banner-icon {
    color: #ffb74d !important;
}

[data-theme="dark"] .pe-nao-ident-banner-body strong {
    color: #ffcc80 !important;
}

[data-theme="dark"] .pe-nao-ident-banner-body p {
    color: rgba(255, 237, 213, 0.92) !important;
}

[data-theme="dark"] .step-card {
    background: var(--pe-card) !important;
    color: var(--pe-text);
}

.bpa-card-valor {
    background: #f1f8e9;
}
[data-theme="dark"] .bpa-card-valor {
    background: rgba(46, 125, 50, 0.18) !important;
}

html[data-theme="dark"] .status-pronto {
    background: rgba(46, 125, 50, 0.2) !important;
    color: var(--pe-text) !important;
    border-left-color: #66bb6a !important;
}
html[data-theme="dark"] .status-incompleto {
    background: rgba(230, 81, 0, 0.22) !important;
    color: var(--pe-text) !important;
}
html[data-theme="dark"] .status-sem_codigo {
    background: rgba(198, 40, 40, 0.22) !important;
    color: var(--pe-text) !important;
}
html[data-theme="dark"] .pend-item {
    background: rgba(230, 81, 0, 0.25) !important;
    color: #ffcc80 !important;
}

html[data-theme="dark"] .cid-ac-list,
html[data-theme="dark"] .sig-drop,
html[data-theme="dark"] .sigtap-ac-list {
    background: #1a2434 !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45) !important;
}
html[data-theme="dark"] .cid-ac-item,
html[data-theme="dark"] .sig-drop-item,
html[data-theme="dark"] .sigtap-ac-item {
    border-bottom-color: rgba(255, 255, 255, 0.08) !important;
}
html[data-theme="dark"] .cid-ac-item:hover,
html[data-theme="dark"] .cid-ac-item.active,
html[data-theme="dark"] .sig-drop-item:hover,
html[data-theme="dark"] .sig-drop-item.active,
html[data-theme="dark"] .sigtap-ac-item:hover,
html[data-theme="dark"] .sigtap-ac-item.active {
    background: rgba(0, 180, 160, 0.15) !important;
}
html[data-theme="dark"] .cid-ac-item .cid-ac-desc,
html[data-theme="dark"] .sig-drop-item .sig-nome {
    color: var(--pe-text) !important;
}
html[data-theme="dark"] .sigtap-ac-name {
    color: var(--pe-text) !important;
}
html[data-theme="dark"] .sigtap-ac-meta {
    color: var(--pe-text-muted) !important;
}

.pe-sigtap-sugestoes-wrap {
    background: rgba(21, 101, 192, 0.1);
}
[data-theme="dark"] .pe-sigtap-sugestoes-wrap {
    background: rgba(21, 101, 192, 0.24);
    color: var(--pe-text);
}

/* Codificação BPA (fat_codar.php) — grelha e autocompletos */
.pe-fat-codar-resumo-card {
    border-left: 4px solid var(--pe-accent, #1565c0) !important;
}
.pe-fat-codar-table .pe-fat-codar-proc-nome {
    font-size: 0.78rem;
    white-space: normal;
    word-break: break-word;
    hyphens: auto;
    max-width: 100%;
}
@media (min-width: 992px) {
    .pe-fat-codar-table .pe-fat-codar-proc-nome {
        max-width: min(100%, 28rem);
    }
}
.pe-fat-codar-table .pe-fat-codar-proc-meta {
    font-size: 0.68rem;
    color: var(--pe-text-muted);
}
.pe-fat-codar-empty-icon {
    font-size: 2.5rem;
    opacity: 0.35;
}
.pe-fat-codar-historico-scroll {
    max-height: min(420px, 55vh);
    overflow-y: auto;
}
.pe-fat-codar-historico-episodio-ativo .pe-fat-codar-historico-toggle {
    background: rgba(21, 101, 192, 0.08);
}
.pe-fat-codar-historico-toggle {
    background: var(--pe-surface, #fff);
}
.pe-fat-codar-historico-toggle:hover {
    background: rgba(0, 0, 0, 0.03);
}
[data-theme="dark"] .pe-fat-codar-historico-episodio-ativo .pe-fat-codar-historico-toggle {
    background: rgba(21, 101, 192, 0.22);
}

.sigtap-ac-box {
    position: relative;
}
.sigtap-ac-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    background: var(--pe-card);
    border: 1px solid var(--pe-border-light, #dee2e6);
    border-radius: 0 0 6px 6px;
    box-shadow: var(--pe-shadow, 0 4px 16px rgba(0, 0, 0, 0.12));
    max-height: 280px;
    overflow-y: auto;
    display: none;
}
.sigtap-ac-item {
    padding: 8px 12px;
    cursor: pointer;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    transition: background 0.1s;
}
[data-theme="dark"] .sigtap-ac-item {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}
.sigtap-ac-item:hover,
.sigtap-ac-item.active {
    background: rgba(21, 101, 192, 0.12);
}
.sigtap-ac-code {
    font-family: var(--bs-font-monospace, monospace);
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--pe-accent, #1565c0);
}
.sigtap-ac-name {
    font-size: 0.85rem;
    color: var(--pe-text);
}
.sigtap-ac-meta {
    font-size: 0.72rem;
    color: var(--pe-text-muted);
}

.cid-ac-box {
    position: relative;
}
.cid-ac-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1060;
    background: var(--pe-card);
    border: 1px solid var(--pe-border-light, #ced4da);
    border-radius: 0 0 6px 6px;
    max-height: 240px;
    overflow-y: auto;
    box-shadow: var(--pe-shadow-sm, 0 4px 12px rgba(0, 0, 0, 0.12));
}
.cid-ac-item {
    padding: 6px 10px;
    cursor: pointer;
    font-size: 0.82rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}
[data-theme="dark"] .cid-ac-item {
    border-bottom-color: rgba(255, 255, 255, 0.08);
}
.cid-ac-item:hover {
    background: rgba(21, 101, 192, 0.12);
}
.cid-ac-item .cid-ac-code {
    font-family: var(--bs-font-monospace, monospace);
    font-weight: 700;
    color: var(--pe-accent, #1565c0);
    margin-right: 6px;
}
.cid-ac-item .cid-ac-desc {
    color: var(--pe-text);
    display: block;
}

.sig-row-badge {
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 4px;
    padding: 1px 6px;
    color: #fff;
}

.pe-import-ok-header {
    background: #e8f5e9;
}
[data-theme="dark"] .pe-import-ok-header {
    background: rgba(46, 125, 50, 0.22) !important;
    color: var(--pe-text) !important;
}


/* Badge inline na listagem */
.badge-nao-ident {
    background: #e65100;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 700;
    padding: 0.22em 0.6em;
    border-radius: 999px;
    letter-spacing: 0.02em;
    vertical-align: middle;
    display: inline-flex;
    align-items: center;
    gap: 0.25em;
    white-space: nowrap;
}

/* Banner de aviso no prontuário */
.pe-nao-ident-banner {
    background: linear-gradient(90deg, #fff3e0, #fff8f5);
    border-left: 5px solid #e65100;
    border-radius: var(--pe-radius-sm);
    padding: 0.85rem 1.1rem;
    margin-bottom: 1rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}
.pe-nao-ident-banner-icon {
    font-size: 1.75rem;
    color: #e65100;
    flex-shrink: 0;
    line-height: 1;
    padding-top: 0.1rem;
}
.pe-nao-ident-banner-body strong {
    color: #b71c1c;
    display: block;
    font-size: 0.95rem;
}
.pe-nao-ident-banner-body p {
    margin: 0.25rem 0 0;
    font-size: 0.85rem;
    color: #5d4037;
}

/* Formulário no modo não identificado: borda laranja sutil nos campos */
.form-nao-ident .form-control,
.form-nao-ident .form-select {
    border-color: #ffccbc;
    background-color: #fffaf8;
}

/* ================================================================
   TABELAS
   ================================================================ */
.table {
    font-size: 0.875rem;
    color: var(--pe-text);
    --bs-table-bg: transparent;
}

.table > :not(caption) > * > * {
    padding: 0.65rem 0.9rem;
    vertical-align: middle;
}

.table thead th {
    font-size: 0.755rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    padding: 0.6rem 0.9rem;
    border-bottom: 0;
    white-space: nowrap;
}

.table.pe-table thead th {
    background: var(--pe-navy);
    color: #fff;
}

.table-hover > tbody > tr {
    transition: background var(--pe-transition);
}

.table-hover > tbody > tr:hover > * {
    background-color: rgba(13,40,71,.04);
    --bs-table-hover-bg: rgba(13,40,71,.04);
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(13,40,71,.022);
}

.table-bordered {
    border-color: var(--pe-border-light);
}

.table-bordered > :not(caption) > * > * {
    border-color: var(--pe-border-light);
}

.table-sm > :not(caption) > * > * {
    padding: 0.45rem 0.75rem;
}

/* Pesquisar paciente — barra de ações e coluna de resultados */
.pe-paciente-pesquisa-form .row {
    margin-bottom: 0;
}

.pe-paciente-pesquisa-bar {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.65rem 0.85rem;
    margin-top: 0.85rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.pe-paciente-pesquisa-bar-grupo {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    min-width: 0;
}

.pe-paciente-pesquisa-bar-grupo--cadastro {
    margin-left: auto;
}

.pe-paciente-pesquisa-bar-rotulo {
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--pe-text-muted, #5c6f7e);
    padding-right: 0.15rem;
    white-space: nowrap;
}

.pe-paciente-pesquisa-bar-sep {
    width: 1px;
    align-self: stretch;
    min-height: 2rem;
    background: rgba(15, 23, 42, 0.1);
    flex-shrink: 0;
}

.pe-paciente-pesquisa-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    min-height: 2rem;
    min-width: 6.5rem;
    padding-inline: 0.75rem;
    white-space: nowrap;
}

.pe-paciente-pesquisa-btn-toggle {
    min-height: 2rem;
    min-width: 9.5rem;
}

.pe-paciente-pesquisa-toolbar-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.28rem 0.65rem;
    border: 1px solid rgba(220, 53, 69, 0.35);
    border-radius: 0.375rem;
    background: rgba(220, 53, 69, 0.06);
    color: #b02a37;
    font-size: 0.78rem;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    white-space: nowrap;
    max-width: 100%;
    margin: 0;
}

.pe-paciente-pesquisa-toolbar-check:has(input:checked) {
    background: rgba(220, 53, 69, 0.14);
    border-color: rgba(220, 53, 69, 0.55);
}

.pe-paciente-pesquisa-toolbar-check .form-check-input {
    margin: 0;
    width: 0.9rem;
    height: 0.9rem;
}

.pe-paciente-pesquisa-toolbar-check-txt {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    min-width: 0;
}

@media (max-width: 991.98px) {
    .pe-paciente-pesquisa-bar-grupo--cadastro {
        margin-left: 0;
        width: 100%;
    }

    .pe-paciente-pesquisa-bar-sep {
        display: none;
    }

    .pe-paciente-pesquisa-bar-grupo {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .pe-paciente-pesquisa-btn {
        flex: 1 1 calc(50% - 0.45rem);
        min-width: 0;
    }

    .pe-paciente-pesquisa-btn-toggle {
        flex: 1 1 100%;
        min-width: 0;
    }

    .pe-paciente-pesquisa-toolbar-check-txt {
        font-size: 0.72rem;
    }
}

.pe-paciente-pesquisa-acoes-th {
    min-width: 14rem;
}

/* Tabela de resultados — colunas dimensionadas e linha íntegra */
.pe-paciente-pesquisa-tabela-wrap {
    overflow-x: auto;
}

.pe-paciente-pesquisa-tabela {
    table-layout: fixed;
    width: 100%;
    min-width: 68rem;
}

.pe-paciente-pesquisa-tabela .pe-paciente-pesquisa-col {
    padding: 0.45rem 0.5rem;
    vertical-align: top;
}

.pe-paciente-pesquisa-col-cadastro {
    width: 4.75rem;
}

.pe-paciente-pesquisa-col-nome {
    width: 16%;
    min-width: 9.5rem;
}

.pe-paciente-pesquisa-col-dn {
    width: 6.25rem;
}

.pe-paciente-pesquisa-col-cpf {
    width: 7.25rem;
}

.pe-paciente-pesquisa-col-cns {
    width: 8.5rem;
}

.pe-paciente-pesquisa-col-mae {
    width: 14%;
    min-width: 8.5rem;
}

.pe-paciente-pesquisa-col-ibge {
    width: 4.25rem;
}

.pe-paciente-pesquisa-nome-celula {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    min-width: 0;
}

.pe-paciente-pesquisa-nome-txt,
.pe-paciente-pesquisa-texto-celula {
    display: block;
    line-height: 1.3;
    word-break: break-word;
    overflow-wrap: anywhere;
}

.pe-paciente-pesquisa-linha {
    page-break-inside: avoid;
    break-inside: avoid;
}

.pe-paciente-pesquisa-tabela .badge-nao-ident {
    white-space: nowrap;
    font-size: 0.68rem;
}

@media print {
    .pe-paciente-pesquisa-tabela {
        min-width: 0;
    }

    .pe-paciente-pesquisa-linha,
    .pe-paciente-pesquisa-linha td {
        page-break-inside: avoid;
        break-inside: avoid;
    }
}

.pe-paciente-pesquisa-acoes-cell {
    min-width: 18rem;
    width: 24%;
    max-width: 28rem;
    vertical-align: top;
}

.pe-paciente-pesquisa-acoes {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.pe-paciente-pesquisa-acoes-rapidas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.35rem;
}

.pe-paciente-pesquisa-acoes-rapidas-esq,
.pe-paciente-pesquisa-acoes-rapidas-dir {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem;
}

.pe-paciente-pesquisa-acoes-rapidas-dir {
    justify-content: flex-end;
    margin-left: auto;
}

/* UPAS — botões unificados em fila, ocupando largura da coluna */
.pe-paciente-pesquisa-acoes-rapidas-fila {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.35rem;
    width: 100%;
}

.pe-paciente-pesquisa-btn-linha,
.pe-paciente-pesquisa-btn-linha-form {
    flex: 1 1 7.5rem;
    min-width: 0;
    margin: 0;
}

.pe-paciente-pesquisa-btn-linha {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    padding-inline: 0.45rem;
    white-space: nowrap;
}

.pe-paciente-pesquisa-btn-linha-form {
    display: flex;
}

.pe-paciente-pesquisa-btn-linha span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.pe-paciente-pesquisa-acoes-cell:not(:has(.pe-paciente-pesquisa-acoes-blocos)) {
    min-width: 15rem;
    width: 20%;
    max-width: 24rem;
}

.pe-paciente-pesquisa-acoes-blocos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}

.pe-paciente-pesquisa-acoes-blocos--unico {
    grid-template-columns: 1fr;
}

.pe-paciente-pesquisa-acoes-bloco {
    padding: 0.55rem 0.65rem;
    margin-bottom: 0;
    min-width: 0;
}

.pe-paciente-pesquisa-acoes-bloco-titulo {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--pe-text-muted, #5c6f7e);
    margin-bottom: 0.45rem;
}

.pe-paciente-pesquisa-acoes-form {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
}

.pe-paciente-pesquisa-select-wrap {
    min-width: 0;
    width: 100%;
}

.pe-paciente-pesquisa-select-wrap .pe-select-search-ig {
    flex-wrap: wrap;
}

@media (max-width: 991.98px) {
    .pe-paciente-pesquisa-acoes-cell {
        min-width: 14rem;
        max-width: none;
    }

    .pe-paciente-pesquisa-acoes-blocos {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 575.98px) {
    .pe-paciente-pesquisa-acoes-rapidas-esq,
    .pe-paciente-pesquisa-acoes-rapidas-dir {
        width: 100%;
    }

    .pe-paciente-pesquisa-acoes-rapidas-dir {
        margin-left: 0;
        justify-content: flex-start;
    }
}

/* ================================================================
   BADGES
   ================================================================ */
.badge {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: .03em;
    padding: 0.32em 0.62em;
    border-radius: 4px;
}

.badge-pe-psych { background: #5c2d7a; color: #fff; }
.badge-pe-upa   { background: #1565c0; color: #fff; }
.badge-pe-hosp  { background: #2e7d32; color: #fff; }

/* ================================================================
   ALERTAS / FLASH
   ================================================================ */
.alert {
    border-radius: var(--pe-radius-sm);
    border: 1px solid transparent;
    border-left-width: 4px;
    font-size: 0.9rem;
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.85rem 1rem;
}

.alert i { font-size: 1.1rem; flex-shrink: 0; margin-top: 1px; }

.alert-success {
    background: #f1faf3;
    border-color: #2e7d32;
    color: #1b5e20;
}

.alert-danger {
    background: #fdf2f2;
    border-color: #c62828;
    color: #7f1d1d;
}

.alert-warning {
    background: #fffbf0;
    border-color: var(--pe-accent);
    color: #5c3a00;
}

.alert-info {
    background: #f0f6ff;
    border-color: #1565c0;
    color: #0d3b7a;
}

/* ================================================================
   PÁGINA DE LOGIN
   ================================================================ */
.pe-login-outer {
    min-height: calc(100vh - 61px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    background:
        radial-gradient(ellipse 70% 50% at 50% 0%, rgba(13,40,71,.07) 0%, transparent 70%);
}

/* manter compatibilidade com nome antigo */
.pe-login-wrap {
    min-height: calc(100vh - 120px);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
}

.pe-login-card {
    max-width: 420px;
    width: 100%;
    border-radius: 14px;
    box-shadow: var(--pe-shadow-lg);
    border: 1px solid var(--pe-border-light);
    overflow: hidden;
    background: #fff;
}

.pe-login-header {
    background: linear-gradient(105deg, var(--pe-navy) 0%, var(--pe-navy-mid) 100%);
    color: #fff;
    padding: 1.6rem 1.75rem;
    border-bottom: 3px solid var(--pe-accent);
    display: flex;
    align-items: center;
    gap: 1rem;
}

.pe-login-header-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    background: rgba(255,255,255,.12);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.2);
    flex-shrink: 0;
    overflow: hidden;
}

.pe-login-header h1 {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 0.2rem;
}

.pe-login-header small {
    font-size: 0.79rem;
    opacity: .72;
    display: block;
}

.pe-login-body {
    padding: 1.75rem;
}

/* ================================================================
   PÁGINA DE ENTRADA (escolha de contexto antes do login)
   ================================================================ */
.pe-entrada-outer {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem 1rem;
    min-height: calc(100vh - 61px);
    background:
        radial-gradient(ellipse 70% 50% at 50% 0%, rgba(13,40,71,.07) 0%, transparent 70%);
}

.pe-entrada-wrap {
    width: 100%;
    max-width: 920px;
    margin: 0 auto;
}

.pe-entrada-title {
    font-size: clamp(1.35rem, 3vw, 1.65rem);
    font-weight: 800;
    color: var(--pe-navy);
    letter-spacing: -0.03em;
    margin-bottom: 0.5rem;
}

.pe-entrada-lead {
    font-size: 0.95rem;
    max-width: 36rem;
    margin-left: auto;
    margin-right: auto;
}

.pe-entrada-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
}

@media (max-width: 700px) {
    .pe-entrada-grid {
        grid-template-columns: 1fr;
    }
}

.pe-lotacao-tile {
    margin: 0;
    padding: 0;
    height: 100%;
    display: block;
}

.pe-lotacao-tile button.pe-lotacao-tile-btn,
.pe-lotacao-tile-btn.pe-entrada-tile {
    cursor: pointer;
    color: inherit;
    text-align: center;
    align-items: center;
    justify-content: center;
    height: 100%;
    min-height: 100%;
    background: var(--pe-card);
}

.pe-lotacao-tile-btn .pe-entrada-tile-icon {
    margin-left: auto;
    margin-right: auto;
}

.pe-lotacao-tile-btn .pe-entrada-tile-title,
.pe-lotacao-tile-btn .pe-entrada-tile-desc {
    text-align: center;
    width: 100%;
    max-width: 100%;
}

.pe-lotacao-tile-btn .btn-pe-open {
    align-self: center;
    width: 100%;
    max-width: 220px;
    justify-content: center;
}

.pe-lotacao-tile button.pe-entrada-tile:focus-visible,
.pe-lotacao-tile-btn:focus-visible {
    outline: 2px solid var(--pe-primary, #1565c0);
    outline-offset: 2px;
}

.pe-entrada-tile {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    text-decoration: none;
    color: inherit;
    background: var(--pe-card);
    border: 1px solid var(--pe-border-light);
    border-radius: var(--pe-radius);
    padding: 1.5rem 1.35rem;
    box-shadow: var(--pe-shadow-sm);
    transition: box-shadow var(--pe-transition), border-color var(--pe-transition), transform var(--pe-transition);
}

.pe-entrada-tile:hover {
    border-color: rgba(0, 180, 160, 0.35);
    box-shadow: var(--pe-shadow-lg);
    transform: translateY(-2px);
    color: inherit;
}

.pe-entrada-tile:focus-visible {
    outline: 3px solid var(--pe-accent);
    outline-offset: 3px;
}

.pe-entrada-tile-icon {
    width: 56px;
    height: 56px;
    margin: 0 auto 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: var(--pe-accent-soft);
    color: var(--pe-accent-hover);
    font-size: 1.65rem;
}

.pe-entrada-tile-title {
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--pe-navy);
    margin-bottom: 0.4rem;
    display: block;
}

.pe-entrada-tile-desc {
    font-size: 0.85rem;
    color: var(--pe-text-muted);
    line-height: 1.45;
    display: block;
}

[data-theme="dark"] .pe-entrada-tile {
    background: var(--pe-navy-mid);
    border-color: rgba(255, 255, 255, 0.08);
}

[data-theme="dark"] .pe-entrada-title {
    color: #e8eef6;
}

[data-theme="dark"] .pe-entrada-tile-title {
    color: #f0f4fa;
}

[data-theme="dark"] .pe-entrada-tile-desc {
    color: rgba(255, 255, 255, 0.62);
}

/* Portal rede especializada — realce índigo (mesmo código; só tema visual) */
.pe-body-portal-amb {
    --pe-accent: #6366f1;
    --pe-accent-soft: rgba(99, 102, 241, 0.14);
    --pe-accent-hover: #4f46e5;
}

[data-theme="dark"] .pe-body-portal-amb {
    --pe-accent: #818cf8;
    --pe-accent-soft: rgba(129, 140, 248, 0.18);
    --pe-accent-hover: #a5b4fc;
}

.amb-dash-hero-inner {
    background: linear-gradient(105deg, #1e1b4b 0%, #312e81 52%, #4338ca 100%);
    border-radius: var(--pe-radius);
    border-bottom: 3px solid var(--pe-accent);
}

.amb-dash-hero-icon {
    font-size: 4rem;
    opacity: 0.38;
    color: rgba(255, 255, 255, 0.95);
}

.amb-dash-q-icon {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 12px;
    background: var(--pe-accent-soft);
    color: var(--pe-accent-hover);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.35rem;
}

a.amb-dash-quick-hover:hover {
    border-color: rgba(99, 102, 241, 0.38);
    box-shadow: var(--pe-shadow-sm);
    transform: translateY(-1px);
}

a.amb-dash-quick-hover:focus-visible {
    outline: 3px solid var(--pe-accent);
    outline-offset: 2px;
}

/* Modal chamadas triagem / acolhimento */
.pe-modal-header-chamada {
    background: linear-gradient(90deg, #0d2045, #1a3a6a);
    color: #fff;
}

.pe-input-local-chamada {
    font-weight: 600;
    text-transform: uppercase;
}

.pe-modal-header-chamada-amb {
    background: linear-gradient(105deg, #1e1b4b 0%, #312e81 52%, #4338ca 100%);
    border-bottom: 3px solid var(--pe-accent);
    color: #fff;
}

/* Prontuário — portal especializada (camada visual distinta da urgência) */
.pe-prontuario-amb .nav-tabs .nav-link.active {
    color: var(--pe-accent-hover);
    border-bottom-color: var(--pe-accent);
}
.pe-prontuario-amb .pe-timeline-marker {
    background: var(--pe-accent-hover);
    box-shadow: 0 0 0 2px var(--pe-accent-hover);
}
.pe-prontuario-amb .pe-timeline-item.active .pe-timeline-marker {
    background: #059669;
    box-shadow: 0 0 0 2px #059669;
}
.pe-prontuario-amb .pe-timeline {
    border-left-color: rgba(99, 102, 241, 0.35);
}

/* ================================================================
   RODAPÉ
   ================================================================ */
.pe-footer {
    background: linear-gradient(180deg, var(--pe-navy-mid) 0%, var(--pe-navy) 100%);
    color: rgba(255, 255, 255, 0.62);
    border-top: 3px solid var(--pe-accent);
    margin-top: auto;
}

.pe-footer-inner {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding: 1rem 1.5rem;
    font-size: 0.79rem;
    gap: 1rem;
    max-width: 1920px;
    margin: 0 auto;
}

@media (min-width: 901px) {
    .pe-footer-inner > span:first-child { justify-self: start; }
    .pe-footer-inner > span:nth-child(2) { justify-self: center; }
    .pe-footer-inner > span:last-child { justify-self: end; }
}

@media (max-width: 900px) {
    .pe-footer-inner {
        grid-template-columns: 1fr;
        text-align: center;
        justify-items: center;
    }
}

.pe-footer-brand {
    font-weight: 600;
    color: rgba(255,255,255,.82);
    display: flex;
    align-items: center;
    gap: 0.4rem;
}

.pe-footer-dev {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    color: rgba(255,255,255,.55);
    font-size: 0.76rem;
    text-align: center;
    flex-wrap: wrap;
    justify-content: center;
}

.pe-footer-dev i {
    color: var(--pe-accent);
    font-size: 0.85rem;
}

.pe-footer-dev strong {
    color: rgba(255,255,255,.82);
    font-weight: 600;
}

.pe-footer-dev-role {
    display: block;
    width: 100%;
    text-align: center;
    color: rgba(255,255,255,.42);
    font-size: 0.72rem;
    margin-top: -0.1rem;
}

/* ================================================================
   AUTOCOMPLETE — FARMÁCIA
   ================================================================ */
.pe-farmacia-ac-list {
    background: #fff;
    border: 1px solid var(--pe-border);
    border-radius: var(--pe-radius-sm);
    box-shadow: var(--pe-shadow);
    max-height: 220px;
    overflow-y: auto;
}

.pe-farmacia-ac-item {
    display: block;
    width: 100%;
    text-align: left;
    border: 0;
    border-bottom: 1px solid var(--pe-border-light);
    padding: 0.42rem 0.7rem;
    font-size: 0.825rem;
    background: #fff;
    cursor: pointer;
    transition: background var(--pe-transition);
}

.pe-farmacia-ac-item:last-child { border-bottom: 0; }
.pe-farmacia-ac-item:hover      { background: #eaf1f8; }

/* ================================================================
   ViaCEP — resultados da pesquisa por logradouro (paciente_form)
   ================================================================ */
.pe-viacep-resultados {
    min-height: 2.5rem;
    background-color: var(--pe-card, #f8f9fa);
}

.pe-viacep-resultados .list-group-item {
    cursor: pointer;
}

[data-theme="dark"] .pe-viacep-resultados {
    background-color: rgba(255, 255, 255, 0.06) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
}

/* ================================================================
   e-SUS — busca no cadastro (paciente_form)
   Sem overlay sobre os campos: spinner só na área de resultados.
   ================================================================ */
#modalEsus .modal-header {
    background: linear-gradient(105deg, var(--pe-navy) 0%, var(--pe-navy-mid) 100%);
    color: #fff;
    border-bottom: 2px solid var(--pe-accent);
}

/*
 * Não usar display:flex + flex:1 no .modal-content com altura "auto": o .modal-body
 * pode colapsar a 0px em vários browsers (área de clique inexistente = "congelado").
 */
#modalEsus .modal-content {
    border: none;
    box-shadow: var(--pe-shadow-lg);
    border-radius: var(--pe-radius);
}

#modalEsus .modal-body {
    max-height: min(75vh, 720px);
    overflow-y: auto;
}

.pe-esus-busca-spinner {
    background: var(--pe-card);
}

.pe-esus-busca-spinner .spinner-border {
    width: 2.5rem;
    height: 2.5rem;
}

/*
 * Velo (backdrop) do Bootstrap: por padrão ~50% opacidade — parece “tela desativada”.
 * Com o e-SUS aberto, deixamos o fundo um pouco mais claro; o cadastro continua sem foco
 * (comportamento normal de modal: interação só dentro da janela).
 */
@supports selector(:has(*)) {
    body.modal-open:has(#modalEsus.show) .modal-backdrop {
        --bs-backdrop-opacity: 0.28;
    }
}

/* ================================================================
   HUB modular — cartões de atalho (relatórios, resumos de módulo)
   ================================================================ */
.pe-hub-card-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
}

.pe-hub-card-link:hover .pe-hub-tile-card {
    box-shadow: var(--pe-shadow-sm);
    transform: translateY(-2px);
}

.pe-hub-card-link:focus-visible {
    outline: none;
}

.pe-hub-card-link:focus-visible .pe-hub-tile-card {
    outline: 3px solid var(--pe-accent);
    outline-offset: 2px;
}

.pe-hub-tile-card {
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.pe-hub-icon-wrap {
    width: 52px;
    height: 52px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: var(--hub-bg);
}

.pe-hub-icon-wrap i {
    font-size: 1.35rem;
    color: var(--hub-fg);
}

.pe-hub-title {
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.28;
    color: var(--hub-fg);
}

.pe-hub-tile-card .card-body {
    padding: 1rem 1.15rem !important;
    gap: 0.65rem !important;
}

.pe-hub-tile-card .small.text-muted {
    font-size: 0.8125rem;
    line-height: 1.38;
}

/* Hubs em lista (farmácia, laboratório, faturamento): menos «bloco» de texto */
.pe-module-hub .card-body,
.pe-faturamento-hub .card-body {
    padding-top: 1rem;
    padding-bottom: 1rem;
}

.pe-module-hub .card-body > h2.h6 {
    margin-bottom: 0.35rem;
}

.pe-module-hub .card .small.text-muted {
    font-size: 0.8125rem;
    line-height: 1.38;
}

.pe-faturamento-hub .card .small.text-muted {
    font-size: 0.8125rem;
    line-height: 1.38;
}

.pe-hub-stripe {
    border-left: 4px solid var(--hub-fg) !important;
}

/* Acentos por módulo / relatório */
.pe-hub-ac-pacientes { --hub-fg: #1565c0; --hub-bg: rgba(21, 101, 192, 0.12); }
.pe-hub-ac-producao { --hub-fg: #2e7d32; --hub-bg: rgba(46, 125, 50, 0.12); }
.pe-hub-ac-analitico { --hub-fg: #0277bd; --hub-bg: rgba(2, 119, 189, 0.12); }
.pe-hub-ac-profrep { --hub-fg: #e65100; --hub-bg: rgba(230, 81, 0, 0.12); }
.pe-hub-ac-farmacia { --hub-fg: #6a1b9a; --hub-bg: rgba(106, 27, 154, 0.12); }
.pe-hub-ac-lab { --hub-fg: #00838f; --hub-bg: rgba(0, 131, 143, 0.12); }
.pe-hub-ac-kpi { --hub-fg: #283593; --hub-bg: rgba(40, 53, 147, 0.12); }
.pe-hub-ac-docs { --hub-fg: #5e35b1; --hub-bg: rgba(94, 53, 177, 0.12); }
.pe-hub-ac-fichas { --hub-fg: #00695c; --hub-bg: rgba(0, 105, 92, 0.12); }
.pe-hub-ac-atividades { --hub-fg: #006064; --hub-bg: rgba(0, 96, 100, 0.12); }
.pe-hub-ac-audit { --hub-fg: #455a64; --hub-bg: rgba(69, 90, 100, 0.12); }
.pe-hub-ac-prodmanual { --hub-fg: #0d47a1; --hub-bg: rgba(13, 71, 161, 0.12); }

[data-theme="dark"] .pe-hub-title {
    color: var(--hub-fg);
}

[data-theme="dark"] .pe-hub-tile-card .small.text-muted {
    color: rgba(232, 238, 246, 0.72) !important;
}

/*
 * Apoio — Farmácia, Laboratório, Faturamento (hub), relatório de exames no ambulatorial:
 * cartões em grelha (.pe-module-hub / .pe-faturamento-hub) com borda e fundo legíveis
 * no escuro; .h6 herdava cor escura do «modo essencial» sobre fundo escuro.
 */
[data-theme="dark"] .pe-module-hub > [class*="col-"] > .card:not(.pe-card-bpa-competencia),
[data-theme="dark"] .pe-faturamento-hub .row > [class*="col-"] > .card:not(.pe-card-bpa-competencia) {
    background-color: var(--pe-card) !important;
    border: 1px solid rgba(255, 255, 255, 0.11) !important;
}

[data-theme="dark"] .pe-module-hub > [class*="col-"] > .card:not(.pe-card-bpa-competencia) .h6,
[data-theme="dark"] .pe-faturamento-hub .row > [class*="col-"] > .card:not(.pe-card-bpa-competencia) .h6 {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-module-hub > [class*="col-"] > .card:not(.pe-card-bpa-competencia) .small.text-muted,
[data-theme="dark"] .pe-faturamento-hub .row > [class*="col-"] > .card:not(.pe-card-bpa-competencia) .small.text-muted {
    color: var(--pe-text-muted) !important;
}

/*
 * Gestão — mosaico de relatórios, administração (cartões com .card-title),
 * consulta SIGTAP (estilos inline em sigtap_consulta.php). UPAS e rede especializada.
 */
[data-theme="dark"] .pe-hub-tile-card.card {
    background-color: var(--pe-card) !important;
    border: 1px solid rgba(255, 255, 255, 0.11) !important;
}

[data-theme="dark"] .card .card-title {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .card .card-text {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .sig-row:hover td {
    background-color: rgba(100, 181, 246, 0.12) !important;
}

[data-theme="dark"] .sig-stats {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .sig-code {
    color: #90caf9 !important;
}

[data-theme="dark"] .file-ok {
    background: rgba(46, 125, 50, 0.22) !important;
    border-color: rgba(129, 199, 132, 0.5) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .file-miss {
    background: rgba(198, 40, 40, 0.2) !important;
    border-color: rgba(244, 143, 177, 0.45) !important;
    color: var(--pe-text) !important;
}

/* ================================================================
   UTILITÁRIOS
   ================================================================ */

/* Título de seção (texto pequeno com acento à esquerda) */
.pe-section-title {
    font-size: 0.765rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--pe-navy);
    border-left: 3px solid var(--pe-accent);
    padding-left: 0.6rem;
    margin-bottom: 1rem;
}

/* ================================================================
   Profissionalização — foco, dashboards e formulários clínicos
   (eixo interface + consistência com Pilar 3)
   ================================================================ */

/* Teclado: foco visível sem afear cliques com mouse */
.pe-body .btn:focus-visible,
.pe-body .nav-link:focus-visible,
.pe-body .page-link:focus-visible {
    outline: 2px solid var(--pe-accent);
    outline-offset: 2px;
}

.pe-body .form-control:focus-visible,
.pe-body .form-select:focus-visible {
    border-color: var(--pe-accent);
    box-shadow: 0 0 0 0.2rem var(--pe-accent-soft);
}

/* Cartões de lista — hover discreto */
.pe-card-hoverLift {
    transition: transform var(--pe-transition), box-shadow var(--pe-transition);
}
.pe-card-hoverLift:hover {
    transform: translateY(-2px);
    box-shadow: var(--pe-shadow-sm);
}

/* Dashboard UPAS — gráficos (substitui inline min-height / max-width) */
.pe-dashboard-chart-body {
    min-height: 280px;
}
.pe-dashboard-chart-inner {
    max-width: 340px;
    width: 100%;
}
.pe-dashboard-chart-canvas {
    max-height: 300px;
}

/* Campos clínicos em maiúsculas (LGPD / padronização textual) */
.pe-form-control-uppercase {
    text-transform: uppercase;
}

.pe-form-control-case {
    text-transform: none;
}

/* Cabeçalhos de cartão — faturamento / formulários densos */
.pe-card-header-fat {
    color: var(--pe-navy);
    font-weight: 600;
}
[data-theme="dark"] .pe-card-header-fat {
    color: var(--pe-text);
}

/* Páginas utilitárias / diagnóstico — largura legível */
.pe-page-narrow-900 {
    max-width: 900px;
}
.pe-form-control-uppercase.pad-evolucao-dictado {
    padding-bottom: 35px;
}

/* Barra “Chamar paciente” — atendimento médico */
.pe-atendimento-chamar-banner {
    background: linear-gradient(90deg, #0d2045 0%, #1a3a6a 100%);
    border-left: 4px solid #f5c518;
}
.pe-atendimento-chamar-title {
    font-size: 1.05rem;
}
.pe-atendimento-chamar-meta {
    color: rgba(255, 255, 255, 0.6);
}
.pe-btn-chamar-paciente {
    font-size: 1rem;
}

/* Alerta de interação medicamentosa */
.pe-alert-interacao-farmacologica {
    background: #e65100;
    border-radius: 8px;
}

[data-theme="dark"] .pe-alert-interacao-farmacologica {
    background: #bf360c;
}

/* Alerta de alergias medicamentosas — consulta médica */
.pe-alergias-banner-clinico {
    position: sticky;
    top: 0;
    z-index: 1020;
    margin-bottom: 0.75rem;
    border-radius: var(--pe-radius-sm);
    border: 1px solid rgba(198, 40, 40, 0.35);
    border-left: 4px solid #c62828;
    background: linear-gradient(90deg, rgba(255, 235, 238, 0.98) 0%, rgba(255, 248, 225, 0.96) 100%);
    box-shadow: 0 2px 12px rgba(198, 40, 40, 0.12);
    animation: pe-alergias-banner-pulse 3s ease-in-out infinite;
}

@keyframes pe-alergias-banner-pulse {
    0%, 100% { box-shadow: 0 2px 12px rgba(198, 40, 40, 0.12); }
    50% { box-shadow: 0 2px 16px rgba(198, 40, 40, 0.28); }
}

.pe-alergias-banner-clinico-inner {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    padding: 0.55rem 0.85rem;
}

.pe-alergias-banner-clinico-icon {
    flex-shrink: 0;
    color: #b71c1c;
    font-size: 1.15rem;
    line-height: 1.3;
}

.pe-alergias-banner-clinico-text {
    min-width: 0;
    font-size: 0.8125rem;
    line-height: 1.35;
    color: #5d4037;
}

.pe-alergias-banner-clinico-titulo {
    display: block;
    font-size: 0.72rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #b71c1c;
    margin-bottom: 0.1rem;
}

.pe-alergias-banner-clinico-desc {
    word-break: break-word;
}

.pe-alert-alergia-prescricao {
    background: #c62828;
    border-radius: 8px;
}

[data-theme="dark"] .pe-alergias-banner-clinico {
    background: linear-gradient(90deg, rgba(80, 20, 20, 0.95) 0%, rgba(60, 40, 20, 0.92) 100%);
    border-color: rgba(239, 83, 80, 0.45);
}

[data-theme="dark"] .pe-alergias-banner-clinico-text {
    color: rgba(255, 235, 238, 0.92);
}

[data-theme="dark"] .pe-alergias-banner-clinico-titulo,
[data-theme="dark"] .pe-alergias-banner-clinico-icon {
    color: #ff8a80;
}

[data-theme="dark"] .pe-alert-alergia-prescricao {
    background: #b71c1c;
}

/* Botão flutuante ditado (evolução) */
.pe-btn-dictar-evolucao {
    border-radius: 50%;
    color: var(--pe-text-muted);
    background: var(--pe-border-light);
    z-index: 10;
}

[data-theme="dark"] .pe-btn-dictar-evolucao {
    background: rgba(255, 255, 255, 0.08);
    color: rgba(232, 238, 246, 0.75);
}

/* Input local do painel — chamada */
.pe-input-local-chamada-lg {
    font-weight: 600;
}

/* Prescrição: larguras de coluna sem inline no <th> */
.presc-itens-table thead th:nth-child(2) { min-width: 140px; }
.presc-itens-table thead th:nth-child(3) { width: 72px; }
.presc-itens-table thead th:nth-child(4) { min-width: 88px; }
.presc-itens-table thead th:nth-child(5) { min-width: 80px; }
.presc-itens-table thead th:nth-child(6) { min-width: 100px; }
.presc-itens-table thead th:nth-child(7) { min-width: 72px; }
.presc-itens-table thead th:nth-child(8),
.presc-itens-table thead th:nth-child(9) { width: 88px; }
.presc-itens-table thead th:nth-child(10) { min-width: 100px; }
.presc-itens-table thead th:nth-child(11) { width: 40px; }

/* Farmácia — entrada de stock (larguras de coluna sem inline) */
.pe-farmacia-entrada-itens thead th:nth-child(1) { min-width: 300px; }
.pe-farmacia-entrada-itens thead th:nth-child(2) { width: 140px; }
.pe-farmacia-entrada-itens thead th:nth-child(3) { width: 150px; }
.pe-farmacia-entrada-itens thead th:nth-child(4) { width: 120px; }
.pe-farmacia-entrada-itens thead th:nth-child(5) { width: 48px; }

/* Farmácia — saída / pedido matriz (larguras sem inline) */
.pe-farmacia-saida-itens thead th:nth-child(1) { min-width: 300px; }
.pe-farmacia-saida-itens thead th:nth-child(2) { width: 120px; }
.pe-farmacia-saida-itens thead th:nth-child(3) { width: 48px; }

.pe-farmacia-pedido-itens thead th:nth-child(1) { width: 170px; }
.pe-farmacia-pedido-itens thead th:nth-child(3) { width: 120px; }
.pe-farmacia-pedido-itens thead th:nth-child(4) { width: 48px; }

/* Prontuário — nome do paciente em cartão (sem style inline) */
.pe-prontuario-ident-nome {
    color: var(--pe-navy);
    font-weight: 600;
}
[data-theme="dark"] .pe-prontuario-ident-nome {
    color: var(--pe-text);
}

/* Scrollbar sutil */
::-webkit-scrollbar          { width: 6px; height: 6px; }
::-webkit-scrollbar-track    { background: transparent; }
::-webkit-scrollbar-thumb    { background: #b8cfe0; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: #8aacc8; }

/* --- Triagem: Manchester (cores de risco) ---------------------- */
.triagem-form-manchester .btn-check:checked + .risco-label {
    opacity: 1 !important;
    box-shadow: 0 0 0 4px rgba(0, 0, 0, 0.35);
}
.triagem-form-manchester .risco-label:hover {
    opacity: 0.85 !important;
    cursor: pointer;
}
.triagem-form-manchester .risco-sugerido {
    border: 3px solid #ffeb3b !important;
    animation: peTriagemRiscoSugerido 1.5s infinite;
}
@keyframes peTriagemRiscoSugerido {
    0% { box-shadow: 0 0 5px rgba(255, 235, 59, 0.5); }
    50% { box-shadow: 0 0 20px rgba(255, 235, 59, 1); }
    100% { box-shadow: 0 0 5px rgba(255, 235, 59, 0.5); }
}

/* ================================================================
   RESPONSIVIDADE
   ================================================================ */
@media (max-width: 575.98px) {
    .pe-topbar-inner          { padding: 0 0.75rem; }
    .pe-topbar-row            { gap: 0.5rem; min-height: 56px; }
    .pe-brand-icon            { width: 30px; height: 30px; font-size: 0.95rem; }
    .pe-brand-title           { font-size: 0.82rem; }
    .pe-brand-sub             { display: none; }
    .pe-user-name             { font-size: 0.72rem; }
    .pe-topbar-select         { max-width: 130px; font-size: 0.7rem; }
    .pe-unit-badge            { max-width: 130px; font-size: 0.7rem; }
    .pe-main-inner.container-fluid { padding-left: 0.85rem; padding-right: 0.85rem; }
    .pe-subnav .nav-link span { display: none; }
    .pe-subnav .nav-link      { padding: 0.62rem 0.7rem; }
    .pe-subnav .nav-link i    { font-size: 1.05rem; }
}

@media (max-width: 767.98px) {
    .pe-topbar-inner { padding: 0 1rem; }
    .pe-brand-sub    { font-size: 0.7rem; }
}

@media (min-width: 1800px) {
    .pe-topbar-inner,
    .pe-main-inner.container-fluid {
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    }
}

/* ================================================================
   TEMPLATE 2026 — LAYOUT PROFISSIONAL SEM CARDS
   Objetivo: visual corporativo linear, mantendo 100% das funcionalidades
   ================================================================ */
:root {
    --pe-surface: #ffffff;
    --pe-surface-alt: #f7f9fc;
    --pe-line: #d9e1ec;
    --pe-line-strong: #b7c6d8;
}

.pe-main {
    padding-top: 1.35rem;
    padding-bottom: 2.2rem;
}

.pe-page-header {
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    border: 1px solid var(--pe-line);
    border-left: 4px solid #0d3c78;
    border-radius: 8px;
    box-shadow: none;
}

/* Remove aparência de cartões e transforma em blocos lineares */
.card,
.pe-card-stat,
.pe-hub-tile-card,
.pe-login-card {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.card-header,
.card-body,
.card-footer {
    background: var(--pe-surface) !important;
    border: 1px solid var(--pe-line);
    border-radius: 0 !important;
    box-shadow: none !important;
}

.card-header {
    border-bottom: 1px solid var(--pe-line-strong) !important;
    border-left: 3px solid #0d3c78;
    padding: 0.72rem 1rem;
}

.card-body {
    border-top: 0;
    padding: 1rem;
}

.card-footer {
    border-top: 0;
    border-bottom: 1px solid var(--pe-line-strong);
    padding: 0.72rem 1rem;
    background: var(--pe-surface-alt) !important;
}

/* Evita “caixas flutuando”: ritmo vertical mais executivo */
.row > [class*="col-"] > .card,
.pe-main-inner > .card,
.pe-main-inner .card.mb-3,
.pe-main-inner .card.mb-4 {
    margin-bottom: 0.9rem !important;
}

/* Dashboard: estatísticas em faixa horizontal limpa */
.pe-card-stat .card-body {
    border-left: 4px solid #0d3c78;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%) !important;
}

.pe-card-stat.pe-stat-green .card-body { border-left-color: #2e7d32; }
.pe-card-stat.pe-stat-red .card-body { border-left-color: #c62828; }
.pe-card-stat.pe-stat-orange .card-body { border-left-color: #e65100; }
.pe-card-stat.pe-stat-blue .card-body { border-left-color: #1565c0; }

/* Tabelas com cara de sistema corporativo */
.table {
    border: 1px solid var(--pe-line);
}

.table thead th {
    background: #0d3c78 !important;
    color: #fff !important;
    border-color: #0d3c78 !important;
    font-size: 0.73rem;
}

.table > :not(caption) > * > * {
    border-color: var(--pe-line) !important;
}

/* Tabs e navegação com visual premium sem excesso */
.nav-tabs {
    border-bottom: 2px solid var(--pe-line);
}

.nav-tabs .nav-link {
    border: 0;
    border-bottom: 2px solid transparent;
    color: #3f5975;
    border-radius: 0;
    font-weight: 600;
}

.nav-tabs .nav-link.active {
    color: #0d3c78;
    background: transparent;
    border-bottom-color: #0d3c78;
}

/* Modais mais sóbrios */
.modal-content {
    border: 1px solid var(--pe-line-strong);
    border-radius: 8px;
    box-shadow: 0 18px 48px rgba(6, 16, 24, 0.2);
}

.modal-footer {
    background: var(--pe-surface-alt) !important;
}

/* Tema escuro equivalente */
[data-theme="dark"] {
    --pe-surface: #111a27;
    --pe-surface-alt: #0d1521;
    --pe-line: rgba(255, 255, 255, 0.12);
    --pe-line-strong: rgba(255, 255, 255, 0.24);
}

[data-theme="dark"] .table thead th {
    background: #1f3552 !important;
    border-color: #1f3552 !important;
}

/* ================================================================
   REFINO POR MÓDULO — DASHBOARD / TRIAGEM / FILA / ATENDIMENTO
   ================================================================ */

/* Dashboard: remove blocos “cardizados” e transforma em painéis lineares */
.pe-dashboard-hero.card {
    border: 1px solid var(--pe-line) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

.pe-dashboard-hero .pe-dashboard-hero-bg {
    border-radius: 0 !important;
}

.pe-card-stat .card-body {
    border-radius: 0 !important;
}

.pe-main-inner .card.shadow-sm.h-100.border-0 .card-header {
    background: var(--pe-surface-alt) !important;
    border-left-color: #0d3c78;
}

/* Fila de atendimento: cartões viram linhas de painel profissional */
#filaTabContent .card.h-100 {
    border: 1px solid var(--pe-line) !important;
    border-left-width: 5px !important;
    border-radius: 0 !important;
    background: var(--pe-surface) !important;
    box-shadow: none !important;
}

#filaTabContent .card.h-100 .card-body {
    border: 0 !important;
    padding: 0.85rem 1rem !important;
}

#filaTabContent .card.h-100 .badge.rounded-pill {
    border-radius: 4px !important;
    font-weight: 700;
}

/* Blocos de resumo por risco ficam mais executivos */
#resumoRisco .rounded.p-2.text-center {
    border-radius: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow: none;
}

/* Triagem e atendimento: tabelas com colunas e linhas mais consistentes */
.pe-main-inner .table.pe-table td .fw-semibold,
.pe-main-inner .table.pe-table td .fw-bold {
    font-weight: 700 !important;
    letter-spacing: -0.01em;
}

.pe-main-inner .table.pe-table td .small.text-muted {
    font-size: 0.78rem !important;
}

/* Atendimento médico: bloco de “consultas em curso” em estilo de seção linear */
.pe-main-inner .card.border.mb-4 .card-header {
    border-left-color: #c62828 !important;
}

.pe-main-inner .card.border.mb-4 .card-body {
    background: var(--pe-surface) !important;
}

/* Pacientes e triagem: cabeçalho com hierarquia visual mais institucional */
.pe-page-header .pe-page-title i {
    opacity: 0.95;
}

.pe-page-header p.text-muted.small {
    max-width: 78ch;
}

[data-theme="dark"] #filaTabContent .card.h-100 {
    border-color: rgba(255, 255, 255, 0.14) !important;
}

[data-theme="dark"] #resumoRisco .rounded.p-2.text-center {
    border-color: rgba(255, 255, 255, 0.18);
}

/* Força visual (antigo card -> linha de painel) para telas críticas */
#filaTabContent .row.g-3 {
    --bs-gutter-y: 0.5rem;
}

#filaTabContent .row.g-3 > [class*="col-"] {
    width: 100%;
    flex: 0 0 100%;
    max-width: 100%;
}

#filaTabContent .card.h-100 {
    border-left-width: 4px !important;
    border-top: 1px solid var(--pe-line) !important;
    border-right: 1px solid var(--pe-line) !important;
    border-bottom: 1px solid var(--pe-line) !important;
}

#filaTabContent .card.h-100 .card-body {
    display: grid !important;
    grid-template-columns: 1fr auto;
    gap: 0.5rem 1rem;
    align-items: center;
}

#filaTabContent .card.h-100 .card-body > .d-flex.align-items-start {
    grid-column: 1 / 2;
    margin: 0 !important;
}

#filaTabContent .card.h-100 .card-body > .d-flex.gap-2.mt-auto {
    grid-column: 2 / 3;
    margin-top: 0 !important;
    justify-content: flex-end;
}

@media (max-width: 900px) {
    #filaTabContent .card.h-100 .card-body {
        grid-template-columns: 1fr;
    }
    #filaTabContent .card.h-100 .card-body > .d-flex.gap-2.mt-auto {
        grid-column: 1 / 2;
        justify-content: flex-start;
    }
}

/* Dashboard: remove visual de mosaico e padroniza em painéis de seção */
.pe-main-inner .pe-dashboard-hero.card,
.pe-main-inner .pe-card-stat,
.pe-main-inner .card.shadow-sm {
    border-radius: 0 !important;
}

.pe-main-inner .pe-card-stat .display-6 {
    font-size: 1.8rem !important;
}

/* ================================================================
   VISUAL HOSPITALAR ENTERPRISE (inspiração AGHU)
   ================================================================ */

.pe-body {
    background: var(--pe-aghu-bg);
    color: #0c1b31;
    font-size: 0.9rem;
    letter-spacing: 0;
}

.pe-topbar {
    background: linear-gradient(180deg, var(--pe-aghu-navy) 0%, var(--pe-aghu-navy-2) 100%);
    border-bottom: 1px solid #15314f;
    box-shadow: 0 2px 10px rgba(14, 36, 61, 0.28);
}

.pe-subnav {
    background: #c2cfdf;
    border-bottom: 1px solid #9fb0c6;
    box-shadow: none;
}

.pe-subnav .nav-link {
    font-size: 0.79rem;
    font-weight: 700;
    color: #2a3f5d;
    border-bottom-width: 3px;
}

.pe-subnav .nav-link.active {
    color: #19324d;
    background: #fff;
    border-bottom-color: #19324d;
}

.pe-page-header {
    background: var(--pe-aghu-surface);
    border: 1px solid var(--pe-aghu-line);
    border-left: 4px solid var(--pe-aghu-navy);
    border-radius: 4px;
    padding: 0.85rem 1rem;
}

.card-header {
    background: #f6f9fd !important;
    border-color: var(--pe-aghu-line) !important;
    color: #1f3550;
    font-size: 0.8rem;
    padding: 0.62rem 0.9rem;
}

.card-body {
    background: #fff !important;
    border-color: var(--pe-aghu-line) !important;
    padding: 0.9rem;
}

.card-footer {
    background: #f7f9fc !important;
    border-color: var(--pe-aghu-line) !important;
    padding: 0.62rem 0.9rem;
}

/*
 * Tema escuro — depois do bloco enterprise: .card-body com #fff !important
 * anulava o fundo do .card (var(--pe-card)) e deixava texto claro sobre branco
 * em Resumo, Triagem, Fila de consultas, Fila e Enfermaria (e resto da app).
 */
[data-theme="dark"] .card-body {
    background-color: transparent !important;
}

[data-theme="dark"] .card-header {
    background-color: rgba(255, 255, 255, 0.07) !important;
    color: var(--pe-text) !important;
    border-color: var(--pe-border-light) !important;
    border-left-color: #6fb7ff !important;
}

[data-theme="dark"] .card-footer {
    background-color: rgba(255, 255, 255, 0.05) !important;
    color: var(--pe-text) !important;
    border-color: var(--pe-border-light) !important;
}

.table {
    background: #fff;
    border: 1px solid var(--pe-aghu-line);
}

.table thead th {
    background: #2a4c72 !important;
    border-color: #2a4c72 !important;
    color: #fff !important;
    font-size: 0.71rem;
    letter-spacing: 0.04em;
    padding-top: 0.52rem;
    padding-bottom: 0.52rem;
}

.table > :not(caption) > * > * {
    padding: 0.5rem 0.72rem;
    border-color: var(--pe-aghu-line) !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #f9fbfe;
}

.table-hover > tbody > tr:hover > * {
    background-color: #edf3fa !important;
}

/* Modo noturno: por cima do enterprise — evitar faixa «branca» #edf3fa + texto claro ilegível */
[data-theme="dark"] .table-hover > tbody > tr:hover > *,
[data-theme="dark"] .pe-main-inner .table-hover > tbody > tr:hover > * {
    background-color: rgba(100, 181, 246, 0.14) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .table-hover > tbody > tr:hover > * .text-muted,
[data-theme="dark"] .table-hover > tbody > tr:hover > * .small.text-muted,
[data-theme="dark"] .pe-main-inner .table-hover > tbody > tr:hover > * .text-muted,
[data-theme="dark"] .pe-main-inner .table-hover > tbody > tr:hover > * .small.text-muted {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: rgba(255, 255, 255, 0.045) !important;
    color: var(--pe-text) !important;
}

.form-control,
.form-select {
    background: #ffffff !important;
    color: #0b1a2f !important;
    border: 1px solid var(--pe-aghu-line-2);
    border-radius: 4px;
    padding: 0.42rem 0.62rem;
    font-size: 0.88rem;
}

[data-theme="dark"] {
    --pe-aghu-bg: #0c1420;
    --pe-aghu-surface: #111d2c;
    --pe-aghu-line: rgba(255, 255, 255, 0.14);
    --pe-aghu-line-2: rgba(255, 255, 255, 0.22);
    --pe-aghu-btn-save: #2d8f62;
    --pe-aghu-btn-save-hover: #257a52;
    --pe-aghu-btn-save-focus: rgba(45, 143, 98, 0.45);
    --pe-aghu-btn-new: #5b8fc7;
    --pe-aghu-btn-new-hover: #4a7ab0;
    --pe-aghu-btn-new-focus: rgba(91, 143, 199, 0.4);
    --pe-aghu-btn-edit: #42a5f5;
    --pe-aghu-btn-edit-hover: #1e88e5;
    --pe-aghu-btn-edit-focus: rgba(66, 165, 245, 0.45);
    --pe-aghu-btn-search: #78909c;
    --pe-aghu-btn-search-hover: #607d8b;
    --pe-aghu-btn-search-focus: rgba(120, 144, 156, 0.4);
    --pe-aghu-btn-open: #9575cd;
    --pe-aghu-btn-open-hover: #7e57c2;
    --pe-aghu-btn-open-focus: rgba(149, 117, 205, 0.45);
    --pe-aghu-btn-print: #ba68c8;
    --pe-aghu-btn-print-hover: #ab47bc;
    --pe-aghu-btn-print-focus: rgba(186, 104, 200, 0.45);
    --pe-aghu-btn-outline-fg: #4db6ac;
    --pe-aghu-btn-outline-hover-bg: #00897b;
    --pe-aghu-btn-cancel-bg: #1a2535;
    --pe-aghu-btn-cancel-border: rgba(255, 255, 255, 0.22);
    --pe-aghu-btn-cancel-text: rgba(255, 255, 255, 0.88);
    --pe-aghu-btn-cancel-hover-bg: #243044;
    --pe-aghu-toolbar-bg: linear-gradient(180deg, #152030 0%, #101a28 100%);
    --pe-aghu-toolbar-border: rgba(255, 255, 255, 0.12);
}

[data-theme="dark"] .pe-subnav {
    background: #0f1d2d !important;
}

/* ================================================================
   MODO ESSENCIAL (global): reduzir ruído visual em todas as telas
   ================================================================ */
.pe-page-header {
    gap: 0.45rem;
    padding-top: 0.62rem !important;
    padding-bottom: 0.62rem !important;
}

.pe-page-header nav[aria-label="Contexto"],
.pe-page-header .breadcrumb,
.pe-page-header .badge,
.pe-page-header p.text-muted.small,
.pe-page-header .small.text-muted,
.pe-page-header .text-muted.fw-normal.fs-6 {
    display: none !important;
}

.pe-page-title {
    font-size: 1.03rem !important;
    line-height: 1.25;
    color: #102540 !important;
    font-weight: 800 !important;
    margin: 0 !important;
}

.pe-main-inner,
.pe-main-inner .table,
.pe-main-inner .card-body,
.pe-main-inner .card-header {
    color: #0c1b31 !important;
}

.form-label,
.pe-main-inner .small.text-muted,
.pe-main-inner .text-muted {
    color: #3e5370 !important;
}

.pe-main-inner .card-header .small.text-muted {
    display: none;
}

/*
 * Tema escuro + «modo essencial»: as regras acima forçam texto escuro com !important
 * e acabam por cima das regras [data-theme="dark"] (especialmente .pe-page-title e tabelas).
 */
[data-theme="dark"] .pe-page-title {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-main-inner,
[data-theme="dark"] .pe-main-inner .card-body,
[data-theme="dark"] .pe-main-inner .card-header {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-main-inner .small.text-muted,
[data-theme="dark"] .pe-main-inner .text-muted {
    color: var(--pe-text-muted) !important;
}

[data-theme="dark"] .pe-main-inner .table > :not(caption) > * > * {
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-main-inner .table thead th,
[data-theme="dark"] .pe-main-inner .table tfoot th,
[data-theme="dark"] .pe-main-inner .table tfoot td {
    color: #fff !important;
}

/* Pesquisa pacientes — linha «sem identificação»: evitar texto claro sobre fundo amarelo claro (BS + regras .pe-main-inner) */
[data-theme="dark"] .pe-main-inner .table tbody tr.table-warning > *,
[data-theme="dark"] .table tbody tr.table-warning > * {
    background-color: rgba(230, 81, 0, 0.22) !important;
    color: #fff3e0 !important;
    border-color: rgba(255, 183, 77, 0.38) !important;
}

[data-theme="dark"] .pe-main-inner .table tbody tr.table-warning > * .text-muted,
[data-theme="dark"] .table tbody tr.table-warning > * .text-muted {
    color: rgba(255, 224, 178, 0.88) !important;
}

[data-theme="dark"] .pe-main-inner .table tbody tr.table-warning:hover > *,
[data-theme="dark"] .table.table-hover tbody tr.table-warning:hover > * {
    background-color: rgba(230, 81, 0, 0.32) !important;
    color: #fff8e1 !important;
}

/*
 * Dashboard (Início): o hero e os pe-card-stat usam .card-body com fundo claro
 * (gradiente branco / regra enterprise). A cor global «clara» do modo escuro
 * ficava ilegível — restaurar fundo escuro e texto claro só nestes blocos.
 */
[data-theme="dark"] .pe-dashboard-hero .pe-dashboard-hero-bg {
    background: linear-gradient(118deg, var(--pe-navy) 0%, var(--pe-navy-mid) 45%, #1b5a8a 100%) !important;
    border: none !important;
    border-bottom: 3px solid var(--pe-accent) !important;
    color: #fff !important;
}

[data-theme="dark"] .pe-dashboard-hero .pe-dashboard-hero-bg,
[data-theme="dark"] .pe-dashboard-hero .pe-dashboard-hero-bg * {
    color: #fff !important;
}

[data-theme="dark"] .pe-dashboard-hero .pe-dashboard-hero-bg .text-white-50,
[data-theme="dark"] .pe-dashboard-hero .pe-dashboard-hero-bg .pe-dashboard-hero-lead,
[data-theme="dark"] .pe-dashboard-hero .pe-dashboard-hero-bg .text-muted {
    color: rgba(255, 255, 255, 0.72) !important;
}

[data-theme="dark"] .pe-main-inner .pe-card-stat .card-body {
    background: linear-gradient(180deg, var(--pe-card) 0%, rgba(18, 26, 40, 0.94) 100%) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-main-inner .pe-card-stat .card-body .text-muted,
[data-theme="dark"] .pe-main-inner .pe-card-stat .card-body h2.text-muted {
    color: var(--pe-text-muted) !important;
}

/* Ambulatorial — mesmo conflito .card-body enterprise vs. gradiente no hero */
[data-theme="dark"] .amb-dash-hero .amb-dash-hero-inner {
    background: linear-gradient(105deg, #1e1b4b 0%, #312e81 52%, #4338ca 100%) !important;
    border-bottom: 3px solid var(--pe-accent) !important;
    color: #fff !important;
}

[data-theme="dark"] .amb-dash-hero .amb-dash-hero-inner,
[data-theme="dark"] .amb-dash-hero .amb-dash-hero-inner * {
    color: #fff !important;
}

[data-theme="dark"] .amb-dash-hero .amb-dash-hero-inner .text-white-50,
[data-theme="dark"] .amb-dash-hero .amb-dash-hero-inner .text-muted {
    color: rgba(255, 255, 255, 0.72) !important;
}

[data-theme="dark"] .amb-dash-hero .amb-dash-hero-inner strong.text-white {
    color: #fff !important;
}

/* KPIs do topo (ambulatorial): mesmo fundo branco forçado por .card-body enterprise */
[data-theme="dark"] .pe-body-portal-amb .card.shadow-sm.border-0.h-100.pe-card-hoverLift > .card-body {
    background: linear-gradient(180deg, var(--pe-card) 0%, rgba(18, 26, 40, 0.94) 100%) !important;
    color: var(--pe-text) !important;
}

[data-theme="dark"] .pe-body-portal-amb .card.shadow-sm.border-0.h-100.pe-card-hoverLift > .card-body .text-muted {
    color: var(--pe-text-muted) !important;
}

/* ================================================================
   COMPACTAÇÃO GLOBAL: remover espaços sem utilidade
   ================================================================ */
.pe-main > .container-fluid,
.pe-main.container-fluid,
.pe-main-inner.container-fluid {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
}

.pe-main-inner .row {
    --bs-gutter-x: 0.7rem !important;
    --bs-gutter-y: 0.45rem !important;
}

.pe-main-inner > .card,
.pe-main-inner .card.mb-3,
.pe-main-inner .card.mb-4,
.pe-main-inner .pe-form-section,
.pe-main-inner .pe-page-header {
    margin-bottom: 0.65rem !important;
}

.pe-page-header {
    padding: 0.5rem 0.72rem !important;
    gap: 0.35rem !important;
}

.card-header,
.card-body,
.card-footer {
    padding: 0.55rem 0.72rem !important;
}

.table > :not(caption) > * > * {
    padding: 0.36rem 0.52rem !important;
}

.form-control,
.form-select {
    padding: 0.32rem 0.5rem !important;
}

.btn {
    padding: 0.26rem 0.48rem !important;
    min-height: 27px !important;
}

.btn.btn-sm {
    padding: 0.22rem 0.42rem !important;
    min-height: 25px !important;
}

.modal-header,
.modal-body,
.modal-footer {
    padding: 0.6rem 0.72rem !important;
}

/* ================================================================
   REFINO VISUAL ENTERPRISE (inspiração: sistemas privados de ponta)
   ================================================================ */
:root {
    --pe-private-bg: #a7b7cd;
    --pe-private-surface: #ffffff;
    --pe-private-surface-soft: #f2f6fb;
    --pe-private-line: #9cb0c9;
    --pe-private-text: #0a1a30;
    --pe-private-muted: #314a69;
    --pe-private-primary: #1d3f66;
    --pe-private-primary-hover: #183755;
    --pe-private-topbar-a: #16314f;
    --pe-private-topbar-b: #21486f;
}

.pe-body {
    background: var(--pe-private-bg) !important;
    color: var(--pe-private-text) !important;
}

.pe-topbar {
    background: linear-gradient(180deg, var(--pe-private-topbar-a) 0%, var(--pe-private-topbar-b) 100%) !important;
    border-bottom-color: #0f2a45 !important;
}

.pe-subnav {
    background: #b7c6d9 !important;
    border-bottom: 1px solid #8ea4bf !important;
}

.pe-subnav .nav-link {
    color: #233f61 !important;
}

.pe-subnav .nav-link.active {
    color: #132f4f !important;
    border-bottom-color: #132f4f !important;
    background: #ffffff !important;
}

.pe-page-header,
.card,
.pe-form-section,
.modal-content {
    background: var(--pe-private-surface) !important;
    border-color: var(--pe-private-line) !important;
}

.card-header,
.table thead th {
    background: var(--pe-private-surface-soft) !important;
    color: var(--pe-private-primary) !important;
    border-color: var(--pe-private-line) !important;
}

.table {
    border-color: var(--pe-private-line) !important;
}

.table > :not(caption) > * > * {
    border-color: #b4c3d6 !important;
}

.form-control,
.form-select {
    background: #fff !important;
    color: var(--pe-private-text) !important;
    border-color: #8fa4bf !important;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--pe-private-primary) !important;
    box-shadow: 0 0 0 0.14rem rgba(29, 63, 102, 0.18) !important;
}

.pe-page-title,
.card-header,
.table td,
.table th,
.form-label {
    color: var(--pe-private-text) !important;
}

.text-muted,
.small.text-muted {
    color: var(--pe-private-muted) !important;
}

.btn-primary,
.btn-pe-new,
.btn-pe-open {
    background: var(--pe-private-primary) !important;
    border-color: var(--pe-private-primary) !important;
}

.btn-primary:hover,
.btn-pe-new:hover,
.btn-pe-open:hover {
    background: var(--pe-private-primary-hover) !important;
    border-color: var(--pe-private-primary-hover) !important;
}

/* Correção de contraste: textos em superfícies claras (cards/seções/modais) */
html:not([data-theme="dark"]) .card,
html:not([data-theme="dark"]) .pe-form-section,
html:not([data-theme="dark"]) .modal-content,
html:not([data-theme="dark"]) .pe-page-header {
    color: #0b1e36 !important;
}

html:not([data-theme="dark"]) .card .text-muted,
html:not([data-theme="dark"]) .pe-form-section .text-muted,
html:not([data-theme="dark"]) .modal-content .text-muted,
html:not([data-theme="dark"]) .pe-page-header .text-muted,
html:not([data-theme="dark"]) .card .small.text-muted,
html:not([data-theme="dark"]) .pe-form-section .small.text-muted,
html:not([data-theme="dark"]) .modal-content .small.text-muted {
    color: #3a5272 !important;
    opacity: 1 !important;
}

html:not([data-theme="dark"]) .card .form-label,
html:not([data-theme="dark"]) .pe-form-section .form-label,
html:not([data-theme="dark"]) .modal-content .form-label {
    color: #0f2746 !important;
    font-weight: 700;
}

/* ================================================================
   TEMA ICLINIC-INSPIRED (aplicação global)
   ================================================================ */
:root {
    --pe-icl-bg: #eef3ff;
    --pe-icl-surface: #ffffff;
    --pe-icl-surface-soft: #f6f8ff;
    --pe-icl-border: #d5deef;
    --pe-icl-text: #13233f;
    --pe-icl-muted: #4f6284;
    --pe-icl-primary: #4b69ff;
    --pe-icl-primary-hover: #3f5ae0;
    --pe-icl-topbar-a: #3a57ef;
    --pe-icl-topbar-b: #5b78ff;
}

html:not([data-theme="dark"]) .pe-body {
    background: var(--pe-icl-bg) !important;
    color: var(--pe-icl-text) !important;
}

html:not([data-theme="dark"]) .pe-topbar {
    background: linear-gradient(180deg, var(--pe-icl-topbar-a) 0%, var(--pe-icl-topbar-b) 100%) !important;
    border-bottom-color: #2b45cb !important;
}

html:not([data-theme="dark"]) .pe-subnav {
    background: #e2e9ff !important;
    border-bottom: 1px solid #c8d6ff !important;
}

html:not([data-theme="dark"]) .pe-subnav .nav-link {
    color: #2f4687 !important;
}

html:not([data-theme="dark"]) .pe-subnav .nav-link.active {
    color: #1f3470 !important;
    border-bottom-color: #1f3470 !important;
    background: #ffffff !important;
}

html:not([data-theme="dark"]) .pe-page-header,
html:not([data-theme="dark"]) .card,
html:not([data-theme="dark"]) .pe-form-section,
html:not([data-theme="dark"]) .modal-content {
    background: var(--pe-icl-surface) !important;
    border-color: var(--pe-icl-border) !important;
}

html:not([data-theme="dark"]) .card-header,
html:not([data-theme="dark"]) .table thead th {
    background: var(--pe-icl-surface-soft) !important;
    color: #29489a !important;
    border-color: var(--pe-icl-border) !important;
}

html:not([data-theme="dark"]) .table > :not(caption) > * > * {
    border-color: #dde4f5 !important;
}

html:not([data-theme="dark"]) .form-control,
html:not([data-theme="dark"]) .form-select {
    background: #fff !important;
    border-color: #c1cfee !important;
    color: var(--pe-icl-text) !important;
}

html:not([data-theme="dark"]) .form-control:focus,
html:not([data-theme="dark"]) .form-select:focus {
    border-color: var(--pe-icl-primary) !important;
    box-shadow: 0 0 0 0.14rem rgba(63, 94, 251, 0.2) !important;
}

html:not([data-theme="dark"]) .btn-primary,
html:not([data-theme="dark"]) .btn-pe-new,
html:not([data-theme="dark"]) .btn-pe-open {
    background: var(--pe-icl-primary) !important;
    border-color: var(--pe-icl-primary) !important;
}

html:not([data-theme="dark"]) .btn-primary:hover,
html:not([data-theme="dark"]) .btn-pe-new:hover,
html:not([data-theme="dark"]) .btn-pe-open:hover {
    background: var(--pe-icl-primary-hover) !important;
    border-color: var(--pe-icl-primary-hover) !important;
}

/* Semântica AGHU — cores por função hospitalar (prevalece sobre o tema iClinic nos botões operacionais) */
html:not([data-theme="dark"]) .btn-pe-save,
html:not([data-theme="dark"]) .btn-success {
    background: var(--pe-aghu-btn-save) !important;
    border-color: var(--pe-aghu-btn-save) !important;
    color: #fff !important;
}
html:not([data-theme="dark"]) .btn-pe-save:hover,
html:not([data-theme="dark"]) .btn-pe-save:focus,
html:not([data-theme="dark"]) .btn-success:hover,
html:not([data-theme="dark"]) .btn-success:focus {
    background: var(--pe-aghu-btn-save-hover) !important;
    border-color: var(--pe-aghu-btn-save-hover) !important;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-save-focus) !important;
    color: #fff !important;
}

html:not([data-theme="dark"]) .btn-pe-new,
html:not([data-theme="dark"]) .btn-pe-open,
html:not([data-theme="dark"]) .btn-primary {
    background: var(--pe-aghu-btn-new) !important;
    border-color: var(--pe-aghu-btn-new) !important;
    color: #fff !important;
}
html:not([data-theme="dark"]) .btn-pe-new:hover,
html:not([data-theme="dark"]) .btn-pe-new:focus,
html:not([data-theme="dark"]) .btn-pe-open:hover,
html:not([data-theme="dark"]) .btn-pe-open:focus,
html:not([data-theme="dark"]) .btn-primary:hover,
html:not([data-theme="dark"]) .btn-primary:focus {
    background: var(--pe-aghu-btn-new-hover) !important;
    border-color: var(--pe-aghu-btn-new-hover) !important;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-new-focus) !important;
    color: #fff !important;
}

html:not([data-theme="dark"]) .btn-pe-edit {
    background: var(--pe-aghu-btn-edit) !important;
    border-color: var(--pe-aghu-btn-edit) !important;
    color: #fff !important;
}
html:not([data-theme="dark"]) .btn-pe-edit:hover,
html:not([data-theme="dark"]) .btn-pe-edit:focus {
    background: var(--pe-aghu-btn-edit-hover) !important;
    border-color: var(--pe-aghu-btn-edit-hover) !important;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-edit-focus) !important;
    color: #fff !important;
}

html:not([data-theme="dark"]) .btn-pe-search {
    background: var(--pe-aghu-btn-search) !important;
    border-color: var(--pe-aghu-btn-search) !important;
    color: #fff !important;
}
html:not([data-theme="dark"]) .btn-pe-search:hover,
html:not([data-theme="dark"]) .btn-pe-search:focus {
    background: var(--pe-aghu-btn-search-hover) !important;
    border-color: var(--pe-aghu-btn-search-hover) !important;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-search-focus) !important;
    color: #fff !important;
}

html:not([data-theme="dark"]) .btn-pe-print {
    background: var(--pe-aghu-btn-print) !important;
    border-color: var(--pe-aghu-btn-print) !important;
    color: #fff !important;
}
html:not([data-theme="dark"]) .btn-pe-print:hover,
html:not([data-theme="dark"]) .btn-pe-print:focus {
    background: var(--pe-aghu-btn-print-hover) !important;
    border-color: var(--pe-aghu-btn-print-hover) !important;
    box-shadow: 0 2px 8px var(--pe-aghu-btn-print-focus) !important;
    color: #fff !important;
}

html:not([data-theme="dark"]) .btn-pe-add,
html:not([data-theme="dark"]) .btn-pe-use {
    background: var(--pe-aghu-btn-cancel-bg) !important;
    border-color: var(--pe-aghu-btn-outline-fg) !important;
    color: var(--pe-aghu-btn-outline-fg) !important;
}
html:not([data-theme="dark"]) .btn-pe-add:hover,
html:not([data-theme="dark"]) .btn-pe-add:focus,
html:not([data-theme="dark"]) .btn-pe-use:hover,
html:not([data-theme="dark"]) .btn-pe-use:focus {
    background: var(--pe-aghu-btn-outline-hover-bg) !important;
    border-color: var(--pe-aghu-btn-outline-hover-bg) !important;
    color: #fff !important;
}

html:not([data-theme="dark"]) .btn-pe-retroativa {
    background: #c8e6c9 !important;
    border-color: #81c784 !important;
    color: #14532d !important;
}
html:not([data-theme="dark"]) .btn-pe-retroativa:hover,
html:not([data-theme="dark"]) .btn-pe-retroativa:focus {
    background: #a5d6a7 !important;
    border-color: #66bb6a !important;
    color: #0b3d16 !important;
}

html:not([data-theme="dark"]) .btn-pe-cancel {
    background: var(--pe-aghu-btn-cancel-bg) !important;
    border-color: var(--pe-aghu-btn-cancel-border) !important;
    color: var(--pe-aghu-btn-cancel-text) !important;
}
html:not([data-theme="dark"]) .btn-pe-cancel:hover,
html:not([data-theme="dark"]) .btn-pe-cancel:focus {
    background: var(--pe-aghu-btn-cancel-hover-bg) !important;
    border-color: #90a4ae !important;
    color: #263238 !important;
}

html:not([data-theme="dark"]) .text-muted,
html:not([data-theme="dark"]) .small.text-muted {
    color: var(--pe-icl-muted) !important;
}

/* Correção: hero do dashboard (evita perder contraste em fundo branco) */
html:not([data-theme="dark"]) .pe-dashboard-hero .pe-dashboard-hero-bg {
    background: linear-gradient(118deg, #2f4bd9 0%, #3f5efb 45%, #5b78ff 100%) !important;
    border-bottom: 3px solid #86a3ff !important;
}

html:not([data-theme="dark"]) .pe-dashboard-hero .pe-dashboard-hero-bg,
html:not([data-theme="dark"]) .pe-dashboard-hero .pe-dashboard-hero-bg * {
    color: #ffffff !important;
}

html:not([data-theme="dark"]) .pe-dashboard-hero .pe-dashboard-version-pill {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.45) !important;
    color: #ffffff !important;
}

/* Hero ambulatorial: repor gradiente (enterprise .card-body força fundo branco) */
html:not([data-theme="dark"]) .amb-dash-hero .amb-dash-hero-inner {
    background: linear-gradient(105deg, #1e1b4b 0%, #312e81 52%, #4338ca 100%) !important;
    border-bottom: 3px solid var(--pe-accent) !important;
}

html:not([data-theme="dark"]) .amb-dash-hero .amb-dash-hero-inner,
html:not([data-theme="dark"]) .amb-dash-hero .amb-dash-hero-inner * {
    color: #ffffff !important;
}

html:not([data-theme="dark"]) .amb-dash-hero .amb-dash-hero-inner .text-white-50,
html:not([data-theme="dark"]) .amb-dash-hero .amb-dash-hero-inner .text-muted {
    color: rgba(255, 255, 255, 0.72) !important;
}

html:not([data-theme="dark"]) .amb-dash-hero .pe-dashboard-version-pill {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.45) !important;
    color: #ffffff !important;
}

/* ================================================================
   REFINO OPERACIONAL — TRIAGEM / FILA / CHAMADAS
   ================================================================ */
html:not([data-theme="dark"]) .btn-chamar-triagem,
html:not([data-theme="dark"]) .btn-chamar-lista,
html:not([data-theme="dark"]) .btn-chamar,
html:not([data-theme="dark"]) #btnChamarProximo {
    font-weight: 700;
    border-width: 1px;
}

html:not([data-theme="dark"]) .btn-chamar-triagem:focus-visible,
html:not([data-theme="dark"]) .btn-chamar-lista:focus-visible,
html:not([data-theme="dark"]) .btn-chamar:focus-visible,
html:not([data-theme="dark"]) #btnChamarProximo:focus-visible,
html:not([data-theme="dark"]) .btn-local-triagem:focus-visible,
html:not([data-theme="dark"]) .btn-local-lista:focus-visible,
html:not([data-theme="dark"]) .btn-local-rapido:focus-visible {
    outline: 3px solid rgba(75, 105, 255, 0.35);
    outline-offset: 2px;
}

html:not([data-theme="dark"]) .pe-input-local-chamada,
html:not([data-theme="dark"]) .pe-input-local-chamada-lg {
    background: #ffffff !important;
    border-color: #b9c8eb !important;
    color: #112343 !important;
    letter-spacing: 0.02em;
}

html:not([data-theme="dark"]) .pe-input-local-chamada::placeholder,
html:not([data-theme="dark"]) .pe-input-local-chamada-lg::placeholder {
    color: #5e74a1;
}

html:not([data-theme="dark"]) .triagem-form-manchester .risco-label {
    border: 2px solid rgba(255, 255, 255, 0.42) !important;
    min-height: 106px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

html:not([data-theme="dark"]) #alertasManchesterInteligente {
    color: #5a3800 !important;
    border-color: #f3c969 !important;
    background: #fff7e2 !important;
}

html:not([data-theme="dark"]) .badge-nao-ident {
    background: #fff3cd;
    color: #6a4700;
    border: 1px solid #ffd66d;
}

[data-theme="dark"] .pe-input-local-chamada,
[data-theme="dark"] .pe-input-local-chamada-lg {
    background: #121a29 !important;
    border-color: rgba(255, 255, 255, 0.2) !important;
    color: #eaf0fb !important;
}

[data-theme="dark"] .pe-input-local-chamada::placeholder,
[data-theme="dark"] .pe-input-local-chamada-lg::placeholder {
    color: #96abcf;
}

[data-theme="dark"] .btn-chamar-triagem,
[data-theme="dark"] .btn-chamar-lista,
[data-theme="dark"] .btn-chamar,
[data-theme="dark"] #btnChamarProximo {
    border-color: rgba(255, 255, 255, 0.24) !important;
}

[data-theme="dark"] .btn-chamar-triagem:focus-visible,
[data-theme="dark"] .btn-chamar-lista:focus-visible,
[data-theme="dark"] .btn-chamar:focus-visible,
[data-theme="dark"] #btnChamarProximo:focus-visible {
    outline: 3px solid rgba(129, 140, 248, 0.45);
    outline-offset: 2px;
}

/* Agendamentos - janelas separadas (agenda profissional / agendar pacientes) */
.pe-agenda-prof-page .pe-form-section,
.pe-agenda-pac-page .pe-form-section {
    overflow-x: clip;
}

.pe-agenda-prof-page .table,
.pe-agenda-pac-page .table {
    min-width: 860px;
}

.pe-agenda-prof-page .pe-agenda-acoes-cell {
    min-width: 360px;
}

.pe-agenda-prof-page .pe-agenda-acoes-grid {
    display: grid;
    grid-template-columns: 110px 110px 84px minmax(160px, 1fr) auto;
    gap: 6px;
    align-items: center;
}

.pe-agenda-prof-page .pe-agenda-time,
.pe-agenda-prof-page .pe-agenda-intervalo {
    min-width: 84px;
}

.pe-agenda-prof-page .pe-agenda-obs {
    min-width: 150px;
}

.pe-agenda-prof-page .pe-agenda-btn {
    white-space: nowrap;
}

.pe-agenda-pac-page .pe-agenda-btn-lg {
    min-width: 280px;
}

.pe-agenda-pac-page .pe-agenda-pac-filtros .form-label,
.pe-agenda-pac-page .pe-agenda-pac-form .form-label {
    white-space: nowrap;
}

.pe-agenda-pac-page .pe-agenda-pac-form .form-select,
.pe-agenda-pac-page .pe-agenda-pac-form .form-control {
    width: 100%;
    max-width: 100%;
}

.pe-agenda-pac-page .pe-agenda-pac-submit {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

@media (max-width: 991.98px) {
    .pe-agenda-prof-page .pe-agenda-acoes-grid {
        grid-template-columns: 1fr 1fr;
    }
    .pe-agenda-prof-page .pe-agenda-btn,
    .pe-agenda-pac-page .pe-agenda-btn-lg {
        width: 100%;
    }
    .pe-agenda-pac-page .pe-agenda-pac-filtros .form-label,
    .pe-agenda-pac-page .pe-agenda-pac-form .form-label {
        white-space: normal;
    }
}

/* Pesquisa paciente — select profissional na mesma linha que o botão da fila ambulatorial */
.pe-select-medico-designado {
    min-width: 12rem;
    max-width: 18rem;
}

.pe-especialidades-med-scroll {
    max-height: 280px;
    overflow-y: auto;
}

/*
 * Modo noturno — hover em .table-hover (última palavra na cascata):
 * Bootstrap 5 usa box-shadow inset 9999px + --bs-table-bg-state; a regra
 * enterprise #edf3fa !important e --bs-table-hover-* claros deixam a linha
 * «branca» com texto claro (ex.: relatório de pacientes, relatórios gerais).
 * UPAS e rede especializada (.pe-main-inner / .pe-esp-main-inner).
 */
html[data-theme="dark"] .table.table-hover > tbody > tr:hover > *,
html[data-theme="dark"] .pe-main-inner .table.table-hover > tbody > tr:hover > *,
html[data-theme="dark"] .pe-esp-main-inner .table.table-hover > tbody > tr:hover > * {
    --bs-table-color-state: var(--pe-text) !important;
    --bs-table-hover-color: var(--pe-text) !important;
    --bs-table-bg-state: rgba(56, 130, 195, 0.26) !important;
    --bs-table-hover-bg: rgba(56, 130, 195, 0.26) !important;
    background-color: var(--pe-card) !important;
    box-shadow: inset 0 0 0 9999px rgba(56, 130, 195, 0.22) !important;
    color: var(--pe-text) !important;
}

html[data-theme="dark"] .table.table-hover > tbody > tr:hover > * .text-muted,
html[data-theme="dark"] .table.table-hover > tbody > tr:hover > * .small.text-muted,
html[data-theme="dark"] .pe-main-inner .table.table-hover > tbody > tr:hover > * .text-muted,
html[data-theme="dark"] .pe-main-inner .table.table-hover > tbody > tr:hover > * .small.text-muted,
html[data-theme="dark"] .pe-esp-main-inner .table.table-hover > tbody > tr:hover > * .text-muted,
html[data-theme="dark"] .pe-esp-main-inner .table.table-hover > tbody > tr:hover > * .small.text-muted {
    color: var(--pe-text-muted) !important;
}

html[data-theme="dark"] .table.table-hover > tbody > tr:hover > * strong,
html[data-theme="dark"] .pe-main-inner .table.table-hover > tbody > tr:hover > * strong,
html[data-theme="dark"] .pe-esp-main-inner .table.table-hover > tbody > tr:hover > * strong {
    color: var(--pe-text) !important;
}

/* ================================================================
   Dashboard UPAS — operação em tempo real
   ================================================================ */
.pe-dash-quick-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.5rem;
}

@media (min-width: 480px) {
    .pe-dash-quick-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 768px) {
    .pe-dash-quick-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .pe-dash-quick-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    .pe-dash-quick-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

.pe-dash-quick-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.45rem 0.55rem;
    border: 1px solid var(--pe-border-light);
    border-radius: var(--pe-radius-sm, 8px);
    background: var(--pe-card);
    text-decoration: none;
    color: inherit;
    min-width: 0;
    box-shadow: var(--pe-shadow-sm);
    transition: border-color var(--pe-transition), box-shadow var(--pe-transition), transform var(--pe-transition);
}

.pe-dash-quick-item .amb-dash-q-icon {
    width: 34px;
    height: 34px;
    min-width: 34px;
    border-radius: 8px;
    font-size: 1rem;
}

.pe-dash-quick-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.2;
}

.pe-dash-quick-title {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--pe-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pe-dash-quick-desc {
    font-size: 0.6875rem;
    color: var(--pe-text-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pe-dash-queue-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0.65rem;
}

@media (min-width: 768px) {
    .pe-dash-queue-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

.pe-dash-queue-card {
    border-left-width: 4px;
    transition: box-shadow 0.25s ease, transform 0.2s ease;
}

.pe-dash-queue-card:hover {
    transform: translateY(-1px);
}

.pe-dash-queue-icon {
    width: 2rem;
    height: 2rem;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.05rem;
}

.pe-dash-queue-label {
    font-size: 0.72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--pe-text-muted);
    line-height: 1.25;
}

.pe-dash-queue-value {
    font-size: clamp(1.75rem, 3vw + 0.5rem, 2.5rem);
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.02em;
}

.pe-dash-queue--neutral {
    background: rgba(46, 125, 50, 0.06);
    border-left-color: #81c784 !important;
}

.pe-dash-queue--neutral .pe-dash-queue-value {
    color: #558b2f;
}

.pe-dash-queue--neutral .pe-dash-queue-icon {
    background: rgba(46, 125, 50, 0.12);
    color: #2e7d32;
}

.pe-dash-queue--attention {
    background: rgba(255, 193, 7, 0.14);
    border-left-color: #ffb300 !important;
}

.pe-dash-queue--attention .pe-dash-queue-value {
    color: #e65100;
}

.pe-dash-queue--attention .pe-dash-queue-icon {
    background: rgba(255, 152, 0, 0.18);
    color: #ef6c00;
}

.pe-dash-queue--critical {
    background: rgba(198, 40, 40, 0.1);
    border-left-color: #c62828 !important;
    animation: pe-dash-queue-pulse 2.2s ease-in-out infinite;
}

.pe-dash-queue--critical .pe-dash-queue-value {
    color: #b71c1c;
    font-size: clamp(1.9rem, 3.5vw + 0.5rem, 2.75rem);
}

.pe-dash-queue--critical .pe-dash-queue-icon {
    background: rgba(198, 40, 40, 0.16);
    color: #c62828;
}

@keyframes pe-dash-queue-pulse {
    0%, 100% {
        box-shadow: var(--pe-shadow-sm), 0 0 0 0 rgba(198, 40, 40, 0);
    }
    50% {
        box-shadow: var(--pe-shadow-sm), 0 0 0 3px rgba(198, 40, 40, 0.18);
    }
}

.pe-dash-sla-empty {
    color: var(--pe-text-muted);
    opacity: 0.55;
    font-style: italic;
    font-size: 0.8125rem;
}

[data-theme="dark"] .pe-dash-queue--neutral {
    background: rgba(46, 125, 50, 0.14);
}

[data-theme="dark"] .pe-dash-queue--neutral .pe-dash-queue-value {
    color: #a5d6a7;
}

[data-theme="dark"] .pe-dash-queue--attention {
    background: rgba(255, 193, 7, 0.12);
}

[data-theme="dark"] .pe-dash-queue--attention .pe-dash-queue-value {
    color: #ffb74d;
}

[data-theme="dark"] .pe-dash-queue--critical {
    background: rgba(198, 40, 40, 0.18);
}

[data-theme="dark"] .pe-dash-queue--critical .pe-dash-queue-value {
    color: #ef9a9a;
}

[data-theme="dark"] .pe-dash-sla-empty {
    opacity: 0.45;
}

/* LEDI / credenciais API PEC — rótulos e valores em texto normal (não MAIÚSCULAS) */
.pe-ledi-api-credenciais .form-label,
.pe-ledi-api-credenciais label,
label.pe-form-label-case,
.pe-form-section .form-label.pe-form-label-case,
html:not([data-theme="dark"]) .pe-form-section .form-label.pe-form-label-case,
[data-theme="dark"] .form-label.pe-form-label-case {
    text-transform: none !important;
    letter-spacing: normal !important;
}

.pe-ledi-api-credenciais .form-control,
.pe-form-control-case,
.pe-form-section .form-control.pe-form-control-case {
    text-transform: none !important;
}

/* Cadastro de paciente: obrigatórios (vermelho claro) vs opcionais (azul claro) */
.pe-campo-legenda-obrigatorio,
.pe-campo-legenda-opcional {
    display: inline-block;
    padding: 0.05rem 0.4rem;
    border-radius: 0.25rem;
    font-size: 0.85em;
}
.pe-campo-legenda-obrigatorio {
    background-color: #fff1f1;
    border: 1px solid #e8a8a8;
}
.pe-campo-legenda-opcional {
    background-color: #f0f7ff;
    border: 1px solid #b8d4f0;
}
/* !important: temas enterprise/ICL definem .form-control com fundo branco forçado */
#formPacienteSocial .form-control.pe-campo-obrigatorio,
#formPacienteSocial .form-select.pe-campo-obrigatorio {
    background-color: #fff1f1 !important;
    border-color: #e8a8a8 !important;
}
#formPacienteSocial .form-control.pe-campo-obrigatorio:focus,
#formPacienteSocial .form-select.pe-campo-obrigatorio:focus {
    background-color: #ffecec !important;
    border-color: #d07070 !important;
    box-shadow: 0 0 0 3px rgba(200, 80, 80, 0.14) !important;
}
#formPacienteSocial .form-control.pe-campo-opcional,
#formPacienteSocial .form-select.pe-campo-opcional {
    background-color: #f0f7ff !important;
    border-color: #b8d4f0 !important;
}
#formPacienteSocial .form-control.pe-campo-opcional:focus,
#formPacienteSocial .form-select.pe-campo-opcional:focus {
    background-color: #e8f2fc !important;
    border-color: #7eb0e0 !important;
    box-shadow: 0 0 0 3px rgba(30, 87, 153, 0.12) !important;
}
#formPacienteSocial .form-control.pe-campo-obrigatorio:disabled,
#formPacienteSocial .form-control.pe-campo-opcional:disabled,
#formPacienteSocial .form-control.pe-campo-obrigatorio[readonly],
#formPacienteSocial .form-control.pe-campo-opcional[readonly] {
    background-color: #f0f2f5 !important;
    border-color: var(--pe-border) !important;
}
[data-theme="dark"] #formPacienteSocial .form-control.pe-campo-obrigatorio,
[data-theme="dark"] #formPacienteSocial .form-select.pe-campo-obrigatorio {
    background-color: #3a2224 !important;
    border-color: #8a4a4a !important;
    color: var(--pe-text) !important;
}
[data-theme="dark"] #formPacienteSocial .form-control.pe-campo-opcional,
[data-theme="dark"] #formPacienteSocial .form-select.pe-campo-opcional {
    background-color: #1e2a38 !important;
    border-color: #3d5a7a !important;
    color: var(--pe-text) !important;
}

/* Permissões em cascata (estilo SIEP) */
.pe-perm-cascata .pe-perm-grupo {
    background: #fafbfd;
    border-color: var(--pe-border) !important;
}
.pe-perm-cascata .pe-perm-grupo-legend {
    font-size: 0.95rem;
    background: #fff;
}
.pe-perm-cascata .pe-perm-filhos {
    border-top: 1px dashed #d5deea;
    margin-top: 0.35rem;
    padding-top: 0.65rem !important;
}
.pe-perm-cascata .pe-perm-pai:indeterminate {
    background-color: var(--pe-navy-light, #1e5799);
    border-color: var(--pe-navy-light, #1e5799);
    opacity: 0.75;
}
.pe-perm-cascata[data-pe-perm-disabled="1"] {
    opacity: 0.72;
}
[data-theme="dark"] .pe-perm-cascata .pe-perm-grupo {
    background: #1a2330;
}
[data-theme="dark"] .pe-perm-cascata .pe-perm-grupo-legend {
    background: #15202b;
}
[data-theme="dark"] .pe-perm-cascata .pe-perm-filhos {
    border-top-color: #2a3a4d;
}

/* RAAS � dropdowns SIGTAP / profissional */
.pe-raas-acoes-wrap .pe-raas-ac-cell { min-width: 10rem; }
.raas-ac-drop {
    position: absolute;
    z-index: 1080;
    left: 0;
    right: 0;
    max-height: 220px;
    overflow-y: auto;
    margin-top: 2px;
    box-shadow: 0 0.35rem 0.75rem rgba(0,0,0,.12);
}
.raas-ac-drop .list-group-item { font-size: 0.8125rem; }
html[data-theme="dark"] .raas-ac-drop {
    background: var(--pe-card, #1a2330);
    border-color: #2a3a4d;
}

/* Triagem CAPS — tarja de título por secção */
.pe-triagem-caps-sec-titulo,
.pe-form-section > .pe-triagem-caps-sec-titulo {
    display: block;
    width: 100%;
    margin: 0 0 1rem;
    padding: 0.65rem 1rem;
    text-align: center;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #0b3d66;
    background: #cfe8f7;
    border: 1px solid #a8d4eb;
    border-radius: 0.35rem;
    border-bottom: 1px solid #a8d4eb;
}
.pe-triagem-caps-sec-titulo::before {
    display: none !important;
}
[data-theme="dark"] .pe-triagem-caps-sec-titulo,
[data-theme="dark"] .pe-form-section > .pe-triagem-caps-sec-titulo {
    color: #d6eefb;
    background: #1a3a52;
    border-color: #2a5470;
}

/* Internos — submenu na sidebar da especializada */
.pe-esp-nav-group {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}
.pe-esp-nav-sub {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    margin: 0.15rem 0 0.35rem 0.55rem;
    padding-left: 0.55rem;
    border-left: 2px solid rgba(13, 110, 253, 0.28);
}
.pe-esp-nav-link-sub {
    font-size: 0.78rem !important;
    padding-top: 0.28rem !important;
    padding-bottom: 0.28rem !important;
}
.pe-esp-nav-link-sub span {
    white-space: normal;
    line-height: 1.25;
}
[data-theme="dark"] .pe-esp-nav-sub {
    border-left-color: rgba(110, 168, 254, 0.35);
}

/* Apoio à Decisão Clínica (CDS) — só regras */
.pe-cds-painel {
    margin-bottom: 1rem;
    padding: 0.85rem 1rem;
    border-radius: 0.5rem;
    border: 1px solid rgba(13, 110, 253, 0.22);
    background: linear-gradient(180deg, rgba(13, 110, 253, 0.06), rgba(255, 255, 255, 0.55));
}
.pe-cds-painel--compacto {
    padding: 0.7rem 0.85rem;
}
.pe-cds-titulo {
    color: var(--pe-navy, #0b3a5b);
    font-weight: 650;
}
.pe-cds-disclaimer {
    color: #5c6b7a;
    max-width: 52rem;
}
.pe-cds-lista {
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}
.pe-cds-item {
    padding: 0.65rem 0.75rem;
    border-radius: 0.4rem;
    border: 1px solid rgba(0, 0, 0, 0.08);
    background: #fff;
}
.pe-cds-critico {
    border-left: 4px solid #b02a37;
    background: #fff5f5;
}
.pe-cds-atencao {
    border-left: 4px solid #c77700;
    background: #fff9ef;
}
.pe-cds-lembrete {
    border-left: 4px solid #0d6efd;
    background: #f5f9ff;
}
.pe-cds-sev-badge {
    font-size: 0.7rem;
    vertical-align: middle;
}
.pe-cds-critico .pe-cds-sev-badge {
    background: #b02a37;
    color: #fff;
}
.pe-cds-atencao .pe-cds-sev-badge {
    background: #c77700;
    color: #fff;
}
.pe-cds-lembrete .pe-cds-sev-badge {
    background: #0d6efd;
    color: #fff;
}
.pe-cds-evo-texto {
    white-space: pre-wrap;
}
[data-theme="dark"] .pe-cds-painel {
    background: rgba(30, 48, 70, 0.55);
    border-color: rgba(110, 168, 254, 0.28);
}
[data-theme="dark"] .pe-cds-item {
    background: rgba(18, 28, 42, 0.9);
    border-color: rgba(255, 255, 255, 0.08);
}
[data-theme="dark"] .pe-cds-disclaimer,
[data-theme="dark"] .pe-cds-titulo {
    color: #d7e3f0;
}

/* —— Sistemas externos e-SUS: vista embutida (só histórico) —— */
.pe-body-embed {
    margin: 0;
    min-height: 100vh;
    background: linear-gradient(180deg, #f0f5fa 0%, #e8eef5 40%, #f7f9fc 100%);
}
.pe-embed-bar {
    background: var(--pe-navy, #0b3d5c);
    color: #fff;
    border-bottom: 3px solid var(--pe-teal, #0d9488);
}
.pe-embed-bar-inner {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.5rem 1rem;
    padding: 0.65rem 1rem;
}
.pe-embed-brand {
    font-weight: 700;
    letter-spacing: 0.02em;
}
.pe-embed-title {
    font-weight: 600;
    font-size: 0.95rem;
}
.pe-embed-meta {
    margin-left: auto;
    color: rgba(255, 255, 255, 0.75) !important;
}
.pe-embed-main {
    max-width: 1100px;
    margin: 0 auto;
}
.pe-embed-ident {
    background: #fff;
    border: 1px solid rgba(11, 61, 92, 0.12);
    border-radius: 0.5rem;
    padding: 0.85rem 1rem;
    margin-bottom: 1rem;
}
.pe-embed-ident-nome {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--pe-navy, #0b3d5c);
    margin: 0 0 0.25rem;
}
.pe-embed-clinico-bloco {
    border-left: 3px solid var(--pe-teal, #0d9488);
    padding-left: 0.75rem;
    margin-bottom: 1.25rem;
}

