/**
 * Tema escuro ISPM — editorial, profissional e moderno
 * Activado com: <html data-theme="dark">
 *
 * Direcção: grafite/aubergine equilibrado, com o vinho da marca (#8e1a4d)
 * e lilás como acentos discretos — nunca preto puro, nunca roxo saturado.
 * Paleta construída com uma escala de elevação consistente e contraste AA.
 */

[data-theme="dark"] {
    color-scheme: dark;

    /* ── Escala de elevação — grafite editorial (profissional) ── */
    --dm-bg: #0f0e12;
    --dm-bg-soft: #141318;
    --dm-surface: #1a1820;
    --dm-elevated: #211f28;
    --dm-elevated-2: #2a2732;
    --dm-elevated-3: #342f3c;

    /* ── Tipografia — contraste AA, neutros quentes suaves ────── */
    --dm-text: #f2eef5;
    --dm-text-secondary: #c9c2d0;
    --dm-text-muted: #948c9c;
    --dm-placeholder: #6f6878;

    /* ── Linhas & ênfase ──────────────────────────────────────── */
    --dm-border: rgba(242, 238, 245, 0.09);
    --dm-border-strong: rgba(242, 238, 245, 0.16);
    --dm-divider: rgba(242, 238, 245, 0.1);

    /* ── Marca (vinho institucional, legível em fundo escuro) ─── */
    --dm-wine: #c45d84;
    --dm-wine-deep: #8e1a4d;
    --dm-wine-bright: #e08aaa;
    --dm-lilac: #c2b0e0;
    --dm-lilac-soft: #a08fc8;
    --dm-focus: rgba(196, 93, 132, 0.38);

    /* ── Inputs ─────────────────────────────────────────────────*/
    --dm-input: #15131a;
    --dm-input-hover: #1e1b24;
    --dm-input-border: rgba(242, 238, 245, 0.13);

    /* ── Sombras ────────────────────────────────────────────────*/
    --dm-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.28);
    --dm-shadow: 0 2px 10px rgba(0, 0, 0, 0.32), 0 10px 28px rgba(0, 0, 0, 0.24);
    --dm-shadow-lg: 0 6px 20px rgba(0, 0, 0, 0.36), 0 24px 56px rgba(0, 0, 0, 0.32);

    /* ── Estados semânticos ─────────────────────────────────────*/
    --dm-success: #7fd8a8;
    --dm-success-bg: rgba(63, 168, 111, 0.14);
    --dm-success-border: rgba(127, 216, 168, 0.22);
    --dm-info: #8fc0ee;
    --dm-info-bg: rgba(80, 140, 210, 0.14);
    --dm-info-border: rgba(143, 192, 238, 0.22);
    --dm-warning: #e8c979;
    --dm-warning-bg: rgba(200, 155, 60, 0.14);
    --dm-warning-border: rgba(232, 201, 121, 0.22);
    --dm-danger: #ec9aab;
    --dm-danger-bg: rgba(190, 70, 95, 0.15);
    --dm-danger-border: rgba(236, 154, 171, 0.24);

    /* ── Compatibilidade com tokens do portal / páginas ─────────*/
    --primary-color: var(--dm-wine);
    --secondary-color: var(--dm-lilac-soft);
    --border-color: var(--dm-border);
    --text-light: var(--dm-text);
    --text-dark: var(--dm-text);
    --ispm-wine: var(--dm-wine);
    --ispm-wine-dark: #6b143a;
    --ispm-purple: var(--dm-lilac-soft);
    --ispm-border: var(--dm-border);
    --ispm-bg-soft: var(--dm-elevated);
    --ispm-bg: var(--dm-bg-soft);
    --wine: var(--dm-wine);
    --wine-dark: #6b143a;
    --wine-deep: #3a0f22;
    --wine-light: var(--dm-wine-bright);
    --wine-soft: rgba(142, 26, 77, 0.16);
    --purple: var(--dm-lilac-soft);
    --purple-mid: #7a68a8;
    --plum: #241d2c;
    --plum-mid: #453a5c;
    --cream: var(--dm-bg-soft);
    --surface: var(--dm-surface);
    --text: var(--dm-text);
    --text-main: var(--dm-text);
    --text-muted: var(--dm-text-muted);
    --border: var(--dm-border);
    --glass: rgba(26, 24, 32, 0.88);
    --card-shadow: var(--dm-shadow);
    --card-shadow-hover: var(--dm-shadow-lg);
}

/* ═══════════════════════════════════════════
   Fundo & tipografia base
   ═══════════════════════════════════════════ */
[data-theme="dark"] body {
    background:
        radial-gradient(1100px 560px at 6% -10%, rgba(142, 26, 77, 0.1), transparent 55%),
        radial-gradient(800px 460px at 100% 0%, rgba(94, 53, 177, 0.08), transparent 50%),
        linear-gradient(180deg, var(--dm-bg) 0%, var(--dm-bg-soft) 100%) !important;
    color: var(--dm-text);
}

[data-theme="dark"] .main-content,
[data-theme="dark"] .content-wrapper {
    background: transparent;
    color: var(--dm-text);
}

[data-theme="dark"] .card-title,
[data-theme="dark"] .page-title,
[data-theme="dark"] h1,
[data-theme="dark"] h2,
[data-theme="dark"] h3,
[data-theme="dark"] h4,
[data-theme="dark"] h5,
[data-theme="dark"] h6 {
    color: var(--dm-text) !important;
}

[data-theme="dark"] .page-title {
    color: var(--dm-wine-bright) !important;
    letter-spacing: -0.01em;
}

[data-theme="dark"] .text-muted,
[data-theme="dark"] .text-secondary,
[data-theme="dark"] .form-text,
[data-theme="dark"] small {
    color: var(--dm-text-muted) !important;
}

[data-theme="dark"] p,
[data-theme="dark"] li,
[data-theme="dark"] span {
    color: inherit;
}

/* ═══════════════════════════════════════════
   Cards / painéis / modais
   ═══════════════════════════════════════════ */
[data-theme="dark"] .card,
[data-theme="dark"] .custom-table-card,
[data-theme="dark"] .painel-card,
[data-theme="dark"] .tfc-card,
[data-theme="dark"] .event-card,
[data-theme="dark"] .stat-tile,
[data-theme="dark"] .profile-card,
[data-theme="dark"] .cad-card,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .offcanvas {
    background: var(--dm-surface) !important;
    color: var(--dm-text) !important;
    border: 1px solid var(--dm-border) !important;
    box-shadow: var(--dm-shadow) !important;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

[data-theme="dark"] .card:hover {
    border-color: var(--dm-border-strong) !important;
    box-shadow: var(--dm-shadow-lg) !important;
}

[data-theme="dark"] .card-header,
[data-theme="dark"] .card-footer,
[data-theme="dark"] .modal-header,
[data-theme="dark"] .modal-footer {
    background: var(--dm-elevated) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .modal-backdrop.show {
    opacity: 0.75;
    background-color: #0a090c;
}

/* ═══════════════════════════════════════════
   Tabelas
   ═══════════════════════════════════════════ */
[data-theme="dark"] .table {
    --bs-table-bg: transparent;
    --bs-table-color: var(--dm-text);
    --bs-table-border-color: var(--dm-border);
    --bs-table-striped-bg: rgba(255, 255, 255, 0.02);
    --bs-table-hover-bg: rgba(184, 85, 122, 0.08);
    color: var(--dm-text) !important;
    background-color: transparent !important;
}

[data-theme="dark"] .table thead th,
[data-theme="dark"] .table > thead {
    background: var(--dm-elevated) !important;
    color: var(--dm-text-muted) !important;
    font-weight: 600;
    letter-spacing: 0.01em;
    border-bottom: 1px solid var(--dm-divider) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .table td,
[data-theme="dark"] .table th,
[data-theme="dark"] .table > :not(caption) > * > * {
    border-color: var(--dm-border) !important;
    color: var(--dm-text-secondary);
    background-color: transparent;
}

[data-theme="dark"] .table-striped > tbody > tr:nth-of-type(odd) > * {
    --bs-table-bg-type: rgba(255, 255, 255, 0.02);
    color: var(--dm-text-secondary);
}

[data-theme="dark"] .table-hover > tbody > tr:hover > * {
    --bs-table-bg-state: rgba(184, 85, 122, 0.08);
    color: var(--dm-text);
}

[data-theme="dark"] .custom-table-card .table thead th {
    background: var(--dm-elevated) !important;
    color: var(--dm-wine-bright) !important;
}

/* ═══════════════════════════════════════════
   Formulários
   ═══════════════════════════════════════════ */
[data-theme="dark"] .form-control,
[data-theme="dark"] .form-select,
[data-theme="dark"] input[type="text"],
[data-theme="dark"] input[type="email"],
[data-theme="dark"] input[type="password"],
[data-theme="dark"] input[type="number"],
[data-theme="dark"] input[type="date"],
[data-theme="dark"] input[type="datetime-local"],
[data-theme="dark"] input[type="search"],
[data-theme="dark"] input[type="tel"],
[data-theme="dark"] input[type="url"],
[data-theme="dark"] input[type="file"],
[data-theme="dark"] textarea,
[data-theme="dark"] select {
    background-color: var(--dm-input) !important;
    color: var(--dm-text) !important;
    border: 1px solid var(--dm-input-border) !important;
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.18);
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

[data-theme="dark"] .form-control:hover,
[data-theme="dark"] .form-select:hover,
[data-theme="dark"] input:hover,
[data-theme="dark"] textarea:hover,
[data-theme="dark"] select:hover {
    background-color: var(--dm-input-hover) !important;
    border-color: var(--dm-border-strong) !important;
}

[data-theme="dark"] .form-control:focus,
[data-theme="dark"] .form-select:focus,
[data-theme="dark"] input:focus,
[data-theme="dark"] textarea:focus,
[data-theme="dark"] select:focus {
    background-color: var(--dm-input-hover) !important;
    border-color: var(--dm-wine) !important;
    color: var(--dm-text) !important;
    box-shadow: 0 0 0 3px var(--dm-focus) !important;
}

[data-theme="dark"] .form-control::placeholder,
[data-theme="dark"] input::placeholder,
[data-theme="dark"] textarea::placeholder {
    color: var(--dm-placeholder) !important;
    opacity: 1;
}

[data-theme="dark"] .form-label,
[data-theme="dark"] label {
    color: var(--dm-text-secondary);
    font-weight: 600;
}

[data-theme="dark"] .form-check-input {
    background-color: var(--dm-elevated);
    border-color: var(--dm-input-border);
}

[data-theme="dark"] .form-check-input:checked {
    background-color: var(--dm-wine-deep);
    border-color: var(--dm-wine);
}

[data-theme="dark"] .input-group-text {
    background-color: var(--dm-elevated) !important;
    color: var(--dm-text-muted) !important;
    border-color: var(--dm-input-border) !important;
}

[data-theme="dark"] .campo-institucional-bloqueado {
    background-color: var(--dm-bg-soft) !important;
    color: var(--dm-text-muted) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .institucional-help {
    color: var(--dm-text-muted) !important;
}

/* ═══════════════════════════════════════════
   Botões
   ═══════════════════════════════════════════ */
[data-theme="dark"] .btn-light,
[data-theme="dark"] .btn-outline-secondary,
[data-theme="dark"] .btn-outline-dark {
    background-color: var(--dm-elevated) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border-strong) !important;
    transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

[data-theme="dark"] .btn-outline-secondary:hover,
[data-theme="dark"] .btn-light:hover {
    background-color: var(--dm-elevated-2) !important;
    color: #fff !important;
    border-color: var(--dm-wine) !important;
}

[data-theme="dark"] .btn-outline-primary {
    color: var(--dm-lilac) !important;
    border-color: rgba(185, 163, 221, 0.4) !important;
}

[data-theme="dark"] .btn-outline-primary:hover {
    background-color: rgba(142, 26, 77, 0.2) !important;
    color: #fff !important;
    border-color: var(--dm-wine) !important;
}

[data-theme="dark"] .btn-primary {
    background: linear-gradient(135deg, #9c2358, #6b143a) !important;
    border-color: transparent !important;
    color: #fff !important;
    box-shadow: 0 2px 10px rgba(142, 26, 77, 0.28);
}

[data-theme="dark"] .btn-primary:hover {
    background: linear-gradient(135deg, #b02c65, #8e1a4d) !important;
    color: #fff !important;
    box-shadow: 0 4px 16px rgba(142, 26, 77, 0.36);
}

[data-theme="dark"] .btn-ispm,
[data-theme="dark"] .btn[style*="background-color: var(--ispm-wine)"],
[data-theme="dark"] .btn[style*="background: var(--ispm-wine)"] {
    box-shadow: 0 2px 12px rgba(142, 26, 77, 0.3);
}

[data-theme="dark"] .btn-close {
    filter: invert(1) grayscale(1) brightness(1.5);
    opacity: 0.65;
}

[data-theme="dark"] .btn-close:hover {
    opacity: 1;
}

/* ═══════════════════════════════════════════
   Alertas
   ═══════════════════════════════════════════ */
[data-theme="dark"] .alert {
    border-width: 1px;
    border-style: solid;
    backdrop-filter: blur(6px);
}

[data-theme="dark"] .alert-info {
    background: var(--dm-info-bg);
    border-color: var(--dm-info-border);
    color: var(--dm-info);
}

[data-theme="dark"] .alert-success,
[data-theme="dark"] .sucesso-explicado {
    background: var(--dm-success-bg);
    border-color: var(--dm-success-border);
    color: var(--dm-success);
}

[data-theme="dark"] .alert-warning {
    background: var(--dm-warning-bg);
    border-color: var(--dm-warning-border);
    color: var(--dm-warning);
}

[data-theme="dark"] .alert-danger,
[data-theme="dark"] .erro-explicado {
    background: var(--dm-danger-bg);
    border-color: var(--dm-danger-border);
    color: var(--dm-danger);
}

[data-theme="dark"] .mensagem-explicada-label {
    color: inherit !important;
    opacity: 0.85;
}

/* ═══════════════════════════════════════════
   Listas, dropdowns, badges
   ═══════════════════════════════════════════ */
[data-theme="dark"] .list-group-item {
    background-color: var(--dm-surface);
    color: var(--dm-text);
    border-color: var(--dm-border);
}

[data-theme="dark"] .list-group-item:hover,
[data-theme="dark"] .list-group-item.active {
    background-color: var(--dm-elevated);
    color: #fff;
}

[data-theme="dark"] .dropdown-menu {
    background-color: var(--dm-elevated);
    border: 1px solid var(--dm-border-strong);
    box-shadow: var(--dm-shadow-lg);
}

[data-theme="dark"] .dropdown-item {
    color: var(--dm-text-secondary);
}

[data-theme="dark"] .dropdown-item:hover,
[data-theme="dark"] .dropdown-item:focus {
    background-color: rgba(142, 26, 77, 0.2);
    color: #fff;
}

[data-theme="dark"] .badge.bg-light,
[data-theme="dark"] .badge.bg-white,
[data-theme="dark"] .bg-light,
[data-theme="dark"] .bg-white,
[data-theme="dark"] .bg-body,
[data-theme="dark"] .bg-body-tertiary {
    background-color: var(--dm-elevated) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .border,
[data-theme="dark"] .border-bottom,
[data-theme="dark"] .border-top,
[data-theme="dark"] .border-start,
[data-theme="dark"] .border-end {
    border-color: var(--dm-border) !important;
}

/* ═══════════════════════════════════════════
   Paginação / tabs / breadcrumb
   ═══════════════════════════════════════════ */
[data-theme="dark"] .page-link {
    background-color: var(--dm-surface);
    color: var(--dm-text-muted);
    border-color: var(--dm-border);
    transition: background-color 0.15s ease, color 0.15s ease;
}

[data-theme="dark"] .page-item.active .page-link {
    background: linear-gradient(135deg, #8e1a4d, #5e35b1);
    border-color: transparent;
    color: #fff;
}

[data-theme="dark"] .page-link:hover {
    background-color: var(--dm-elevated);
    color: var(--dm-text);
    border-color: var(--dm-border-strong);
}

[data-theme="dark"] .nav-tabs {
    border-bottom-color: var(--dm-border);
}

[data-theme="dark"] .nav-tabs .nav-link {
    color: var(--dm-text-muted);
}

[data-theme="dark"] .nav-tabs .nav-link:hover {
    border-color: var(--dm-border);
    color: var(--dm-text);
}

[data-theme="dark"] .nav-tabs .nav-link.active {
    background-color: var(--dm-surface);
    color: var(--dm-wine-bright);
    border-color: var(--dm-border) var(--dm-border) var(--dm-surface);
}

[data-theme="dark"] .breadcrumb {
    --bs-breadcrumb-divider-color: var(--dm-text-muted);
}

[data-theme="dark"] .breadcrumb-item,
[data-theme="dark"] .breadcrumb-item a {
    color: var(--dm-text-muted);
}

[data-theme="dark"] .breadcrumb-item.active {
    color: var(--dm-text);
}

[data-theme="dark"] .progress {
    background-color: var(--dm-elevated);
}

[data-theme="dark"] hr {
    border-color: var(--dm-border);
    opacity: 1;
}

/* ═══════════════════════════════════════════
   Links de conteúdo
   ═══════════════════════════════════════════ */
[data-theme="dark"] .content-wrapper a:not(.btn):not(.nav-dd-item):not(.nav-icon-btn):not(.page-link):not(.dropdown-item) {
    color: var(--dm-lilac);
    text-decoration-color: rgba(185, 163, 221, 0.4);
}

[data-theme="dark"] .content-wrapper a:not(.btn):hover {
    color: #d3c3f0;
}

/* ═══════════════════════════════════════════
   Superfícies / accordion / sombra
   ═══════════════════════════════════════════ */
[data-theme="dark"] .table-responsive,
[data-theme="dark"] .accordion-item,
[data-theme="dark"] .accordion-button {
    background-color: var(--dm-surface) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .accordion-button:not(.collapsed) {
    background-color: var(--dm-elevated) !important;
    color: var(--dm-text) !important;
    box-shadow: inset 0 -1px 0 var(--dm-border);
}

[data-theme="dark"] .accordion-button::after {
    filter: invert(0.85) sepia(0.15);
}

[data-theme="dark"] .accordion-body {
    background-color: var(--dm-bg-soft);
    color: var(--dm-text-secondary);
}

[data-theme="dark"] .shadow,
[data-theme="dark"] .shadow-sm {
    box-shadow: var(--dm-shadow-xs) !important;
}

[data-theme="dark"] .shadow-lg {
    box-shadow: var(--dm-shadow-lg) !important;
}

/* ═══════════════════════════════════════════
   Painéis TFC / dashboard (tokens locais)
   ═══════════════════════════════════════════ */
[data-theme="dark"] .painel-tfc-root,
[data-theme="dark"] .dashboard-geral-root {
    --cream: var(--dm-bg-soft);
    --surface: var(--dm-surface);
    --glass: var(--dm-glass, rgba(28, 26, 34, 0.82));
    --border: var(--dm-border);
    --text-main: var(--dm-text);
    --text-muted: var(--dm-text-muted);
    --shadow-xs: var(--dm-shadow-xs);
    --shadow-sm: var(--dm-shadow);
    --shadow-md: var(--dm-shadow-lg);
    --wine: var(--dm-wine);
    background:
        radial-gradient(1100px 560px at 10% -12%, rgba(142, 26, 77, 0.13), transparent 52%),
        radial-gradient(800px 480px at 100% 0%, rgba(94, 53, 177, 0.1), transparent 48%),
        linear-gradient(180deg, #110f15 0%, #17151d 100%) !important;
    color: var(--dm-text);
}

[data-theme="dark"] .painel-hero,
[data-theme="dark"] .stat-tile,
[data-theme="dark"] .tfc-card,
[data-theme="dark"] .event-card {
    background: var(--dm-surface) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .tfc-table th {
    color: var(--dm-text-muted) !important;
}

[data-theme="dark"] .tfc-empty {
    color: var(--dm-text-muted);
}

/* Textos escuros forçados em páginas com CSS inline */
[data-theme="dark"] .text-dark,
[data-theme="dark"] .text-black {
    color: var(--dm-text) !important;
}

[data-theme="dark"] .text-body {
    color: var(--dm-text-secondary) !important;
}

/* ═══════════════════════════════════════════
   Scrollbar (acabamento discreto)
   ═══════════════════════════════════════════ */
[data-theme="dark"] ::-webkit-scrollbar {
    width: 10px;
    height: 10px;
}

[data-theme="dark"] ::-webkit-scrollbar-track {
    background: var(--dm-bg-soft);
}

[data-theme="dark"] ::-webkit-scrollbar-thumb {
    background: var(--dm-elevated-2);
    border-radius: 6px;
    border: 2px solid var(--dm-bg-soft);
}

[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
    background: var(--dm-elevated-3);
}

/* ═══════════════════════════════════════════
   Toggle no dropdown
   ═══════════════════════════════════════════ */
#btn-toggle-theme .theme-icon-sun { display: none; }
#btn-toggle-theme .theme-icon-moon { display: inline-block; }

[data-theme="dark"] #btn-toggle-theme .theme-icon-sun { display: inline-block; }
[data-theme="dark"] #btn-toggle-theme .theme-icon-moon { display: none; }

[data-theme="dark"] #btn-toggle-theme .theme-label-to-dark { display: none; }
[data-theme="dark"] #btn-toggle-theme .theme-label-to-light { display: inline; }

#btn-toggle-theme .theme-label-to-light { display: none; }
#btn-toggle-theme .theme-label-to-dark { display: inline; }

/* ═══════════════════════════════════════════
   Listagens / painéis de página (CSS inline)
   ═══════════════════════════════════════════ */
[data-theme="dark"] .filter-card,
[data-theme="dark"] .custom-card,
[data-theme="dark"] .section-card,
[data-theme="dark"] .page-header,
[data-theme="dark"] .content-card,
[data-theme="dark"] .panel-card,
[data-theme="dark"] .info-card,
[data-theme="dark"] .detail-card,
[data-theme="dark"] .search-card,
[data-theme="dark"] .toolbar-card,
[data-theme="dark"] .fc-body,
[data-theme="dark"] .filter-panel,
[data-theme="dark"] .filter-body,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .student-data-card,
[data-theme="dark"] .notice-banner,
[data-theme="dark"] .alert-block,
[data-theme="dark"] .wrap,
[data-theme="dark"] .portal-card,
[data-theme="dark"] .access-card,
[data-theme="dark"] .login-card,
[data-theme="dark"] .auth-card,
[data-theme="dark"] .auth-box,
[data-theme="dark"] .auth-container .card,
[data-theme="dark"] .reset-card {
    background: var(--dm-surface) !important;
    background-color: var(--dm-surface) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
    box-shadow: var(--dm-shadow) !important;
}

[data-theme="dark"] .filter-card .fc-header,
[data-theme="dark"] .filter-card .fc-title,
[data-theme="dark"] .custom-card .card-header,
[data-theme="dark"] .section-card .section-title {
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .filter-card .fc-icon {
    background: rgba(142, 26, 77, 0.22) !important;
    color: var(--dm-wine-bright) !important;
}

[data-theme="dark"] .btn-white,
[data-theme="dark"] .btn-white.border,
[data-theme="dark"] a.btn-white {
    background: var(--dm-elevated) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border-strong) !important;
}

[data-theme="dark"] .btn-white:hover,
[data-theme="dark"] .btn-white.border:hover {
    background: var(--dm-elevated-2) !important;
    color: #fff !important;
    border-color: var(--dm-wine) !important;
}

[data-theme="dark"] .page-header,
[data-theme="dark"] .page-header h1,
[data-theme="dark"] .page-header h2,
[data-theme="dark"] .page-header p {
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .nav-coord,
[data-theme="dark"] .nav-pills .nav-link {
    background: var(--dm-elevated) !important;
    color: var(--dm-text-secondary) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .nav-coord.active,
[data-theme="dark"] .nav-pills .nav-link.active {
    background: linear-gradient(135deg, #8e1a4d, #5e35b1) !important;
    color: #fff !important;
}

/* Cabeçalhos de tabela claros nas listagens */
[data-theme="dark"] thead,
[data-theme="dark"] thead th,
[data-theme="dark"] .table thead,
[data-theme="dark"] .table thead th {
    background-color: var(--dm-elevated) !important;
    background: var(--dm-elevated) !important;
    color: var(--dm-text-muted) !important;
}

/* Superfícies Bootstrap / utilitários claros residuais */
[data-theme="dark"] .bg-white,
[data-theme="dark"] .bg-light,
[data-theme="dark"] .bg-body,
[data-theme="dark"] .bg-body-tertiary,
[data-theme="dark"] .bg-body-secondary,
[data-theme="dark"] .table-light,
[data-theme="dark"] .list-group-item-light {
    background-color: var(--dm-elevated) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .text-muted,
[data-theme="dark"] .text-secondary,
[data-theme="dark"] .text-body-secondary {
    color: var(--dm-text-muted) !important;
}

/* Modais de listagem / corpos com fundo claro */
[data-theme="dark"] .modal-body,
[data-theme="dark"] .modal-estudante .modal-body,
[data-theme="dark"] .modal-content,
[data-theme="dark"] .modal-custom .modal-content {
    background: var(--dm-surface) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .modal-footer,
[data-theme="dark"] .modal-header {
    background: var(--dm-elevated) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}

/* ═══════════════════════════════════════════
   Portal público
   ═══════════════════════════════════════════ */
[data-theme="dark"] .topbar {
    background: rgba(15, 14, 18, 0.92) !important;
    border-bottom: 1px solid var(--dm-border) !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.35) !important;
    backdrop-filter: blur(14px);
}

[data-theme="dark"] .topbar-marquee-item,
[data-theme="dark"] .topbar-marquee-chip {
    color: var(--dm-text-secondary) !important;
}

[data-theme="dark"] .btn-nav.ghost {
    background: transparent !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border-strong) !important;
}

[data-theme="dark"] .btn-nav.ghost:hover {
    background: var(--dm-elevated) !important;
    border-color: var(--dm-wine) !important;
}

[data-theme="dark"] footer,
[data-theme="dark"] .site-ft,
[data-theme="dark"] footer.site-ft {
    background: var(--dm-bg) !important;
    color: var(--dm-text-muted) !important;
    border-top: 1px solid var(--dm-border) !important;
}

[data-theme="dark"] .stat-card strong {
    color: var(--dm-wine-bright) !important;
}

[data-theme="dark"] .stat-card span {
    color: var(--dm-text-muted) !important;
}

[data-theme="dark"] .filter-toggle,
[data-theme="dark"] .filter-panel {
    background: var(--dm-surface) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .section-title,
[data-theme="dark"] .section-sub,
[data-theme="dark"] .section-eyebrow .eyebrow-text {
    color: var(--dm-text) !important;
}

[data-theme="dark"] .portal-card h3,
[data-theme="dark"] .portal-card p {
    color: inherit;
}

[data-theme="dark"] .access-modal {
    background: rgba(8, 7, 10, 0.78) !important;
}

[data-theme="dark"] .access-card-head {
    background: linear-gradient(135deg, #6b143a, #8e1a4d, #3d2c6e) !important;
}

[data-theme="dark"] .access-card-body {
    background: var(--dm-surface) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .access-field label {
    color: var(--dm-wine-bright) !important;
}

[data-theme="dark"] .access-help {
    color: var(--dm-text-muted) !important;
}

/* Home pública: manter hero vibrante; suavizar secções abaixo */
[data-theme="dark"] .wrap {
    background: transparent !important;
    box-shadow: none !important;
}

/* ═══════════════════════════════════════════
   Auth (login / recuperar / redefinir)
   ═══════════════════════════════════════════ */
[data-theme="dark"] .login-card,
[data-theme="dark"] .auth-card,
[data-theme="dark"] .reset-card {
    background: rgba(26, 24, 32, 0.96) !important;
    border: 1px solid var(--dm-border-strong) !important;
    box-shadow: var(--dm-shadow-lg) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .login-card .form-label,
[data-theme="dark"] .login-card h1,
[data-theme="dark"] .login-card h2,
[data-theme="dark"] .login-card h3,
[data-theme="dark"] .login-card .footer-text,
[data-theme="dark"] .login-card .forgot-password a {
    color: var(--dm-text-secondary) !important;
}

[data-theme="dark"] .login-card .input-group-text {
    background: var(--dm-elevated) !important;
    color: var(--dm-text-muted) !important;
    border-color: var(--dm-input-border) !important;
}

/* ═══════════════════════════════════════════
   Perfil / defesa / calendário / avaliação
   ═══════════════════════════════════════════ */
[data-theme="dark"] .profile-card,
[data-theme="dark"] .profile-header,
[data-theme="dark"] .profile-section,
[data-theme="dark"] .cad-card,
[data-theme="dark"] .defesa-card,
[data-theme="dark"] .cronograma-card,
[data-theme="dark"] .avaliacao-card,
[data-theme="dark"] .chat-panel,
[data-theme="dark"] .chat-sidebar,
[data-theme="dark"] .chat-main,
[data-theme="dark"] .message-bubble,
[data-theme="dark"] .empty-state,
[data-theme="dark"] .placeholder-card {
    background: var(--dm-surface) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}

[data-theme="dark"] .main-content,
[data-theme="dark"] .content-wrapper {
    background: transparent !important;
}

/* Painéis dashboard com #fff residual */
[data-theme="dark"] .painel-tfc-root .tfc-card,
[data-theme="dark"] .dashboard-geral-root .stat-card,
[data-theme="dark"] .dashboard-geral-root .card,
[data-theme="dark"] .painel-tfc-root [style*="background: #fff"],
[data-theme="dark"] .painel-tfc-root [style*="background:#fff"],
[data-theme="dark"] .painel-tfc-root [style*="background: white"],
[data-theme="dark"] .dashboard-geral-root [style*="background: #fff"],
[data-theme="dark"] .dashboard-geral-root [style*="background:#fff"] {
    background: var(--dm-surface) !important;
    color: var(--dm-text) !important;
}

/* Elementos com fundo branco via style inline comum */
[data-theme="dark"] [style*="background: #fff"],
[data-theme="dark"] [style*="background:#fff"],
[data-theme="dark"] [style*="background: #ffffff"],
[data-theme="dark"] [style*="background:#ffffff"],
[data-theme="dark"] [style*="background: white"],
[data-theme="dark"] [style*="background:white"],
[data-theme="dark"] [style*="background-color: #fff"],
[data-theme="dark"] [style*="background-color:#fff"],
[data-theme="dark"] [style*="background-color: #ffffff"],
[data-theme="dark"] [style*="background-color:#ffffff"],
[data-theme="dark"] [style*="background-color: white"],
[data-theme="dark"] [style*="background-color:white"],
[data-theme="dark"] [style*="background: #f8f9fa"],
[data-theme="dark"] [style*="background:#f8f9fa"],
[data-theme="dark"] [style*="background-color: #f8f9fa"],
[data-theme="dark"] [style*="background-color:#f8f9fa"],
[data-theme="dark"] [style*="background: #faf7f9"],
[data-theme="dark"] [style*="background:#faf7f9"],
[data-theme="dark"] [style*="background: #fbf9fb"],
[data-theme="dark"] [style*="background:#fbf9fb"],
[data-theme="dark"] [style*="background: #fff8fb"],
[data-theme="dark"] [style*="background:#fff8fb"] {
    background: var(--dm-surface) !important;
    background-color: var(--dm-surface) !important;
    color: var(--dm-text) !important;
}

/* Texto escuro forçado em conteúdo */
[data-theme="dark"] [style*="color: #000"],
[data-theme="dark"] [style*="color:#000"],
[data-theme="dark"] [style*="color: #212529"],
[data-theme="dark"] [style*="color:#212529"],
[data-theme="dark"] [style*="color: #1a1218"],
[data-theme="dark"] [style*="color:#1a1218"],
[data-theme="dark"] [style*="color: #2d3436"],
[data-theme="dark"] [style*="color:#2d3436"] {
    color: var(--dm-text) !important;
}

/* Separadores / linhas claras */
[data-theme="dark"] .border-light,
[data-theme="dark"] hr,
[data-theme="dark"] .dropdown-divider {
    border-color: var(--dm-border) !important;
}

/* Select2 / choices (se usados) */
[data-theme="dark"] .select2-container--default .select2-selection--single,
[data-theme="dark"] .select2-dropdown,
[data-theme="dark"] .select2-container--default .select2-results__option {
    background-color: var(--dm-input) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-input-border) !important;
}

[data-theme="dark"] .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable {
    background-color: rgba(142, 26, 77, 0.35) !important;
    color: #fff !important;
}

/* SweetAlert / toasts genéricos */
[data-theme="dark"] .swal2-popup {
    background: var(--dm-surface) !important;
    color: var(--dm-text) !important;
}

[data-theme="dark"] .toast,
[data-theme="dark"] .toast-header,
[data-theme="dark"] .toast-body {
    background: var(--dm-elevated) !important;
    color: var(--dm-text) !important;
    border-color: var(--dm-border) !important;
}

/* Navbar brand logo — manter fundo claro para contraste do logotipo */
[data-theme="dark"] .nav-brand-logo {
    background: #fff !important;
}
/* Offcanvas / drawers já cobertos; reforço toolbar sidebar */
[data-theme="dark"] .app-toolbar,
[data-theme="dark"] .sidebar-toolbar,
[data-theme="dark"] .top-toolbar {
    background: var(--dm-surface) !important;
    border-color: var(--dm-border) !important;
    color: var(--dm-text) !important;
}
