:root {
  /* Paleta alinhada às cores oficiais do wol.jw.org (escala de azuis/dourado) */
  --navy-dark: #0a224b;
  --navy: #143368;
  --blue: #345996;
  --blue-light: #e8effb;
  --gold: #9b6d17;
  --text: #23303d;
  --text-muted: #5c6b7a;
  --bg: #f2f4f6;
  --border: #dfe4e9;
}

* {
  font-family: "Noto Sans", "Segoe UI", Helvetica, Arial, sans-serif;
}

body {
  background-color: var(--bg);
  color: var(--text);
}

h1, h2, h3, h4, .navbar-brand {
  font-family: "Noto Sans", "Segoe UI", Helvetica, Arial, sans-serif;
  font-weight: 700;
  color: var(--navy-dark);
}

/* Navbar */
.navbar.bg-dark {
  background-color: var(--navy-dark) !important;
  border-bottom: 3px solid var(--gold);
}
.navbar-brand {
  color: #ffffff !important;
  font-size: 1.25rem;
  letter-spacing: .03em;
}
.navbar-nav .nav-link {
  color: rgba(255, 255, 255, .82) !important;
  text-transform: uppercase;
  font-size: .82rem;
  letter-spacing: .06em;
  font-weight: 600;
  padding: .5rem .9rem !important;
  border-bottom: 2px solid transparent;
  transition: border-color .15s ease, color .15s ease;
}
.navbar-nav .nav-link:hover {
  color: #ffffff !important;
  border-bottom-color: var(--gold);
}

/* Drawer (offcanvas) do menu mobile */
#nav.offcanvas {
  background-color: var(--navy-dark) !important;
  width: 16rem;
}
#nav .offcanvas-header {
  border-bottom: 1px solid rgba(255, 255, 255, .12);
}
#nav .offcanvas-title {
  color: #ffffff;
  font-family: "Merriweather", Georgia, serif;
}
#nav .navbar-nav {
  gap: .25rem;
}
#nav .navbar-nav .nav-link {
  border-bottom: none;
  border-left: 2px solid transparent;
  border-radius: 4px;
}
#nav .navbar-nav .nav-link:hover {
  background-color: rgba(255, 255, 255, .06);
  border-left-color: var(--gold);
}

/* Cards */
.card {
  border: 1px solid var(--border);
  border-radius: 6px;
  box-shadow: 0 1px 2px rgba(16, 35, 58, 0.06);
}
.parte-card {
  border-left: 4px solid var(--blue);
}
.card h1, .card h2, .card h3 {
  color: var(--navy);
}

/* Buttons */
.btn-primary {
  background-color: var(--blue);
  border-color: var(--blue);
}
.btn-primary:hover, .btn-primary:focus {
  background-color: var(--navy);
  border-color: var(--navy);
}
.btn-outline-primary {
  color: var(--blue);
  border-color: var(--blue);
}
.btn-outline-primary:hover {
  background-color: var(--blue);
  border-color: var(--blue);
}
.btn-outline-secondary {
  color: var(--navy);
  border-color: var(--border);
}

/* Badges */
.badge.bg-secondary {
  background-color: var(--navy) !important;
}
.badge.bg-success {
  background-color: #2f7d4f !important;
}

/* Stat tiles on dashboard (clicáveis) */
.stat-tile {
  border-top: 3px solid var(--blue);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
  cursor: pointer;
}
.stat-tile .fs-3 {
  color: var(--navy-dark);
}
.stat-tile-link:hover .stat-tile,
.stat-tile-link:focus .stat-tile {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(10, 34, 75, .14);
  border-top-color: var(--gold);
}

/* Section labels (Tesouros / Ministério / Vida Cristã) */
.badge-secao {
  background-color: var(--blue-light);
  color: var(--navy);
  font-weight: 600;
  letter-spacing: .02em;
  padding: .4rem .7rem;
  border-radius: 4px;
  font-size: .78rem;
  text-transform: uppercase;
}

/* Warning marker for repeated assignment */
.text-repetiu {
  color: #b3261e;
  font-weight: 600;
}

/* List group (semanas) */
.list-group-item {
  border-color: var(--border);
}
.list-group-item-action:hover {
  background-color: var(--blue-light);
}

/* Choices.js (selects com busca) */
.choices__inner {
  border-color: var(--border) !important;
  border-radius: .375rem !important;
  min-height: calc(1.5em + 1rem + 2px);
  background-color: #fff;
}
.choices.is-focused .choices__inner,
.choices.is-open .choices__inner {
  border-color: var(--blue) !important;
  box-shadow: 0 0 0 .25rem rgba(52, 89, 150, .18);
}
.choices__list--dropdown .choices__item--selectable.is-highlighted {
  background-color: var(--blue-light) !important;
}
.choices__list--dropdown {
  border-color: var(--border) !important;
}
.choices__input {
  background-color: transparent !important;
}

/* Botão flutuante de instalação (PWA) */
.install-fab {
  position: fixed;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 1050;
  display: flex;
  align-items: center;
  gap: .5rem;
  padding: .7rem 1.15rem;
  border: none;
  border-radius: 999px;
  background-color: var(--blue);
  color: #fff;
  font-weight: 600;
  font-size: .85rem;
  box-shadow: 0 6px 18px rgba(10, 34, 75, .35);
  transition: transform .15s ease, background-color .15s ease;
}
.install-fab:hover {
  background-color: var(--navy);
  transform: translateY(-2px);
}
@media (max-width: 576px) {
  .install-fab span {
    display: none;
  }
}

/* Botão de WhatsApp */
.btn-whatsapp {
  background-color: #25d366;
  border-color: #25d366;
  color: #fff;
}
.btn-whatsapp:hover {
  background-color: #1eb857;
  border-color: #1eb857;
  color: #fff;
}

/* Print view */
.print-header {
  border-bottom: 2px solid var(--gold);
  margin-bottom: 1.5rem;
  padding-bottom: .75rem;
}

@media print {
  .no-print {
    display: none !important;
  }
  body {
    background: #fff;
  }
  .container {
    max-width: 100% !important;
  }
  .card {
    box-shadow: none;
    border: 1px solid #ccc;
  }
}
