/* ============================================================
   theme.css — Sistema de Temas (Light / Dark)
   Usa CSS Custom Properties para alternância instantânea.
   Detecção automática via prefers-color-scheme + override manual.
   ============================================================ */

/* --- TEMA CLARO (Padrão) --- */
:root,
[data-theme="light"] {
    /* Superfícies */
    --bg-body: #f0f2f5;
    --bg-card: #ffffff;
    --bg-input: #ffffff;
    --bg-input-focus: #ffffff;
    --bg-navbar: #212529;
    --bg-dropdown: #ffffff;
    --bg-hover-row: #f8f9fa;
    --bg-badge-neutral: #e9ecef;
    --bg-alert-info-bg: #e7f3ff;
    --bg-alert-info-border: #b6d4fe;
    --bg-footer: #f8f9fa;

    /* Textos */
    --text-primary: #212529;
    --text-secondary: #495057;
    --text-muted: #6c757d;
    --text-inverse: #ffffff;
    --text-on-accent: #ffffff;
    --text-link: #667eea;
    --text-badge-neutral: #495057;

    /* Bordas */
    --border-default: #ced4da;
    --border-input: #ced4da;
    --border-input-focus: #667eea;
    --border-card: rgba(0, 0, 0, 0.08);
    --border-table: #dee2e6;
    --border-table-head: transparent;

    /* Sombras */
    --shadow-card: 0 10px 25px rgba(0, 0, 0, 0.1);
    --shadow-card-hover: 0 5px 15px rgba(102, 126, 234, 0.4);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
    --shadow-navbar: 0 2px 4px rgba(0, 0, 0, 0.1);

    /* Acentos (mantêm a identidade visual) */
    --accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    --accent-primary: #667eea;
    --accent-primary-hover: #5a6fd6;
    --accent-success: #198754;
    --accent-danger: #dc3545;
    --accent-warning: #ffc107;
    --accent-info: #0dcaf0;

    /* Específicos */
    --logo-filter: none;
    --scrollbar-track: #f1f1f1;
    --scrollbar-thumb: #c1c1c1;
}

/* --- TEMA ESCURO --- */
[data-theme="dark"] {
    /* Superfícies */
    --bg-body: #0f1117;
    --bg-card: #1a1d27;
    --bg-input: #232733;
    --bg-input-focus: #2a2e3b;
    --bg-navbar: #12141c;
    --bg-dropdown: #1a1d27;
    --bg-hover-row: #232733;
    --bg-badge-neutral: #2a2e3b;
    --bg-alert-info-bg: #1a2640;
    --bg-alert-info-border: #1e3a5f;
    --bg-footer: #12141c;

    /* Textos */
    --text-primary: #e4e6eb;
    --text-secondary: #b0b3b8;
    --text-muted: #8a8d91;
    --text-inverse: #0f1117;
    --text-on-accent: #ffffff;
    --text-link: #8b9cf7;
    --text-badge-neutral: #b0b3b8;

    /* Bordas */
    --border-default: #3a3d47;
    --border-input: #3a3d47;
    --border-input-focus: #8b9cf7;
    --border-card: rgba(255, 255, 255, 0.06);
    --border-table: #2a2e3b;
    --border-table-head: transparent;

    /* Sombras */
    --shadow-card: 0 10px 30px rgba(0, 0, 0, 0.4);
    --shadow-card-hover: 0 5px 20px rgba(102, 126, 234, 0.3);
    --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
    --shadow-navbar: 0 2px 4px rgba(0, 0, 0, 0.3);

    /* Acentos (ajustados para melhor contraste no escuro) */
    --accent-gradient: linear-gradient(135deg, #7b8ff7 0%, #9b6dd7 100%);
    --accent-primary: #8b9cf7;
    --accent-primary-hover: #7b8ff7;
    --accent-success: #2ea043;
    --accent-danger: #f85149;
    --accent-warning: #d29922;
    --accent-info: #39d2c0;

    /* Específicos */
    --logo-filter: brightness(0.9);
    --scrollbar-track: #1a1d27;
    --scrollbar-thumb: #3a3d47;
}

/* --- TRANSIÇÃO SUAVE ENTRE TEMAS --- */
html.theme-transitioning,
html.theme-transitioning *,
html.theme-transitioning *::before,
html.theme-transitioning *::after {
    transition: background-color 0.3s ease,
                color 0.3s ease,
                border-color 0.3s ease,
                box-shadow 0.3s ease !important;
}

/* --- SCROLLBAR PERSONALIZADA --- */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: var(--scrollbar-track);
}
::-webkit-scrollbar-thumb {
    background: var(--scrollbar-thumb);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: var(--accent-primary);
}

/* --- CLASSES UTILITÁRIAS DE TEMA --- */
body {
    background-color: var(--bg-body);
    color: var(--text-primary);
    transition: background-color 0.3s ease, color 0.3s ease;
}

html {
    background-color: var(--bg-body);
    color-scheme: light;
    min-height: 100%;
}

html[data-theme="dark"] {
    background-color: var(--bg-body);
    color-scheme: dark;
}

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

body {
    min-height: 100dvh;
    padding-bottom: env(safe-area-inset-bottom, 0);
}

.home-card-copy {
    min-width: 0;
    overflow: hidden;
}

@media (max-width: 575.98px) {
    .home-shortcut-col .dash-stat-card {
        gap: .55rem;
        min-width: 0;
        padding: .8rem;
    }

    .home-shortcut-col .dash-stat-icon {
        width: 42px;
        height: 42px;
    }

    .home-shortcut-col .dash-stat-icon i {
        font-size: 1.25rem !important;
    }

    .home-shortcut-col .dash-stat-label {
        font-size: .62rem !important;
        line-height: 1.2;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .home-shortcut-col .dash-stat-value {
        font-size: .95rem !important;
        line-height: 1.15;
        white-space: normal;
        overflow-wrap: anywhere;
    }

    .home-shortcut-col .home-card-arrow {
        display: none;
    }
}

@media (max-width: 359.98px) {
    .home-shortcut-col {
        flex: 0 0 auto;
        width: 100%;
    }
}

.theme-card {
    background-color: var(--bg-card);
    border: 1px solid var(--border-card);
    box-shadow: var(--shadow-card);
    color: var(--text-primary);
}

.theme-input {
    background-color: var(--bg-input) !important;
    border-color: var(--border-input) !important;
    color: var(--text-primary) !important;
}

.theme-input:focus {
    background-color: var(--bg-input-focus) !important;
    border-color: var(--border-input-focus) !important;
    box-shadow: 0 0 0 0.2rem rgba(102, 126, 234, 0.25) !important;
    color: var(--text-primary) !important;
}

.theme-input::placeholder {
    color: var(--text-muted) !important;
}

[data-theme="dark"] select.theme-input {
    color-scheme: dark;
}

[data-theme="dark"] select.theme-input option {
    background-color: var(--bg-input);
    color: var(--text-primary);
}

.schedule-history-year-filter label {
    color: var(--text-primary);
}

[data-theme="dark"] .schedule-history-year-filter .form-select {
    color-scheme: dark;
    background-color: var(--bg-input) !important;
    border-color: var(--border-input-focus) !important;
    color: #f0f3f8 !important;
    font-weight: 600;
}

[data-theme="dark"] .schedule-history-year-filter .form-select option {
    background-color: var(--bg-input);
    color: #f0f3f8;
}

.theme-btn-accent {
    background: var(--accent-gradient);
    color: var(--text-on-accent);
    border: none;
}

.theme-btn-accent:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-card-hover);
    color: var(--text-on-accent);
}

.theme-text-muted {
    color: var(--text-muted);
}

/* Tabelas compactas criadas dentro de modais e componentes dinâmicos. */
.theme-table {
    --bs-table-bg: var(--bg-card);
    --bs-table-color: var(--text-primary);
    --bs-table-border-color: var(--border-table);
    color: var(--text-primary);
}

.theme-table > :not(caption) > * > * {
    --bs-table-bg: var(--bg-card);
    --bs-table-bg-state: var(--bg-card);
    background-color: var(--bg-card) !important;
    box-shadow: none !important;
    color: var(--text-primary) !important;
    border-color: var(--border-table) !important;
}

.theme-table > thead > tr > * {
    --bs-table-bg: var(--bg-hover-row);
    --bs-table-bg-state: var(--bg-hover-row);
    background-color: var(--bg-hover-row) !important;
    color: var(--text-secondary) !important;
}

.theme-table > tbody > tr.song-info-changed > * {
    --bs-table-bg: color-mix(in srgb, var(--accent-warning) 22%, var(--bg-card));
    --bs-table-bg-state: color-mix(in srgb, var(--accent-warning) 22%, var(--bg-card));
    background-color: color-mix(in srgb, var(--accent-warning) 22%, var(--bg-card)) !important;
    box-shadow: none !important;
    color: var(--text-primary) !important;
}

.theme-table > tbody > tr.song-info-changed > :first-child {
    border-left: 4px solid var(--accent-warning) !important;
}

/* Tela administrativa de bloqueios: mantém o contraste do Bootstrap nos dois temas. */
.login-locks-page .card,
.login-locks-page .card-header,
.login-locks-page .card-body {
    color: var(--text-primary);
}

.login-locks-page .table {
    --bs-table-color: var(--text-primary);
    --bs-table-bg: transparent;
    --bs-table-hover-color: var(--text-primary);
    --bs-table-hover-bg: var(--bg-hover-row);
}

.login-locks-page .table thead {
    --bs-table-color: var(--text-secondary);
}

.login-locks-page code {
    color: var(--text-link);
}

.theme-text-link {
    color: var(--text-link);
    text-decoration: none;
    font-weight: 500;
}

.theme-text-link:hover {
    text-decoration: underline;
}

.theme-text-muted-link,
.theme-text-muted-link:hover {
    color: var(--text-muted);
    text-decoration: none;
}

.theme-text-muted-link:hover {
    color: var(--text-secondary);
}

.theme-footer {
    color: var(--text-muted);
}

.theme-logo {
    filter: var(--logo-filter);
}

/* --- AJUSTES ESPECÍFICOS PARA DARK MODE NO BOOTSTRAP --- */
[data-theme="dark"] .form-control {
    background-color: var(--bg-input);
    border-color: var(--border-input);
    color: var(--text-primary);
}

[data-theme="dark"] .form-control:focus {
    background-color: var(--bg-input-focus);
    border-color: var(--border-input-focus);
    color: var(--text-primary);
}

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

[data-theme="dark"] .alert-danger {
    background-color: rgba(248, 81, 73, 0.15);
    border-color: rgba(248, 81, 73, 0.3);
    color: #f85149;
}

[data-theme="dark"] .alert-success {
    background-color: rgba(46, 160, 67, 0.15);
    border-color: rgba(46, 160, 67, 0.3);
    color: #2ea043;
}

[data-theme="dark"] .alert-info {
    background-color: var(--bg-alert-info-bg);
    border-color: var(--bg-alert-info-border);
    color: var(--accent-info);
}


[data-theme="dark"] .table-dark {
    background-color: var(--bg-navbar);
    border-color: var(--border-table);
}

[data-theme="dark"] .dropdown-menu {
    background-color: var(--bg-dropdown);
    border-color: var(--border-card);
}

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

[data-theme="dark"] .dropdown-item:hover {
    background-color: var(--bg-hover-row);
}

[data-theme="dark"] .card {
    background-color: var(--bg-card);
    border-color: var(--border-card);
}

[data-theme="dark"] .modal-content {
    background-color: var(--bg-card);
    border-color: var(--border-card);
}

[data-theme="dark"] .tracked-share-qr-close {
    filter: invert(1) grayscale(100%) brightness(200%);
}

[data-theme="dark"] .btn-outline-secondary {
    color: var(--text-muted);
    border-color: var(--border-default);
}

[data-theme="dark"] .btn-outline-secondary:hover {
    background-color: var(--bg-hover-row);
    color: var(--text-primary);
    border-color: var(--border-default);
}

[data-theme="dark"] .bg-light {
    background-color: var(--bg-footer) !important;
}

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

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

/* --- TABELAS NO DARK MODE (Aplicação Global) --- */
[data-theme="dark"] .table {
    color: var(--text-primary);
    border-color: var(--border-table);
    background-color: transparent; /* Garante que não fique preto sólido */
}

[data-theme="dark"] .table thead th {
    color: var(--text-secondary);
    border-color: var(--border-table);
    background-color: var(--bg-hover-row); /* Usa a cor de fundo do seu tema */
}

[data-theme="dark"] .table tbody td {
    color: var(--text-primary);
    border-color: var(--border-table);
}

[data-theme="dark"] .table-hover tbody tr:hover {
    background-color: var(--bg-hover-row) !important;
    color: var(--text-primary) !important;
}

/* Neutraliza table-secondary (usada para linhas inativas) no dark mode */
[data-theme="dark"] .table-secondary {
    --bs-table-bg-state: var(--bg-card);
    --bs-table-bg: var(--bg-card);
    --bs-table-color-state: var(--text-primary);
    --bs-table-color: var(--text-primary);
    background-color: var(--bg-card) !important;
    color: var(--text-primary) !important;
}

/* Hover sobre linhas table-secondary no dark mode */
[data-theme="dark"] .table-hover tbody tr.table-secondary:hover {
    --bs-table-accent-bg: var(--bg-hover-row);
    --bs-table-hover-bg: var(--bg-hover-row);
    background-color: var(--bg-hover-row) !important;
    color: var(--text-primary) !important;
}

/* Hover sobre qualquer tr no dark mode — reforço com variáveis Bootstrap */
[data-theme="dark"] .table-hover > tbody > tr:hover > * {
    --bs-table-accent-bg: var(--bg-hover-row);
    --bs-table-hover-bg: var(--bg-hover-row);
    background-color: var(--bg-hover-row) !important;
    color: var(--text-primary) !important;
}

/* ============================================================
   HEADER/NAVBAR - Versão Final (Sem destaque ativo + Mobile Fix)
   ============================================================ */

/* 1. Navbar Base */
.navbar {
    background-color: var(--bg-navbar) !important;
    transition: background-color 0.3s ease;
}

/* 2. Links da Navbar (Sempre Brancos) */
.navbar .nav-link {
    color: #ffffff !important; /* Força branco absoluto */
    transition: all 0.2s ease;
    border-radius: 6px;
    padding: 8px 12px;
    font-weight: 500;
    display: flex; /* Garante alinhamento ícone/texto */
    align-items: center;
}

/* 3. Hover nos Links (Desktop) */
.navbar .nav-link:hover {
    background-color: rgba(255, 255, 255, 0.15) !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}

/* 4. Link Ativo (SEM DESTAQUE - Apenas texto branco) */
.navbar .nav-link.active {
    background-color: transparent !important; /* Remove fundo */
    color: #ffffff !important;
    font-weight: 600; /* Apenas negrito para diferenciar levemente */
}

/* 5. Dropdown Menu */
.navbar .dropdown-menu {
    background-color: var(--bg-dropdown) !important;
    border: 1px solid var(--border-card) !important;
    border-radius: 8px;
    box-shadow: var(--shadow-card);
    margin-top: 8px;
}

/* 6. Itens do Dropdown */
.navbar .dropdown-item {
    color: var(--text-primary) !important;
    padding: 10px 16px;
    transition: all 0.2s ease;
}

.navbar .dropdown-item:hover {
    background-color: var(--bg-hover-row) !important;
    color: var(--text-primary) !important;
}

.navbar .dropdown-item.active {
    background-color: transparent !important;
    color: var(--text-primary) !important;
    font-weight: 600;
}

/* 7. Dividers e Textos */
.navbar .dropdown-divider {
    border-top: 1px solid var(--border-card) !important;
    margin: 8px 0;
}

.navbar .dropdown-item-text {
    color: var(--text-muted) !important;
}

/* 8. Navbar Toggler (Mobile) */
.navbar-toggler {
    border: none !important;
    background: transparent !important;
}

.navbar-toggler:focus {
    box-shadow: none !important;
}

.navbar-toggler .bi-list {
    color: #ffffff !important;
    font-size: 1.5rem;
}

/* ============================================================
   MOBILE - CORREÇÃO DEFINITIVA DE TEXTO INVISÍVEL
   ============================================================ */

@media (max-width: 991px) {
    /* O container do menu colapsado */
    .navbar-collapse {
        background-color: var(--bg-navbar) !important;
        padding: 16px;
        border-radius: 8px;
        margin-top: 12px;
        box-shadow: var(--shadow-card);
    }

    /* Links principais no mobile */
    .navbar .nav-link {
        color: #ffffff !important; /* FORÇA BRANCO */
        display: flex;
        align-items: center;
        padding: 12px 16px;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    }

    /* Garante que o SPAN (texto) não herde cor escura */
    .navbar .nav-link span {
        color: #ffffff !important;
        font-size: 1rem;
    }

    .navbar .nav-link:hover {
        background-color: rgba(255, 255, 255, 0.15) !important;
        color: #ffffff !important;
    }

    /* Dropdown dentro do Mobile */
    .navbar .dropdown-menu {
        background-color: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding-left: 20px;
        margin-top: 0;
    }

    /* Itens do dropdown no mobile */
    .navbar .dropdown-item {
        color: #ffffff !important; /* FORÇA BRANCO NOS ITENS */
        padding: 10px 16px;
        display: flex;
        align-items: center;
    }

    /* Garante que o texto do item do dropdown não suma */
    .navbar .dropdown-item span,
    .navbar .dropdown-item .text-muted {
        color: #ffffff !important;
    }

    .navbar .dropdown-item:hover {
        background-color: rgba(255, 255, 255, 0.15) !important;
        color: #ffffff !important;
    }

    .navbar .dropdown-divider {
        border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
    }

    .navbar .dropdown-item-text {
        color: rgba(255, 255, 255, 0.8) !important;
    }
}

/* ============================================================
   DARK MODE - Reforço
   ============================================================ */

[data-theme="dark"] .navbar .nav-link,
[data-theme="dark"] .navbar .dropdown-item {
    color: #ffffff !important;
}

[data-theme="dark"] .navbar .nav-link:hover,
[data-theme="dark"] .navbar .dropdown-item:hover {
    background-color: rgba(255, 255, 255, 0.1) !important;
    color: #ffffff !important;
}

[data-theme="dark"] .theme-logo {
    filter: brightness(1.1);
}

/* ============================================================
   EXPENSES FORM — Dark Mode: Abas, Anexos e Parcelas
   ============================================================ */

/* --- Abas Bootstrap (nav-tabs) --- */
[data-theme="dark"] .nav-tabs {
    border-color: var(--border-table) !important;
}

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

[data-theme="dark"] .nav-tabs .nav-link:hover {
    color: var(--text-primary);
    border-color: var(--border-table) var(--border-table) transparent;
    background-color: var(--bg-hover-row);
}

[data-theme="dark"] .nav-tabs .nav-link.active {
    color: var(--text-primary);
    background-color: var(--bg-card);
    border-color: var(--border-table) var(--border-table) var(--bg-card);
}

[data-theme="dark"] .tab-content {
    background-color: var(--bg-card);
    color: var(--text-primary);
}

/* --- Drop-zone de upload --- */
[data-theme="dark"] #drop-zone {
    border-color: var(--border-default) !important;
    color: var(--text-muted);
    background-color: var(--bg-hover-row);
}

[data-theme="dark"] #drop-zone:hover,
[data-theme="dark"] #drop-zone.drag-over {
    background-color: var(--bg-input) !important;
    border-color: var(--accent-primary) !important;
}

[data-theme="dark"] #drop-zone p,
[data-theme="dark"] #drop-zone small {
    color: var(--text-muted) !important;
}

/* --- Itens de anexo listados --- */
[data-theme="dark"] .attachment-item {
    background-color: var(--bg-hover-row) !important;
    border-color: var(--border-table) !important;
    color: var(--text-primary);
}

[data-theme="dark"] .attachment-item .fw-semibold {
    color: var(--text-primary) !important;
}

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

[data-theme="dark"] .attachment-item .btn-outline-secondary {
    color: var(--text-secondary);
    border-color: var(--border-default);
}

[data-theme="dark"] .attachment-item .btn-outline-secondary:hover {
    background-color: var(--bg-input);
    color: var(--text-primary);
}

[data-theme="dark"] .attachment-item .btn-outline-danger {
    color: var(--accent-danger);
    border-color: var(--accent-danger);
}

[data-theme="dark"] .attachment-item .btn-outline-danger:hover {
    background-color: rgba(248, 81, 73, 0.15);
    color: var(--accent-danger);
}

/* --- Mensagens de upload (alert) --- */
[data-theme="dark"] #upload-msg.alert-success {
    background-color: rgba(46, 160, 67, 0.15);
    border-color: rgba(46, 160, 67, 0.3);
    color: var(--accent-success);
}

[data-theme="dark"] #upload-msg.alert-danger {
    background-color: rgba(248, 81, 73, 0.15);
    border-color: rgba(248, 81, 73, 0.3);
    color: var(--accent-danger);
}

/* --- Barra de progresso --- */
[data-theme="dark"] .progress {
    background-color: var(--bg-input);
}

[data-theme="dark"] #upload-status {
    color: var(--text-muted);
}

/* --- Tabela de parcelas irmãs --- */
[data-theme="dark"] .table-sm th,
[data-theme="dark"] .table-sm td {
    color: var(--text-primary);
    border-color: var(--border-table);
}

[data-theme="dark"] .table-sm thead tr {
    background-color: var(--bg-hover-row) !important;
}

[data-theme="dark"] .table-sm thead th {
    color: var(--text-secondary) !important;
}

[data-theme="dark"] .table-sm tbody tr:hover {
    background-color: var(--bg-hover-row);
}

/* Linha atual (destacada em azul pelo Bootstrap table-active) */
[data-theme="dark"] .table-active,
[data-theme="dark"] .table-active > td,
[data-theme="dark"] .table-active > th {
    background-color: rgba(139, 156, 247, 0.12) !important;
    color: var(--text-primary) !important;
}

/* Badges de status das parcelas */
[data-theme="dark"] .badge.bg-success {
    background-color: rgba(46, 160, 67, 0.2) !important;
    color: #4caf73 !important;
}

[data-theme="dark"] .badge.bg-danger {
    background-color: rgba(248, 81, 73, 0.2) !important;
    color: #f87171 !important;
}

[data-theme="dark"] .badge.bg-warning {
    background-color: rgba(210, 153, 34, 0.2) !important;
    color: #e2a84b !important;
}

[data-theme="dark"] .badge.bg-secondary {
    background-color: var(--bg-badge-neutral) !important;
    color: var(--text-badge-neutral) !important;
}

/* Botão de lápis (editar parcela irmã) */
[data-theme="dark"] .table-sm .btn-outline-secondary {
    color: var(--text-muted);
    border-color: var(--border-default);
}

[data-theme="dark"] .table-sm .btn-outline-secondary:hover {
    background-color: var(--bg-input);
    color: var(--text-primary);
    border-color: var(--border-default);
}

/* --- Modal "Deseja anexar comprovantes?" --- */
[data-theme="dark"] #attachModal .modal-content {
    background-color: var(--bg-card);
    border-color: var(--border-card);
    color: var(--text-primary);
}

[data-theme="dark"] #attachModal .modal-title {
    color: var(--text-primary);
}

[data-theme="dark"] #attachModal p {
    color: var(--text-secondary);
}

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

/* --- Bordas de separação dentro das abas --- */
[data-theme="dark"] .border-top {
    border-color: var(--border-table) !important;
}

/* --- Título "Parcelas deste lançamento" --- */
[data-theme="dark"] h6.fw-semibold {
    color: var(--text-primary) !important;
}

/* --- Texto "Nenhum anexo ainda" --- */
[data-theme="dark"] #no-attachments-msg {
    color: var(--text-muted) !important;
}

/* ============================================================
   AUTOCOMPLETE COMPONENT
   ============================================================ */
.autocomplete-container {
    position: relative;
    width: 100%;
}

.autocomplete-wrapper {
    position: relative;
    display: flex;
    align-items: center;
}

.autocomplete-wrapper .form-control,
.autocomplete-wrapper .theme-input {
    padding-right: 2rem;
}

.autocomplete-clear {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--text-muted);
    cursor: pointer;
    padding: 2px 6px;
    font-size: 1.1rem;
    line-height: 1;
    z-index: 2;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.autocomplete-clear:hover {
    color: var(--text-primary);
    background-color: var(--bg-hover-row);
}

.autocomplete-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    max-height: 260px;
    overflow-y: auto;
    background-color: var(--bg-card);
    border: 1px solid var(--border-card);
    border-radius: 8px;
    box-shadow: var(--shadow-card);
    margin-top: 4px;
}

.autocomplete-dropdown .autocomplete-loading,
.autocomplete-dropdown .autocomplete-empty {
    padding: 12px 16px;
    color: var(--text-muted);
    font-size: 0.9rem;
    display: flex;
    align-items: center;
}

.autocomplete-item {
    padding: 10px 16px;
    cursor: pointer;
    border-bottom: 1px solid var(--border-table);
    transition: background-color 0.15s ease;
}

.autocomplete-item:last-child {
    border-bottom: none;
}

.autocomplete-item:hover,
.autocomplete-item-active {
    background-color: var(--bg-hover-row);
}

.autocomplete-item-label {
    color: var(--text-primary);
    font-size: 0.925rem;
    line-height: 1.3;
}

.autocomplete-item-label strong {
    color: var(--accent-primary);
    font-weight: 700;
}

.autocomplete-extra {
    display: flex;
    gap: 12px;
    margin-top: 2px;
    font-size: 0.8rem;
    color: var(--text-muted);
}

/* Dark mode refinements */
[data-theme="dark"] .autocomplete-dropdown {
    background-color: var(--bg-card);
    border-color: var(--border-card);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
}

[data-theme="dark"] .autocomplete-item {
    border-bottom-color: var(--border-table);
}

[data-theme="dark"] .autocomplete-item:hover,
[data-theme="dark"] .autocomplete-item-active {
    background-color: var(--bg-hover-row);
}

[data-theme="dark"] .autocomplete-item-label {
    color: var(--text-primary);
}

    [data-theme="dark"] .autocomplete-item-label strong {
    color: var(--accent-primary);
}

[data-theme="dark"] .autocomplete-extra {
    color: var(--text-muted);
}

[data-theme="dark"] .autocomplete-clear:hover {
    background-color: var(--bg-hover-row);
    color: var(--text-primary);
}

[data-theme="dark"] .autocomplete-loading,
[data-theme="dark"] .autocomplete-empty {
    color: var(--text-muted);
}
/* Ícones Tabler em SVG usados pelas habilidades. */
.tabler-skill-icon {
    width: 1.15em;
    height: 1.15em;
    object-fit: contain;
    vertical-align: -0.15em;
}
[data-theme="dark"] .tabler-skill-icon { filter: invert(1); }
