/* =============================================================
   DARK MODE — layout público
   Ativado via  data-bs-theme="dark"  no elemento <html>
   ============================================================= */

/* --- Logo: alterna entre versão colorida e branca conforme o tema --- */
.logo-dark { display: none !important; }
[data-bs-theme="dark"] .logo-light { display: none !important; }
[data-bs-theme="dark"] .logo-dark  { display: block !important; }

/* --- Navbar branca → adaptada ao dark --- */
[data-bs-theme="dark"] .main-nav {
    background-color: var(--bs-body-bg) !important;
    border-bottom-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .main-nav .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255%2C255%2C255%2C1%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}
[data-bs-theme="dark"] .main-nav .navbar-toggler {
    border-color: rgba(255,255,255,.35) !important;
}

/* --- bg-white genérico --- */
[data-bs-theme="dark"] .bg-white {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

/* --- Mega menu atuações --- */
[data-bs-theme="dark"] .mega-menu {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    box-shadow: 0 14px 35px rgba(0,0,0,.45);
}

[data-bs-theme="dark"] .mega-tab {
    background: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .mega-tab.is-active {
    border-color: #5b8fe8;
    box-shadow: 0 0 0 3px rgba(91,143,232,.2);
}

/* --- Barra de pesquisa na nav --- */
[data-bs-theme="dark"] .nav-search .input-group-text {
    background-color: var(--bs-body-bg) !important;
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .nav-search .form-control {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .nav-search .form-control::placeholder {
    color: var(--bs-secondary-color);
}

/* --- Links da topbar --- */
[data-bs-theme="dark"] .topbar a {
    color: rgba(255,255,255,.85);
}

[data-bs-theme="dark"] .topbar a:hover {
    color: #fff;
}

/* ── CATCH-ALL: garante que elementos de texto fiquem legíveis no dark mode ──
   Cobre todos os arquivos com color: #0f172a / #333 / #334155 etc. hardcoded.
   Não inclui <span> nem <a> para não quebrar badges e links coloridos.
   Não inclui <div> para não afetar containers.
   Bootstrap .text-warning / .text-danger etc. (0-2-0) ganham por especificidade. */
[data-bs-theme="dark"] main p,
[data-bs-theme="dark"] main h1,
[data-bs-theme="dark"] main h2,
[data-bs-theme="dark"] main h3,
[data-bs-theme="dark"] main h4,
[data-bs-theme="dark"] main h5,
[data-bs-theme="dark"] main h6,
[data-bs-theme="dark"] main li,
[data-bs-theme="dark"] main label,
[data-bs-theme="dark"] main td,
[data-bs-theme="dark"] main th {
    color: var(--bs-body-color) !important;
}

/* --- Body e main: fundo uniforme --- */
[data-bs-theme="dark"] body {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

/* main.bg-light: especificidade 0-2-1 → ganha sobre .bg-light (0-2-0) */
[data-bs-theme="dark"] main,
[data-bs-theme="dark"] main.bg-light,
[data-bs-theme="dark"] main.bg-img {
    background-color: var(--bs-body-bg) !important;
}

/* --- bg-white e bg-light: igualados ao body (sem tons diferentes) --- */
[data-bs-theme="dark"] .bg-white,
[data-bs-theme="dark"] .bg-light {
    background-color: var(--bs-body-bg) !important;
    color: var(--bs-body-color) !important;
}

/* --- Seções: transparentes → herdam o body, tom uniforme --- */
[data-bs-theme="dark"] section,
[data-bs-theme="dark"] .section-soft,
[data-bs-theme="dark"] .section-white {
    background-color: transparent !important;
}

/* --- Cards Bootstrap (fundo levemente elevado para dar profundidade) --- */
[data-bs-theme="dark"] .card {
    background-color: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .card-body,
[data-bs-theme="dark"] .card-footer,
[data-bs-theme="dark"] .card-header {
    background-color: inherit !important;
    color: var(--bs-body-color) !important;
}

/* --- Breadcrumb --- */
[data-bs-theme="dark"] #nav-breadcrumb {
    background-color: var(--bs-secondary-bg) !important;
}

/* --- Programação Home — variáveis --ph-* nunca definidas, resolvem p/ transparent no dark --- */
[data-bs-theme="dark"] #programacao .ph-item {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] #programacao .ph-title {
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] #programacao .ph-meta,
[data-bs-theme="dark"] #programacao .ph-sub {
    color: var(--bs-secondary-color) !important;
}

/* --- Cards de modalidades (Inscrições Online) — ModalidadesCards.css hardcoda #fff --- */
[data-bs-theme="dark"] .m-card {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .m-card__title {
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .m-card__media {
    background: var(--bs-tertiary-bg) !important;
}

[data-bs-theme="dark"] .m-card__media.is-empty {
    background: var(--bs-tertiary-bg) !important;
}

[data-bs-theme="dark"] .m-card__city-select {
    background-color: var(--bs-secondary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .m-card__city-label {
    color: var(--bs-secondary-color) !important;
}

/* --- Cards de unidades — UnidadesCards.css hardcoda #fff --- */
[data-bs-theme="dark"] .u-card {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .u-card__title,
[data-bs-theme="dark"] .u-card__subtitle {
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .u-card__media {
    background: var(--bs-tertiary-bg) !important;
}

/* --- buttons.css: outline e news tabs --- */
[data-bs-theme="dark"] .btn-sesc-outline {
    background: var(--bs-secondary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .btn-sesc-outline:hover {
    background: rgba(255,255,255,.1) !important;
    color: #fff !important;
}

/* --- btn-outline-primary no dark: borda e texto brancos --- */
[data-bs-theme="dark"] .btn-outline-primary {
    color: #fff !important;
    border-color: rgba(255,255,255,.45) !important;
    background: transparent !important;
}

[data-bs-theme="dark"] .btn-outline-primary:hover,
[data-bs-theme="dark"] .btn-outline-primary:focus {
    background: rgba(255,255,255,.12) !important;
    border-color: rgba(255,255,255,.75) !important;
    color: #fff !important;
}

[data-bs-theme="dark"] .news-tabs .nav-link {
    background: var(--bs-secondary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .news-tabs .nav-link:hover,
[data-bs-theme="dark"] .news-tabs .nav-link.active {
    background: #1f66d1 !important;
    color: #fff !important;
    border-color: #1f66d1 !important;
}

/* --- buttons.css: cards de notícias principais --- */
[data-bs-theme="dark"] .news-card-ui {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .news-card-ui .card-body {
    background: var(--bs-secondary-bg) !important;
}

[data-bs-theme="dark"] .news-card-title {
    color: var(--bs-body-color) !important;
}

/* --- NoticiasHome.css: mini cards de notícias (loaded via partial) --- */
[data-bs-theme="dark"] .news-card-mini {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .news-title-mini {
    color: var(--bs-body-color) !important;
}

/* --- layout-geral.css: cards de vagas, trabalhe, editais, ocupações — fundos --- */
[data-bs-theme="dark"] .vaga-card,
[data-bs-theme="dark"] .trabalhe-card,
[data-bs-theme="dark"] .editais-box,
[data-bs-theme="dark"] .card-occupation {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

/* --- Trabalhe Conosco — textos hardcoded escuros --- */
[data-bs-theme="dark"] .trabalhe-title,
[data-bs-theme="dark"] .editais-box__title,
[data-bs-theme="dark"] .vaga-titulo,
[data-bs-theme="dark"] .resultados-vagas {
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .resultados-vagas {
    border-bottom-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .vaga-meta-item {
    color: var(--bs-secondary-color) !important;
}

[data-bs-theme="dark"] .vaga-prazo {
    background: var(--bs-tertiary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .trabalhe-conosco-section .form-label {
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .trabalhe-conosco-section .form-control,
[data-bs-theme="dark"] .trabalhe-conosco-section .form-select,
[data-bs-theme="dark"] .trabalhe-conosco-section .input-group-text {
    background-color: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

/* ícones das vagas */
[data-bs-theme="dark"] .vaga-meta-item i,
[data-bs-theme="dark"] .vaga-prazo i {
    color: #fff !important;
}

/* kicker "Trabalhe Conosco" */
[data-bs-theme="dark"] .trabalhe-kicker {
    background: rgba(91, 143, 232, .15) !important;
    color: #5b8fe8 !important;
}

/* badges de status das vagas */
[data-bs-theme="dark"] .vaga-status-aberta {
    background: rgba(22, 163, 74, .15) !important;
    color: #4ade80 !important;
    border-color: rgba(22, 163, 74, .3) !important;
}

[data-bs-theme="dark"] .vaga-status-andamento {
    background: rgba(217, 119, 6, .15) !important;
    color: #fbbf24 !important;
    border-color: rgba(217, 119, 6, .3) !important;
}

[data-bs-theme="dark"] .vaga-status-encerrada {
    background: rgba(100, 116, 139, .15) !important;
    color: #94a3b8 !important;
    border-color: rgba(100, 116, 139, .3) !important;
}

/* skeleton das vagas */
[data-bs-theme="dark"] .vaga-skeleton {
    background: linear-gradient(90deg, var(--bs-secondary-bg) 25%, var(--bs-tertiary-bg) 37%, var(--bs-secondary-bg) 63%) !important;
}

/* --- Unidades — select "Todas as cidades", subtítulo e ícones --- */
[data-bs-theme="dark"] #secao-unidades .u-select {
    background-color: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] #secao-unidades .u-subtitle {
    color: var(--bs-secondary-color) !important;
}

[data-bs-theme="dark"] .u-card__row i {
    color: #fff !important;
}

[data-bs-theme="dark"] .u-card__title,
[data-bs-theme="dark"] .u-card__row span {
    color: var(--bs-body-color) !important;
}

/* --- Atividades e Valores (AreasAtuacao) — textos hardcoded escuros --- */
[data-bs-theme="dark"] .areas-title,
[data-bs-theme="dark"] .text-dark {
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .areas-desc {
    color: var(--bs-secondary-color) !important;
}

[data-bs-theme="dark"] .card-occupation .card-title {
    color: var(--bs-body-color) !important;
}

/* --- AreaCoordenacao/Details.css: cards de área --- */
[data-bs-theme="dark"] .area-sobre-section {
    background: transparent !important;
}

[data-bs-theme="dark"] .area-sobre-card {
    background: var(--bs-secondary-bg) !important;
}

/* --- font-gray hardcoda black — reverter no dark --- */
[data-bs-theme="dark"] .font-gray {
    color: var(--bs-body-color) !important;
}

/* --- Dropdowns da nav pública --- */
[data-bs-theme="dark"] .dropdown-menu {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .dropdown-item {
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .dropdown-item:hover,
[data-bs-theme="dark"] .dropdown-item:focus {
    background-color: var(--bs-tertiary-bg);
    color: var(--bs-body-color);
}

[data-bs-theme="dark"] .dropdown-divider {
    border-color: var(--bs-border-color);
}

/* --- Inputs e formulários --- */
[data-bs-theme="dark"] .form-control,
[data-bs-theme="dark"] .form-select {
    background-color: var(--bs-secondary-bg);
    border-color: var(--bs-border-color);
    color: var(--bs-body-color);
}

/* --- Texto secundário --- */
[data-bs-theme="dark"] .text-muted,
[data-bs-theme="dark"] .text-secondary {
    color: var(--bs-secondary-color) !important;
}

/* --- _ModalidadesCarousel: card-vendas são photo-cards, não aplicar fundo dark ---
   A imagem preenche o card inteiro; só o texto overlay precisa ser branco. */
[data-bs-theme="dark"] .card-vendas {
    background-color: transparent !important;
}

[data-bs-theme="dark"] .card-vendas b,
[data-bs-theme="dark"] .card-vendas .text-white {
    color: #fff !important;
    text-shadow: 0 0 6px rgba(0,0,0,.9) !important;
}

/* =============================================================
   ACESSO RÁPIDO — ícones hardcoded em azul escuro
   ============================================================= */

[data-bs-theme="dark"] .quick-action .icon {
    background: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
}

/* =============================================================
   PROGRAMAÇÃO — Index.css usa variáveis --prog-* hardcoded
   ============================================================= */

[data-bs-theme="dark"] #prog-page {
    --prog-bg:       var(--bs-body-bg);
    --prog-card-bg:  var(--bs-secondary-bg);
    --prog-text:     var(--bs-body-color);
    --prog-muted:    var(--bs-secondary-color);
    --prog-border:   var(--bs-border-color);
}

/* backgrounds hardcoded que as variáveis não cobrem */
[data-bs-theme="dark"] .prog-filter-card,
[data-bs-theme="dark"] .prog-filter-col,
[data-bs-theme="dark"] .prog-skeleton__body {
    background: var(--bs-secondary-bg) !important;
}

[data-bs-theme="dark"] .prog-filter-card__header,
[data-bs-theme="dark"] .prog-filter-search {
    background: var(--bs-tertiary-bg) !important;
}

[data-bs-theme="dark"] .prog-filter-select {
    background-color: transparent !important;
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .prog-section__count,
[data-bs-theme="dark"] .prog-card__vagas {
    background: var(--bs-tertiary-bg) !important;
    color: var(--bs-secondary-color) !important;
}

[data-bs-theme="dark"] .prog-pagination .page-link {
    background: var(--bs-secondary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .prog-pagination .page-link:hover {
    background: var(--bs-tertiary-bg) !important;
}

[data-bs-theme="dark"] .prog-date-shortcut {
    background: rgba(91,143,232,.15) !important;
    color: #5b8fe8 !important;
}

[data-bs-theme="dark"] .prog-date-shortcut:hover {
    background: #5b8fe8 !important;
    color: #fff !important;
}

[data-bs-theme="dark"] .prog-active-badge {
    background: rgba(91,143,232,.15) !important;
    color: #5b8fe8 !important;
}

/* =============================================================
   /ATIVIDADES — ListaAtividades.css + CardAtividade.css
   ============================================================= */

[data-bs-theme="dark"] .bg-filtro {
    background: var(--bs-secondary-bg) !important;
}

[data-bs-theme="dark"] .filtro-tag {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .filtro-tag > span {
    background: var(--bs-tertiary-bg) !important;
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .atividade-card {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .atividade-card .ratio {
    background: var(--bs-tertiary-bg) !important;
}

[data-bs-theme="dark"] .atividade-card .text-body-secondary {
    color: #fff !important;
}

[data-bs-theme="dark"] .gsc-cursor-page {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

/* =============================================================
   /AREA-COORDENACAO — Details.css
   ============================================================= */

/* Sobrescreve variáveis CSS da página — mais limpo que regra por regra */
[data-bs-theme="dark"] {
    --area-text: var(--bs-body-color);
    --area-bg-soft: var(--bs-secondary-bg);
}

[data-bs-theme="dark"] .area-descricao {
    color: var(--bs-secondary-color) !important;
}

[data-bs-theme="dark"] .section-text {
    color: var(--bs-secondary-color) !important;
}

[data-bs-theme="dark"] .font-size-12 {
    color: var(--bs-secondary-color) !important;
}

[data-bs-theme="dark"] .section-link,
[data-bs-theme="dark"] .section-link-mobile {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .area-card,
[data-bs-theme="dark"] .card-edital-modern {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

/* =============================================================
   /ESTRUTURA-ORGANIZACIONAL — estilos inline no cshtml
   ============================================================= */

[data-bs-theme="dark"] .president-card,
[data-bs-theme="dark"] .diretora-card {
    background: var(--bs-secondary-bg) !important;
}

[data-bs-theme="dark"] .president-card .card,
[data-bs-theme="dark"] .diretora-card .card {
    background: var(--bs-tertiary-bg) !important;
}

[data-bs-theme="dark"] .director-card {
    background: var(--bs-secondary-bg) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .director-role,
[data-bs-theme="dark"] .director-name {
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .council-table thead th {
    background: var(--bs-secondary-bg) !important;
    color: var(--bs-body-color) !important;
    border-color: var(--bs-border-color) !important;
}

[data-bs-theme="dark"] .council-table tbody tr td {
    border-color: var(--bs-border-color) !important;
    color: var(--bs-body-color) !important;
}

[data-bs-theme="dark"] .council-table tbody tr:hover td {
    background: var(--bs-tertiary-bg) !important;
}

/* =============================================================
   SELETOR DE TEMA — botão e popup
   ============================================================= */

.theme-toggle-btn {
    display: flex;
    align-items: center;
    gap: 5px;
    color: white;
    font-size: .82rem;
    font-weight: 500;
    line-height: 1;
    padding: 3px 8px;
    border: 1px solid rgba(255,255,255,.45);
    border-radius: 20px;
    background: rgba(255,255,255,.15);
    cursor: pointer;
    transition: background .15s, border-color .15s;
    white-space: nowrap;
}

.theme-toggle-btn:hover {
    background: rgba(255,255,255,.28);
    border-color: rgba(255,255,255,.7);
    color: white;
}

.theme-picker-popup {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    background: #1e1e2e;
    border-radius: 14px;
    padding: 8px;
    z-index: 9999;
    min-width: 138px;
    box-shadow: 0 6px 28px rgba(0,0,0,.5);
    display: none;
}

.theme-picker-popup.open {
    display: block;
}

.theme-option {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    background: none;
    border: none;
    color: #aaa;
    padding: 8px 12px;
    border-radius: 10px;
    font-size: .875rem;
    cursor: pointer;
    text-align: left;
    transition: background .15s, color .15s;
}

.theme-option i {
    font-size: 1rem;
    flex-shrink: 0;
}

.theme-option:hover {
    background: rgba(255,255,255,.08);
    color: #fff;
}

.theme-option.active {
    color: #fff;
    background: rgba(255,255,255,.12);
}
