/* Variáveis CSS para temas */
:root {
  /* Tema Light (padrão) */
  --bg-primary: #ffffff;
  --bg-secondary: #f8f9fa;
  --bg-tertiary: #ffffff;
  --text-primary: #212529;
  --text-secondary: #495057;
  --text-muted: #6c757d;
  --border-color: #dee2e6;
  --border-light: #e9ecef;
  --shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
  --shadow-lg: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
  --navbar-bg: #343a40;
  --sidebar-bg: #f8f9fa;
  --card-bg: #ffffff;
  --modal-bg: #ffffff;
  --input-bg: #ffffff;
  --input-border: #ced4da;
  --input-focus: #80bdff;
  --table-stripe: #f8f9fa;
  --link-color: #007bff;
  --link-hover: #0056b3;
  --success-bg: #d4edda;
  --success-text: #155724;
  --danger-bg: #f8d7da;
  --danger-text: #721c24;
  --warning-bg: #fff3cd;
  --warning-text: #856404;
  --info-bg: #d1ecf1;
  --info-text: #0c5460;

  /* Cores específicas para botões - Light */
  --btn-primary-bg: #007bff;
  --btn-primary-border: #007bff;
  --btn-primary-color: #ffffff;
  --btn-primary-hover-bg: #0056b3;
  --btn-primary-hover-border: #0056b3;
  --btn-primary-hover-color: #ffffff;

  --btn-secondary-bg: #6c757d;
  --btn-secondary-border: #6c757d;
  --btn-secondary-color: #ffffff;
  --btn-secondary-hover-bg: #5a6268;
  --btn-secondary-hover-border: #545b62;
  --btn-secondary-hover-color: #ffffff;

  --btn-outline-primary-color: #007bff;
  --btn-outline-primary-border: #007bff;
  --btn-outline-primary-hover-bg: #007bff;
  --btn-outline-primary-hover-color: #ffffff;

  --btn-outline-secondary-color: #6c757d;
  --btn-outline-secondary-border: #6c757d;
  --btn-outline-secondary-hover-bg: #6c757d;
  --btn-outline-secondary-hover-color: #ffffff;
}

/* Tema Dark */
[data-theme="dark"] {
  --bg-primary: #1a1a1a;
  --bg-secondary: #2d2d2d;
  --bg-tertiary: #333333;
  --text-primary: #ffffff;
  --text-secondary: #b0b0b0;
  --text-muted: #888888;
  --border-color: #404040;
  --border-light: #505050;
  --shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.3);
  --shadow-lg: 0 0.5rem 1rem rgba(0, 0, 0, 0.4);
  --navbar-bg: #000000;
  --sidebar-bg: #2d2d2d;
  --card-bg: #333333;
  --modal-bg: #333333;
  --input-bg: #404040;
  --input-border: #505050;
  --input-focus: #007bff;
  --table-stripe: #404040;
  --link-color: #4dabf7;
  --link-hover: #74c0fc;
  --success-bg: #1e4d2b;
  --success-text: #75b798;
  --danger-bg: #4d1e1e;
  --danger-text: #ea868f;
  --warning-bg: #4d3e1e;
  --warning-text: #ffd43b;
  --info-bg: #1e3a4d;
  --info-text: #74c0fc;

  /* Cores específicas para botões - Dark */
  --btn-primary-bg: #4dabf7;
  --btn-primary-border: #4dabf7;
  --btn-primary-color: #000000;
  --btn-primary-hover-bg: #74c0fc;
  --btn-primary-hover-border: #74c0fc;
  --btn-primary-hover-color: #000000;

  --btn-secondary-bg: #6c757d;
  --btn-secondary-border: #6c757d;
  --btn-secondary-color: #ffffff;
  --btn-secondary-hover-bg: #5a6268;
  --btn-secondary-hover-border: #545b62;
  --btn-secondary-hover-color: #ffffff;

  --btn-outline-primary-color: #4dabf7;
  --btn-outline-primary-border: #4dabf7;
  --btn-outline-primary-hover-bg: #4dabf7;
  --btn-outline-primary-hover-color: #000000;

  --btn-outline-secondary-color: #adb5bd;
  --btn-outline-secondary-border: #6c757d;
  --btn-outline-secondary-hover-bg: #6c757d;
  --btn-outline-secondary-hover-color: #ffffff;
}

/* Aplicação dos temas */
body {
  background-color: var(--bg-primary) !important;
  color: var(--text-primary) !important;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Navbar */
.navbar {
  background-color: var(--navbar-bg) !important;
}

/* Sidebar */
.sidebar {
  background-color: var(--sidebar-bg) !important;
}

.sidebar .nav-link {
  color: var(--text-primary) !important;
}

.sidebar .nav-link:hover,
.sidebar .nav-link.active {
  background-color: var(--link-color) !important;
  color: white !important;
}

/* Offcanvas */
.offcanvas {
  background-color: var(--sidebar-bg) !important;
}

.offcanvas .nav-link {
  color: var(--text-primary) !important;
}

.offcanvas .nav-link:hover,
.offcanvas .nav-link.active {
  background-color: var(--link-color) !important;
  color: white !important;
}

/* Cards */
.card {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

/* Tabelas */
.table {
  color: var(--text-primary) !important;
}

.table th {
  background-color: var(--bg-secondary) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.table td {
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.table-striped>tbody>tr:nth-of-type(odd)>td {
  background-color: var(--table-stripe) !important;
}

/* Formulários */
.form-control,
.form-select {
  background-color: var(--input-bg) !important;
  border-color: var(--input-border) !important;
  color: var(--text-primary) !important;
}

.form-control:focus,
.form-select:focus {
  background-color: var(--input-bg) !important;
  border-color: var(--input-focus) !important;
  color: var(--text-primary) !important;
}

.form-label {
  color: var(--text-primary) !important;
}

/* Modais */
.modal-content {
  background-color: var(--modal-bg) !important;
  border-color: var(--border-color) !important;
}

.modal-header {
  border-bottom-color: var(--border-color) !important;
}

.modal-footer {
  border-top-color: var(--border-color) !important;
}

/* Alertas */
.alert-success {
  background-color: var(--success-bg) !important;
  border-color: var(--success-text) !important;
  color: var(--success-text) !important;
}

.alert-danger {
  background-color: var(--danger-bg) !important;
  border-color: var(--danger-text) !important;
  color: var(--danger-text) !important;
}

.alert-warning {
  background-color: var(--warning-bg) !important;
  border-color: var(--warning-text) !important;
  color: var(--warning-text) !important;
}

.alert-info {
  background-color: var(--info-bg) !important;
  border-color: var(--info-text) !important;
  color: var(--info-text) !important;
}

/* Links */
a {
  color: var(--link-color) !important;
}

a:hover {
  background-color: var(--bg-secondary) !important;
}

/* Botões */
.btn-outline-secondary {
  border-color: var(--border-color) !important;
  color: var(--text-secondary) !important;
}

.btn-outline-secondary:hover {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

/* Botões primários */
.btn-primary {
  background-color: var(--btn-primary-bg) !important;
  border-color: var(--btn-primary-border) !important;
  color: var(--btn-primary-color) !important;
}

.btn-primary:hover {
  background-color: var(--btn-primary-hover-bg) !important;
  border-color: var(--btn-primary-hover-border) !important;
}

.btn-primary:focus {
  background-color: var(--btn-primary-hover-bg) !important;
  border-color: var(--btn-primary-hover-border) !important;
}

/* Botões secundários */
.btn-secondary {
  background-color: var(--btn-secondary-bg) !important;
  border-color: var(--btn-secondary-border) !important;
  color: var(--btn-secondary-color) !important;
}

.btn-secondary:hover {
  background-color: var(--btn-secondary-hover-bg) !important;
  border-color: var(--btn-secondary-hover-border) !important;
}

/* Botões de sucesso */
.btn-success {
  background-color: #28a745 !important;
  border-color: #28a745 !important;
  color: #ffffff !important;
}

.btn-success:hover {
  background-color: #218838 !important;
  border-color: #1e7e34 !important;
  color: #ffffff !important;
}

/* Botões de perigo */
.btn-danger {
  background-color: #dc3545 !important;
  border-color: #dc3545 !important;
  color: #ffffff !important;
}

.btn-danger:hover,
.btn-danger:focus {
  background-color: #d86d78 !important;
  border-color: #d86d78 !important;
}

/* Botões de aviso */
.btn-warning {
  background-color: #ffc107 !important;
  border-color: #ffc107 !important;
  color: #fff !important;
}

.btn-warning:hover,
.btn-warning:focus {
  background-color: #e0a800 !important;
  border-color: #d39e00 !important;
  color: #fff !important;
}

/* Botões de informação */
.btn-info {
  background-color: #17a2b8 !important;
  border-color: #17a2b8 !important;
  color: #ffffff !important;
}

.btn-info:hover,
.btn-info:focus {
  background-color: #138496 !important;
  border-color: #117a8b !important;
}

/* Botões outline */
.btn-outline-primary {
  border-color: var(--btn-outline-primary-border) !important;
  color: var(--btn-outline-primary-color) !important;
}

.btn-outline-primary:hover {
  background-color: var(--btn-outline-primary-hover-bg) !important;
  border-color: var(--btn-outline-primary-hover-bg) !important;
}

.btn-outline-secondary {
  border-color: var(--btn-outline-secondary-border) !important;
  color: var(--btn-outline-secondary-color) !important;
}

.btn-outline-secondary:hover {
  background-color: var(--btn-outline-secondary-hover-bg) !important;
  border-color: var(--btn-outline-secondary-hover-bg) !important;
}

.btn-outline-success {
  border-color: #28a745 !important;
  color: #28a745 !important;
}

.btn-outline-success:hover {
  background-color: #28a745 !important;
  border-color: #28a745 !important;
}

.btn-outline-danger {
  border-color: #dc3545 !important;
  color: #dc3545 !important;
}

.btn-outline-danger:hover {
  background-color: #dc3545 !important;
  border-color: #dc3545 !important;
}

.btn-outline-warning {
  border-color: #ffc107 !important;
  color: #ffc107 !important;
}

.btn-outline-warning:hover {
  background-color: #ffc107 !important;
  border-color: #ffc107 !important;
}

.btn-outline-info {
  border-color: #17a2b8 !important;
  color: #17a2b8 !important;
}

.btn-outline-info:hover {
  background-color: #17a2b8 !important;
  border-color: #17a2b8 !important;
}

/* Botões pequenos */
.btn-sm {
  font-size: 0.875rem !important;
  padding: 0.25rem 0.5rem !important;
}

/* Estados dos botões */
.btn:disabled,
.btn.disabled {
  opacity: 0.65 !important;
  pointer-events: none !important;
}

/* Foco dos botões */
.btn:focus {
  box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25) !important;
}

/* Botões no tema dark - ajustes específicos */
[data-theme="dark"] .btn-outline-secondary {
  border-color: #6c757d !important;
  color: #adb5bd !important;
}

[data-theme="dark"] .btn-outline-secondary:hover {
  background-color: #6c757d !important;
  border-color: #6c757d !important;
}

[data-theme="dark"] .btn-outline-primary {
  border-color: #4dabf7 !important;
  color: #4dabf7 !important;
}

[data-theme="dark"] .btn-outline-primary:hover {
  background-color: #4dabf7 !important;
  border-color: #4dabf7 !important;
}

[data-theme="dark"] .btn-outline-success {
  border-color: #75b798 !important;
  color: #75b798 !important;
}

[data-theme="dark"] .btn-outline-success:hover {
  background-color: #75b798 !important;
  border-color: #75b798 !important;
}

[data-theme="dark"] .btn-outline-danger {
  border-color: #ea868f !important;
  color: #ea868f !important;
}

[data-theme="dark"] .btn-outline-danger:hover {
  background-color: #ea868f !important;
  border-color: #ea868f !important;
}

[data-theme="dark"] .btn-outline-warning {
  border-color: #ffd43b !important;
  color: #ffd43b !important;
}

[data-theme="dark"] .btn-outline-warning:hover {
  background-color: #ffd43b !important;
  border-color: #ffd43b !important;
}

[data-theme="dark"] .btn-outline-info {
  border-color: #74c0fc !important;
  color: #74c0fc !important;
}

[data-theme="dark"] .btn-outline-info:hover {
  background-color: #74c0fc !important;
  border-color: #74c0fc !important;
}

/* Dropdown */
.dropdown-menu {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

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

.dropdown-item:hover {
  background-color: var(--bg-secondary) !important;
}

/* Toast */
.toast {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

.toast-header {
  background-color: var(--bg-secondary) !important;
  border-bottom-color: var(--border-color) !important;
}

/* Paginação */
.page-link {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.page-link:hover {
  background-color: var(--bg-secondary) !important;
}

.page-item.active .page-link {
  background-color: var(--link-color) !important;
  border-color: var(--link-color) !important;
}

.page-item.disabled .page-link {
  background-color: var(--bg-secondary) !important;
  border-color: var(--border-color) !important;
  color: var(--text-muted) !important;
}

/* Botão de tema */
.btn-theme-toggle {
  background: none;
  border: none;
  color: #fff;
  /* Sempre branco no navbar */
  font-size: 1.2rem;
  padding: 0.5rem;
  border-radius: 0.375rem;
  transition: all 0.3s ease;
}

.btn-theme-toggle:hover {
  background-color: rgba(255, 255, 255, 0.1);
  color: #fff;
}

.btn-theme-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(255, 255, 255, 0.25);
}

/* Animações de transição */
* {
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}

/* Scrollbar personalizada para tema dark */
[data-theme="dark"] ::-webkit-scrollbar {
  width: 8px;
}

[data-theme="dark"] ::-webkit-scrollbar-track {
  background: var(--bg-secondary);
}

[data-theme="dark"] ::-webkit-scrollbar-thumb {
  background: var(--border-color);
  border-radius: 4px;
}

[data-theme="dark"] ::-webkit-scrollbar-thumb:hover {
  background: var(--text-muted);
}

/* Ajustes específicos para elementos do projeto */
.content-wrapper {
  background-color: var(--bg-primary) !important;
}

.navbar-text {
  color: #fff !important;
  /* Manter texto branco no navbar */
}

/* Ajustes para elementos específicos do projeto */
.nenhum-item {
  color: var(--text-muted) !important;
}

/* Ajustes para formulários específicos */
.form-busca .form-control,
.form-busca-historico .form-control {
  background-color: var(--input-bg) !important;
  border-color: var(--input-border) !important;
  color: var(--text-primary) !important;
}

/* Ajustes para imagens e elementos visuais */
.img-produto,
.img-produto-mobile,
.img-preview {
  border-color: var(--border-color) !important;
}

/* Ajustes para links específicos */
.link-convite {
  color: var(--link-color) !important;
}

/* Ajustes para elementos de perfil */
.col-perfil {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

/* Correções específicas para contraste no tema light */
.text-muted {
  color: var(--text-muted) !important;
}

/* Ajustes para elementos bg-light */
.bg-light {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

/* Ajustes para table-dark no tema light */
[data-theme="light"] .table-dark {
  background-color: #343a40 !important;
  color: #ffffff !important;
}

[data-theme="light"] .table-dark th {
  background-color: #343a40 !important;
  color: #ffffff !important;
  border-color: #454d55 !important;
}

[data-theme="light"] .table-dark a {
  color: #ffffff !important;
}

[data-theme="light"] .table-dark a:hover {
  color: #ffffff !important;
  text-decoration: underline !important;
}

/* Ajustes para elementos de perfil */
.col-perfil {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

/* Correções específicas para contraste no tema light */
.text-muted {
  color: var(--text-muted) !important;
}

/* Ajustes para elementos bg-light */
.bg-light {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

/* Ajustes para table-dark no tema light */
[data-theme="light"] .table-dark {
  background-color: #343a40 !important;
  color: #ffffff !important;
}

[data-theme="light"] .table-dark th {
  background-color: #343a40 !important;
  color: #ffffff !important;
  border-color: #454d55 !important;
}

[data-theme="light"] .table-dark a {
  color: #ffffff !important;
}

[data-theme="light"] .table-dark a:hover {
  color: #ffffff !important;
  text-decoration: underline !important;
}

/* Ajustes para elementos específicos que podem ter problemas de contraste */
.form-text {
  color: var(--text-secondary) !important;
}

.small {
  color: var(--text-secondary) !important;
}

/* Ajustes para cards com fundo colorido */
.card.text-white {
  color: #ffffff !important;
}

.card.text-white .card-header {
  color: #ffffff !important;
}

.card.text-white .card-title {
  color: #ffffff !important;
}

.card.text-white a {
  color: #ffffff !important;
}

/* Ajustes para botões dentro de cards coloridos */
.card.text-white .btn-light {
  background-color: #ffffff !important;
  color: #000000 !important;
  border-color: #ffffff !important;
}

.card.text-white .btn-light:hover {
  background-color: #f8f9fa !important;
  color: #000000 !important;
}

/* Ajustes para links específicos */
.btn-link {
  color: var(--link-color) !important;
}

.btn-link:hover {
  background-color: var(--bg-secondary) !important;
}

/* Ajustes para elementos de formulário */
.form-control::placeholder {
  color: var(--text-muted) !important;
  opacity: 1;
}

.form-select {
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de navegação */
.nav-link {
  color: var(--text-primary) !important;
}

.nav-link:hover {
  background-color: var(--bg-secondary) !important;
}

/* Ajustes para elementos de lista */
.list-group-item {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de progresso */
.progress {
  background-color: var(--bg-secondary) !important;
}

.progress-bar {
  background-color: var(--link-color) !important;
}

/* Ajustes para badges */
.badge {
  color: #ffffff !important;
}

.badge.bg-secondary {
  background-color: var(--text-secondary) !important;
}

.badge.bg-primary {
  background-color: var(--link-color) !important;
}

/* Ajustes para elementos de código */
code {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

pre {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
  border-color: var(--border-color) !important;
}

/* Ajustes para elementos de citação */
blockquote {
  border-left-color: var(--border-color) !important;
  color: var(--text-secondary) !important;
}

/* Ajustes para elementos de tabela específicos */
.table-hover tbody tr:hover {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de modal específicos */
.modal-title {
  color: var(--text-primary) !important;
}

.modal-body {
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de alerta específicos */
.alert {
  color: inherit !important;
}

/* Ajustes para elementos de breadcrumb */
.breadcrumb {
  background-color: var(--bg-secondary) !important;
}

.breadcrumb-item+.breadcrumb-item::before {
  color: var(--text-muted) !important;
}

/* Ajustes para elementos de paginação específicos */
.pagination .page-link {
  color: var(--link-color) !important;
}

.pagination .page-item.active .page-link {
  background-color: var(--link-color) !important;
  border-color: var(--link-color) !important;
  color: #ffffff !important;
}

/* Ajustes para elementos de dropdown específicos */
.dropdown-divider {
  border-color: var(--border-color) !important;
}

/* Ajustes para elementos de tooltip */
.tooltip {
  color: #ffffff !important;
}

.tooltip-inner {
  background-color: #000000 !important;
  color: #ffffff !important;
}

/* Ajustes para elementos de popover */
.popover {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

.popover-header {
  background-color: var(--bg-secondary) !important;
  border-bottom-color: var(--border-color) !important;
  color: var(--text-primary) !important;
}

.popover-body {
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de carousel */
.carousel-caption {
  color: #ffffff !important;
}

/* Ajustes para elementos de accordion */
.accordion-button {
  background-color: var(--card-bg) !important;
  color: var(--text-primary) !important;
  border-color: var(--border-color) !important;
}

.accordion-button:not(.collapsed) {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

.accordion-button::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") !important;
}

.accordion-button:not(.collapsed)::after {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%236c757d'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e") !important;
}

.accordion-body {
  background-color: var(--card-bg) !important;
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de spinner */
.spinner-border {
  color: var(--link-color) !important;
}

.spinner-grow {
  color: var(--link-color) !important;
}

/* Ajustes para elementos de placeholder */
.placeholder {
  background-color: var(--bg-secondary) !important;
}

/* Ajustes para elementos de ratio */
.ratio {
  background-color: var(--bg-secondary) !important;
}

/* Ajustes para elementos de figure */
.figure-caption {
  color: var(--text-secondary) !important;
}

/* Ajustes para elementos de mark */
mark {
  background-color: #fff3cd !important;
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de kbd */
kbd {
  background-color: var(--text-primary) !important;
  color: var(--bg-primary) !important;
}

/* Ajustes para elementos de samp */
samp {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de var */
var {
  color: var(--text-secondary) !important;
}

/* Ajustes para elementos de abbr */
abbr[title] {
  border-bottom-color: var(--border-color) !important;
}

/* Ajustes para elementos de dfn */
dfn {
  color: var(--text-secondary) !important;
}

/* Ajustes para elementos de cite */
cite {
  color: var(--text-secondary) !important;
}

/* Ajustes para elementos de q */
q {
  color: var(--text-secondary) !important;
}

/* Ajustes para elementos de s */
s {
  color: var(--text-muted) !important;
}

/* Ajustes para elementos de u */
u {
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de ins */
ins {
  background-color: #d4edda !important;
  color: var(--text-primary) !important;
}

/* Ajustes para elementos de del */
del {
  background-color: #f8d7da !important;
  color: var(--text-muted) !important;
}

/* Ícones sempre visíveis */
.fa,
.fas,
.far,
.fab,
.fal,
.fad,
.fa-solid,
.fa-regular,
.fa-light,
.fa-duotone,
.fa-brands {
  color: var(--text-primary) !important;
  transition: color 0.3s;
}

/* Ícone do botão de tema: cor adaptativa */
.btn-theme-toggle i {
  color: var(--text-primary) !important;
}

/* Corrige ícone do botão de tema no mobile (quando sobre bg-light) */
#theme-toggle-mobile i {
  color: var(--text-primary) !important;
}

/* Bordas de tabelas e linhas */
.table,
.table th,
.table td {
  border-color: var(--border-color) !important;
}

.table thead th,
.table-dark th {
  border-bottom: 2px solid var(--border-color) !important;
}

.table-striped>tbody>tr:nth-of-type(odd)>td {
  background-color: var(--table-stripe) !important;
}

/* Accordion: fundo e borda sempre do tema */
.accordion-button {
  background-color: var(--card-bg) !important;
  color: var(--text-primary) !important;
  border-color: var(--border-color) !important;
}

.accordion-button:not(.collapsed) {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

.accordion-body {
  background-color: var(--card-bg) !important;
  color: var(--text-primary) !important;
}

/* Corrige o fundo branco exposto no accordion fechado */
.accordion-item {
  background-color: var(--card-bg) !important;
  border-color: var(--border-color) !important;
}

/* Corrige linhas de tabela hover */
.table-hover tbody tr:hover {
  background-color: var(--bg-secondary) !important;
  color: var(--text-primary) !important;
}

/* Corrige cor de links em botões e menus */
.btn,
.nav-link,
.dropdown-item {
  color: var(--text-primary) !important;
}

.btn:hover,
.nav-link:hover,
.dropdown-item:hover {
  background-color: var(--bg-secondary) !important;
}

/* Corrige cor de ícones em botões coloridos */
.btn-primary .fa,
.btn-success .fa,
.btn-warning .fa,
.btn-danger .fa,
.btn-info .fa {
  color: #fff !important;
}

.btn-light .fa {
  color: #000 !important;
}

/* Corrige cor de ícones em botões outline */
.btn-outline-primary .fa,
.btn-outline-success .fa,
.btn-outline-warning .fa,
.btn-outline-danger .fa,
.btn-outline-info .fa {
  color: var(--btn-outline-primary-color) !important;
}

[data-theme="dark"] .btn-outline-primary .fa,
[data-theme="dark"] .btn-outline-success .fa,
[data-theme="dark"] .btn-outline-warning .fa,
[data-theme="dark"] .btn-outline-danger .fa,
[data-theme="dark"] .btn-outline-info .fa {
  color: #fff !important;
}

/* Corrige cor de ícones em sidebar e offcanvas */
.sidebar .fa,
.offcanvas .fa {
  color: var(--text-primary) !important;
}

/* Corrige cor de ícones ativos no menu */
.sidebar .nav-link.active .fa,
.offcanvas .nav-link.active .fa {
  color: #fff !important;
}

/* Corrige .text-white em cards: só branco se card for colorido */
[data-theme="light"] .card.text-white:not(.bg-primary):not(.bg-success):not(.bg-warning):not(.bg-danger):not(.bg-info):not(.bg-dark),
[data-theme="light"] .card.text-white:not(.bg-primary):not(.bg-success):not(.bg-warning):not(.bg-danger):not(.bg-info):not(.bg-dark) * {
  color: var(--text-primary) !important;
}

[data-theme="light"] .card.bg-primary.text-white,
[data-theme="light"] .card.bg-success.text-white,
[data-theme="light"] .card.bg-warning.text-white,
[data-theme="light"] .card.bg-danger.text-white,
[data-theme="light"] .card.bg-info.text-white,
[data-theme="light"] .card.bg-dark.text-white {
  color: #fff !important;
}

[data-theme="light"] .card.bg-primary.text-white .card-header,
[data-theme="light"] .card.bg-success.text-white .card-header,
[data-theme="light"] .card.bg-warning.text-white .card-header,
[data-theme="light"] .card.bg-danger.text-white .card-header,
[data-theme="light"] .card.bg-info.text-white .card-header,
[data-theme="light"] .card.bg-dark.text-white .card-header,
[data-theme="light"] .card.bg-primary.text-white .card-title,
[data-theme="light"] .card.bg-success.text-white .card-title,
[data-theme="light"] .card.bg-warning.text-white .card-title,
[data-theme="light"] .card.bg-danger.text-white .card-title,
[data-theme="light"] .card.bg-info.text-white .card-title,
[data-theme="light"] .card.bg-dark.text-white .card-title {
  color: #fff !important;
}

/* Ícone do tema no navbar escuro (desktop) */
.navbar.bg-dark .btn-theme-toggle i,
.navbar.bg-dark .btn-theme-toggle {
  color: #fff !important;
}

/* Garante que o ícone do tema no navbar escuro sempre seja branco */
.navbar.bg-dark .btn-theme-toggle:hover i {
  color: #fff !important;
}

/* Manter botões outline padrão do Bootstrap no light mode */
[data-theme="light"] .btn-outline-primary,
[data-theme="light"] .btn-outline-success,
[data-theme="light"] .btn-outline-warning,
[data-theme="light"] .btn-outline-danger,
[data-theme="light"] .btn-outline-info,
[data-theme="light"] .btn-outline-secondary {
  background-color: transparent !important;
  color: inherit !important;
  border-width: 1.5px !important;
}

[data-theme="light"] .btn-outline-primary:hover,
[data-theme="light"] .btn-outline-success:hover,
[data-theme="light"] .btn-outline-warning:hover,
[data-theme="light"] .btn-outline-danger:hover,
[data-theme="light"] .btn-outline-info:hover,
[data-theme="light"] .btn-outline-secondary:hover {
  color: #fff !important;
}

/* Títulos dos cards: sempre escuros em fundo claro */
[data-theme="light"] .card .card-header,
[data-theme="light"] .card .card-title {
  color: var(--text-primary) !important;
}

[data-theme="light"] .card.bg-primary .card-header,
[data-theme="light"] .card.bg-success .card-header,
[data-theme="light"] .card.bg-warning .card-header,
[data-theme="light"] .card.bg-danger .card-header,
[data-theme="light"] .card.bg-info .card-header,
[data-theme="light"] .card.bg-primary .card-title,
[data-theme="light"] .card.bg-success .card-title,
[data-theme="light"] .card.bg-warning .card-title,
[data-theme="light"] .card.bg-danger .card-title,
[data-theme="light"] .card.bg-info .card-title {
  color: #fff !important;
}

/* Cards e tabelas dark: conteúdo sempre branco */
.card.bg-dark,
.card.bg-dark .card-header,
.card.bg-dark .card-title,
.card.bg-dark .card-body,
.card.bg-dark .card-text,
.table-dark,
.table-dark th,
.table-dark td {
  color: #fff !important;
}

/* Corrige links em cards e tabelas dark */
.card.bg-dark a,
.table-dark a {
  color: #fff !important;
}

.card.bg-dark a:hover,
.table-dark a:hover {
  background-color: rgba(255, 255, 255, 0.1) !important;
}

/* DASHBOARD: Botões de ação dentro dos cards com fundo colorido e texto branco no light mode */
[data-theme="light"] .dashboard-card-cliente .btn,
[data-theme="light"] .dashboard-card-cliente .btn:active,
[data-theme="light"] .dashboard-card-cliente .btn:focus {
  background-color: #007bff !important;
  color: #fff !important;
  border-color: #007bff !important;
}

[data-theme="light"] .dashboard-card-cliente .btn:hover {
  background-color: #0056b3 !important;
  color: #fff !important;
  border-color: #0056b3 !important;
}

[data-theme="light"] .dashboard-card-produto .btn,
[data-theme="light"] .dashboard-card-produto .btn:active,
[data-theme="light"] .dashboard-card-produto .btn:focus {
  background-color: #28a745 !important;
  color: #fff !important;
  border-color: #28a745 !important;
}

[data-theme="light"] .dashboard-card-produto .btn:hover {
  background-color: #218838 !important;
  color: #fff !important;
  border-color: #218838 !important;
}

[data-theme="light"] .dashboard-card-venda .btn,
[data-theme="light"] .dashboard-card-venda .btn:active,
[data-theme="light"] .dashboard-card-venda .btn:focus {
  background-color: #ffc107 !important;
  color: #fff !important;
  border-color: #ffc107 !important;
}

[data-theme="light"] .dashboard-card-venda .btn:hover {
  background-color: #e0a800 !important;
  color: #fff !important;
  border-color: #e0a800 !important;
}

[data-theme="light"] .dashboard-card-total .btn,
[data-theme="light"] .dashboard-card-total .btn:active,
[data-theme="light"] .dashboard-card-total .btn:focus {
  background-color: #17a2b8 !important;
  color: #fff !important;
  border-color: #17a2b8 !important;
}

[data-theme="light"] .dashboard-card-total .btn:hover {
  background-color: #138496 !important;
  color: #fff !important;
  border-color: #138496 !important;
}


/* DASHBOARD: Fundo dos cards com cores suaves no light mode */
[data-theme="light"] .dashboard-card-cliente {
  background: linear-gradient(135deg, #e3f2fd 0%, #bbdefb 100%) !important;
  border-color: #007bff !important;
}

[data-theme="light"] .dashboard-card-produto {
  background: linear-gradient(135deg, #e8f5e8 0%, #c8e6c9 100%) !important;
  border-color: #28a745 !important;
}

[data-theme="light"] .dashboard-card-venda {
  background: linear-gradient(135deg, #fff8e1 0%, #ffecb3 100%) !important;
  border-color: #ffc107 !important;
}

[data-theme="light"] .dashboard-card-total {
  background: linear-gradient(135deg, #e1f5fe 0%, #b3e5fc 100%) !important;
  border-color: #17a2b8 !important;
}

[data-theme="dark"] .btn-light,
[data-theme="dark"] .btn-light:active,
[data-theme="dark"] .btn-light:focus {
  background-color: #e2e6ea !important;
  color: #212529 !important;
  border-color: #e2e6ea !important;
}

[data-theme="dark"] .btn-light:hover {
  background-color: #cfd8dc !important;
  color: #212529 !important;
}

.notransition *,
.notransition {
  transition: none !important;
}

/* Botões de ação: sempre sólidos, cor semântica, ícone branco */
.btn-primary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info,
.btn-secondary {
  color: #fff !important;
  border-width: 1.5px !important;
  box-shadow: none !important;
}

.btn-primary {
  background-color: #007bff !important;
  border-color: #007bff !important;
}

.btn-primary:hover,
.btn-primary:focus {
  background-color: #0056b3 !important;
  border-color: #0056b3 !important;
}

.btn-success {
  background-color: #28a745 !important;
  border-color: #28a745 !important;
}

.btn-success:hover,
.btn-success:focus {
  background-color: #218838 !important;
  border-color: #1e7e34 !important;
}

.btn-danger {
  background-color: #dc3545 !important;
  border-color: #dc3545 !important;
}

.btn-danger:hover,
.btn-danger:focus {
  background-color: #d86d78 !important;
  border-color: #d86d78 !important;
}

.btn-warning {
  background-color: #ffc107 !important;
  border-color: #ffc107 !important;
  color: #fff !important;
}

.btn-warning:hover,
.btn-warning:focus {
  background-color: #e0a800 !important;
  border-color: #d39e00 !important;
}

.btn-info {
  background-color: #17a2b8 !important;
  border-color: #17a2b8 !important;
}

.btn-info:hover,
.btn-info:focus {
  background-color: #138496 !important;
  border-color: #117a8b !important;
}

/* Ícones dentro dos botões: sempre branco */
.btn .fa,
.btn .fas,
.btn .far,
.btn .fab {
  color: #fff !important;
}

.btn-warning .fa,
.btn-warning .fas,
.btn-warning .far,
.btn-warning .fab {
  color: #fff !important;
}

/* Remove estilos outline dos botões de ação */
.btn-outline-primary,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-warning,
.btn-outline-info {
  background: inherit !important;
  color: inherit !important;
  border: none !important;
  box-shadow: none !important;
}

/* Garante que todos os botões de ação tenham cursor pointer */
.btn,
.btn-sm {
  cursor: pointer !important;
}

.btn-secondary {
  background-color: #6c757d !important;
  border-color: #6c757d !important;
}

.btn-secondary:hover,
.btn-secondary:focus {
  background-color: #5a6268 !important;
  border-color: #545b62 !important;
}

/* DASHBOARD: Botões de ação dentro dos cards com fundo colorido e texto branco no dark mode */
[data-theme="dark"] .dashboard-card-cliente .btn,
[data-theme="dark"] .dashboard-card-cliente .btn:active,
[data-theme="dark"] .dashboard-card-cliente .btn:focus {
  background-color: #4dabf7 !important;
  color: #fff !important;
  border-color: #4dabf7 !important;
}

[data-theme="dark"] .dashboard-card-cliente .btn:hover {
  background-color: #3a8fd9 !important;
  color: #fff !important;
  border-color: #3a8fd9 !important;
}

[data-theme="dark"] .dashboard-card-produto .btn,
[data-theme="dark"] .dashboard-card-produto .btn:active,
[data-theme="dark"] .dashboard-card-produto .btn:focus {
  background-color: #75b798 !important;
  color: #fff !important;
  border-color: #75b798 !important;
}

[data-theme="dark"] .dashboard-card-produto .btn:hover {
  background-color: #5a9b7a !important;
  color: #fff !important;
  border-color: #5a9b7a !important;
}

[data-theme="dark"] .dashboard-card-venda .btn,
[data-theme="dark"] .dashboard-card-venda .btn:active,
[data-theme="dark"] .dashboard-card-venda .btn:focus {
  background-color: #ffd43b !important;
  color: #fff !important;
  border-color: #ffd43b !important;
}

[data-theme="dark"] .dashboard-card-venda .btn:hover {
  background-color: #e6c035 !important;
  color: #fff !important;
  border-color: #e6c035 !important;
}

[data-theme="dark"] .dashboard-card-total .btn,
[data-theme="dark"] .dashboard-card-total .btn:active,
[data-theme="dark"] .dashboard-card-total .btn:focus {
  background-color: #74c0fc !important;
  color: #fff !important;
  border-color: #74c0fc !important;
}

[data-theme="dark"] .dashboard-card-total .btn:hover {
  background-color: #5ba3e3 !important;
  color: #fff !important;
  border-color: #5ba3e3 !important;
}

/* Estilos para campos desabilitados/bloqueados */
.form-control-disabled {
  opacity: 0.6 !important;
  background-color: var(--bg-secondary) !important;
  cursor: not-allowed !important;
}

.form-control-disabled:focus {
  box-shadow: none !important;
  border-color: var(--border-color) !important;
}

/* Estilos específicos para campos de endereço desabilitados */
.form-control-disabled[readonly] {
  background-color: #f8f9fa !important;
  color: #6c757d !important;
  border-color: #dee2e6 !important;
}

[data-theme="dark"] .form-control-disabled[readonly] {
  background-color: #495057 !important;
  color: #adb5bd !important;
  border-color: #6c757d !important;
}

/* Indicador visual para campos preenchidos automaticamente */
.form-control-disabled[readonly]+.form-text {
  color: #6c757d !important;
  font-style: italic !important;
}

[data-theme="dark"] .form-control-disabled[readonly]+.form-text {
  color: #adb5bd !important;
}

/* Indicador de bloqueio */
.text-warning {
  color: #ffc107 !important;
}

[data-theme="dark"] .text-warning {
  color: #ffd43b !important;
}

/* DASHBOARD: Fundo dos cards com cores suaves no dark mode */
[data-theme="dark"] .dashboard-card-cliente {
  background: linear-gradient(135deg, #1a3a5f 0%, #0d47a1 100%) !important;
  border-color: #4dabf7 !important;
}

[data-theme="dark"] .dashboard-card-produto {
  background: linear-gradient(135deg, #1b5e20 0%, #2e7d32 100%) !important;
  border-color: #75b798 !important;
}

[data-theme="dark"] .dashboard-card-venda {
  background: linear-gradient(135deg, #f57f17 0%, #ff8f00 100%) !important;
  border-color: #ffd43b !important;
}

[data-theme="dark"] .dashboard-card-total {
  background: linear-gradient(135deg, #0277bd 0%, #0288d1 100%) !important;
  border-color: #74c0fc !important;
}

/* DASHBOARD: Efeitos visuais adicionais para todos os cards */
.dashboard-card-cliente,
.dashboard-card-produto,
.dashboard-card-venda,
.dashboard-card-total {
  box-shadow: none !important;
}

.dashboard-card-cliente:hover,
.dashboard-card-produto:hover,
.dashboard-card-venda:hover,
.dashboard-card-total:hover {
  box-shadow: none !important;
}

/* DASHBOARD: Estilo para os títulos dos cards */
.dashboard-card-cliente .card-title,
.dashboard-card-produto .card-title,
.dashboard-card-venda .card-title,
.dashboard-card-total .card-title {
  font-weight: bold !important;
  font-size: 2rem !important;
  margin-bottom: 0.5rem !important;
}

[data-theme="light"] .dashboard-card-cliente .card-title,
[data-theme="light"] .dashboard-card-produto .card-title,
[data-theme="light"] .dashboard-card-venda .card-title,
[data-theme="light"] .dashboard-card-total .card-title {
  color: #333 !important;
}

[data-theme="dark"] .dashboard-card-cliente .card-title,
[data-theme="dark"] .dashboard-card-produto .card-title,
[data-theme="dark"] .dashboard-card-venda .card-title,
[data-theme="dark"] .dashboard-card-total .card-title {
  color: #fff !important;
}

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