/* =============================================================
   Sistema Report — Identidade Visual Repágil
   assets/css/style.css
   ============================================================= */

/* -------------------------------------------------------------
   Google Fonts
   ------------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=DM+Sans:wght@300;400;500&family=JetBrains+Mono:wght@400;500&display=swap');

/* -------------------------------------------------------------
   Variáveis CSS — Paleta Repágil
   ------------------------------------------------------------- */
:root {
  --bg:         #FFFFFF;
  --navy:       #0D1F3C;
  --navy-mid:   #1A3560;
  --cobalt:     #2B7FFF;
  --gold:       #C9962A;
  --gold-light: #F2C14E;
  --heading:    var(--navy);
  --text-main:  #0D1F3C;
  --text-muted: #5A6A85;
  --surface:    #F4F6FA;
  --border:     #E5E7EB;
  --red:        #DC2626;
  --green:      #16A34A;
  --shadow-sm:  0 1px 3px rgba(13, 31, 60, 0.08);
  --shadow-md:  0 4px 16px rgba(13, 31, 60, 0.10);
  --radius-sm:  12px;
  --radius-md:  16px;
  --radius-lg:  24px;
}

/* -------------------------------------------------------------
   Tema Escuro — Sistema Report
   Ativado via atributo data-theme="escuro" na tag <html>.
   O padrão do sistema permanece o tema claro definido acima.
   ------------------------------------------------------------- */
html[data-theme="escuro"] {
  color-scheme: dark;
  --bg:         #0F1521;
  --navy-mid:   #24426E;
  --cobalt:     #4C93FF;
  --gold:       #E0AC4E;
  --gold-light: #F2C14E;
  --heading:    #EDF1F7;
  --text-main:  #E2E8F0;
  --text-muted: #8C9BB5;
  --surface:    #19222F;
  --border:     #2A3346;
  --red:        #F87171;
  --green:      #4ADE80;
  --shadow-sm:  0 1px 3px rgba(0, 0, 0, 0.45);
  --shadow-md:  0 8px 24px rgba(0, 0, 0, 0.55);
}

/* -------------------------------------------------------------
   Reset & Base
   ------------------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }

html { -webkit-font-smoothing: antialiased; }

body {
  font-family: 'DM Sans', system-ui, sans-serif;
  font-size: 14px;
  color: var(--text-main);
  background: var(--bg);
  line-height: 1.5;
}

/* -------------------------------------------------------------
   Tipografia
   ------------------------------------------------------------- */
h1, h2, h3, h4, .heading {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  font-weight: 700;
  color: var(--heading);
}

.display { font-weight: 800; }

code, pre, .mono {
  font-family: 'JetBrains Mono', monospace;
}

/* Palavras-chave Repágil */
.kw-gold  { color: var(--gold); }
.kw-blue  { color: var(--cobalt); }

/* -------------------------------------------------------------
   Sidebar — Identidade Repágil
   ------------------------------------------------------------- */
.sidebar {
  background: var(--navy);
  border-right: none;
  width: 240px;
}

.sidebar-brand {
  padding: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
  display: flex;
  align-items: center;
  gap: 12px;
}

.sidebar-logo {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.sidebar-app-name {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  font-size: 15px;
  color: #FFFFFF;
}

.sidebar-role {
  font-size: 11px;
  color: rgba(255,255,255,0.45);
}

.sidebar-nav { padding: 12px 12px; }

.sidebar-nav-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 500;
  color: rgba(255,255,255,0.65);
  cursor: pointer;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
  border-left: 3px solid transparent;
}

.sidebar-nav-item:hover {
  background: rgba(43, 127, 255, 0.15);
  color: #FFFFFF;
  border-left-color: var(--cobalt);
}

.sidebar-nav-item.active {
  background: rgba(201, 150, 42, 0.12);
  color: #FFFFFF;
  border-left-color: var(--gold);
  font-weight: 600;
}

.sidebar-nav-item.active svg { color: var(--gold-light); }

.sidebar-nav-item svg { opacity: 0.65; transition: opacity 0.15s; }
.sidebar-nav-item:hover svg,
.sidebar-nav-item.active svg { opacity: 1; }

.sidebar-footer {
  padding: 12px;
  border-top: 1px solid rgba(255,255,255,0.08);
  margin-top: auto;
}

.sidebar-user {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px;
  border-radius: var(--radius-sm);
}

.sidebar-user-name  { font-size: 12px; font-weight: 600; color: #FFFFFF; }
.sidebar-user-email { font-size: 10px; color: rgba(255,255,255,0.45); }

.sidebar-logout {
  color: rgba(255,255,255,0.40);
  transition: color 0.15s;
}
.sidebar-logout:hover { color: #FF6B6B; }

/* Badge contador (gargalos) */
.sidebar-badge {
  margin-left: auto;
  background: var(--red);
  color: #FFFFFF;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 999px;
}

/* -------------------------------------------------------------
   Topbar
   ------------------------------------------------------------- */
.topbar {
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  padding: 0 24px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 10;
}

.topbar-title {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: var(--heading);
}

.topbar-sub {
  font-size: 12px;
  color: var(--text-muted);
}

/* -------------------------------------------------------------
   Cards KPI
   ------------------------------------------------------------- */
.card {
  background: var(--bg);
  border-radius: var(--radius-lg);
  border: 1.5px solid var(--border);
  padding: 24px;
  box-shadow: var(--shadow-sm);
}

/* Cards alternados: ímpar = borda gold, par = borda cobalt */
.card:nth-child(odd)  { border-color: rgba(201, 150, 42, 0.50); }
.card:nth-child(even) { border-color: rgba(43, 127, 255, 0.45); }

.card-kpi {
  background: var(--surface);
  border-radius: var(--radius-lg);
  border: none;
  padding: 20px;
}

.card-label {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  margin-bottom: 6px;
}

.card-value {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 26px;
  font-weight: 700;
  color: var(--heading);
}

.card-sub {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 4px;
}

/* -------------------------------------------------------------
   Badges — Status
   ------------------------------------------------------------- */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}

.badge-backlog    { background: var(--surface); color: var(--text-muted); }
.badge-em_producao{ background: rgba(43,127,255,0.12); color: var(--cobalt); }
.badge-em_teste   { background: rgba(201,150,42,0.12); color: var(--gold); }
.badge-bloqueada  { background: rgba(220,38,38,0.10); color: var(--red); }
.badge-concluida  { background: rgba(22,163,74,0.10); color: var(--green); }

/* Prioridade */
.badge-critica { background: rgba(220,38,38,0.10); color: var(--red); }
.badge-alta    { background: rgba(234,88,12,0.10); color: #EA580C; }
.badge-media   { background: rgba(43,127,255,0.12); color: var(--cobalt); }
.badge-baixa   { background: var(--surface); color: var(--text-muted); }

/* -------------------------------------------------------------
   Destaque de tarefas em aberto (classeDestaqueTarefa() em helpers.php)
   Pendente = dourado, Em andamento = azul, Concluída = neutro.
   Aplicado no elemento que envolve cada tarefa nas listagens.
   ------------------------------------------------------------- */
.tarefa-pendente {
  background: rgba(242,193,78,0.18) !important;
  border-color: rgba(201,150,42,0.55) !important;
  border-left: 4px solid var(--gold) !important;
}
.tarefa-andamento {
  background: rgba(43,127,255,0.12) !important;
  border-color: rgba(43,127,255,0.40) !important;
  border-left: 4px solid var(--cobalt) !important;
}
.tarefa-pendente .tarefa-titulo,
.tarefa-andamento .tarefa-titulo { font-weight: 700; color: var(--heading); }

/* -------------------------------------------------------------
   Botões
   ------------------------------------------------------------- */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 18px;
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  border: none;
  text-decoration: none;
}

.btn-primary {
  background: var(--navy);
  color: #FFFFFF;
}
.btn-primary:hover { background: var(--navy-mid); }

.btn-secondary {
  background: var(--gold);
  color: var(--navy);
}
.btn-secondary:hover { background: var(--gold-light); }

.btn-ghost {
  background: transparent;
  border: 1.5px solid var(--border);
  color: var(--text-main);
}
.btn-ghost:hover { background: var(--surface); }

.btn-danger {
  background: transparent;
  border: 1.5px solid rgba(220,38,38,0.4);
  color: var(--red);
}
.btn-danger:hover { background: rgba(220,38,38,0.06); }

/* -------------------------------------------------------------
   Tabelas
   ------------------------------------------------------------- */
.table { width: 100%; border-collapse: collapse; }
.table th {
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
  padding: 10px 16px;
  text-align: left;
  border-bottom: 1px solid var(--border);
}
.table td {
  padding: 12px 16px;
  border-bottom: 0.5px solid var(--border);
  font-size: 13px;
  color: var(--text-main);
}
.table tr:hover td { background: var(--surface); }
.table tr:last-child td { border-bottom: none; }

/* -------------------------------------------------------------
   Inputs & Formulários
   ------------------------------------------------------------- */
.input {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: 'DM Sans', sans-serif;
  color: var(--text-main);
  background: var(--bg);
  outline: none;
  transition: border-color 0.15s;
}
.input:focus { border-color: var(--cobalt); }
.input::placeholder { color: var(--text-muted); }

.label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--text-muted);
  margin-bottom: 6px;
}

/* -------------------------------------------------------------
   Toast (notificações inline)
   ------------------------------------------------------------- */
.toast {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 18px;
  border-radius: var(--radius-md);
  font-size: 13px;
  font-weight: 500;
  box-shadow: var(--shadow-md);
  opacity: 0;
  transform: translateY(-8px);
}
.toast-success { background: rgba(22,163,74,0.10); border: 1px solid rgba(22,163,74,0.3); color: var(--green); }
.toast-error   { background: rgba(220,38,38,0.08); border: 1px solid rgba(220,38,38,0.3); color: var(--red); }
.toast-info    { background: rgba(43,127,255,0.08); border: 1px solid rgba(43,127,255,0.3); color: var(--cobalt); }

/* -------------------------------------------------------------
   Barra de progresso
   ------------------------------------------------------------- */
.progress-track {
  width: 100%;
  height: 6px;
  background: var(--surface);
  border-radius: 999px;
  overflow: hidden;
}
.progress-fill {
  height: 100%;
  border-radius: 999px;
  background: var(--cobalt);
  transition: width 0.4s ease;
}
.progress-fill.complete { background: var(--green); }
.progress-fill.warning  { background: var(--gold); }

/* -------------------------------------------------------------
   Modais
   ------------------------------------------------------------- */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(13,31,60,0.50);
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
}
.modal-box {
  background: var(--bg);
  border-radius: var(--radius-lg);
  box-shadow: 0 24px 60px rgba(13,31,60,0.18);
  width: 100%;
  max-width: 480px;
  padding: 32px;
}

/* -------------------------------------------------------------
   Notificações (dropdown sino)
   ------------------------------------------------------------- */
.notif-bell { position: relative; }
.notif-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 16px;
  height: 16px;
  background: var(--red);
  color: #FFFFFF;
  font-size: 9px;
  font-weight: 700;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--bg);
}
.notif-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 340px;
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-md);
  z-index: 50;
}
.notif-item {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  font-size: 12px;
  color: var(--text-main);
  transition: background 0.1s;
}
.notif-item:hover { background: var(--surface); }
.notif-item.unread { background: rgba(43,127,255,0.04); }
.notif-item:last-child { border-bottom: none; }
.notif-item .notif-time { font-size: 10px; color: var(--text-muted); margin-top: 2px; }

/* -------------------------------------------------------------
   Kanban
   ------------------------------------------------------------- */
.kanban-board {
  display: grid;
  grid-template-columns: repeat(5, minmax(220px, 1fr));
  gap: 16px;
  overflow-x: auto;
  padding-bottom: 16px;
}
.kanban-col {
  background: var(--surface);
  border-radius: var(--radius-md);
  padding: 12px;
  min-height: 400px;
}
.kanban-col-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  padding: 0 4px;
}
.kanban-col-title {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--text-muted);
}
.kanban-card {
  background: var(--bg);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  padding: 12px;
  margin-bottom: 8px;
  cursor: grab;
  transition: box-shadow 0.15s, transform 0.15s;
}
.kanban-card:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.kanban-card.dragging { opacity: 0.5; cursor: grabbing; }
.kanban-col.drag-over { background: rgba(43,127,255,0.06); border: 1.5px dashed var(--cobalt); }

/* -------------------------------------------------------------
   Responsividade
   ------------------------------------------------------------- */
@media (max-width: 768px) {
  .sidebar { transform: translateX(-100%); }
  .sidebar.open { transform: translateX(0); }
  .kanban-board { grid-template-columns: repeat(2, minmax(200px, 1fr)); }
}

@media (max-width: 390px) {
  .card-value { font-size: 20px; }
  .kanban-board { grid-template-columns: 1fr; }
}

/* =============================================================
   TEMA ESCURO — Sobrescritas de utilitárias Tailwind soltas
   As páginas usam Tailwind via CDN (sem build), então classes como
   bg-white, text-gray-700, bg-[#F8F8F8] etc. aparecem direto no
   HTML, fora do sistema de variáveis acima. Este bloco reaplica o
   tema escuro nelas, sem mexer em elementos que já são propositalmente
   escuros (ex.: sidebar navy, cards de destaque com gradiente).
   ============================================================= */

/* Fundo padrão de página */
html[data-theme="escuro"] body { background-color: var(--bg); color: var(--text-main); }

/* Superfícies claras (página, cards, containers) -> superfície escura */
html[data-theme="escuro"] .bg-white,
html[data-theme="escuro"] .bg-gray-50,
html[data-theme="escuro"] .bg-slate-50,
html[data-theme="escuro"] .bg-\[\#F8F8F8\],
html[data-theme="escuro"] .bg-\[\#F9FAFB\],
html[data-theme="escuro"] .bg-\[\#FBFBFB\],
html[data-theme="escuro"] .bg-\[\#F8FAFC\],
html[data-theme="escuro"] .bg-\[\#F4FBF7\] { background-color: var(--bg) !important; }

html[data-theme="escuro"] .bg-gray-100,
html[data-theme="escuro"] .bg-gray-200,
html[data-theme="escuro"] .bg-slate-100,
html[data-theme="escuro"] .bg-slate-200,
html[data-theme="escuro"] .bg-\[\#F3F4F6\] { background-color: var(--surface) !important; }

html[data-theme="escuro"] .hover\:bg-gray-50:hover,
html[data-theme="escuro"] .hover\:bg-gray-100:hover,
html[data-theme="escuro"] .hover\:bg-white\/10:hover { background-color: var(--surface) !important; }

/* Bordas e separadores claros */
html[data-theme="escuro"] .border-gray-50,
html[data-theme="escuro"] .border-gray-100,
html[data-theme="escuro"] .border-gray-200,
html[data-theme="escuro"] .border-gray-300,
html[data-theme="escuro"] .border-slate-100,
html[data-theme="escuro"] .border-slate-200,
html[data-theme="escuro"] .border-slate-300,
html[data-theme="escuro"] .divide-gray-100,
html[data-theme="escuro"] .divide-gray-200 { border-color: var(--border) !important; }

/* Texto em escala de cinza/slate — sempre clara no escuro, variando só a ênfase */
html[data-theme="escuro"] .text-gray-900,
html[data-theme="escuro"] .text-gray-800,
html[data-theme="escuro"] .text-slate-900,
html[data-theme="escuro"] .text-slate-800,
html[data-theme="escuro"] .text-\[\#1D1D1F\],
html[data-theme="escuro"] .text-\[\#374151\] { color: var(--heading) !important; }

html[data-theme="escuro"] .text-gray-700,
html[data-theme="escuro"] .text-gray-600,
html[data-theme="escuro"] .text-slate-700,
html[data-theme="escuro"] .text-slate-600 { color: var(--text-main) !important; }

html[data-theme="escuro"] .text-gray-500,
html[data-theme="escuro"] .text-slate-500 { color: var(--text-muted) !important; }

html[data-theme="escuro"] .text-gray-400,
html[data-theme="escuro"] .text-gray-300,
html[data-theme="escuro"] .text-gray-200,
html[data-theme="escuro"] .text-gray-100,
html[data-theme="escuro"] .text-slate-400,
html[data-theme="escuro"] .text-slate-300 { color: #6B7A93 !important; }

html[data-theme="escuro"] .placeholder-gray-400::placeholder { color: #6B7A93 !important; }

/* Inputs, selects e textareas — caret/seleção nativos do navegador */
html[data-theme="escuro"] input,
html[data-theme="escuro"] select,
html[data-theme="escuro"] textarea { color-scheme: dark; }

/* Sombras suavizadas para fundo escuro */
html[data-theme="escuro"] .shadow,
html[data-theme="escuro"] .shadow-sm,
html[data-theme="escuro"] .shadow-md,
html[data-theme="escuro"] .shadow-lg,
html[data-theme="escuro"] .shadow-xl { box-shadow: var(--shadow-md) !important; }

/* Botões sólidos da marca — clareiam levemente para manter contraste */
html[data-theme="escuro"] .bg-\[\#185FA5\] { background-color: #2B7FFF !important; }
html[data-theme="escuro"] .bg-\[\#0C447C\] { background-color: #185FA5 !important; }
html[data-theme="escuro"] .bg-\[\#2B7FFF\] { background-color: #4C93FF !important; }

/* -------------------------------------------------------------
   Badges e destaques coloridos (tipo, impacto, avatar, alertas)
   Fundo suave em baixa opacidade + texto vivo na mesma matiz.
   ------------------------------------------------------------- */
html[data-theme="escuro"] .bg-red-50,    html[data-theme="escuro"] .bg-red-100    { background-color: rgba(248,113,113,.16) !important; }
html[data-theme="escuro"] .border-red-100, html[data-theme="escuro"] .border-red-200, html[data-theme="escuro"] .border-red-300 { border-color: rgba(248,113,113,.35) !important; }
html[data-theme="escuro"] .text-red-300, html[data-theme="escuro"] .text-red-400, html[data-theme="escuro"] .text-red-500,
html[data-theme="escuro"] .text-red-600, html[data-theme="escuro"] .text-red-700, html[data-theme="escuro"] .text-red-800 { color: #FCA5A5 !important; }

html[data-theme="escuro"] .bg-orange-50, html[data-theme="escuro"] .bg-orange-100 { background-color: rgba(251,146,60,.16) !important; }
html[data-theme="escuro"] .border-orange-100, html[data-theme="escuro"] .border-orange-200 { border-color: rgba(251,146,60,.35) !important; }
html[data-theme="escuro"] .text-orange-300, html[data-theme="escuro"] .text-orange-400, html[data-theme="escuro"] .text-orange-500,
html[data-theme="escuro"] .text-orange-600, html[data-theme="escuro"] .text-orange-700 { color: #FDBA74 !important; }

html[data-theme="escuro"] .bg-amber-50,  html[data-theme="escuro"] .bg-amber-100  { background-color: rgba(245,158,11,.16) !important; }
html[data-theme="escuro"] .border-amber-100, html[data-theme="escuro"] .border-amber-200 { border-color: rgba(245,158,11,.35) !important; }
html[data-theme="escuro"] .text-amber-300, html[data-theme="escuro"] .text-amber-400, html[data-theme="escuro"] .text-amber-500,
html[data-theme="escuro"] .text-amber-600, html[data-theme="escuro"] .text-amber-700 { color: #FCD34D !important; }

html[data-theme="escuro"] .bg-yellow-50, html[data-theme="escuro"] .bg-yellow-100 { background-color: rgba(234,179,8,.16) !important; }
html[data-theme="escuro"] .text-yellow-600, html[data-theme="escuro"] .text-yellow-700 { color: #FDE047 !important; }

html[data-theme="escuro"] .bg-green-50,  html[data-theme="escuro"] .bg-green-100  { background-color: rgba(74,222,128,.16) !important; }
html[data-theme="escuro"] .border-green-100, html[data-theme="escuro"] .border-green-200 { border-color: rgba(74,222,128,.35) !important; }
html[data-theme="escuro"] .text-green-300, html[data-theme="escuro"] .text-green-400, html[data-theme="escuro"] .text-green-500,
html[data-theme="escuro"] .text-green-600, html[data-theme="escuro"] .text-green-700 { color: #86EFAC !important; }

html[data-theme="escuro"] .bg-emerald-50, html[data-theme="escuro"] .bg-emerald-100 { background-color: rgba(52,211,153,.16) !important; }
html[data-theme="escuro"] .text-emerald-600, html[data-theme="escuro"] .text-emerald-700 { color: #6EE7B7 !important; }

html[data-theme="escuro"] .bg-teal-50,   html[data-theme="escuro"] .bg-teal-100   { background-color: rgba(45,212,191,.16) !important; }
html[data-theme="escuro"] .text-teal-600, html[data-theme="escuro"] .text-teal-700 { color: #5EEAD4 !important; }

html[data-theme="escuro"] .bg-cyan-50,   html[data-theme="escuro"] .bg-cyan-100   { background-color: rgba(34,211,238,.16) !important; }
html[data-theme="escuro"] .text-cyan-600, html[data-theme="escuro"] .text-cyan-700 { color: #67E8F9 !important; }

html[data-theme="escuro"] .bg-sky-50,    html[data-theme="escuro"] .bg-sky-100    { background-color: rgba(56,189,248,.16) !important; }
html[data-theme="escuro"] .text-sky-600, html[data-theme="escuro"] .text-sky-700 { color: #7DD3FC !important; }

html[data-theme="escuro"] .bg-blue-50,   html[data-theme="escuro"] .bg-blue-100   { background-color: rgba(59,130,246,.16) !important; }
html[data-theme="escuro"] .border-blue-100, html[data-theme="escuro"] .border-blue-200 { border-color: rgba(59,130,246,.35) !important; }
html[data-theme="escuro"] .text-blue-300, html[data-theme="escuro"] .text-blue-400, html[data-theme="escuro"] .text-blue-500,
html[data-theme="escuro"] .text-blue-600, html[data-theme="escuro"] .text-blue-700 { color: #93C5FD !important; }

html[data-theme="escuro"] .bg-indigo-50, html[data-theme="escuro"] .bg-indigo-100 { background-color: rgba(129,140,248,.16) !important; }
html[data-theme="escuro"] .text-indigo-600, html[data-theme="escuro"] .text-indigo-700 { color: #A5B4FC !important; }

html[data-theme="escuro"] .bg-violet-50, html[data-theme="escuro"] .bg-violet-100 { background-color: rgba(167,139,250,.16) !important; }
html[data-theme="escuro"] .text-violet-600, html[data-theme="escuro"] .text-violet-700 { color: #C4B5FD !important; }

html[data-theme="escuro"] .bg-purple-50, html[data-theme="escuro"] .bg-purple-100 { background-color: rgba(192,132,252,.16) !important; }
html[data-theme="escuro"] .text-purple-600, html[data-theme="escuro"] .text-purple-700 { color: #D8B4FE !important; }

html[data-theme="escuro"] .bg-fuchsia-50, html[data-theme="escuro"] .bg-fuchsia-100 { background-color: rgba(232,121,249,.16) !important; }
html[data-theme="escuro"] .text-fuchsia-600, html[data-theme="escuro"] .text-fuchsia-700 { color: #F0ABFC !important; }

html[data-theme="escuro"] .bg-pink-50,   html[data-theme="escuro"] .bg-pink-100   { background-color: rgba(244,114,182,.16) !important; }
html[data-theme="escuro"] .text-pink-600, html[data-theme="escuro"] .text-pink-700 { color: #F9A8D4 !important; }

html[data-theme="escuro"] .bg-rose-50,   html[data-theme="escuro"] .bg-rose-100   { background-color: rgba(251,113,133,.16) !important; }
html[data-theme="escuro"] .text-rose-600, html[data-theme="escuro"] .text-rose-700 { color: #FDA4AF !important; }

/* Avatares e cartões com cor de marca, sem flatten de cinza */
html[data-theme="escuro"] .bg-\[\#0C2D55\],
html[data-theme="escuro"] .bg-\[\#1C2434\] { background-color: #142038 !important; }

/* Scrollbar (WebKit) discreta no tema escuro */
html[data-theme="escuro"] ::-webkit-scrollbar { width: 10px; height: 10px; }
html[data-theme="escuro"] ::-webkit-scrollbar-track { background: var(--bg); }
html[data-theme="escuro"] ::-webkit-scrollbar-thumb { background: var(--border); border-radius: 999px; }
html[data-theme="escuro"] ::-webkit-scrollbar-thumb:hover { background: var(--navy-mid); }

/* Painéis decorativos que já são propositalmente escuros mesmo no tema
   claro (ex.: card de instruções com gradiente). Mantêm o texto claro
   original em vez de seguir a paleta neutra do tema escuro. */
html[data-theme="escuro"] .bg-gradient-to-br .text-gray-100,
html[data-theme="escuro"] .bg-gradient-to-br .text-gray-200,
html[data-theme="escuro"] .bg-gradient-to-br .text-gray-300,
html[data-theme="escuro"] .bg-gradient-to-br .text-gray-400,
html[data-theme="escuro"] .bg-black\/40 .text-gray-300,
html[data-theme="escuro"] .bg-black\/40 .text-gray-400 { color: #9CA3AF !important; }
