/* Tema sobre as variáveis do Bootstrap 5.3 (data-bs-theme). O escuro é o padrão; o claro usa
   fundo acinzentado para separar áreas. Cartões ficam um tom acima do fundo nos dois temas. */
:root,
[data-bs-theme="light"] {
  --app-fundo: #eef2f7;
  --app-sombra: 0 1px 2px rgba(16, 24, 40, 0.06), 0 1px 3px rgba(16, 24, 40, 0.08);
  --app-sombra-hover: 0 4px 12px rgba(16, 24, 40, 0.1);
  --bs-border-color: #dde3ec;
  --bs-border-color-translucent: rgba(16, 24, 40, 0.09);
  --bs-primary: #2a78d6;
  --bs-primary-rgb: 42, 120, 214;
  --bs-link-color: #2264b8;
  --bs-link-color-rgb: 34, 100, 184;
}

[data-bs-theme="dark"] {
  --app-fundo: #0d1117;
  --app-sombra: 0 1px 2px rgba(0, 0, 0, 0.4);
  --app-sombra-hover: 0 6px 16px rgba(0, 0, 0, 0.45);
  --bs-body-bg: #161b22;
  --bs-body-bg-rgb: 22, 27, 34;
  --bs-body-color: #d6dde6;
  --bs-body-color-rgb: 214, 221, 230;
  --bs-secondary-bg: #1f2630;
  --bs-secondary-bg-rgb: 31, 38, 48;
  --bs-tertiary-bg: #1a2029;
  --bs-tertiary-bg-rgb: 26, 32, 41;
  --bs-secondary-color: rgba(214, 221, 230, 0.68);
  --bs-border-color: #2b3440;
  --bs-border-color-translucent: rgba(240, 246, 252, 0.1);
  --bs-emphasis-color: #f0f6fc;
  --bs-primary: #3987e5;
  --bs-primary-rgb: 57, 135, 229;
  --bs-link-color: #6aa7f0;
  --bs-link-color-rgb: 106, 167, 240;
  --bs-link-hover-color: #93bff5;
}

body {
  background-color: var(--app-fundo);
  -webkit-font-smoothing: antialiased;
}

/* Barra superior escura nos dois temas, com destaque da seção atual. */
.navbar-app {
  background: linear-gradient(90deg, #111a27 0%, #172a45 100%);
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.2);
}

.navbar-app .nav-link {
  border-radius: 0.5rem;
  padding-inline: 0.65rem !important;
}

.navbar-app .nav-link:hover,
.navbar-app .nav-link.active {
  background-color: rgba(255, 255, 255, 0.08);
  color: #fff;
}

.navbar-app .dropdown-item.active {
  background-color: var(--bs-primary);
}

/* Cartões e listas: um tom acima do fundo, cantos arredondados, sombra discreta. */
.card,
.list-group {
  border-radius: 0.75rem;
}

.card {
  border-color: var(--bs-border-color-translucent);
  box-shadow: var(--app-sombra);
}

.list-group {
  box-shadow: var(--app-sombra);
}

.list-group-item {
  border-color: var(--bs-border-color-translucent);
}

a.card:hover,
.list-group-item-action:hover {
  box-shadow: var(--app-sombra-hover);
}

/* Links dentro de cartões e listas sem sublinhado (aparece ao passar o mouse). */
.card a:not(.btn),
.list-group a:not(.btn) {
  text-decoration: none;
}

.card a:not(.btn):hover {
  text-decoration: underline;
}

.card-footer {
  background-color: var(--bs-tertiary-bg);
}

.dropdown-menu {
  border-color: var(--bs-border-color-translucent);
  box-shadow: var(--app-sombra-hover);
}

.form-control,
.form-select {
  border-color: var(--bs-border-color);
}

h1,
.h1,
.h3,
.h4 {
  letter-spacing: -0.01em;
}

.calendario-mes {
  table-layout: fixed;
  min-width: 640px;
}

.calendario-mes td {
  height: 6.5rem;
  vertical-align: top;
  padding: 0.35rem;
}

.calendario-mes td.hoje {
  background-color: var(--bs-primary-bg-subtle);
}

.item-calendario {
  border-left: 3px solid var(--bs-primary);
  padding-left: 0.3rem;
  margin-bottom: 0.15rem;
  text-decoration: none;
  color: var(--bs-body-color);
}

.item-calendario.concluida {
  text-decoration: line-through;
  color: var(--bs-secondary-color);
}

.kanban {
  display: grid;
  grid-template-columns: repeat(4, minmax(240px, 1fr));
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: 0.5rem;
}

.kanban-coluna [data-kanban-lista] {
  min-height: 4rem;
}

.kanban-cartao {
  cursor: grab;
}

/* ---------- Gráficos: cores por papel (paleta validada claro/escuro) ---------- */
:root {
  --viz-serie-1: #2a78d6;      /* receitas / série principal */
  --viz-serie-2: #eb6834;      /* despesas */
  --viz-texto: #52514e;
  --viz-grade: #e9e8e4;
  --viz-zero: #8a8983;
  --viz-superficie: #ffffff;
  --viz-previsto: rgba(42, 120, 214, 0.38);  /* mesma série, ainda não aconteceu */
}

[data-bs-theme="dark"] {
  --viz-serie-1: #3987e5;
  --viz-serie-2: #d95926;
  --viz-texto: #c3c2b7;
  --viz-grade: #383835;
  --viz-zero: #8a8983;
  --viz-superficie: #161b22;  /* = fundo dos cartões no tema escuro */
  --viz-previsto: rgba(57, 135, 229, 0.42);
}

.grafico {
  position: relative;
  height: 260px;
}

.grafico-legenda {
  display: flex;
  gap: 1rem;
  font-size: 0.8125rem;
  color: var(--bs-secondary-color);
}

.grafico-legenda span::before {
  content: "";
  display: inline-block;
  width: 0.65rem;
  height: 0.65rem;
  border-radius: 2px;
  margin-right: 0.35rem;
  vertical-align: -1px;
  background: var(--cor);
}

/* Impressão (briefing): sem barra, sem sombras, fundo branco. */
@media print {
  .navbar-app,
  .d-print-none {
    display: none !important;
  }

  body {
    background: #fff !important;
    color: #000 !important;
  }

  .card {
    box-shadow: none !important;
    break-inside: avoid;
  }
}
