/*
 * Na Jornada - CSS base da fundacao tecnica
 * Fase 0 + 1
 */
:root {
  --azul: #1E3F6E;
  --azul-m: #2D5A9E;
  --azul-cl: #EEF3FA;
  --dourado: #C8922A;
  --dourado-cl: #E8B84B;
  --verde: #4A7A6D;
  --verde-cl: #EFFAF7;
  --perg: #F7F3ED;
  --sup: #FFFFFF;
  --txt: #1A2744;
  --txt-s: #5A6882;
  --brd: #DDD5C8;
  --brd-s: #EDE8E0;
  --rv: #B5392C;
  --shadow-sm: 0 2px 8px rgba(26, 39, 68, .08);
  --shadow-md: 0 10px 30px rgba(26, 39, 68, .12);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: 'Source Sans 3', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--txt);
  background: var(--perg);
  line-height: 1.6;
  min-height: 100vh;
}

h1, h2, h3, .font-lora { font-family: 'Lora', Georgia, serif; }
a { color: var(--azul-m); }
a:hover { color: var(--azul); }

.app-shell { min-height: 100vh; }
.bg-jornada { background: var(--azul); color: #fff; }
.bg-pergaminho { background: var(--perg); }
.text-jornada { color: var(--azul); }
.text-dourado { color: var(--dourado); }

.btn-jornada,
.btn-primary {
  background: var(--azul);
  border-color: var(--azul);
  color: #fff;
  border-radius: 7px;
  padding: .65rem 1.1rem;
  font-weight: 600;
}
.btn-jornada:hover,
.btn-primary:hover {
  background: var(--azul-m);
  border-color: var(--azul-m);
  color: #fff;
}
.btn-dourado {
  background: var(--dourado);
  border-color: var(--dourado);
  color: #fff;
  border-radius: 7px;
  padding: .65rem 1.1rem;
  font-weight: 700;
}
.btn-dourado:hover {
  background: #b47f1d;
  border-color: #b47f1d;
  color: #fff;
}
.btn-outline-dourado {
  border: 2px solid var(--dourado);
  color: var(--dourado);
  background: transparent;
  border-radius: 7px;
  padding: .55rem 1rem;
  font-weight: 700;
}
.btn-outline-dourado:hover {
  background: var(--dourado);
  color: #fff;
}

.card-jornada {
  background: var(--sup);
  border: 1px solid var(--brd-s);
  border-radius: 14px;
  box-shadow: var(--shadow-sm);
  padding: 1.25rem;
}
.card-pastoral {
  background: var(--sup);
  border-left: 4px solid var(--dourado);
  border-radius: 12px;
  box-shadow: var(--shadow-sm);
  padding: 1.2rem;
}
.card-versiculo {
  background: var(--azul-cl);
  border-left: 4px solid var(--dourado);
  border-radius: 10px;
  padding: 1rem 1.15rem;
  font-family: 'Lora', Georgia, serif;
}
.empty-state {
  background: #fff;
  border: 1px dashed var(--brd);
  border-radius: 12px;
  padding: 2rem;
  text-align: center;
  color: var(--txt-s);
}

.badge-fase,
.badge-status {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  padding: .25rem .65rem;
  font-size: .78rem;
  font-weight: 700;
}
.badge-fase { background: var(--azul-cl); color: var(--azul); }
.badge-status.ativo { background: var(--verde-cl); color: var(--verde); }
.badge-status.pendente { background: #FFF8EC; color: var(--dourado); }
.badge-status.inativo { background: #FFF0EE; color: var(--rv); }

.form-control,
.form-select {
  border-color: var(--brd);
  border-radius: 8px;
  min-height: 44px;
}
.form-control:focus,
.form-select:focus {
  border-color: var(--dourado);
  box-shadow: 0 0 0 .2rem rgba(200,146,42,.18);
}
label { font-weight: 600; color: var(--txt); margin-bottom: .35rem; }

.nav-jornada {
  background: var(--azul);
  color: #fff;
  border-bottom: 3px solid var(--dourado);
}
.nav-jornada a { color: rgba(255,255,255,.82); text-decoration: none; }
.nav-jornada a:hover,
.nav-jornada a.ativo { color: var(--dourado-cl); }

.nav-bottom {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: var(--azul);
  border-top: 2px solid var(--dourado);
  padding: 8px 0 env(safe-area-inset-bottom);
}
.nav-bottom a {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  color: rgba(255,255,255,.68);
  text-decoration: none;
  font-size: .74rem;
}
.nav-bottom a.ativo { color: var(--dourado-cl); }
.nav-bottom .bi { font-size: 1.25rem; margin-bottom: .1rem; }
.nav-bottom.admin-mobile-nav {
  justify-content: flex-start;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scroll-snap-type: x proximity;
}
.nav-bottom.admin-mobile-nav::-webkit-scrollbar { display: none; }
.nav-bottom.admin-mobile-nav { scrollbar-width: none; }
.nav-bottom.admin-mobile-nav a {
  flex: 0 0 112px;
  min-width: 112px;
  scroll-snap-align: start;
  padding-left: .25rem;
  padding-right: .25rem;
}
.nav-bottom.admin-mobile-nav a span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 104px;
}


.temp-selector { display: flex; gap: .5rem; justify-content: center; flex-wrap: nowrap; }
.temp-btn {
  flex: 1;
  min-width: 52px;
  min-height: 52px;
  font-size: 1.65rem;
  border: 2px solid var(--brd);
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .15s ease, border-color .15s ease, background .15s ease;
}
.temp-btn.selecionado,
.temp-btn[aria-pressed="true"] {
  border-color: var(--dourado);
  background: var(--azul-cl);
  transform: scale(1.06);
}

.table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.table-wrapper table { min-width: 640px; }

.foundation-hero {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 2rem;
  background: radial-gradient(circle at top, rgba(232,184,75,.18), transparent 34%), var(--azul);
  color: #fff;
  text-align: center;
}
.foundation-card {
  max-width: 760px;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 22px;
  padding: 2rem;
  box-shadow: var(--shadow-md);
}
.foundation-logo { max-width: 220px; height: auto; margin-bottom: 1.4rem; }
.foundation-card code {
  color: var(--dourado-cl);
  background: rgba(0,0,0,.18);
  border-radius: 5px;
  padding: .1rem .35rem;
}

@media (max-width: 768px) {
  body { padding-bottom: 72px; }
  .nav-bottom { display: flex; }
  .desktop-only { display: none !important; }
  .card-jornada, .card-pastoral { padding: 1rem; }
  .btn-jornada, .btn-dourado, .btn-outline-dourado { width: 100%; min-height: 48px; }
  .form-control, .form-select { min-height: 48px; font-size: 16px; }
}

@media (max-width: 380px) {
  .temp-btn { min-width: 44px; font-size: 1.35rem; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}


/* Fase 2 + 3: layout publico, autenticacao e admin inicial */
.public-navbar .brand-logo { max-height: 48px; width: auto; }
.public-brand-logo {
  filter: none !important;
  max-width: 165px !important;
  width: auto !important;
  height: auto !important;
  max-height: 48px !important;
  object-fit: contain !important;
  display: block !important;
}
.public-body { background: var(--perg); padding-bottom: 0; }
.landing-hero {
  background: radial-gradient(circle at 18% 12%, rgba(232,184,75,.18), transparent 30%), var(--azul);
  color: #fff;
  padding: 6rem 0 5rem;
  position: relative;
  overflow: hidden;
}
.landing-hero::after,
.cta-final::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 5px;
  background: linear-gradient(90deg, #8B6914, var(--dourado-cl), #8B6914);
}
.hero-mark { font-size: 2.75rem; color: var(--dourado-cl); margin-bottom: 1rem; }
.hero-kicker,
.eyebrow {
  color: var(--dourado);
  text-transform: uppercase;
  letter-spacing: .14em;
  font-size: .76rem;
  font-weight: 800;
}
.landing-hero .hero-kicker { color: rgba(255,255,255,.58); }
.landing-hero h1 {
  font-size: clamp(3.2rem, 8vw, 6rem);
  letter-spacing: .08em;
  text-transform: uppercase;
  margin: 0;
  color: #fff;
}
.hero-tagline {
  font-family: 'Lora', serif;
  font-style: italic;
  color: var(--dourado-cl);
  letter-spacing: .12em;
  margin: .3rem 0 1rem;
}
.hero-rule { width: 64px; height: 2px; background: var(--dourado); margin: 1.6rem 0; }
.hero-verse { max-width: 620px; font-family: 'Lora', serif; font-style: italic; color: rgba(255,255,255,.84); font-size: 1.08rem; }
.hero-ref { color: var(--dourado-cl); text-transform: uppercase; letter-spacing: .12em; font-weight: 700; font-size: .84rem; }
.hero-card { color: var(--txt); background: rgba(255,255,255,.96); padding: 2rem; }
.hero-card h2 { color: var(--azul); font-size: 1.65rem; margin: .4rem 0 1rem; }
.hero-list { padding: 0; margin: 1.2rem 0 0; list-style: none; }
.hero-list li { margin: .55rem 0; display: flex; gap: .55rem; align-items: center; color: var(--txt); }
.hero-list i { color: var(--verde); }
.section-public { padding: 4.5rem 0; }
.section-title { max-width: 760px; }
.section-title h2 { color: var(--azul); font-size: clamp(1.8rem, 4vw, 2.8rem); margin: .35rem 0 1rem; }
.section-title p { color: var(--txt-s); font-size: 1.08rem; }
.bg-azul-claro { background: var(--azul-cl); }
.feature-card,
.profile-card {
  background: #fff;
  border: 1px solid var(--brd-s);
  border-radius: 16px;
  padding: 1.45rem;
  height: 100%;
  box-shadow: var(--shadow-sm);
}
.feature-card { border-top: 4px solid var(--dourado); }
.feature-card span { font-size: 2rem; display: inline-block; margin-bottom: .85rem; }
.feature-card h3,
.profile-card h3 { color: var(--azul); font-size: 1.2rem; margin-bottom: .6rem; }
.feature-card p,
.profile-card p { color: var(--txt-s); margin-bottom: 0; }
.profile-card { border-left: 4px solid var(--dourado); }
.cta-final { position: relative; background: var(--azul); color: #fff; padding: 4.5rem 0; }
.cta-final h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); color: #fff; }
.cta-final p { color: rgba(255,255,255,.75); }
.public-footer { background: #142B4D; color: rgba(255,255,255,.7); padding: 2rem 0; }
.footer-verse { font-family: 'Lora', serif; color: var(--dourado-cl); font-style: italic; }

.auth-body { background: radial-gradient(circle at top, rgba(232,184,75,.16), transparent 28%), var(--perg); min-height: 100vh; padding-bottom: 0; }
.auth-wrap { min-height: calc(100vh - 68px); display: grid; place-items: center; padding: 2rem 1rem; }
.auth-card {
  width: min(100%, 430px);
  background: #fff;
  border: 1px solid var(--brd-s);
  border-radius: 18px;
  box-shadow: var(--shadow-md);
  padding: 2rem;
  border-left: 5px solid var(--dourado);
}
.auth-card-wide { width: min(100%, 720px); }
.auth-logo img { max-width: 190px; height: auto; margin-bottom: 1.25rem; }
.auth-card h1 { color: var(--azul); font-size: 1.85rem; }
.auth-links { display: flex; justify-content: center; gap: .5rem; flex-wrap: wrap; margin-top: 1.2rem; color: var(--txt-s); }

.member-shell { min-height: 100vh; display: flex; }
.nav-lateral {
  width: 270px;
  background: var(--azul);
  color: #fff;
  position: fixed;
  left: 0;
  top: 0;
  bottom: 0;
  padding: 1.4rem 1rem;
  border-right: 4px solid var(--dourado);
  display: flex;
  flex-direction: column;
  z-index: 900;
}
.sidebar-brand { display: block; padding: .25rem .4rem 1.2rem; border-bottom: 1px solid rgba(255,255,255,.12); margin-bottom: 1rem; }
.sidebar-brand img { max-width: 210px; filter: none !important; height: auto; }
.sidebar-nav { display: grid; gap: .25rem; }
.sidebar-nav a {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: .72rem .8rem;
  border-radius: 10px;
  color: rgba(255,255,255,.74);
  text-decoration: none;
  font-weight: 600;
}
.sidebar-nav a:hover,
.sidebar-nav a.ativo,
.sidebar-nav a.active { background: rgba(255,255,255,.1); color: var(--dourado-cl); }
.sidebar-nav i { font-size: 1.1rem; }
.sidebar-user {
  margin-top: auto;
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 1rem .8rem 0;
  display: grid;
  gap: .15rem;
}
.sidebar-user strong { color: #fff; }
.sidebar-user a { color: var(--dourado-cl); text-decoration: none; }
.member-main { flex: 1; margin-left: 270px; min-width: 0; }
.member-topbar {
  min-height: 88px;
  background: rgba(255,255,255,.84);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--brd-s);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.1rem 2rem;
  position: sticky;
  top: 0;
  z-index: 600;
}
.member-topbar h1 { font-size: 1.65rem; margin: .1rem 0 0; color: var(--azul); }
.member-topbar-actions { display: flex; align-items: center; gap: .5rem; }
.notif-badge { position: absolute; top: -6px; right: -6px; }
.member-content { padding: 2rem; }
.metric-card {
  position: relative;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--brd-s);
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  padding: 1.25rem;
  min-height: 130px;
  border-left: 4px solid var(--dourado);
}
.metric-card span { color: var(--txt-s); font-weight: 700; font-size: .88rem; }
.metric-card strong { display: block; color: var(--azul); font-size: 2.4rem; line-height: 1.1; margin-top: .4rem; }
.metric-card i { position: absolute; right: 1rem; bottom: .8rem; font-size: 2.4rem; color: rgba(30,63,110,.12); }
.metric-card.alert-metric { border-left-color: var(--rv); }

@media (max-width: 991px) {
  .landing-hero { padding: 4rem 0; text-align: center; }
  .hero-rule { margin-left: auto; margin-right: auto; }
  .hero-verse { margin-left: auto; margin-right: auto; }
}

@media (max-width: 768px) {
  .public-body { padding-bottom: 0; }
  .auth-body { padding-bottom: 0; }
  .member-main { margin-left: 0; }
  .member-topbar { padding: 1rem; min-height: 76px; }
  .member-topbar h1 { font-size: 1.25rem; }
  .member-content { padding: 1rem; padding-bottom: 5.5rem; }
  .auth-card { padding: 1.35rem; }
  .section-public { padding: 3.2rem 0; }
  .public-navbar .btn { width: auto; min-height: auto; }
  .nav-bottom .active, .nav-bottom .ativo { color: var(--dourado-cl); }
}


/* Fase 4 - Onboarding e dashboard real */
.onboarding-shell { max-width: 980px; margin: 0 auto; }
.onboarding-progress { height: 28px; border-radius: 999px; background: var(--azul-cl); }
.onboarding-progress .progress-bar { background: var(--dourado); color: #fff; font-weight: 800; }
.onboarding-steps-indicator { display: flex; gap: .6rem; justify-content: center; margin: 0 0 1.2rem; }
.onboarding-steps-indicator span {
  width: 36px; height: 36px; border-radius: 999px; border: 2px solid var(--brd);
  display: inline-flex; align-items: center; justify-content: center; background: #fff;
  color: var(--txt-s); font-weight: 800;
}
.onboarding-steps-indicator span.active { border-color: var(--dourado); color: var(--dourado); background: #FFF8EC; }
.onboarding-step { padding: 1.6rem; }
.onboarding-step h3 { color: var(--azul); font-size: 1.65rem; margin: .3rem 0 .4rem; }
.option-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: .85rem; }
.option-grid-compact { grid-template-columns: repeat(3, minmax(0,1fr)); }
.option-card,
.option-pill {
  border: 1px solid var(--brd-s); border-radius: 14px; background: #fff; padding: 1rem;
  cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
  display: grid; gap: .25rem; min-height: 100%;
}
.option-pill { min-height: auto; display: flex; align-items: center; gap: .6rem; padding: .78rem .9rem; }
.option-card input,
.option-pill input { accent-color: var(--dourado); }
.option-card strong { color: var(--azul); }
.option-card span,
.option-pill span { color: var(--txt-s); }
.option-card:has(input:checked),
.option-pill:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 .18rem rgba(200,146,42,.16); transform: translateY(-1px); }
.onboarding-actions { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1rem; }
.dashboard-hero { background: linear-gradient(135deg, var(--azul), #16345D); color: #fff; border-left-color: var(--dourado); }
.dashboard-hero h2 { color: #fff; font-size: clamp(1.7rem, 3vw, 2.35rem); }
.dashboard-hero .eyebrow { color: var(--dourado-cl); }
.dashboard-hero p { color: rgba(255,255,255,.82); }
.streak-card { background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.18); border-radius: 18px; padding: 1.25rem; text-align: center; }
.streak-card span { display: block; color: rgba(255,255,255,.7); font-weight: 700; }
.streak-card strong { display: block; color: #fff; font-size: 2.4rem; line-height: 1.1; }
.streak-card small { color: rgba(255,255,255,.7); }
.streak-card.ativo { box-shadow: 0 0 0 .2rem rgba(232,184,75,.18); }
.dashboard-direction-card h3 { color: var(--azul); }
.daily-reading-box { background: var(--azul-cl); border-left: 4px solid var(--dourado); border-radius: 12px; padding: 1rem; }
.daily-reading-box span { color: var(--txt-s); font-weight: 800; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; }
.daily-reading-box strong { display: block; color: var(--azul); font-size: 1.25rem; margin-top: .15rem; }
.daily-reading-box p { margin: .5rem 0 0; color: var(--txt-s); }
.card-versiculo footer { color: var(--dourado); font-weight: 800; margin-top: .45rem; font-family: 'Source Sans 3', sans-serif; }
.pillar-card { min-height: 160px; background: #fff; border: 1px solid var(--brd-s); border-radius: 16px; padding: 1rem; box-shadow: var(--shadow-sm); border-left: 4px solid var(--dourado); display: grid; align-content: start; gap: .25rem; }
.pillar-card i { color: var(--dourado); font-size: 1.45rem; }
.pillar-card span { color: var(--txt-s); font-weight: 800; }
.pillar-card strong { color: var(--azul); font-size: 1.35rem; line-height: 1.15; }
.pillar-card small { color: var(--txt-s); }
.pillar-card.ok { border-left-color: var(--verde); }
.pillar-card.pendente { border-left-color: var(--rv); }
.list-soft { display: grid; gap: .65rem; }
.list-soft-item { display: flex; align-items: flex-start; gap: .75rem; border: 1px solid var(--brd-s); background: #fff; border-radius: 12px; padding: .85rem; text-decoration: none; color: var(--txt); }
.list-soft-item:hover { border-color: var(--dourado); color: var(--txt); }
.list-soft-item i { color: var(--dourado); }
.list-soft-item small { display: block; color: var(--txt-s); margin-top: .2rem; }
.registro-mini-card { height: 100%; background: #fff; border: 1px solid var(--brd-s); border-radius: 14px; padding: 1rem; border-left: 4px solid var(--dourado); }
.registro-mini-card span { color: var(--azul); font-weight: 800; }
.registro-mini-card p { margin: .65rem 0; color: var(--txt); }
.registro-mini-card small { color: var(--txt-s); }
.floating-register-btn {
  position: fixed; right: 1.6rem; bottom: 1.6rem; z-index: 850; width: 58px; height: 58px;
  border-radius: 999px; border: 0; background: var(--dourado); color: #fff; box-shadow: var(--shadow-md);
  display: inline-flex; align-items: center; justify-content: center; font-size: 1.4rem;
}
.floating-register-btn:hover { background: #b47f1d; }

@media (max-width: 768px) {
  .option-grid,
  .option-grid-compact { grid-template-columns: 1fr; }
  .onboarding-step { padding: 1.15rem; }
  .onboarding-actions { position: sticky; bottom: 4.75rem; background: rgba(247,243,237,.94); padding: .75rem 0; z-index: 20; }
  .onboarding-actions .btn { flex: 1; }
  .floating-register-btn { right: 1rem; bottom: 5.2rem; }
  .dashboard-hero { text-align: left; }
}

/* Fase 5 - Bíblia e check-in diário */
.biblia-hero { overflow: hidden; }
.biblia-reading-suggestion { border-left: 4px solid var(--dourado); }
.biblia-form-card .badge-status.ok,
.badge-status.ok { background: var(--verde-cl); color: var(--verde); }
.reading-choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .85rem; }
.reading-choice {
  display: grid;
  gap: .25rem;
  border: 1px solid var(--brd-s);
  border-radius: 14px;
  background: #fff;
  padding: 1rem;
  cursor: pointer;
  min-height: 100%;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.reading-choice input { accent-color: var(--dourado); }
.reading-choice strong { color: var(--azul); line-height: 1.15; }
.reading-choice span { color: var(--txt-s); font-size: .92rem; }
.reading-choice.ativo,
.reading-choice:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 .18rem rgba(200,146,42,.15); transform: translateY(-1px); }
.reading-fields-muted { opacity: .62; }
.temp-selector { align-items: stretch; }
.temp-btn { flex-direction: column; gap: .15rem; padding: .45rem .25rem; }
.temp-btn span { line-height: 1; }
.temp-btn small { color: var(--txt-s); font-size: .72rem; font-weight: 800; line-height: 1.1; }
.temp-btn.selecionado small,
.temp-btn[aria-pressed="true"] small { color: var(--azul); }
.biblia-calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .4rem; }
.calendar-weekday { text-align: center; color: var(--txt-s); font-weight: 800; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; padding: .2rem 0; }
.calendar-empty { min-height: 58px; }
.calendar-day {
  min-height: 58px;
  border: 1px solid var(--brd-s);
  border-radius: 13px;
  background: #fff;
  color: var(--txt);
  display: grid;
  align-content: center;
  justify-items: center;
  gap: .1rem;
  padding: .35rem;
  transition: transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.calendar-day span { font-weight: 900; color: var(--azul); }
.calendar-day strong { font-size: .94rem; line-height: 1; }
.calendar-day.has-record { cursor: pointer; }
.calendar-day.has-record:hover { transform: translateY(-1px); border-color: var(--dourado); box-shadow: var(--shadow-sm); }
.calendar-day.status-sim { background: var(--verde-cl); border-color: rgba(74,122,109,.25); }
.calendar-day.status-parcial { background: #FFF8EC; border-color: rgba(200,146,42,.28); }
.calendar-day.status-nao { background: #FFF0EE; border-color: rgba(181,57,44,.22); }
.calendar-day.today { box-shadow: 0 0 0 .18rem rgba(30,63,110,.12); }
.calendar-day.future { opacity: .45; }
.calendar-day:disabled { cursor: default; }
.calendar-legend { display: flex; flex-wrap: wrap; gap: .65rem 1rem; color: var(--txt-s); font-size: .86rem; }
.calendar-legend span { display: inline-flex; align-items: center; gap: .35rem; }
.dot { width: .72rem; height: .72rem; border-radius: 999px; display: inline-block; border: 1px solid rgba(0,0,0,.08); }
.dot-green { background: var(--verde); }
.dot-yellow { background: var(--dourado); }
.dot-red { background: var(--rv); }
.dot-empty { background: #fff; }
.check-list { list-style: none; padding: 0; display: grid; gap: .6rem; }
.check-list li { position: relative; padding-left: 1.65rem; color: var(--txt-s); }
.check-list li::before { content: '✓'; position: absolute; left: 0; top: 0; color: var(--verde); font-weight: 900; }
.record-detail-list { display: grid; gap: .7rem; }
.record-detail-list dt { color: var(--azul); font-weight: 900; margin: 0; }
.record-detail-list dd { color: var(--txt-s); margin: 0; border-bottom: 1px solid var(--brd-s); padding-bottom: .55rem; white-space: pre-wrap; }
.record-detail-list dd:last-child { border-bottom: 0; padding-bottom: 0; }

@media (max-width: 768px) {
  .reading-choice-grid { grid-template-columns: 1fr; }
  .biblia-calendar { gap: .28rem; }
  .calendar-empty,
  .calendar-day { min-height: 48px; border-radius: 10px; }
  .temp-selector { gap: .35rem; }
  .temp-btn { min-width: 44px; font-size: 1.35rem; }
  .temp-btn small { display: none; }
}


/* Fase 6 - Registros espontâneos e oração */
.registros-hero,
.oracao-hero { overflow: hidden; }
.registro-stat-card,
.oracao-stat-card {
  background: var(--azul);
  color: #fff;
  border-radius: 18px;
  padding: 1.25rem;
  border-bottom: 4px solid var(--dourado);
  box-shadow: var(--shadow-sm);
}
.registro-stat-card span,
.oracao-stat-card span { display: block; color: rgba(255,255,255,.72); font-weight: 800; }
.registro-stat-card strong,
.oracao-stat-card strong { display: block; font-size: 2.8rem; line-height: 1; margin: .35rem 0; font-family: 'Lora', serif; }
.registro-stat-card small,
.oracao-stat-card small { color: rgba(255,255,255,.72); }
.tag-choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .65rem; }
.tag-choice {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: .45rem .55rem;
  border: 1px solid var(--brd-s);
  border-radius: 13px;
  padding: .78rem;
  cursor: pointer;
  background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.tag-choice input { grid-column: 1; grid-row: 1 / span 2; accent-color: var(--dourado); }
.tag-choice span { font-size: 1.25rem; line-height: 1; }
.tag-choice strong { color: var(--azul); line-height: 1.15; }
.tag-choice.ativo,
.tag-choice:has(input:checked) { border-color: var(--dourado); box-shadow: 0 0 0 .18rem rgba(200,146,42,.14); transform: translateY(-1px); }
.tag-choice.tag-alerta:has(input:checked) { border-color: var(--rv); box-shadow: 0 0 0 .18rem rgba(181,57,44,.12); }
.registro-filter-list { display: flex; flex-wrap: wrap; gap: .5rem; }
.registro-filter {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  border: 1px solid var(--brd-s);
  border-radius: 999px;
  padding: .4rem .8rem;
  background: #fff;
  color: var(--txt-s);
  text-decoration: none;
  font-weight: 800;
  font-size: .88rem;
}
.registro-filter:hover,
.registro-filter.ativo { border-color: var(--dourado); color: var(--azul); background: #FFF8EC; }
.registros-list { display: grid; gap: 1rem; }
.registro-card {
  background: #fff;
  border: 1px solid var(--brd-s);
  border-left: 4px solid var(--dourado);
  border-radius: 15px;
  box-shadow: var(--shadow-sm);
  padding: 1rem;
}
.registro-card-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: .85rem; }
.registro-card-head small { color: var(--txt-s); white-space: nowrap; }
.registro-card p { white-space: pre-wrap; margin-bottom: .85rem; }
.registro-card-actions { display: flex; justify-content: flex-end; }
.registro-tag {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  border-radius: 999px;
  padding: .28rem .68rem;
  background: var(--azul-cl);
  color: var(--azul);
  font-size: .82rem;
  font-weight: 900;
}
.registro-tag-alerta { background: #FFF0EE; color: var(--rv); }
.registro-tag-oracao { background: var(--verde-cl); color: var(--verde); }
.oracao-theme-box {
  background: var(--azul-cl);
  border-left: 4px solid var(--dourado);
  border-radius: 14px;
  padding: 1.1rem;
}
.oracao-theme-box span { display: block; color: var(--txt-s); font-weight: 900; text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; }
.oracao-theme-box strong { display: block; color: var(--azul); font-family: 'Lora', serif; font-size: 1.35rem; margin-top: .15rem; }
.oracao-theme-box p { margin: .55rem 0 0; color: var(--txt-s); }
.oracao-direction-list { display: grid; gap: .65rem; padding-left: 1.35rem; }
.oracao-direction-list li { padding-left: .2rem; color: var(--txt); }
.jejum-card { background: #FFF8EC; }
.oracao-timeline { display: grid; gap: .8rem; }
.oracao-timeline-item {
  position: relative;
  border: 1px solid var(--brd-s);
  border-left: 4px solid var(--verde);
  border-radius: 14px;
  background: #fff;
  padding: .9rem 1rem;
}
.oracao-timeline-item small { color: var(--txt-s); font-weight: 800; }
.oracao-timeline-item p { margin: .45rem 0 0; white-space: pre-wrap; }
.oracao-tag-note {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  background: var(--verde-cl);
  border-radius: 12px;
  padding: .8rem;
  color: var(--verde);
}
.oracao-tag-note i { font-size: 1.15rem; }

@media (max-width: 768px) {
  .tag-choice-grid { grid-template-columns: 1fr; }
  .registro-card-head { display: grid; gap: .35rem; }
  .registro-card-head small { white-space: normal; }
  .registros-form-card,
  .oracao-form-card { position: static !important; }
}

/* Fase 7 - Livro cristao */
.livro-hero {
  background: linear-gradient(135deg, var(--sup) 0%, var(--azul-cl) 100%);
}
.livro-author {
  color: var(--dourado);
  font-weight: 700;
  letter-spacing: .03em;
}
.livro-progress-panel {
  background: var(--sup);
  border: 1px solid var(--brd-s);
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(30, 63, 110, .10);
  padding: 24px;
}
.livro-progress-panel span,
.weekly-goal-box span,
.pastoral-reading-box span {
  color: var(--txt-s);
  display: block;
  font-size: .86rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.livro-progress-panel strong {
  color: var(--azul);
  display: block;
  font-family: 'Lora', serif;
  font-size: 2.4rem;
  line-height: 1;
  margin: 8px 0 14px;
}
.livro-progress-panel small {
  color: var(--txt-s);
  display: block;
  margin-top: 10px;
}
.progress-jornada {
  background: var(--brd-s);
  border-radius: 999px;
  height: 12px;
  overflow: hidden;
}
.progress-jornada .progress-bar {
  background: linear-gradient(90deg, var(--verde), var(--dourado-cl));
  border-radius: 999px;
}
.badge-soft {
  border-radius: 999px;
  display: inline-flex;
  font-size: .82rem;
  font-weight: 700;
  padding: 6px 10px;
}
.badge-soft-success { background: var(--verde-cl); color: var(--verde); }
.badge-soft-warning { background: #fff7e6; color: #9b6a13; }
.badge-soft-danger { background: #fff0ee; color: var(--rv); }
.badge-soft-info { background: var(--azul-cl); color: var(--azul); }
.badge-soft-muted { background: var(--perg); color: var(--txt-s); }
.weekly-goal-box {
  background: var(--perg);
  border-radius: 16px;
  padding: 16px;
}
.pastoral-reading-box {
  background: var(--azul-cl);
  border-left: 4px solid var(--dourado);
  border-radius: 0 14px 14px 0;
  padding: 16px 18px;
}
.pastoral-reading-box strong {
  color: var(--azul);
  display: block;
  font-family: 'Lora', serif;
  font-size: 1.1rem;
  margin: 4px 0 8px;
}
.pastoral-reading-box p {
  margin-bottom: 6px;
}
.livro-empty-state {
  min-height: 360px;
  display: flex;
  align-items: center;
}
@media (max-width: 768px) {
  .livro-progress-panel strong { font-size: 2rem; }
}


/* Fase 8: check-in semanal completo */
.checkin-hero { overflow: hidden; }
.checkin-status-card {
  background: var(--azul-cl);
  border: 1px solid rgba(30,63,110,.08);
  border-radius: 16px;
  padding: 1.15rem;
  min-height: 130px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.checkin-status-card span,
.checkin-summary-mini span { color: var(--txt-s); font-size: .82rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }
.checkin-status-card strong { color: var(--azul); font-family: 'Lora', Georgia, serif; font-size: 1.85rem; line-height: 1.1; }
.checkin-status-card small { color: var(--txt-s); }
.checkin-status-card.enviado { background: #FFF8EC; }
.checkin-status-card.respondido { background: var(--verde-cl); }
.checkin-progress-sticky { position: sticky; top: 1rem; z-index: 5; }
.progress-jornada { height: 9px; background: var(--brd-s); border-radius: 999px; overflow: hidden; }
.progress-jornada .progress-bar { background: var(--dourado); }
.checkin-accordion .accordion-item { border: 1px solid var(--brd-s); border-radius: 14px; overflow: hidden; margin-bottom: .85rem; box-shadow: var(--shadow-sm); }
.checkin-accordion .accordion-button { font-weight: 700; color: var(--azul); background: #fff; }
.checkin-accordion .accordion-button:not(.collapsed) { background: var(--azul-cl); color: var(--azul); box-shadow: none; }
.range-output { background: var(--perg); border-radius: 10px; padding: .65rem .85rem; display: inline-flex; gap: .35rem; align-items: baseline; }
.range-output strong { font-size: 1.5rem; color: var(--azul); }
.choice-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .65rem; }
.choice-card { cursor: pointer; }
.choice-card input { position: absolute; opacity: 0; pointer-events: none; }
.choice-card span {
  display: flex;
  min-height: 54px;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--brd);
  border-radius: 12px;
  background: #fff;
  font-weight: 700;
  text-align: center;
  padding: .65rem;
  transition: .15s ease;
}
.choice-card.ativo span,
.choice-card input:checked + span { border-color: var(--dourado); background: var(--azul-cl); color: var(--azul); transform: translateY(-1px); }
.heart-temp-selector { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .55rem; }
.heart-temp-btn {
  border: 2px solid var(--brd);
  border-radius: 12px;
  background: #fff;
  padding: .75rem .4rem;
  min-height: 62px;
  color: var(--txt);
  font-weight: 700;
  transition: .15s ease;
}
.heart-temp-btn.selecionado,
.heart-temp-btn[aria-pressed="true"] { border-color: var(--dourado); background: var(--azul-cl); color: var(--azul); transform: translateY(-2px); }
.weekly-compile-list { display: grid; gap: .8rem; }
.weekly-compile-list > div {
  display: grid;
  grid-template-columns: 34px 1fr;
  gap: .25rem .7rem;
  padding: .85rem;
  border: 1px solid var(--brd-s);
  border-radius: 12px;
  background: #fff;
}
.weekly-compile-list i { grid-row: span 2; color: var(--dourado); font-size: 1.3rem; }
.weekly-compile-list span { color: var(--txt-s); font-size: .85rem; }
.weekly-compile-list strong { color: var(--azul); }
.weekly-temp-line { display: flex; gap: .5rem; flex-wrap: wrap; font-size: 1.5rem; }
.checkin-summary-mini {
  background: var(--perg);
  border: 1px solid var(--brd-s);
  border-radius: 13px;
  padding: 1rem;
  min-height: 95px;
}
.checkin-summary-mini strong { display: block; color: var(--azul); font-size: 1.25rem; margin-top: .2rem; }
.checkin-readonly-list { display: grid; gap: .85rem; }
.checkin-readonly-list > div {
  border-left: 3px solid var(--dourado);
  padding: .2rem 0 .2rem .85rem;
}
.checkin-readonly-list strong { color: var(--azul); }
.checkin-readonly-list p { margin: .25rem 0 0; color: var(--txt-s); white-space: pre-wrap; }
.pastoral-response-box {
  background: var(--perg);
  border-left: 4px solid var(--dourado);
  border-radius: 12px;
  padding: 1rem;
}
.pastoral-response-box p { white-space: pre-wrap; }
.pastoral-response-box small { color: var(--txt-s); }
.list-soft.compact .list-soft-item { padding: .55rem 0; }
@media (max-width: 992px) {
  .checkin-progress-sticky { position: static; }
  .choice-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .heart-temp-selector { grid-template-columns: repeat(1, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .checkin-progress-sticky .btn { width: 100%; }
  .checkin-status-card strong { font-size: 1.55rem; }
  .choice-grid { grid-template-columns: 1fr; }
}


/* Fase 9 - Admin inicial avançado */
.metric-link { display: block; text-decoration: none; color: inherit; height: 100%; }
.metric-link:hover { color: inherit; transform: translateY(-2px); box-shadow: var(--shadow-md); }
.metric-card small { display: block; color: var(--txt-s); margin-top: .35rem; max-width: 78%; }
.admin-summary-pills { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.semaforo-pill {
  display: inline-flex; align-items: center; gap: .35rem; border-radius: 999px;
  padding: .28rem .68rem; font-size: .78rem; font-weight: 800; white-space: nowrap;
}
.semaforo-verde { background: var(--verde-cl); color: #2E7D6B; }
.semaforo-amarelo { background: #FFF8EC; color: var(--dourado); }
.semaforo-vermelho { background: #FFF0EE; color: var(--rv); }
.stack-list { display: grid; gap: .65rem; }
.stack-item {
  display: flex; justify-content: space-between; align-items: center; gap: .75rem;
  border: 1px solid var(--brd-s); border-radius: 12px; padding: .75rem .85rem;
  color: var(--txt); text-decoration: none; background: #fff;
}
.stack-item:hover { border-color: var(--dourado); color: var(--azul); box-shadow: var(--shadow-sm); }
.stack-item span { display: grid; gap: .1rem; min-width: 0; }
.stack-item small { color: var(--txt-s); }
.admin-mobile-list { display: none; }
.discipulando-card-admin {
  background: #fff; border: 1px solid var(--brd-s); border-left: 4px solid var(--dourado);
  border-radius: 14px; padding: .95rem; color: var(--txt); text-decoration: none;
  box-shadow: var(--shadow-sm); display: flex; justify-content: space-between; gap: .75rem; align-items: flex-start;
}
.discipulando-card-admin:hover { color: var(--txt); border-left-color: var(--azul); box-shadow: var(--shadow-md); }
.discipulando-card-admin div { display: grid; gap: .08rem; }
.discipulando-card-admin strong { color: var(--azul); }
.discipulando-card-admin span:not(.semaforo-pill) { color: var(--txt-s); font-size: .88rem; }
.admin-semaforo-table td, .admin-semaforo-table th { vertical-align: middle; }
.admin-filter-grid { display: grid; grid-template-columns: minmax(220px, 1.4fr) repeat(3, minmax(150px, .8fr)) auto; gap: .85rem; align-items: end; }
.registro-mini-list { display: grid; gap: .75rem; }
.registro-mini-item { border: 1px solid var(--brd-s); border-radius: 12px; padding: .8rem; background: #fff; }
.registro-mini-item strong { color: var(--azul); display: flex; align-items: center; gap: .4rem; }
.registro-mini-item p { margin: .35rem 0 .2rem; color: var(--txt); }
.registro-mini-item small { color: var(--txt-s); }
.registro-mini-alerta { border-left: 4px solid var(--rv); background: #FFF8F7; }

@media (max-width: 992px) {
  .admin-filter-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 768px) {
  .admin-table-desktop { display: none !important; }
  .admin-mobile-list { display: grid; gap: .8rem; }
  .discipulando-card-admin { flex-direction: column; }
  .admin-filter-grid { grid-template-columns: 1fr; }
  .admin-summary-pills { width: 100%; }
  .metric-card small { max-width: 100%; }
}


/* Fase 10 - Perfil pastoral individual completo */
.profile-hero { background: linear-gradient(135deg, #fff 0%, var(--azul-cl) 100%); }
.profile-tabs {
  overflow-x: auto;
  flex-wrap: nowrap;
  gap: .45rem;
  padding-bottom: .35rem;
}
.profile-tabs .nav-link {
  white-space: nowrap;
  border: 1px solid var(--brd-s);
  color: var(--azul);
  background: #fff;
  font-weight: 700;
  border-radius: 999px;
}
.profile-tabs .nav-link.active {
  background: var(--azul);
  border-color: var(--azul);
  color: #fff;
}
.profile-tab-content > .tab-pane { min-height: 360px; }
.profile-dl { display: grid; gap: .75rem; margin: 0; }
.profile-dl.compact { gap: .55rem; }
.profile-dl dt {
  color: var(--txt-s);
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.profile-dl dd {
  margin: -.4rem 0 0;
  color: var(--txt);
  white-space: pre-wrap;
}
.assessment-score-box {
  background: var(--perg);
  border: 1px solid var(--brd-s);
  border-left: 4px solid var(--dourado);
  border-radius: 12px;
  min-width: 180px;
  padding: .8rem 1rem;
}
.assessment-score-box span,
.assessment-score-box small {
  display: block;
  color: var(--txt-s);
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.assessment-score-box strong {
  color: var(--azul);
  display: block;
  font-family: 'Lora', serif;
  font-size: 2rem;
  line-height: 1;
  margin: .25rem 0;
}
.assessment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .85rem;
}
.assessment-field {
  background: #fff;
  border: 1px solid var(--brd-s);
  border-radius: 12px;
  display: grid;
  gap: .45rem;
  padding: .8rem;
}
.assessment-field span { color: var(--azul); font-weight: 800; }
.notes-list { display: grid; gap: .85rem; }
.note-card {
  background: #fff;
  border: 1px solid var(--brd-s);
  border-left: 4px solid var(--dourado);
  border-radius: 14px;
  padding: .95rem;
}
.note-card > div {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  margin-bottom: .5rem;
}
.note-card strong { color: var(--azul); }
.note-card p { margin: 0; white-space: pre-wrap; }
.profile-sticky-note { top: 1rem; z-index: 2; }
.checkin-history-accordion .accordion-item,
.onboarding-readonly .accordion-item {
  border: 1px solid var(--brd-s);
  border-radius: 14px;
  overflow: hidden;
  margin-bottom: .75rem;
}
.checkin-history-accordion .accordion-button,
.onboarding-readonly .accordion-button {
  color: var(--azul);
  font-weight: 800;
  background: #fff;
}
.checkin-history-accordion .accordion-button:not(.collapsed),
.onboarding-readonly .accordion-button:not(.collapsed) {
  background: var(--azul-cl);
  box-shadow: none;
}
@media (max-width: 992px) {
  .assessment-grid { grid-template-columns: 1fr; }
  .profile-sticky-note { position: static !important; }
}
@media (max-width: 768px) {
  .profile-tabs .nav-link { font-size: .88rem; padding: .55rem .75rem; }
  .assessment-score-box { width: 100%; }
}


/* Fase 11 - Resposta pastoral do check-in */
.admin-checkin-hero { background: linear-gradient(135deg, #fff 0%, var(--azul-cl) 100%); }
.admin-checkin-layout .sticky-xl-top { top: 1rem; }
.admin-checkin-section {
  background: #fff;
  border: 1px solid var(--brd-s);
  border-left: 5px solid var(--dourado);
  border-radius: 16px;
  margin-bottom: 1rem;
  padding: 1rem;
}
.admin-checkin-section.border-biblia { border-left-color: var(--azul); }
.admin-checkin-section.border-livro { border-left-color: var(--verde); }
.admin-checkin-section.border-oracao { border-left-color: var(--dourado); }
.admin-checkin-section.border-coracao { border-left-color: var(--rv); }
.admin-checkin-section.border-pastor { border-left-color: var(--azul-m); }
.admin-checkin-section-title { align-items: center; display: flex; gap: .7rem; margin-bottom: .85rem; }
.admin-checkin-section-title i { color: var(--dourado); font-size: 1.45rem; }
.admin-checkin-section-title h4 { color: var(--azul); font-family: 'Lora', serif; margin: 0; }
.admin-checkin-dl { display: grid; gap: .65rem; margin: 0; }
.admin-checkin-dl dt {
  color: var(--txt-s);
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.admin-checkin-dl dd { color: var(--txt); margin: -.45rem 0 0; white-space: pre-wrap; }
.context-metric-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.context-metric-grid > div { background: var(--perg); border: 1px solid var(--brd-s); border-radius: 13px; padding: .85rem; }
.context-metric-grid span { color: var(--txt-s); display: block; font-size: .74rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.context-metric-grid strong { color: var(--azul); display: block; font-family: 'Lora', serif; font-size: 1.55rem; line-height: 1.1; margin: .18rem 0; }
.context-metric-grid small { color: var(--txt-s); }
.comparison-pill { align-items: center; border-radius: 999px; display: inline-flex; gap: .4rem; font-size: .82rem; font-weight: 800; padding: .38rem .75rem; }
.comparison-pill.up { background: var(--verde-cl); color: #2E7D6B; }
.comparison-pill.down { background: #FFF0EE; color: var(--rv); }
.comparison-pill.stable { background: var(--azul-cl); color: var(--azul); }
.comparison-pill.muted { background: var(--brd-s); color: var(--txt-s); }
.weekly-temp-detail { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .45rem; }
.weekly-temp-day { background: #fff; border: 1px solid var(--brd-s); border-radius: 12px; display: grid; gap: .12rem; min-height: 78px; padding: .45rem .25rem; place-items: center; text-align: center; }
.weekly-temp-day span { color: var(--txt-s); font-size: .72rem; font-weight: 700; }
.weekly-temp-day strong { font-size: 1.45rem; line-height: 1; }
.weekly-temp-day small { color: var(--txt-s); font-size: .7rem; }
.empty-state.compact { padding: .85rem; }
.registro-mini-list.compact .registro-mini-item { padding: .72rem; }
.badge-soft { border-radius: 999px; display: inline-flex; font-size: .76rem; font-weight: 800; padding: .28rem .68rem; text-transform: uppercase; letter-spacing: .04em; }
.badge-soft-muted { background: var(--brd-s); color: var(--txt-s); }
@media (max-width: 1200px) { .admin-checkin-context.sticky-xl-top { position: static !important; } }
@media (max-width: 768px) {
  .context-metric-grid { grid-template-columns: 1fr; }
  .weekly-temp-detail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-checkin-section { padding: .85rem; }
}


/* Fase 12 - Direcionamentos semanais */
.direction-json-schema { display: flex; flex-wrap: wrap; gap: .55rem; }
.direction-json-schema span { background: var(--azul-cl); color: var(--azul); border: 1px solid rgba(30,63,110,.12); border-radius: 999px; padding: .42rem .7rem; font-size: .9rem; font-weight: 700; }
.direction-form .accordion-button { font-weight: 700; color: var(--azul); }
.direction-form .accordion-button:not(.collapsed) { background: var(--azul-cl); color: var(--azul); box-shadow: none; }
.direction-form textarea { min-height: 98px; }
.direction-days .accordion-item { border-color: var(--brd-s); }
.json-preview { background: #111927; color: #CDD5E0; border-left: 3px solid var(--dourado); border-radius: 8px; padding: 1rem; font-size: .82rem; max-height: 360px; overflow: auto; }
.direction-mobile-list .discipulando-card-admin { text-decoration: none; color: inherit; }
@media (max-width: 768px) { .direction-form .card-jornada { padding: 1rem; } }


/* Fase 13 - Biblioteca de livros */
.livro-editor-form textarea.form-control { min-height: 130px; }
.sticky-admin-side { position: sticky; top: 92px; }
.livro-mobile-card { border-left-color: var(--azul); }
.badge-soft-primary { background: var(--azul-cl); color: var(--azul); }
.badge-soft-success { background: var(--verde-cl); color: #2E7D6B; }
.badge-soft-warning { background: #FFF8EC; color: var(--dourado); }
.badge-soft-danger { background: #FFF0EE; color: var(--rv); }
.badge-soft-muted { background: var(--brd-s); color: var(--txt-s); }
.badge-status.ativo { background: var(--verde); color: #fff; }
.badge-status.inativo { background: var(--txt-s); color: #fff; }
.table-jornada td .btn-group form { margin: 0; }
@media (max-width: 992px) { .sticky-admin-side { position: static; } }


/* Fase 14 - Vídeos */
.video-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.1rem; }
.video-card { background: #fff; border: 1px solid var(--brd-s); border-radius: 18px; box-shadow: var(--shadow-sm); overflow: hidden; display: flex; flex-direction: column; }
.video-card:hover { box-shadow: var(--shadow-md); transform: translateY(-2px); }
.video-thumb { position: relative; border: 0; display: block; padding: 0; background: #111927; width: 100%; cursor: pointer; }
.video-thumb img { aspect-ratio: 16 / 9; display: block; height: auto; object-fit: cover; width: 100%; }
.video-thumb span { align-items: center; background: rgba(30,63,110,.88); border: 2px solid rgba(255,255,255,.85); border-radius: 999px; color: #fff; display: flex; height: 58px; justify-content: center; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 58px; }
.video-thumb i { font-size: 2rem; line-height: 1; margin-left: .18rem; }
.video-card-body { display: flex; flex: 1; flex-direction: column; gap: .75rem; padding: 1rem; }
.video-card-body h3 { color: var(--azul); font-size: 1.15rem; margin: 0; }
.video-card-body p { color: var(--txt-s); flex: 1; margin: 0; }
.video-card-meta { align-items: center; display: flex; justify-content: space-between; gap: .75rem; }
.video-card-meta small { color: var(--txt-s); font-weight: 700; }
.video-wrapper { position: relative; padding-top: 56.25%; height: 0; overflow: hidden; border-radius: 12px; background: #111927; }
.video-wrapper iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; }
.video-empty i { color: var(--dourado); display: block; font-size: 2.4rem; margin-bottom: .75rem; }
.video-admin-thumbline { align-items: center; display: flex; gap: .8rem; min-width: 280px; }
.video-admin-thumbline img { border-radius: 10px; height: 64px; object-fit: cover; width: 96px; }
.ordem-input { max-width: 90px; }
.video-admin-preview { align-items: center; background: var(--azul-cl); border: 1px solid rgba(30,63,110,.12); border-radius: 14px; display: flex; gap: .85rem; padding: .7rem; }
.video-admin-preview img { border-radius: 10px; height: 72px; object-fit: cover; width: 128px; }
.video-admin-preview span { color: var(--azul); font-family: 'JetBrains Mono', monospace; font-size: .85rem; font-weight: 700; }
.video-admin-mobile-card { align-items: stretch; }
.video-admin-mobile-card > img { border-radius: 12px; height: auto; object-fit: cover; width: 100%; }
.video-admin-form-hidden { display: none !important; }
.video-order-form .table-wrapper { margin-bottom: 0; }
.video-watch-modal .modal-body { background: #fff; }
@media (max-width: 992px) { .video-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 768px) {
  .video-grid { grid-template-columns: 1fr; }
  .video-card-body { padding: .95rem; }
  .video-watch-modal .modal-dialog { margin: 0; max-width: 100%; min-height: 100vh; }
  .video-watch-modal .modal-content { border-radius: 0; min-height: 100vh; }
}

/* Fase 15 - Histórico e Perfil do discipulando */
.metric-grid.mini { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.history-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .85rem; }
.history-pillar-card { background: var(--perg); border: 1px solid var(--brd-s); border-radius: 14px; padding: .9rem; }
.history-pillar-card i { color: var(--dourado); font-size: 1.3rem; }
.history-pillar-card span { color: var(--txt-s); display: block; font-size: .74rem; font-weight: 800; letter-spacing: .06em; margin-top: .25rem; text-transform: uppercase; }
.history-pillar-card strong { color: var(--azul); display: block; font-family: 'Lora', serif; font-size: 1.12rem; margin: .2rem 0; }
.history-pillar-card p { color: var(--txt-s); margin: 0; white-space: pre-wrap; }
.history-pastor-request { background: var(--azul-cl); border: 1px solid rgba(30,63,110,.12); border-radius: 14px; padding: .95rem; }
.history-pastor-request h4 { color: var(--azul); font-size: 1rem; margin-bottom: .65rem; }
.history-pastor-request p { margin-bottom: .45rem; white-space: pre-wrap; }
.pastoral-response-card { background: #fffaf1; border: 1px solid rgba(200,146,42,.2); border-left: 4px solid var(--dourado); border-radius: 14px; padding: 1rem; }
.pastoral-response-card span { color: var(--dourado); display: block; font-size: .78rem; font-weight: 800; letter-spacing: .06em; margin-bottom: .45rem; text-transform: uppercase; }
.pastoral-response-card p { color: var(--txt); margin: 0; }
.history-calendar { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); gap: .42rem; }
.history-day { border: 1px solid var(--brd-s); border-radius: 11px; min-height: 58px; padding: .35rem .2rem; text-align: center; }
.history-day span { color: var(--txt-s); display: block; font-size: .72rem; font-weight: 800; }
.history-day strong { display: block; font-size: 1.15rem; line-height: 1.25; }
.history-day.temp-sem { background: #fff; opacity: .72; }
.history-day.temp-distante, .legend-dot.temp-distante { background: #FFF0EE; border-color: rgba(181,57,44,.22); }
.history-day.temp-neutro, .legend-dot.temp-neutro { background: var(--brd-s); border-color: var(--brd); }
.history-day.temp-conectado, .legend-dot.temp-conectado { background: var(--azul-cl); border-color: rgba(30,63,110,.15); }
.history-day.temp-em-paz, .legend-dot.temp-em-paz { background: var(--verde-cl); border-color: rgba(74,122,109,.2); }
.history-day.temp-em-chama, .legend-dot.temp-em-chama { background: #FFF8EC; border-color: rgba(200,146,42,.28); }
.legend-dot { border: 1px solid transparent; border-radius: 999px; display: inline-block; height: .9rem; width: .9rem; }
.history-side { top: 1rem; }
.profile-identity-card { align-items: center; background: #fff; border: 1px solid var(--brd-s); border-radius: 18px; box-shadow: var(--shadow-sm); display: flex; gap: .85rem; padding: .95rem; }
.profile-avatar { align-items: center; background: var(--azul); border-radius: 999px; color: var(--dourado-cl); display: flex; font-family: 'Lora', serif; font-size: 1.65rem; height: 56px; justify-content: center; width: 56px; }
.profile-identity-card strong { color: var(--azul); display: block; font-family: 'Lora', serif; font-size: 1.1rem; }
.profile-identity-card span { color: var(--txt-s); display: block; font-weight: 700; }
.callmebot-steps { background: var(--perg); border: 1px solid var(--brd-s); border-radius: 14px; margin-left: 0; padding: 1rem 1rem 1rem 2.2rem; }
.callmebot-steps li { margin-bottom: .45rem; }
.profile-form .form-control { min-height: 48px; }
@media (max-width: 992px) {
  .history-summary-grid { grid-template-columns: 1fr; }
  .history-side { position: static !important; }
  .history-calendar { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}
@media (max-width: 576px) {
  .history-calendar { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .32rem; }
  .history-day { min-height: 50px; }
  .metric-grid.mini { grid-template-columns: 1fr; }
}


/* Fase 16 - Notificações e configurações finais */
.page-hero.compact {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  background: linear-gradient(135deg, var(--azul-cl), #fff);
  border-left: 4px solid var(--dourado);
  border-radius: 18px;
  padding: 1.4rem;
  margin-bottom: 1.4rem;
}
.page-hero.compact h2 { margin: .2rem 0 .25rem; color: var(--azul); }
.page-hero-actions { display: flex; gap: .55rem; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.filters-bar { display: flex; gap: .5rem; flex-wrap: wrap; }
.notifications-list { display: grid; gap: .85rem; }
.notification-card {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: .9rem;
  background: var(--sup);
  border: 1px solid var(--brd-s);
  border-left: 4px solid var(--dourado);
  border-radius: 16px;
  padding: 1rem;
  box-shadow: 0 6px 20px rgba(26,39,68,.05);
}
.notification-card.is-read { opacity: .78; border-left-color: var(--brd); }
.notification-icon {
  width: 44px; height: 44px; border-radius: 50%;
  background: var(--azul-cl); color: var(--azul);
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.25rem;
}
.notification-meta { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; color: var(--txt-s); font-size: .84rem; margin-bottom: .4rem; }
.notification-body p { margin: 0 0 .75rem; }
.notification-actions { display: flex; gap: .5rem; flex-wrap: wrap; }
.settings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.settings-card { height: 100%; }
.settings-card-wide { grid-column: 1 / -1; }
.form-stack { display: grid; gap: .85rem; }
.settings-password-box { background: var(--perg); border: 1px solid var(--brd-s); border-radius: 14px; padding: 1rem; }
.settings-password-box h4 { margin-top: 0; color: var(--azul); }
@media (max-width: 768px) {
  .page-hero.compact { flex-direction: column; }
  .page-hero-actions { justify-content: flex-start; }
  .settings-grid { grid-template-columns: 1fr; }
  .notification-card { grid-template-columns: 1fr; }
  .notification-icon { width: 40px; height: 40px; }
}

/* Fase 17 - diagnóstico e produção */
.metric-line{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--brd-s)}
.metric-line:last-child{border-bottom:0}.metric-line span{color:var(--txt-s);font-size:.92rem}.metric-line strong{text-align:right;color:var(--txt);font-weight:700}.deploy-checklist li{margin-bottom:8px}.code-block-soft{background:#111927;color:#cdd5e0;border-radius:10px;padding:14px 16px;font-family:'JetBrains Mono',monospace;font-size:.86rem;overflow:auto}


/* Correção: logotipo público e menus mobile completos */
.public-navbar .public-brand-logo,
.nav-jornada .public-brand-logo,
.navbar-brand .public-brand-logo,
img.public-brand-logo {
  filter: none !important;
  max-width: 165px !important;
  width: auto !important;
  height: auto !important;
  max-height: 48px !important;
  object-fit: contain !important;
  display: block !important;
}
.sidebar-brand img {
  filter: none !important;
}

/* Correção: cards de resumo da página Exportar dados */
.admin-grid-cards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.admin-stat-card {
  background: #fff;
  border: 1px solid var(--brd-s);
  border-left: 4px solid var(--dourado);
  border-radius: 16px;
  box-shadow: var(--shadow-sm);
  padding: 1.15rem 1.25rem;
  min-height: 124px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.admin-stat-card span {
  color: var(--txt-s);
  font-weight: 800;
  line-height: 1.2;
}
.admin-stat-card strong {
  color: var(--azul);
  font-family: 'Lora', serif;
  font-size: 2.25rem;
  line-height: 1;
  margin: .35rem 0 .2rem;
}
.admin-stat-card small {
  color: var(--txt-s);
  font-size: .92rem;
}
@media (max-width: 992px) {
  .admin-grid-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 576px) {
  .public-navbar .public-brand-logo,
  .nav-jornada .public-brand-logo,
  .navbar-brand .public-brand-logo,
  img.public-brand-logo {
    max-width: 155px !important;
    max-height: 46px !important;
  }
  .admin-grid-cards { grid-template-columns: 1fr; }
  .nav-bottom.admin-mobile-nav a {
    flex-basis: 114px;
    min-width: 114px;
  }
}


/* ─────────────────────────────────────────────────────────────
   Na Jornada 2.0 — novos componentes
   ───────────────────────────────────────────────────────────── */
.nav-v2 .nav-section-label{display:block;margin:16px 18px 6px;color:rgba(255,255,255,.45);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700}.nav-v2{padding-bottom:24px}.offline-status{position:fixed;z-index:2000;top:0;left:0;right:0;background:#B5392C;color:#fff;text-align:center;padding:8px 12px;font-weight:700;font-size:.875rem}.v2-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.v2-card{background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-radius:18px;padding:20px;box-shadow:0 14px 35px rgba(30,63,110,.07)}.v2-card h3,.v2-card h4{font-family:Lora,serif;color:var(--azul,#1E3F6E)}.v2-metric{display:flex;align-items:center;gap:12px}.v2-metric i{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:var(--azul-cl,#EEF3FA);color:var(--azul,#1E3F6E);font-size:1.25rem}.v2-metric strong{display:block;font-size:1.35rem;color:var(--txt,#1A2744)}.reader-toolbar{position:sticky;top:0;z-index:8;background:rgba(247,243,237,.94);backdrop-filter:blur(12px);border:1px solid var(--brd-s,#EDE8E0);border-radius:18px;padding:14px;margin-bottom:18px}.bible-reader{display:flex;flex-direction:column;gap:10px}.verse-row{background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-radius:16px;padding:14px 16px;transition:.2s}.verse-row:hover{box-shadow:0 8px 24px rgba(30,63,110,.08)}.verse-num{font-family:JetBrains Mono,monospace;color:var(--dourado,#C8922A);font-weight:700;margin-right:10px}.verse-text{font-family:Lora,serif;font-size:1.08rem;line-height:1.75}.verse-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.verse-actions .btn{--bs-btn-padding-y:.15rem;--bs-btn-padding-x:.45rem;--bs-btn-font-size:.78rem}.grifo-amarelo{background:linear-gradient(transparent 45%,rgba(232,184,75,.45) 45%)}.grifo-verde{background:linear-gradient(transparent 45%,rgba(74,122,109,.28) 45%)}.grifo-azul{background:linear-gradient(transparent 45%,rgba(45,90,158,.25) 45%)}.grifo-roxo{background:linear-gradient(transparent 45%,rgba(107,79,158,.25) 45%)}.grifo-rosa{background:linear-gradient(transparent 45%,rgba(218,96,145,.25) 45%)}.timeline-v2{position:relative;padding-left:24px}.timeline-v2:before{content:"";position:absolute;left:8px;top:6px;bottom:6px;width:2px;background:var(--brd,#DDD5C8)}.timeline-item-v2{position:relative;background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-radius:16px;padding:16px;margin-bottom:14px}.timeline-item-v2:before{content:"";position:absolute;left:-21px;top:22px;width:12px;height:12px;background:var(--dourado,#C8922A);border-radius:50%;box-shadow:0 0 0 4px var(--perg,#F7F3ED)}.growth-bar{height:10px;background:#EDE8E0;border-radius:999px;overflow:hidden}.growth-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--azul,#1E3F6E),var(--verde,#4A7A6D));border-radius:999px}.flashcard-v2{min-height:260px;border-radius:24px;background:#fff;border:1px solid var(--brd-s,#EDE8E0);display:grid;place-items:center;text-align:center;padding:28px;box-shadow:0 18px 42px rgba(30,63,110,.08)}.chat-box-v2{height:440px;overflow:auto;background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-radius:18px;padding:16px}.chat-msg{max-width:85%;padding:12px 14px;border-radius:16px;margin-bottom:10px}.chat-msg.user{margin-left:auto;background:var(--azul,#1E3F6E);color:#fff}.chat-msg.ai{background:var(--azul-cl,#EEF3FA);color:var(--txt,#1A2744)}.modal-pastoral{border:0;border-radius:22px;overflow:hidden}.table-v2 th{white-space:nowrap}.color-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px}.status-pill{border-radius:999px;padding:4px 10px;font-size:.78rem;font-weight:700}.empty-v2{border:1px dashed var(--brd,#DDD5C8);border-radius:18px;padding:24px;text-align:center;color:var(--txt-s,#5A6882);background:rgba(255,255,255,.6)}@media(max-width:991px){.member-topbar-actions [data-pergunta-pastor-open]{display:none}.reader-toolbar{position:static}.verse-text{font-size:1rem}.nav-bottom{overflow-x:auto}}


/* Etapa 2 — Bíblia Premium auditada */
.bible-reader-shell{margin-bottom:2rem}.bible-reader-meta{margin:0 0 .85rem;color:var(--txt-s,#5A6882)}.reader-toolbar-actions{display:flex;gap:.5rem;flex-wrap:wrap}.verse-main.compare-mode{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem}.verse-col{min-width:0}.verse-version-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--txt-s,#5A6882);margin-bottom:.35rem}.verse-text.muted{color:var(--txt-s,#5A6882)}.verse-note{margin-top:.7rem;background:var(--azul-cl,#EEF3FA);border-left:3px solid var(--azul,#1E3F6E);padding:.65rem .8rem;border-radius:0 .65rem .65rem 0}.verse-memory{margin-top:.5rem;font-size:.82rem;color:var(--verde,#4A7A6D);font-weight:700}.dropdown-v2{position:relative}.color-menu{display:none;position:absolute;z-index:30;top:calc(100% + 6px);left:0;background:#fff;border:1px solid var(--brd-s,#EDE8E0);box-shadow:0 12px 30px rgba(30,63,110,.15);border-radius:14px;padding:.45rem;min-width:210px}.color-menu.open{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}.color-chip{border:1px solid var(--brd-s,#EDE8E0);background:#fff;border-radius:999px;padding:.35rem .55rem;font-size:.78rem;font-weight:700;text-align:left}.color-chip:before{content:"";display:inline-block;width:10px;height:10px;border-radius:999px;margin-right:6px}.color-amarelo:before{background:#E8B84B}.color-verde:before{background:#4A7A6D}.color-azul:before{background:#2D5A9E}.color-roxo:before{background:#6B4F9E}.color-rosa:before{background:#DA6091}.color-chip.muted{grid-column:1/-1;color:var(--rv,#B5392C)}.flashcard-grid{align-items:stretch}.flashcard-v2.due{border-color:rgba(200,146,42,.55);box-shadow:0 18px 42px rgba(200,146,42,.12)}@media(max-width:767px){.verse-main.compare-mode{grid-template-columns:1fr}.color-menu{position:static;margin-top:.5rem}.reader-toolbar-actions .btn{flex:1 1 100%}}


/* Na Jornada 2.0 — Estudo Bíblico Profundo */
.verse-mini{font-family:var(--font-serif, 'Lora', serif);border-left:3px solid var(--dourado);padding:.6rem .85rem;background:rgba(200,146,42,.08);border-radius:0 .5rem .5rem 0;margin:.5rem 0;color:var(--txt)}
.verse-note{margin-top:.75rem;padding:.75rem;border-radius:.75rem;background:var(--azul-cl);font-size:.95rem}
.verse-compare{margin-top:.55rem;padding:.65rem .8rem;border-radius:.65rem;background:rgba(74,122,109,.09);font-size:.95rem}
.verse-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.75rem}
.biblia-verse{padding:1rem;border-bottom:1px solid var(--brd-s);border-radius:.75rem;background:#fff;margin-bottom:.75rem}
.grifo-amarelo{background:#fff8d8}.grifo-verde{background:#eefaf3}.grifo-azul{background:#eef3fa}.grifo-roxo{background:#f2edfb}.grifo-rosa{background:#fff0f6}
.table-v2 td,.table-v2 th{vertical-align:middle}

.nav-badge{margin-left:auto;background:#B5392C;color:#fff;border-radius:999px;padding:1px 7px;font-size:.72rem;font-weight:800}

/* Hotfix 01 — Admin sidebar scroll e aviso Banco 2.0 */
.nav-lateral,
.admin-sidebar {
  height: 100vh;
  max-height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(232,184,75,.65) rgba(255,255,255,.08);
}
.nav-lateral::-webkit-scrollbar,
.admin-sidebar::-webkit-scrollbar { width: 8px; }
.nav-lateral::-webkit-scrollbar-track,
.admin-sidebar::-webkit-scrollbar-track { background: rgba(255,255,255,.08); }
.nav-lateral::-webkit-scrollbar-thumb,
.admin-sidebar::-webkit-scrollbar-thumb { background: rgba(232,184,75,.65); border-radius: 999px; }
.sidebar-nav { flex: 1 1 auto; padding-bottom: 1rem; }
.sidebar-user { flex: 0 0 auto; }

/* HOTFIX 04 — Bíblia como leitor limpo estilo app bíblico */
.bible-app{max-width:1040px;margin:0 auto 42px}.bible-app-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-left:4px solid var(--dourado,#C8922A);border-radius:22px;padding:22px 24px;margin-bottom:14px;box-shadow:0 14px 35px rgba(30,63,110,.07)}.bible-app-header h2{font-size:clamp(1.35rem,2.2vw,2.2rem)}.bible-app-header-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.bible-reader-toolbar{position:sticky;top:0;z-index:20;background:rgba(247,243,237,.96);backdrop-filter:blur(14px);border:1px solid var(--brd-s,#EDE8E0);border-radius:20px;padding:10px;margin-bottom:16px;box-shadow:0 12px 32px rgba(30,63,110,.08)}.bible-control-row{display:grid;grid-template-columns:minmax(92px,.7fr) minmax(180px,1.65fr) minmax(92px,.7fr) auto auto;gap:8px;align-items:end}.bible-control label{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--txt-s,#5A6882);font-weight:800;margin-bottom:4px}.bible-control .form-select{border-radius:12px;font-weight:700;color:var(--txt,#1A2744)}.bible-nav-buttons{display:flex;gap:6px}.bible-nav-buttons .btn,.bible-tools-toggle{height:38px;border-radius:12px}.bible-tools-panel{border-top:1px solid var(--brd-s,#EDE8E0);margin-top:10px;padding-top:4px}.tool-result{background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-radius:14px;padding:10px;min-height:52px}.bible-reader-clean{background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-radius:22px;padding:10px 12px;box-shadow:0 14px 35px rgba(30,63,110,.05)}.clean-verse{border:0;border-bottom:1px solid var(--brd-s,#EDE8E0);border-radius:0;background:#fff;padding:14px 6px;margin:0}.clean-verse:last-child{border-bottom:0}.clean-verse:hover{box-shadow:none;background:rgba(238,243,250,.45)}.verse-line{display:grid;grid-template-columns:38px minmax(0,1fr);gap:8px;align-items:start}.clean-verse .verse-num{border:0;background:transparent;color:var(--dourado,#C8922A);font-family:JetBrains Mono,monospace;font-weight:800;text-align:center;padding:5px 0;border-radius:10px;line-height:1.2}.clean-verse .verse-num:hover{background:var(--azul-cl,#EEF3FA);color:var(--azul,#1E3F6E)}.clean-verse .verse-text{font-family:Lora,serif;font-size:1.16rem;line-height:1.95;color:var(--txt,#1A2744)}.clean-actions{margin-left:46px;margin-top:8px;opacity:.08;transition:opacity .18s ease}.clean-verse:hover .clean-actions,.clean-verse:focus-within .clean-actions{opacity:1}.clean-actions .btn{border:1px solid var(--brd-s,#EDE8E0);border-radius:999px;color:var(--txt-s,#5A6882);background:#fff}.clean-actions .btn:hover{border-color:var(--dourado,#C8922A);color:var(--azul,#1E3F6E)}.verse-mini-badge{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;background:#FFF8EC;color:#9A6A13;font-family:Source Sans 3,sans-serif;font-size:.72rem;font-weight:800;vertical-align:middle}.verse-mini-badge.memory{background:#EFFAF7;color:#2E7D6B}.verse-tags{margin:7px 0 0 46px}.verse-tag{display:inline-block;text-decoration:none;border:1px solid var(--brd-s,#EDE8E0);background:#fff;border-radius:999px;padding:2px 8px;font-size:.74rem;color:var(--txt-s,#5A6882);margin-right:4px}.verse-compare-clean{margin:8px 0 0 46px;padding:10px 12px;border-left:3px solid var(--azul-m,#2D5A9E);background:var(--azul-cl,#EEF3FA);border-radius:0 12px 12px 0}.verse-compare-clean strong{display:block;font-size:.7rem;letter-spacing:.12em;color:var(--azul,#1E3F6E);margin-bottom:3px}.verse-note{margin-left:46px}.biblia-verse{padding:14px 6px;border-bottom:1px solid var(--brd-s,#EDE8E0)}@media(max-width:991px){.bible-app{max-width:100%}.bible-app-header{display:block;padding:18px}.bible-app-header-actions{margin-top:12px;justify-content:flex-start}.bible-control-row{grid-template-columns:1fr 1.3fr .75fr;gap:7px}.bible-nav-buttons{grid-column:1/3}.bible-tools-toggle{grid-column:3/4;width:100%;font-size:.82rem}.bible-reader-toolbar{top:0;border-radius:16px;margin-left:-6px;margin-right:-6px}.bible-reader-clean{border-radius:16px;margin-left:-6px;margin-right:-6px;padding:4px 10px}.clean-verse .verse-text{font-size:1.08rem;line-height:1.85}.clean-actions{opacity:1;margin-left:0;display:flex;overflow-x:auto;flex-wrap:nowrap;padding-bottom:3px}.clean-actions .btn{white-space:nowrap}.verse-line{grid-template-columns:32px minmax(0,1fr)}.verse-tags,.verse-compare-clean,.verse-note{margin-left:40px}}@media(max-width:520px){.bible-control-row{grid-template-columns:78px minmax(0,1fr) 78px}.bible-control label{font-size:.61rem}.bible-nav-buttons .btn{min-width:44px}.bible-tools-toggle{font-size:0}.bible-tools-toggle i{font-size:1rem}.clean-verse .verse-text{font-size:1.03rem}.bible-app-header p{display:none}}


/* HOTFIX 05 — limpeza visual do leitor bíblico e dashboard */
.dashboard-metrics-clean{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}.dashboard-metric-card{display:flex;align-items:center;gap:.9rem;background:#fff;border:1px solid #EDE8E0;border-left:4px solid #C8922A;border-radius:18px;padding:1rem 1.1rem;text-decoration:none!important;color:#1A2744!important;box-shadow:0 12px 30px rgba(26,39,68,.06);transition:.16s ease}.dashboard-metric-card:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(26,39,68,.09)}.dashboard-metric-icon{width:46px;height:46px;border-radius:16px;background:#EEF3FA;color:#1E3F6E;display:grid;place-items:center;font-size:1.25rem;flex:none}.dashboard-metric-card span:not(.dashboard-metric-icon){display:block;color:#5A6882;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.dashboard-metric-card strong{display:block;color:#1E3F6E;font-family:Lora,serif;font-size:1.8rem;line-height:1.1}@media(max-width:992px){.dashboard-metrics-clean{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:576px){.dashboard-metrics-clean{grid-template-columns:1fr}.dashboard-metric-card{padding:.95rem}}

/* HOTFIX 08 — navegação mobile ampliada e perfil premium */
.nav-bottom:not(.admin-mobile-nav){justify-content:flex-start;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;scrollbar-width:none}.nav-bottom:not(.admin-mobile-nav)::-webkit-scrollbar{display:none}.nav-bottom:not(.admin-mobile-nav) a{flex:0 0 96px;min-width:96px;scroll-snap-align:start;padding-left:.2rem;padding-right:.2rem}.nav-bottom:not(.admin-mobile-nav) a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:88px}.module-grid-premium{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem}.module-card-premium{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-left:4px solid var(--dourado,#C8922A);border-radius:20px;padding:18px;text-decoration:none!important;color:var(--txt,#1A2744)!important;box-shadow:0 14px 34px rgba(30,63,110,.07);transition:.16s ease}.module-card-premium:hover{transform:translateY(-2px);box-shadow:0 18px 42px rgba(30,63,110,.11)}.module-card-premium i{width:44px;height:44px;border-radius:15px;background:var(--azul-cl,#EEF3FA);color:var(--azul,#1E3F6E);display:grid;place-items:center;font-size:1.25rem;flex:none}.module-card-premium strong{display:block;font-family:Lora,serif;font-size:1.15rem;margin-bottom:.25rem}.module-card-premium span{display:block;color:var(--txt-s,#5A6882);font-size:.92rem;line-height:1.35}.premium-profile-hero{position:relative;overflow:hidden;background:linear-gradient(135deg,#1E3F6E 0%,#132845 56%,#4A7A6D 120%);color:#fff;border:0;border-radius:28px;padding:28px;box-shadow:0 20px 50px rgba(30,63,110,.18)}.premium-profile-hero:after{content:"";position:absolute;right:-80px;top:-80px;width:260px;height:260px;border-radius:50%;background:rgba(232,184,75,.18)}.premium-profile-content{position:relative;z-index:1;display:flex;align-items:center;gap:20px;flex-wrap:wrap}.premium-avatar{width:86px;height:86px;border-radius:26px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);display:grid;place-items:center;font-family:Lora,serif;font-size:2rem;font-weight:800;color:#fff}.premium-profile-hero h2{color:#fff;font-family:Lora,serif;font-size:clamp(1.7rem,3vw,2.5rem);margin:0}.premium-profile-hero p{color:rgba(255,255,255,.78);margin:.25rem 0 0}.premium-profile-chips{display:flex;gap:.55rem;flex-wrap:wrap;margin-top:1rem}.premium-profile-chips span{background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.18);color:#fff;border-radius:999px;padding:.38rem .75rem;font-weight:700;font-size:.82rem}.premium-panel{background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-radius:24px;padding:22px;box-shadow:0 15px 38px rgba(30,63,110,.07)}.premium-panel h3{font-family:Lora,serif;color:var(--azul,#1E3F6E)}.premium-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.premium-info-item{border:1px solid var(--brd-s,#EDE8E0);border-radius:16px;padding:14px;background:#FCFAF6}.premium-info-item span{display:block;color:var(--txt-s,#5A6882);font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.premium-info-item strong{display:block;color:var(--txt,#1A2744);margin-top:4px}.premium-form-card{background:#fff;border:1px solid var(--brd-s,#EDE8E0);border-radius:22px;padding:20px;box-shadow:0 12px 30px rgba(30,63,110,.06)}@media(max-width:768px){.nav-bottom:not(.admin-mobile-nav) a{flex-basis:88px;min-width:88px;font-size:.68rem}.premium-profile-hero{border-radius:22px;padding:22px}.premium-avatar{width:70px;height:70px;border-radius:20px}}

/* HOTFIX 09 — menu mobile horizontal com rolagem real
   Mantém mais atalhos disponíveis no retrato sem esconder os itens fora da tela. */
.nav-bottom.nav-scroll-mobile {
  justify-content: flex-start !important;
  align-items: stretch;
  gap: 4px;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-x: contain;
  scroll-snap-type: x proximity;
  padding: 7px 10px calc(7px + env(safe-area-inset-bottom));
  scrollbar-width: thin;
  scrollbar-color: rgba(232,184,75,.85) rgba(255,255,255,.12);
  box-shadow: 0 -10px 28px rgba(15,31,54,.18), inset -24px 0 24px -28px rgba(255,255,255,.65);
}
.nav-bottom.nav-scroll-mobile::-webkit-scrollbar {
  height: 4px;
}
.nav-bottom.nav-scroll-mobile::-webkit-scrollbar-track {
  background: rgba(255,255,255,.12);
}
.nav-bottom.nav-scroll-mobile::-webkit-scrollbar-thumb {
  background: rgba(232,184,75,.9);
  border-radius: 999px;
}
.nav-bottom.nav-scroll-mobile a {
  flex: 0 0 82px !important;
  min-width: 82px !important;
  max-width: 82px;
  scroll-snap-align: start;
  border-radius: 14px;
  padding: 5px 4px 4px !important;
  min-height: 54px;
  font-size: .68rem;
  line-height: 1.1;
  color: rgba(255,255,255,.72);
  transition: background .16s ease, color .16s ease, transform .16s ease;
}
.nav-bottom.nav-scroll-mobile a:hover,
.nav-bottom.nav-scroll-mobile a.ativo,
.nav-bottom.nav-scroll-mobile a.active {
  color: var(--dourado-cl,#E8B84B) !important;
  background: rgba(255,255,255,.09);
}
.nav-bottom.nav-scroll-mobile a:active {
  transform: translateY(1px);
}
.nav-bottom.nav-scroll-mobile .bi {
  font-size: 1.18rem;
  margin-bottom: .22rem;
}
.nav-bottom.nav-scroll-mobile a span {
  display: block;
  max-width: 74px !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
}
@media (max-width: 768px) {
  body { padding-bottom: calc(78px + env(safe-area-inset-bottom)); }
  .nav-bottom.nav-scroll-mobile { display: flex !important; }
}
@media (max-width: 390px) {
  .nav-bottom.nav-scroll-mobile a {
    flex-basis: 76px !important;
    min-width: 76px !important;
    max-width: 76px;
    font-size: .64rem;
  }
  .nav-bottom.nav-scroll-mobile a span { max-width: 68px !important; }
}

/* Hotfix 12 — modal de vídeos sempre rolável e com ação de salvar visível */
.video-admin-editor-modal .modal-dialog {
  height: min(92dvh, 920px);
}
.video-admin-editor-modal .modal-content {
  max-height: min(92dvh, 920px);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 0;
  border-radius: 22px;
}
.video-admin-editor-modal .video-admin-modal-header,
.video-admin-editor-modal .video-admin-modal-footer {
  flex: 0 0 auto;
  background: #fff;
  z-index: 3;
}
.video-admin-editor-modal .video-admin-modal-header {
  border-bottom: 1px solid var(--brd-s, #EDE8E0);
}
.video-admin-editor-modal .video-admin-modal-footer {
  border-top: 1px solid var(--brd-s, #EDE8E0);
  box-shadow: 0 -10px 24px rgba(30, 63, 110, .08);
  gap: .65rem;
}
.video-admin-editor-modal .video-admin-modal-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 1.25rem;
}
.video-admin-editor-modal .video-admin-modal-body::-webkit-scrollbar {
  width: 10px;
}
.video-admin-editor-modal .video-admin-modal-body::-webkit-scrollbar-thumb {
  background: rgba(200, 146, 42, .65);
  border-radius: 999px;
}
@media (max-width: 767.98px) {
  .video-admin-editor-modal .modal-dialog {
    margin: 0;
    width: 100%;
    max-width: 100%;
    height: 100dvh;
  }
  .video-admin-editor-modal .modal-content {
    height: 100dvh;
    max-height: 100dvh;
    border-radius: 0;
  }
  .video-admin-editor-modal .video-admin-modal-header {
    padding-top: calc(.85rem + env(safe-area-inset-top));
  }
  .video-admin-editor-modal .video-admin-modal-footer {
    padding-bottom: calc(.85rem + env(safe-area-inset-bottom));
  }
  .video-admin-editor-modal .video-admin-modal-footer .btn {
    flex: 1 1 0;
  }
}

/* HOTFIX 14 — restaura rolagem horizontal real do footer mobile após remoção do Diário.
   Regra mais forte para impedir que os itens fiquem comprimidos em retrato. */
@media (max-width: 991.98px) {
  body {
    padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important;
  }

  .nav-bottom.nav-scroll-mobile,
  .nav-bottom.nav-bottom-horizontal {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 1080 !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 4px !important;
    width: 100vw !important;
    max-width: 100vw !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
    scroll-snap-type: x proximity !important;
    padding: 7px 10px calc(7px + env(safe-area-inset-bottom)) !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(232,184,75,.9) rgba(255,255,255,.13) !important;
  }

  .nav-bottom.nav-scroll-mobile::-webkit-scrollbar,
  .nav-bottom.nav-bottom-horizontal::-webkit-scrollbar {
    height: 4px !important;
  }

  .nav-bottom.nav-scroll-mobile::-webkit-scrollbar-track,
  .nav-bottom.nav-bottom-horizontal::-webkit-scrollbar-track {
    background: rgba(255,255,255,.12) !important;
  }

  .nav-bottom.nav-scroll-mobile::-webkit-scrollbar-thumb,
  .nav-bottom.nav-bottom-horizontal::-webkit-scrollbar-thumb {
    background: rgba(232,184,75,.92) !important;
    border-radius: 999px !important;
  }

  .nav-bottom.nav-scroll-mobile a,
  .nav-bottom.nav-bottom-horizontal a {
    flex: 0 0 84px !important;
    width: 84px !important;
    min-width: 84px !important;
    max-width: 84px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 56px !important;
    padding: 5px 4px 4px !important;
    border-radius: 14px !important;
    font-size: .68rem !important;
    line-height: 1.08 !important;
    white-space: nowrap !important;
  }

  .nav-bottom.nav-scroll-mobile a span,
  .nav-bottom.nav-bottom-horizontal a span {
    display: block !important;
    width: 76px !important;
    max-width: 76px !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .nav-bottom.nav-scroll-mobile .bi,
  .nav-bottom.nav-bottom-horizontal .bi {
    flex: 0 0 auto !important;
    font-size: 1.18rem !important;
    margin-bottom: .22rem !important;
  }
}

@media (max-width: 390px) {
  .nav-bottom.nav-scroll-mobile a,
  .nav-bottom.nav-bottom-horizontal a {
    flex-basis: 78px !important;
    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;
    font-size: .64rem !important;
  }
  .nav-bottom.nav-scroll-mobile a span,
  .nav-bottom.nav-bottom-horizontal a span {
    width: 70px !important;
    max-width: 70px !important;
  }
}


/* HOTFIX 15 — UX: Jornada como hub + navegação consistente desktop/mobile */
@media (min-width: 992px) {
  .nav-lateral {
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .sidebar-brand { flex: 0 0 auto !important; }
  .sidebar-nav {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-right: 6px !important;
    padding-bottom: 18px !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(232,184,75,.9) rgba(255,255,255,.12) !important;
  }
  .sidebar-nav::-webkit-scrollbar { width: 7px !important; }
  .sidebar-nav::-webkit-scrollbar-track { background: rgba(255,255,255,.12) !important; border-radius: 999px !important; }
  .sidebar-nav::-webkit-scrollbar-thumb { background: rgba(232,184,75,.9) !important; border-radius: 999px !important; }
  .sidebar-user {
    flex: 0 0 auto !important;
    margin-top: 0 !important;
    padding-top: .85rem !important;
    background: var(--azul) !important;
  }
}
.sidebar-nav a.nav-subitem {
  padding-left: 2.15rem;
  font-size: .93rem;
  color: rgba(255,255,255,.68);
}
.sidebar-nav a.nav-subitem i { font-size: .95rem; opacity: .9; }
.sidebar-nav a.nav-subitem.ativo,
.sidebar-nav a.nav-subitem.active,
.sidebar-nav a.nav-subitem:hover { color: var(--dourado-cl); }

.jornada-hub-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: linear-gradient(135deg, var(--azul) 0%, #17345D 62%, var(--verde) 145%);
  color: #fff;
  border-left: 5px solid var(--dourado);
  border-radius: 26px;
  padding: clamp(22px, 3vw, 34px);
  box-shadow: 0 20px 50px rgba(30,63,110,.16);
}
.jornada-hub-hero h2 { color: #fff; font-family: Lora, serif; font-size: clamp(2rem, 4vw, 3.15rem); margin: 0 0 .45rem; }
.jornada-hub-hero p { color: rgba(255,255,255,.82); margin: 0; max-width: 760px; font-size: 1.02rem; }
.jornada-hub-hero .eyebrow { color: var(--dourado-cl); }
.jornada-stat-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.jornada-stat-card {
  display: grid;
  grid-template-columns: 46px minmax(0,1fr);
  grid-template-areas: "icon label" "icon value";
  gap: 0 12px;
  align-items: center;
  background: #fff;
  border: 1px solid var(--brd-s);
  border-left: 4px solid var(--dourado);
  border-radius: 18px;
  padding: 16px;
  color: var(--txt) !important;
  text-decoration: none !important;
  box-shadow: 0 12px 30px rgba(30,63,110,.06);
  transition: .15s ease;
}
.jornada-stat-card:hover { transform: translateY(-1px); box-shadow: 0 16px 36px rgba(30,63,110,.1); }
.jornada-stat-card i { grid-area: icon; width: 46px; height: 46px; border-radius: 15px; background: var(--azul-cl); color: var(--azul); display:grid; place-items:center; font-size:1.2rem; }
.jornada-stat-card span { grid-area: label; color: var(--txt-s); font-size: .75rem; text-transform: uppercase; letter-spacing:.08em; font-weight: 800; }
.jornada-stat-card strong { grid-area: value; color: var(--azul); font-family: Lora, serif; font-size: 1.75rem; line-height: 1.05; }
.jornada-lista-limpa .list-group-item { border-color: var(--brd-s); padding: 14px 0; }
.jornada-lista-limpa .list-group-item strong { display:block; color: var(--txt); }
.jornada-lista-limpa .list-group-item span { display:block; color: var(--txt-s); font-size:.9rem; margin-top:2px; }
@media (max-width: 991.98px) {
  .jornada-hub-hero { display:block; border-radius:22px; }
  .jornada-hub-hero .btn { width:100%; margin-top:18px; }
  .jornada-stat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap:.75rem; }
  .jornada-stat-card { padding: 14px; grid-template-columns: 40px minmax(0,1fr); }
  .jornada-stat-card i { width:40px; height:40px; }
  .jornada-stat-card strong { font-size:1.45rem; }
}
@media (max-width: 420px) {
  .jornada-stat-grid { grid-template-columns: 1fr; }
}


/* BLOCO 1 — Central Pastor: histórico de perguntas e navegação contextual */
.pastor-center-hero {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
  align-items: center;
  background: linear-gradient(135deg, var(--azul) 0%, #17345D 68%, var(--verde) 145%);
  color: #fff;
  border-left: 5px solid var(--dourado);
  border-radius: 26px;
  padding: clamp(22px, 3vw, 34px);
  box-shadow: 0 20px 50px rgba(30,63,110,.16);
}
.pastor-center-hero h2 {
  margin: 0 0 .35rem;
  color: #fff;
  font-family: Lora, Georgia, serif;
  font-size: clamp(2rem, 4vw, 3.05rem);
}
.pastor-center-hero p { margin: 0; max-width: 760px; color: rgba(255,255,255,.83); font-size: 1.04rem; }
.pastor-center-hero .eyebrow { color: var(--dourado-cl); }
.pastor-center-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .65rem; }
.pastor-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .9rem;
}
.pastor-summary-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  min-height: 86px;
  padding: 1.05rem 1.1rem;
  background: #fff;
  border: 1px solid var(--brd-s);
  border-left: 4px solid var(--dourado);
  border-radius: 18px;
  text-decoration: none;
  color: var(--txt);
  box-shadow: 0 12px 30px rgba(30,63,110,.06);
}
.pastor-summary-card span { font-weight: 800; color: var(--txt-s); letter-spacing: .04em; text-transform: uppercase; font-size: .74rem; }
.pastor-summary-card strong { font-family: Lora, Georgia, serif; font-size: 2rem; color: var(--azul); line-height: 1; }
.pastor-summary-card.active,
.pastor-summary-card:hover { border-color: rgba(200,146,42,.55); transform: translateY(-1px); color: var(--txt); }
.pastor-question-panel {
  background: #fff;
  border: 1px solid var(--brd-s);
  border-radius: 24px;
  padding: clamp(18px, 2.2vw, 26px);
  box-shadow: 0 18px 45px rgba(30,63,110,.07);
}
.pastor-thread-list { display: grid; gap: 1rem; }
.pastor-thread-card {
  border: 1px solid var(--brd-s);
  border-radius: 20px;
  padding: 1.1rem;
  background: linear-gradient(180deg, #fff 0%, rgba(247,243,237,.45) 100%);
}
.pastor-thread-card.is-focused {
  border-color: var(--dourado);
  box-shadow: 0 0 0 4px rgba(200,146,42,.16), 0 16px 42px rgba(30,63,110,.1);
}
.pastor-thread-head {
  display: flex;
  justify-content: space-between;
  gap: .8rem;
  align-items: flex-start;
  margin-bottom: .85rem;
}
.pastor-context-pill {
  display: inline-flex;
  margin-top: .35rem;
  padding: .22rem .62rem;
  border-radius: 999px;
  background: var(--azul-cl);
  color: var(--azul);
  font-size: .82rem;
  font-weight: 700;
}
.pastor-message {
  border-radius: 16px;
  padding: .9rem 1rem;
  margin-top: .75rem;
}
.pastor-message p { margin: .15rem 0 0; }
.pastor-message-label { font-size: .72rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 900; color: var(--txt-s); }
.pastor-message-user { background: #fff; border: 1px solid var(--brd-s); }
.pastor-message-response { background: var(--verde-cl); border: 1px solid rgba(74,122,109,.22); }
.pastor-response-meta { margin-top: .65rem; font-size: .84rem; color: var(--txt-s); }
.pastor-waiting {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  margin-top: .75rem;
  padding: .55rem .75rem;
  border-radius: 999px;
  background: #FFF8EC;
  color: #8B6914;
  font-weight: 700;
  font-size: .9rem;
}
.pastor-empty i { display: block; font-size: 2rem; color: var(--dourado); margin-bottom: .5rem; }
.mobile-nav-badge,
.nav-badge {
  margin-left: auto;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: var(--rv);
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
}
.mobile-nav-badge {
  position: absolute;
  top: 4px;
  right: 11px;
  margin-left: 0;
}
@media (max-width: 991.98px) {
  .pastor-center-hero { align-items: flex-start; flex-direction: column; border-radius: 22px; }
  .pastor-center-actions { width: 100%; }
  .pastor-center-actions .btn { flex: 1 1 160px; }
  .pastor-summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pastor-thread-head { flex-direction: column; }
  .nav-bottom.nav-scroll-mobile a,
  .nav-bottom.nav-bottom-horizontal a { position: relative; }
}
@media (max-width: 520px) {
  .pastor-summary-grid { grid-template-columns: 1fr; }
  .pastor-center-hero p { font-size: .96rem; }
}
.admin-content .v2-card.is-focused,
.v2-card.is-focused {
  border-color: var(--dourado,#C8922A) !important;
  box-shadow: 0 0 0 4px rgba(200,146,42,.16), 0 18px 44px rgba(30,63,110,.12) !important;
}

/* HOTFIX 17 — BLOCO 2: Navegação definitiva desktop/mobile.
   Regra final, deliberadamente no fim do arquivo para vencer hotfixes antigos sem reabrir conflitos. */
@media (min-width: 992px) {
  html, body.app-body { min-height: 100%; overflow-x: hidden; }
  .member-shell { min-height: 100vh; display: flex; }
  .nav-lateral.desktop-only {
    position: fixed !important;
    left: 0 !important;
    top: 0 !important;
    bottom: 0 !important;
    width: 270px !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
    padding: 1.25rem .95rem .85rem !important;
    border-right: 4px solid var(--dourado, #C8922A) !important;
  }
  .nav-lateral.desktop-only .sidebar-brand {
    flex: 0 0 auto !important;
    margin: 0 0 .75rem !important;
    padding: .2rem .35rem 1rem !important;
  }
  .nav-lateral.desktop-only .sidebar-nav {
    display: block !important;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: .15rem .25rem 1rem 0 !important;
    margin: 0 -.15rem 0 0 !important;
    overscroll-behavior: contain !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(232,184,75,.95) rgba(255,255,255,.12) !important;
  }
  .nav-lateral.desktop-only .sidebar-nav::-webkit-scrollbar { width: 7px !important; }
  .nav-lateral.desktop-only .sidebar-nav::-webkit-scrollbar-track { background: rgba(255,255,255,.12) !important; border-radius: 999px !important; }
  .nav-lateral.desktop-only .sidebar-nav::-webkit-scrollbar-thumb { background: rgba(232,184,75,.95) !important; border-radius: 999px !important; }
  .nav-lateral.desktop-only .sidebar-nav a {
    min-height: 42px !important;
    margin-bottom: .18rem !important;
    padding: .66rem .72rem !important;
  }
  .nav-lateral.desktop-only .sidebar-nav a.nav-subitem {
    min-height: 38px !important;
    padding-left: 2.15rem !important;
  }
  .nav-lateral.desktop-only .nav-section-label {
    margin: 15px 14px 6px !important;
  }
  .nav-lateral.desktop-only .sidebar-user {
    flex: 0 0 auto !important;
    margin-top: .75rem !important;
    padding: .8rem .75rem .1rem !important;
    background: var(--azul, #1E3F6E) !important;
    border-top: 1px solid rgba(255,255,255,.14) !important;
  }
  .member-main { margin-left: 270px !important; min-width: 0 !important; }
}

@media (max-width: 991.98px) {
  body.app-body, body {
    padding-bottom: calc(86px + env(safe-area-inset-bottom)) !important;
    overflow-x: hidden !important;
  }
  .nav-bottom.nav-scroll-mobile,
  .nav-bottom.nav-bottom-horizontal {
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    z-index: 1080 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: stretch !important;
    gap: 6px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
    scroll-snap-type: x proximity !important;
    background: var(--azul, #1E3F6E) !important;
    border-top: 2px solid var(--dourado, #C8922A) !important;
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) !important;
    scrollbar-width: thin !important;
    scrollbar-color: rgba(232,184,75,.95) rgba(255,255,255,.12) !important;
  }
  .nav-bottom.nav-scroll-mobile::-webkit-scrollbar,
  .nav-bottom.nav-bottom-horizontal::-webkit-scrollbar { height: 4px !important; }
  .nav-bottom.nav-scroll-mobile::-webkit-scrollbar-track,
  .nav-bottom.nav-bottom-horizontal::-webkit-scrollbar-track { background: rgba(255,255,255,.12) !important; }
  .nav-bottom.nav-scroll-mobile::-webkit-scrollbar-thumb,
  .nav-bottom.nav-bottom-horizontal::-webkit-scrollbar-thumb { background: rgba(232,184,75,.95) !important; border-radius: 999px !important; }
  .nav-bottom.nav-scroll-mobile a,
  .nav-bottom.nav-bottom-horizontal a {
    flex: 0 0 86px !important;
    width: 86px !important;
    min-width: 86px !important;
    max-width: 86px !important;
    min-height: 58px !important;
    scroll-snap-align: start !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    padding: 6px 4px 5px !important;
    border-radius: 15px !important;
    color: rgba(255,255,255,.72) !important;
    text-decoration: none !important;
    font-size: .68rem !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
  }
  .nav-bottom.nav-scroll-mobile a:hover,
  .nav-bottom.nav-bottom-horizontal a:hover,
  .nav-bottom.nav-scroll-mobile a.ativo,
  .nav-bottom.nav-bottom-horizontal a.ativo,
  .nav-bottom.nav-scroll-mobile a.active,
  .nav-bottom.nav-bottom-horizontal a.active {
    background: rgba(255,255,255,.10) !important;
    color: var(--dourado-cl, #E8B84B) !important;
  }
  .nav-bottom.nav-scroll-mobile a span,
  .nav-bottom.nav-bottom-horizontal a span {
    display: block !important;
    width: 78px !important;
    max-width: 78px !important;
    text-align: center !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }
  .nav-bottom.nav-scroll-mobile .bi,
  .nav-bottom.nav-bottom-horizontal .bi {
    flex: 0 0 auto !important;
    font-size: 1.18rem !important;
    margin-bottom: .15rem !important;
  }
  .mobile-nav-badge {
    position: absolute !important;
    top: 4px !important;
    right: 10px !important;
  }
}

@media (max-width: 390px) {
  .nav-bottom.nav-scroll-mobile a,
  .nav-bottom.nav-bottom-horizontal a {
    flex-basis: 80px !important;
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;
    font-size: .64rem !important;
  }
  .nav-bottom.nav-scroll-mobile a span,
  .nav-bottom.nav-bottom-horizontal a span {
    width: 72px !important;
    max-width: 72px !important;
  }
}

/* HOTFIX 18 — BLOCO 3: Vídeos mobile premium e heroes responsivos.
   Escopo: somente /videos.php e componentes de vídeo. Não altera Bíblia, Pastor nem navegação. */
.videos-page {
  width: 100%;
  max-width: 1240px;
  margin: 0 auto;
}
.video-hero-v2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  align-items: stretch;
  gap: 1.25rem;
  margin: 0 0 1.25rem;
  padding: 1.45rem;
  border-radius: 26px;
  background: linear-gradient(135deg, var(--azul, #1E3F6E), #17365f);
  color: #fff;
  border: 1px solid rgba(255,255,255,.12);
  border-left: 5px solid var(--dourado, #C8922A);
  box-shadow: 0 18px 42px rgba(26,39,68,.12);
  overflow: hidden;
}
.video-hero-v2 .eyebrow { color: var(--dourado-cl, #E8B84B); }
.video-hero-copy h2 {
  color: #fff;
  font-size: clamp(1.65rem, 3.6vw, 2.65rem);
  line-height: 1.08;
  margin: .35rem 0 .65rem;
  max-width: 780px;
}
.video-hero-copy p {
  color: rgba(255,255,255,.84);
  font-size: 1.05rem;
  max-width: 760px;
  margin: 0 0 1.1rem;
}
.video-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .65rem;
}
.video-hero-panel {
  display: grid;
  grid-template-columns: 1fr;
  gap: .65rem;
  align-self: stretch;
}
.video-hero-panel div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: .85rem 1rem;
  border-radius: 18px;
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.14);
}
.video-hero-panel span {
  color: rgba(255,255,255,.72);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.video-hero-panel strong {
  color: #fff;
  font-family: 'Lora', serif;
  font-size: 1.8rem;
  line-height: 1;
}
.video-filter-row {
  display: flex;
  align-items: center;
  gap: .65rem;
  flex-wrap: wrap;
  margin: 0 0 1.15rem;
}
.video-filter-row span {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  background: #fff;
  color: var(--azul, #1E3F6E);
  border: 1px solid var(--brd-s, #EDE8E0);
  border-radius: 999px;
  padding: .5rem .78rem;
  font-size: .84rem;
  font-weight: 800;
  box-shadow: 0 2px 8px rgba(26,39,68,.05);
}
.video-grid-v2 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.15rem;
}
.video-card-v2 {
  border-radius: 22px;
  border: 1px solid var(--brd-s, #EDE8E0);
  box-shadow: 0 12px 30px rgba(30,63,110,.07);
  transition: transform .18s ease, box-shadow .18s ease;
}
.video-card-v2:hover {
  transform: translateY(-2px);
  box-shadow: 0 18px 44px rgba(30,63,110,.12);
}
.video-thumb-v2 img {
  aspect-ratio: 16 / 9;
  object-fit: cover;
}
.video-thumb-v2 .video-play {
  width: 62px;
  height: 62px;
  background: rgba(30,63,110,.9);
  border-color: rgba(255,255,255,.9);
  box-shadow: 0 10px 30px rgba(0,0,0,.22);
}
.video-card-body-v2 {
  gap: .85rem;
  padding: 1.05rem;
}
.video-card-body-v2 h3 {
  color: var(--azul, #1E3F6E);
  font-size: 1.18rem;
  line-height: 1.2;
}
.video-card-body-v2 p {
  font-size: .95rem;
  line-height: 1.55;
}
.video-card-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .65rem;
  margin-top: auto;
}
.video-card-actions .btn {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.video-empty-v2 {
  margin-top: .75rem;
  padding: 2.4rem 1.4rem;
}
.video-empty-v2 i {
  color: var(--dourado, #C8922A);
  display: block;
  font-size: 2.5rem;
  margin-bottom: .75rem;
}
.video-watch-modal-v2 .modal-content {
  border: 0;
  border-radius: 22px;
  overflow: hidden;
}
.video-watch-modal-v2 .modal-header {
  align-items: flex-start;
  border-bottom: 1px solid var(--brd-s, #EDE8E0);
  padding: 1rem 1.1rem;
}
.video-watch-modal-v2 .modal-title {
  color: var(--azul, #1E3F6E);
  font-size: 1.28rem;
}
.video-modal-description {
  margin: 1rem 0 0;
  color: var(--txt-s, #5A6882);
  line-height: 1.65;
}
.video-modal-footer-v2 {
  border-top: 1px solid var(--brd-s, #EDE8E0);
  justify-content: space-between;
  gap: .65rem;
}
@media (max-width: 1120px) {
  .video-hero-v2 { grid-template-columns: 1fr; }
  .video-hero-panel { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .video-grid-v2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  .member-content:has(.videos-page) {
    padding-left: 1rem !important;
    padding-right: 1rem !important;
  }
  .video-hero-v2 {
    margin: 0 0 1rem;
    padding: 1.15rem;
    border-radius: 22px;
    gap: 1rem;
  }
  .video-hero-copy h2 {
    font-size: clamp(1.55rem, 8vw, 2.05rem);
    line-height: 1.12;
    overflow-wrap: anywhere;
  }
  .video-hero-copy p {
    font-size: .98rem;
    line-height: 1.55;
  }
  .video-hero-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .video-hero-panel {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .5rem;
  }
  .video-hero-panel div {
    display: grid;
    justify-items: center;
    text-align: center;
    gap: .35rem;
    padding: .75rem .45rem;
    border-radius: 15px;
  }
  .video-hero-panel span {
    font-size: .62rem;
    line-height: 1.15;
  }
  .video-hero-panel strong { font-size: 1.45rem; }
  .video-filter-row {
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: .2rem;
    scrollbar-width: none;
  }
  .video-filter-row::-webkit-scrollbar { display: none; }
  .video-filter-row span {
    flex: 0 0 auto;
    white-space: nowrap;
  }
  .video-grid-v2 { grid-template-columns: 1fr; gap: 1rem; }
  .video-card-v2 { border-radius: 20px; }
  .video-card-body-v2 { padding: 1rem; }
  .video-card-actions { grid-template-columns: 1fr; }
  .video-watch-modal-v2 .modal-dialog {
    margin: 0;
    max-width: 100%;
    min-height: 100dvh;
  }
  .video-watch-modal-v2 .modal-content {
    min-height: 100dvh;
    border-radius: 0;
  }
  .video-watch-modal-v2 .modal-body {
    padding: 1rem;
  }
  .video-modal-footer-v2 {
    position: sticky;
    bottom: 0;
    background: #fff;
  }
  .video-modal-footer-v2 .btn {
    flex: 1 1 auto;
  }
}
@media (max-width: 390px) {
  .video-hero-v2 { padding: 1rem; }
  .video-hero-panel { grid-template-columns: 1fr; }
  .video-hero-panel div {
    display: flex;
    justify-content: space-between;
    text-align: left;
  }
}

/* HOTFIX 19 - Bloco 4: Dashboard orientado por tarefa */
.dashboard-v2-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto minmax(220px,320px);
  align-items:center;
  gap:1.25rem;
  background:#1E3F6E;
  color:#fff;
  border-radius:22px;
  padding:1.55rem;
  border-left:4px solid #C8922A;
}
.dashboard-v2-hero h2{color:#fff;font-size:clamp(1.75rem,3vw,2.75rem);line-height:1.15;}
.dashboard-v2-hero p{color:rgba(255,255,255,.86);max-width:780px;}
.dashboard-v2-hero .eyebrow{color:#E8B84B;}
.dashboard-v2-hero-actions{display:flex;gap:.65rem;flex-wrap:wrap;justify-content:flex-end;}
.dashboard-v2-hero .streak-card{min-width:220px;}
.dashboard-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.1rem;}
.dashboard-section-head.compact{margin-bottom:.9rem;}
.dashboard-section-head h3{line-height:1.15;}
.dashboard-today-card{padding:1.25rem;}
.dashboard-task-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.85rem;}
.dashboard-task-card{display:flex;flex-direction:column;gap:.45rem;background:#fff;border:1px solid #EDE8E0;border-radius:18px;padding:1rem;text-decoration:none;color:#1A2744;min-height:128px;box-shadow:0 10px 28px rgba(26,39,68,.055);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.dashboard-task-card:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(26,39,68,.09);border-color:#D8CDBE;color:#1A2744;}
.dashboard-task-card strong{font-weight:800;font-size:1rem;}
.dashboard-task-card small{color:#5A6882;font-weight:600;line-height:1.35;}
.dashboard-task-card.done{border-color:rgba(74,122,109,.35);background:linear-gradient(180deg,#fff,#EFFAF7);}
.dashboard-task-card.pending{border-color:rgba(200,146,42,.45);background:linear-gradient(180deg,#fff,#FFF8EC);}
.dashboard-task-card.muted{opacity:.82;}
.dashboard-task-icon{width:42px;height:42px;border-radius:15px;background:#EEF3FA;color:#1E3F6E;display:grid;place-items:center;font-size:1.15rem;}
.dashboard-metrics-clean{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;}
.dashboard-metric-card{display:flex;align-items:center;gap:.9rem;background:#fff;border:1px solid #EDE8E0;border-left:4px solid #C8922A;border-radius:18px;padding:1rem 1.1rem;text-decoration:none;color:#1A2744;box-shadow:0 12px 30px rgba(26,39,68,.06);}
.dashboard-metric-card:hover{transform:translateY(-1px);box-shadow:0 16px 34px rgba(26,39,68,.09);color:#1A2744;}
.dashboard-metric-icon{width:46px;height:46px;border-radius:16px;background:#EEF3FA;color:#1E3F6E;display:grid;place-items:center;font-size:1.25rem;flex:none;}
.dashboard-metric-card span{display:block;color:#5A6882;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
.dashboard-metric-card strong{display:block;color:#1E3F6E;font-family:Lora,serif;font-size:1.8rem;line-height:1.05;}
.dashboard-metric-card small{display:block;color:#5A6882;font-size:.78rem;font-weight:600;}
.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:1.25rem;align-items:stretch;}
.dashboard-side-stack{display:grid;gap:1.25rem;}
.dashboard-mini-panel{min-height:0;}
.dashboard-feed-list{display:grid;gap:.7rem;}
.dashboard-feed-item{display:flex;align-items:flex-start;gap:.7rem;padding:.75rem;border:1px solid #EDE8E0;border-radius:14px;background:#fff;text-decoration:none;color:#1A2744;}
.dashboard-feed-item:hover{background:#F7F3ED;color:#1A2744;}
.dashboard-feed-item>i{color:#C8922A;font-size:1.05rem;margin-top:.1rem;}
.dashboard-feed-item span{display:block;min-width:0;}
.dashboard-feed-item strong{display:block;font-weight:800;line-height:1.25;}
.dashboard-feed-item small{display:block;color:#5A6882;font-size:.82rem;line-height:1.35;margin-top:.15rem;}
.dashboard-video-list{display:grid;gap:.85rem;}
.dashboard-video-item{display:flex;align-items:center;gap:.9rem;padding:.85rem;border:1px solid #EDE8E0;border-radius:16px;background:#fff;text-decoration:none;color:#1A2744;}
.dashboard-video-item:hover{background:#F7F3ED;color:#1A2744;}
.dashboard-video-thumb{width:72px;height:46px;border-radius:13px;background:#1E3F6E;color:#fff;display:grid;place-items:center;flex:none;font-size:1.35rem;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12);}
.dashboard-video-item strong{display:block;font-weight:800;line-height:1.25;}
.dashboard-video-item small{display:block;color:#5A6882;line-height:1.35;margin-top:.15rem;}
.daily-reading-box{background:#EEF3FA;border:1px solid #D8E2F0;border-radius:16px;padding:1rem;}
.daily-reading-box span{display:block;color:#C8922A;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800;}
.daily-reading-box strong{display:block;font-size:1.15rem;color:#1E3F6E;}
.daily-reading-box p{margin:.3rem 0 0;color:#5A6882;}
@media(max-width:1200px){
  .dashboard-task-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
  .dashboard-v2-hero{grid-template-columns:minmax(0,1fr) minmax(220px,300px);}
  .dashboard-v2-hero-actions{grid-column:1 / -1;justify-content:flex-start;order:3;}
}
@media(max-width:992px){
  .dashboard-main-grid{grid-template-columns:1fr;}
  .dashboard-metrics-clean{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:768px){
  .dashboard-v2-hero{grid-template-columns:1fr;padding:1.25rem;border-radius:20px;margin-left:0;margin-right:0;}
  .dashboard-v2-hero .streak-card{min-width:0;width:100%;}
  .dashboard-v2-hero-actions{order:initial;}
  .dashboard-section-head{align-items:flex-start;flex-direction:column;}
  .dashboard-task-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;}
  .dashboard-task-card{min-height:118px;padding:.9rem;}
}
@media(max-width:520px){
  .dashboard-task-grid{grid-template-columns:1fr;}
  .dashboard-metrics-clean{grid-template-columns:1fr;}
  .dashboard-video-item{align-items:flex-start;}
  .dashboard-video-thumb{width:58px;height:42px;}
}

/* HOTFIX 20 — Bloco 5: hubs com UX de área, separação de módulos e telas de estudo */
.hub-hero {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 22px;
  border-radius: 28px;
  padding: clamp(22px, 4vw, 34px);
  color: #fff;
  background: linear-gradient(135deg, #1E3F6E 0%, #132845 62%, #4A7A6D 120%);
  box-shadow: 0 22px 55px rgba(30,63,110,.17);
}
.hub-hero:after {
  content: "";
  position: absolute;
  right: -90px;
  top: -90px;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: rgba(232,184,75,.16);
}
.hub-hero-copy,
.hub-hero-actions { position: relative; z-index: 1; }
.hub-hero-copy { max-width: 780px; }
.hub-hero .eyebrow { color: var(--dourado-cl,#E8B84B); }
.hub-hero h2 { color:#fff; font-family:Lora,serif; font-size:clamp(2rem,4vw,3.35rem); margin:0 0 .45rem; line-height:1.04; }
.hub-hero p { color:rgba(255,255,255,.82); margin:0; font-size:1.02rem; line-height:1.55; }
.hub-hero-actions { display:flex; flex-wrap:wrap; gap:10px; justify-content:flex-end; min-width:220px; }
.hub-hero-actions .btn { border-radius: 999px; font-weight: 800; }
.hub-hero-estudar { background: linear-gradient(135deg, #1E3F6E 0%, #2D5A9E 58%, #6B4F9E 130%); }
.hub-hero-oracao { background: linear-gradient(135deg, #1E3F6E 0%, #214B7F 50%, #4A7A6D 130%); }
.hub-hero-jornada { background: linear-gradient(135deg, #1E3F6E 0%, #244A75 50%, #C8922A 140%); }
.hub-hero-discipulado { background: linear-gradient(135deg, #1E3F6E 0%, #132845 55%, #2D5A9E 130%); }
.hub-today-grid,
.hub-stat-grid {
  display:grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
}
.hub-today-card,
.hub-stat-card {
  display:flex;
  gap:14px;
  align-items:flex-start;
  background:#fff;
  border:1px solid var(--brd-s,#EDE8E0);
  border-radius:22px;
  padding:18px;
  text-decoration:none!important;
  color:var(--txt,#1A2744)!important;
  box-shadow:0 14px 34px rgba(30,63,110,.07);
  transition:.16s ease;
}
.hub-today-card:hover,
.hub-stat-card:hover { transform:translateY(-2px); box-shadow:0 18px 42px rgba(30,63,110,.11); }
.hub-today-card i,
.hub-stat-card i {
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:var(--azul-cl,#EEF3FA);
  color:var(--azul,#1E3F6E);
  font-size:1.25rem;
}
.hub-today-card.is-done i { background:var(--verde-cl,#EFFAF7); color:var(--verde,#4A7A6D); }
.hub-today-card strong,
.hub-stat-card strong { display:block; font-family:Lora,serif; color:var(--azul,#1E3F6E); font-size:1.1rem; line-height:1.15; }
.hub-today-card span,
.hub-stat-card span { display:block; color:var(--txt-s,#5A6882); font-size:.92rem; line-height:1.35; margin-top:3px; }
.hub-stat-card { flex-direction:column; gap:10px; }
.hub-stat-card strong { font-size:1.85rem; }
.hub-section-card {
  background:#fff;
  border:1px solid var(--brd-s,#EDE8E0);
  border-radius:26px;
  padding:clamp(18px,3vw,26px);
  box-shadow:0 16px 40px rgba(30,63,110,.07);
}
.hub-section-head {
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
  margin-bottom:18px;
}
.hub-section-head h3 { font-family:Lora,serif; color:var(--azul,#1E3F6E); margin:0; }
.module-grid-ux .module-card-premium small {
  display:block;
  margin-top:7px;
  color:#7B879D;
  font-size:.82rem;
  line-height:1.28;
}
.hub-inline-link {
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:1px solid var(--brd-s,#EDE8E0);
  border-radius:999px;
  padding:8px 12px;
  text-decoration:none!important;
  background:var(--azul-cl,#EEF3FA);
  color:var(--azul,#1E3F6E)!important;
  font-weight:800;
}
.hub-clean-list { display:grid; gap:10px; }
.hub-clean-item {
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:13px 0;
  border-bottom:1px solid var(--brd-s,#EDE8E0);
  text-decoration:none!important;
  color:var(--txt,#1A2744)!important;
}
.hub-clean-item:last-child { border-bottom:0; }
.hub-clean-item i { color:var(--dourado,#C8922A); font-size:1.1rem; margin-top:2px; }
.hub-clean-item strong { display:block; }
.hub-clean-item small { display:block; color:var(--txt-s,#5A6882); }
.hub-note-card {
  display:flex;
  gap:14px;
  align-items:flex-start;
  background:var(--azul-cl,#EEF3FA);
  border:1px solid rgba(45,90,158,.13);
  border-radius:20px;
  padding:18px;
}
.hub-note-card i { color:var(--azul,#1E3F6E); font-size:1.35rem; margin-top:2px; }
.hub-note-card strong { color:var(--azul,#1E3F6E); }
.hub-note-card p { margin:.3rem 0 0; color:var(--txt-s,#5A6882); }
.hub-tabs {
  display:flex;
  gap:8px;
  overflow-x:auto;
  flex-wrap:nowrap;
  -webkit-overflow-scrolling:touch;
  padding-bottom:3px;
}
.hub-tabs .nav-link { white-space:nowrap; border-radius:999px; font-weight:800; color:var(--azul,#1E3F6E); background:#fff; border:1px solid var(--brd-s,#EDE8E0); }
.hub-tabs .nav-link.active { background:var(--azul,#1E3F6E); color:#fff; border-color:var(--azul,#1E3F6E); }
.hub-sticky-form { position:sticky; top:90px; }
.hub-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  background:#FFF8EC;
  color:#946515;
  padding:4px 10px;
  font-size:.78rem;
  font-weight:800;
}
.prayer-card-v2 p { color:var(--txt,#1A2744); }
.study-result-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:1rem;
}
.study-result-card {
  display:block;
  background:#fff;
  border:1px solid var(--brd-s,#EDE8E0);
  border-radius:20px;
  padding:18px;
  color:var(--txt,#1A2744)!important;
  box-shadow:0 12px 30px rgba(30,63,110,.06);
}
.study-result-card h3 { font-family:Lora,serif; color:var(--azul,#1E3F6E); margin:.65rem 0 .55rem; }
.study-result-card p { margin:.55rem 0 0; }
.study-result-card small { display:block; margin-top:10px; color:var(--txt-s,#5A6882); }
.study-base-verse {
  font-family:Lora,serif;
  font-size:1.1rem;
  line-height:1.8;
  border-left:4px solid var(--dourado,#C8922A);
  background:#FCFAF6;
  padding:14px 16px;
  border-radius:0 16px 16px 0;
}
@media(max-width: 1199.98px) {
  .hub-today-grid,
  .hub-stat-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width: 767.98px) {
  .hub-hero { display:block; border-radius:22px; padding:22px; margin-left:-2px; margin-right:-2px; }
  .hub-hero-actions { justify-content:flex-start; margin-top:18px; min-width:0; }
  .hub-hero-actions .btn { width:100%; }
  .hub-today-grid,
  .hub-stat-grid { grid-template-columns:1fr; gap:.8rem; }
  .hub-today-card,
  .hub-stat-card { border-radius:18px; padding:15px; }
  .hub-section-card { border-radius:22px; padding:18px; }
  .hub-section-head { display:block; }
  .hub-sticky-form { position:static; }
  .study-result-grid { grid-template-columns:1fr; }
}


/* HOTFIX 21 — Bloco 6: shell mobile, login e navegação flutuante unificada.
   Escopo: login público, footer mobile do app e estabilidade da navegação. */
:root {
  --nj-mobile-shell-gap: 12px;
  --nj-mobile-nav-height: 74px;
  --nj-vv-bottom: 0px;
}

@media (max-width: 768px) {
  body.public-body,
  body.auth-body {
    min-height: 100svh !important;
    padding-bottom: 0 !important;
  }

  .auth-wrap {
    min-height: auto !important;
    display: block !important;
    place-items: initial !important;
    padding: clamp(1.05rem, 3.6vh, 1.85rem) 1.15rem 2rem !important;
  }

  .auth-card {
    margin: 0 auto !important;
    width: min(100%, 430px) !important;
    border-radius: 22px !important;
    padding: 1.55rem !important;
  }

  .auth-logo img {
    margin-bottom: .9rem !important;
  }

  .public-navbar .container {
    min-height: 76px !important;
  }
}

@media (max-width: 991.98px) {
  body.app-body {
    padding-bottom: calc(var(--nj-mobile-nav-height) + 34px + env(safe-area-inset-bottom, 0px)) !important;
    overflow-x: hidden !important;
  }

  .member-content {
    padding-bottom: calc(var(--nj-mobile-nav-height) + 46px + env(safe-area-inset-bottom, 0px)) !important;
  }

  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav),
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) {
    position: fixed !important;
    left: 50% !important;
    right: auto !important;
    bottom: calc(var(--nj-mobile-shell-gap) + env(safe-area-inset-bottom, 0px)) !important;
    transform: translateX(-50%) !important;
    z-index: 1080 !important;
    width: min(680px, calc(100vw - 24px)) !important;
    max-width: calc(100vw - 24px) !important;
    height: var(--nj-mobile-nav-height) !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    align-items: center !important;
    gap: 6px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
    scroll-snap-type: x proximity !important;
    background: rgba(30, 63, 110, .96) !important;
    border: 1px solid rgba(232, 184, 75, .42) !important;
    border-top: 1px solid rgba(232, 184, 75, .42) !important;
    border-radius: 24px !important;
    box-shadow: 0 16px 36px rgba(10, 22, 42, .24) !important;
    padding: 7px 10px !important;
    backdrop-filter: blur(16px) !important;
    -webkit-backdrop-filter: blur(16px) !important;
    scrollbar-width: none !important;
  }

  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav)::before,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav)::before,
  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav)::after,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav)::after {
    content: none !important;
  }

  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav)::-webkit-scrollbar,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav)::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav) a,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) a {
    flex: 0 0 82px !important;
    width: 82px !important;
    min-width: 82px !important;
    max-width: 82px !important;
    min-height: 58px !important;
    height: 58px !important;
    scroll-snap-align: start !important;
    border-radius: 18px !important;
    color: rgba(255, 255, 255, .75) !important;
    padding: 6px 3px 5px !important;
    gap: 2px !important;
    font-size: .67rem !important;
    line-height: 1.05 !important;
  }

  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav) a.ativo,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) a.ativo,
  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav) a.active,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) a.active {
    background: rgba(255, 255, 255, .12) !important;
    color: var(--dourado-cl, #E8B84B) !important;
  }

  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav) a span,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) a span {
    width: 74px !important;
    max-width: 74px !important;
    text-align: center !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav) .bi,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) .bi {
    font-size: 1.16rem !important;
    margin: 0 0 .12rem !important;
  }

  .mobile-nav-badge {
    top: 5px !important;
    right: 7px !important;
  }
}

@media (max-width: 390px) {
  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav) a,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) a {
    flex-basis: 78px !important;
    width: 78px !important;
    min-width: 78px !important;
    max-width: 78px !important;
    font-size: .62rem !important;
  }

  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav) a span,
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) a span {
    width: 70px !important;
    max-width: 70px !important;
  }
}

/* HOTFIX 27 — Footer mobile fixo pela viewport dinâmica.
   Corrige o footer subindo quando a barra do navegador mobile recolhe/expande ao rolar. */
@media (max-width: 991.98px) {
  .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav),
  .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) {
    position: fixed !important;
    top: calc(100dvh - var(--nj-mobile-nav-height, 74px) - var(--nj-mobile-shell-gap, 12px) - env(safe-area-inset-bottom, 0px)) !important;
    bottom: auto !important;
    left: 50% !important;
    transform: translate3d(-50%, 0, 0) !important;
    will-change: transform, top !important;
  }

  @supports not (height: 100dvh) {
    .nav-bottom.nav-scroll-mobile:not(.admin-mobile-nav),
    .nav-bottom.nav-bottom-horizontal:not(.admin-mobile-nav) {
      top: auto !important;
      bottom: calc(var(--nj-mobile-shell-gap, 12px) + env(safe-area-inset-bottom, 0px)) !important;
    }
  }
}

/* =========================================================
   HOTFIX 28 — Bloco B: Navegação desktop/mobile definitiva
   Escopo: apenas navegação, acessibilidade dos módulos e scroll.
   ========================================================= */
@media (min-width: 992px) {
  .nav-lateral.desktop-only {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: 280px !important;
    height: 100vh !important;
    height: 100svh !important;
    display: flex !important;
    flex-direction: column !important;
    overflow: hidden !important;
  }
  .nav-lateral.desktop-only .sidebar-brand {
    flex: 0 0 auto !important;
  }
  .nav-lateral.desktop-only .sidebar-nav {
    flex: 1 1 auto !important;
    min-height: 0 !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch !important;
    padding-bottom: 1rem !important;
  }
  .nav-lateral.desktop-only .sidebar-user {
    flex: 0 0 auto !important;
  }
  .nav-lateral.desktop-only .sidebar-nav::-webkit-scrollbar { width: 7px !important; }
  .nav-lateral.desktop-only .sidebar-nav::-webkit-scrollbar-track { background: rgba(255,255,255,.12) !important; border-radius: 999px !important; }
  .nav-lateral.desktop-only .sidebar-nav::-webkit-scrollbar-thumb { background: rgba(232,184,75,.95) !important; border-radius: 999px !important; }
}

@media (max-width: 991.98px) {
  .nav-bottom.nav-scroll-mobile,
  .nav-bottom.nav-bottom-horizontal {
    position: fixed !important;
    left: max(12px, env(safe-area-inset-left)) !important;
    right: max(12px, env(safe-area-inset-right)) !important;
    bottom: calc(env(safe-area-inset-bottom) + 12px) !important;
    width: auto !important;
    max-width: none !important;
    height: 72px !important;
    padding: 8px 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior-x: contain !important;
    scroll-snap-type: x proximity !important;
    border-radius: 22px !important;
    z-index: 1200 !important;
    box-shadow: 0 18px 42px rgba(10, 31, 62, .24) !important;
  }
  .nav-bottom.nav-scroll-mobile::-webkit-scrollbar,
  .nav-bottom.nav-bottom-horizontal::-webkit-scrollbar { display: none !important; }
  .nav-bottom.nav-scroll-mobile,
  .nav-bottom.nav-bottom-horizontal { scrollbar-width: none !important; }
  .nav-bottom.nav-scroll-mobile a,
  .nav-bottom.nav-bottom-horizontal a {
    flex: 0 0 82px !important;
    min-width: 82px !important;
    max-width: 82px !important;
    height: 56px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 3px !important;
    scroll-snap-align: start !important;
    border-radius: 16px !important;
    position: relative !important;
    white-space: nowrap !important;
  }
  .nav-bottom.nav-scroll-mobile a span,
  .nav-bottom.nav-bottom-horizontal a span {
    display: block !important;
    width: 74px !important;
    max-width: 74px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    text-align: center !important;
    font-size: .7rem !important;
    line-height: 1.1 !important;
  }
  .mobile-nav-badge,
  .nav-bottom .mobile-nav-badge {
    position: absolute !important;
    top: 4px !important;
    right: 8px !important;
    min-width: 18px !important;
    height: 18px !important;
    padding: 0 5px !important;
    border-radius: 999px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: #B5392C !important;
    color: #fff !important;
    font-size: .62rem !important;
    font-weight: 800 !important;
  }
  body.app-body { padding-bottom: calc(100px + env(safe-area-inset-bottom)) !important; }
}
