/* ================================================================
   VARIÁVEIS GLOBAIS (O CORAÇÃO DA IDENTIDADE VISUAL)
================================================================ 
*/
:root {
  /* Paleta Vibrante */
  --primary: #7000ff;
  --primary-hover: #a259ff;
  --accent: #00f2c3;
  --accent-hover: #09a385;
  --danger: #ff0055;
  --danger-hover: #9c1944;
  --warning: #ffb300;
  --warning-hover: #ffea00;
  --info: #1d8cf8;
  --info-hover: #0963bc;
  --success: #198754;
  --success-hover: #146c43;

  /* Tema Claro (Padrão) */
  --bg-system: #f8f9fe;
  --bg-card: #ffffff;
  --sidebar-bg: #ffffff; /* Sidebar CLARA no modo claro */
  --sidebar-text: #2d3436; /* Texto escuro para sidebar clara */
  --sidebar-link-muted: rgba(0, 0, 0, 0.5);
  --text-main: #2d3436;
  --text-muted: #636e72;
  --border-color: rgba(0, 0, 0, 0.08);
  --shadow: 0 10px 30px rgba(0, 0, 0, 0.05);

  /* Transições */
  --transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ================================================================
   TEMA ESCURO (DARK MODE)
================================================================ 
*/
[data-bs-theme="dark"] {
  --bg-system: #0b0e14;
  --bg-card: #161b22;
  --sidebar-bg: #110c21; /* Sidebar ESCURA no modo escuro */
  --sidebar-text: #e6edf3; /* Texto claro para sidebar escura */
  --sidebar-link-muted: rgba(255, 255, 255, 0.5);
  --text-main: #e6edf3;
  --text-muted: #8b949e;
  --border-color: rgba(255, 255, 255, 0.1);
  --shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
}

/* ================================================================
   ESTILOS GERAIS
================================================================ 
*/
body {
  background-color: var(--bg-system);
  color: var(--text-main);
  font-family: "Poppins", sans-serif;
  transition: var(--transition);
  overflow-x: hidden;
}

/* ================================================================
   SIDEBAR REPROJETADA (RESPONSIVA)
================================================================ 
*/
.sidebar {
  width: 280px;
  height: 100vh;
  background: var(--sidebar-bg);
  color: var(--sidebar-text);
  border-right: 1px solid var(--border-color); /* Linha sutil para separar no modo claro */
  position: fixed;
  left: 0;
  top: 0;
  z-index: 1000;
  transition: var(--transition);
  padding: 1.5rem;
  box-shadow: 10px 0 30px rgba(0, 0, 0, 0.1);

  /* Habilita a rolagem vertical */
  overflow-y: auto;
  /* Esconde a rolagem horizontal caso algo escape */
  overflow-x: hidden;
}

/* Estilização da Barra de Rolagem (Webkit - Chrome, Edge, Safari) */
.sidebar::-webkit-scrollbar {
  width: 5px; /* Bem fininha para ser discreta */
}

.sidebar::-webkit-scrollbar-track {
  background: rgba(255, 255, 255, 0.05); /* Fundo quase invisível */
}

.sidebar::-webkit-scrollbar-thumb {
  background: var(--primary); /* Cor roxa vibrante no scroll */
  border-radius: 10px;
}

.sidebar::-webkit-scrollbar-thumb:hover {
  background: var(--accent); /* Muda para o verde neon no hover */
}

/* Para Firefox */
.sidebar {
  scrollbar-width: thin;
  scrollbar-color: var(--primary) rgba(255, 255, 255, 0.05);
}

/* Garante que os títulos de seção (como "Configurações") sejam visíveis */
.sidebar .text-muted {
  /* Branco suave para não brilhar demais */
  color: var(--sidebar-link-muted) !important;
  font-weight: 600;
  display: block;
  margin-top: 1.5rem;
  transition: var(--transition);
}

/* Opcional: Efeito ao passar o mouse para dar feedback visual */
.sidebar .text-muted:hover {
  color: var(--sidebar-text) !important;
}

/* Estado Fechado (Mobile) */
@media (max-width: 992px) {
  .sidebar {
    left: -280px;
  }
  .sidebar.active {
    left: 0;
  }
  .main-content {
    margin-left: 0 !important;
  }
}

/* ================================================================
   BOTÕES VIBRANTES E MODERNOS
================================================================ */

.btn-primary {
  background: linear-gradient(45deg, var(--primary), var(--primary-hover));
  border: none;
  color: #fff !important;
  border-radius: 12px;
  /*box-shadow: 0 4px 15px rgba(112, 0, 255, 0.3);*/
  box-shadow: 0 4px 15px rgb(from var(--primary) r g b / 0.3);
  transition: var(--transition);
}

.btn-primary:hover {
  transform: translateY(-3px);
  /*box-shadow: 0 8px 25px rgba(112, 0, 255, 0.5);*/
  box-shadow: 0 8px 25px rgb(from var(--primary) r g b / 0.5);
  filter: brightness(1.1);
}

.btn-primary:active {
  transform: translateY(0);
}

.btn-success {
  border: none;
  color: #fff !important;
  border-radius: 12px;
  /*box-shadow: 0 4px 15px rgba(25, 135, 84, 0.3);*/
  box-shadow: 0 4px 15px rgb(from var(--success) r g b / 0.3);
  transition: var(--transition);
}

.btn-success:hover {
  transform: translateY(-3px);
  /*box-shadow: 0 8px 25px rgba(25, 135, 84, 0.5);*/
  box-shadow: 0 8px 25px rgb(from var(--success) r g b / 0.5);
  filter: brightness(1.1);
}

.btn-success:active {
  transform: translateY(0);
}

.btn-info {
  border: none;
  color: #fff !important;
  border-radius: 12px;
  /*box-shadow: 0 4px 15px rgba(29, 140, 248, 0.3);*/
  box-shadow: 0 8px 25px rgb(from var(--info) r g b / 0.3);
  transition: var(--transition);
}

.btn-info:hover {
  transform: translateY(-3px);
  /*box-shadow: 0 8px 25px rgba(29, 140, 248, 0.5);*/
  box-shadow: 0 8px 25px rgb(from var(--info) r g b / 0.5);
  filter: brightness(1.1);
}

.btn-info:active {
  transform: translateY(0);
}

.btn-warning {
  border: none;
  color: #000;
  border-radius: 12px;
  /*box-shadow: 0 4px 15px rgba(255, 193, 7, 0.3);*/
  box-shadow: 0 4px 15px rgb(from var(--warning) r g b / 0.3);
  transition: var(--transition);
}

.btn-warning:hover {
  transform: translateY(-3px);
  /*box-shadow: 0 8px 25px rgba(255, 193, 7, 0.5);*/
  box-shadow: 0 8px 25px rgb(from var(--warning) r g b / 0.5);
  filter: brightness(1.1);
}

.btn-warning:active {
  transform: translateY(0);
}

.btn-danger {
  border: none;
  color: #fff !important;
  border-radius: 12px;
  /*box-shadow: 0 4px 15px rgba(220, 53, 69, 0.3);*/
  box-shadow: 0 4px 15px rgb(from var(--danger) r g b / 0.3);
  transition: var(--transition);
}

.btn-danger:hover {
  transform: translateY(-3px);
  /*box-shadow: 0 8px 25px rgba(220, 53, 69, 0.5);*/
  box-shadow: 0 8px 25px rgb(from var(--danger) r g b / 0.5);
  filter: brightness(1.1);
}

.btn-danger:active {
  transform: translateY(0);
}

/* Botão de contorno moderno para ações secundárias */
.btn-outline-vibrant {
  border: 2px solid var(--primary);
  color: var(--primary);
  background: transparent;
  font-weight: 600;
  padding: 8px 22px;
  border-radius: 12px;
  transition: var(--transition);
}

.btn-outline-vibrant:hover {
  background: var(--primary);
  color: #fff;
}

/* Ajuste para Telas Pequenas (Mobile) */
@media (max-width: 576px) {
  .btn-vibrant-primary,
  .btn-vibrant-warning,
  .btn-vibrant-danger {
    padding: 8px 16px; /* Reduz o preenchimento */
    font-size: 14px; /* Diminui levemente a fonte */
    border-radius: 10px; /* Arredondamento um pouco menor */
    width: 50%; /* Faz o botão ocupar a largura de 50% no mobile para não estourar */
    white-space: normal; /* Permite que o texto quebre se for muito grande */
    text-align: center;
  }

  /* Ajuste para ícones dentro do botão no mobile */
  .btn-vibrant-primary,
  .btn-vibrant-warning,
  .btn-vibrant-danger i {
    font-size: 1.1rem;
  }
}

/* ================================================================
   CUSTOMIZAÇÃO DE BOTÕES SECUNDÁRIOS (Bootstrap Override)
================================================================ */

.btn-outline-secondary {
  border: 2px solid var(--border-color); /* Usa a borda sutil do nosso tema */
  color: var(--text-muted); /* Texto cinza elegante */
  border-radius: 12px; /* Mesma curvatura dos cards */
  font-weight: 500;
  transition: var(--transition);
  background: transparent;
}

.btn-outline-secondary:hover {
  background-color: var(--border-color); /* Fundo leve ao passar o mouse */
  border-color: var(--text-muted);
  color: var(--text-main);
  transform: translateY(-2px); /* Pequeno efeito de subida */
}

/* Ajuste específico para quando o botão estiver no modo escuro */
[data-bs-theme="dark"] .btn-outline-secondary {
  border-color: rgba(255, 255, 255, 0.1);
  color: #8b949e;
}

/* Conteúdo Principal */
.main-content {
  margin-left: 280px;
  padding: 2rem;
  transition: var(--transition);
  min-height: 100vh;
}

/* Links do Menu */
.nav-link {
  color: var(--sidebar-link-muted); /* Cor adaptativa */
  padding: 12px 20px;
  border-radius: 12px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  font-weight: 500;
  transition: var(--transition);
}

.nav-link i {
  font-size: 1.2rem;
  margin-right: 12px;
}

.nav-link:hover,
.nav-link.active {
  background: linear-gradient(45deg, var(--primary), #a259ff);
  color: #fff !important;
  box-shadow: 0 4px 15px rgba(112, 0, 255, 0.3);
}

/* Botão Toggle (Hambúrguer) */
.toggle-btn {
  display: none;
  background: var(--primary);
  color: white;
  border: none;
  padding: 10px;
  border-radius: 10px;
  cursor: pointer;
  margin-right: 15px;
}

@media (max-width: 992px) {
  .toggle-btn {
    display: block;
  }
}

/* ================================================================
   ANIMAÇÕES DE ENTRADA
================================================================ 
*/
@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.animate-up {
  animation: slideUp 0.6s ease-out forwards;
}

/* ================================================================
   REFINAMENTO DE CARDS E ELEMENTOS INTERNOS
================================================================ */

/* Ajuste no Container de Cards para não ficarem gigantes em telas largas */
.row-cols-md-3 > .col {
  max-width: 400px; /* Evita que o card estique demais */
}

/* Estado Natural do Card */
.card-modern {
  border-radius: 20px;
  transition: all 0.3s ease-in-out; /* Suaviza a subida e a sombra */
  border: 1px solid var(--border-color);
  background: var(--bg-card); /* Use sua variável de fundo de card */
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3); /* Sombra padrão leve */
  backdrop-filter: blur(10px);
}

/* Efeito ao passar o Mouse (Elevação) */
.card-modern:hover {
  transform: translateY(-8px); /* Eleva o card para cima */
  box-shadow:
    0 15px 35px rgba(0, 0, 0, 0.6),
    0 0 15px rgb(from var(--primary) r g b / 0.811); /* Sombra maior e mais escura */
  border: 1px solid var(--primary); /* Borda mais grossa */
  border-color: var(--primary); /* Opcional: destaca a borda com sua cor neon */
}

/* Avatar Circular Perfeito */
.avatar-circle {
  width: 50px;
  height: 50px;
  background: linear-gradient(135deg, var(--primary), #a259ff);
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.2rem;
  flex-shrink: 0; /* Impede o avatar de amassar */
  box-shadow: 0 4px 10px rgba(112, 0, 255, 0.2);
}

/* Cores Vibrantes para Badges (Substituindo o padrão do Bootstrap) */
.badge-vibrant-info {
  background-color: rgba(29, 140, 248, 0.12) !important;
  color: var(--info) !important;
  border: 1px solid rgba(29, 140, 248, 0.2);
}

.badge-vibrant-success {
  background-color: rgba(0, 242, 195, 0.12) !important;
  color: var(--accent) !important;
  border: 1px solid rgba(0, 242, 195, 0.2);
}

.badge-vibrant-danger {
  background-color: rgba(255, 0, 85, 0.12) !important;
  color: var(--danger) !important;
  border: 1px solid rgba(255, 0, 85, 0.2);
}

/* Ajuste de Espaçamento Interno do Card */
.card-modern .card-body-custom {
  padding: 1.5rem;
}

.card-modern .card-footer-custom {
  padding: 1rem 1.5rem;
  background: rgba(0, 0, 0, 0.02);
  border-top: 1px solid var(--border-color);
  border-radius: 0 0 20px 20px;
}

[data-bs-theme="dark"] .card-footer-custom {
  background: rgba(255, 255, 255, 0.02);
}

/* Customização Select2 para Tema Escuro */
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection {
  background-color: var(--bg-card);
  border-color: var(--border-color);
  color: var(--text-main);
}

[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-selection--multiple
  .select2-selection__choice {
  background-color: var(--primary);
  border: none;
  color: #fff;
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown {
  background-color: var(--bg-card);
  border-color: var(--border-color);
}

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-search__field {
  background-color: var(--bg-system);
  color: white;
}

/* Cor do texto nos itens selecionados */
[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-results__option {
  color: var(--text-muted);
}

[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-results__option--highlighted {
  background-color: var(--primary);
  color: white;
}

/* Ajuste para o item selecionado no Select2 combinar com o tema IBG */
.select2-container--bootstrap-5 .select2-selection--single {
  height: calc(3rem + 2px) !important; /* Mesma altura dos seus outros inputs */
  padding-top: 0.8rem !important;
  border-radius: 12px !important;
}

.select2-container--bootstrap-5
  .select2-dropdown
  .select2-results__option--highlighted {
  background-color: var(--primary) !important;
  color: #ffffff !important;
}

/* ================================================================
   CORREÇÃO SELECT2 - MODO ESCURO (VISIBILIDADE TOTAL)
================================================================ */

[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-selection {
  background-color: var(--bg-card) !important;
  border-color: var(--border-color) !important;
}

/* Cor do texto selecionado no campo */
[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-selection--single
  .select2-selection__rendered {
  color: var(--text-main) !important;
}

/* Cor do placeholder (texto de instrução) */
[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-selection--single
  .select2-selection__placeholder {
  color: var(--text-muted) !important;
}

/* Cor da seta (dropdown arrow) */
[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-selection--single
  .select2-selection__arrow
  b {
  border-color: var(--text-muted) transparent transparent transparent !important;
}

/* Dropdown (Lista de opções) */
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-dropdown {
  background-color: var(--bg-card) !important;
  border-color: var(--border-color) !important;
  color: var(--text-main) !important;
}

/* Itens da lista */
[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-results__option {
  color: var(--text-main) !important;
}

/* Item focado/selecionado na lista (Vibrante) */
[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-results__option--highlighted {
  background-color: var(--primary) !important;
  color: #ffffff !important;
}

/* Campo de busca dentro do Select2 */
[data-bs-theme="dark"] .select2-container--bootstrap-5 .select2-search__field {
  background-color: var(--bg-system) !important;
  color: white !important;
  border-color: var(--border-color) !important;
}

[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-selection--single
  .select2-selection__clear {
  color: var(--text-muted) !important;
}

[data-bs-theme="dark"]
  .select2-container--bootstrap-5
  .select2-selection--single
  .select2-selection__clear:hover {
  color: var(--danger) !important;
}

/* Garante que a barra de navegação fique acima do conteúdo principal */
.main-content nav {
  position: relative;
  z-index: 990; /* Abaixo da sidebar (1000), mas acima dos cards */
}

/* Força o dropdown a ficar no topo de tudo */
.dropdown-menu {
  z-index: 1050 !important;
}

/* Evita que o container do avatar esconda o menu se houver overflow */
.dropdown {
  position: relative;
}

/* Estilização para o menu não "colar" na borda */
.dropdown-menu-end {
  margin-top: 10px !important;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5) !important;
}

/* ESTILOS ADICIONAIS PERSONALIZADOS */

.bg-black-25 {
  background: rgba(182, 227, 242, 0.25);
}

.module-box:hover {
  border-color: var(--primary) !important;
  background: rgba(112, 0, 255, 0.05);
}

.check-membro:checked + .form-check-label span {
  color: var(--primary) !important;
}
.check-membro {
  cursor: pointer;
  width: 1.2rem;
  height: 1.2rem;
}

/* Classe que aplica o efeito de desfoque */
.money-blurred {
  filter: blur(8px) !important;
  user-select: none !important;
  pointer-events: none !important;
  transition: filter 0.3s ease;
}

/* Estilo do botão de visibilidade no topo */
.btn-privacy {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--text-main);
  padding: 8px 12px;
  border-radius: 10px;
  transition: all 0.2s;
}

.btn-privacy:hover {
  background: var(--primary-color);
  color: white;
}

/* Quando a privacidade está ativa no nível da página, embaça todos os campos marcados */
html.privacy-active .h-money {
  filter: blur(10px) !important;
  user-select: none !important;
  pointer-events: none !important;
}

/* Transição suave para quando o usuário clicar no "olho" */
.h-money {
  transition: filter 0.2s ease-in-out;
}
