:root[data-theme='dark'],
:root.cc--darkmode {
  --hc-bg: rgba(68, 68, 68, 1);
  --hc-surface: rgba(37, 37, 37, 1);
  --hc-border: rgba(0, 0, 0, 0.1);
  --hc-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.25);
  --hc-header-shadow: 3px 0px 4px 0px rgba(0, 0, 0, 0.25);
  --hc-text: rgba(255, 255, 255, 1);
  --hc-btn: rgba(255, 255, 255, 1);
  --hc-btn-border: rgba(255, 255, 255, 1);
  --hc-table-border: rgba(135, 135, 135, 1);
  --hc-table-row-dark: rgba(68, 68, 68, 1);
  --hc-table-row-light: rgba(90, 90, 90, 1);
  --hc-modal-accent: rgba(255, 234, 3, 1);
}

:root[data-theme='dark'] body,
:root.cc--darkmode body {
  background: var(--hc-bg);
  color: var(--hc-text);
}

:root[data-theme='dark'] .main-header,
:root[data-theme='dark'] .main-footer,
:root.cc--darkmode .main-header,
:root.cc--darkmode .main-footer {
  background: var(--hc-surface);
  border: 1px solid var(--hc-border);
  box-shadow: var(--hc-header-shadow);
}

:root[data-theme='dark'] .content-area,
:root.cc--darkmode .content-area {
  background: var(--hc-bg);
  border: none;
  box-shadow: none;
  color: var(--hc-text);
}

:root[data-theme='dark'] .main-container,
:root.cc--darkmode .main-container {
  background: var(--hc-bg);
}

:root[data-theme='dark'] .page-header-row,
:root[data-theme='dark'] .card,
:root[data-theme='dark'] .box,
:root[data-theme='dark'] .form-card,
:root[data-theme='dark'] .modal-content,
:root.cc--darkmode .page-header-row,
:root.cc--darkmode .card,
:root.cc--darkmode .box,
:root.cc--darkmode .form-card,
:root.cc--darkmode .modal-content {
  background: var(--hc-surface);
  border: 1px solid var(--hc-border);
  box-shadow: var(--hc-shadow);
  color: var(--hc-text);
}

:root[data-theme='dark'] .table-responsive,
:root.cc--darkmode .table-responsive {
  background: transparent;
  border: none;
  box-shadow: none;
}

:root[data-theme='dark'] .breadcrumb,
:root.cc--darkmode .breadcrumb {
  color: var(--hc-text);
}

:root[data-theme='dark'] .page-title-main,
:root.cc--darkmode .page-title-main {
  color: var(--hc-text);
}

:root[data-theme='dark'] .page-header,
:root.cc--darkmode .page-header {
  background: var(--hc-bg);
  border: none;
  box-shadow: none;
}

:root[data-theme='dark'] .page-header-row,
:root[data-theme='dark'] .page-header-content,
:root.cc--darkmode .page-header-row,
:root.cc--darkmode .page-header-content {
  background: var(--hc-bg) !important;
  border: none !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .search-bar,
:root.cc--darkmode .search-bar {
  background: var(--hc-bg) !important;
  border: none !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .search-bar input,
:root.cc--darkmode .search-bar input {
  background: var(--hc-surface);
  color: var(--hc-text);
  border: 1px solid var(--hc-table-border);
}

:root[data-theme='dark'] .search-bar i,
:root.cc--darkmode .search-bar i {
  color: var(--hc-text);
}

:root[data-theme='dark'] .turno-tabs .nav-link,
:root.cc--darkmode .turno-tabs .nav-link {
  background: var(--hc-surface);
  color: var(--hc-text);
  border: 1px solid var(--hc-border);
}

:root[data-theme='dark'] .turno-tabs .nav-link.active,
:root.cc--darkmode .turno-tabs .nav-link.active {
  background: var(--hc-btn);
  color: #000;
  border: 1px solid var(--hc-btn-border);
}

:root[data-theme='dark'] .turmas-wrapper,
:root.cc--darkmode .turmas-wrapper {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: var(--hc-shadow) !important;
  color: var(--hc-text);
}

:root[data-theme='dark'] .turma-details-panel,
:root.cc--darkmode .turma-details-panel {
  background: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: none !important;
  color: var(--hc-text);
}

:root[data-theme='dark'] .turno-tabs,
:root.cc--darkmode .turno-tabs {
  background: var(--hc-bg) !important;
  border: none !important;
  box-shadow: none !important;
  color: var(--hc-text);
}

:root[data-theme='dark'] .turma-card,
:root.cc--darkmode .turma-card {
  background: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: var(--hc-shadow) !important;
  color: var(--hc-text);
}

:root[data-theme='dark'] .detail-section,
:root.cc--darkmode .detail-section {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: var(--hc-shadow) !important;
  color: var(--hc-text);
}

:root[data-theme='dark'] .turma-header,
:root.cc--darkmode .turma-header {
  border-bottom: 2px solid var(--hc-table-border);
}

:root[data-theme='dark'] .turma-titulo,
:root[data-theme='dark'] .turma-subinfo,
:root[data-theme='dark'] .turma-horario,
:root[data-theme='dark'] .turma-professor,
:root.cc--darkmode .turma-titulo,
:root.cc--darkmode .turma-subinfo,
:root.cc--darkmode .turma-horario,
:root.cc--darkmode .turma-professor {
  color: var(--hc-text);
}

:root[data-theme='dark'] .turma-horario i,
:root[data-theme='dark'] .turma-professor i,
:root.cc--darkmode .turma-horario i,
:root.cc--darkmode .turma-professor i {
  color: var(--hc-text);
}

:root[data-theme='dark'] .dia-tag,
:root.cc--darkmode .dia-tag {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .accordion-item,
:root.cc--darkmode .accordion-item {
  background: transparent;
  border: none;
}

:root[data-theme='dark'] .accordion-button,
:root.cc--darkmode .accordion-button {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .accordion-button i,
:root.cc--darkmode .accordion-button i {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .accordion-button .bi,
:root[data-theme='dark'] .accordion-button:not(.collapsed) .bi,
:root.cc--darkmode .accordion-button .bi,
:root.cc--darkmode .accordion-button:not(.collapsed) .bi {
  color: #fff !important;
}

:root[data-theme='dark'] .accordion-button i.bi,
:root[data-theme='dark'] .accordion-button:not(.collapsed) i.bi,
:root.cc--darkmode .accordion-button i.bi,
:root.cc--darkmode .accordion-button:not(.collapsed) i.bi {
  color: #fff !important;
}

/* Ícone do badge «Avaliado» no acordeão (avaliação de alunos): manter preto ao expandir — vence .accordion-button:not(.collapsed) i.bi acima */
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado .bi,
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado .bi,
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado i,
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado i,
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado i.bi,
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado i.bi,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado .bi,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado .bi,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado i,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado i,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado i.bi,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado i.bi,
html[data-theme='dark'] .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado i.bi,
html[data-theme='dark'] .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado i.bi,
html[data-bs-theme='dark'] .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado i.bi,
html[data-bs-theme='dark'] .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado i.bi,
html.cc--darkmode .avaliacao-alunos-page .accordion-button .avaliacao-accordion-badge-avaliado i.bi,
html.cc--darkmode .avaliacao-alunos-page .accordion-button:not(.collapsed) .avaliacao-accordion-badge-avaliado i.bi {
  color: #000 !important;
}

:root[data-theme='dark'] .accordion-button::after,
:root.cc--darkmode .accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}

:root[data-theme='dark'] .turma-collapse-toggle::after,
:root.cc--darkmode .turma-collapse-toggle::after {
  color: #fff !important;
}

:root[data-theme='dark'] .accordion-button:not(.collapsed),
:root.cc--darkmode .accordion-button:not(.collapsed) {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .accordion-body,
:root.cc--darkmode .accordion-body {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .action-link,
:root.cc--darkmode .action-link {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .action-link:hover,
:root.cc--darkmode .action-link:hover {
  background: var(--hc-btn) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .btn-abrir-turma,
:root.cc--darkmode .btn-abrir-turma {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
  box-shadow: var(--hc-shadow) !important;
}

:root[data-theme='dark'] .btn-abrir-turma:hover,
:root.cc--darkmode .btn-abrir-turma:hover {
  background: var(--hc-btn) !important;
  color: #000 !important;
  transform: translateY(-2px);
}

:root[data-theme='dark'] .details-btn,
:root.cc--darkmode .details-btn {
  background: transparent;
  color: var(--hc-text);
  border: 1px solid var(--hc-btn-border);
}

:root[data-theme='dark'] .details-btn:hover,
:root.cc--darkmode .details-btn:hover {
  background: var(--hc-btn) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .details-btn.primary,
:root.cc--darkmode .details-btn.primary {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .detail-label,
:root[data-theme='dark'] .detail-value,
:root.cc--darkmode .detail-label,
:root.cc--darkmode .detail-value {
  color: var(--hc-text);
}

:root[data-theme='dark'] .detail-row,
:root.cc--darkmode .detail-row {
  border-bottom: 1px solid var(--hc-table-border);
}

:root[data-theme='dark'] .details-title h3,
:root[data-theme='dark'] .detail-section-title,
:root.cc--darkmode .details-title h3,
:root.cc--darkmode .detail-section-title {
  color: var(--hc-text);
}

:root[data-theme='dark'] .details-title i,
:root[data-theme='dark'] .detail-section-title i,
:root.cc--darkmode .details-title i,
:root.cc--darkmode .detail-section-title i {
  color: var(--hc-text);
}

:root[data-theme='dark'] .details-header,
:root.cc--darkmode .details-header {
  border-bottom: 2px solid var(--hc-table-border);
}

:root[data-theme='dark'] .close-details,
:root.cc--darkmode .close-details {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .close-details:hover,
:root.cc--darkmode .close-details:hover {
  color: var(--hc-btn) !important;
}

:root[data-theme='dark'] .details-grid,
:root[data-theme='dark'] .details-actions,
:root.cc--darkmode .details-grid,
:root.cc--darkmode .details-actions {
  background: var(--hc-bg);
}

:root[data-theme='dark'] a,
:root.cc--darkmode a {
  color: var(--hc-text);
}

:root[data-theme='dark'] .btn-primary,
:root[data-theme='dark'] .btn.btn-primary,
:root[data-theme='dark'] .btn-voltar,
:root[data-theme='dark'] .btn-avaliacao-salvar,
:root[data-theme='dark'] .btn-conjunto-save,
:root.cc--darkmode .btn-primary,
:root.cc--darkmode .btn.btn-primary,
:root.cc--darkmode .btn-voltar,
:root.cc--darkmode .btn-avaliacao-salvar,
:root.cc--darkmode .btn-conjunto-save {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

/* Botões sólidos (exceto perigo, link e fechar): fundo claro e texto preto — evita amarelo + texto branco do Bootstrap */
:root[data-theme='dark'] .btn:not(.btn-link):not(.btn-close):not(.btn-danger):not(.btn-outline-danger):not(.btn-outline-secondary):not(.btn-outline-primary):not(.btn-avaliacao-salvar):not(.btn-primary):not(.btn-voltar):not(.btn-conjunto-delete):not(.btn-conjunto-save),
:root.cc--darkmode .btn:not(.btn-link):not(.btn-close):not(.btn-danger):not(.btn-outline-danger):not(.btn-outline-secondary):not(.btn-outline-primary):not(.btn-avaliacao-salvar):not(.btn-primary):not(.btn-voltar):not(.btn-conjunto-delete):not(.btn-conjunto-save) {
  border: 1px solid var(--hc-btn-border) !important;
  color: #000 !important;
  background: var(--hc-btn) !important;
}

:root[data-theme='dark'] .btn:not(.btn-link):not(.btn-close) i,
:root.cc--darkmode .btn:not(.btn-link):not(.btn-close) i {
  color: inherit !important;
}

:root[data-theme='dark'] .btn-danger,
:root[data-theme='dark'] .btn.btn-danger,
:root[data-theme='dark'] .btn-conjunto-delete,
:root.cc--darkmode .btn-danger,
:root.cc--darkmode .btn.btn-danger,
:root.cc--darkmode .btn-conjunto-delete {
  background: #b02a37 !important;
  color: #fff !important;
  border: 1px solid #f5c2c7 !important;
}

:root[data-theme='dark'] .btn-outline-secondary,
:root[data-theme='dark'] .btn.btn-outline-secondary,
:root.cc--darkmode .btn-outline-secondary,
:root.cc--darkmode .btn.btn-outline-secondary {
  background: transparent !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .btn-outline-danger,
:root[data-theme='dark'] .btn.btn-outline-danger,
:root.cc--darkmode .btn-outline-danger,
:root.cc--darkmode .btn.btn-outline-danger {
  background: transparent !important;
  color: #fecaca !important;
  border: 1px solid #f87171 !important;
}

:root[data-theme='dark'] .btn-link,
:root.cc--darkmode .btn-link {
  background: transparent !important;
  color: var(--hc-text) !important;
  border: none !important;
  text-decoration: underline;
}

/* Exceção: remover fundo amarelo do botão dropdown de perfil */
:root[data-theme='dark'] .navbar-text ~ button,
:root[data-theme='dark'] button[data-bs-toggle="dropdown"],
:root.cc--darkmode .navbar-text ~ button,
:root.cc--darkmode button[data-bs-toggle="dropdown"] {
  background: transparent !important;
  border: none !important;
}

:root[data-theme='dark'] table,
:root[data-theme='dark'] .table,
:root.cc--darkmode table,
:root.cc--darkmode .table {
  color: var(--hc-text);
  border: 1px solid var(--hc-table-border);
}

:root[data-theme='dark'] .table tbody tr:nth-child(odd),
:root.cc--darkmode .table tbody tr:nth-child(odd) {
  background: var(--hc-table-row-dark);
}

:root[data-theme='dark'] .table tbody tr:nth-child(even),
:root.cc--darkmode .table tbody tr:nth-child(even) {
  background: var(--hc-table-row-light);
}

:root[data-theme='dark'] .table th,
:root[data-theme='dark'] .table td,
:root.cc--darkmode .table th,
:root.cc--darkmode .table td {
  border-color: var(--hc-table-border);
}

:root[data-theme='dark'] .modal-content input[type='checkbox'],
:root.cc--darkmode .modal-content input[type='checkbox'] {
  accent-color: var(--hc-modal-accent);
}

:root[data-theme='dark'] .form-check-input:checked,
:root.cc--darkmode .form-check-input:checked {
  background-color: var(--hc-modal-accent) !important;
  border-color: var(--hc-modal-accent) !important;
  background-image: radial-gradient(circle, #000 45%, transparent 46%) !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: 100% 100% !important;
}

:root[data-theme='dark'] .form-check-input[type="radio"]:checked,
:root.cc--darkmode .form-check-input[type="radio"]:checked {
  background-image: none !important;
}

:root[data-theme='dark'] .modal-content .btn,
:root.cc--darkmode .modal-content .btn {
  background: var(--hc-modal-accent) !important;
  color: #000 !important;
  border: 1px solid var(--hc-modal-accent) !important;
}

:root[data-theme='dark'] .modal-content .btn.btn-secondary,
:root[data-theme='dark'] .modal-content .btn.btn-outline-secondary,
:root.cc--darkmode .modal-content .btn.btn-secondary,
:root.cc--darkmode .modal-content .btn.btn-outline-secondary {
  background: transparent !important;
  color: var(--hc-modal-accent) !important;
  border: 1px solid var(--hc-modal-accent) !important;
}

:root[data-theme='dark'] .modal-body,
:root[data-theme='dark'] #conteudoModalExibir,
:root.cc--darkmode .modal-body,
:root.cc--darkmode #conteudoModalExibir {
  color: var(--hc-text) !important;
  background: var(--hc-surface) !important;
}

:root[data-theme='dark'] .modal-body p,
:root[data-theme='dark'] .modal-body .registro-aula-title,
:root.cc--darkmode .modal-body p,
:root.cc--darkmode .modal-body .registro-aula-title {
  color: var(--hc-text) !important;
}

/* Warning box inside modal - ensure readable contrast */
:root[data-theme='dark'] .modal-body div[style*="background: #fef3c7"],
:root.cc--darkmode .modal-body div[style*="background: #fef3c7"] {
  background: var(--hc-surface) !important;
  border-left-color: var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .modal-body div[style*="background: #fef3c7"] p,
:root[data-theme='dark'] .modal-body div[style*="background: #fef3c7"] strong,
:root.cc--darkmode .modal-body div[style*="background: #fef3c7"] p,
:root.cc--darkmode .modal-body div[style*="background: #fef3c7"] strong {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .registro-aula-title,
:root.cc--darkmode .registro-aula-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .print-monthly-btn,
:root.cc--darkmode .print-monthly-btn {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border-color: var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .print-monthly-btn:hover,
:root.cc--darkmode .print-monthly-btn:hover {
  background: var(--hc-btn) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .modal-header,
:root[data-theme='dark'] .modal-footer,
:root.cc--darkmode .modal-header,
:root.cc--darkmode .modal-footer {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-border) !important;
}

:root[data-theme='dark'] .modal .btn-close,
:root.cc--darkmode .modal .btn-close {
  filter: invert(1);
}

:root[data-theme='dark'] .modal-content .form-check-input:checked,
:root.cc--darkmode .modal-content .form-check-input:checked {
  background-color: var(--hc-modal-accent) !important;
  border-color: var(--hc-modal-accent) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3 6-6'/%3E%3C/svg%3E") !important;
}

:root[data-theme='dark'] .turma-card .accordion-button,
:root.cc--darkmode .turma-card .accordion-button {
  color: #fff !important;
}

:root[data-theme='dark'] .turma-card .accordion-button i,
:root[data-theme='dark'] .turma-card .accordion-button .bi,
:root[data-theme='dark'] .turma-card .accordion-button:not(.collapsed) i,
:root[data-theme='dark'] .turma-card .accordion-button:not(.collapsed) .bi,
:root.cc--darkmode .turma-card .accordion-button i,
:root.cc--darkmode .turma-card .accordion-button .bi,
:root.cc--darkmode .turma-card .accordion-button:not(.collapsed) i,
:root.cc--darkmode .turma-card .accordion-button:not(.collapsed) .bi {
  color: #fff !important;
}

:root[data-theme='dark'] .dropdown-menu,
:root.cc--darkmode .dropdown-menu {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .profile-dropdown-menu,
:root.cc--darkmode .profile-dropdown-menu {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .profile-dropdown-header,
:root.cc--darkmode .profile-dropdown-header {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border-bottom: 1px solid var(--hc-border);
}

:root[data-theme='dark'] .profile-dropdown-header .text-white-50,
:root.cc--darkmode .profile-dropdown-header .text-white-50 {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .profile-dropdown-menu .dropdown-item,
:root.cc--darkmode .profile-dropdown-menu .dropdown-item {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .profile-dropdown-menu .dropdown-item-card .dropdown-item-title,
:root.cc--darkmode .profile-dropdown-menu .dropdown-item-card .dropdown-item-title {
  color: #ffffff !important;
}

:root[data-theme='dark'] .profile-dropdown-menu .dropdown-item-card .dropdown-item-subtitle,
:root.cc--darkmode .profile-dropdown-menu .dropdown-item-card .dropdown-item-subtitle {
  color: #e2e8f0 !important;
}

:root[data-theme='dark'] .profile-dropdown-menu .dropdown-item-card .dropdown-item-icon,
:root.cc--darkmode .profile-dropdown-menu .dropdown-item-card .dropdown-item-icon {
  background: #444444 !important;
  color: #ffffff !important;
}

:root[data-theme='dark'] .dropdown-item.text-danger:hover i,
:root.cc--darkmode .dropdown-item.text-danger:hover i {
  border-left-color: var(--hc-btn) !important;
  color: #ffffff !important;
}

:root[data-theme='dark'] .dropdown-item:hover,
:root.cc--darkmode .dropdown-item:hover {
  border-left-color: var(--hc-btn) !important;
} 

:root[data-theme='dark'] .profile-dropdown-menu .dropdown-item-card .dropdown-item-icon--danger,
:root.cc--darkmode .profile-dropdown-menu .dropdown-item-card .dropdown-item-icon--danger {
  background: #7f1d1d !important;
  color: #ffffff !important;
}

:root[data-theme='dark'] .dropdown-item,
:root.cc--darkmode .dropdown-item {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .dropdown-item:hover,
:root.cc--darkmode .dropdown-item:hover {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .mobile-menu-panel,
:root.cc--darkmode .mobile-menu-panel {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .mobile-menu-title,
:root.cc--darkmode .mobile-menu-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .mobile-menu-link,
:root.cc--darkmode .mobile-menu-link,
:root[data-theme='dark'] .mobile-menu-panel .accessibility-btn,
:root.cc--darkmode .mobile-menu-panel .accessibility-btn {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

/* Registrar Frequência */
:root[data-theme='dark'] .registrar-title,
:root[data-theme='dark'] .registrar-subtitle,
:root.cc--darkmode .registrar-title,
:root.cc--darkmode .registrar-subtitle{
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .registrar-container,
:root.cc--darkmode .registrar-container {
  background: var(--hc-bg);
}

:root[data-theme='dark'] .cards-footer-block,
:root.cc--darkmode .cards-footer-block {
  background: var(--hc-surface);
  border: 1px solid var(--hc-border);
  box-shadow: var(--hc-shadow);
  color: var(--hc-text);
}

:root[data-theme='dark'] .frequencia-table-wrapper,
:root.cc--darkmode .frequencia-table-wrapper {
  background: var(--hc-bg);
  box-shadow: none;
}

:root[data-theme='dark'] .frequencia-table-wrapper thead th,
:root.cc--darkmode .frequencia-table-wrapper thead th {
  background: var(--hc-surface);
  color: var(--hc-text);
  border: 1px solid var(--hc-border);
}

:root[data-theme='dark'] .frequencia-table-wrapper tbody tr,
:root.cc--darkmode .frequencia-table-wrapper tbody tr {
  border-bottom: 1px solid var(--hc-table-border);
}

:root[data-theme='dark'] .frequencia-table-wrapper tbody tr:hover,
:root.cc--darkmode .frequencia-table-wrapper tbody tr:hover {
  background-color: var(--hc-surface);
  box-shadow: inset 0 0 0 1px var(--hc-table-border);
}

:root[data-theme='dark'] .frequencia-table-wrapper td,
:root.cc--darkmode .frequencia-table-wrapper td {
  color: var(--hc-text);
}

:root[data-theme='dark'] .form-check-input,
:root.cc--darkmode .form-check-input {
  border: 2px solid var(--hc-table-border);
  appearance: none;
  -webkit-appearance: none;
  background-color: var(--hc-bg);
}

:root[data-theme='dark'] #btnSalvar,
:root.cc--darkmode #btnSalvar {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
  box-shadow: var(--hc-shadow) !important;
}

:root[data-theme='dark'] #btnSalvar:hover,
:root.cc--darkmode #btnSalvar:hover {
  background: var(--hc-btn) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .frequencia-card,
:root.cc--darkmode .frequencia-card {
  background: var(--hc-bg);
  border: 1px solid var(--hc-border);
  color: var(--hc-text);
}

:root[data-theme='dark'] .frequencia-card .aluno,
:root.cc--darkmode .frequencia-card .aluno {
  color: var(--hc-text);
}

:root[data-theme='dark'] .button-status,
:root.cc--darkmode .button-status {
  background: var(--hc-btn);
  color: #000;
  border: 1px solid var(--hc-btn-border);
}

/* Visualizar Frequência (listar frequência) */
:root[data-theme='dark'] .visualizar-title,
:root[data-theme='dark'] .visualizar-subtitle,
:root.cc--darkmode .visualizar-title,
:root.cc--darkmode .visualizar-subtitle {
  color: var(--hc-text);
}

:root[data-theme='dark'] .view-tabs,
:root.cc--darkmode .view-tabs {
  background: var(--hc-bg);
}

:root[data-theme='dark'] .view-tabs::after,
:root.cc--darkmode .view-tabs::after {
  background-color: var(--hc-table-border);
}

:root[data-theme='dark'] .view-tab,
:root.cc--darkmode .view-tab {
  color: var(--hc-text);
}

:root[data-theme='dark'] .view-tab.active,
:root.cc--darkmode .view-tab.active {
  background: var(--hc-surface);
  color: var(--hc-text);
  border: 1px solid var(--hc-border);
  border-radius: 8px;
}

:root[data-theme='dark'] .view-tab.active::after,
:root.cc--darkmode .view-tab.active::after {
  background: var(--hc-table-border);
}

:root[data-theme='dark'] .calendar-panel,
:root.cc--darkmode .calendar-panel,
:root[data-theme='dark'] .frequencia-panel,
:root.cc--darkmode .frequencia-panel,
:root[data-theme='dark'] .monthly-view,
:root.cc--darkmode .monthly-view {
  background: var(--hc-surface);
  border: 1px solid var(--hc-border);
  box-shadow: var(--hc-shadow);
  color: var(--hc-text);
}

:root[data-theme='dark'] .calendar-navigation,
:root.cc--darkmode .calendar-navigation,
:root[data-theme='dark'] .frequencia-header,
:root.cc--darkmode .frequencia-header,
:root[data-theme='dark'] .monthly-header,
:root.cc--darkmode .monthly-header {
  border-bottom: 2px solid var(--hc-table-border);
}

:root[data-theme='dark'] .nav-display,
:root.cc--darkmode .nav-display,
:root[data-theme='dark'] .frequencia-date-value,
:root.cc--darkmode .frequencia-date-value,
:root[data-theme='dark'] .monthly-header h3,
:root.cc--darkmode .monthly-header h3 {
  color: var(--hc-text);
}

:root[data-theme='dark'] .frequency-table-wrapper,
:root.cc--darkmode .frequency-table-wrapper {
  background: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .monthly-legend-item,
:root.cc--darkmode .monthly-legend-item {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .monthly-legend .status-badge,
:root.cc--darkmode .monthly-legend .status-badge {
  border: 1px solid var(--hc-btn-border) !important;
  border-bottom: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .monthly-legend .status-present,
:root.cc--darkmode .monthly-legend .status-present {
  background: var(--hc-btn) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .monthly-legend .status-absent,
:root.cc--darkmode .monthly-legend .status-absent {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .monthly-legend .status-justified,
:root.cc--darkmode .monthly-legend .status-justified {
  background: var(--hc-table-border) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .frequency-table thead,
:root.cc--darkmode .frequency-table thead {
  background: var(--hc-surface) !important;
}

:root[data-theme='dark'] .frequency-table th,
:root.cc--darkmode .frequency-table th {
  color: var(--hc-text) !important;
  border-right: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .frequency-table tbody tr,
:root.cc--darkmode .frequency-table tbody tr {
  background: var(--hc-bg) !important;
  border-bottom: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .frequency-table tbody tr:hover,
:root.cc--darkmode .frequency-table tbody tr:hover {
  background: var(--hc-surface) !important;
}

:root[data-theme='dark'] .frequency-table td,
:root[data-theme='dark'] .frequency-table td.col-aluno,
:root[data-theme='dark'] .table-aluno-name,
:root.cc--darkmode .frequency-table td,
:root.cc--darkmode .frequency-table td.col-aluno,
:root.cc--darkmode .table-aluno-name {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .table-aluno-avatar,
:root.cc--darkmode .table-aluno-avatar {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .frequency-table .status-badge,
:root.cc--darkmode .frequency-table .status-badge {
  border: 1px solid var(--hc-btn-border) !important;
  border-bottom: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .frequency-table .status-present,
:root.cc--darkmode .frequency-table .status-present {
  background: var(--hc-btn) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .frequency-table .status-absent,
:root.cc--darkmode .frequency-table .status-absent {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .frequency-table .status-justified,
:root.cc--darkmode .frequency-table .status-justified {
  background: var(--hc-table-border) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .frequency-table .status-pending,
:root.cc--darkmode .frequency-table .status-pending {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .btn-three-dots,
:root.cc--darkmode .btn-three-dots {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .btn-three-dots:hover:not(.disabled),
:root.cc--darkmode .btn-three-dots:hover:not(.disabled) {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .dropdown-menu,
:root.cc--darkmode .dropdown-menu {
  background: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .dropdown-item,
:root.cc--darkmode .dropdown-item {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .dropdown-item:hover,
:root.cc--darkmode .dropdown-item:hover {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .nav-arrow,
:root.cc--darkmode .nav-arrow {
  background: var(--hc-bg);
  border: 1px solid var(--hc-border);
  color: var(--hc-text);
}

:root[data-theme='dark'] .nav-arrow:hover,
:root.cc--darkmode .nav-arrow:hover {
  background: var(--hc-surface);
  border-color: var(--hc-table-border);
  color: var(--hc-text);
}

:root[data-theme='dark'] .calendar-day-label,
:root.cc--darkmode .calendar-day-label {
  color: var(--hc-text);
}

:root[data-theme='dark'] .calendar-day,
:root.cc--darkmode .calendar-day {
  background: var(--hc-bg);
  border: 1px solid var(--hc-border);
  color: var(--hc-text);
}

:root[data-theme='dark'] .calendar-day.has-aula,
:root.cc--darkmode .calendar-day.has-aula {
  border-color: var(--hc-btn-border);
}

:root[data-theme='dark'] .calendar-day.selected,
:root.cc--darkmode .calendar-day.selected {
  background: var(--hc-btn);
  color: #000;
  border-color: var(--hc-btn-border);
}

:root[data-theme='dark'] .calendar-day:hover:not(.disabled):not(.empty),
:root.cc--darkmode .calendar-day:hover:not(.disabled):not(.empty) {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .calendar-day.selected:hover,
:root.cc--darkmode .calendar-day.selected:hover {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border-color: var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .calendar-day.disabled,
:root[data-theme='dark'] .calendar-day.empty,
:root.cc--darkmode .calendar-day.disabled,
:root.cc--darkmode .calendar-day.empty {
  background: var(--hc-surface);
  color: #9aa0a6;
  border-color: var(--hc-border);
}

:root[data-theme='dark'] .calendar-legend,
:root.cc--darkmode .calendar-legend {
  background: var(--hc-bg);
  color: var(--hc-text);
}

:root[data-theme='dark'] .legend-dot.com-aula,
:root.cc--darkmode .legend-dot.com-aula {
  background: var(--hc-btn);
}

:root[data-theme='dark'] .legend-dot.sem-aula,
:root.cc--darkmode .legend-dot.sem-aula {
  background: var(--hc-table-border);
}

:root[data-theme='dark'] .stat-badge,
:root.cc--darkmode .stat-badge {
  background: var(--hc-bg);
  color: var(--hc-text);
}

:root[data-theme='dark'] .stat-badge .value,
:root.cc--darkmode .stat-badge .value {
  color: var(--hc-text);
}

:root[data-theme='dark'] .frequencia-stats,
:root.cc--darkmode .frequencia-stats {
  background: var(--hc-surface);
}

:root[data-theme='dark'] .aluno-item,
:root.cc--darkmode .aluno-item {
  background: var(--hc-bg);
  border: 1px solid var(--hc-border);
  color: var(--hc-text);
}

:root[data-theme='dark'] .aluno-detail-item,
:root.cc--darkmode .aluno-detail-item {
  background: var(--hc-bg);
  border: 1px solid var(--hc-border);
  color: var(--hc-text);
}

:root[data-theme='dark'] .aluno-detail-header,
:root.cc--darkmode .aluno-detail-header {
  color: var(--hc-text);
}

:root[data-theme='dark'] .aluno-detail-header:hover,
:root.cc--darkmode .aluno-detail-header:hover {
  background: var(--hc-surface) !important;
}

:root[data-theme='dark'] .aluno-detail-header .btn,
:root[data-theme='dark'] .aluno-detail-header .btn i,
:root.cc--darkmode .aluno-detail-header .btn,
:root.cc--darkmode .aluno-detail-header .btn i {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .aluno-detail-header .btn,
:root.cc--darkmode .aluno-detail-header .btn {
  background: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .aluno-item,
:root.cc--darkmode .aluno-item {
  background: var(--hc-bg);
  border: 1px solid var(--hc-border);
  color: var(--hc-text);
}

:root[data-theme='dark'] .aluno-item:hover,
:root.cc--darkmode .aluno-item:hover {
  background: var(--hc-surface);
  border-color: var(--hc-table-border);
}

:root[data-theme='dark'] .aluno-avatar,
:root.cc--darkmode .aluno-avatar {
  background: var(--hc-btn);
  color: #000;
}

/* Área do Aluno */
:root[data-theme='dark'] .aluno-access-header,
:root.cc--darkmode .aluno-access-header {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border-bottom: 1px solid var(--hc-border);
}

:root[data-theme='dark'] .aluno-access-body label,
:root.cc--darkmode .aluno-access-body label {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .matriculas-title,
:root.cc--darkmode .matriculas-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .matriculas-subtitle,
:root.cc--darkmode .matriculas-subtitle {
  color: #ffffff !important;
}

:root[data-theme='dark'] .aluno-nome,
:root.cc--darkmode .aluno-nome {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .btn-sair-aluno,
:root.cc--darkmode .btn-sair-aluno {
  background: var(--hc-btn) !important;
  border: 2px solid var(--hc-btn-border) !important;
  color: #000 !important;
  box-shadow: var(--hc-shadow) !important;
}

:root[data-theme='dark'] .badge-titular,
:root.cc--darkmode .badge-titular {
  background: var(--hc-btn) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .badge-dependente,
:root.cc--darkmode .badge-dependente {
  background: var(--hc-table-border) !important;
  color: #000 !important;
}

/* Cards de Matrícula */
:root[data-theme='dark'] .status-badge,
:root.cc--darkmode .status-badge {
  background: var(--hc-surface) !important;
  border-bottom: 2px solid var(--hc-table-border) !important;
}

:root[data-theme='dark'] .aluno-matriculas-container .card-content,
:root[data-theme='dark'] .aluno-pagamentos-container .card-content,
:root.cc--darkmode .aluno-matriculas-container .card-content,
:root.cc--darkmode .aluno-pagamentos-container .card-content {
  background-color: #686868 !important;
}

:root[data-theme='dark'] .consulta-page .card-content,
:root.cc--darkmode .consulta-page .card-content {
  background: transparent !important;
}

:root[data-theme='dark'] .badge.encerrado,
:root.cc--darkmode .badge.encerrado {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border);
}

:root[data-theme='dark'] .badge.ativa,
:root.cc--darkmode .badge.ativa {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .periodo-label,
:root.cc--darkmode .periodo-label {
  color: #ffffff !important;
}

:root[data-theme='dark'] .periodo-value,
:root.cc--darkmode .periodo-value {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .modalidade-info,
:root.cc--darkmode .modalidade-info {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .payment-status-item,
:root.cc--darkmode .payment-status-item {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .payment-status-item.isento,
:root.cc--darkmode .payment-status-item.isento {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .card-actions,
:root.cc--darkmode .card-actions {
  background-color: #686868 !important;
  border-top: 2px solid var(--hc-table-border) !important;
}

:root[data-theme='dark'] .isento-badge,
:root.cc--darkmode .isento-badge {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

/* Toast de cancelamento de matrícula */
:root[data-theme='dark'] .toast-warning,
:root.cc--darkmode .toast-warning {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .toast-warning .toast-body,
:root.cc--darkmode .toast-warning .toast-body,
:root[data-theme='dark'] .toast-warning .toast-message,
:root.cc--darkmode .toast-warning .toast-message,
:root[data-theme='dark'] .toast-warning .toast-list,
:root.cc--darkmode .toast-warning .toast-list {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .aluno-name,
:root.cc--darkmode .aluno-name,
:root[data-theme='dark'] .frequencia-date-meta,
:root.cc--darkmode .frequencia-date-meta {
  color: var(--hc-text);
}

:root[data-theme='dark'] .aluno-name,
:root.cc--darkmode .aluno-name {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .frequencia-badge,
:root.cc--darkmode .frequencia-badge,
:root[data-theme='dark'] .badge-present,
:root[data-theme='dark'] .badge-absent,
:root[data-theme='dark'] .badge-justified,
:root[data-theme='dark'] .badge-pending,
:root.cc--darkmode .badge-present,
:root.cc--darkmode .badge-absent,
:root.cc--darkmode .badge-justified,
:root.cc--darkmode .badge-pending {
  background: var(--hc-modal-accent) !important;
  color: #000 !important;
  border: 1px solid var(--hc-modal-accent) !important;
}

:root[data-theme='dark'] .aluno-detail-stats,
:root.cc--darkmode .aluno-detail-stats {
  background: transparent !important;
}

:root[data-theme='dark'] .aluno-detail-stats .frequencia-badge,
:root.cc--darkmode .aluno-detail-stats .frequencia-badge {
  background: var(--hc-modal-accent) !important;
  color: #000 !important;
  border: 1px solid var(--hc-modal-accent) !important;
}

:root[data-theme='dark'] .aluno-detail-header .btn,
:root.cc--darkmode .aluno-detail-header .btn {
  background: var(--hc-modal-accent) !important;
  border: 1px solid var(--hc-modal-accent) !important;
  color: #000 !important;
}

:root[data-theme='dark'] .aluno-detail-header .btn i,
:root.cc--darkmode .aluno-detail-header .btn i {
  color: #000 !important;
}

:root[data-theme='dark'] .stat-card-value,
:root.cc--darkmode .stat-card-value,
:root[data-theme='dark'] .stat-badge .value,
:root.cc--darkmode .stat-badge .value {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .month-selector,
:root.cc--darkmode .month-selector {
  background: var(--hc-bg);
  border: 1px solid var(--hc-border);
}

:root[data-theme='dark'] .month-selector select,
:root.cc--darkmode .month-selector select,
:root[data-theme='dark'] .month-selector label,
:root.cc--darkmode .month-selector label {
  color: var(--hc-text);
}

:root[data-theme='dark'] .monthly-stats,
:root.cc--darkmode .monthly-stats {
  background: var(--hc-surface);
}

:root[data-theme='dark'] .stat-indicator,
:root.cc--darkmode .stat-indicator {
  background: var(--hc-surface);
  border: 1.5px solid var(--hc-border);
  color: var(--hc-text);
}

:root[data-theme='dark'] .stat-value,
:root.cc--darkmode .stat-value {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .expand-btn,
:root.cc--darkmode .expand-btn {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .stat-card,
:root.cc--darkmode .stat-card {
  background: var(--hc-bg);
  border: 1px solid var(--hc-border);
  box-shadow: var(--hc-shadow);
  color: var(--hc-text);
}

:root[data-theme='dark'] .stat-card-label,
:root.cc--darkmode .stat-card-label,
:root[data-theme='dark'] .stat-card-value,
:root.cc--darkmode .stat-card-value {
  color: var(--hc-text);
}

/* Justificar Frequência */
:root[data-theme='dark'] .justificar-title,
:root[data-theme='dark'] .justificar-subtitle,
:root.cc--darkmode .justificar-title,
:root.cc--darkmode .justificar-subtitle{
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .faltas-table-wrapper thead th,
:root.cc--darkmode .faltas-table-wrapper thead th {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .faltas-table-wrapper tbody tr,
:root.cc--darkmode .faltas-table-wrapper tbody tr {
  border-bottom: 1px solid var(--hc-table-border) !important;
}

:root[data-theme='dark'] .faltas-table-wrapper td,
:root.cc--darkmode .faltas-table-wrapper td {
  background: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .registros-title,
:root[data-theme='dark'] .registros-subtitle,
:root.cc--darkmode .registros-title,
:root.cc--darkmode .registros-subtitle {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .registros-table-wrapper,
:root.cc--darkmode .registros-table-wrapper {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  color: var(--hc-text) !important;
  border-bottom: 2px solid var(--hc-table-border) !important;
}

/* Registros de aula — card alinhado ao padrão de conjuntos (HC) */
:root[data-theme='dark'] .registro-card,
:root.cc--darkmode .registro-card,
html[data-theme='dark'] .registro-card,
html[data-bs-theme='dark'] .registro-card,
html.cc--darkmode .registro-card {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-table-border) !important;
  color: var(--hc-text) !important;
  box-shadow: var(--hc-shadow) !important;
}

:root[data-theme='dark'] .registro-header,
:root.cc--darkmode .registro-header,
html[data-theme='dark'] .registro-header,
html[data-bs-theme='dark'] .registro-header,
html.cc--darkmode .registro-header {
  background: #0a0a0a !important;
  color: #fff !important;
  border-bottom: 3px solid #ffea03 !important;
}

:root[data-theme='dark'] .registro-date,
:root.cc--darkmode .registro-date,
html[data-theme='dark'] .registro-date,
html[data-bs-theme='dark'] .registro-date,
html.cc--darkmode .registro-date {
  color: #ffea03 !important;
}

:root[data-theme='dark'] .registro-professor,
:root.cc--darkmode .registro-professor,
html[data-theme='dark'] .registro-professor,
html[data-bs-theme='dark'] .registro-professor,
html.cc--darkmode .registro-professor {
  color: rgba(255, 255, 255, 0.92) !important;
  opacity: 1 !important;
}

:root[data-theme='dark'] .registro-body,
:root.cc--darkmode .registro-body,
html[data-theme='dark'] .registro-body,
html[data-bs-theme='dark'] .registro-body,
html.cc--darkmode .registro-body {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .conteudo-label,
:root.cc--darkmode .conteudo-label,
html[data-theme='dark'] .conteudo-label,
html[data-bs-theme='dark'] .conteudo-label,
html.cc--darkmode .conteudo-label {
  color: rgba(255, 255, 255, 0.78) !important;
}

:root[data-theme='dark'] .conteudo-preview,
:root.cc--darkmode .conteudo-preview,
html[data-theme='dark'] .conteudo-preview,
html[data-bs-theme='dark'] .conteudo-preview,
html.cc--darkmode .conteudo-preview {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .registro-footer,
:root.cc--darkmode .registro-footer,
html[data-theme='dark'] .registro-footer,
html[data-bs-theme='dark'] .registro-footer,
html.cc--darkmode .registro-footer {
  background: var(--hc-bg) !important;
  border-top-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .registro-card:hover,
:root.cc--darkmode .registro-card:hover {
  border-color: var(--hc-table-border) !important;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.35) !important;
}

:root[data-theme='dark'] .action-btn,
:root.cc--darkmode .action-btn {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .action-btn i,
:root.cc--darkmode .action-btn i {
  color: #000 !important;
}

:root[data-theme='dark'] .action-btn.disabled,
:root.cc--darkmode .action-btn.disabled {
  background: var(--hc-bg) !important;
  color: rgba(255, 255, 255, 0.5) !important;
  border-color: var(--hc-table-border) !important;
  opacity: 1 !important;
}

:root[data-theme='dark'] .action-btn.disabled i,
:root.cc--darkmode .action-btn.disabled i {
  color: rgba(255, 255, 255, 0.55) !important;
}

:root[data-theme='dark'] .action-btn:hover:not(.disabled),
:root.cc--darkmode .action-btn:hover:not(.disabled) {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border-color: var(--hc-btn-border) !important;
  transform: translateY(-1px);
}

:root[data-theme='dark'] .action-btn:hover:not(.disabled) i,
:root.cc--darkmode .action-btn:hover:not(.disabled) i {
  color: #000 !important;
}

:root[data-theme='dark'] .registros-container .search-bar input::placeholder,
:root.cc--darkmode .registros-container .search-bar input::placeholder {
  color: rgba(255, 255, 255, 0.45) !important;
}

:root[data-theme='dark'] .registros-container .empty-state,
:root.cc--darkmode .registros-container .empty-state {
  background: var(--hc-bg) !important;
  border: 2px dashed var(--hc-table-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .registros-container .empty-state h5,
:root.cc--darkmode .registros-container .empty-state h5 {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .registros-container .empty-state p,
:root.cc--darkmode .registros-container .empty-state p {
  color: rgba(255, 255, 255, 0.78) !important;
}

:root[data-theme='dark'] .registros-container .empty-state i,
:root.cc--darkmode .registros-container .empty-state i {
  color: var(--hc-table-border) !important;
}

/* Pagamentos (Aluno) */
:root[data-theme='dark'] .pagamentos-header,
:root.cc--darkmode .pagamentos-header {
  background: transparent;
}

:root[data-theme='dark'] .resumo-item::before,
:root.cc--darkmode .resumo-item::before {
  background: var(--hc-btn) !important;
}

:root[data-theme='dark'] .pagamentos-title,
:root[data-theme='dark'] .pagamentos-subtitle,
:root.cc--darkmode .pagamentos-title,
:root.cc--darkmode .pagamentos-subtitle {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .aluno-pagamentos-container,
:root.cc--darkmode .aluno-pagamentos-container {
  background: var(--hc-bg);
  color: var(--hc-text);
}

:root[data-theme='dark'] .pagamentos-resumo,
:root.cc--darkmode .pagamentos-resumo {
  background: var(--hc-bg);
}

:root[data-theme='dark'] .resumo-item,
:root.cc--darkmode .resumo-item {
  background: var(--hc-surface);
  border: 1px solid var(--hc-border);
  box-shadow: var(--hc-shadow);
  color: var(--hc-text);
}

:root[data-theme='dark'] .resumo-label,
:root[data-theme='dark'] .resumo-valor,
:root.cc--darkmode .resumo-label,
:root.cc--darkmode .resumo-valor {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .pagamento-card,
:root.cc--darkmode .pagamento-card {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: var(--hc-shadow) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .periodo-badge,
:root.cc--darkmode .periodo-badge {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .valor-label,
:root[data-theme='dark'] .valor-display,
:root.cc--darkmode .valor-label,
:root.cc--darkmode .valor-display {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .ribbon,
:root.cc--darkmode .ribbon {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .ribbon i,
:root.cc--darkmode .ribbon i {
  color: #000 !important;
}

:root[data-theme='dark'] .action-status,
:root.cc--darkmode .action-status {
  background: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .action-status i,
:root.cc--darkmode .action-status i {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .btn-action,
:root.cc--darkmode .btn-action {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .btn-action i,
:root.cc--darkmode .btn-action i {
  color: #000 !important;
}

:root[data-theme='dark'] .empty-state,
:root.cc--darkmode .empty-state {
  color: var(--hc-text) !important;
}

@media (max-width: 768px) {
  :root[data-theme='dark'] .content-area,
  :root[data-theme='dark'] .card,
  :root[data-theme='dark'] .box,
  :root[data-theme='dark'] .table-responsive,
  :root.cc--darkmode .content-area,
  :root.cc--darkmode .card,
  :root.cc--darkmode .box,
  :root.cc--darkmode .table-responsive {
    background: var(--hc-bg);
    border: 1px solid var(--hc-border);
    box-shadow: var(--hc-shadow);
  }
}

:root[data-theme='dark'] .matricula-card[data-status="ativa"],
:root.cc--darkmode .matricula-card[data-status="ativa"] {
  border-color: var(--hc-border) !important;
  background: var(--hc-surface) !important;
}

:root[data-theme='dark'] .matricula-card[data-status="ativa"]:hover,
:root.cc--darkmode .matricula-card[data-status="ativa"]:hover {
  border-color: var(--hc-border) !important;
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2) !important;
}

:root[data-theme='dark'] .matricula-card[data-status="encerrado"],
:root.cc--darkmode .matricula-card[data-status="encerrado"] {
  border-color: var(--hc-border) !important;
  background: var(--hc-surface) !important;
}

:root[data-theme='dark'] .matricula-card[data-status="encerrado"]:hover,
:root.cc--darkmode .matricula-card[data-status="encerrado"]:hover {
  border-color: var(--hc-border) !important;
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.2) !important;
}

/* Forçar remoção de cores verde e azul em alto contraste */
:root[data-theme='dark'] .matricula-card[data-status="ativa"]:hover,
:root.cc--darkmode .matricula-card[data-status="ativa"]:hover {
  border-color: var(--hc-border) !important;
}

:root[data-theme='dark'] .matricula-card[data-status="encerrado"]:hover,
:root.cc--darkmode .matricula-card[data-status="encerrado"]:hover {
  border-color: var(--hc-border) !important;
}

/* Remover sombra verde do botão DAR em dark mode */
:root[data-theme='dark'] .btn-action.dar,
:root.cc--darkmode .btn-action.dar {
  background: var(--hc-btn) !important;
  color: #000 !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
}

:root[data-theme='dark'] .btn-action.dar:hover,
:root.cc--darkmode .btn-action.dar:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2) !important;
}

/* ===== AVISO DE FALTAS - ALTO CONTRASTE ===== */
:root[data-theme='dark'] .aluno-aviso-faltas,
:root.cc--darkmode .aluno-aviso-faltas {
  background: var(--hc-surface) !important;
  border: 2px solid !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4) !important;
}

:root[data-theme='dark'] .aluno-aviso-faltas.aviso-error,
:root.cc--darkmode .aluno-aviso-faltas.aviso-error {
  border-color: rgba(255, 234, 3, 1) !important;
  border-left-width: 6px !important;
}

:root[data-theme='dark'] .aluno-aviso-faltas.aviso-warning,
:root.cc--darkmode .aluno-aviso-faltas.aviso-warning {
  border-color: rgba(255, 234, 3, 1) !important;
  border-left-width: 6px !important;
}

:root[data-theme='dark'] .aviso-icon,
:root.cc--darkmode .aviso-icon {
  background: rgba(255, 234, 3, 0.2) !important;
  color: rgba(255, 234, 3, 1) !important;
}

:root[data-theme='dark'] .aviso-title,
:root.cc--darkmode .aviso-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .aviso-message,
:root.cc--darkmode .aviso-message {
  color: var(--hc-text) !important;
}

/* ===== COMPENSAR PAGAMENTO - ALTO CONTRASTE ===== */
:root[data-theme='dark'] .compensar-page,
:root.cc--darkmode .compensar-page {
  background: var(--hc-bg) !important;
}

:root[data-theme='dark'] .compensar-container,
:root.cc--darkmode .compensar-container {
  background: transparent !important;
}

:root[data-theme='dark'] .compensar-header-section,
:root.cc--darkmode .compensar-header-section {
  background: transparent !important;
}

:root[data-theme='dark'] .form-title,
:root.cc--darkmode .form-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .form-subtitle,
:root.cc--darkmode .form-subtitle {
  color: var(--hc-text) !important;
  opacity: 0.8;
}

:root[data-theme='dark'] .duplicidade-card,
:root[data-theme='dark'] .select-section,
:root.cc--darkmode .duplicidade-card,
:root.cc--darkmode .select-section {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: var(--hc-shadow) !important;
}

:root[data-theme='dark'] .duplicidade-card .card-header,
:root.cc--darkmode .duplicidade-card .card-header {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border-bottom: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .card-badge,
:root.cc--darkmode .card-badge {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .info-item,
:root.cc--darkmode .info-item {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  border-radius: 10px;
  margin: 4px 0;
}

:root[data-theme='dark'] .info-item .label,
:root.cc--darkmode .info-item .label {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .info-item .value,
:root.cc--darkmode .info-item .value {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .info-item.highlight,
:root.cc--darkmode .info-item.highlight {
  background: var(--hc-surface) !important;
  border: 2px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .select-label,
:root.cc--darkmode .select-label {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .select-label i,
:root.cc--darkmode .select-label i {
  display: none !important;
}

:root[data-theme='dark'] .select-helper,
:root.cc--darkmode .select-helper {
  color: var(--hc-text) !important;
  opacity: 0.8;
}

:root[data-theme='dark'] .form-select-custom,
:root.cc--darkmode .form-select-custom {
  background-color: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
  color: var(--hc-text) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23ffffff'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 12px center !important;
  background-size: 20px !important;
}

:root[data-theme='dark'] .form-select-custom:hover,
:root.cc--darkmode .form-select-custom:hover {
  border-color: var(--hc-btn-border) !important;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.2) !important;
}

:root[data-theme='dark'] .form-select-custom:focus,
:root.cc--darkmode .form-select-custom:focus {
  border-color: var(--hc-btn-border) !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.3) !important;
}

:root[data-theme='dark'] .error-message,
:root.cc--darkmode .error-message {
  background: rgba(255, 234, 3, 0.2) !important;
  border-left: 4px solid var(--hc-btn) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .modal-custom,
:root.cc--darkmode .modal-custom {
  background: var(--hc-surface) !important;
  border: 2px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .modal-header-custom,
:root.cc--darkmode .modal-header-custom {
  background: var(--hc-bg) !important;
  border-bottom: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .modal-title-content,
:root.cc--darkmode .modal-title-content {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .modal-body-custom,
:root.cc--darkmode .modal-body-custom {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .warning-text,
:root.cc--darkmode .warning-text {
  background: rgba(255, 234, 3, 0.2) !important;
  border-left: 4px solid var(--hc-btn) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .warning-text i,
:root.cc--darkmode .warning-text i {
  color: var(--hc-btn) !important;
}

:root[data-theme='dark'] .confirmation-text,
:root.cc--darkmode .confirmation-text {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .modal-footer-custom,
:root.cc--darkmode .modal-footer-custom {
  background: var(--hc-bg) !important;
  border-top: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .btn-modal.primary,
:root.cc--darkmode .btn-modal.primary {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid #000 !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .btn-modal.secondary,
:root.cc--darkmode .btn-modal.secondary {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-border) !important;
}

/* ===== DAR PAGE - ALTO CONTRASTE ===== */
:root[data-theme='dark'] .dar-page,
:root.cc--darkmode .dar-page {
  background: var(--hc-bg) !important;
}

:root[data-theme='dark'] .dar-container,
:root.cc--darkmode .dar-container {
  background: transparent !important;
}

:root[data-theme='dark'] .dar-header-section,
:root.cc--darkmode .dar-header-section {
  background: transparent !important;
}

:root[data-theme='dark'] .form-title-secondary,
:root.cc--darkmode .form-title-secondary {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .subtitle,
:root.cc--darkmode .subtitle {
  color: var(--hc-text) !important;
  opacity: 0.8;
}

:root[data-theme='dark'] .error-state-container,
:root[data-theme='dark'] .form-state-container,
:root.cc--darkmode .error-state-container,
:root.cc--darkmode .form-state-container {
  background: transparent !important;
}

:root[data-theme='dark'] .error-card,
:root[data-theme='dark'] .form-card,
:root.cc--darkmode .error-card,
:root.cc--darkmode .form-card {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: var(--hc-shadow) !important;
}

:root[data-theme='dark'] .error-icon,
:root.cc--darkmode .error-icon {
  background: rgba(255, 234, 3, 0.2) !important;
  color: var(--hc-btn) !important;
}

:root[data-theme='dark'] .error-content h2,
:root.cc--darkmode .error-content h2 {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .error-description,
:root.cc--darkmode .error-description {
  color: var(--hc-text) !important;
  opacity: 0.8;
}

:root[data-theme='dark'] .error-info-box,
:root.cc--darkmode .error-info-box {
  background: rgba(255, 234, 3, 0.15) !important;
  border-left: 4px solid var(--hc-btn) !important;
}

:root[data-theme='dark'] .error-info-box i,
:root.cc--darkmode .error-info-box i {
  color: var(--hc-btn) !important;
}

:root[data-theme='dark'] .error-info-box span,
:root.cc--darkmode .error-info-box span {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .info-banner,
:root.cc--darkmode .info-banner {
  background: rgba(255, 234, 3, 0.15) !important;
  border-left: 5px solid var(--hc-btn) !important;
}

:root[data-theme='dark'] .info-banner i,
:root.cc--darkmode .info-banner i {
  color: var(--hc-btn) !important;
}

:root[data-theme='dark'] .info-banner strong,
:root[data-theme='dark'] .info-banner p,
:root.cc--darkmode .info-banner strong,
:root.cc--darkmode .info-banner p {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .form-header,
:root.cc--darkmode .form-header {
  background: var(--hc-bg) !important;
  border-bottom: 1px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .dar-form,
:root.cc--darkmode .dar-form {
  background: var(--hc-surface) !important;
}

:root[data-theme='dark'] .section-title,
:root.cc--darkmode .section-title {
  color: var(--hc-text) !important;
  border-bottom: 2px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .form-label,
:root.cc--darkmode .form-label {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .form-control,
:root.cc--darkmode .form-control {
  background: var(--hc-bg) !important;
  border: 1px solid var(--hc-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .form-control:focus,
:root.cc--darkmode .form-control:focus {
  border-color: var(--hc-btn-border) !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2) !important;
  background: var(--hc-bg) !important;
}

:root[data-theme='dark'] .form-control:disabled,
:root[data-theme='dark'] .form-control[readonly],
:root.cc--darkmode .form-control:disabled,
:root.cc--darkmode .form-control[readonly] {
  background: var(--hc-surface) !important;
  opacity: 0.7;
}

:root[data-theme='dark'] .form-text,
:root.cc--darkmode .form-text {
  color: var(--hc-text) !important;
  opacity: 0.8;
}

:root[data-theme='dark'] .confirmation-section,
:root.cc--darkmode .confirmation-section {
  background: rgba(255, 234, 3, 0.1) !important;
  border: 1px solid var(--hc-btn-border) !important;
}

:root[data-theme='dark'] .confirmation-message,
:root.cc--darkmode .confirmation-message {
  background: rgba(255, 234, 3, 0.15) !important;
  border-left: 4px solid var(--hc-btn) !important;
}

:root[data-theme='dark'] .confirmation-message i,
:root.cc--darkmode .confirmation-message i {
  color: var(--hc-btn) !important;
}

:root[data-theme='dark'] .confirmation-message strong,
:root[data-theme='dark'] .confirmation-message p,
:root.cc--darkmode .confirmation-message strong,
:root.cc--darkmode .confirmation-message p {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .form-check-label,
:root.cc--darkmode .form-check-label {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .form-check-input,
:root.cc--darkmode .form-check-input {
  background: var(--hc-bg) !important;
  border: 1.5px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .form-check-input:checked,
:root.cc--darkmode .form-check-input:checked {
  background: var(--hc-btn) !important;
  border-color: var(--hc-btn) !important;
}

:root[data-theme='dark'] .cancelar-title,
:root[data-theme='dark'] .cancelar-subtitle,
:root.cc--darkmode .cancelar-title,
:root.cc--darkmode .cancelar-subtitle {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .cancelar-content-block,
:root.cc--darkmode .cancelar-content-block {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-border) !important;
  box-shadow: var(--hc-shadow) !important;
}

:root[data-theme='dark'] .pagamento-info,
:root.cc--darkmode .pagamento-info {
  background: var(--hc-bg) !important;
  border-left: 4px solid var(--hc-btn) !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .info-header,
:root.cc--darkmode .info-header {
  border-bottom: 2px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .info-header i,
:root.cc--darkmode .info-header i {
  color: var(--hc-btn) !important;
}

:root[data-theme='dark'] .info-header h3,
:root[data-theme='dark'] .info-label,
:root[data-theme='dark'] .info-value,
:root.cc--darkmode .info-header h3,
:root.cc--darkmode .info-label,
:root.cc--darkmode .info-value {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .alert-cancelamento,
:root.cc--darkmode .alert-cancelamento {
  background: var(--hc-bg) !important;
  border-left: 4px solid var(--hc-btn) !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .alert-icon,
:root.cc--darkmode .alert-icon {
  background: var(--hc-surface) !important;
  color: var(--hc-btn) !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .alert-text,
:root[data-theme='dark'] .alert-text strong,
:root.cc--darkmode .alert-text,
:root.cc--darkmode .alert-text strong {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .form-label,
:root.cc--darkmode .form-label {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] #id_motivo,
:root.cc--darkmode #id_motivo {
  background: var(--hc-bg) !important;
  border: 1.5px solid var(--hc-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] #id_motivo:focus,
:root.cc--darkmode #id_motivo:focus {
  border-color: var(--hc-btn-border) !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.2) !important;
  background: var(--hc-bg) !important;
}

:root[data-theme='dark'] .form-help,
:root.cc--darkmode .form-help {
  color: var(--hc-text) !important;
  opacity: 0.8;
}

:root[data-theme='dark'] .error-message,
:root.cc--darkmode .error-message {
  background: rgba(255, 234, 3, 0.15) !important;
  border: 1px solid var(--hc-btn-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .form-footer,
:root.cc--darkmode .form-footer {
  border-top: 2px solid var(--hc-border) !important;
}

:root[data-theme='dark'] .btn-cancelar,
:root.cc--darkmode .btn-cancelar {
  background: transparent !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-btn-border) !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .btn-confirmar,
:root.cc--darkmode .btn-confirmar {
  background: var(--hc-btn) !important;
  color: #000 !important;
  border: 1px solid var(--hc-btn-border) !important;
  box-shadow: none !important;
}

/* ===== Portal / avaliações / conjuntos — texto e superfícies legíveis no tema escuro ===== */
:root[data-theme='dark'] h4.page-title,
:root.cc--darkmode h4.page-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] h1.conjuntos-title,
:root[data-theme='dark'] .conjuntos-header .conjuntos-title,
:root[data-theme='dark'] .conjuntos-title,
:root.cc--darkmode h1.conjuntos-title,
:root.cc--darkmode .conjuntos-header .conjuntos-title,
:root.cc--darkmode .conjuntos-title,
html[data-theme='dark'] h1.conjuntos-title,
html[data-bs-theme='dark'] h1.conjuntos-title,
html.cc--darkmode h1.conjuntos-title {
  color: #fff !important;
}

/* Página Critérios de Avaliação — título (evita inline #1e3964 ilegível no tema escuro) */
:root[data-theme='dark'] .criterios-header .criterios-title,
:root.cc--darkmode .criterios-header .criterios-title,
html[data-theme='dark'] .criterios-header .criterios-title,
html[data-bs-theme='dark'] .criterios-header .criterios-title,
html.cc--darkmode .criterios-header .criterios-title {
  color: #fff !important;
}

:root[data-theme='dark'] .breadcrumb-content,
:root.cc--darkmode .breadcrumb-content {
  border-bottom-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .breadcrumb-content a,
:root.cc--darkmode .breadcrumb-content a {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .breadcrumb-content a:hover,
:root.cc--darkmode .breadcrumb-content a:hover {
  color: #fff !important;
  opacity: 1 !important;
}

:root[data-theme='dark'] .breadcrumb-item.active,
:root.cc--darkmode .breadcrumb-item.active {
  color: rgba(255, 255, 255, 0.88) !important;
}

:root[data-theme='dark'] .breadcrumb-item.active i,
:root.cc--darkmode .breadcrumb-item.active i {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .breadcrumb-item + .breadcrumb-item::before,
:root.cc--darkmode .breadcrumb-item + .breadcrumb-item::before {
  color: rgba(255, 255, 255, 0.55) !important;
}

:root[data-theme='dark'] .conjunto-card,
:root.cc--darkmode .conjunto-card {
  background: var(--hc-surface) !important;
  border-color: var(--hc-table-border) !important;
}

/* Título do card de conjunto (nome ex.: "Teste233") — alto contraste, não azul institucional */
:root[data-theme='dark'] .conjunto-card-header,
:root.cc--darkmode .conjunto-card-header,
html[data-theme='dark'] .conjunto-card-header,
html[data-bs-theme='dark'] .conjunto-card-header,
html.cc--darkmode .conjunto-card-header {
  background: #0a0a0a !important;
  color: #ffea03 !important;
  border-bottom: 3px solid #ffea03 !important;
}

:root[data-theme='dark'] .conjunto-card .card-title,
:root.cc--darkmode .conjunto-card .card-title,
html[data-theme='dark'] .conjunto-card .card-title,
html[data-bs-theme='dark'] .conjunto-card .card-title,
html.cc--darkmode .conjunto-card .card-title {
  color: #ffea03 !important;
}

:root[data-theme='dark'] .conjunto-label,
:root.cc--darkmode .conjunto-label {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .conjunto-tag,
:root.cc--darkmode .conjunto-tag,
html[data-theme='dark'] .conjunto-tag,
html[data-bs-theme='dark'] .conjunto-tag,
html.cc--darkmode .conjunto-tag {
  background: #4a5568 !important;
  border-color: #6b7c93 !important;
  color: #fff !important;
}

:root[data-theme='dark'] .conjunto-update,
:root.cc--darkmode .conjunto-update {
  color: rgba(255, 255, 255, 0.82) !important;
}

:root[data-theme='dark'] .conjunto-card-footer,
:root.cc--darkmode .conjunto-card-footer {
  background: var(--hc-bg) !important;
  border-top-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .btn-conjunto-icon,
:root[data-theme='dark'] .btn-conjunto-edit,
:root.cc--darkmode .btn-conjunto-icon,
:root.cc--darkmode .btn-conjunto-edit {
  background: #3d5a8a !important;
  color: #fff !important;
  border: 1px solid #7a9fd4 !important;
}

:root[data-theme='dark'] .btn-conjunto-icon:hover,
:root[data-theme='dark'] .btn-conjunto-edit:hover,
:root.cc--darkmode .btn-conjunto-icon:hover,
:root.cc--darkmode .btn-conjunto-edit:hover {
  background: #324a73 !important;
  color: #fff !important;
}

:root[data-theme='dark'] .conjunto-add-card,
:root.cc--darkmode .conjunto-add-card {
  background: var(--hc-surface) !important;
  border-color: var(--hc-table-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-alunos-page,
:root.cc--darkmode .avaliacao-alunos-page {
  --avaliacao-texto-label: #d1d5db;
  --avaliacao-texto-opcao: #e8edf7;
  --avaliacao-dropdown-hl: #4a5568;
  --avaliacao-comentario-bg: #3a3a3a;
}

:root[data-theme='dark'] .avaliacao-alunos-title,
:root.cc--darkmode .avaliacao-alunos-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-alunos-subtitle,
:root.cc--darkmode .avaliacao-alunos-subtitle {
  color: rgba(255, 255, 255, 0.88) !important;
}

/* Banner «todos avaliados» (alert-info) — amarelo + preto, alinhado ao HC da página */
:root[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info,
:root.cc--darkmode .avaliacao-alunos-page .alert.alert-info,
html[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info,
html[data-bs-theme='dark'] .avaliacao-alunos-page .alert.alert-info,
html.cc--darkmode .avaliacao-alunos-page .alert.alert-info {
  background: var(--hc-modal-accent, #ffea03) !important;
  color: #000 !important;
  border: 2px solid #000 !important;
}

:root[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info i,
:root.cc--darkmode .avaliacao-alunos-page .alert.alert-info i,
html[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info i,
html[data-bs-theme='dark'] .avaliacao-alunos-page .alert.alert-info i,
html.cc--darkmode .avaliacao-alunos-page .alert.alert-info i {
  color: #000 !important;
}

:root[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary,
:root.cc--darkmode .avaliacao-alunos-page .alert.alert-info .btn-outline-primary,
html[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary,
html[data-bs-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary,
html.cc--darkmode .avaliacao-alunos-page .alert.alert-info .btn-outline-primary {
  color: #000 !important;
  border: 2px solid #000 !important;
  background: transparent !important;
}

:root[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:hover,
:root[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:focus-visible,
:root.cc--darkmode .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:hover,
:root.cc--darkmode .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:focus-visible,
html[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:hover,
html[data-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:focus-visible,
html[data-bs-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:hover,
html[data-bs-theme='dark'] .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:focus-visible,
html.cc--darkmode .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:hover,
html.cc--darkmode .avaliacao-alunos-page .alert.alert-info .btn-outline-primary:focus-visible {
  background: #000 !important;
  color: var(--hc-modal-accent, #ffea03) !important;
  border-color: #000 !important;
}

:root[data-theme='dark'] .avaliacao-alunos-card,
:root.cc--darkmode .avaliacao-alunos-card {
  background: var(--hc-surface) !important;
  border: 1px solid var(--hc-table-border) !important;
  box-shadow: none !important;
}

:root[data-theme='dark'] .avaliacao-alunos-page .accordion-body,
:root.cc--darkmode .avaliacao-alunos-page .accordion-body {
  background: var(--hc-bg) !important;
  border-top-color: var(--hc-table-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button {
  background-color: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button:hover,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button:hover {
  background-color: var(--hc-table-row-light) !important;
  color: var(--hc-text) !important;
}

/* Seta do acordeão (Avaliação de alunos) — preto aberto/fechado: vars Bootstrap + background */
html[data-theme='dark'] .avaliacao-alunos-page .accordion-button::after,
html[data-theme='dark'] .avaliacao-alunos-page .accordion-button:not(.collapsed)::after,
html[data-bs-theme='dark'] .avaliacao-alunos-page .accordion-button::after,
html[data-bs-theme='dark'] .avaliacao-alunos-page .accordion-button:not(.collapsed)::after,
html.cc--darkmode .avaliacao-alunos-page .accordion-button::after,
html.cc--darkmode .avaliacao-alunos-page .accordion-button:not(.collapsed)::after,
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button::after,
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button:not(.collapsed)::after,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button::after,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button:not(.collapsed)::after {
  --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e") !important;
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e") !important;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e") !important;
  filter: none !important;
}

/* Badge «Avaliado» no acordeão — alto contraste (evita verde Bootstrap em fundo escuro) */
:root[data-theme='dark'] .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado,
:root[data-theme='dark'] .avaliacao-alunos-page .accordion-button .badge.bg-success,
:root.cc--darkmode .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado,
:root.cc--darkmode .avaliacao-alunos-page .accordion-button .badge.bg-success,
html[data-theme='dark'] .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado,
html[data-bs-theme='dark'] .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado,
html.cc--darkmode .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado {
  background: #ffea03 !important;
  color: #000 !important;
  border: 2px solid #000 !important;
}

:root[data-theme='dark'] .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado i,
:root.cc--darkmode .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado i,
html[data-theme='dark'] .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado i,
html[data-bs-theme='dark'] .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado i,
html.cc--darkmode .avaliacao-alunos-page .avaliacao-accordion-badge-avaliado i {
  color: #000 !important;
}

/* Badge «Avaliado» no card de turma (listar turmas) */
:root[data-theme='dark'] .turma-badge-avaliado,
:root[data-theme='dark'] .turma-card .badge.bg-success.turma-badge-avaliado,
:root.cc--darkmode .turma-badge-avaliado,
:root.cc--darkmode .turma-card .badge.bg-success.turma-badge-avaliado,
html[data-theme='dark'] .turma-badge-avaliado,
html[data-bs-theme='dark'] .turma-badge-avaliado,
html.cc--darkmode .turma-badge-avaliado {
  background: #ffea03 !important;
  color: #000 !important;
  border: 2px solid #000 !important;
}

:root[data-theme='dark'] .turma-badge-avaliado i,
:root.cc--darkmode .turma-badge-avaliado i,
html[data-theme='dark'] .turma-badge-avaliado i,
html[data-bs-theme='dark'] .turma-badge-avaliado i,
html.cc--darkmode .turma-badge-avaliado i {
  color: #000 !important;
}

:root[data-theme='dark'] .avaliacao-criterio-obrigatorio,
:root.cc--darkmode .avaliacao-criterio-obrigatorio {
  color: #fca5a5 !important;
}

:root[data-theme='dark'] .avaliacao-nota-box,
:root.cc--darkmode .avaliacao-nota-box {
  background: var(--hc-surface) !important;
  border-color: var(--hc-table-border) !important;
}

/* Regular / Bom / Ótimo — seleção e rádio em amarelo (evita azul do --primary no alto contraste) */
:root[data-theme='dark'] .avaliacao-nota-box:has(.avaliacao-nota-input:checked),
:root.cc--darkmode .avaliacao-nota-box:has(.avaliacao-nota-input:checked),
html[data-theme='dark'] .avaliacao-nota-box:has(.avaliacao-nota-input:checked),
html[data-bs-theme='dark'] .avaliacao-nota-box:has(.avaliacao-nota-input:checked),
html.cc--darkmode .avaliacao-nota-box:has(.avaliacao-nota-input:checked) {
  border-color: var(--hc-modal-accent, #ffea03) !important;
  box-shadow: 0 0 0 1px #000, 0 0 0 3px var(--hc-modal-accent, #ffea03) !important;
}

:root[data-theme='dark'] .avaliacao-nota-box:has(.avaliacao-nota-input:focus-visible),
:root.cc--darkmode .avaliacao-nota-box:has(.avaliacao-nota-input:focus-visible),
html[data-theme='dark'] .avaliacao-nota-box:has(.avaliacao-nota-input:focus-visible),
html[data-bs-theme='dark'] .avaliacao-nota-box:has(.avaliacao-nota-input:focus-visible),
html.cc--darkmode .avaliacao-nota-box:has(.avaliacao-nota-input:focus-visible) {
  outline: 2px solid var(--hc-modal-accent, #ffea03) !important;
  outline-offset: 2px;
}

:root[data-theme='dark'] .avaliacao-nota-input,
:root.cc--darkmode .avaliacao-nota-input,
html[data-theme='dark'] .avaliacao-nota-input,
html[data-bs-theme='dark'] .avaliacao-nota-input,
html.cc--darkmode .avaliacao-nota-input {
  accent-color: var(--hc-modal-accent, #ffea03) !important;
}

:root[data-theme='dark'] .avaliacao-nota-text,
:root.cc--darkmode .avaliacao-nota-text {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-comentario-field,
:root.cc--darkmode .avaliacao-comentario-field {
  background-color: var(--hc-bg) !important;
  border-color: var(--hc-table-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-comentario-field:focus,
:root.cc--darkmode .avaliacao-comentario-field:focus {
  background-color: var(--hc-surface) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-custom-select-toggle,
:root.cc--darkmode .avaliacao-custom-select-toggle {
  background: var(--hc-surface) !important;
  border-color: var(--hc-table-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-custom-select-menu,
:root.cc--darkmode .avaliacao-custom-select-menu {
  background: var(--hc-surface) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .avaliacao-custom-select-search-wrap,
:root.cc--darkmode .avaliacao-custom-select-search-wrap {
  background: var(--hc-bg) !important;
  border-bottom-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .avaliacao-custom-select-option:hover,
:root.cc--darkmode .avaliacao-custom-select-option:hover {
  background: var(--hc-table-row-light) !important;
}

:root[data-theme='dark'] .avaliacao-custom-select-option,
:root.cc--darkmode .avaliacao-custom-select-option {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-readonly-comentario,
:root.cc--darkmode .avaliacao-readonly-comentario {
  background: var(--hc-bg) !important;
  border-color: var(--hc-table-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-readonly-valor,
:root.cc--darkmode .avaliacao-readonly-valor {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-avanco-bloco,
:root.cc--darkmode .avaliacao-avanco-bloco {
  border-top-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .avaliacao-avanco-titulo,
:root.cc--darkmode .avaliacao-avanco-titulo {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .avaliacao-avanco-turma-ico,
:root.cc--darkmode .avaliacao-avanco-turma-ico {
  color: rgba(255, 255, 255, 0.92) !important;
}

/* Menu lateral — alto contraste (preto / amarelo / branco; sem azuis institucionais) */
html[data-theme='dark'] .portal-sidebar,
html[data-bs-theme='dark'] .portal-sidebar,
html.cc--darkmode .portal-sidebar,
:root[data-theme='dark'] .portal-sidebar,
:root.cc--darkmode .portal-sidebar {
  background: #000 !important;
  border-right: 4px solid #ffea03 !important;
  box-shadow: none !important;
}

html[data-theme='dark'] .portal-sidebar-nav,
html[data-bs-theme='dark'] .portal-sidebar-nav,
html.cc--darkmode .portal-sidebar-nav,
:root[data-theme='dark'] .portal-sidebar-nav,
:root.cc--darkmode .portal-sidebar-nav {
  background: transparent !important;
}

html[data-theme='dark'] .portal-sidebar .sidebar-nav-group,
html[data-bs-theme='dark'] .portal-sidebar .sidebar-nav-group,
html.cc--darkmode .portal-sidebar .sidebar-nav-group,
:root[data-theme='dark'] .portal-sidebar .sidebar-nav-group,
:root.cc--darkmode .portal-sidebar .sidebar-nav-group {
  background: transparent !important;
}

html[data-theme='dark'] .portal-sidebar .sidebar-nav-group > .collapse,
html[data-bs-theme='dark'] .portal-sidebar .sidebar-nav-group > .collapse,
html.cc--darkmode .portal-sidebar .sidebar-nav-group > .collapse,
:root[data-theme='dark'] .portal-sidebar .sidebar-nav-group > .collapse,
:root.cc--darkmode .portal-sidebar .sidebar-nav-group > .collapse {
  background: #0d0d0d !important;
}

html[data-theme='dark'] .portal-sidebar .sidebar-nav-group > .collapse.show,
html[data-bs-theme='dark'] .portal-sidebar .sidebar-nav-group > .collapse.show,
html.cc--darkmode .portal-sidebar .sidebar-nav-group > .collapse.show,
:root[data-theme='dark'] .portal-sidebar .sidebar-nav-group > .collapse.show,
:root.cc--darkmode .portal-sidebar .sidebar-nav-group > .collapse.show {
  background: #0d0d0d !important;
}

html[data-theme='dark'] .portal-sidebar-collapse-btn,
html[data-bs-theme='dark'] .portal-sidebar-collapse-btn,
html.cc--darkmode .portal-sidebar-collapse-btn,
:root[data-theme='dark'] .portal-sidebar-collapse-btn,
:root.cc--darkmode .portal-sidebar-collapse-btn {
  border: 2px solid #ffea03 !important;
  background: #000 !important;
  color: #ffea03 !important;
}

html[data-theme='dark'] .portal-sidebar-logo,
html[data-bs-theme='dark'] .portal-sidebar-logo,
html.cc--darkmode .portal-sidebar-logo,
:root[data-theme='dark'] .portal-sidebar-logo,
:root.cc--darkmode .portal-sidebar-logo {
  color: #ffea03 !important;
}

html[data-theme='dark'] .sidebar-nav-item,
html[data-theme='dark'] .sidebar-nav-group-toggle,
html[data-bs-theme='dark'] .sidebar-nav-item,
html[data-bs-theme='dark'] .sidebar-nav-group-toggle,
html.cc--darkmode .sidebar-nav-item,
html.cc--darkmode .sidebar-nav-group-toggle,
:root[data-theme='dark'] .sidebar-nav-item,
:root[data-theme='dark'] .sidebar-nav-group-toggle,
:root.cc--darkmode .sidebar-nav-item,
:root.cc--darkmode .sidebar-nav-group-toggle {
  color: #fff !important;
  background: transparent !important;
}

html[data-theme='dark'] .sidebar-nav-item span,
html[data-theme='dark'] .sidebar-nav-group-toggle span,
html[data-bs-theme='dark'] .sidebar-nav-item span,
html[data-bs-theme='dark'] .sidebar-nav-group-toggle span,
html.cc--darkmode .sidebar-nav-item span,
html.cc--darkmode .sidebar-nav-group-toggle span,
:root[data-theme='dark'] .sidebar-nav-item span,
:root[data-theme='dark'] .sidebar-nav-group-toggle span,
:root.cc--darkmode .sidebar-nav-item span,
:root.cc--darkmode .sidebar-nav-group-toggle span {
  color: #fff !important;
}

html[data-theme='dark'] .sidebar-nav-item i,
html[data-theme='dark'] .sidebar-nav-group-toggle > i:first-child,
html[data-bs-theme='dark'] .sidebar-nav-item i,
html[data-bs-theme='dark'] .sidebar-nav-group-toggle > i:first-child,
html.cc--darkmode .sidebar-nav-item i,
html.cc--darkmode .sidebar-nav-group-toggle > i:first-child,
:root[data-theme='dark'] .sidebar-nav-item i,
:root[data-theme='dark'] .sidebar-nav-group-toggle > i:first-child,
:root.cc--darkmode .sidebar-nav-item i,
:root.cc--darkmode .sidebar-nav-group-toggle > i:first-child {
  color: #fff !important;
  opacity: 1;
}

html[data-theme='dark'] .sidebar-nav-group-toggle i.sidebar-chevron,
html[data-bs-theme='dark'] .sidebar-nav-group-toggle i.sidebar-chevron,
html.cc--darkmode .sidebar-nav-group-toggle i.sidebar-chevron,
:root[data-theme='dark'] .sidebar-nav-group-toggle i.sidebar-chevron,
:root.cc--darkmode .sidebar-nav-group-toggle i.sidebar-chevron {
  color: #ffea03 !important;
}

html[data-theme='dark'] .sidebar-nav-item:hover,
html[data-theme='dark'] .sidebar-nav-group-toggle:hover,
html[data-bs-theme='dark'] .sidebar-nav-item:hover,
html[data-bs-theme='dark'] .sidebar-nav-group-toggle:hover,
html.cc--darkmode .sidebar-nav-item:hover,
html.cc--darkmode .sidebar-nav-group-toggle:hover,
:root[data-theme='dark'] .sidebar-nav-item:hover,
:root[data-theme='dark'] .sidebar-nav-group-toggle:hover,
:root.cc--darkmode .sidebar-nav-item:hover,
:root.cc--darkmode .sidebar-nav-group-toggle:hover {
  color: #fff !important;
  background: #1a1a1a !important;
}

html[data-theme='dark'] .sidebar-nav-group-toggle[aria-expanded='true'],
html[data-bs-theme='dark'] .sidebar-nav-group-toggle[aria-expanded='true'],
html.cc--darkmode .sidebar-nav-group-toggle[aria-expanded='true'],
:root[data-theme='dark'] .sidebar-nav-group-toggle[aria-expanded='true'],
:root.cc--darkmode .sidebar-nav-group-toggle[aria-expanded='true'] {
  color: #fff !important;
  background: #141414 !important;
  border-left-color: #ffea03 !important;
}

html[data-theme='dark'] .sidebar-nav-item.active,
html[data-bs-theme='dark'] .sidebar-nav-item.active,
html.cc--darkmode .sidebar-nav-item.active,
:root[data-theme='dark'] .sidebar-nav-item.active,
:root.cc--darkmode .sidebar-nav-item.active {
  color: #000 !important;
  background: #ffea03 !important;
  border-left-color: #000 !important;
}

html[data-theme='dark'] .sidebar-nav-item.active span,
html[data-theme='dark'] .sidebar-nav-item.active i,
html[data-bs-theme='dark'] .sidebar-nav-item.active span,
html[data-bs-theme='dark'] .sidebar-nav-item.active i,
html.cc--darkmode .sidebar-nav-item.active span,
html.cc--darkmode .sidebar-nav-item.active i,
:root[data-theme='dark'] .sidebar-nav-item.active span,
:root[data-theme='dark'] .sidebar-nav-item.active i,
:root.cc--darkmode .sidebar-nav-item.active span,
:root.cc--darkmode .sidebar-nav-item.active i {
  color: #000 !important;
}

html[data-theme='dark'] .sidebar-nav-subitem,
html[data-bs-theme='dark'] .sidebar-nav-subitem,
html.cc--darkmode .sidebar-nav-subitem,
:root[data-theme='dark'] .sidebar-nav-subitem,
:root.cc--darkmode .sidebar-nav-subitem {
  color: #fff !important;
  background: transparent !important;
}

html[data-theme='dark'] .sidebar-nav-subitem span,
html[data-bs-theme='dark'] .sidebar-nav-subitem span,
html.cc--darkmode .sidebar-nav-subitem span,
:root[data-theme='dark'] .sidebar-nav-subitem span,
:root.cc--darkmode .sidebar-nav-subitem span {
  color: #fff !important;
}

html[data-theme='dark'] .sidebar-nav-subitem i,
html[data-bs-theme='dark'] .sidebar-nav-subitem i,
html.cc--darkmode .sidebar-nav-subitem i,
:root[data-theme='dark'] .sidebar-nav-subitem i,
:root.cc--darkmode .sidebar-nav-subitem i {
  color: #fff !important;
  opacity: 1;
}

html[data-theme='dark'] .sidebar-nav-subitem:hover,
html[data-bs-theme='dark'] .sidebar-nav-subitem:hover,
html.cc--darkmode .sidebar-nav-subitem:hover,
:root[data-theme='dark'] .sidebar-nav-subitem:hover,
:root.cc--darkmode .sidebar-nav-subitem:hover {
  color: #fff !important;
  background: #1a1a1a !important;
}

html[data-theme='dark'] .sidebar-nav-subitem.active,
html[data-bs-theme='dark'] .sidebar-nav-subitem.active,
html.cc--darkmode .sidebar-nav-subitem.active,
:root[data-theme='dark'] .sidebar-nav-subitem.active,
:root.cc--darkmode .sidebar-nav-subitem.active {
  color: #000 !important;
  background: #ffea03 !important;
  border-left: 4px solid #000 !important;
  font-weight: 700 !important;
}

html[data-theme='dark'] .sidebar-nav-subitem.active span,
html[data-theme='dark'] .sidebar-nav-subitem.active i,
html[data-bs-theme='dark'] .sidebar-nav-subitem.active span,
html[data-bs-theme='dark'] .sidebar-nav-subitem.active i,
html.cc--darkmode .sidebar-nav-subitem.active span,
html.cc--darkmode .sidebar-nav-subitem.active i,
:root[data-theme='dark'] .sidebar-nav-subitem.active span,
:root[data-theme='dark'] .sidebar-nav-subitem.active i,
:root.cc--darkmode .sidebar-nav-subitem.active span,
:root.cc--darkmode .sidebar-nav-subitem.active i {
  color: #000 !important;
}

html[data-theme='dark'] .portal-layout.sidebar-collapsed .portal-sidebar .sidebar-nav-group > .collapse.show,
html[data-bs-theme='dark'] .portal-layout.sidebar-collapsed .portal-sidebar .sidebar-nav-group > .collapse.show,
html.cc--darkmode .portal-layout.sidebar-collapsed .portal-sidebar .sidebar-nav-group > .collapse.show,
:root[data-theme='dark'] .portal-layout.sidebar-collapsed .portal-sidebar .sidebar-nav-group > .collapse.show,
:root.cc--darkmode .portal-layout.sidebar-collapsed .portal-sidebar .sidebar-nav-group > .collapse.show {
  background: #0d0d0d !important;
}

html[data-theme='dark'] #sidebarOffcanvas .offcanvas-header,
html[data-theme='dark'] #sidebarOffcanvas .offcanvas-body,
html[data-bs-theme='dark'] #sidebarOffcanvas .offcanvas-header,
html[data-bs-theme='dark'] #sidebarOffcanvas .offcanvas-body,
html.cc--darkmode #sidebarOffcanvas .offcanvas-header,
html.cc--darkmode #sidebarOffcanvas .offcanvas-body,
:root[data-theme='dark'] #sidebarOffcanvas .offcanvas-header,
:root[data-theme='dark'] #sidebarOffcanvas .offcanvas-body,
:root.cc--darkmode #sidebarOffcanvas .offcanvas-header,
:root.cc--darkmode #sidebarOffcanvas .offcanvas-body {
  background: #000 !important;
}

html[data-theme='dark'] #sidebarOffcanvas .offcanvas-title,
html[data-bs-theme='dark'] #sidebarOffcanvas .offcanvas-title,
html.cc--darkmode #sidebarOffcanvas .offcanvas-title,
:root[data-theme='dark'] #sidebarOffcanvas .offcanvas-title,
:root.cc--darkmode #sidebarOffcanvas .offcanvas-title {
  color: #ffea03 !important;
}

/* Banner view-only (somente-leitura) */
:root[data-theme='dark'] .turmas-container .alert-info,
:root[data-theme='dark'] .registros-container .alert-info,
:root.cc--darkmode .registros-container .alert-info,
html[data-theme='dark'] .registros-container .alert-info,
html[data-bs-theme='dark'] .registros-container .alert-info,
html.cc--darkmode .registros-container .alert-info,
:root.cc--darkmode .turmas-container .alert-info,
html[data-theme='dark'] .turmas-container .alert-info,
html[data-bs-theme='dark'] .turmas-container .alert-info,
html.cc--darkmode .turmas-container .alert-info {
  --bs-alert-bg: var(--hc-surface);
  --bs-alert-border-color: var(--hc-table-border);
  --bs-alert-color: var(--hc-text);
  background-color: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .turmas-container .alert-info a,
:root[data-theme='dark'] .turmas-container .alert-info strong,
:root[data-theme='dark'] .turmas-container .alert-info i,
:root[data-theme='dark'] .registros-container .alert-info a,
:root[data-theme='dark'] .registros-container .alert-info strong,
:root[data-theme='dark'] .registros-container .alert-info i,
:root.cc--darkmode .turmas-container .alert-info a,
:root.cc--darkmode .turmas-container .alert-info strong,
:root.cc--darkmode .turmas-container .alert-info i,
:root.cc--darkmode .registros-container .alert-info a,
:root.cc--darkmode .registros-container .alert-info strong,
:root.cc--darkmode .registros-container .alert-info i,
html[data-theme='dark'] .turmas-container .alert-info a,
html[data-theme='dark'] .turmas-container .alert-info strong,
html[data-theme='dark'] .turmas-container .alert-info i,
html[data-theme='dark'] .registros-container .alert-info a,
html[data-theme='dark'] .registros-container .alert-info strong,
html[data-theme='dark'] .registros-container .alert-info i,
html.cc--darkmode .turmas-container .alert-info a,
html.cc--darkmode .turmas-container .alert-info strong,
html.cc--darkmode .turmas-container .alert-info i,
html.cc--darkmode .registros-container .alert-info a,
html.cc--darkmode .registros-container .alert-info strong,
html.cc--darkmode .registros-container .alert-info i {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .turmas-container .alert-info .btn-outline-secondary,
:root[data-theme='dark'] .registros-container .alert-info .btn-outline-secondary,
:root.cc--darkmode .turmas-container .alert-info .btn-outline-secondary,
:root.cc--darkmode .registros-container .alert-info .btn-outline-secondary,
html[data-theme='dark'] .turmas-container .alert-info .btn-outline-secondary,
html[data-theme='dark'] .registros-container .alert-info .btn-outline-secondary,
html.cc--darkmode .turmas-container .alert-info .btn-outline-secondary,
html.cc--darkmode .registros-container .alert-info .btn-outline-secondary {
  background: transparent !important;
  color: var(--hc-text) !important;
  border: 1px solid var(--hc-btn-border) !important;
}

/* Logo swap: versão auto-contraste no modo escuro */
:root[data-theme='dark'] .header-logo,
:root.cc--darkmode .header-logo,
html[data-theme='dark'] .header-logo,
html.cc--darkmode .header-logo {
  content: url("/static/img/logo_vila_auto.ee084b179729.png");
}

:root[data-theme='dark'] .logo-vila-olimpica,
:root.cc--darkmode .logo-vila-olimpica,
html[data-theme='dark'] .logo-vila-olimpica,
html.cc--darkmode .logo-vila-olimpica {
  content: url("/static/img/logo_vila_auto.ee084b179729.png");
}

:root[data-theme='dark'] .logo-top-img,
:root.cc--darkmode .logo-top-img,
html[data-theme='dark'] .logo-top-img,
html.cc--darkmode .logo-top-img {
  content: url("/static/img/Vila-Olimpica-branca.0a52416c658a.png");
}

/* ===== Cancelar Pagamento ===== */
:root[data-theme='dark'] .cancelar-title,
:root.cc--darkmode .cancelar-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .cancelar-subtitle,
:root.cc--darkmode .cancelar-subtitle {
  color: var(--hc-text) !important;
  opacity: 0.8;
}

:root[data-theme='dark'] .cancelar-content-block,
:root.cc--darkmode .cancelar-content-block {
  background: var(--hc-surface) !important;
  box-shadow: var(--hc-shadow) !important;
}

:root[data-theme='dark'] .pagamento-info,
:root.cc--darkmode .pagamento-info {
  background: var(--hc-bg) !important;
  border-left-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .cancelar-info-header,
:root.cc--darkmode .cancelar-info-header {
  border-bottom-color: var(--hc-border) !important;
}

:root[data-theme='dark'] .cancelar-info-header i,
:root[data-theme='dark'] .cancelar-info-header h3,
:root[data-theme='dark'] .cancelar-info-label,
:root[data-theme='dark'] .cancelar-info-value,
:root[data-theme='dark'] .cancelar-form-label,
:root[data-theme='dark'] .cancelar-form-help,
:root.cc--darkmode .cancelar-info-header i,
:root.cc--darkmode .cancelar-info-header h3,
:root.cc--darkmode .cancelar-info-label,
:root.cc--darkmode .cancelar-info-value,
:root.cc--darkmode .cancelar-form-label,
:root.cc--darkmode .cancelar-form-help {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .cancelar-alert,
:root.cc--darkmode .cancelar-alert {
  background: var(--hc-surface) !important;
  border-left-color: #f87171 !important;
}

:root[data-theme='dark'] .cancelar-alert-icon,
:root.cc--darkmode .cancelar-alert-icon {
  background: var(--hc-bg) !important;
  color: #f87171 !important;
}

:root[data-theme='dark'] .cancelar-alert-text,
:root[data-theme='dark'] .cancelar-alert-text strong,
:root.cc--darkmode .cancelar-alert-text,
:root.cc--darkmode .cancelar-alert-text strong {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] #id_motivo,
:root.cc--darkmode #id_motivo {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] #id_motivo:focus,
:root.cc--darkmode #id_motivo:focus {
  background: var(--hc-surface) !important;
  border-color: var(--hc-btn-border) !important;
}

:root[data-theme='dark'] #id_motivo::placeholder,
:root.cc--darkmode #id_motivo::placeholder {
  color: var(--hc-text) !important;
  opacity: 0.5;
}

:root[data-theme='dark'] .cancelar-form-footer,
:root.cc--darkmode .cancelar-form-footer {
  border-top-color: var(--hc-border) !important;
}

:root[data-theme='dark'] .cancelar-btn-cancelar,
:root.cc--darkmode .cancelar-btn-cancelar {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .cancelar-error-message,
:root.cc--darkmode .cancelar-error-message {
  background: var(--hc-surface) !important;
  border-color: #f87171 !important;
  color: #fecaca !important;
}

/* ===== Consultar Pagamentos ===== */
:root[data-theme='dark'] .consulta-page,
:root.cc--darkmode .consulta-page {
  background: var(--hc-bg) !important;
}

:root[data-theme='dark'] .title-block h1.form-title,
:root.cc--darkmode .title-block h1.form-title {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .title-block .subtitle,
:root.cc--darkmode .title-block .subtitle {
  color: var(--hc-text) !important;
  opacity: 0.8;
}

:root[data-theme='dark'] .periodo-info-card,
:root[data-theme='dark'] .info-card,
:root[data-theme='dark'] .progress-section,
:root[data-theme='dark'] .empty-state,
:root.cc--darkmode .periodo-info-card,
:root.cc--darkmode .info-card,
:root.cc--darkmode .progress-section,
:root.cc--darkmode .empty-state {
  background: var(--hc-surface) !important;
  border-color: var(--hc-border) !important;
  box-shadow: var(--hc-shadow) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .periodo-name,
:root[data-theme='dark'] .periodo-status,
:root[data-theme='dark'] .info-label,
:root[data-theme='dark'] .info-value,
:root[data-theme='dark'] .progress-title,
:root[data-theme='dark'] .progress-text,
:root[data-theme='dark'] .empty-state h2,
:root[data-theme='dark'] .empty-state p,
:root.cc--darkmode .periodo-name,
:root.cc--darkmode .periodo-status,
:root.cc--darkmode .info-label,
:root.cc--darkmode .info-value,
:root.cc--darkmode .progress-title,
:root.cc--darkmode .progress-text,
:root.cc--darkmode .empty-state h2,
:root.cc--darkmode .empty-state p {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .periodo-badge,
:root.cc--darkmode .periodo-badge {
  background: var(--hc-bg) !important;
  border-color: var(--hc-table-border) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .card-icon,
:root[data-theme='dark'] .empty-state-icon,
:root.cc--darkmode .card-icon,
:root.cc--darkmode .empty-state-icon {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .status-badge.pending,
:root.cc--darkmode .status-badge.pending {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .status-badge.completed,
:root.cc--darkmode .status-badge.completed {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}

:root[data-theme='dark'] .progress-bar-background,
:root.cc--darkmode .progress-bar-background {
  background: var(--hc-bg) !important;
}

:root[data-theme='dark'] .completion-alert,
:root.cc--darkmode .completion-alert {
  background: var(--hc-surface) !important;
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .alert-content h3,
:root[data-theme='dark'] .alert-content p,
:root.cc--darkmode .alert-content h3,
:root.cc--darkmode .alert-content p {
  color: var(--hc-text) !important;
}

:root[data-theme='dark'] .btn-action.secondary,
:root.cc--darkmode .btn-action.secondary {
  background: var(--hc-bg) !important;
  color: var(--hc-text) !important;
  border-color: var(--hc-table-border) !important;
}