/* Largura máxima do conteúdo admin (lista participantes, auditoria, …) */
.ec-admin-container {
    max-width: 1320px;
}

/*
 * Barra lateral: o tema usa float nos ícones; com marca em duas palavras
 * ("Event Manager") o texto colidia com os botões. Grid alinha tudo.
 */
.page-sidebar .logo-box {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 0.5rem;
    row-gap: 0.15rem;
    padding: 12px 16px;
}

.page-sidebar .logo-box a.logo-text {
    grid-column: 1;
    grid-row: 1;
    float: none !important;
    margin: 0 !important;
    font-size: 1.05rem;
    line-height: 1.25;
    font-weight: 700;
    text-transform: none;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;
    hyphens: auto;
}

.page-sidebar .logo-box a#sidebar-close,
.page-sidebar .logo-box a#sidebar-state {
    float: none !important;
    margin: 0 !important;
    line-height: 1;
    align-self: start;
    padding-top: 2px;
}

/* Desktop: só o toggle compacto (o tema esconde #sidebar-close) */
@media (min-width: 1200px) {
    .page-sidebar .logo-box a#sidebar-close {
        display: none;
    }

    .page-sidebar .logo-box a#sidebar-state {
        grid-column: 2;
        grid-row: 1;
    }
}

/* Ecrã estreito: só fechar sidebar (o tema esconde #sidebar-state) */
@media (max-width: 1199.98px) {
    .page-sidebar .logo-box a#sidebar-state {
        display: none;
    }

    .page-sidebar .logo-box a#sidebar-close {
        grid-column: 2;
        grid-row: 1;
    }
}

/* Sidebar compacta (desktop): só ícone — alinhado ao connect.min */
@media (min-width: 1200px) {
    .compact-sidebar .page-sidebar .logo-box {
        display: block;
        text-align: center;
        padding: 15px 12px;
    }

    .compact-sidebar .page-sidebar .logo-box a.logo-text {
        display: none;
    }

    .compact-sidebar .page-sidebar .logo-box a#sidebar-state {
        display: block;
        float: none !important;
        margin: 0 auto !important;
        padding-top: 0;
    }

    .compact-sidebar .page-sidebar .logo-box a#sidebar-close {
        display: none !important;
    }
}

.ec-audit-table thead th {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 600;
    color: #6c757d;
    white-space: nowrap;
}

body.dark-theme .ec-audit-table thead th {
    color: #9aa7bc;
}

/* ----- Select2: alinhar ao tema Event Manager (sobrepor connect.min + plugin) ----- */
.select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #4faa53 !important;
    color: #fff !important;
}

/* Por cima de .dark-theme .select2-results__option--highlighted (dark_theme.css) */
body.dark-theme .select2-container--default .select2-results__option--highlighted[aria-selected] {
    background-color: #4faa53 !important;
    color: #fff !important;
}

body:not(.dark-theme) .select2-container--default .select2-results__option[aria-selected="true"] {
    background-color: #e9f5ea !important;
    color: #1e2329 !important;
}

body.dark-theme .select2-container--default .select2-results__option[aria-selected="true"] {
    background-color: #2a3340 !important;
    color: #e8eef7 !important;
}

/* Caixa single/multiple: cantos bem redondos (sem o padding excessivo do connect) */
body:not(.dark-theme) .select2-container--default .select2-selection--single,
body:not(.dark-theme) .select2-container--default .select2-selection--multiple {
    border: 1px solid #ced4da !important;
    border-radius: 1rem !important;
    min-height: calc(1.5em + 0.75rem + 2px) !important;
    padding: 0 !important;
    box-shadow: none !important;
    background-color: #fff !important;
}

body.dark-theme .select2-container--default .select2-selection--single,
body.dark-theme .select2-container--default .select2-selection--multiple {
    border-radius: 1rem !important;
    min-height: calc(1.5em + 0.75rem + 2px) !important;
    padding: 0 !important;
    box-shadow: none !important;
}

body:not(.dark-theme) .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding-left: 0.75rem !important;
    padding-right: 2rem !important;
    line-height: calc(1.5em + 0.75rem) !important;
    font-weight: 400 !important;
    color: #1e2329 !important;
}

.select2-container--default .select2-selection--single .select2-selection__arrow {
    height: calc(1.5em + 0.75rem + 2px) !important;
    right: 0.5rem !important;
    top: 0 !important;
}

/* Múltiplo: layout flex, chips discretos (verde do site, não azul) */
.select2-container--default .select2-selection--multiple .select2-selection__rendered {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.3rem !important;
    padding: 0.2rem 0.45rem !important;
    margin: 0 !important;
}

.select2-container--default .select2-selection--multiple .select2-search--inline {
    flex: 1 0 5rem;
    min-width: 3rem;
}

.select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
    margin-top: 0 !important;
    padding: 0.15rem 0 !important;
    font-weight: 400 !important;
}

body.dark-theme .select2-container--default .select2-selection--multiple .select2-search--inline .select2-search__field {
    color: #dbe4f2 !important;
}

body:not(.dark-theme) .select2-container--default .select2-selection--multiple .select2-selection__choice {
    background-color: rgba(79, 170, 83, 0.14) !important;
    border: 1px solid rgba(79, 170, 83, 0.4) !important;
    color: #256029 !important;
    border-radius: 9999px !important;
    padding: 0.12rem 0.4rem 0.12rem 0.35rem !important;
    margin: 0 !important;
    font-size: 0.8125rem !important;
    font-weight: 500 !important;
    line-height: 1.4 !important;
    height: auto !important;
    max-width: 100%;
}

body:not(.dark-theme) .select2-container--default .select2-selection__choice__remove {
    color: rgba(37, 96, 41, 0.55) !important;
    margin-right: 0.2rem !important;
    font-weight: 600 !important;
}

body:not(.dark-theme) .select2-container--default .select2-selection__choice__remove:hover {
    color: #c0392b !important;
}

/* Dropdown e pesquisa (modo claro) */
body:not(.dark-theme) .select2-dropdown {
    border: 1px solid #ced4da !important;
    border-radius: 0.85rem !important;
    padding: 0.25rem 0 !important;
    box-shadow: 0 0.35rem 0.75rem rgba(31, 45, 61, 0.1) !important;
}

body:not(.dark-theme) .select2-search--dropdown {
    padding: 0.35rem 0.5rem !important;
}

body:not(.dark-theme) .select2-search--dropdown .select2-search__field {
    border: 1px solid #ced4da !important;
    border-radius: 0.75rem !important;
    padding: 0.375rem 0.65rem !important;
    font-weight: 400 !important;
}

/* Página lista de participantes: cartão e cabeçalho coerentes no dark mode */
body.dark-theme .ec-participants-card .ec-participants-card-header {
    background: #272b33 !important;
    border-color: #3c4554 !important;
}
body.dark-theme .ec-participants-card .ec-participants-card-header .text-muted {
    color: #9aa7bc !important;
}
body.dark-theme .ec-participants-card .card-body {
    background: #1f252f;
}
body.dark-theme .ec-participants-table thead.thead-light th {
    background: #272b33 !important;
    border-color: #3c4554 !important;
}
body.dark-theme .ec-participants-empty {
    background: #2a303a !important;
    border-color: #3c4554 !important;
    color: #9aa7bc !important;
}

/* Sub-navegação da lista de participantes (visão geral / matrizes) */
.ec-participants-subnav .nav-link {
    border-radius: 2rem;
    border: 1px solid #dee2e6;
    color: #5a6268;
}
.ec-participants-subnav .nav-link:hover {
    border-color: #4faa53;
    color: #3d8f42;
}
.ec-participants-subnav .nav-link.active {
    background: #4faa53;
    border-color: #4faa53;
    color: #fff;
}
body.dark-theme .ec-participants-subnav .nav-link {
    border-color: #3c4554;
    color: #c8d0de;
}
body.dark-theme .ec-participants-subnav .nav-link:hover {
    border-color: #5fd0a5;
    color: #5fd0a5;
    background: rgba(95, 208, 165, 0.08);
}
body.dark-theme .ec-participants-subnav .nav-link.active {
    background: #3d8b63;
    border-color: #3d8b63;
    color: #fff;
}

/*
 * Botões: cantos consistentes (cápsula / “pill”).
 * O tema (connect.css) usa border-radius: 7px; o Bootstrap em .btn-group
 * deixa botões interiores retos — unificamos tudo para o mesmo aspeto redondo.
 */
.connect-container .btn:not(.btn-link):not(.close):not(.dropdown-item) {
    border-radius: 2rem !important;
}

.connect-container .btn-group > .btn:first-child:not(:only-child) {
    border-top-left-radius: 2rem !important;
    border-bottom-left-radius: 2rem !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.connect-container .btn-group > .btn:last-child:not(:only-child) {
    border-top-right-radius: 2rem !important;
    border-bottom-right-radius: 2rem !important;
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}

.connect-container .btn-group > .btn:not(:first-child):not(:last-child) {
    border-radius: 0 !important;
}

/* Pseudo-elementos dos botões do tema seguem o raio do botão */
.connect-container .btn-primary:before,
.connect-container .btn-outline-primary:before {
    border-radius: inherit !important;
}

/* --- Cabeçalho global (barra superior: tema, idioma, perfil) --- */
/* Nota: escopar modo claro para não sobrepor dark_theme.css (custom.css carrega por último). */
.connect-container .ec-app-header .ec-app-navbar {
    padding: 0.65rem 2rem;
    min-height: 3.25rem;
}

@media (min-width: 1200px) {
    .connect-container .ec-app-header .ec-app-navbar {
        padding-top: 0.85rem;
        padding-bottom: 0.85rem;
    }
}

.connect-container .ec-app-header .navbar-nav > .nav-item > .nav-link {
    border-radius: 0.5rem;
}

body:not(.dark-theme) .connect-container .page-container > .ec-app-header {
    background: #fff;
    border-bottom: 1px solid #e8eaef;
    box-shadow: 0 1px 0 rgba(31, 45, 61, 0.04);
}

body:not(.dark-theme) .connect-container .ec-app-header .nav-item .btn-outline-light {
    border-color: #dee2e6;
    color: #5a6268;
    background: #fff;
}

body:not(.dark-theme) .connect-container .ec-app-header .nav-item .btn-outline-light:hover {
    border-color: #4faa53;
    color: #3d8f42;
    background: rgba(79, 170, 83, 0.08);
}

body:not(.dark-theme) .connect-container .ec-app-header .nav-item .btn-outline-light.active {
    border-color: #4faa53;
    background: #4faa53;
    color: #fff;
}

body.dark-theme .connect-container .page-container > .ec-app-header {
    background: #272b33;
    border-bottom: 1px solid #3a3f4a;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
}

body.dark-theme .connect-container .ec-app-header .nav-item .btn-outline-light {
    border-color: #4a505c;
    color: #c8d0de;
    background: #323742;
}

body.dark-theme .connect-container .ec-app-header .nav-item .btn-outline-light:hover {
    border-color: #5fd0a5;
    color: #5fd0a5;
    background: rgba(95, 208, 165, 0.12);
}

body.dark-theme .connect-container .ec-app-header .nav-item .btn-outline-light.active {
    border-color: #5fd0a5;
    background: #5fd0a5;
    color: #1f2128;
}

/* Breadcrumbs: antes partilhavam .page-header com a barra superior (estilos de posição fixa em ecrã estreito) */
.ec-page-heading {
    padding: 0 0 0.25rem;
}

.ec-page-heading .ec-breadcrumb {
    background: transparent;
    padding: 0.35rem 0 1rem;
    font-size: 0.8125rem;
    font-weight: 600;
}

body:not(.dark-theme) .ec-page-heading .breadcrumb-item + .breadcrumb-item::before {
    color: #adb5bd;
}

body:not(.dark-theme) .ec-page-heading .breadcrumb-item a {
    color: #4faa53;
}

body:not(.dark-theme) .ec-page-heading .breadcrumb-item a:hover {
    color: #3d8f42;
    text-decoration: none;
}

body:not(.dark-theme) .ec-page-heading .breadcrumb-item.active {
    color: #6c757d;
    opacity: 0.9;
}

body.dark-theme .ec-page-heading .breadcrumb-item + .breadcrumb-item::before {
    color: #8e98ab;
}

body.dark-theme .ec-page-heading .breadcrumb-item a {
    color: #5fd0a5;
}

body.dark-theme .ec-page-heading .breadcrumb-item a:hover {
    color: #8ee4c4;
    text-decoration: none;
}

body.dark-theme .ec-page-heading .breadcrumb-item.active {
    color: #c8d0de;
    opacity: 0.9;
}

/* --- Placeholders vs valores (modo claro): valor escuro e em destaque; hint mais claro e sem bold --- */
body:not(.dark-theme) .form-control:not(.form-control-plaintext) {
    color: #1e2329;
}

body:not(.dark-theme) .form-control:not(.form-control-plaintext)::placeholder,
body:not(.dark-theme) .form-control:not(.form-control-plaintext)::-webkit-input-placeholder {
    color: #6c757d;
    opacity: 1;
    font-weight: 400;
}

body:not(.dark-theme) .form-control:not(.form-control-plaintext)::-moz-placeholder {
    color: #6c757d;
    opacity: 1;
    font-weight: 400;
}

body:not(.dark-theme) .form-control:not(.form-control-plaintext):-ms-input-placeholder {
    color: #6c757d;
    font-weight: 400;
}

body:not(.dark-theme) .custom-select {
    color: #1e2329;
}

/* Select2 (modo claro): placeholder da pesquisa vs texto escrito */
body:not(.dark-theme) .select2-container--default .select2-search--dropdown .select2-search__field::placeholder,
body:not(.dark-theme) .select2-container--default .select2-search--dropdown .select2-search__field::-webkit-input-placeholder {
    color: #6c757d;
    opacity: 1;
    font-weight: 400;
}

body:not(.dark-theme) .select2-container--default .select2-selection--single .select2-selection__placeholder {
    color: #6c757d !important;
    font-weight: 400;
}

/* Navegação por secções do evento (pills dentro de faixa suave) */
.ec-section-nav-wrap {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

@media (min-width: 576px) {
    .ec-section-nav-wrap {
        width: auto;
        margin-left: 0.35rem;
    }
}

.ec-section-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.4rem 0.45rem;
    padding: 0.5rem 0.65rem;
    background: linear-gradient(135deg, rgba(95, 208, 165, 0.1) 0%, rgba(85, 195, 183, 0.06) 100%);
    border: 1px solid rgba(95, 208, 165, 0.22);
    border-radius: 14px;
    box-shadow: 0 1px 3px rgba(62, 85, 120, 0.05);
}

.ec-section-nav__link {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    padding: 0.38rem 0.75rem;
    font-size: 0.8125rem;
    font-weight: 600;
    line-height: 1.25;
    color: #2d4a40 !important;
    text-decoration: none !important;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease, transform 0.12s ease;
}

.ec-section-nav__link:hover {
    color: #0f5c44 !important;
    background: #fff;
    border-color: rgba(95, 208, 165, 0.45);
    box-shadow: 0 3px 10px rgba(95, 208, 165, 0.15);
    transform: translateY(-1px);
    text-decoration: none !important;
}

.ec-section-nav__link.is-active {
    color: #fff !important;
    background: linear-gradient(90deg, rgba(85, 195, 183, 1) 0%, rgba(95, 208, 165, 1) 55%, rgba(102, 218, 144, 1) 100%);
    border-color: transparent;
    box-shadow: 0 2px 8px rgba(95, 208, 165, 0.35);
}

.ec-section-nav__link.is-active:hover {
    color: #fff !important;
    filter: brightness(1.03);
    transform: translateY(-1px);
}

.ec-section-nav-icon {
    font-size: 17px;
    line-height: 1;
    margin-right: 0;
    vertical-align: -4px;
    opacity: 0.92;
}

.ec-section-nav__link.is-active .ec-section-nav-icon {
    opacity: 1;
}

body.dark-theme .ec-section-nav {
    background: linear-gradient(135deg, rgba(95, 208, 165, 0.08) 0%, rgba(95, 208, 165, 0.03) 100%);
    border-color: rgba(95, 208, 165, 0.2);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
}

body.dark-theme .ec-section-nav__link {
    color: #e2e6ee !important;
    background: rgba(47, 52, 61, 0.95);
    border-color: rgba(255, 255, 255, 0.08);
    box-shadow: none;
}

body.dark-theme .ec-section-nav__link:hover {
    color: #5fd0a5 !important;
    background: rgba(95, 208, 165, 0.12);
    border-color: rgba(95, 208, 165, 0.35);
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
}

body.dark-theme .ec-section-nav__link.is-active {
    color: #fff !important;
    box-shadow: 0 2px 12px rgba(95, 208, 165, 0.25);
}

body.dark-theme .ec-section-nav__link.is-active:hover {
    color: #fff !important;
}

/* Matriz «todos os dias» — refeições por local (quem comeu) */
.ec-meal-loc-matrix th.ec-meal-loc-day,
.ec-meal-loc-matrix td.ec-meal-loc-day {
    text-align: center;
    vertical-align: middle;
    white-space: nowrap;
    font-size: 0.8rem;
    padding: 0.35rem 0.25rem;
}
.ec-meal-loc-matrix th.ec-meal-loc-day {
    font-weight: 600;
}
.ec-meal-loc-matrix .ec-meal-loc-sticky {
    position: sticky;
    left: 0;
    background: #f8f9fa;
    z-index: 2;
    box-shadow: 2px 0 4px rgba(0, 0, 0, 0.04);
}
.dark-theme .ec-meal-loc-matrix .ec-meal-loc-sticky {
    background: #2a303a;
    box-shadow: 2px 0 4px rgba(0, 0, 0, 0.2);
}
.ec-meal-loc-view-toggle {
    display: flex;
    width: 100%;
    max-width: 20rem;
}
.ec-meal-loc-view-toggle .btn {
    flex: 1 1 0;
    min-width: 0;
    font-weight: 600;
    white-space: nowrap;
}
.ec-meal-loc-view-toggle .btn.btn-outline-primary:hover {
    z-index: 1;
}
.dark-theme .ec-meal-loc-range-box {
    background: rgba(255, 255, 255, 0.04) !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    color: #d1d6e0;
}

/* Permissão refeição (Quem pode comer): bolas por célula */
.ec-perm-dot {
    display: inline-block;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    vertical-align: middle;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.ec-perm-dot--ok {
    background: linear-gradient(135deg, #34c38f 0%, #28a745 100%);
}
.ec-perm-dot--warn {
    background: linear-gradient(135deg, #ffc107 0%, #e0a800 100%);
}
.ec-perm-dot--no {
    background: #ced4da;
}
.dark-theme .ec-perm-dot--no {
    background: #5a6270;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
}
.ec-perm-legend .ec-perm-dot {
    margin-right: 0;
}
.ec-perm-legend-dot-wrap {
    flex-shrink: 0;
    width: 0.65rem;
    padding-top: 0.2rem;
}
.ec-perm-legend-label {
    font-weight: 600;
    font-size: 0.875rem;
}
.ec-perm-legend-label--ok {
    color: #155724;
}
.ec-perm-legend-label--warn {
    color: #856404;
}
.ec-perm-legend-label--no {
    color: #6c757d;
}
.ec-perm-legend-detail {
    font-size: 0.8125rem;
}
.dark-theme .ec-perm-legend-label--ok {
    color: #b9f6ca;
}
.dark-theme .ec-perm-legend-label--warn {
    color: #ffe69c;
}
.dark-theme .ec-perm-legend-label--no {
    color: #c0c9d8;
}
.dark-theme .ec-perm-legend-detail.text-muted {
    color: #9aa7bc !important;
}
.dark-theme .ec-perm-legend.border-top {
    background: #272c35 !important;
    border-color: #3c4554 !important;
    color: #aeb6c6 !important;
}
.dark-theme .ec-perm-legend .font-weight-bold.text-dark {
    color: #e8ecf4 !important;
}

/* Permissões refeição: alternar vista restaurante / participante */
.ec-elig-perspective {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.35rem;
    flex-shrink: 0;
}
.ec-elig-perspective__label {
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: #6c757d;
    line-height: 1.2;
}
.ec-elig-perspective__btns .btn-sm {
    font-weight: 600;
    white-space: nowrap;
}
@media (max-width: 575.98px) {
    .ec-elig-perspective {
        align-items: stretch;
        width: 100%;
    }
    .ec-elig-perspective__btns {
        display: flex;
        width: 100%;
    }
    .ec-elig-perspective__btns > .btn,
    .ec-elig-perspective__btns > span.btn {
        flex: 1 1 0;
        text-align: center;
    }
}
.dark-theme .ec-elig-perspective__label {
    color: #9aa7bc;
}

/* Quem comeu: cores por permissão + consumo diário */
.ec-guest-dot {
    display: inline-block;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    vertical-align: middle;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.06);
}
.ec-guest-dot--green {
    background: linear-gradient(135deg, #34c38f 0%, #28a745 100%);
}
.ec-guest-dot--blue {
    background: linear-gradient(135deg, #4dabf7 0%, #1c7ed6 100%);
}
.ec-guest-dot--yellow {
    background: linear-gradient(135deg, #ffc107 0%, #e0a800 100%);
}
.ec-guest-dot--none {
    background: #ced4da;
}
.dark-theme .ec-guest-dot--none {
    background: #5a6270;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.12);
}
.dark-theme .ec-guest-legend.border-top {
    background: #272c35 !important;
    border-color: #3c4554 !important;
}

.ec-elig-page-actions {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
@media (min-width: 576px) {
    .ec-elig-page-actions {
        gap: 0.65rem;
    }
}

/* ----- Links no conteúdo: contraste legível (fora do breadcrumb / sidebar) ----- */
.connect-container .page-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link),
.connect-container .page-content .card-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link) {
    text-decoration-skip-ink: auto;
}

/* Modo claro: verde mais escuro sobre fundo claro (WCAG) */
body:not(.dark-theme) .connect-container .page-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link),
body:not(.dark-theme) .connect-container .page-content .card-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link),
body:not(.dark-theme) .connect-container .auth-form a:not(.btn):not(.logo-text):not(.close),
body:not(.dark-theme) .connect-container .page-content .table a:not(.btn):not(.badge) {
    color: #0f5c44;
    font-weight: 500;
}

body:not(.dark-theme) .connect-container .page-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link):hover,
body:not(.dark-theme) .connect-container .page-content .card-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link):hover,
body:not(.dark-theme) .connect-container .auth-form a:not(.btn):not(.logo-text):not(.close):hover,
body:not(.dark-theme) .connect-container .page-content .table a:not(.btn):not(.badge):hover {
    color: #0a4030;
    text-decoration: underline;
}

/* Bootstrap: links com text-muted / text-body em tabelas e listas */
body:not(.dark-theme) .connect-container .page-content .table a.text-muted,
body:not(.dark-theme) .connect-container .page-content .table a.text-body {
    color: #0f5c44 !important;
}

body:not(.dark-theme) .connect-container .page-content .table a.text-muted:hover,
body:not(.dark-theme) .connect-container .page-content .table a.text-body:hover {
    color: #0a4030 !important;
}

/* Modo escuro: azul claro legível; cobre page-body, cartões e portal */
body.dark-theme .connect-container .page-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link),
body.dark-theme .connect-container .page-content .card-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link),
body.dark-theme .connect-container .auth-form a:not(.btn):not(.logo-text):not(.close),
body.dark-theme .connect-container .page-content .table a:not(.btn):not(.badge),
body.dark-theme .connect-container.portal-cred-shell a:not(.btn):not(.logo-text):not(.nav-link):not(.page-link):not(.badge):not(.close) {
    color: #9ed2ff;
    font-weight: 500;
}

body.dark-theme .connect-container .page-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link):hover,
body.dark-theme .connect-container .page-content .card-body a:not(.btn):not(.dropdown-item):not(.nav-link):not(.page-link):not(.badge):not(.logo-text):not(.list-group-item-action):not(.close):not(.alert-link):hover,
body.dark-theme .connect-container .auth-form a:not(.btn):not(.logo-text):not(.close):hover,
body.dark-theme .connect-container .page-content .table a:not(.btn):not(.badge):hover,
body.dark-theme .connect-container.portal-cred-shell a:not(.btn):not(.logo-text):not(.nav-link):not(.page-link):not(.badge):not(.close):hover {
    color: #cfe9ff;
    text-decoration: underline;
}

body.dark-theme .connect-container .page-content .table a.text-muted,
body.dark-theme .connect-container .page-content .table a.text-body {
    color: #9ed2ff !important;
}

body.dark-theme .connect-container .page-content .table a.text-muted:hover,
body.dark-theme .connect-container .page-content .table a.text-body:hover {
    color: #cfe9ff !important;
}

/* Dark mode: texto cinzento legível na shell da app (placeholders mantêm regras ::placeholder em dark_theme.css) */
body.dark-theme .connect-container .page-content,
body.dark-theme .connect-container .page-body {
    color: #d1d6e0;
}

body.dark-theme .connect-container .text-muted {
    color: #aeb6c6 !important;
}

body.dark-theme .connect-container .text-secondary {
    color: #b8c0ce !important;
}

body.dark-theme .connect-container .text-dark {
    color: #e8ecf4 !important;
}

body.dark-theme .connect-container .card-body,
body.dark-theme .connect-container .card-header:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-warning):not(.bg-info) {
    color: #d1d6e0;
}

body.dark-theme .connect-container label:not(.btn):not(.custom-control-label) {
    color: #e0e4ee;
}

body.dark-theme .connect-container .custom-control-label {
    color: #dce0ea;
}

body.dark-theme .connect-container .form-text {
    color: #aeb6c6 !important;
}

body.dark-theme .connect-container .page-footer,
body.dark-theme .connect-container .page-footer .footer-text {
    color: #9aa3b4;
}

body.dark-theme .connect-container .thead-light th {
    color: #c8d0de !important;
}

body.dark-theme .connect-container .ec-audit-table thead th {
    color: #c8d0de !important;
}

/* Botões e hiperligações: cursor em forma de mão (tema connect não define .btn; UA usa seta em <button>) */
a[href],
button:not(:disabled):not(.disabled),
input[type="button"]:not(:disabled):not(.disabled),
input[type="submit"]:not(:disabled):not(.disabled),
input[type="reset"]:not(:disabled):not(.disabled),
.btn:not(:disabled):not(.disabled),
[role="button"]:not([aria-disabled="true"]):not(.disabled),
.nav-link[href],
.dropdown-item:not(:disabled):not(.disabled),
.page-link:not(.disabled),
.list-group-item-action,
a.badge[href],
label.custom-control-label,
summary {
    cursor: pointer;
}