/* ========================================================================
   BTS Portal — REFRESH 2026 (Corporate Modern + Dark Mode)
   Carregado por último: sobrescreve todos os outros CSS sem editá-los.
   Inspiração: Vercel / Linear / Notion (clean, neutro, verde como acento).
   ======================================================================== */

/* --------------------------------- TOKENS --------------------------------- */
:root {
    /* Tipografia */
    --rf-font-sans: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
    --rf-font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, monospace;

    /* Escala de neutros (light) */
    --rf-bg: #f7f8fa;
    --rf-bg-elev: #ffffff;
    --rf-bg-soft: #f1f3f5;
    --rf-border: #e6e8ec;
    --rf-border-strong: #d6d9de;
    --rf-text: #0f172a;
    --rf-text-muted: #475569;
    --rf-text-subtle: #64748b;

    /* Acentos (verde BTS preservado, mas modernizado) */
    --rf-accent: #20b2aa;          /* turquesa BTS */
    --rf-accent-strong: #178f88;
    --rf-accent-soft: #e6f7f6;
    --rf-success: #16a34a;
    --rf-warn: #d97706;
    --rf-danger: #dc2626;
    --rf-info: #2563eb;

    /* Sombra (camadas) */
    --rf-shadow-xs: 0 1px 2px rgba(15, 23, 42, 0.04);
    --rf-shadow-sm: 0 1px 3px rgba(15, 23, 42, 0.06), 0 1px 2px rgba(15, 23, 42, 0.04);
    --rf-shadow-md: 0 4px 6px -1px rgba(15, 23, 42, 0.07), 0 2px 4px -2px rgba(15, 23, 42, 0.04);
    --rf-shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, 0.08), 0 4px 6px -4px rgba(15, 23, 42, 0.05);

    /* Raios */
    --rf-radius-sm: 6px;
    --rf-radius: 10px;
    --rf-radius-lg: 14px;
    --rf-radius-pill: 999px;

    /* Transição padrão */
    --rf-trans: 160ms cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Dark theme (toggle) */
:root[data-bts-theme="dark"] {
    --rf-bg: #0b1220;
    --rf-bg-elev: #111827;
    --rf-bg-soft: #1a2233;
    --rf-border: #1f2937;
    --rf-border-strong: #2d3748;
    --rf-text: #e5e7eb;
    --rf-text-muted: #cbd5e1;
    --rf-text-subtle: #94a3b8;
    --rf-accent: #2dd4bf;
    --rf-accent-strong: #14b8a6;
    --rf-accent-soft: #112e2c;
    --rf-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.4);
    --rf-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.3);
    --rf-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.5), 0 2px 4px -2px rgba(0, 0, 0, 0.3);
    --rf-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.55), 0 4px 6px -4px rgba(0, 0, 0, 0.35);
}
/* Override !important do bts-colors.css no modo escuro */
:root[data-bts-theme="dark"] body,
:root[data-bts-theme="dark"] html {
    background: #0b1220 !important;
    color: #e5e7eb !important;
}
/* Bootstrap 5 CSS custom properties — dark mode */
:root[data-bts-theme="dark"] {
    --bs-body-bg: #0b1220;
    --bs-body-color: #e5e7eb;
    --bs-card-bg: #111827;
    --bs-card-color: #e5e7eb;
    --bs-border-color: #1f2937;
    --bs-border-color-translucent: rgba(255,255,255,0.1);
    --bs-secondary-bg: #1a2233;
    --bs-tertiary-bg: #131d2e;
    --bs-emphasis-color: #ffffff;
    --bs-heading-color: #e5e7eb;
    --bs-link-color: #2dd4bf;
    --bs-link-hover-color: #14b8a6;
    --bs-nav-tabs-link-active-bg: #111827;
    --bs-nav-tabs-link-active-color: #e5e7eb;
    --bs-table-bg: transparent;
    --bs-table-color: #e5e7eb;
    --bs-table-border-color: #1f2937;
    --bs-table-hover-bg: rgba(255,255,255,0.04);
    --bs-form-control-bg: #111827;
    --bs-form-control-border-color: #1f2937;
    --bs-input-bg: #111827;
    --bs-input-border-color: #1f2937;
    --bs-input-color: #e5e7eb;
    --bs-secondary-color: #94a3b8;
    --bs-list-group-bg: #111827;
    --bs-list-group-border-color: #1f2937;
    --bs-list-group-color: #e5e7eb;
    --bs-list-group-action-color: #e5e7eb;
    --bs-list-group-action-hover-color: #ffffff;
    --bs-list-group-action-hover-bg: #1a2233;
}
/* Containers/wrappers genéricos das páginas (classes inline das Views) */
:root[data-bts-theme="dark"] .main-content,
:root[data-bts-theme="dark"] [class*="-wrapper"]:not(.top-navbar):not(.sidebar),
:root[data-bts-theme="dark"] [class*="-section"]:not(.section):not(.col) {
    background: var(--rf-bg) !important;
    color: var(--rf-text) !important;
}
/* Cards e painéis (qualquer classe terminando em -card ou -panel) */
:root[data-bts-theme="dark"] .main-content [class*="-card"],
:root[data-bts-theme="dark"] .main-content [class*="-panel"],
:root[data-bts-theme="dark"] .main-content [class*="-box"] {
    background: var(--rf-bg-elev) !important;
    color: var(--rf-text) !important;
    border-color: var(--rf-border) !important;
}
/* Barras de módulo/nav nas páginas */
:root[data-bts-theme="dark"] .main-content [class*="-bar"]:not([class*="progress-bar"]):not(.top-navbar) {
    background: var(--rf-bg-soft) !important;
    border-color: var(--rf-border) !important;
    color: var(--rf-text) !important;
}
/* Botões de módulo/aba nas páginas */
:root[data-bts-theme="dark"] .main-content [class*="-btn"]:not(.btn):not([class*="btn-"]) {
    background: transparent !important;
    color: var(--rf-text-muted) !important;
    border-color: transparent !important;
}
:root[data-bts-theme="dark"] .main-content [class*="-btn"].active,
:root[data-bts-theme="dark"] .main-content [class*="-btn"]:hover {
    color: var(--rf-accent) !important;
    background: var(--rf-accent-soft) !important;
}
/* Títulos e subtítulos inline das páginas */
:root[data-bts-theme="dark"] .main-content [class*="-title"],
:root[data-bts-theme="dark"] .main-content [class*="-subtitle"] {
    color: var(--rf-text) !important;
}
/* Itens de resultado / autocomplete */
:root[data-bts-theme="dark"] .main-content [class*="autocomplete"],
:root[data-bts-theme="dark"] .main-content [class*="-result"] {
    background: var(--rf-bg-elev) !important;
    color: var(--rf-text) !important;
    border-color: var(--rf-border) !important;
}
:root[data-bts-theme="dark"] .main-content [class*="-item"].focused,
:root[data-bts-theme="dark"] .main-content [class*="-item"]:hover {
    background: var(--rf-bg-soft) !important;
}
/* Linhas de tabela hover */
:root[data-bts-theme="dark"] .main-content tbody tr:hover td,
:root[data-bts-theme="dark"] .main-content tbody tr:hover th {
    background: var(--rf-bg-soft) !important;
    color: var(--rf-text) !important;
}
/* inputs e selects em páginas */
:root[data-bts-theme="dark"] .main-content input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]),
:root[data-bts-theme="dark"] .main-content textarea,
:root[data-bts-theme="dark"] .main-content select {
    background-color: #111827 !important;
    color: #e5e7eb !important;
    border-color: #1f2937 !important;
}
:root[data-bts-theme="dark"] .main-content input::placeholder,
:root[data-bts-theme="dark"] .main-content textarea::placeholder {
    color: #94a3b8 !important;
}
:root[data-bts-theme="dark"] .main-content,
:root[data-bts-theme="dark"] .main-content .p-4 {
    background: #0b1220 !important;
    color: #e5e7eb !important;
}
:root[data-bts-theme="dark"] h1,
:root[data-bts-theme="dark"] h2,
:root[data-bts-theme="dark"] h3,
:root[data-bts-theme="dark"] h4,
:root[data-bts-theme="dark"] h5,
:root[data-bts-theme="dark"] h6,
:root[data-bts-theme="dark"] p {
    color: #e5e7eb !important;
}

/* Auto: respeita prefers-color-scheme se usuário não escolheu */
@media (prefers-color-scheme: dark) {
    :root:not([data-bts-theme="light"]) {
        --rf-bg: #0b1220;
        --rf-bg-elev: #111827;
        --rf-bg-soft: #1a2233;
        --rf-border: #1f2937;
        --rf-border-strong: #2d3748;
        --rf-text: #e5e7eb;
        --rf-text-muted: #cbd5e1;
        --rf-text-subtle: #94a3b8;
        --rf-accent: #2dd4bf;
        --rf-accent-strong: #14b8a6;
        --rf-accent-soft: #112e2c;
    }
    :root:not([data-bts-theme="light"]) body,
    :root:not([data-bts-theme="light"]) html {
        background: #0b1220 !important;
        color: #e5e7eb !important;
    }
    :root:not([data-bts-theme="light"]) .main-content,
    :root:not([data-bts-theme="light"]) .p-4 {
        background: #0b1220 !important;
    }
}

/* --------------------------------- BASE ---------------------------------- */
html, body {
    font-family: var(--rf-font-sans);
    background: var(--rf-bg);
    color: var(--rf-text);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
    letter-spacing: -0.01em;
}
body { font-size: 0.95rem; line-height: 1.55; }

h1, h2, h3, h4, h5, h6 {
    color: var(--rf-text);
    font-weight: 650;
    letter-spacing: -0.025em;
    line-height: 1.25;
}
h1 { font-size: 1.875rem; }
h2 { font-size: 1.5rem; }
h3 { font-size: 1.25rem; }
h4 { font-size: 1.1rem; }

a { color: var(--rf-accent-strong); text-decoration: none; transition: color var(--rf-trans); }
a:hover { color: var(--rf-accent); text-decoration: none; }

hr { border-color: var(--rf-border); opacity: 1; }

/* Scrollbar refinada */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--rf-border-strong); border-radius: var(--rf-radius-pill); border: 2px solid var(--rf-bg); }
::-webkit-scrollbar-thumb:hover { background: var(--rf-text-subtle); }

/* --------------------------------- CARDS --------------------------------- */
.card,
.stat-card, .dashboard-card, .info-card {
    background: var(--rf-bg-elev) !important;
    border: 1px solid var(--rf-border) !important;
    border-radius: var(--rf-radius-lg) !important;
    box-shadow: var(--rf-shadow-sm) !important;
    transition: box-shadow var(--rf-trans), transform var(--rf-trans), border-color var(--rf-trans) !important;
    overflow: hidden;
}
.card:hover,
.stat-card:hover, .dashboard-card:hover, .info-card:hover {
    box-shadow: var(--rf-shadow-md) !important;
    border-color: var(--rf-border-strong) !important;
    transform: none !important; /* desliga o "salto" antigo */
}

.card-header {
    background: transparent !important;
    color: var(--rf-text) !important;
    padding: 1rem 1.25rem !important;
    border-bottom: 1px solid var(--rf-border) !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
    letter-spacing: -0.01em;
}
/* Sobrescreve regras antigas com maior especificidade (app-modern.css usa .main-content .card-header) */
.main-content .card > .card-header,
.main-content .card .card-header,
body .card > .card-header {
    background: transparent !important;
    background-image: none !important;
    color: var(--rf-text) !important;
    border-bottom: 1px solid var(--rf-border) !important;
    text-shadow: none !important;
}
.main-content .card > .card-header h1,
.main-content .card > .card-header h2,
.main-content .card > .card-header h3,
.main-content .card > .card-header h4,
.main-content .card > .card-header h5,
.main-content .card > .card-header h6 { color: var(--rf-text) !important; }
.card-body { padding: 1.25rem !important; }
.card-footer {
    background: var(--rf-bg-soft) !important;
    border-top: 1px solid var(--rf-border) !important;
    padding: 0.875rem 1.25rem !important;
    color: var(--rf-text-muted) !important;
}

/* --------------------------------- BOTÕES -------------------------------- */
.btn {
    border-radius: var(--rf-radius) !important;
    padding: 0.5rem 1rem !important;
    font-weight: 500 !important;
    font-size: 0.9rem !important;
    letter-spacing: -0.005em !important;
    border: 1px solid transparent !important;
    transition: background-color var(--rf-trans), color var(--rf-trans), border-color var(--rf-trans), box-shadow var(--rf-trans), transform var(--rf-trans) !important;
    box-shadow: var(--rf-shadow-xs) !important;
    line-height: 1.4 !important;
}
.btn:focus-visible {
    outline: 2px solid var(--rf-accent) !important;
    outline-offset: 2px !important;
    box-shadow: none !important;
}
.btn:hover { transform: translateY(-1px) !important; box-shadow: var(--rf-shadow-sm) !important; }
.btn:active { transform: translateY(0) !important; }

.btn-sm { padding: 0.35rem 0.75rem !important; font-size: 0.825rem !important; }
.btn-lg { padding: 0.75rem 1.5rem !important; font-size: 1rem !important; }

.btn-primary, .btn-success {
    background: var(--rf-accent) !important;
    color: #fff !important;
    border-color: var(--rf-accent) !important;
}
.btn-primary:hover, .btn-success:hover {
    background: var(--rf-accent-strong) !important;
    border-color: var(--rf-accent-strong) !important;
}

.btn-secondary {
    background: var(--rf-bg-elev) !important;
    color: var(--rf-text) !important;
    border-color: var(--rf-border-strong) !important;
}
.btn-secondary:hover {
    background: var(--rf-bg-soft) !important;
    border-color: var(--rf-text-subtle) !important;
    color: var(--rf-text) !important;
}

.btn-outline-primary, .btn-outline-success {
    background: transparent !important;
    color: var(--rf-accent-strong) !important;
    border-color: var(--rf-accent) !important;
}
.btn-outline-primary:hover, .btn-outline-success:hover {
    background: var(--rf-accent-soft) !important;
    color: var(--rf-accent-strong) !important;
}

.btn-outline-secondary, .btn-outline-dark {
    background: transparent !important;
    color: var(--rf-text-muted) !important;
    border-color: var(--rf-border-strong) !important;
}
.btn-outline-secondary:hover, .btn-outline-dark:hover {
    background: var(--rf-bg-soft) !important;
    color: var(--rf-text) !important;
}

.btn-danger { background: var(--rf-danger) !important; border-color: var(--rf-danger) !important; }
.btn-warning { background: var(--rf-warn) !important; border-color: var(--rf-warn) !important; color: #fff !important; }
.btn-info    { background: var(--rf-info) !important; border-color: var(--rf-info) !important; color: #fff !important; }

.btn-light {
    background: var(--rf-bg-elev) !important;
    color: var(--rf-text) !important;
    border-color: var(--rf-border) !important;
}

/* ------------------------------- FORMULÁRIOS ----------------------------- */
.form-control, .form-select {
    background: var(--rf-bg-elev) !important;
    color: var(--rf-text) !important;
    border: 1px solid var(--rf-border-strong) !important;
    border-radius: var(--rf-radius) !important;
    padding: 0.55rem 0.85rem !important;
    font-size: 0.9rem !important;
    box-shadow: var(--rf-shadow-xs) !important;
    transition: border-color var(--rf-trans), box-shadow var(--rf-trans) !important;
}
.form-control:focus, .form-select:focus {
    border-color: var(--rf-accent) !important;
    box-shadow: 0 0 0 3px var(--rf-accent-soft) !important;
    outline: none !important;
}
.form-control::placeholder { color: var(--rf-text-subtle) !important; opacity: 1; }
/* Bootstrap form-floating: o placeholder precisa ficar transparente */
.form-floating > .form-control::placeholder,
.form-floating > .form-control-plaintext::placeholder { color: transparent !important; }

.form-label { font-weight: 500; color: var(--rf-text-muted); margin-bottom: 0.35rem; font-size: 0.875rem; }
.form-text  { color: var(--rf-text-subtle); }

.input-group-text {
    background: var(--rf-bg-soft) !important;
    border: 1px solid var(--rf-border-strong) !important;
    color: var(--rf-text-muted) !important;
    border-radius: var(--rf-radius) !important;
}

.form-check-input {
    border-color: var(--rf-border-strong);
    border-radius: 4px;
}
.form-check-input:checked { background-color: var(--rf-accent); border-color: var(--rf-accent); }

/* --------------------------------- TABELAS ------------------------------- */
.table {
    background: var(--rf-bg-elev);
    color: var(--rf-text);
    border-radius: var(--rf-radius-lg);
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
}
.table > :not(caption) > * > * {
    background: transparent !important;
    color: var(--rf-text) !important;
    border-bottom: 1px solid var(--rf-border) !important;
    padding: 0.75rem 1rem;
    vertical-align: middle;
}
.table > thead > tr > th {
    background: var(--rf-bg-soft) !important;
    color: var(--rf-text-muted) !important;
    font-weight: 600 !important;
    font-size: 0.78rem !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-bottom: 1px solid var(--rf-border) !important;
}
.table-hover > tbody > tr:hover > * { background: var(--rf-bg-soft) !important; }
.table-striped > tbody > tr:nth-of-type(odd) > * { background: color-mix(in srgb, var(--rf-bg-soft) 50%, transparent) !important; }

.table-responsive { border-radius: var(--rf-radius-lg); border: 1px solid var(--rf-border); box-shadow: var(--rf-shadow-sm); background: var(--rf-bg-elev); }

/* --------------------------------- BADGES -------------------------------- */
.badge {
    border-radius: var(--rf-radius-pill) !important;
    font-weight: 500 !important;
    font-size: 0.72rem !important;
    padding: 0.25rem 0.6rem !important;
    letter-spacing: 0.02em;
}
.badge.bg-primary, .badge.bg-success { background: var(--rf-accent-soft) !important; color: var(--rf-accent-strong) !important; }
.badge.bg-secondary { background: var(--rf-bg-soft) !important; color: var(--rf-text-muted) !important; }
.badge.bg-warning   { background: #fef3c7 !important; color: #92400e !important; }
.badge.bg-danger    { background: #fee2e2 !important; color: #991b1b !important; }
.badge.bg-info      { background: #dbeafe !important; color: #1e40af !important; }

:root[data-bts-theme="dark"] .badge.bg-warning { background: #422006 !important; color: #fde68a !important; }
:root[data-bts-theme="dark"] .badge.bg-danger  { background: #450a0a !important; color: #fecaca !important; }
:root[data-bts-theme="dark"] .badge.bg-info    { background: #0c1e44 !important; color: #bfdbfe !important; }

/* --------------------------------- ALERTS -------------------------------- */
.alert {
    border-radius: var(--rf-radius) !important;
    border: 1px solid transparent !important;
    padding: 0.85rem 1rem !important;
    font-size: 0.9rem;
}
.alert-success { background: var(--rf-accent-soft) !important; color: var(--rf-accent-strong) !important; border-color: color-mix(in srgb, var(--rf-accent) 30%, transparent) !important; }
.alert-warning { background: #fffbeb !important; color: #92400e !important; border-color: #fde68a !important; }
.alert-danger  { background: #fef2f2 !important; color: #991b1b !important; border-color: #fecaca !important; }
.alert-info    { background: #eff6ff !important; color: #1e40af !important; border-color: #bfdbfe !important; }

/* --------------------------------- MODAIS -------------------------------- */
.modal-content {
    background: var(--rf-bg-elev) !important;
    color: var(--rf-text) !important;
    border: 1px solid var(--rf-border) !important;
    border-radius: var(--rf-radius-lg) !important;
    box-shadow: var(--rf-shadow-lg) !important;
}
.modal-header, .modal-footer {
    border-color: var(--rf-border) !important;
    background: transparent !important;
}

/* --------------------------------- DROPDOWN ------------------------------ */
.dropdown-menu {
    background: var(--rf-bg-elev) !important;
    border: 1px solid var(--rf-border) !important;
    border-radius: var(--rf-radius) !important;
    box-shadow: var(--rf-shadow-md) !important;
    padding: 0.4rem !important;
}
.dropdown-item {
    color: var(--rf-text) !important;
    border-radius: var(--rf-radius-sm) !important;
    padding: 0.45rem 0.75rem !important;
    font-size: 0.9rem;
    transition: background-color var(--rf-trans);
}
.dropdown-item:hover, .dropdown-item:focus { background: var(--rf-bg-soft) !important; color: var(--rf-text) !important; }
.dropdown-divider { border-color: var(--rf-border) !important; }

/* --------------------------------- TOPBAR -------------------------------- */
/* Gradiente do logo: B(#071012) → T(#2EB5D9) → S(#39C1E2) */
.top-navbar, .app-header {
    background: linear-gradient(90deg, #071012 0%, #0d2136 40%, #1B6B9A 100%) !important;
    color: #ffffff !important;
    border-bottom: 1px solid #0d2136 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.35) !important;
}
.top-navbar .navbar-page-title { color: rgba(255,255,255,.9); font-weight: 600; }
.top-navbar .toggle-btn,
.top-navbar .nav-action-btn {
    color: rgba(255,255,255,.8) !important;
    border-color: rgba(255,255,255,.2) !important;
    background: transparent !important;
}
.top-navbar .toggle-btn:hover,
.top-navbar .nav-action-btn:hover {
    background: rgba(255,255,255,.12) !important;
    color: #ffffff !important;
}
/* Botão do seletor de idioma */
.top-navbar .btn-outline-light,
.top-navbar .language-selector {
    color: rgba(255,255,255,.85) !important;
    border-color: rgba(255,255,255,.3) !important;
    background: rgba(255,255,255,.08) !important;
}
.top-navbar .btn-outline-light:hover,
.top-navbar .language-selector:hover {
    background: rgba(255,255,255,.18) !important;
    color: #ffffff !important;
}

/* --------------------------------- SIDEBAR ------------------------------- */
/* Bloco B do logo: #071012, com fina borda azul à direita */
.sidebar {
    background: linear-gradient(180deg, #071012 0%, #0a1820 100%) !important;
    border-right: 2px solid #0d2136 !important;
    box-shadow: 2px 0 16px rgba(0,0,0,.4) !important;
}
.sidebar a, .sidebar .menu-item, .sidebar .nav-link {
    color: rgba(255,255,255,.78) !important;
    border-radius: var(--rf-radius-sm) !important;
    transition: background-color var(--rf-trans), color var(--rf-trans) !important;
}
/* Ícones dos itens da sidebar */
.sidebar a i,
.sidebar .menu-item i,
.sidebar .nav-link i,
.sidebar a .fa, .sidebar a .fas, .sidebar a .far, .sidebar a .fab, .sidebar a .fal,
.sidebar .nav-link .fa, .sidebar .nav-link .fas, .sidebar .nav-link .far,
.sidebar .nav-link .fab, .sidebar .nav-link .fal,
.sidebar .nav-icon {
    color: rgba(255,255,255,.55) !important;
    opacity: 1 !important;
}
/* Especificidade reforçada com :not(.active) para vencer .sidebar .nav-link:not(.active):hover do app-modern.css */
/* Hover: leve destaque azul do logo */
body .sidebar a:hover,
body .sidebar .menu-item:hover,
body .sidebar .nav-link:hover,
body .sidebar .nav-link:not(.active):hover,
body .sidebar .nav-link:not(.active):focus,
body .sidebar a:not(.active):hover,
body .sidebar a:not(.active):focus {
    background: rgba(46,181,217,.14) !important;
    color: #ffffff !important;
    background-image: none !important;
    border-left: 3px solid #2EB5D9 !important;
}
body .sidebar a:hover i,
body .sidebar a:hover span,
body .sidebar .menu-item:hover i,
body .sidebar .menu-item:hover span,
body .sidebar .nav-link:hover i,
body .sidebar .nav-link:hover span,
body .sidebar .nav-link:not(.active):hover i,
body .sidebar .nav-link:not(.active):hover span,
body .sidebar .nav-link:not(.active):focus i,
body .sidebar .nav-link:not(.active):focus span,
body .sidebar a:hover .nav-icon,
body .sidebar .nav-link:hover .nav-icon {
    color: #39C1E2 !important;
}
/* Ativo: gradiente T do logo */
.sidebar .active, .sidebar a.active, .sidebar .nav-link.active,
body .sidebar .nav-link.active {
    background: linear-gradient(90deg, rgba(46,181,217,.25) 0%, rgba(27,107,154,.20) 100%) !important;
    color: #ffffff !important;
    font-weight: 600;
    background-image: none !important;
    border-left: 3px solid #2EB5D9 !important;
}
.sidebar .nav-link.active i,
.sidebar a.active i,
.sidebar .nav-link.active .nav-icon { color: #39C1E2 !important; }

/* Logout em vermelho discreto, mantendo legibilidade no hover */
.sidebar .nav-link-logout,
.sidebar .nav-link-logout i { color: #b91c1c !important; }
.sidebar .nav-link-logout:hover,
.sidebar .nav-link-logout:focus {
    background: rgba(239, 68, 68, 0.10) !important;
    color: #991b1b !important;
}
.sidebar .nav-link-logout:hover i { color: #991b1b !important; }

.sidebar .sidebar-divider { border-color: rgba(46,181,217,.2) !important; }
.sidebar-footer {
    background: rgba(0,0,0,.35) !important;
    border-top: 1px solid rgba(46,181,217,.15) !important;
}
.user-info .user-name { color: rgba(255,255,255,.95) !important; font-weight: 600; }
.user-info .user-role .badge { font-size: 0.68rem; }
.user-info .user-name { color: var(--rf-text); font-weight: 600; }
.user-info .user-role .badge { font-size: 0.68rem; }

/* --------------------------------- FOOTER -------------------------------- */
.app-footer, .bts-footer {
    background: var(--rf-bg-elev) !important;
    border-top: 1px solid var(--rf-border) !important;
    color: var(--rf-text-subtle) !important;
}

/* --------------------------------- NAV TABS ------------------------------ */
.nav-tabs {
    border-bottom: 1px solid var(--rf-border) !important;
    gap: 0.25rem;
}
.nav-tabs .nav-link {
    color: var(--rf-text-muted) !important;
    border: none !important;
    border-bottom: 2px solid transparent !important;
    background: transparent !important;
    border-radius: 0 !important;
    padding: 0.6rem 0.9rem !important;
    font-weight: 500;
}
.nav-tabs .nav-link:hover { color: var(--rf-text) !important; border-bottom-color: var(--rf-border-strong) !important; }
.nav-tabs .nav-link.active {
    color: var(--rf-accent-strong) !important;
    border-bottom-color: var(--rf-accent) !important;
    background: transparent !important;
}

/* --------------------------------- PAGINAÇÃO ----------------------------- */
.page-link {
    color: var(--rf-text-muted) !important;
    background: var(--rf-bg-elev) !important;
    border-color: var(--rf-border) !important;
    border-radius: var(--rf-radius-sm) !important;
    margin: 0 2px;
    padding: 0.4rem 0.7rem !important;
}
.page-link:hover { background: var(--rf-bg-soft) !important; color: var(--rf-text) !important; border-color: var(--rf-border-strong) !important; }
.page-item.active .page-link {
    background: var(--rf-accent) !important;
    border-color: var(--rf-accent) !important;
    color: #fff !important;
}

/* --------------------------------- BREADCRUMB ---------------------------- */
.breadcrumb {
    background: transparent !important;
    padding: 0.5rem 0 !important;
    font-size: 0.85rem;
}
.breadcrumb-item, .breadcrumb-item a { color: var(--rf-text-subtle) !important; }
.breadcrumb-item.active { color: var(--rf-text-muted) !important; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--rf-text-subtle) !important; }

/* --------------------------------- LOADERS ------------------------------- */
.spinner-border, .spinner-grow { color: var(--rf-accent) !important; }
.translation-loader, #global-loader > * { color: var(--rf-accent) !important; }

/* ------------------------------- THEME TOGGLE ---------------------------- */
.bts-theme-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px; height: 36px;
    border-radius: var(--rf-radius);
    border: 1px solid rgba(255,255,255,0.25);
    background: rgba(255,255,255,0.1);
    color: #fff;
    cursor: pointer;
    transition: background-color var(--rf-trans), color var(--rf-trans), border-color var(--rf-trans);
}
.bts-theme-toggle:hover {
    background: rgba(255,255,255,0.2);
    border-color: rgba(255,255,255,0.4);
}
/* Ícones: no tema claro mostra a lua, no escuro mostra o sol */
.bts-icon-dark { display: none; }
.bts-icon-light { display: inline; }
:root[data-bts-theme="dark"] .bts-icon-light { display: none; }
:root[data-bts-theme="dark"] .bts-icon-dark  { display: inline; }
/* --------------------------- ACCESSIBILITY ------------------------------- */
*:focus-visible {
    outline: 2px solid #2EB5D9;
    outline-offset: 2px;
    border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; animation: none !important; }
}

/* ----------------------------- PRINT-FRIENDLY ----------------------------- */
@media print {
    .sidebar, .top-navbar, .app-footer { display: none !important; }
    body { background: #fff; color: #000; }
}

/* --------------------- DROPDOWN — SEMPRE FUNDO CLARO -------------------- */
/* Dropdown mantém fundo branco com texto preto em qualquer tema */
.dropdown-menu,
:root[data-bts-theme="dark"] .dropdown-menu,
:root:not([data-bts-theme="light"]) .dropdown-menu {
    --bs-dropdown-bg: #ffffff;
    --bs-dropdown-color: #111111;
    --bs-dropdown-link-color: #111111;
    --bs-dropdown-link-hover-color: #000000;
    --bs-dropdown-link-hover-bg: #f1f3f5;
    --bs-dropdown-border-color: #dee2e6;
    background-color: #ffffff !important;
    color: #111111 !important;
    border-color: #dee2e6 !important;
}
.dropdown-item,
:root[data-bts-theme="dark"] .dropdown-item,
:root:not([data-bts-theme="light"]) .dropdown-item {
    color: #111111 !important;
}
.dropdown-item:hover,
.dropdown-item:focus,
:root[data-bts-theme="dark"] .dropdown-item:hover,
:root[data-bts-theme="dark"] .dropdown-item:focus {
    background-color: #f1f3f5 !important;
    color: #000000 !important;
}
.dropdown-divider,
:root[data-bts-theme="dark"] .dropdown-divider {
    border-color: #dee2e6 !important;
}
