/* ============================================================
   DESIGN SYSTEM — Criação de Riquezas (v8 dark)
   Inspirado no site Ricardo Fiorillo: fundo preto, azul royal,
   dourado, tipografia em caixa alta.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Inter:wght@400;500;600;700;800&display=swap');

:root {
  /* Cores — escuro */
  --c-preto: #0a0a0a;
  --c-preto-suave: #141414;
  --c-superficie: #1a1a1a;
  --c-superficie-2: #242424;
  --c-borda: rgba(255, 255, 255, 0.08);
  --c-borda-forte: rgba(255, 255, 255, 0.16);

  /* Cores — texto */
  --c-texto: #f0e9d8;
  --c-texto-suave: #b8b0a3;
  --c-texto-fraco: #6e6a62;

  /* Cores — marca */
  --c-azul: #1d56e8;
  --c-azul-claro: #4a7eff;
  --c-azul-escuro: #0e3aab;
  --c-dourado: #d9a530;
  --c-dourado-claro: #f0c560;

  /* Estados */
  --c-sucesso: #1ea571;
  --c-erro: #e8504a;
  --c-alerta: #d9a530;

  /* Tipografia */
  --f-display: 'Bebas Neue', 'Inter', sans-serif;
  --f-corpo: 'Inter', system-ui, sans-serif;

  --p-regular: 400;
  --p-medium: 500;
  --p-semibold: 600;
  --p-bold: 700;
  --p-black: 800;

  /* Espaçamento */
  --e-1: 4px;
  --e-2: 8px;
  --e-3: 16px;
  --e-4: 24px;
  --e-5: 32px;
  --e-6: 48px;
  --e-7: 64px;
  --e-8: 96px;

  /* Bordas */
  --r-pequena: 6px;
  --r-media: 10px;
  --r-grande: 14px;
  --r-pilula: 999px;

  /* Sombras */
  --sombra-azul: 0 8px 32px -8px rgba(29, 86, 232, 0.45);
  --sombra-card: 0 16px 48px -16px rgba(0, 0, 0, 0.6);
  --sombra-elevacao: 0 24px 64px -16px rgba(0, 0, 0, 0.7);

  --largura-max: 1200px;
  --largura-prosa: 720px;

  --t-rapida: 150ms cubic-bezier(0.4, 0, 0.2, 1);
  --t-padrao: 250ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* RESET */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--f-corpo);
  font-weight: var(--p-regular);
  font-size: 16px;
  line-height: 1.6;
  color: var(--c-texto);
  background: var(--c-preto);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  min-height: 100vh;
}
img, svg { display: block; max-width: 100%; height: auto; }
::selection { background: var(--c-azul); color: var(--c-texto); }

/* TIPOGRAFIA */
h1, h2, h3, h4, h5 {
  font-family: var(--f-display);
  font-weight: var(--p-regular);
  letter-spacing: 0.01em;
  line-height: 1.05;
  color: var(--c-texto);
  margin: 0 0 var(--e-3);
  text-transform: uppercase;
}
h1 { font-size: clamp(2.5rem, 5.5vw, 4.5rem); }
h2 { font-size: clamp(2rem, 4vw, 3rem); }
h3 { font-size: clamp(1.4rem, 2.4vw, 1.85rem); }
h4 { font-size: 1.15rem; }
p { margin: 0 0 var(--e-3); }
p:last-child { margin-bottom: 0; }
a { color: var(--c-azul-claro); text-decoration: none; transition: var(--t-rapida); }
a:hover { color: var(--c-dourado-claro); }
strong, b { font-weight: var(--p-semibold); color: var(--c-texto); }

.eyebrow {
  display: inline-block;
  font-family: var(--f-corpo);
  font-size: 0.72rem;
  font-weight: var(--p-bold);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-dourado);
  margin: 0 0 var(--e-3);
}
.lead {
  font-size: 1.15rem;
  line-height: 1.55;
  color: var(--c-texto-suave);
  font-weight: var(--p-regular);
}
.versiculo {
  font-family: var(--f-corpo);
  font-style: italic;
  font-size: 1.05rem;
  color: var(--c-texto-suave);
  line-height: 1.6;
  border-left: 2px solid var(--c-dourado);
  padding-left: var(--e-4);
  max-width: 580px;
}
.versiculo cite {
  display: block;
  font-style: normal;
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  margin-top: var(--e-2);
  color: var(--c-dourado);
  font-weight: var(--p-semibold);
}

/* LAYOUT */
.container {
  width: 100%;
  max-width: var(--largura-max);
  margin: 0 auto;
  padding-left: var(--e-4);
  padding-right: var(--e-4);
}
.container-prosa {
  width: 100%;
  max-width: var(--largura-prosa);
  margin: 0 auto;
  padding-left: var(--e-4);
  padding-right: var(--e-4);
}
.secao { padding: clamp(var(--e-7), 8vw, var(--e-8)) 0; }
.secao + .secao { border-top: 1px solid var(--c-borda); }
.secao-azul { background: var(--c-azul); color: var(--c-texto); }
.secao-azul .eyebrow { color: var(--c-dourado-claro); }
.secao-titulo {
  text-align: center;
  margin-bottom: var(--e-6);
}
.secao-titulo h2 { margin-bottom: var(--e-2); }
.secao-titulo p { color: var(--c-texto-suave); }

/* NAVEGAÇÃO */
.nav {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(10, 10, 10, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--c-borda);
}
.nav-inner {
  max-width: var(--largura-max);
  margin: 0 auto;
  padding: var(--e-3) var(--e-4);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative;
  gap: var(--e-4);
}
.nav-marca {
  display: flex;
  align-items: center;
  gap: var(--e-2);
  text-decoration: none;
  color: var(--c-texto);
  flex-shrink: 0;
}
.nav-marca-imagem { height: 36px; width: auto; }
.nav-marca-texto {
  display: flex;
  flex-direction: column;
  line-height: 1.05;
}
.nav-marca-texto strong {
  font-family: var(--f-display);
  font-size: 1.1rem;
  font-weight: var(--p-regular);
  letter-spacing: 0.04em;
  color: var(--c-texto);
  text-transform: uppercase;
  white-space: nowrap;
}
.nav-marca-texto span {
  font-size: 0.65rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-dourado);
  font-weight: var(--p-semibold);
  margin-top: 2px;
  white-space: nowrap;
}
.nav-links {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  flex-wrap: nowrap;
}
.nav-links a:not(.btn) {
  color: var(--c-texto-suave);
  font-size: 0.85rem;
  font-weight: var(--p-medium);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}
.nav-links a.btn { white-space: nowrap; }
.nav-links a:not(.btn):hover { color: var(--c-texto); }

/* BOTÕES */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--e-2);
  padding: var(--e-3) var(--e-5);
  font-family: var(--f-corpo);
  font-weight: var(--p-bold);
  font-size: 0.85rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: var(--r-pilula);
  border: 2px solid transparent;
  cursor: pointer;
  transition: var(--t-padrao);
  text-decoration: none;
  user-select: none;
  white-space: nowrap;
  line-height: 1;
}
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
.btn-primario {
  background: var(--c-azul);
  color: white;
  box-shadow: var(--sombra-azul);
}
.btn-primario:hover:not(:disabled) {
  background: var(--c-azul-claro);
  transform: translateY(-1px);
  color: white;
}
.btn-dourado {
  background: var(--c-dourado);
  color: var(--c-preto);
}
.btn-dourado:hover:not(:disabled) {
  background: var(--c-dourado-claro);
  transform: translateY(-1px);
  color: var(--c-preto);
}
.btn-fantasma {
  background: transparent;
  color: var(--c-texto);
  border-color: var(--c-borda-forte);
}
.btn-fantasma:hover:not(:disabled) {
  border-color: var(--c-texto);
  background: rgba(255, 255, 255, 0.04);
  color: var(--c-texto);
}
.btn-pleno { width: 100%; }
.btn-grande { padding: var(--e-4) var(--e-6); font-size: 0.95rem; }
.btn-pequeno { padding: var(--e-2) var(--e-3); font-size: 0.78rem; }

/* HERO */
.hero {
  position: relative;
  padding: clamp(var(--e-7), 10vw, var(--e-8)) 0;
  text-align: center;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(29, 86, 232, 0.15), transparent 70%),
    radial-gradient(ellipse at 50% 100%, rgba(217, 165, 48, 0.08), transparent 70%);
  pointer-events: none;
}
.hero-inner {
  position: relative;
  z-index: 1;
  max-width: 920px;
  margin: 0 auto;
  padding: 0 var(--e-4);
}
.hero-logo {
  max-width: 540px;
  width: 80%;
  margin: 0 auto var(--e-5);
}
.hero h1 { margin-bottom: var(--e-4); }
.hero h1 .destaque {
  display: block;
  color: var(--c-dourado);
}
.hero .lead {
  max-width: 640px;
  margin: 0 auto var(--e-5);
}
.hero-cta {
  display: flex;
  gap: var(--e-3);
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: var(--e-6);
}
.hero-versiculo {
  margin: var(--e-6) auto 0;
  max-width: 560px;
  text-align: center;
  color: var(--c-texto-suave);
  font-style: italic;
}
.hero-versiculo cite {
  display: block;
  font-style: normal;
  font-size: 0.7rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  margin-top: var(--e-2);
  color: var(--c-dourado);
  font-weight: var(--p-bold);
}

/* PILARES */
.pilares {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: var(--e-4);
  margin-top: var(--e-6);
}
.pilar {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-grande);
  padding: var(--e-5);
  transition: var(--t-padrao);
}
.pilar:hover {
  border-color: var(--c-azul);
  background: var(--c-superficie-2);
  transform: translateY(-2px);
}
.pilar-numero {
  font-family: var(--f-display);
  font-size: 2.5rem;
  color: var(--c-dourado);
  line-height: 1;
  margin-bottom: var(--e-3);
}
.pilar h3 { font-size: 1.4rem; margin-bottom: var(--e-2); color: var(--c-texto); }
.pilar p { color: var(--c-texto-suave); font-size: 0.95rem; margin: 0; }

/* CARD INVESTIMENTO */
.card-investimento {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-grande);
  padding: clamp(var(--e-5), 4vw, var(--e-6));
  text-align: left;
  position: relative;
  overflow: hidden;
}
.card-investimento::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--c-azul), var(--c-dourado), var(--c-azul));
}
.card-investimento h3 { text-align: center; margin-bottom: var(--e-1); }
.card-investimento-eyebrow { text-align: center; color: var(--c-dourado); margin-bottom: var(--e-2); }
.lista-beneficios { list-style: none; padding: 0; margin: var(--e-4) 0; }
.lista-beneficios li {
  padding: var(--e-2) 0 var(--e-2) var(--e-4);
  position: relative;
  border-bottom: 1px solid var(--c-borda);
  font-size: 0.95rem;
  color: var(--c-texto-suave);
}
.lista-beneficios li:last-child { border-bottom: none; }
.lista-beneficios li::before {
  content: '✦';
  position: absolute;
  left: 0;
  color: var(--c-dourado);
  font-weight: bold;
}
.card-investimento-preco {
  text-align: center;
  padding: var(--e-4) 0;
  margin: var(--e-4) 0;
  border-top: 1px solid var(--c-borda);
  border-bottom: 1px solid var(--c-borda);
}
.preco-de { display: block; font-size: 0.92rem; color: var(--c-texto-fraco); text-decoration: line-through; margin-bottom: var(--e-1); }
.preco-por {
  display: block;
  font-family: var(--f-display);
  font-size: clamp(3rem, 8vw, 4.5rem);
  color: var(--c-dourado);
  line-height: 1;
  margin-bottom: var(--e-1);
}
.preco-parcela { display: block; color: var(--c-texto-suave); font-style: italic; font-size: 0.92rem; }

/* CARDS DE INFO */
.cards-info {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--e-4);
  margin-top: var(--e-5);
}
.card-info {
  text-align: left;
  background: rgba(255, 255, 255, 0.04);
  border-radius: var(--r-media);
  padding: var(--e-4);
}
.card-info .eyebrow { margin-bottom: var(--e-1); }
.card-info h4 {
  font-family: var(--f-display);
  font-size: 1.5rem;
  font-weight: var(--p-regular);
  text-transform: uppercase;
  margin: 0 0 var(--e-2);
  color: var(--c-texto);
}
.card-info p { font-size: 0.92rem; color: var(--c-texto-suave); margin: 0; }

/* RODAPÉ */
.rodape {
  background: var(--c-preto-suave);
  border-top: 1px solid var(--c-borda);
  padding: var(--e-7) 0 var(--e-5);
  text-align: center;
}
.rodape-logo {
  max-width: 320px;
  width: 60%;
  margin: 0 auto var(--e-4);
  opacity: 0.95;
}
.rodape-versiculo {
  font-style: italic;
  font-size: 1rem;
  color: var(--c-texto-suave);
  max-width: 580px;
  margin: 0 auto var(--e-4);
}
.rodape-marca {
  font-family: var(--f-display);
  font-size: 1.2rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--c-texto);
}
.rodape-copy {
  font-size: 0.78rem;
  color: var(--c-texto-fraco);
  margin-top: var(--e-3);
  letter-spacing: 0.08em;
}

/* FORMULÁRIOS */
.campo { margin-bottom: var(--e-4); }
.campo label,
.campo-label {
  display: block;
  font-size: 0.78rem;
  font-weight: var(--p-bold);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-texto-suave);
  margin-bottom: var(--e-2);
}
.input,
.campo input[type="text"],
.campo input[type="email"],
.campo input[type="password"],
.campo input[type="tel"],
.campo input[type="date"],
.campo input[type="number"],
.campo select,
.campo textarea {
  width: 100%;
  padding: var(--e-3);
  font-family: var(--f-corpo);
  font-size: 1rem;
  color: var(--c-texto);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda-forte);
  border-radius: var(--r-pequena);
  transition: var(--t-rapida);
}
.input:focus,
.campo input:focus,
.campo select:focus,
.campo textarea:focus {
  outline: none;
  border-color: var(--c-azul);
  background: var(--c-superficie-2);
  box-shadow: 0 0 0 3px rgba(29, 86, 232, 0.15);
}
.campo textarea { min-height: 100px; resize: vertical; line-height: 1.5; }
.campo small { display: block; font-size: 0.82rem; color: var(--c-texto-fraco); margin-top: var(--e-1); }

/* AUTH */
.auth-pagina {
  min-height: calc(100vh - 80px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--e-5) var(--e-3);
  position: relative;
}
.auth-pagina::before {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 30% 20%, rgba(29, 86, 232, 0.12), transparent 60%),
    radial-gradient(ellipse at 70% 80%, rgba(217, 165, 48, 0.06), transparent 60%);
  pointer-events: none;
}
.auth-card {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 460px;
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-grande);
  padding: clamp(var(--e-5), 5vw, var(--e-6));
  box-shadow: var(--sombra-elevacao);
}
.auth-titulo {
  text-align: center;
  margin-bottom: var(--e-5);
}
.auth-titulo .eyebrow { margin-bottom: var(--e-2); }
.auth-titulo h1 {
  font-size: clamp(2rem, 4vw, 2.6rem);
  margin-bottom: var(--e-2);
}
.auth-titulo p { color: var(--c-texto-suave); font-size: 0.95rem; }
.auth-divisor {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  margin: var(--e-4) 0;
  color: var(--c-texto-fraco);
  font-size: 0.72rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.auth-divisor::before, .auth-divisor::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--c-borda);
}
.auth-rodape {
  text-align: center;
  margin-top: var(--e-4);
  font-size: 0.92rem;
  color: var(--c-texto-suave);
}
.auth-rodape a { font-weight: var(--p-semibold); }
.auth-mensagem {
  padding: var(--e-3);
  border-radius: var(--r-pequena);
  margin-bottom: var(--e-3);
  font-size: 0.92rem;
}
.auth-mensagem.erro {
  background: rgba(232, 80, 74, 0.12);
  border: 1px solid rgba(232, 80, 74, 0.4);
  color: #ff8a85;
}
.auth-mensagem.sucesso {
  background: rgba(30, 165, 113, 0.12);
  border: 1px solid rgba(30, 165, 113, 0.4);
  color: #67d8a8;
}

/* Florão decorativo */
.florao-decorativo {
  display: block;
  width: 48px;
  margin: 0 auto var(--e-4);
  opacity: 0.85;
}
.florao-decorativo-pequeno {
  display: inline-block;
  vertical-align: middle;
  width: 18px;
  margin: 0 var(--e-2);
  opacity: 0.6;
}
.separador-florao {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--e-3);
  margin: var(--e-6) 0;
}
.separador-florao::before, .separador-florao::after {
  content: '';
  flex: 1;
  max-width: 100px;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--c-borda-forte), transparent);
}
.separador-florao img { width: 28px; opacity: 0.6; }

/* PAINEL */
.dash {
  max-width: var(--largura-max);
  margin: 0 auto;
  padding: var(--e-5) var(--e-4) var(--e-7);
}
.dash-saudacao { margin-bottom: var(--e-6); }
.dash-saudacao h1 {
  font-size: clamp(2rem, 4vw, 2.8rem);
  margin-bottom: var(--e-2);
}
.dash-saudacao p { color: var(--c-texto-suave); max-width: 720px; }
.dash-grade {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--e-4);
  margin-bottom: var(--e-6);
}
.dash-card {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-grande);
  padding: var(--e-5);
  transition: var(--t-padrao);
  display: flex;
  flex-direction: column;
}
.dash-card:not([data-disabled]):hover {
  border-color: var(--c-azul);
  background: var(--c-superficie-2);
  transform: translateY(-2px);
}
.dash-card[data-disabled] { opacity: 0.5; }
.dash-card .eyebrow { margin-bottom: var(--e-2); }
.dash-card h3 { margin-bottom: var(--e-2); font-size: 1.4rem; }
.dash-card p {
  color: var(--c-texto-suave);
  font-size: 0.95rem;
  margin-bottom: var(--e-4);
  flex: 1;
}
.dash-card-acao {
  display: inline-flex;
  align-items: center;
  gap: var(--e-1);
  font-size: 0.85rem;
  font-weight: var(--p-bold);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-azul-claro);
}
.dash-card-acao:hover { color: var(--c-dourado-claro); }
.dash-vazio {
  background: linear-gradient(135deg, var(--c-superficie), var(--c-preto-suave));
  border: 1px solid var(--c-borda);
  border-radius: var(--r-grande);
  padding: var(--e-5);
  text-align: center;
}
.dash-vazio h3 { color: var(--c-texto); margin-bottom: var(--e-2); }
.dash-vazio p { color: var(--c-texto-suave); margin: 0; }

/* ANAMNESE */
.anam-shell {
  min-height: 100vh;
  background: var(--c-preto);
  position: relative;
}
.anam-progresso {
  position: sticky;
  top: 65px;
  z-index: 90;
  background: rgba(10, 10, 10, 0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--c-borda);
  padding: var(--e-3) 0;
}
.anam-progresso-inner {
  max-width: 720px;
  margin: 0 auto;
  padding: 0 var(--e-4);
}
.anam-progresso-info {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: var(--p-bold);
  color: var(--c-texto-fraco);
  margin-bottom: var(--e-2);
}
.anam-progresso-info strong { color: var(--c-dourado); }
.anam-progresso-barra {
  height: 3px;
  background: var(--c-superficie);
  border-radius: 2px;
  overflow: hidden;
}
.anam-progresso-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--c-azul), var(--c-dourado));
  width: 0%;
  transition: width 500ms cubic-bezier(0.4, 0, 0.2, 1);
}

.anam-conteudo {
  max-width: 640px;
  margin: 0 auto;
  padding: var(--e-6) var(--e-4) var(--e-8);
}
.anam-cabec {
  margin-bottom: var(--e-5);
  text-align: center;
}
.anam-cabec .eyebrow { margin-bottom: var(--e-2); }
.anam-cabec h2 {
  font-size: clamp(1.8rem, 3.5vw, 2.4rem);
  margin-bottom: var(--e-2);
}
.anam-cabec p {
  color: var(--c-texto-suave);
  max-width: 560px;
  margin: var(--e-3) auto 0;
  font-size: 0.98rem;
}

/* Pergunta */
.pergunta { margin-bottom: var(--e-5); }
.pergunta-numero {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: var(--p-bold);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-dourado);
  margin-bottom: var(--e-2);
}
.pergunta-texto {
  display: block;
  font-size: 1.08rem;
  font-weight: var(--p-medium);
  line-height: 1.45;
  color: var(--c-texto);
  margin: 0 0 var(--e-3);
}
.pergunta-ajuda {
  display: block;
  font-size: 0.85rem;
  color: var(--c-texto-fraco);
  font-style: italic;
  margin-bottom: var(--e-3);
}

.pergunta input[type="text"],
.pergunta input[type="email"],
.pergunta input[type="tel"],
.pergunta input[type="date"],
.pergunta input[type="number"],
.pergunta select,
.pergunta textarea {
  width: 100%;
  padding: var(--e-3);
  font-family: var(--f-corpo);
  font-size: 1rem;
  color: var(--c-texto);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda-forte);
  border-radius: var(--r-pequena);
  transition: var(--t-rapida);
}
.pergunta textarea { min-height: 100px; resize: vertical; line-height: 1.5; }
.pergunta input:focus,
.pergunta select:focus,
.pergunta textarea:focus {
  outline: none;
  border-color: var(--c-azul);
  background: var(--c-superficie-2);
  box-shadow: 0 0 0 3px rgba(29, 86, 232, 0.15);
}

/* Opções como cards */
.opcoes {
  display: flex;
  flex-direction: column;
  gap: var(--e-2);
}
.opcoes label {
  display: flex;
  align-items: flex-start;
  gap: var(--e-3);
  padding: var(--e-3);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
  cursor: pointer;
  transition: var(--t-rapida);
  font-size: 0.98rem;
  line-height: 1.4;
  color: var(--c-texto);
}
.opcoes label:hover {
  border-color: var(--c-borda-forte);
  background: var(--c-superficie-2);
}
.opcoes label.selecionada {
  border-color: var(--c-azul);
  background: linear-gradient(to right, rgba(29, 86, 232, 0.12), rgba(29, 86, 232, 0.04));
}
.opcoes input[type="radio"],
.opcoes input[type="checkbox"] {
  margin-top: 0.18rem;
  accent-color: var(--c-azul);
  width: 18px; height: 18px;
  flex-shrink: 0;
}

.opcoes-binarias {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--e-2);
}
.opcoes-binarias label {
  justify-content: center;
  text-align: center;
  font-weight: var(--p-semibold);
  padding: var(--e-3) var(--e-2);
}

/* =================================================
   CAIXA DE EXPLICAÇÃO DE SEÇÃO
   Aparece na primeira sub-tela de cada seção da anamnese.
   Mais sutil que .instrucoes-soar — não compete com as perguntas.
   ================================================= */
.explicacao-secao {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-left: 3px solid var(--c-dourado);
  border-radius: var(--r-media);
  padding: var(--e-4);
  margin-bottom: var(--e-5);
}
.explicacao-secao-bloco {
  margin-bottom: var(--e-3);
}
.explicacao-secao-bloco:last-child { margin-bottom: 0; }
.explicacao-secao-bloco-destaque {
  padding-top: var(--e-3);
  border-top: 1px solid var(--c-borda);
}
.explicacao-secao-titulo {
  font-size: 0.7rem;
  font-weight: var(--p-bold);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-dourado);
  margin: 0 0 var(--e-2);
  font-family: var(--f-corpo);
}
.explicacao-secao-corpo {
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--c-texto-suave);
  margin: 0;
}

/* Bloco do cenário — pergunta opcional para o aluno responder dentro da caixa de explicação */
.cenario-aluno .explicacao-secao-titulo {
  color: var(--c-azul-claro, var(--c-azul));
}
.cenario-pergunta {
  color: var(--c-texto) !important;
  font-weight: var(--p-medium);
  margin-bottom: var(--e-3) !important;
}
.cenario-resposta {
  width: 100%;
  background: var(--c-preto-suave);
  color: var(--c-texto);
  border: 1px solid var(--c-borda-forte);
  border-radius: var(--r-pequena);
  padding: var(--e-3);
  font-family: var(--f-corpo);
  font-size: 0.95rem;
  line-height: 1.5;
  resize: vertical;
  min-height: 80px;
  transition: var(--t-rapida);
}
.cenario-resposta:focus {
  outline: none;
  border-color: var(--c-azul);
  background: var(--c-superficie);
}
.cenario-resposta::placeholder {
  color: var(--c-texto-fraco);
  font-style: italic;
}

/* Caixa de instruções do SOAR — colapsável (clica no cabeçalho para abrir) */
.instrucoes-soar {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-left: 3px solid var(--c-azul);
  border-radius: var(--r-media);
  margin-bottom: var(--e-4);
  overflow: hidden;
}
/* Esconde o marcador padrão do <summary> em vários browsers */
.instrucoes-soar summary { list-style: none; }
.instrucoes-soar summary::-webkit-details-marker { display: none; }
.instrucoes-soar-cabecalho {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  padding: var(--e-3) var(--e-4);
  cursor: pointer;
  user-select: none;
  transition: var(--t-rapida);
}
.instrucoes-soar-cabecalho:hover {
  background: rgba(29, 86, 232, 0.06);
}
.instrucoes-soar-icone {
  font-size: 1.1rem;
  color: var(--c-azul);
  flex-shrink: 0;
}
.instrucoes-soar-titulo {
  flex: 1;
  font-size: 0.78rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: var(--p-bold);
  color: var(--c-dourado);
}
.instrucoes-soar-seta {
  color: var(--c-texto-fraco);
  font-size: 0.85rem;
  transition: transform 200ms ease;
  flex-shrink: 0;
}
.instrucoes-soar[open] .instrucoes-soar-seta {
  transform: rotate(180deg);
}
.instrucoes-soar-conteudo {
  padding: 0 var(--e-4) var(--e-4);
  border-top: 1px solid var(--c-borda);
  padding-top: var(--e-3);
  margin-top: 0;
}
.instrucoes-soar-lista {
  list-style: decimal;
  padding-left: var(--e-4);
  margin: 0 0 var(--e-3);
}
.instrucoes-soar-lista li {
  margin-bottom: var(--e-2);
  font-size: 0.95rem;
  line-height: 1.5;
  color: var(--c-texto);
}
.instrucoes-soar-lista li:last-child { margin-bottom: 0; }
.instrucoes-soar-dica {
  margin: 0;
  padding-top: var(--e-3);
  border-top: 1px solid var(--c-borda);
  font-size: 0.9rem;
  color: var(--c-texto-suave);
  font-style: italic;
}
/* Exemplos de botão dentro do texto explicativo */
.exemplo-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 4px;
  font-size: 0.85rem;
  font-weight: var(--p-bold);
  vertical-align: middle;
  margin: 0 2px;
  line-height: 1;
}
.exemplo-btn-mais {
  background: var(--c-azul);
  color: white;
}
.exemplo-btn-menos {
  background: var(--c-erro);
  color: white;
}
.exemplo-btn-neutro {
  background: var(--c-superficie-2);
  color: var(--c-texto-suave);
  border: 1px solid var(--c-borda-forte);
}

/* SOAR — tabela HTML com 3 botões por linha (+ neutro -) */
.bloco-soar {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  padding: var(--e-4);
  margin-bottom: var(--e-4);
}
.bloco-soar-titulo {
  font-size: 0.7rem;
  font-weight: var(--p-bold);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-dourado);
  margin-bottom: var(--e-3);
  text-align: center;
}
table.bloco-soar-tabela {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}
table.bloco-soar-tabela th,
.bloco-soar-th {
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: var(--p-bold);
  color: var(--c-texto-fraco);
  text-align: center;
  padding: var(--e-2) 4px;
  line-height: 1.2;
  width: 56px;
}
table.bloco-soar-tabela th:first-child {
  width: auto;
}
table.bloco-soar-tabela td.bloco-soar-palavra {
  padding: var(--e-3) 0;
  font-size: 1rem;
  color: var(--c-texto);
  font-weight: var(--p-medium);
  border-top: 1px solid var(--c-borda);
}
table.bloco-soar-tabela td.bloco-soar-celula {
  padding: var(--e-2) 0;
  border-top: 1px solid var(--c-borda);
  text-align: center;
  vertical-align: middle;
  width: 56px;
}
/* Trio de botões: + neutro - */
.soar-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  margin: 0;
  padding: 0;
  border: 1px solid var(--c-borda-forte);
  background: var(--c-preto-suave);
  color: var(--c-texto-fraco);
  font-family: var(--f-corpo);
  font-size: 1.2rem;
  font-weight: var(--p-bold);
  line-height: 1;
  border-radius: var(--r-pequena);
  cursor: pointer;
  transition: var(--t-rapida);
  user-select: none;
}
.soar-btn:hover {
  border-color: var(--c-texto-fraco);
  color: var(--c-texto);
}
.soar-btn.ativo {
  color: white;
  border-color: transparent;
  transform: scale(1.05);
}
.soar-btn-mais.ativo {
  background: var(--c-azul);
  box-shadow: 0 4px 12px -4px rgba(29, 86, 232, 0.6);
}
.soar-btn-menos.ativo {
  background: var(--c-erro);
  box-shadow: 0 4px 12px -4px rgba(232, 80, 74, 0.6);
}
.soar-btn-neutro.ativo {
  background: var(--c-superficie-2);
  color: var(--c-texto-suave);
  border-color: var(--c-borda);
  box-shadow: none;
}

/* QI */
.qi-aviso {
  background: linear-gradient(135deg, rgba(217, 165, 48, 0.12), rgba(217, 165, 48, 0.04));
  border: 1px solid rgba(217, 165, 48, 0.3);
  border-left: 4px solid var(--c-dourado);
  padding: var(--e-5);
  border-radius: var(--r-media);
  margin-bottom: var(--e-5);
}
.qi-aviso h3 {
  color: var(--c-dourado);
  font-size: 1.4rem;
  margin-bottom: var(--e-3);
}
.qi-aviso ul { margin: var(--e-3) 0 0 var(--e-4); }
.qi-aviso li { margin-bottom: var(--e-2); color: var(--c-texto-suave); }

.cronometro {
  position: sticky;
  top: 130px;
  z-index: 80;
  background: var(--c-azul);
  color: white;
  padding: var(--e-3) var(--e-4);
  border-radius: var(--r-media);
  margin: 0 auto var(--e-5);
  max-width: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--e-3);
  box-shadow: var(--sombra-azul);
}
.cronometro.urgente {
  background: var(--c-erro);
  animation: pulsa 1s ease-in-out infinite;
}
@keyframes pulsa {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.85; }
}
.cronometro-info {
  font-size: 0.78rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: var(--p-bold);
  opacity: 0.9;
}
.cronometro-tempo {
  font-family: var(--f-display);
  font-size: 2rem;
  letter-spacing: 0.08em;
  font-variant-numeric: tabular-nums;
}

/* Escala QE */
.escala-qe {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--e-2);
  margin-top: var(--e-3);
}
.escala-qe label {
  text-align: center;
  padding: var(--e-3) var(--e-2);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
  cursor: pointer;
  transition: var(--t-rapida);
  font-size: 0.78rem;
  color: var(--c-texto-suave);
  line-height: 1.3;
}
.escala-qe label:hover {
  border-color: var(--c-borda-forte);
  background: var(--c-superficie-2);
}
.escala-qe label.selecionada {
  background: var(--c-azul);
  color: white;
  border-color: var(--c-azul);
}
.escala-qe input { display: none; }
.escala-qe-numero {
  display: block;
  font-family: var(--f-display);
  font-size: 1.6rem;
  margin-bottom: var(--e-1);
  color: var(--c-texto);
}
.escala-qe label.selecionada .escala-qe-numero { color: white; }

/* Escala 0-10 */
.escala-10 {
  display: flex;
  gap: var(--e-1);
  flex-wrap: wrap;
  margin-top: var(--e-2);
}
.escala-10 label {
  flex: 1;
  min-width: 38px;
  text-align: center;
  padding: var(--e-3) var(--e-1);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
  cursor: pointer;
  transition: var(--t-rapida);
  font-family: var(--f-display);
  font-size: 1.05rem;
  color: var(--c-texto);
}
.escala-10 label:hover {
  border-color: var(--c-borda-forte);
  background: var(--c-superficie-2);
}
.escala-10 label.selecionada {
  background: var(--c-azul);
  color: white;
  border-color: var(--c-azul);
}
.escala-10 input { display: none; }
.escala-10-rotulos {
  display: flex;
  justify-content: space-between;
  font-size: 0.78rem;
  color: var(--c-texto-fraco);
  margin-top: var(--e-2);
  font-style: italic;
}

/* Navegação inferior anamnese */
.anam-nav {
  position: sticky;
  bottom: 0;
  background: rgba(10, 10, 10, 0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-top: 1px solid var(--c-borda);
  padding: var(--e-3) 0;
  margin-top: var(--e-6);
}
.anam-nav-inner {
  max-width: 640px;
  margin: 0 auto;
  padding: 0 var(--e-4);
  display: flex;
  gap: var(--e-2);
  align-items: center;
  justify-content: space-between;
}
.anam-nav-status {
  font-size: 0.75rem;
  color: var(--c-texto-fraco);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.anam-nav-status.salvo { color: var(--c-sucesso); }

/* Tela abertura */
.tela-abertura {
  text-align: center;
  padding: var(--e-6) 0;
}
.tela-abertura h1 {
  font-size: clamp(2.4rem, 5vw, 3.6rem);
  margin-bottom: var(--e-3);
}
.tela-abertura .lead {
  max-width: 580px;
  margin: 0 auto var(--e-5);
}
.caixa-oracao {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-left: 3px solid var(--c-dourado);
  border-radius: var(--r-media);
  padding: clamp(var(--e-4), 4vw, var(--e-5));
  margin: var(--e-5) auto;
  max-width: 600px;
  text-align: left;
  font-style: italic;
  font-size: 1.02rem;
  line-height: 1.7;
  color: var(--c-texto-suave);
}

/* Revisão */
.revisao-tabela {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  margin-bottom: var(--e-5);
  overflow: hidden;
}
.revisao-linha {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--e-3) var(--e-4);
  border-bottom: 1px solid var(--c-borda);
}
.revisao-linha:last-child { border-bottom: none; }
.revisao-linha-info strong {
  display: block;
  margin-bottom: 2px;
  color: var(--c-texto);
}
.revisao-linha-status {
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: var(--p-bold);
}
.revisao-linha-status.completa { color: var(--c-sucesso); }
.revisao-linha-status.pendente { color: var(--c-erro); }
.revisao-linha-acao {
  font-size: 0.75rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: var(--p-bold);
  color: var(--c-azul-claro);
  cursor: pointer;
  padding: var(--e-1) var(--e-2);
  border-radius: var(--r-pequena);
}
.revisao-linha-acao:hover { background: rgba(74, 126, 255, 0.12); }

/* Sucesso */
.tela-sucesso {
  text-align: center;
  padding: var(--e-7) var(--e-4);
  max-width: 600px;
  margin: 0 auto;
}
.tela-sucesso-icone {
  width: 84px;
  height: 84px;
  background: linear-gradient(135deg, var(--c-azul), var(--c-dourado));
  border-radius: 50%;
  margin: 0 auto var(--e-4);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 2.5rem;
  box-shadow: var(--sombra-azul);
}

/* Spinner */
.spinner {
  display: inline-block;
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.2);
  border-top-color: var(--c-texto);
  border-radius: 50%;
  animation: girar 0.8s linear infinite;
}
@keyframes girar {
  to { transform: rotate(360deg); }
}

/* Toast salvo */
.estado-salvo {
  position: fixed;
  top: 80px;
  right: var(--e-3);
  z-index: 200;
  background: var(--c-sucesso);
  color: white;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  padding: var(--e-2) var(--e-3);
  border-radius: var(--r-pilula);
  opacity: 0;
  transition: opacity 300ms;
  pointer-events: none;
  font-weight: var(--p-semibold);
}
.estado-salvo.visivel { opacity: 1; }
.estado-salvo::before { content: '✓ '; }

/* ============================================================
   CLASSES DE COMPATIBILIDADE
   Mantém os HTMLs e o motor JS funcionando após renomeações
   do design system. NÃO REMOVER.
   ============================================================ */

/* Container interno das seções (largura limitada) */
.secao-inner {
  width: 100%;
  max-width: var(--largura-max);
  margin: 0 auto;
  padding-left: var(--e-4);
  padding-right: var(--e-4);
}

/* Variações de seção que ainda são usadas no HTML */
.secao-pergaminho-escuro {
  background: var(--c-preto-suave);
}
.secao-marinho {
  background:
    linear-gradient(180deg, var(--c-azul-escuro), var(--c-azul));
  color: white;
}
.secao-marinho .eyebrow { color: var(--c-dourado-claro); }
.secao-marinho h2,
.secao-marinho h3 { color: white; }
.secao-marinho .lead { color: rgba(240, 233, 216, 0.85); }

/* Rodapé container interno */
.rodape-inner {
  width: 100%;
  max-width: var(--largura-max);
  margin: 0 auto;
  padding-left: var(--e-4);
  padding-right: var(--e-4);
}

/* Botão Google (auth) */
.btn-google {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--e-2);
  width: 100%;
  padding: var(--e-3);
  background: var(--c-superficie);
  color: var(--c-texto);
  border: 1px solid var(--c-borda-forte);
  border-radius: var(--r-pequena);
  font-family: var(--f-corpo);
  font-weight: var(--p-semibold);
  font-size: 0.95rem;
  cursor: pointer;
  transition: var(--t-rapida);
}
.btn-google:hover {
  border-color: var(--c-texto);
  background: var(--c-superficie-2);
  color: var(--c-texto);
}
.btn-google::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234285f4' d='M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z'/%3E%3Cpath fill='%2334a853' d='M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z'/%3E%3Cpath fill='%23fbbc05' d='M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z'/%3E%3Cpath fill='%23ea4335' d='M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z'/%3E%3C/svg%3E");
  background-size: contain;
  background-repeat: no-repeat;
}

/* === Aliases da anamnese (anamnese-* → anam-*) === */
.anamnese-shell { /* alias */
  display: block;
  min-height: 100vh;
  background: var(--c-preto);
  position: relative;
}
.anamnese-progresso { /* sticky em cima, ocupa 100% */
  position: sticky;
  top: 65px;
  z-index: 90;
  background: rgba(10, 10, 10, 0.95);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--c-borda);
  padding: var(--e-3) 0;
}
.anamnese-progresso .anamnese-progresso-info,
.anamnese-progresso .anamnese-progresso-barra {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--e-4);
  padding-right: var(--e-4);
}
.anamnese-progresso-info {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  font-size: 0.7rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: var(--p-bold);
  color: var(--c-texto-fraco);
  margin-bottom: var(--e-2);
}
.anamnese-progresso-info strong { color: var(--c-dourado); }
.anamnese-progresso-barra {
  height: 3px;
  background: var(--c-superficie);
  border-radius: 2px;
  overflow: hidden;
}
.anamnese-progresso-fill {
  height: 100%;
  background: linear-gradient(90deg, var(--c-azul), var(--c-dourado));
  width: 0%;
  transition: width 500ms cubic-bezier(0.4, 0, 0.2, 1);
}
.anamnese-nav {
  border-top: 1px solid var(--c-borda);
  padding: var(--e-4) var(--e-4);
  margin-top: var(--e-6);
  display: flex;
  gap: var(--e-3);
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.anamnese-nav .btn { min-width: 130px; }

/* CONTAINER central da anamnese — todos os blocos ficam aqui */
#anamnese-container {
  max-width: 720px;
  margin: 0 auto;
  padding: var(--e-5) var(--e-4) var(--e-7);
}

/* opcoes-horizontais é o nome velho de opcoes-binarias */
.opcoes-horizontais {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--e-2);
}
.opcoes-horizontais label {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-weight: var(--p-semibold);
  padding: var(--e-3) var(--e-2);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
  cursor: pointer;
  transition: var(--t-rapida);
  color: var(--c-texto);
  gap: var(--e-2);
}
.opcoes-horizontais label:hover {
  border-color: var(--c-borda-forte);
  background: var(--c-superficie-2);
}
.opcoes-horizontais label.selecionada {
  border-color: var(--c-azul);
  background: linear-gradient(to right, rgba(29, 86, 232, 0.18), rgba(29, 86, 232, 0.08));
}
.opcoes-horizontais input[type="radio"],
.opcoes-horizontais input[type="checkbox"] {
  accent-color: var(--c-azul);
  width: 18px; height: 18px;
}

/* Cabeçalho de seção dentro da anamnese (gerado pelo motor) */
.secao-anamnese-titulo {
  margin-bottom: var(--e-5);
  padding-bottom: var(--e-4);
  border-bottom: 1px solid var(--c-borda);
}
.secao-anamnese-titulo .eyebrow {
  margin-bottom: var(--e-2);
}
.secao-anamnese-titulo h2 {
  font-size: clamp(1.6rem, 3vw, 2.2rem);
  margin-bottom: var(--e-2);
}
.secao-anamnese-titulo p {
  color: var(--c-texto-suave);
  margin-top: var(--e-2);
  font-size: 0.98rem;
}

/* Animação de transição entre sub-telas */
#anamnese-container {
  transition: opacity 200ms ease, transform 200ms ease;
}
#anamnese-container.transicionando {
  opacity: 0;
  transform: translateY(8px);
}

/* RESPONSIVO */
/* =================================================
   FOTO DE PERFIL — preview no cadastro + avatar no painel
   ================================================= */

/* Cadastro: bloco de upload com preview */
.campo-foto { margin-bottom: var(--e-4); }
.foto-upload {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  padding: var(--e-3);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
}
.foto-preview {
  width: 72px;
  height: 72px;
  flex-shrink: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--c-azul), var(--c-azul-escuro));
  background-size: cover;
  background-position: center;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--c-borda-forte);
  overflow: hidden;
}
.foto-preview.com-foto {
  background-color: transparent;
  background-image: var(--bg-img);
  border-color: var(--c-azul);
}
.foto-preview-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-family: var(--f-display);
  font-size: 1.6rem;
  color: white;
  letter-spacing: 0.04em;
}
.foto-upload-acoes {
  flex: 1;
  min-width: 0;
}
.foto-upload-acoes .btn {
  margin-right: var(--e-2);
  margin-bottom: var(--e-1);
}

/* Painel: avatar grande na saudação */
.dash-saudacao-com-foto {
  display: flex;
  align-items: flex-start;
  gap: var(--e-4);
  margin-bottom: var(--e-6);
}
.dash-foto-wrap {
  position: relative;
  flex-shrink: 0;
}
.dash-foto {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--c-azul), var(--c-azul-escuro));
  background-size: cover;
  background-position: center;
  border: 2px solid var(--c-borda-forte);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dash-foto.com-foto {
  border-color: var(--c-azul);
}
.dash-foto-iniciais {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-family: var(--f-display);
  font-size: 2rem;
  color: white;
  letter-spacing: 0.04em;
}
.dash-foto-editar {
  position: absolute;
  bottom: -4px;
  right: -4px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 2px solid var(--c-preto);
  background: var(--c-dourado);
  color: var(--c-preto);
  font-size: 0.95rem;
  cursor: pointer;
  transition: var(--t-rapida);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-family: var(--f-corpo);
}
.dash-foto-editar:hover {
  background: var(--c-dourado-claro);
  transform: scale(1.08);
}
.dash-saudacao-texto {
  flex: 1;
  min-width: 0;
}
.dash-saudacao-texto h1 {
  margin-bottom: var(--e-2);
}

/* =================================================
   FASE 3 — Lista de alunos e ficha do aluno (gestor)
   ================================================= */

/* Cards do painel-gestor: dois clicáveis, dois informativos */
a.dash-card-link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
}
a.dash-card-link:hover {
  border-color: var(--c-azul);
  transform: translateY(-2px);
  box-shadow: 0 8px 20px -8px rgba(29, 86, 232, 0.4);
}
.dash-card-em-breve {
  opacity: 0.6;
}
.dash-card-em-breve:hover {
  border-color: var(--c-borda);
  transform: none;
  box-shadow: none;
}
.dash-card-aviso {
  display: inline-block;
  margin-top: auto;
  padding-top: var(--e-3);
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--c-texto-fraco);
  font-weight: var(--p-medium);
}

/* Filtros da lista de alunos */
.alunos-filtros {
  display: flex;
  flex-wrap: wrap;
  gap: var(--e-2);
  margin-bottom: var(--e-4);
}
.alunos-filtro {
  background: transparent;
  border: 1px solid var(--c-borda-forte);
  color: var(--c-texto-suave);
  padding: var(--e-2) var(--e-3);
  border-radius: var(--r-pequena);
  cursor: pointer;
  font-family: var(--f-corpo);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  transition: var(--t-rapida);
}
.alunos-filtro:hover {
  border-color: var(--c-azul);
  color: var(--c-texto);
}
.alunos-filtro.ativo {
  background: var(--c-azul);
  border-color: var(--c-azul);
  color: white;
}

/* Linha de aluno (lista) */
.aluno-linha {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  padding: var(--e-3) var(--e-4);
  margin-bottom: var(--e-2);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  text-decoration: none;
  color: inherit;
  transition: var(--t-rapida);
}
.aluno-linha:hover {
  border-color: var(--c-azul);
  background: var(--c-superficie-2, var(--c-superficie));
}
.aluno-foto {
  width: 48px;
  height: 48px;
  flex-shrink: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--c-azul), var(--c-azul-escuro));
  background-size: cover;
  background-position: center;
  border: 2px solid var(--c-borda-forte);
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-family: var(--f-display);
  font-size: 1.05rem;
  letter-spacing: 0.04em;
  overflow: hidden;
}
.aluno-foto.com-foto {
  background-color: transparent;
  border-color: var(--c-azul);
}
.aluno-info {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.aluno-info strong {
  font-size: 1rem;
  font-weight: var(--p-medium);
  color: var(--c-texto);
}
.aluno-info small {
  font-size: 0.82rem;
  color: var(--c-texto-fraco);
}
.aluno-status {
  flex-shrink: 0;
  padding: 0.3rem 0.7rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: var(--p-bold);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid;
}
.status-fraco { color: var(--c-texto-fraco); border-color: var(--c-borda-forte); }
.status-azul { color: var(--c-azul-claro, var(--c-azul)); border-color: var(--c-azul); background: rgba(29, 86, 232, 0.10); }
.status-dourado { color: var(--c-dourado); border-color: var(--c-dourado); background: rgba(217, 165, 48, 0.08); }
.status-sucesso { color: var(--c-sucesso); border-color: var(--c-sucesso); background: rgba(34, 197, 94, 0.08); }
.aluno-seta {
  color: var(--c-texto-fraco);
  font-size: 1.1rem;
  flex-shrink: 0;
}

/* Ficha do aluno (gestor-aluno.html) */
.gestor-aluno-cabecalho {
  display: flex;
  align-items: flex-start;
  gap: var(--e-4);
  margin-bottom: var(--e-5);
}
.card-resumo {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  padding: var(--e-4);
  margin-bottom: var(--e-5);
}
.card-resumo-titulo {
  font-size: 1rem;
  font-weight: var(--p-bold);
  margin: 0 0 var(--e-3);
  color: var(--c-dourado);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.card-resumo-grade {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--e-3);
}
.card-resumo-item {
  background: var(--c-preto-suave);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
  padding: var(--e-3);
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.card-resumo-item .eyebrow {
  font-size: 0.65rem;
  margin: 0;
}
.card-resumo-item strong {
  font-size: 1.3rem;
  font-weight: var(--p-bold);
  color: var(--c-texto);
}
.card-resumo-item small {
  font-size: 0.78rem;
  color: var(--c-texto-fraco);
}

/* Dica de uso acima dos cards */
.card-resumo-dica {
  margin: 0 0 var(--e-3);
  font-size: 0.8rem;
  color: var(--c-texto-fraco);
  font-style: italic;
}

/* Card clicável (cards do resumo psicométrico) */
.card-clicavel {
  position: relative;
  cursor: pointer;
  transition: var(--t-rapida);
}
.card-clicavel:hover,
.card-clicavel:focus {
  border-color: var(--c-azul);
  background: var(--c-superficie);
  outline: none;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px -6px rgba(29, 86, 232, 0.35);
}
.card-icone-info {
  position: absolute;
  top: var(--e-2);
  right: var(--e-2);
  font-size: 0.95rem;
  color: var(--c-texto-fraco);
  transition: var(--t-rapida);
  pointer-events: none;
}
.card-clicavel:hover .card-icone-info,
.card-clicavel:focus .card-icone-info {
  color: var(--c-azul);
}

/* Tooltip (desktop) */
.card-tooltip {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 50;
  background: var(--c-preto);
  border: 1px solid var(--c-azul);
  border-radius: var(--r-pequena);
  padding: var(--e-3);
  box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(29, 86, 232, 0.25);
  animation: tooltipFadeIn 180ms ease-out;
  pointer-events: none;
}
.card-tooltip strong {
  display: block;
  font-size: 0.82rem;
  font-weight: var(--p-bold);
  color: var(--c-dourado);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: var(--e-2);
}
.card-tooltip p {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.5;
  color: var(--c-texto);
}
@keyframes tooltipFadeIn {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Modal (mobile e fallback de clique no desktop) */
.explicacao-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: var(--e-4);
  animation: modalOverlayFadeIn 200ms ease-out;
}
.explicacao-modal {
  position: relative;
  background: var(--c-superficie);
  border: 1px solid var(--c-azul);
  border-radius: var(--r-media);
  padding: var(--e-5);
  max-width: 480px;
  width: 100%;
  box-shadow: 0 20px 60px -10px rgba(0, 0, 0, 0.8);
  animation: modalFadeIn 220ms ease-out;
}
.explicacao-modal h3 {
  margin: 0 0 var(--e-3);
  font-size: 1.05rem;
  color: var(--c-dourado);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  padding-right: var(--e-5);
}
.explicacao-modal p {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--c-texto);
}
.explicacao-modal-fechar {
  position: absolute;
  top: var(--e-2);
  right: var(--e-2);
  width: 36px;
  height: 36px;
  background: transparent;
  border: none;
  color: var(--c-texto-fraco);
  font-size: 1.5rem;
  cursor: pointer;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--t-rapida);
  line-height: 1;
}
.explicacao-modal-fechar:hover {
  background: var(--c-borda);
  color: var(--c-texto);
}
@keyframes modalOverlayFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes modalFadeIn {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}

.gestor-acoes-principais {
  text-align: center;
  margin-bottom: var(--e-6);
  padding: var(--e-4);
  background: var(--c-superficie);
  border: 1px dashed var(--c-borda-forte);
  border-radius: var(--r-media);
}
.btn-grande {
  font-size: 1rem;
  padding: var(--e-3) var(--e-5);
}

.gestor-secao {
  margin-bottom: var(--e-5);
}
.gestor-secao-titulo {
  font-size: 1.1rem;
  font-weight: var(--p-bold);
  color: var(--c-dourado);
  padding-bottom: var(--e-2);
  margin: 0 0 var(--e-3);
  border-bottom: 1px solid var(--c-borda);
  letter-spacing: 0.04em;
}
.gestor-tabela {
  width: 100%;
  border-collapse: collapse;
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
  overflow: hidden;
}
.gestor-tabela th {
  background: var(--c-preto-suave);
  text-align: left;
  padding: var(--e-2) var(--e-3);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--c-texto-fraco);
  border-bottom: 1px solid var(--c-borda);
  font-weight: var(--p-bold);
}
.gestor-tabela td {
  padding: var(--e-3);
  font-size: 0.92rem;
  color: var(--c-texto);
  border-bottom: 1px solid var(--c-borda);
  vertical-align: top;
}
.gestor-tabela tbody tr:last-child td { border-bottom: none; }
.gestor-tabela tbody tr:hover { background: rgba(255, 255, 255, 0.02); }

.gestor-cenario {
  background: rgba(217, 165, 48, 0.05);
  border-left: 3px solid var(--c-dourado);
  padding: var(--e-3) var(--e-4);
  margin-bottom: var(--e-3);
  border-radius: var(--r-pequena);
}
.gestor-cenario blockquote {
  margin: 0;
  font-size: 0.95rem;
  color: var(--c-texto);
  line-height: 1.55;
  font-style: italic;
  padding-left: var(--e-3);
  border-left: 2px solid var(--c-borda);
}

/* =================================================
   FASE 3.5 — Editor de relatório (gestor-relatorio.html)
   ================================================= */

.relatorio-acoes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--e-3);
  margin-bottom: var(--e-4);
}
.relatorio-status {
  flex: 1;
  min-width: 220px;
  font-size: 0.9rem;
  color: var(--c-texto-suave);
  padding: var(--e-2) var(--e-3);
  border-radius: var(--r-pequena);
  transition: var(--t-rapida);
}
.relatorio-status:empty { display: none; }
.relatorio-status.carregando {
  background: rgba(217, 165, 48, 0.08);
  color: var(--c-dourado);
  border: 1px solid var(--c-dourado);
}
.relatorio-status.sucesso {
  background: rgba(34, 197, 94, 0.08);
  color: var(--c-sucesso);
  border: 1px solid var(--c-sucesso);
}
.relatorio-status.erro {
  background: rgba(239, 68, 68, 0.08);
  color: var(--c-erro);
  border: 1px solid var(--c-erro);
}

.relatorio-meta {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: var(--e-3);
  margin-bottom: var(--e-4);
  padding: var(--e-3);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
}
.relatorio-meta > div {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.relatorio-meta .eyebrow {
  margin: 0;
  font-size: 0.65rem;
}
.relatorio-meta strong {
  font-size: 0.9rem;
  color: var(--c-texto);
  font-weight: var(--p-medium);
}

.relatorio-editor-wrap {
  margin-bottom: var(--e-4);
}
.relatorio-editor-label {
  display: block;
  font-size: 0.85rem;
  color: var(--c-texto-suave);
  margin-bottom: var(--e-2);
  font-style: italic;
}
.relatorio-editor {
  width: 100%;
  min-height: 500px;
  background: var(--c-preto-suave);
  color: var(--c-texto);
  border: 1px solid var(--c-borda-forte);
  border-radius: var(--r-media);
  padding: var(--e-4);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Courier New", monospace;
  font-size: 0.92rem;
  line-height: 1.65;
  resize: vertical;
  transition: var(--t-rapida);
}
.relatorio-editor:focus {
  outline: none;
  border-color: var(--c-azul);
  background: var(--c-superficie);
}

.relatorio-rodape {
  padding: var(--e-3) var(--e-4);
  background: var(--c-superficie);
  border-left: 3px solid var(--c-dourado);
  border-radius: var(--r-pequena);
  margin-bottom: var(--e-5);
}
.relatorio-rodape p {
  margin: 0;
  font-size: 0.9rem;
  color: var(--c-texto-suave);
  line-height: 1.5;
}

@media (max-width: 720px) {
  .gestor-aluno-cabecalho {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .aluno-linha {
    flex-wrap: wrap;
  }
  .aluno-status {
    font-size: 0.66rem;
    padding: 0.25rem 0.55rem;
  }
  .aluno-seta { display: none; }
  .gestor-tabela th,
  .gestor-tabela td {
    padding: var(--e-2);
    font-size: 0.85rem;
  }
  /* Tooltip não aparece em mobile — só modal */
  .card-tooltip { display: none; }
  /* Modal usa toda a largura no mobile */
  .explicacao-modal {
    padding: var(--e-4);
  }
  .dash-saudacao-com-foto {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .dash-foto { width: 80px; height: 80px; }
  .dash-foto-iniciais { font-size: 1.7rem; }
  .nav-marca-texto { display: none; }
  /* Menu mobile: links viram painel dropdown acionado pelo hambúrguer */
  .nav-links {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--c-fundo, #0d0d0d);
    border-top: 1px solid var(--c-borda, rgba(255,255,255,0.1));
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    padding: var(--e-2);
    z-index: 200;
  }
  .nav-links.aberto { display: flex; }
  .nav-links a,
  .nav-links a:not(.btn),
  .nav-links a.btn {
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.9rem 1rem;
    margin: 0.15rem 0;
    white-space: nowrap;
  }
  .nav-hamburguer { display: flex; }
  .hero { padding: var(--e-6) 0; }
  .hero-logo { max-width: 360px; }
  .secao { padding: var(--e-6) 0; }
  table.bloco-soar-tabela th,
  table.bloco-soar-tabela td.bloco-soar-celula { width: 50px; padding-left: 2px; padding-right: 2px; }
  .soar-btn { width: 32px; height: 32px; font-size: 1rem; }
  .escala-qe { gap: 4px; }
  .escala-qe label { padding: var(--e-2) 4px; font-size: 0.7rem; }
  .escala-qe-numero { font-size: 1.3rem; }
  .anam-conteudo { padding: var(--e-4) var(--e-3) var(--e-7); }
  .anam-cabec h2 { font-size: 1.6rem; }
}
@media (max-width: 480px) {
  .auth-card { padding: var(--e-4); }
  .pilares { grid-template-columns: 1fr; }
  .escala-10 label { min-width: 32px; padding: var(--e-2) 2px; font-size: 0.92rem; }
}

/* ============================================================
   v33 — Layout split (editor + prévia renderizada)
   ============================================================ */

.relatorio-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--e-4);
  margin-bottom: var(--e-5);
}

.relatorio-split-coluna {
  display: flex;
  flex-direction: column;
  min-width: 0; /* impede overflow horizontal */
}

.relatorio-split-cabec {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--e-2);
}

.relatorio-split-titulo {
  margin: 0;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-texto-suave);
  font-weight: var(--p-medium);
}

.relatorio-split-coluna .relatorio-editor {
  flex: 1;
  min-height: 600px;
}

/* Prévia renderizada do markdown */
.relatorio-previa {
  flex: 1;
  min-height: 600px;
  background: var(--c-superficie);
  color: var(--c-texto);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  padding: var(--e-4) var(--e-5);
  overflow-y: auto;
  line-height: 1.65;
  font-size: 0.95rem;
}

.relatorio-previa h1,
.relatorio-previa h2,
.relatorio-previa h3 {
  color: var(--c-creme);
  margin-top: var(--e-4);
  margin-bottom: var(--e-2);
  font-weight: var(--p-medium);
  line-height: 1.3;
}
.relatorio-previa h1:first-child,
.relatorio-previa h2:first-child {
  margin-top: 0;
}
.relatorio-previa h1 {
  font-size: 1.6rem;
  padding-bottom: var(--e-2);
  border-bottom: 1px solid var(--c-borda);
}
.relatorio-previa h2 {
  font-size: 1.25rem;
  color: var(--c-dourado);
}
.relatorio-previa h3 {
  font-size: 1.05rem;
  color: var(--c-creme);
}
.relatorio-previa p {
  margin: 0 0 var(--e-3) 0;
}
.relatorio-previa strong {
  color: var(--c-creme);
  font-weight: var(--p-medium);
}
.relatorio-previa em {
  color: var(--c-dourado);
  font-style: italic;
}
.relatorio-previa ul,
.relatorio-previa ol {
  margin: 0 0 var(--e-3) 0;
  padding-left: var(--e-4);
}
.relatorio-previa li {
  margin-bottom: var(--e-1);
}
.relatorio-previa hr {
  border: none;
  border-top: 1px solid var(--c-borda);
  margin: var(--e-4) 0;
}
.relatorio-previa code {
  background: var(--c-preto-suave);
  padding: 0.15em 0.4em;
  border-radius: 3px;
  font-size: 0.88em;
}

/* Botão "Ver versão aluno" (Seção 3-ALUNO) */
.btn-ver-aluno {
  font-size: 0.78rem;
  padding: 0.35rem 0.8rem;
  background: transparent;
  border: 1px solid var(--c-dourado);
  color: var(--c-dourado);
  border-radius: var(--r-pequena);
  cursor: pointer;
  transition: var(--t-rapida);
}
.btn-ver-aluno:hover {
  background: var(--c-dourado);
  color: var(--c-preto);
}

/* Mobile: tabs em vez de duas colunas */
@media (max-width: 900px) {
  .relatorio-split {
    grid-template-columns: 1fr;
  }
  .relatorio-split-tabs {
    display: flex;
    border-bottom: 1px solid var(--c-borda);
    margin-bottom: var(--e-3);
  }
  .relatorio-split-tab {
    flex: 1;
    padding: var(--e-3) var(--e-2);
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    color: var(--c-texto-suave);
    font-size: 0.85rem;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.05em;
  }
  .relatorio-split-tab.ativa {
    color: var(--c-dourado);
    border-bottom-color: var(--c-dourado);
  }
  .relatorio-split-coluna.escondida {
    display: none;
  }
}
@media (min-width: 901px) {
  .relatorio-split-tabs { display: none; }
}

/* ============================================================
   v33 — Tela de prévia do PDF (gestor-pdf-preview.html)
   ============================================================ */

.pdf-preview-wrap {
  max-width: 900px;
  margin: 0 auto;
}

.pdf-preview-acoes {
  display: flex;
  flex-wrap: wrap;
  gap: var(--e-3);
  margin-bottom: var(--e-4);
  align-items: center;
}

.pdf-preview-info {
  background: rgba(217, 165, 48, 0.08);
  border: 1px solid var(--c-dourado);
  border-radius: var(--r-pequena);
  padding: var(--e-3) var(--e-4);
  margin-bottom: var(--e-4);
  color: var(--c-creme);
  font-size: 0.9rem;
  line-height: 1.5;
}

/* O "papel" do PDF — fundo branco, tipografia serifada */
.pdf-papel {
  background: #f7f3ec;
  color: #1c1b18;
  padding: 56px 64px;
  border-radius: var(--r-pequena);
  font-family: Georgia, "Times New Roman", serif;
  line-height: 1.7;
  font-size: 15px;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
  margin-bottom: var(--e-4);
}

.pdf-papel-cabec {
  text-align: center;
  border-bottom: 2px solid #c89938;
  padding-bottom: 24px;
  margin-bottom: 28px;
}
.pdf-papel-cabec img {
  max-width: 110px;
  height: auto;
  margin-bottom: 12px;
}
.pdf-papel-cabec .pdf-programa {
  font-size: 0.85rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: #6b6256;
  margin: 0;
}

.pdf-papel-titulo {
  text-align: center;
  font-size: 1.7rem;
  margin: 24px 0 4px 0;
  color: #1c1b18;
  font-weight: 600;
}
.pdf-papel-subtitulo {
  text-align: center;
  font-size: 0.95rem;
  color: #6b6256;
  margin: 0 0 32px 0;
}

.pdf-papel h2 {
  font-size: 1.2rem;
  color: #1c1b18;
  margin: 32px 0 12px 0;
  padding-bottom: 6px;
  border-bottom: 1px solid #d8cdb8;
  font-weight: 600;
}
.pdf-papel h3 {
  font-size: 1.05rem;
  color: #1c1b18;
  margin: 24px 0 10px 0;
  font-weight: 600;
}
.pdf-papel p {
  margin: 0 0 14px 0;
}
.pdf-papel strong { color: #1c1b18; font-weight: 600; }
.pdf-papel em { color: #6b6256; font-style: italic; }
.pdf-papel ul,
.pdf-papel ol {
  margin: 0 0 14px 0;
  padding-left: 22px;
}
.pdf-papel li { margin-bottom: 6px; }

.pdf-papel-rodape {
  margin-top: 48px;
  padding-top: 20px;
  border-top: 1px solid #d8cdb8;
  font-size: 0.8rem;
  color: #6b6256;
  text-align: center;
  font-style: italic;
}

/* Editor inline da Seção 3-ALUNO na tela de prévia */
.pdf-secao-editavel {
  position: relative;
}
.pdf-secao-editavel.editando {
  background: rgba(217, 165, 48, 0.12);
  border-left: 3px solid #c89938;
  padding: 8px 16px;
  margin: 8px -16px;
}
.pdf-secao-editavel-toolbar {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

.pdf-editor-textarea {
  width: 100%;
  min-height: 200px;
  background: #fff;
  color: #1c1b18;
  border: 1px solid #c89938;
  border-radius: var(--r-pequena);
  padding: 14px;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 14px;
  line-height: 1.6;
  resize: vertical;
}
.pdf-editor-textarea:focus {
  outline: none;
  border-color: #1c1b18;
}

@media (max-width: 720px) {
  .pdf-papel { padding: 32px 24px; }
  .pdf-papel-titulo { font-size: 1.35rem; }
}

/* ============================================================
   v33 — Aviso de Plano de Ação disponível no painel-aluno
   ============================================================ */

.aluno-plano-aviso {
  background: linear-gradient(135deg,
    rgba(217, 165, 48, 0.12) 0%,
    rgba(217, 165, 48, 0.04) 100%);
  border: 1px solid var(--c-dourado);
  border-left: 4px solid var(--c-dourado);
  border-radius: var(--r-media);
  padding: var(--e-4);
  margin-bottom: var(--e-4);
  display: flex;
  align-items: center;
  gap: var(--e-3);
  flex-wrap: wrap;
}
.aluno-plano-aviso-texto {
  flex: 1;
  min-width: 200px;
}
.aluno-plano-aviso-texto strong {
  color: var(--c-dourado);
  display: block;
  margin-bottom: 4px;
}
.aluno-plano-aviso-texto small {
  color: var(--c-texto-suave);
  font-size: 0.82rem;
}


/* ============================================================
   v37 — Tela "Meu Perfil" do aluno (REDESIGN)
   ============================================================
   Estrutura: introdução → gráfico → cards ordenados (dominante,
   secundário, fracos) → QI/QE com barras de progresso → encerramento
   ============================================================ */

.perfil-aluno-wrap {
  max-width: 880px;
  margin: 0 auto;
}

/* ─── Introdução ─── */
.perfil-aluno-intro {
  background: rgba(217, 165, 48, 0.04);
  border-left: 3px solid var(--c-dourado);
  border-radius: var(--r-pequena);
  padding: var(--e-4) var(--e-5);
  margin-bottom: var(--e-6);
  color: var(--c-texto);
  line-height: 1.7;
  font-size: 0.97rem;
}
.perfil-aluno-intro p { margin: 0 0 var(--e-3) 0; }
.perfil-aluno-intro p:last-child { margin-bottom: 0; }
.perfil-aluno-intro strong { color: var(--c-texto); }

/* ─── Cabeçalhos de seção ─── */
.perfil-secao { margin-bottom: var(--e-7); }
.perfil-secao-titulo {
  font-size: 1.6rem;
  margin: 0 0 var(--e-2) 0;
  color: var(--c-dourado);
  font-weight: var(--p-medium);
  letter-spacing: 0.02em;
}
.perfil-secao-abertura {
  color: var(--c-texto);
  line-height: 1.65;
  margin-bottom: var(--e-5);
}
.perfil-secao-abertura p { margin: 0 0 var(--e-3) 0; }
.perfil-secao-abertura strong { color: var(--c-texto); }
.perfil-secao-abertura ul {
  list-style: none;
  padding-left: 0;
  margin: var(--e-3) 0;
}
.perfil-secao-abertura li {
  padding: var(--e-2) 0 var(--e-2) var(--e-3);
  border-left: 2px solid var(--c-borda);
  margin-bottom: 4px;
}

/* ═══════════════════════════════════════════════════════════
   GRÁFICO DE BARRAS HORIZONTAIS
   ═══════════════════════════════════════════════════════════ */

.perfil-grafico-wrap {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  padding: var(--e-4) var(--e-5);
  margin-bottom: var(--e-5);
}
.perfil-grafico-titulo {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-dourado);
  margin: 0 0 var(--e-3) 0;
  font-weight: var(--p-medium);
}
.perfil-grafico-linha {
  display: grid;
  grid-template-columns: 120px 1fr 50px;
  align-items: center;
  gap: var(--e-3);
  margin-bottom: 10px;
}
.perfil-grafico-linha:last-of-type { margin-bottom: 0; }

@media (max-width: 600px) {
  .perfil-grafico-linha {
    grid-template-columns: 95px 1fr 42px;
    gap: var(--e-2);
  }
}

.perfil-grafico-nome {
  font-size: 0.93rem;
  font-weight: var(--p-medium);
  color: var(--c-texto);
}
.perfil-grafico-nome.dominante { color: var(--c-texto); }
.perfil-grafico-nome.secundario { color: var(--c-texto); }
.perfil-grafico-nome.fraco {
  color: var(--c-texto-suave);
  font-weight: var(--p-regular);
}

.perfil-grafico-trilho {
  height: 22px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 4px;
  position: relative;
  border: 1px solid var(--c-borda);
  overflow: hidden;
}
.perfil-grafico-trilho.bipolar::before {
  /* Linha vertical do zero, visível no meio */
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--c-borda);
  transform: translateX(-0.5px);
  z-index: 2;
}
.perfil-grafico-zero {
  display: none; /* já tratado pelo ::before */
}

.perfil-grafico-barra {
  position: absolute;
  top: 0;
  bottom: 0;
  border-radius: 3px;
  transition: var(--t-rapida);
}
.perfil-grafico-barra.dominante {
  background: var(--c-dourado);
}
.perfil-grafico-barra.secundario {
  background: rgba(217, 165, 48, 0.55);
}
.perfil-grafico-barra.fraco {
  background: rgba(180, 175, 165, 0.3);
}
.perfil-grafico-barra.negativa {
  background: rgba(180, 175, 165, 0.3);
}

.perfil-grafico-valor {
  font-size: 0.95rem;
  font-weight: var(--p-medium);
  text-align: right;
  font-variant-numeric: tabular-nums;
}
.perfil-grafico-valor.dominante { color: var(--c-dourado); }
.perfil-grafico-valor.secundario { color: var(--c-dourado); }
.perfil-grafico-valor.fraco {
  color: var(--c-texto-suave);
  font-weight: var(--p-regular);
}

/* Legenda do gráfico */
.perfil-grafico-legenda {
  display: flex;
  flex-wrap: wrap;
  gap: var(--e-4);
  margin-top: var(--e-3);
  padding-top: var(--e-3);
  border-top: 1px solid var(--c-borda);
  font-size: 0.78rem;
  color: var(--c-texto-suave);
}
.perfil-grafico-legenda-item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.perfil-grafico-legenda-cor {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  display: inline-block;
}
.perfil-grafico-legenda-cor.dominante { background: var(--c-dourado); }
.perfil-grafico-legenda-cor.secundario { background: rgba(217, 165, 48, 0.55); }
.perfil-grafico-legenda-cor.fraco { background: rgba(180, 175, 165, 0.3); }

/* ═══════════════════════════════════════════════════════════
   CARDS ORDENADOS (DOMINANTE → SECUNDÁRIO → FRACOS)
   ═══════════════════════════════════════════════════════════ */

.perfil-detalhes-titulo {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-dourado);
  margin: 0 0 var(--e-3) 0;
  font-weight: var(--p-medium);
}

.perfil-card-v37 {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  padding: var(--e-4) var(--e-5);
  margin-bottom: var(--e-3);
  transition: var(--t-rapida);
}

/* Dominante: card em destaque, borda grossa dourada */
.perfil-card-v37.dominante {
  border: 2px solid var(--c-dourado);
  background: linear-gradient(135deg,
    rgba(217, 165, 48, 0.08) 0%,
    rgba(217, 165, 48, 0.02) 100%);
  box-shadow: 0 4px 16px rgba(217, 165, 48, 0.1);
}

/* Secundário: card cheio, borda fina dourada */
.perfil-card-v37.secundario {
  border: 1px solid var(--c-dourado);
  background: rgba(217, 165, 48, 0.03);
}

/* Fraco: card menor, fundo apagado */
.perfil-card-v37.fraco {
  background: rgba(255, 255, 255, 0.015);
  border-color: var(--c-borda);
  opacity: 0.85;
  padding: var(--e-3) var(--e-5);
}

/* Cabeçalho do card */
.perfil-card-cabec {
  display: flex;
  align-items: center;
  gap: var(--e-2);
  margin-bottom: var(--e-3);
  padding-bottom: var(--e-2);
  border-bottom: 1px solid var(--c-borda);
  flex-wrap: wrap;
}
.perfil-card-letra-bloco {
  display: flex;
  align-items: baseline;
  gap: var(--e-2);
}
.perfil-card-letra {
  font-size: 1.8rem;
  font-weight: var(--p-medium);
  line-height: 1;
}
.perfil-card-letra.dominante { color: var(--c-dourado); }
.perfil-card-letra.secundario { color: var(--c-dourado); }
.perfil-card-letra.fraco {
  color: var(--c-texto-suave);
  font-size: 1.5rem;
}

.perfil-card-nome {
  font-size: 1.15rem;
  font-weight: var(--p-medium);
  color: var(--c-texto);
  margin: 0;
}
.perfil-card-v37.fraco .perfil-card-nome {
  color: var(--c-texto);
  font-size: 1rem;
}

/* Tag "DOMINANTE" / "SECUNDÁRIO" */
.perfil-card-tag {
  display: inline-block;
  font-size: 0.68rem;
  padding: 3px 10px;
  border-radius: 999px;
  font-weight: var(--p-medium);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.perfil-card-tag.dominante {
  background: var(--c-dourado);
  color: var(--c-preto);
}
.perfil-card-tag.secundario {
  background: transparent;
  color: var(--c-dourado);
  border: 1px solid var(--c-dourado);
}

.perfil-card-pontuacao {
  margin-left: auto;
  font-size: 0.95rem;
  font-variant-numeric: tabular-nums;
}
.perfil-card-pontuacao.dominante { color: var(--c-dourado); font-weight: var(--p-medium); }
.perfil-card-pontuacao.secundario { color: var(--c-dourado); }
.perfil-card-pontuacao.fraco { color: var(--c-texto-suave); }

/* Descrição inicial */
.perfil-card-descricao {
  color: var(--c-texto);
  line-height: 1.6;
  font-size: 0.95rem;
  margin: 0 0 var(--e-3) 0;
}
.perfil-card-v37.fraco .perfil-card-descricao {
  font-size: 0.9rem;
  color: var(--c-texto-suave);
}

/* Blocos Força/Armadilha/Caminho */
.perfil-card-bloco { margin-bottom: var(--e-3); }
.perfil-card-bloco:last-child { margin-bottom: 0; }
.perfil-card-bloco-titulo {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-dourado);
  margin: 0 0 4px 0;
  font-weight: var(--p-medium);
}
.perfil-card-v37.fraco .perfil-card-bloco-titulo {
  color: var(--c-texto-suave);
}
.perfil-card-bloco p {
  margin: 0;
  color: var(--c-texto);
  line-height: 1.6;
  font-size: 0.92rem;
}
.perfil-card-v37.fraco .perfil-card-bloco p {
  color: var(--c-texto-suave);
  font-size: 0.88rem;
}

/* ═══════════════════════════════════════════════════════════
   QI e QE — cards únicos
   ═══════════════════════════════════════════════════════════ */

.perfil-card-unico {
  background: var(--c-superficie);
  border: 1px solid var(--c-dourado);
  border-radius: var(--r-media);
  padding: var(--e-5);
}
.perfil-card-unico-cabec {
  display: flex;
  align-items: baseline;
  gap: var(--e-3);
  margin-bottom: var(--e-4);
  padding-bottom: var(--e-3);
  border-bottom: 1px solid var(--c-borda);
}
.perfil-card-unico-pontuacao {
  font-size: 2.8rem;
  font-weight: var(--p-medium);
  color: var(--c-dourado);
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.perfil-card-unico-faixa {
  font-size: 0.85rem;
  color: var(--c-texto-suave);
  margin: 0;
}
.perfil-card-unico-titulo {
  font-size: 1.15rem;
  color: var(--c-texto);
  font-weight: var(--p-medium);
  margin: var(--e-4) 0 var(--e-3) 0;
}
.perfil-card-unico-corpo {
  color: var(--c-texto);
  line-height: 1.7;
}
.perfil-card-unico-corpo p { margin: 0 0 var(--e-3) 0; }
.perfil-card-unico-corpo p:last-child { margin-bottom: 0; }
.perfil-card-unico-corpo strong { color: var(--c-texto); }

/* ═══════════════════════════════════════════════════════════
   QE PILARES COM BARRAS DE PROGRESSO
   ═══════════════════════════════════════════════════════════ */

.perfil-qe-titulo {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--c-dourado);
  margin: 0 0 var(--e-3) 0;
  font-weight: var(--p-medium);
}

.perfil-qe-barras {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.perfil-qe-barra-linha {
  display: grid;
  grid-template-columns: 1fr 1.5fr 65px;
  align-items: center;
  gap: var(--e-3);
}

@media (max-width: 600px) {
  .perfil-qe-barra-linha {
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .perfil-qe-barra-trilho { order: 3; }
  .perfil-qe-barra-valor { order: 2; text-align: left !important; }
}

.perfil-qe-barra-nome {
  font-size: 0.9rem;
  color: var(--c-texto);
  display: flex;
  align-items: center;
  gap: var(--e-2);
  flex-wrap: wrap;
}
.perfil-qe-barra-nome.fraco { color: rgba(200, 100, 60, 0.95); }
.perfil-qe-barra-nome.forte { color: var(--c-dourado); font-weight: var(--p-medium); }

.perfil-qe-tag-fraco {
  font-size: 0.62rem;
  background: rgba(200, 100, 60, 0.18);
  color: rgba(220, 130, 90, 1);
  padding: 2px 8px;
  border-radius: 999px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: var(--p-medium);
}

.perfil-qe-barra-trilho {
  height: 10px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 5px;
  overflow: hidden;
  border: 1px solid var(--c-borda);
}
.perfil-qe-barra-progresso {
  height: 100%;
  background: rgba(217, 165, 48, 0.55);
  border-radius: 4px;
  transition: var(--t-padrao);
}
.perfil-qe-barra-progresso.forte { background: var(--c-dourado); }
.perfil-qe-barra-progresso.fraco { background: rgba(200, 100, 60, 0.85); }

.perfil-qe-barra-valor {
  font-size: 0.9rem;
  text-align: right;
  font-variant-numeric: tabular-nums;
  color: var(--c-texto);
}
.perfil-qe-barra-valor.forte { color: var(--c-dourado); font-weight: var(--p-medium); }
.perfil-qe-barra-valor.fraco { color: rgba(200, 100, 60, 0.95); }

/* ─── Encerramento ─── */
.perfil-encerramento {
  background: rgba(217, 165, 48, 0.04);
  border-left: 3px solid var(--c-dourado);
  border-radius: var(--r-pequena);
  padding: var(--e-4) var(--e-5);
  margin-top: var(--e-6);
  color: var(--c-texto);
  line-height: 1.7;
}
.perfil-encerramento p { margin: 0 0 var(--e-3) 0; }
.perfil-encerramento p:last-child { margin-bottom: 0; }
.perfil-encerramento strong { color: var(--c-texto); }
.perfil-encerramento ol {
  padding-left: var(--e-4);
  margin: var(--e-3) 0;
}
.perfil-encerramento li { margin-bottom: var(--e-2); }

/* ============================================================
   v38 — Botão "Baixar em PDF" no topo da tela de perfil
   ============================================================ */

.perfil-pdf-acao {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  flex-wrap: wrap;
  margin: var(--e-3) 0 var(--e-5) 0;
  padding: var(--e-3) var(--e-4);
  background: rgba(217, 165, 48, 0.05);
  border: 1px dashed var(--c-dourado);
  border-radius: var(--r-pequena);
}

.perfil-pdf-acao .btn {
  flex-shrink: 0;
}

.perfil-pdf-acao .btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.perfil-pdf-acao .btn .spinner {
  display: inline-block;
  width: 12px;
  height: 12px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: -2px;
  margin-right: 6px;
  animation: spin 0.7s linear infinite;
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.perfil-pdf-acao-aviso {
  margin: 0;
  font-size: 0.88rem;
  color: var(--c-texto-suave);
  line-height: 1.4;
  flex: 1;
  min-width: 200px;
}

.perfil-pdf-acao-aviso.sucesso {
  color: var(--c-sucesso);
  font-weight: var(--p-medium);
}

.perfil-pdf-acao-aviso.erro {
  color: var(--c-erro);
}

@media (max-width: 600px) {
  .perfil-pdf-acao {
    flex-direction: column;
    align-items: stretch;
  }
  .perfil-pdf-acao .btn {
    width: 100%;
    text-align: center;
  }
}

/* ============================================================
   v39 — Status do email de notificação ao aluno
   ============================================================ */

.relatorio-email-bloco {
  margin: var(--e-4) 0 var(--e-2) 0;
  display: flex;
  align-items: center;
  gap: var(--e-3);
  flex-wrap: wrap;
}

.relatorio-email-status {
  flex: 1;
  min-width: 240px;
  padding: var(--e-3) var(--e-4);
  border-radius: var(--r-pequena);
  border: 1px solid transparent;
  display: flex;
  align-items: flex-start;
  gap: var(--e-3);
}

.relatorio-email-status.sucesso {
  background: rgba(46, 160, 67, 0.08);
  border-color: rgba(46, 160, 67, 0.25);
  color: #c5e8c8;
}

.relatorio-email-status.erro {
  background: rgba(229, 122, 51, 0.1);
  border-color: rgba(229, 122, 51, 0.35);
  color: #f0c8a8;
}

.relatorio-email-status.pendente {
  background: rgba(217, 165, 48, 0.08);
  border-color: rgba(217, 165, 48, 0.3);
  color: var(--c-texto-suave);
}

.relatorio-email-info {
  flex: 1;
  min-width: 0;
}

.relatorio-email-info strong {
  display: block;
  font-size: 0.93rem;
  margin-bottom: 2px;
  color: inherit;
}

.relatorio-email-info p {
  margin: 0;
  font-size: 0.85rem;
  line-height: 1.45;
  color: inherit;
  opacity: 0.85;
  word-break: break-word;
}

#btn-reenviar-email {
  flex-shrink: 0;
}

#btn-reenviar-email:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

#btn-reenviar-email .spinner {
  display: inline-block;
  width: 11px;
  height: 11px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  vertical-align: -1px;
  margin-right: 5px;
  animation: spin 0.7s linear infinite;
}

@media (max-width: 600px) {
  .relatorio-email-bloco {
    flex-direction: column;
    align-items: stretch;
  }
  #btn-reenviar-email {
    width: 100%;
    text-align: center;
  }
}

/* ============================================================
   v40 — AULAS EM VÍDEO (aluno + gestor)
   ============================================================ */

/* ----- Barra de progresso reutilizável ----- */
.barra-prog {
  width: 100%;
  height: 6px;
  background: var(--c-borda);
  border-radius: var(--r-pilula);
  overflow: hidden;
}
.barra-prog-grande { height: 12px; }
.barra-prog-fill {
  height: 100%;
  background: var(--c-dourado);
  border-radius: var(--r-pilula);
  transition: width 0.4s ease;
}

/* ----- Progresso geral (topo da lista do aluno) ----- */
.aulas-progresso-geral {
  max-width: 760px;
  margin: 0 auto var(--e-5);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  padding: var(--e-4);
  box-shadow: var(--sombra-card);
}
.aulas-progresso-geral-texto {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: var(--e-2);
}
.aulas-progresso-geral-texto strong { color: var(--c-texto); }
.aulas-progresso-geral-texto span {
  font-family: var(--f-display);
  font-size: 1.25rem;
  color: var(--c-dourado);
  font-weight: 700;
}

/* ----- Lista de aulas do aluno ----- */
.aulas-lista { max-width: 980px; margin: 0 auto; }
.aulas-modulo { margin-bottom: var(--e-6); }
.aulas-modulo-cabecalho {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  margin-bottom: var(--e-3);
  padding-bottom: var(--e-2);
  border-bottom: 2px solid var(--c-borda);
}
.aulas-modulo-cabecalho h2 {
  margin: 0;
  font-family: var(--f-display);
  font-size: 1.4rem;
}
.aulas-modulo-contador {
  margin-left: auto;
  font-size: 0.9rem;
  color: var(--c-texto-fraco);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pilula);
  padding: 0.15rem 0.7rem;
}
.aulas-modulo-itens {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--e-4);
}

/* ----- Card de aula (aluno) ----- */
.aula-card {
  display: flex;
  flex-direction: column;
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  box-shadow: var(--sombra-card);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.aula-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--sombra-elevacao);
  border-color: var(--c-dourado);
}
.aula-card-concluida { border-color: var(--c-sucesso); }
.aula-card-thumb {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--c-borda);
  overflow: hidden;
}
.aula-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aula-card-play {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 52px; height: 52px;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,0.6);
  color: #fff;
  border-radius: 50%;
  font-size: 1.1rem;
  padding-left: 4px;
  transition: background 0.18s ease;
}
.aula-card:hover .aula-card-play { background: var(--c-dourado); }
.aula-card-check {
  position: absolute;
  top: 8px; right: 8px;
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  background: var(--c-sucesso);
  color: #fff;
  border-radius: 50%;
  font-weight: 700;
  font-size: 0.9rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.25);
}
.aula-card-corpo {
  display: flex;
  flex-direction: column;
  gap: var(--e-2);
  padding: var(--e-3) var(--e-4) var(--e-4);
  flex: 1;
}
.aula-card-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.78rem;
  color: var(--c-texto-fraco);
}
.aula-card-num {
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.aula-card-corpo strong {
  font-family: var(--f-display);
  font-size: 1.05rem;
  line-height: 1.3;
}
.aula-card-desc {
  font-size: 0.88rem;
  color: var(--c-texto-suave);
  margin: 0;
  flex: 1;
}
.aula-card-rodape {
  display: flex;
  flex-direction: column;
  gap: var(--e-2);
  margin-top: auto;
}
.aula-card-acao {
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--c-dourado);
}

/* ----- Página do player (aluno) ----- */
.video-pagina {
  max-width: 860px;
  margin: 0 auto;
  padding: var(--e-5) var(--e-4) var(--e-8);
}
.video-voltar {
  display: inline-block;
  margin-bottom: var(--e-4);
  font-size: 0.9rem;
  color: var(--c-texto-suave);
  text-decoration: none;
}
.video-voltar:hover { color: var(--c-dourado); }
.video-cabecalho { margin-bottom: var(--e-4); }
.video-cabecalho h1 {
  margin: var(--e-1) 0 0;
  font-family: var(--f-display);
}
.video-palco {
  position: relative;
  aspect-ratio: 16 / 9;
  width: 100%;
  background: #000;
  border-radius: var(--r-media);
  overflow: hidden;
  box-shadow: var(--sombra-elevacao);
}
.video-palco iframe,
.video-palco #player-youtube {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.video-status {
  margin-top: var(--e-3);
  font-size: 0.9rem;
  color: var(--c-texto-suave);
  min-height: 1.2em;
}
.video-status-ok { color: var(--c-sucesso); font-weight: 600; }
.video-status-erro { color: var(--c-erro); font-weight: 600; }
.video-descricao {
  margin-top: var(--e-5);
  padding: var(--e-4);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
}
.video-descricao p:last-child { margin-bottom: 0; }

/* ----- Estados vazios / carregando ----- */
.video-carregando {
  text-align: center;
  color: var(--c-texto-fraco);
  padding: var(--e-6) var(--e-4);
}
.video-vazio {
  max-width: 560px;
  margin: var(--e-6) auto;
  text-align: center;
  padding: var(--e-6) var(--e-4);
  background: var(--c-superficie);
  border: 1px dashed var(--c-borda-forte);
  border-radius: var(--r-media);
}
.video-vazio h3 { margin: var(--e-2) 0; font-family: var(--f-display); }

/* ============================================================
   v40 — GESTOR: CADASTRO DE AULAS
   ============================================================ */
.video-form-wrap {
  max-width: 760px;
  margin: 0 auto var(--e-6);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  padding: var(--e-5);
  box-shadow: var(--sombra-card);
}
.video-form-cabecalho {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--e-4);
}
.video-form-cabecalho h2 { margin: 0; font-family: var(--f-display); }
.video-form { display: flex; flex-direction: column; gap: var(--e-4); }
.video-form label {
  display: flex;
  flex-direction: column;
  gap: var(--e-1);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--c-texto);
}
.video-form input[type="text"],
.video-form input[type="number"],
.video-form textarea {
  font-family: var(--f-corpo);
  font-size: 1rem;
  font-weight: 400;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--c-borda-forte);
  border-radius: var(--r-pequena);
  background: var(--c-superficie);
  color: var(--c-texto);
}
.video-form input:focus,
.video-form textarea:focus {
  outline: none;
  border-color: var(--c-dourado);
  box-shadow: 0 0 0 3px rgba(0,0,0,0.04);
}
.video-form-linha {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--e-4);
}
.video-form-check {
  flex-direction: row !important;
  align-items: center;
  gap: var(--e-2) !important;
  align-self: end;
  padding-bottom: 0.65rem;
}
.video-form-check input { width: 18px; height: 18px; }
.campo-ajuda {
  font-weight: 400;
  font-size: 0.8rem;
  color: var(--c-texto-fraco);
}
.video-form-acoes {
  display: flex;
  justify-content: flex-end;
  gap: var(--e-3);
}
.video-preview { margin-top: var(--e-4); }
.video-preview-frame {
  aspect-ratio: 16 / 9;
  width: 100%;
  border-radius: var(--r-pequena);
  overflow: hidden;
  background: #000;
}
.video-preview-frame iframe { width: 100%; height: 100%; border: 0; }

/* Lista de aulas cadastradas (gestor) */
.video-lista-wrap { max-width: 760px; margin: 0 auto; }
.video-lista-wrap h2 { font-family: var(--f-display); margin-bottom: var(--e-3); }
.video-modulo-grupo { margin-bottom: var(--e-5); }
.video-modulo-titulo {
  font-family: var(--f-display);
  font-size: 1.1rem;
  padding-bottom: var(--e-1);
  border-bottom: 1px solid var(--c-borda);
  margin-bottom: var(--e-3);
}
.video-item {
  display: flex;
  align-items: center;
  gap: var(--e-3);
  padding: var(--e-3);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-pequena);
  margin-bottom: var(--e-2);
}
.video-item-thumb {
  width: 120px;
  flex-shrink: 0;
  aspect-ratio: 16 / 9;
  border-radius: var(--r-pequena);
  overflow: hidden;
  background: var(--c-borda);
}
.video-item-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.video-item-info { flex: 1; display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; }
.video-item-topo { display: flex; align-items: center; gap: var(--e-2); }
.video-item-ordem {
  font-weight: 700;
  font-size: 0.8rem;
  color: var(--c-texto-fraco);
}
.video-item-info strong { font-family: var(--f-display); font-size: 1rem; }
.video-item-info small { color: var(--c-texto-fraco); font-size: 0.8rem; }
.video-item-acoes { display: flex; flex-direction: column; gap: var(--e-1); flex-shrink: 0; }
.video-btn-excluir:hover { color: var(--c-erro); border-color: var(--c-erro); }
.video-badge {
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.1rem 0.5rem;
  border-radius: var(--r-pilula);
}
.video-badge-on { background: rgba(46,160,67,0.15); color: var(--c-sucesso); }
.video-badge-off { background: var(--c-borda); color: var(--c-texto-fraco); }

@media (max-width: 640px) {
  .video-form-linha { grid-template-columns: 1fr; }
  .video-item { flex-wrap: wrap; }
  .video-item-thumb { width: 90px; }
  .video-item-acoes { flex-direction: row; width: 100%; }
}

/* v41 — Link "já sou aluno" no hero */
.hero-ja-aluno {
  margin-top: var(--e-3);
  font-size: 0.95rem;
  color: var(--c-texto-suave);
}
.hero-ja-aluno a {
  color: var(--c-dourado);
  font-weight: 600;
  text-decoration: none;
}
.hero-ja-aluno a:hover { text-decoration: underline; }

/* v42 — Linha de autoridade no hero */
.hero-autoridade {
  margin-top: var(--e-3);
  font-size: 0.95rem;
  color: var(--c-texto-suave);
  letter-spacing: 0.01em;
}
.hero-autoridade strong { color: var(--c-texto); }

/* ============================================================
   v44 — GESTOR: ACESSOS PAGOS (Kiwify)
   ============================================================ */
.acessos-resumo {
  display: flex;
  gap: var(--e-4);
  max-width: 760px;
  margin: 0 auto var(--e-5);
  flex-wrap: wrap;
}
.acessos-resumo-item {
  flex: 1;
  min-width: 140px;
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  padding: var(--e-4);
  text-align: center;
  box-shadow: var(--sombra-card);
}
.acessos-resumo-num {
  display: block;
  font-family: var(--f-display);
  font-size: 2.2rem;
  color: var(--c-dourado);
  line-height: 1;
}
.acessos-resumo-rotulo {
  display: block;
  margin-top: var(--e-1);
  font-size: 0.82rem;
  color: var(--c-texto-fraco);
}
.acessos-lista { max-width: 980px; margin: 0 auto; }
.acessos-tabela {
  border: 1px solid var(--c-borda);
  border-radius: var(--r-media);
  overflow: hidden;
  box-shadow: var(--sombra-card);
}
.acessos-linha {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr 1.2fr;
  gap: var(--e-2);
  align-items: center;
  padding: var(--e-3) var(--e-4);
  border-bottom: 1px solid var(--c-borda);
  font-size: 0.9rem;
}
.acessos-linha:last-child { border-bottom: none; }
.acessos-cabecalho {
  background: var(--c-superficie);
  font-weight: 700;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--c-texto-fraco);
}
.acessos-email {
  display: flex;
  flex-direction: column;
  word-break: break-all;
}
.acessos-email small { color: var(--c-texto-fraco); font-weight: 400; }
.acessos-conta-ok { color: var(--c-sucesso); font-weight: 600; font-size: 0.85rem; }
.acessos-conta-nao { color: var(--c-texto-fraco); font-size: 0.85rem; }
.acessos-pedido { font-family: monospace; font-size: 0.8rem; color: var(--c-texto-suave); }
.acessos-data { font-size: 0.82rem; color: var(--c-texto-fraco); }

@media (max-width: 720px) {
  .acessos-linha {
    grid-template-columns: 1fr 1fr;
    gap: var(--e-1);
  }
  .acessos-cabecalho { display: none; }
  .acessos-email { grid-column: 1 / -1; font-weight: 600; }
  .acessos-pedido, .acessos-data { font-size: 0.75rem; }
}

/* ============================================================
   v46 — MINHA JORNADA (trilha pedagógica)
   ============================================================ */

/* ----- Anel de progresso (página jornada) ----- */
.jornada-resumo {
  display: flex;
  align-items: center;
  gap: var(--e-5);
  max-width: 760px;
  margin: 0 auto var(--e-6);
  padding: var(--e-5);
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-radius: var(--r-grande);
}
.jornada-anel { position: relative; width: 120px; height: 120px; flex-shrink: 0; }
.jornada-anel-svg { width: 120px; height: 120px; }
.jornada-anel-bg { fill: none; stroke: var(--c-borda); stroke-width: 8; }
.jornada-anel-fill {
  fill: none; stroke: var(--c-dourado); stroke-width: 8; stroke-linecap: round;
  transition: stroke-dashoffset 0.8s ease;
}
.jornada-anel-texto {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.jornada-anel-num { font-family: var(--f-display); font-size: 1.9rem; color: var(--c-texto); line-height: 1; }
.jornada-anel-rotulo { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--c-texto-fraco); margin-top: 4px; }
.jornada-resumo-info h3 { margin: 0 0 var(--e-1); font-size: 1.3rem; color: var(--c-texto); }
.jornada-resumo-info p { margin: 0; color: var(--c-texto-suave); }

/* ----- Timeline vertical ----- */
.jornada-timeline { max-width: 760px; margin: 0 auto; position: relative; }
.jornada-fase-titulo {
  font-family: var(--f-display); font-size: 1.05rem; text-transform: uppercase;
  letter-spacing: 0.06em; color: var(--c-dourado);
  margin: var(--e-5) 0 var(--e-3); padding-left: 4px;
}
.jornada-modulo-rotulo {
  font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--c-texto-fraco); margin: var(--e-3) 0 var(--e-2); padding-left: 52px;
}
.jornada-item {
  position: relative; display: flex; gap: var(--e-3);
  padding-bottom: var(--e-4);
}
/* linha conectora */
.jornada-item::before {
  content: ""; position: absolute; left: 17px; top: 36px; bottom: -4px;
  width: 2px; background: var(--c-borda);
}
.jornada-item:last-child::before { display: none; }
.jornada-item-marca { flex-shrink: 0; z-index: 1; }
.jornada-item-icone {
  display: flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  font-size: 1rem; font-weight: 700;
  background: var(--c-superficie); border: 2px solid var(--c-borda); color: var(--c-texto-fraco);
}
.jornada-item-feito .jornada-item-icone { background: var(--c-dourado); border-color: var(--c-dourado); color: var(--c-preto); }
.jornada-item-feito::before { background: var(--c-dourado); }
.jornada-item-atual .jornada-item-icone { border-color: var(--c-dourado); color: var(--c-dourado); }
.jornada-item-bloqueado { opacity: 0.55; }
.jornada-item-conteudo { padding-top: 2px; }
.jornada-item-conteudo h3 { margin: 2px 0 var(--e-1); font-size: 1.12rem; color: var(--c-texto); }
.jornada-item-desc { margin: 0 0 var(--e-2); color: var(--c-texto-suave); font-size: 0.95rem; }

/* micro-passos */
.jornada-passos { display: flex; flex-wrap: wrap; gap: var(--e-2); margin-bottom: var(--e-2); }
.jornada-passo {
  font-size: 0.8rem; color: var(--c-texto-fraco);
  background: var(--c-superficie); border: 1px solid var(--c-borda);
  border-radius: var(--r-pilula); padding: 3px 10px;
}
.jornada-passo.ok { color: var(--c-sucesso); border-color: var(--c-sucesso); }

.btn-pequeno { padding: 7px 16px; font-size: 0.85rem; }

/* ----- Mini-resumo no painel ----- */
.jornada-mini {
  display: flex; align-items: center; gap: var(--e-3);
  max-width: 600px; margin: 0 auto var(--e-5);
  padding: var(--e-3) var(--e-4);
  background: var(--c-superficie); border: 1px solid var(--c-borda);
  border-radius: var(--r-grande); text-decoration: none;
  transition: border-color 0.2s ease, transform 0.2s ease;
}
.jornada-mini:hover { border-color: var(--c-dourado); transform: translateY(-2px); }
.jornada-mini-anel { position: relative; width: 60px; height: 60px; flex-shrink: 0; }
.jornada-mini-svg { width: 60px; height: 60px; }
.jornada-mini-svg .jornada-anel-bg { stroke-width: 5; }
.jornada-mini-svg .jornada-anel-fill { stroke-width: 5; }
.jornada-mini-num {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display); font-size: 0.92rem; color: var(--c-texto);
}
.jornada-mini-info { flex: 1; }
.jornada-mini-info .eyebrow { margin: 0 0 2px; }
.jornada-mini-info h3 { margin: 0 0 2px; font-size: 1.02rem; color: var(--c-texto); }
.jornada-mini-info p { margin: 0; font-size: 0.85rem; color: var(--c-texto-suave); }
.jornada-mini-seta { font-size: 1.3rem; color: var(--c-dourado); flex-shrink: 0; }

/* ----- Checklist de tarefas (página da aula) ----- */
.video-tarefas-bloco {
  margin-top: var(--e-4); padding: var(--e-4);
  background: var(--c-superficie); border: 1px solid var(--c-borda);
  border-radius: var(--r-grande);
}
.video-tarefas-topo { display: flex; justify-content: space-between; align-items: center; }
.video-tarefas-contador { font-size: 0.82rem; color: var(--c-dourado); font-weight: 600; }
.video-tarefas-bloco h3 { margin: var(--e-1) 0; font-size: 1.15rem; color: var(--c-texto); }
.video-tarefas-sub { margin: 0 0 var(--e-3); color: var(--c-texto-suave); font-size: 0.9rem; }
.tarefa-lista { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--e-2); }
.tarefa-item { display: flex; align-items: flex-start; gap: var(--e-2); }
.tarefa-check {
  flex-shrink: 0; width: 26px; height: 26px; margin-top: 1px;
  border-radius: 7px; border: 2px solid var(--c-borda-forte);
  background: transparent; color: var(--c-preto);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; cursor: pointer; transition: all 0.15s ease;
}
.tarefa-check:hover { border-color: var(--c-dourado); }
.tarefa-item.feita .tarefa-check { background: var(--c-dourado); border-color: var(--c-dourado); }
.tarefa-texto { color: var(--c-texto); line-height: 1.45; padding-top: 2px; }
.tarefa-item.feita .tarefa-texto { color: var(--c-texto-fraco); text-decoration: line-through; }

@media (max-width: 560px) {
  .jornada-resumo { flex-direction: column; text-align: center; }
  .jornada-mini { flex-wrap: wrap; }
}

/* ============================================================
   v47 — RODA DA VIDA (mapa de autoavaliação)
   ============================================================ */
.roda-aviso {
  background: rgba(242, 201, 76, 0.12);
  border: 1px solid var(--c-dourado);
  border-radius: var(--r-media);
  padding: var(--e-3) var(--e-4);
  color: var(--c-dourado-claro);
  margin-bottom: var(--e-4);
  max-width: 760px;
  margin-left: auto; margin-right: auto;
}

#roda-frentes-lista {
  max-width: 760px; margin: 0 auto;
  display: flex; flex-direction: column; gap: var(--e-3);
}
.roda-frente {
  background: var(--c-superficie);
  border: 1px solid var(--c-borda);
  border-left: 4px solid var(--frente-cor, var(--c-dourado));
  border-radius: var(--r-grande);
  padding: var(--e-4);
}
.roda-frente-cabecalho { display: flex; align-items: center; gap: var(--e-2); }
.roda-frente-bolha {
  width: 14px; height: 14px; border-radius: 50%;
  background: var(--frente-cor, var(--c-dourado)); flex-shrink: 0;
}
.roda-frente-cabecalho h3 { margin: 0; flex: 1; font-size: 1.15rem; color: var(--c-texto); }
.roda-frente-nota {
  font-family: var(--f-display); font-size: 1.5rem;
  color: var(--frente-cor, var(--c-dourado)); min-width: 2ch; text-align: right;
}
.roda-frente-desc { margin: var(--e-2) 0; color: var(--c-texto-suave); font-size: 0.92rem; line-height: 1.5; }
.roda-frente-versiculo { margin: 0 0 var(--e-3); color: var(--c-texto-fraco); font-size: 0.85rem; font-style: italic; }

.roda-slider {
  -webkit-appearance: none; appearance: none;
  width: 100%; height: 6px; border-radius: 3px;
  background: var(--c-borda-forte); outline: none; cursor: pointer;
}
.roda-slider::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--frente-cor, var(--c-dourado));
  border: 3px solid var(--c-preto); cursor: pointer;
}
.roda-slider::-moz-range-thumb {
  width: 24px; height: 24px; border-radius: 50%;
  background: var(--frente-cor, var(--c-dourado));
  border: 3px solid var(--c-preto); cursor: pointer;
}

.roda-form-acoes { max-width: 760px; margin: var(--e-5) auto 0; text-align: center; }

/* Resultado */
.roda-graficos {
  display: flex; flex-wrap: wrap; gap: var(--e-4);
  justify-content: center; max-width: 900px; margin: 0 auto var(--e-5);
}
.roda-grafico-card {
  background: var(--c-superficie); border: 1px solid var(--c-borda);
  border-radius: var(--r-grande); padding: var(--e-4);
  flex: 1 1 340px; max-width: 420px; text-align: center;
}
.roda-svg, .radar-svg { width: 100%; height: auto; max-width: 380px; }

.roda-resumo-notas { max-width: 600px; margin: 0 auto var(--e-5); }
.roda-nota-linha {
  display: flex; align-items: center; gap: var(--e-2);
  padding: var(--e-2) 0; border-bottom: 1px solid var(--c-borda);
}
.roda-nota-cor { width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; }
.roda-nota-nome { flex: 1; color: var(--c-texto); }
.roda-nota-valor { font-family: var(--f-display); font-size: 1.1rem; color: var(--c-texto); min-width: 2ch; }
.roda-nota-faixa {
  font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em;
  padding: 2px 8px; border-radius: var(--r-pilula);
}
.faixa-alerta { background: rgba(220,80,60,0.18); color: #e8806a; }
.faixa-construcao { background: rgba(242,201,76,0.16); color: var(--c-dourado-claro); }
.faixa-saudavel { background: rgba(127,176,105,0.16); color: #9bd17e; }
.faixa-florescente { background: rgba(110,192,176,0.18); color: #7fd4c2; }

.roda-plano-bloco {
  max-width: 720px; margin: 0 auto;
  background: var(--c-superficie); border: 1px solid var(--c-borda);
  border-radius: var(--r-grande); padding: var(--e-5);
}
.roda-plano-bloco h3 { margin: var(--e-1) 0 var(--e-2); color: var(--c-texto); }
.roda-plano-bloco .btn { margin-right: var(--e-2); margin-top: var(--e-2); }
.roda-plano-texto h4 {
  font-family: var(--f-display); color: var(--c-dourado);
  margin: var(--e-4) 0 var(--e-1); font-size: 1.1rem;
}
.roda-plano-texto p { margin: 0 0 var(--e-2); color: var(--c-texto-suave); line-height: 1.6; }

@media (max-width: 560px) {
  .roda-graficos { flex-direction: column; align-items: center; }
}

/* ============================================================
   v48 — PASSO A PASSO PEDAGÓGICO (painel do aluno)
   ============================================================ */
.passos-titulo { max-width: 760px; margin: 0 auto var(--e-4); }
.passos-titulo h2 { margin: var(--e-1) 0; font-size: 1.6rem; color: var(--c-texto); }
.passos-titulo p { margin: 0; color: var(--c-texto-suave); }

.passos-lista { max-width: 760px; margin: 0 auto; position: relative; }

.passo {
  position: relative; display: flex; gap: var(--e-3);
  padding-bottom: var(--e-4);
}
/* linha conectora vertical */
.passo::before {
  content: ""; position: absolute; left: 23px; top: 48px; bottom: -4px;
  width: 2px; background: var(--c-borda);
}
.passo:last-child::before { display: none; }

.passo-num { flex-shrink: 0; z-index: 1; }
.passo-num span {
  display: flex; align-items: center; justify-content: center;
  width: 48px; height: 48px; border-radius: 50%;
  font-family: var(--f-display); font-size: 1.3rem; font-weight: 700;
  background: var(--c-superficie); border: 2px solid var(--c-borda-forte);
  color: var(--c-texto-fraco);
}
.passo-feito .passo-num span { background: var(--c-dourado); border-color: var(--c-dourado); color: var(--c-preto); }
.passo-feito::before { background: var(--c-dourado); }
.passo-atual .passo-num span { border-color: var(--c-dourado); color: var(--c-dourado); }
.passo-aguardando .passo-num span { border-color: var(--c-dourado-claro); color: var(--c-dourado-claro); border-style: dashed; }
.passo-bloqueado { opacity: 0.5; }
.passo-bloqueado .passo-num span { font-size: 1rem; }

.passo-corpo {
  flex: 1; padding: var(--e-3) var(--e-4);
  background: var(--c-superficie); border: 1px solid var(--c-borda);
  border-radius: var(--r-grande);
}
.passo-atual .passo-corpo { border-color: var(--c-dourado); }
.passo-cabecalho { display: flex; justify-content: space-between; align-items: center; gap: var(--e-2); flex-wrap: wrap; }
.passo-corpo h3 { margin: 2px 0 var(--e-1); font-size: 1.2rem; color: var(--c-texto); }
.passo-desc { margin: 0 0 var(--e-2); color: var(--c-texto-suave); font-size: 0.94rem; line-height: 1.55; }
.passo-dica { margin: 0 0 var(--e-2); color: var(--c-dourado-claro); font-size: 0.86rem; }
.passo-espera { margin: var(--e-1) 0 0; color: var(--c-texto-fraco); font-size: 0.86rem; }

.passo-badge {
  font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.06em;
  padding: 3px 10px; border-radius: var(--r-pilula); white-space: nowrap;
}
.passo-badge-feito { background: rgba(127,176,105,0.18); color: #9bd17e; }
.passo-badge-atual { background: var(--c-dourado); color: var(--c-preto); }
.passo-badge-aguardando { background: rgba(242,201,76,0.16); color: var(--c-dourado-claro); }
.passo-badge-bloqueado { background: var(--c-borda); color: var(--c-texto-fraco); }

.aluno-plano-aviso { max-width: 760px; margin: 0 auto var(--e-4); }

/* ============================================================
   v49 — M.A.S didático (legendas e explicações)
   ============================================================ */
.mas-comofunciona {
  max-width: 760px; margin: 0 auto var(--e-4);
  background: rgba(242,201,76,0.08); border: 1px solid var(--c-borda);
  border-radius: var(--r-grande); padding: var(--e-4);
}
.mas-comofunciona p:not(.eyebrow) { margin: var(--e-1) 0 0; color: var(--c-texto-suave); line-height: 1.6; }

.grafico-legenda {
  margin: var(--e-3) 0 0; font-size: 0.82rem; color: var(--c-texto-fraco);
  line-height: 1.5; text-align: left;
}

.mas-faixas-legenda {
  max-width: 760px; margin: 0 auto var(--e-5);
  background: var(--c-superficie); border: 1px solid var(--c-borda);
  border-radius: var(--r-grande); padding: var(--e-4);
}
.mas-faixas-grid { display: flex; flex-direction: column; gap: var(--e-2); margin-top: var(--e-2); }
.mas-faixa-item { display: flex; align-items: center; gap: var(--e-2); font-size: 0.9rem; color: var(--c-texto-suave); }
.mas-faixa-item strong { color: var(--c-texto); }
.mas-faixa-cor { width: 14px; height: 14px; border-radius: 4px; flex-shrink: 0; }
.faixa-alerta-bg { background: #e8806a; }
.faixa-construcao-bg { background: var(--c-dourado); }
.faixa-saudavel-bg { background: #9bd17e; }
.faixa-florescente-bg { background: #7fd4c2; }

/* Item de nota expansível */
.roda-nota-item { border-bottom: 1px solid var(--c-borda); }
.roda-nota-item .roda-nota-linha { cursor: pointer; padding: var(--e-2) 0; border-bottom: none; }
.roda-nota-seta { color: var(--c-texto-fraco); transition: transform 0.2s ease; margin-left: var(--e-1); }
.roda-nota-item.aberto .roda-nota-seta { transform: rotate(180deg); }
.roda-nota-detalhe {
  max-height: 0; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s ease;
  padding: 0 var(--e-1);
}
.roda-nota-item.aberto .roda-nota-detalhe { max-height: 1500px; padding: 0 var(--e-1) var(--e-3); }
.roda-nota-detalhe p { margin: 0 0 var(--e-1); color: var(--c-texto-suave); font-size: 0.9rem; line-height: 1.55; }
.roda-nota-versiculo { font-style: italic; color: var(--c-texto-fraco) !important; font-size: 0.84rem !important; }
.roda-nota-faixa-texto { color: var(--c-texto) !important; }
.roda-nota-faixa-texto strong { color: var(--c-dourado); }

/* ============================================================
   v51 — Tarefas por área (plano do aluno) + lembretes
   ============================================================ */
.area-tarefas { margin-top: var(--e-3); padding-top: var(--e-3); border-top: 1px dashed var(--c-borda); }
.area-tarefas-titulo { font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--c-dourado); margin: 0 0 var(--e-2); }
.area-tarefa-vazio { color: var(--c-texto-fraco); font-size: 0.85rem; font-style: italic; margin: 0 0 var(--e-2); }

.area-tarefa-item { display: flex; align-items: flex-start; gap: var(--e-2); padding: var(--e-1) 0; }
.area-tarefa-check {
  flex-shrink: 0; width: 22px; height: 22px; margin-top: 2px;
  border-radius: 6px; border: 2px solid var(--c-borda-forte);
  background: transparent; color: var(--c-preto); font-weight: 800;
  cursor: pointer; transition: all 0.15s ease;
}
.area-tarefa-check:hover { border-color: var(--c-dourado); }
.area-tarefa-item.feita .area-tarefa-check { background: var(--c-dourado); border-color: var(--c-dourado); }
.area-tarefa-corpo { display: flex; flex-direction: column; }
.area-tarefa-texto { color: var(--c-texto); font-size: 0.92rem; }
.area-tarefa-item.feita .area-tarefa-texto { text-decoration: line-through; color: var(--c-texto-fraco); }
.area-tarefa-quando { font-size: 0.78rem; color: var(--c-dourado-claro); margin-top: 2px; }

.area-tarefa-nova { display: flex; flex-wrap: wrap; gap: var(--e-2); margin-top: var(--e-2); }
.area-tarefa-input {
  flex: 1 1 200px; min-width: 0;
  background: var(--c-preto); border: 1px solid var(--c-borda);
  border-radius: var(--r-media); padding: 8px 12px; color: var(--c-texto); font-size: 0.9rem;
}
.area-tarefa-data {
  background: var(--c-preto); border: 1px solid var(--c-borda);
  border-radius: var(--r-media); padding: 8px 10px; color: var(--c-texto); font-size: 0.85rem;
  color-scheme: dark;
}
.area-tarefa-input:focus, .area-tarefa-data:focus { outline: none; border-color: var(--c-dourado); }

.roda-plano-topo { display: flex; justify-content: space-between; align-items: center; gap: var(--e-2); }

/* Lembretes no painel */
.lembretes-bloco { max-width: 760px; margin: var(--e-6) auto 0; }
.lembretes-cabecalho h2 { margin: var(--e-1) 0; font-size: 1.5rem; color: var(--c-texto); }
.lembretes-cabecalho p { margin: 0 0 var(--e-3); color: var(--c-texto-suave); }
.lembrete-nova { display: flex; flex-wrap: wrap; gap: var(--e-2); margin-bottom: var(--e-4); }
.lembrete-vazio { color: var(--c-texto-fraco); font-style: italic; padding: var(--e-3); background: var(--c-superficie); border: 1px solid var(--c-borda); border-radius: var(--r-grande); }

.lembrete-item {
  display: flex; align-items: flex-start; gap: var(--e-2);
  padding: var(--e-3); margin-bottom: var(--e-2);
  background: var(--c-superficie); border: 1px solid var(--c-borda); border-radius: var(--r-grande);
}
.lembrete-check {
  flex-shrink: 0; width: 26px; height: 26px; margin-top: 1px;
  border-radius: 7px; border: 2px solid var(--c-borda-forte);
  background: transparent; color: var(--c-preto); font-weight: 800; cursor: pointer; transition: all 0.15s ease;
}
.lembrete-check:hover { border-color: var(--c-dourado); }
.lembrete-item.feito .lembrete-check { background: var(--c-dourado); border-color: var(--c-dourado); }
.lembrete-corpo { flex: 1; display: flex; flex-direction: column; gap: 3px; }
.lembrete-texto { color: var(--c-texto); }
.lembrete-item.feito .lembrete-texto { text-decoration: line-through; color: var(--c-texto-fraco); }
.lembrete-meta { display: flex; align-items: center; gap: var(--e-2); flex-wrap: wrap; }
.lembrete-tag { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.05em; background: var(--c-borda); color: var(--c-texto-suave); padding: 2px 8px; border-radius: var(--r-pilula); }
.lembrete-quando { font-size: 0.8rem; color: var(--c-dourado-claro); }
.lembrete-item.feito .lembrete-quando { color: var(--c-sucesso); }
.lembrete-sino { font-size: 0.85rem; }

.lembretes-historico { margin-top: var(--e-4); }
.lembretes-historico summary { cursor: pointer; color: var(--c-texto-suave); font-size: 0.9rem; padding: var(--e-2) 0; }
.lembretes-historico summary:hover { color: var(--c-dourado); }

/* ============================================================
   v52 — Tarefas didáticas (rótulos, repetição, estado)
   ============================================================ */
.area-tarefas-ajuda { font-size: 0.85rem; color: var(--c-texto-suave); margin: 0 0 var(--e-3); line-height: 1.5; }
.area-tarefa-form { display: flex; flex-direction: column; gap: var(--e-2); margin-top: var(--e-2); }
.area-campo { display: flex; flex-direction: column; gap: 4px; }
.area-campo-rotulo { font-size: 0.78rem; color: var(--c-texto-fraco); text-transform: uppercase; letter-spacing: 0.04em; }
.area-campo-linha { display: flex; flex-wrap: wrap; gap: var(--e-2); }
.area-campo-linha .area-campo { flex: 1 1 160px; }
.area-tarefa-rep {
  background: var(--c-preto); border: 1px solid var(--c-borda);
  border-radius: var(--r-media); padding: 8px 10px; color: var(--c-texto); font-size: 0.9rem;
  color-scheme: dark;
}
.area-tarefa-rep:focus { outline: none; border-color: var(--c-dourado); }

.area-tarefa-metas { display: flex; flex-wrap: wrap; gap: var(--e-2); align-items: center; margin-top: 3px; }
.area-tarefa-quando { font-size: 0.78rem; color: var(--c-dourado-claro); }
.area-tarefa-rep-tag { font-size: 0.76rem; color: var(--c-texto-suave); background: var(--c-borda); padding: 1px 7px; border-radius: var(--r-pilula); }
.area-tarefa-estado { font-size: 0.74rem; color: var(--c-texto-fraco); }
.area-tarefa-estado.ok { color: var(--c-sucesso); }

/* lembrete avulso form em coluna com rótulos */
.lembrete-nova { align-items: flex-end; }
.lembrete-campo-texto { flex: 1 1 240px; }
.lembrete-rep-tag { font-size: 0.76rem; color: var(--c-texto-suave); background: var(--c-borda); padding: 1px 7px; border-radius: var(--r-pilula); }
.lembrete-estado { font-size: 0.76rem; color: var(--c-texto-fraco); }
.lembrete-estado.ok { color: var(--c-sucesso); }

/* Página de lembretes dedicada */
.lembretes-bloco { max-width: 760px; margin: 0 auto; }
.lembretes-rodape { margin-top: var(--e-5); padding-top: var(--e-3); border-top: 1px solid var(--c-borda); }
.lembretes-rodape p { color: var(--c-texto-fraco); font-size: 0.88rem; }
.lembretes-rodape a { color: var(--c-dourado); }

/* ============================================================
   v55 — COMPARATIVO ANTES/DEPOIS DO M.A.S (reta final)
   ============================================================ */
.mas-comparativo {
  margin-top: var(--e-5, 2rem);
  padding-top: var(--e-4, 1.5rem);
  border-top: 1px solid var(--c-borda, rgba(255,255,255,0.08));
}
.mas-comparativo-cabecalho { margin-bottom: var(--e-4, 1.5rem); }
.mas-comparativo-cabecalho h2 { color: var(--c-dourado); margin: 0.2rem 0 0.6rem; }
.mas-comparativo-cabecalho p { color: var(--c-texto-suave); line-height: 1.6; }

.mas-comparativo-grafico { margin: 0 auto var(--e-4, 1.5rem); max-width: 460px; }
#grafico-comparativo svg { width: 100%; height: auto; display: block; }
.mas-leg-antes { color: var(--c-texto-suave); font-weight: 600; }
.mas-leg-depois { color: var(--c-dourado); font-weight: 600; }

.mas-comparativo-tabela {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: var(--e-3, 1rem);
  margin-bottom: var(--e-4, 1.5rem);
}
.mas-comp-cabecalho,
.mas-comp-linha,
.mas-comp-media {
  display: grid;
  grid-template-columns: 14px 1fr 32px 18px 32px 64px;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.25rem;
}
.mas-comp-cabecalho {
  border-bottom: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  color: var(--c-texto-suave);
  white-space: nowrap;
}
.mas-comp-cabecalho .mas-comp-col { text-align: center; }
.mas-comp-linha { border-bottom: 1px solid var(--c-borda, rgba(255,255,255,0.05)); }
.mas-comp-linha:last-of-type { border-bottom: none; }
.mas-comp-cor { width: 12px; height: 12px; border-radius: 50%; }
.mas-comp-nome { font-size: 0.92rem; }
.mas-comp-antes,
.mas-comp-depois { text-align: center; font-variant-numeric: tabular-nums; }
.mas-comp-antes { color: var(--c-texto-suave); }
.mas-comp-depois { color: var(--c-texto, #fff); font-weight: 600; }
.mas-comp-arrow { text-align: center; color: var(--c-texto-suave); opacity: 0.5; }
.mas-comp-delta {
  text-align: center;
  font-size: 0.82rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.mas-delta-sobe { color: #5fc27e; }
.mas-delta-desce { color: #e08f7a; }
.mas-delta-neutro { color: var(--c-texto-suave); }
.mas-comp-media {
  margin-top: 0.25rem;
  border-top: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  padding-top: 0.7rem;
}
.mas-comparativo-versiculo {
  text-align: center;
  font-style: italic;
  color: var(--c-dourado);
  opacity: 0.92;
  line-height: 1.6;
  margin-top: var(--e-3, 1rem);
}

@media (max-width: 520px) {
  .mas-comp-cabecalho,
  .mas-comp-linha,
  .mas-comp-media {
    grid-template-columns: 12px 1fr 28px 14px 28px 54px;
    gap: 0.35rem;
  }
  .mas-comp-nome { font-size: 0.84rem; }
}

/* ============================================================
   v56 — MEU CADERNO (anotações por aula)
   ============================================================ */
.anotacao-bloco {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: var(--e-4, 1.5rem);
  margin-top: var(--e-3, 1rem);
}
.anotacao-topo {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: var(--e-3, 1rem);
}
.anotacao-sub { color: var(--c-texto-suave); font-size: 0.9rem; margin: 0.2rem 0 0; }
.anotacao-status { font-size: 0.8rem; color: var(--c-texto-suave); white-space: nowrap; }
.anotacao-status.ok { color: #5fc27e; }
.anotacao-status.erro { color: #e08f7a; }
.anotacao-textarea {
  width: 100%;
  box-sizing: border-box;
  background: var(--c-fundo, rgba(0,0,0,0.25));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio-pequeno, 8px);
  color: var(--c-texto, #f5f1e8);
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.6;
  padding: 0.9rem 1rem;
  resize: vertical;
  min-height: 110px;
}
.anotacao-textarea:focus {
  outline: none;
  border-color: var(--c-dourado);
}
.anotacao-acoes {
  display: flex;
  gap: 0.6rem;
  margin-top: var(--e-3, 1rem);
  flex-wrap: wrap;
}

/* Página do caderno */
.caderno-topo-acoes {
  display: flex;
  justify-content: flex-end;
  margin-bottom: var(--e-4, 1.5rem);
}
.caderno-item {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: var(--e-4, 1.5rem);
  margin-bottom: var(--e-3, 1rem);
}
.caderno-item-topo {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: var(--e-3, 1rem);
}
.caderno-item-topo h3 { margin: 0.15rem 0 0; }

@media (max-width: 520px) {
  .anotacao-topo, .caderno-item-topo { flex-direction: column; gap: 0.4rem; }
  .caderno-topo-acoes { justify-content: stretch; }
  .caderno-topo-acoes .btn { width: 100%; }
}

/* ============================================================
   v58 — MATERIAIS EXTRAS POR AULA (Fase 6)
   ============================================================ */
/* --- Gestor: formulário e lista --- */
.material-form-card {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: var(--e-4, 1.5rem);
  margin-bottom: var(--e-4, 1.5rem);
}
.material-form-card h2 { margin-top: 0; }
.material-campo { display: block; margin-bottom: var(--e-3, 1rem); }
.material-campo > span {
  display: block;
  font-size: 0.82rem;
  color: var(--c-texto-suave);
  margin-bottom: 0.35rem;
}
.material-campo input[type="text"],
.material-campo input[type="file"],
.material-campo select {
  width: 100%;
  box-sizing: border-box;
  background: var(--c-fundo, rgba(0,0,0,0.25));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio-pequeno, 8px);
  color: var(--c-texto, #f5f1e8);
  font-family: inherit;
  font-size: 1rem;
  padding: 0.7rem 0.9rem;
}
.material-fonte { display: flex; gap: 1.2rem; margin-bottom: var(--e-3, 1rem); }
.material-radio { display: flex; align-items: center; gap: 0.4rem; font-size: 0.92rem; color: var(--c-texto-suave); }
.material-form-acoes { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.material-lista-titulo { margin-top: var(--e-4, 1.5rem); }
.material-vazio { color: var(--c-texto-suave); font-style: italic; }
.material-item {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: 0.9rem 1.1rem;
  margin-bottom: 0.7rem;
}
.material-item-icone { font-size: 1.3rem; }
.material-item-info { flex: 1; display: flex; flex-direction: column; }
.material-item-info small { color: var(--c-texto-suave); }
.material-item-acoes { display: flex; gap: 0.4rem; }

/* --- Aluno: bloco de materiais na aula --- */
.material-aluno-bloco {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: var(--e-4, 1.5rem);
  margin-top: var(--e-3, 1rem);
}
.material-aluno-sub { color: var(--c-texto-suave); font-size: 0.9rem; margin: 0.2rem 0 var(--e-3, 1rem); }
.material-aluno-item {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.8rem 0;
  border-top: 1px solid var(--c-borda, rgba(255,255,255,0.06));
}
.material-aluno-info { flex: 1; }
.material-aluno-titulo { margin: 0; font-weight: 600; }
.material-aluno-icone { font-size: 1.3rem; }
.material-aluno-video { flex-direction: column; align-items: stretch; }
.material-aluno-player {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
  margin-top: 0.6rem;
  border-radius: var(--raio-pequeno, 8px);
  overflow: hidden;
}
.material-aluno-player iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/* ============================================================
   v61 — DIFERENCIAÇÃO DE VÍDEO EXTRA + DESCRIÇÃO RECOLHÍVEL
   ============================================================ */
/* Descrição recolhível (padroniza altura) */
.aula-card-desc {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.aula-card-desc.expandida {
  -webkit-line-clamp: unset;
  overflow: visible;
}
.aula-card-vermais {
  background: none;
  border: none;
  color: var(--c-dourado);
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  padding: 0.1rem 0;
  margin: -0.2rem 0 0.4rem;
  align-self: flex-start;
}
.aula-card-vermais:hover { color: var(--c-dourado-claro); text-decoration: underline; }

/* Card de vídeo extra: diferenciação visual */
.aula-card-extra {
  border-color: rgba(217, 165, 48, 0.45);
  background: linear-gradient(180deg, rgba(217,165,48,0.06), rgba(255,255,255,0.02));
}
.aula-card-extra:hover { border-color: var(--c-dourado); }
.aula-card-selo-extra {
  position: absolute;
  top: 0.6rem;
  left: 0.6rem;
  background: var(--c-dourado);
  color: #1a1a1a;
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  z-index: 2;
}
.aula-card-extra .aula-card-num {
  color: var(--c-dourado);
  font-weight: 700;
}

/* Badge de vídeo extra na lista do gestor */
.video-badge-extra {
  background: rgba(217, 165, 48, 0.18);
  color: var(--c-dourado);
  border: 1px solid rgba(217, 165, 48, 0.4);
}

/* ============================================================
   v63 — PÁGINA DE EVOLUÇÃO (relatório IA + certificado)
   ============================================================ */
.evo-certificado {
  border: 1px solid rgba(217, 165, 48, 0.35);
  background: linear-gradient(180deg, rgba(217,165,48,0.06), rgba(255,255,255,0.02));
}
.roda-plano-gerando-txt {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: var(--c-texto-suave);
}

/* ============================================================
   v65 — TESTE VOCACIONAL (RIASEC + SHAPE)
   ============================================================ */
.voc-intro-card, .voc-secao {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: var(--e-4, 1.5rem);
  margin-bottom: var(--e-4, 1.5rem);
}
.voc-intro-lista { margin: 1rem 0 1.5rem; padding-left: 1.2rem; line-height: 1.9; }
.voc-instr, .voc-reflexao-txt { color: var(--c-texto-suave); }
.voc-reflexao-txt { font-size: 1.15rem; color: var(--c-texto,#f5f1e8); margin: 0.5rem 0 0.6rem; line-height:1.5; }
.voc-reflexao-ajuda { font-size: 0.92rem; color: var(--c-texto-suave); margin: 0 0 1.2rem; line-height: 1.55; font-style: italic; }

/* Progresso */
.voc-progresso { display:flex; align-items:center; gap:0.8rem; margin-bottom: var(--e-4,1.5rem); }
.voc-progresso-barra { flex:1; height:8px; background: var(--c-borda,rgba(255,255,255,0.1)); border-radius:999px; overflow:hidden; }
.voc-progresso-fill { height:100%; background: var(--c-dourado); transition: width .3s; }
.voc-progresso-txt { font-size:0.8rem; color: var(--c-texto-suave); white-space:nowrap; }

/* Itens de escala */
.voc-item { padding: 0.9rem 0; border-bottom:1px solid var(--c-borda,rgba(255,255,255,0.06)); }
.voc-item:last-child { border-bottom:none; }
.voc-item-txt { margin:0 0 0.6rem; }
.voc-escala { display:flex; gap:0.4rem; flex-wrap:wrap; }
.voc-bolinha {
  width:44px; height:44px; border-radius:50%;
  border:1px solid var(--c-borda,rgba(255,255,255,0.15));
  background: var(--c-fundo,rgba(0,0,0,0.2)); color: var(--c-texto-suave);
  font-size:1rem; cursor:pointer; transition: all .15s;
}
.voc-bolinha:hover { border-color: var(--c-dourado); }
.voc-bolinha.sel { background: var(--c-dourado); color:#1a1a1a; border-color: var(--c-dourado); font-weight:700; }

.voc-nav { display:flex; justify-content:space-between; gap:1rem; margin-top: var(--e-4,1.5rem); }

/* Resultado */
.voc-res-codigo { text-align:center; margin-bottom: var(--e-4,1.5rem); }
.voc-codigo-grande {
  font-size: 4rem; font-weight:800; letter-spacing:0.1em;
  color: var(--c-dourado); line-height:1.1; margin:0.3rem 0;
}
.voc-codigo-legenda { color: var(--c-texto-suave); }
.voc-barras { margin-top: 0.8rem; }
.voc-barra-linha { display:grid; grid-template-columns: 120px 1fr 32px; align-items:center; gap:0.7rem; margin-bottom:0.6rem; }
.voc-barra-nome { font-size:0.9rem; }
.voc-barra-trilho { height:12px; background:var(--c-borda,rgba(255,255,255,0.1)); border-radius:999px; overflow:hidden; }
.voc-barra-fill { height:100%; border-radius:999px; transition:width .4s; }
.voc-barra-val { text-align:right; font-variant-numeric:tabular-nums; font-weight:600; }
.voc-tipo-card { padding: var(--e-3,1rem) 0; border-bottom:1px solid var(--c-borda,rgba(255,255,255,0.06)); }
.voc-tipo-card:last-child { border-bottom:none; }
.voc-tipo-card h3 { color: var(--c-dourado); margin:0 0 0.4rem; }
.voc-tipo-areas { font-size:0.95rem; }
.voc-tipo-versiculo { font-style:italic; color: var(--c-texto-suave); margin-top:0.4rem; }
.voc-dons { display:flex; flex-direction:column; gap:0.7rem; }
.voc-dom-item { display:flex; flex-direction:column; }
.voc-dom-item strong { color: var(--c-dourado); }
.voc-dom-item span { font-size:0.9rem; color: var(--c-texto-suave); }
.voc-ref-espelho { padding:0.7rem 0; border-bottom:1px solid var(--c-borda,rgba(255,255,255,0.06)); }
.voc-ref-espelho:last-child { border-bottom:none; }
.voc-ref-pergunta { font-size:0.85rem; color: var(--c-texto-suave); margin:0 0 0.3rem; }
.voc-ref-resposta { margin:0; }
.voc-sintese-bloco { margin-bottom: var(--e-4,1.5rem); }
.voc-res-acoes { display:flex; justify-content:center; margin: var(--e-4,1.5rem) 0; }

@media (max-width:520px){
  .voc-barra-linha { grid-template-columns: 90px 1fr 28px; gap:0.4rem; }
  .voc-codigo-grande { font-size:3rem; }
  .voc-bolinha { width:40px; height:40px; }
}

/* v65b — Card do Teste Vocacional no painel do aluno */
.voc-painel-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  background: linear-gradient(180deg, rgba(217,165,48,0.08), rgba(255,255,255,0.02));
  border: 1px solid rgba(217, 165, 48, 0.35);
  border-radius: var(--raio, 12px);
  padding: var(--e-4, 1.5rem);
  margin-top: var(--e-4, 1.5rem);
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, transform .15s;
}
.voc-painel-card:hover { border-color: var(--c-dourado); transform: translateY(-1px); }
.voc-painel-card-info h3 { margin: 0.2rem 0 0.3rem; color: var(--c-dourado); }
.voc-painel-card-info p { margin: 0; color: var(--c-texto-suave); font-size: 0.92rem; }
.voc-painel-card-acao { color: var(--c-dourado); font-weight: 600; white-space: nowrap; }
@media (max-width: 520px) {
  .voc-painel-card { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   v68 — ACESSO PENDENTE + VALES-PRESENTE
   ============================================================ */
.acesso-pendente-wrap { max-width: 560px; margin: 2rem auto; }
.acesso-pendente-card {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: 2rem;
  text-align: center;
}
.acesso-pendente-card h1 { margin: 0.3rem 0 0.8rem; }
.acesso-pendente-card .lead { color: var(--c-texto-suave); margin-bottom: 1.5rem; }
.acesso-opcao {
  text-align: left;
  padding: 1.2rem;
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  margin: 1rem 0;
}
.acesso-opcao h3 { margin: 0 0 0.4rem; color: var(--c-dourado); }
.acesso-opcao p { margin: 0 0 1rem; color: var(--c-texto-suave); font-size: 0.92rem; }
.acesso-divisor { position: relative; text-align: center; margin: 1.2rem 0; color: var(--c-texto-suave); }
.acesso-divisor::before {
  content: ""; position: absolute; top: 50%; left: 0; right: 0;
  height: 1px; background: var(--c-borda, rgba(255,255,255,0.1));
}
.acesso-divisor span { position: relative; background: var(--c-superficie, #1a1a1a); padding: 0 0.8rem; }
.acesso-vale-form { display: flex; gap: 0.6rem; }
.acesso-vale-form input {
  flex: 1; padding: 0.7rem 0.9rem;
  background: var(--c-fundo, rgba(0,0,0,0.2));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.15));
  border-radius: var(--raio, 8px);
  color: var(--c-texto, #f5f1e8); font-size: 1rem;
  text-transform: uppercase;
}
.acesso-vale-msg { margin-top: 0.8rem; font-size: 0.9rem; }
.acesso-vale-msg.sucesso { color: #27ae60; }
.acesso-vale-msg.erro { color: #e74c3c; }
.acesso-rodape { margin-top: 1.5rem; font-size: 0.85rem; color: var(--c-texto-suave); }
.acesso-rodape a { color: var(--c-dourado); }

/* Lista de vales no gestor */
.vale-item {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 0.9rem 1rem;
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 10px); margin-bottom: 0.6rem;
}
.vale-codigo { font-family: monospace; font-size: 1.05rem; letter-spacing: 0.05em; color: var(--c-dourado); }
.vale-item-info { display: flex; flex-direction: column; gap: 0.15rem; }
.vale-item-info small { color: var(--c-texto-suave); font-size: 0.82rem; }
@media (max-width: 520px) {
  .acesso-vale-form { flex-direction: column; }
}

/* v69 — ícone de sucesso na tela de vale */
.acesso-sucesso-icone {
  width: 64px; height: 64px; margin: 0 auto 1rem;
  border-radius: 50%;
  background: rgba(39, 174, 96, 0.15);
  border: 2px solid #27ae60;
  color: #27ae60;
  font-size: 2rem; font-weight: bold;
  display: flex; align-items: center; justify-content: center;
}

/* ============================================================
   v75 — BOTÃO HAMBÚRGUER (menu mobile)
   ============================================================ */


/* ============================================================
   v79 — AVALIAÇÕES (estrelas)
   ============================================================ */
.avaliacao-bloco {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
  padding: var(--e-4, 1.5rem);
  margin-top: var(--e-4, 1.5rem);
}
.avaliacao-titulo { font-weight: 600; margin: 0 0 0.6rem; }
.avaliacao-estrelas { display: flex; gap: 0.3rem; margin-bottom: 0.8rem; }
.avaliacao-estrela {
  background: none; border: none; cursor: pointer;
  font-size: 2rem; line-height: 1; padding: 0;
  color: rgba(255,255,255,0.2); transition: color .15s, transform .1s;
}
.avaliacao-estrela:hover { transform: scale(1.15); }
.avaliacao-estrela.ativa { color: var(--c-dourado, #d9a530); }
.avaliacao-comentario { width: 100%; margin-bottom: 0.8rem; }
.avaliacao-acoes { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.avaliacao-msg { font-size: 0.9rem; }
.avaliacao-msg.sucesso { color: #27ae60; }
.avaliacao-msg.erro { color: #e74c3c; }
.avaliacao-extra-campo { margin: 0.8rem 0; }
.avaliacao-check { display: flex; align-items: center; gap: 0.5rem; font-size: 0.9rem; color: var(--c-texto-suave); }

/* Painel do gestor — avaliações */
.aval-resumo { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 1rem; margin-bottom: 2rem; }
.aval-card-num {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px); padding: 1.2rem; text-align: center;
}
.aval-card-num .num { font-size: 2.2rem; font-weight: 800; color: var(--c-dourado, #d9a530); line-height: 1; }
.aval-card-num .lbl { font-size: 0.82rem; color: var(--c-texto-suave); margin-top: 0.3rem; }
.aval-secao { margin-bottom: 2rem; }
.aval-linha {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: 0.8rem 1rem; border: 1px solid var(--c-borda, rgba(255,255,255,0.06));
  border-radius: 10px; margin-bottom: 0.5rem;
}
.aval-linha-estrelas { color: var(--c-dourado, #d9a530); white-space: nowrap; }
.aval-coment {
  padding: 1rem; border: 1px solid var(--c-borda, rgba(255,255,255,0.06));
  border-radius: 10px; margin-bottom: 0.6rem;
}
.aval-coment-cab { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: 0.4rem; }
.aval-coment-nome { font-weight: 600; }
.aval-coment-nota { color: var(--c-dourado, #d9a530); white-space: nowrap; }
.aval-coment-texto { color: var(--c-texto-suave); margin: 0; }
.aval-coment-meta { font-size: 0.78rem; color: var(--c-texto-suave); margin-top: 0.3rem; }
.aval-badge-baixa { color: #e74c3c; }

/* v80 — Revisão responsiva: tabela SOAR mais compacta no celular */
@media (max-width: 560px) {
  table.bloco-soar-tabela th,
  .bloco-soar-th { font-size: 0.55rem; padding: 6px 2px; width: 46px; }
  table.bloco-soar-tabela td.bloco-soar-celula { width: 46px; }
  table.bloco-soar-tabela td.bloco-soar-palavra { font-size: 0.9rem; }
}
/* v80 — garante que nenhuma imagem/vídeo estoure a largura no mobile */
img, video, iframe { max-width: 100%; height: auto; }
/* v80 — quebra palavras longas (URLs, emails) que poderiam estourar */
.dash-saudacao p, .avaliacao-comentario, .aval-coment-texto, .video-descricao p { overflow-wrap: break-word; word-break: break-word; }

/* ============================================================
   v81 — TESTE DE CRIATIVIDADE (DAT)
   ============================================================ */
.cri-campos { display: grid; gap: 0.5rem; margin: 1.2rem 0; }
.cri-campo-linha { display: flex; align-items: center; gap: 0.7rem; }
.cri-campo-num {
  width: 26px; height: 26px; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%; font-size: 0.78rem;
  background: rgba(217,165,48,0.15); color: var(--c-dourado, #d9a530);
}
.cri-input {
  flex: 1; padding: 0.65rem 0.9rem;
  background: var(--c-fundo, rgba(0,0,0,0.2));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.15));
  border-radius: var(--raio, 8px);
  color: var(--c-texto, #f5f1e8); font-size: 1rem;
}
.cri-input:focus { outline: none; border-color: var(--c-dourado, #d9a530); }

.cri-barra-trilho {
  height: 10px; max-width: 420px; margin: 1rem auto 0.4rem;
  background: var(--c-borda, rgba(255,255,255,0.1));
  border-radius: 999px; overflow: hidden;
}
.cri-barra-fill { height: 100%; background: var(--c-dourado, #d9a530); border-radius: 999px; transition: width .5s; }
.cri-barra-legenda {
  display: flex; justify-content: space-between; max-width: 420px; margin: 0 auto;
  font-size: 0.72rem; color: var(--c-texto-suave);
}
.cri-faixa { margin-top: 1rem; font-size: 1.05rem; }
.cri-palavras { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 1rem; }
.cri-palavra-chip {
  padding: 0.3rem 0.7rem; border-radius: 999px; font-size: 0.85rem;
  background: rgba(217,165,48,0.12); color: var(--c-dourado, #d9a530);
  border: 1px solid rgba(217,165,48,0.25);
}
.cri-aviso-honesto { border-style: dashed; }
.cri-aviso-honesto p { margin: 0; color: var(--c-texto-suave); font-size: 0.92rem; }

/* Card do teste no painel */
.cri-painel-card {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: linear-gradient(180deg, rgba(155,89,182,0.10), rgba(255,255,255,0.02));
  border: 1px solid rgba(155, 89, 182, 0.35);
  border-radius: var(--raio, 12px); padding: var(--e-4, 1.5rem);
  margin-top: 1rem; text-decoration: none; color: inherit;
  transition: border-color .15s, transform .15s;
}
.cri-painel-card:hover { border-color: #9b59b6; transform: translateY(-1px); }
.cri-painel-card-info h3 { margin: 0.2rem 0 0.3rem; color: #b07cc6; }
.cri-painel-card-info p { margin: 0; color: var(--c-texto-suave); font-size: 0.92rem; }
.cri-painel-card-acao { color: #b07cc6; font-weight: 600; white-space: nowrap; }
@media (max-width: 520px) {
  .cri-painel-card { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   v82 — NAVEGAÇÃO ENTRE AULAS (anterior / próxima)
   ============================================================ */
.nav-aulas-barra {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 0.8rem;
  margin-top: var(--e-4, 1.5rem);
}
.nav-aula-btn {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  flex: 1;
  padding: 0.9rem 1.1rem;
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: var(--raio, 12px);
  background: var(--c-superficie, rgba(255,255,255,0.03));
  text-decoration: none;
  color: inherit;
  transition: border-color .15s, transform .15s;
}
.nav-aula-btn:hover { border-color: var(--c-dourado, #d9a530); transform: translateY(-1px); }
.nav-aula-proxima { justify-content: flex-end; text-align: right; }
.nav-aula-seta { font-size: 1.3rem; color: var(--c-dourado, #d9a530); line-height: 1; }
.nav-aula-txt { display: flex; flex-direction: column; gap: 0.15rem; font-weight: 600; }
.nav-aula-txt small {
  font-size: 0.72rem; font-weight: 400; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--c-texto-suave);
}
.nav-aula-vazio { flex: 1; }
@media (max-width: 520px) {
  .nav-aula-btn { padding: 0.8rem; }
  .nav-aula-txt { font-size: 0.9rem; }
  .nav-aula-txt small { font-size: 0.65rem; }
}

/* ============================================================
   v83 — LEMBRETE POR TAREFA (sininho + mini formulário)
   ============================================================ */
.tarefa-item { position: relative; }
.tarefa-sino {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(217,165,48,0.08);
  border: 1px solid rgba(217,165,48,0.25);
  cursor: pointer;
  font-size: 0.95rem;
  line-height: 1;
  padding: 6px 10px;
  border-radius: 999px;
  opacity: 0.9;
  transition: opacity .15s, transform .15s, background .15s;
  flex-shrink: 0;
  margin-left: auto;
}
.tarefa-sino-txt { font-size: 0.75rem; font-weight: 600; color: var(--c-dourado, #d9a530); white-space: nowrap; }
.tarefa-sino:hover { opacity: 1; transform: scale(1.05); background: rgba(217,165,48,0.16); }
.tarefa-sino.ativo { opacity: 1; background: rgba(217,165,48,0.18); border-color: rgba(217,165,48,0.5); }
.tarefa-item.feita .tarefa-sino { opacity: 0.4; }
@media (max-width: 560px) {
  .tarefa-sino-txt { display: none; }
  .tarefa-sino { padding: 6px 8px; }
}

.tarefas-lembrete-rodape {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.8rem;
  flex-wrap: wrap;
  margin-top: var(--e-3, 1rem);
  padding-top: var(--e-3, 1rem);
  border-top: 1px solid var(--c-borda, rgba(255,255,255,0.08));
}

.tarefa-lembrete-form {
  margin-top: var(--e-3, 1rem);
  padding: var(--e-3, 1rem);
  border: 1px solid rgba(217, 165, 48, 0.35);
  border-radius: var(--raio, 12px);
  background: rgba(217, 165, 48, 0.06);
}
.tarefa-lembrete-titulo { margin: 0 0 0.8rem; font-weight: 600; }
.tarefa-lembrete-campos { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.tarefa-lembrete-campos label { display: flex; flex-direction: column; gap: 0.3rem; flex: 1; min-width: 150px; }
.tarefa-lembrete-campos span {
  font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--c-texto-suave);
}
.tarefa-lembrete-campos input,
.tarefa-lembrete-campos select {
  padding: 0.6rem 0.8rem;
  background: var(--c-fundo, rgba(0,0,0,0.25));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.15));
  border-radius: var(--raio, 8px);
  color: var(--c-texto, #f5f1e8);
  font-size: 0.95rem;
}
.tarefa-lembrete-acoes {
  display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
  margin-top: 0.9rem;
}
.tarefa-lembrete-msg { font-size: 0.88rem; }
.tarefa-lembrete-msg.sucesso { color: #27ae60; }
.tarefa-lembrete-msg.erro { color: #e74c3c; }

.lembrete-tag-aula { background: rgba(217,165,48,0.15); color: var(--c-dourado, #d9a530); }

@media (max-width: 520px) {
  .tarefas-lembrete-rodape { flex-direction: column; align-items: stretch; }
  .tarefa-lembrete-campos { flex-direction: column; }
}

/* ============================================================
   v85 — DIAGNÓSTICO FINANCEIRO
   ============================================================ */
.df-aviso-legal {
  border: 1px dashed var(--c-borda, rgba(255,255,255,0.18));
  border-radius: var(--raio, 10px);
  padding: 0.9rem 1.1rem;
  margin: 1.2rem 0;
  background: rgba(255,255,255,0.02);
}
.df-aviso-legal p { margin: 0; font-size: 0.85rem; color: var(--c-texto-suave); }

.df-aproveitado-box {
  border: 1px solid rgba(39, 174, 96, 0.35);
  background: rgba(39, 174, 96, 0.08);
  border-radius: var(--raio, 10px);
  padding: 0.8rem 1rem;
  margin-bottom: 1.5rem;
}
.df-aproveitado-box p { margin: 0; font-size: 0.9rem; color: #7fd4a0; }

.df-secao-titulo {
  margin: 1.8rem 0 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  color: var(--c-dourado, #d9a530);
  font-size: 1.05rem;
}
.df-secao-titulo:first-child { margin-top: 0; }
.df-campo { margin-bottom: 1.2rem; }
.df-campo .campo-ajuda { margin: 0.2rem 0 0.5rem; }
.df-select {
  width: 100%;
  padding: 0.7rem 0.9rem;
  background: var(--c-fundo, rgba(0,0,0,0.25));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.15));
  border-radius: var(--raio, 8px);
  color: var(--c-texto, #f5f1e8);
  font-size: 1rem;
}
.df-select:focus { outline: none; border-color: var(--c-dourado, #d9a530); }

.df-fase-titulo {
  margin: 1.8rem 0 0.8rem;
  color: var(--c-dourado, #d9a530);
  font-size: 1.1rem;
  letter-spacing: 0.02em;
}
.df-fase-titulo:first-child { margin-top: 0; }

/* Card no painel do aluno */
.df-painel-card {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: linear-gradient(180deg, rgba(39,174,96,0.10), rgba(255,255,255,0.02));
  border: 1px solid rgba(39, 174, 96, 0.35);
  border-radius: var(--raio, 12px); padding: var(--e-4, 1.5rem);
  margin-top: 1rem; text-decoration: none; color: inherit;
  transition: border-color .15s, transform .15s;
}
.df-painel-card:hover { border-color: #27ae60; transform: translateY(-1px); }
.df-painel-card-info h3 { margin: 0.2rem 0 0.3rem; color: #6fd39a; }
.df-painel-card-info p { margin: 0; color: var(--c-texto-suave); font-size: 0.92rem; }
.df-painel-card-acao { color: #6fd39a; font-weight: 600; white-space: nowrap; }
@media (max-width: 520px) {
  .df-painel-card { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   v86 — AVISO DO LIMIAR DE CONCLUSÃO (85% do vídeo)
   ============================================================ */
.aviso-limiar {
  margin: 1.2rem auto 0;
  max-width: 560px;
  padding: 0.9rem 1.1rem;
  border: 1px dashed rgba(217, 165, 48, 0.4);
  border-radius: var(--raio, 10px);
  background: rgba(217, 165, 48, 0.06);
  text-align: left;
}
.aviso-limiar p { margin: 0; font-size: 0.88rem; color: var(--c-texto-suave); line-height: 1.6; }
.aviso-limiar strong { color: var(--c-dourado, #d9a530); }

.jornada-nota-limiar {
  margin: 0.6rem 0 0;
  font-size: 0.82rem;
  color: var(--c-texto-suave);
  opacity: 0.85;
}

/* ============================================================
   v87 — ITEM ATUAL DO MENU (marcado, sem link)
   ============================================================ */
.nav-item-atual {
  color: var(--c-dourado, #d9a530);
  font-size: 0.85rem;
  font-weight: var(--p-bold, 700);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  position: relative;
  cursor: default;
}
/* sublinhado discreto marcando onde o aluno está */
.nav-item-atual::after {
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: -6px;
  height: 2px;
  background: var(--c-dourado, #d9a530);
  border-radius: 2px;
}

/* No menu mobile (painel dropdown) a marcação vira um fundo suave */
@media (max-width: 720px) {
  .nav-links .nav-item-atual {
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.9rem 1rem;
    margin: 0.15rem 0;
    border-radius: 8px;
    background: rgba(217, 165, 48, 0.12);
  }
  .nav-links .nav-item-atual::after { display: none; }
}

/* v87 — Seção "Suas ferramentas" no painel do aluno */
#ferramentas-secao {
  margin-top: var(--e-6, 3rem);
  padding-top: var(--e-4, 1.5rem);
  border-top: 1px solid var(--c-borda, rgba(255,255,255,0.08));
}
.ferramentas-titulo {
  margin: 0 0 0.3rem;
  font-size: 1.2rem;
  color: var(--c-texto, #f5f1e8);
}
.ferramentas-sub {
  margin: 0 0 1.2rem;
  font-size: 0.9rem;
  color: var(--c-texto-suave);
}

/* ============================================================
   v88 — MODO TURMA PRESENCIAL
   ============================================================ */

/* Área do curso: lista de ferramentas */
.ferramentas-lista { display: grid; gap: 1rem; margin-top: 1.2rem; }
.ferramenta-card {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  padding: var(--e-4, 1.5rem);
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: var(--raio, 12px);
  text-decoration: none; color: inherit;
  transition: border-color .15s, transform .15s;
}
.ferramenta-card:hover { border-color: var(--c-dourado, #d9a530); transform: translateY(-1px); }
.ferramenta-card-info h3 { margin: 0 0 0.3rem; }
.ferramenta-card-info p { margin: 0; color: var(--c-texto-suave); font-size: 0.9rem; }
.ferramenta-card-acao { color: var(--c-dourado, #d9a530); font-weight: 600; white-space: nowrap; }

/* Pitch de venda */
.pitch-bloco {
  margin-top: 2.5rem;
  padding: var(--e-5, 2rem);
  border: 1px solid rgba(217, 165, 48, 0.4);
  border-radius: var(--raio, 16px);
  background: linear-gradient(180deg, rgba(217,165,48,0.10), rgba(255,255,255,0.02));
  text-align: center;
}
.pitch-selo {
  display: inline-block;
  padding: 0.3rem 0.9rem;
  border-radius: 999px;
  background: rgba(217, 165, 48, 0.2);
  color: var(--c-dourado, #d9a530);
  font-size: 0.72rem; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700;
  margin-bottom: 1rem;
}
.pitch-titulo { margin: 0 0 0.8rem; font-size: 1.5rem; }
.pitch-texto { margin: 0 auto 1.5rem; max-width: 520px; color: var(--c-texto-suave); line-height: 1.7; }
.pitch-cupom {
  display: inline-flex; flex-direction: column; align-items: center; gap: 0.2rem;
  padding: 1rem 2rem; margin-bottom: 1.5rem;
  border: 2px dashed var(--c-dourado, #d9a530);
  border-radius: var(--raio, 12px);
  background: rgba(0,0,0,0.15);
}
.pitch-cupom-rotulo { font-size: 0.72rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-texto-suave); }
.pitch-cupom-codigo { font-size: 1.8rem; font-weight: 800; color: var(--c-dourado, #d9a530); letter-spacing: 0.05em; }
.pitch-cupom-obs { font-size: 0.78rem; color: var(--c-texto-suave); }

/* Gestor: seleção de ferramentas ao criar turma */
.ferramentas-check { display: grid; gap: 0.6rem; margin-top: 0.5rem; }
.check-linha { display: flex; align-items: center; gap: 0.6rem; cursor: pointer; }
.check-linha input { width: 18px; height: 18px; accent-color: var(--c-dourado, #d9a530); }

/* Gestor: lista de turmas */
.turma-item {
  padding: var(--e-4, 1.5rem);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: var(--raio, 12px);
  margin-bottom: 1rem;
  background: var(--c-superficie, rgba(255,255,255,0.03));
}
.turma-topo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.turma-codigo { font-weight: 700; font-size: 1.05rem; letter-spacing: 0.03em; }
.turma-badge { font-size: 0.7rem; padding: 0.15rem 0.6rem; border-radius: 999px; margin-left: 0.5rem; }
.turma-badge.ativa { background: rgba(39,174,96,0.2); color: #6fd39a; }
.turma-badge.vencida { background: rgba(231,76,60,0.2); color: #e88; }
.turma-badge.encerrada { background: rgba(150,150,150,0.2); color: #bbb; }
.turma-inscritos { color: var(--c-dourado, #d9a530); font-weight: 600; white-space: nowrap; }
.turma-nome { margin: 0.5rem 0; color: var(--c-texto); }
.turma-meta { display: flex; flex-wrap: wrap; gap: 1rem; font-size: 0.85rem; color: var(--c-texto-suave); }
.turma-acoes { display: flex; gap: 0.6rem; margin-top: 1rem; flex-wrap: wrap; }
.turma-detalhe { margin-top: 1rem; }
.turma-tabela { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
.turma-tabela th, .turma-tabela td { text-align: left; padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--c-borda, rgba(255,255,255,0.08)); }
.turma-tabela th { color: var(--c-texto-suave); font-weight: 600; }

@media (max-width: 520px) {
  .ferramenta-card { flex-direction: column; align-items: flex-start; }
  .turma-topo { flex-direction: column; align-items: flex-start; gap: 0.4rem; }
  .pitch-titulo { font-size: 1.25rem; }
}

/* v88 — QR Code da turma */
.turma-qr { text-align: center; padding: 1rem 0; }
.turma-qr > div { display: inline-block; padding: 12px; background: #fff; border-radius: 8px; }
.turma-qr-url { font-size: 0.78rem; color: var(--c-texto-suave); word-break: break-all; margin-top: 0.6rem; }

/* v88.1 — destaque do código de acesso da turma (evita confusão com o cupom) */
.turma-codigo-destaque {
  display: flex; flex-direction: column; gap: 0.2rem;
  margin: 0.8rem 0;
  padding: 0.7rem 1rem;
  background: rgba(217, 165, 48, 0.1);
  border: 1px solid rgba(217, 165, 48, 0.3);
  border-radius: var(--raio, 8px);
}
.turma-codigo-rotulo { font-size: 0.72rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--c-texto-suave); }
.turma-codigo-valor { font-size: 1.25rem; font-weight: 800; color: var(--c-dourado, #d9a530); letter-spacing: 0.06em; }

/* v90 — Pitch de venda: lista de benefícios, texto forte, escassez */
.pitch-lista {
  list-style: none;
  padding: 0;
  margin: 0 auto 1.5rem;
  max-width: 520px;
  text-align: left;
}
.pitch-lista li {
  position: relative;
  padding: 0.5rem 0 0.5rem 1.8rem;
  color: var(--c-texto, #f5f1e8);
  line-height: 1.5;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.pitch-lista li:last-child { border-bottom: none; }
.pitch-lista li::before {
  content: "✦";
  position: absolute;
  left: 0;
  color: var(--c-dourado, #d9a530);
}
.pitch-texto-forte {
  font-size: 1.08rem;
  font-weight: 600;
  color: var(--c-texto, #f5f1e8);
  max-width: 520px;
  margin: 1.5rem auto;
}
.pitch-escassez {
  margin-top: 1rem;
  font-size: 0.85rem;
  color: var(--c-dourado, #d9a530);
  opacity: 0.9;
}

/* ============================================================
   v92 — BOTÃO MENU (hambúrguer) — só no mobile, com a palavra "Menu"
   ============================================================ */
.nav-hamburguer {
  display: none !important; /* escondido no desktop */
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  height: 44px;
  width: 50px;
  padding: 0;
  background: none;
  border: none;
  cursor: pointer;
  z-index: 210;
}
@media (max-width: 720px) {
  .nav-hamburguer { display: inline-flex !important; } /* aparece só no mobile */
}
.nav-hamburguer-icone { display: block; transition: transform .25s; }
.nav-hamburguer-texto {
  color: var(--c-dourado, #d9a530);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
}
.nav-hamburguer.ativo .nav-hamburguer-icone { transform: rotate(90deg); }

/* ============================================================
   v94 — FERRAMENTA CAC (curso presencial)
   ============================================================ */
.ferramenta-cac-wrap { max-width: 720px; margin: 0 auto; }

/* Ensino */
.ensino-bloco { margin-bottom: 2.5rem; }
.ensino-bloco h1 { margin: 0.3rem 0 1.2rem; }
.ensino-sub {
  font-family: var(--f-display, serif);
  color: var(--c-dourado, #d9a530);
  font-size: 1.25rem;
  margin: 1.8rem 0 0.6rem;
}
.ensino-bloco p { line-height: 1.75; color: var(--c-texto, #f0e9d8); margin: 0.8rem 0; }
.ensino-downloads { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 2rem; }

/* Ferramenta */
.cac-ferramenta {
  background: var(--c-superficie, rgba(255,255,255,0.03));
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio, 16px);
  padding: 2rem;
}
.cac-progresso {
  height: 6px; background: rgba(255,255,255,0.08);
  border-radius: 999px; overflow: hidden; margin-bottom: 0.6rem;
}
.cac-progresso-barra {
  height: 100%; width: 25%;
  background: var(--c-dourado, #d9a530);
  transition: width .35s ease;
}
.cac-passo-label { font-size: 0.8rem; color: var(--c-texto-suave); margin: 0 0 1.5rem; }
.cac-etapa h2 { margin: 0 0 0.5rem; }
.cac-intro { color: var(--c-texto-suave); margin: 0 0 1.5rem; line-height: 1.6; }

.cac-campos { display: grid; gap: 1rem; }
.cac-campo { display: flex; flex-direction: column; gap: 0.4rem; }
.cac-campo span { font-size: 0.92rem; color: var(--c-texto, #f0e9d8); }
.cac-campo span em { color: var(--c-texto-suave); font-style: italic; font-size: 0.85rem; }
.cac-campo input {
  padding: 0.75rem 1rem;
  background: rgba(0,0,0,0.2);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: var(--raio, 10px);
  color: var(--c-texto, #f0e9d8);
  font-size: 1rem;
}
.cac-campo input:focus { outline: none; border-color: var(--c-dourado, #d9a530); }

.cac-aovivo {
  margin: 1.5rem 0 0;
  padding: 0.9rem 1.2rem;
  background: rgba(217,165,48,0.1);
  border-radius: var(--raio, 10px);
  color: var(--c-texto-suave);
}
.cac-aovivo strong { color: var(--c-dourado, #d9a530); font-size: 1.15rem; }
.cac-erro { color: #e88; margin: 1rem 0 0; font-size: 0.9rem; }

.cac-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 2rem; gap: 1rem; }
.cac-nav-final { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 2rem; justify-content: center; }

/* Resultado */
.cac-resultado-principal { text-align: center; padding: 1rem 0 1.5rem; }
.cac-res-rotulo { color: var(--c-texto-suave); margin: 0 0 0.3rem; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8rem; }
.cac-res-numero {
  font-family: var(--f-display, serif);
  font-size: 3rem; font-weight: 800;
  color: var(--c-dourado, #d9a530);
  margin: 0;
}
.cac-res-desc { color: var(--c-texto-suave); margin: 0.5rem 0 0; }

.cac-relacao {
  text-align: center;
  padding: 1.2rem;
  border-radius: var(--raio, 12px);
  margin: 1rem 0 1.5rem;
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
}
.cac-relacao p { margin: 0 0 0.6rem; font-size: 1.1rem; }
.cac-selo {
  display: inline-block; padding: 0.3rem 1rem; border-radius: 999px;
  font-weight: 700; font-size: 0.9rem;
}
.selo-verde { border-color: rgba(39,174,96,0.4); background: rgba(39,174,96,0.08); }
.selo-verde .cac-selo { background: rgba(39,174,96,0.2); color: #6fd39a; }
.selo-amarelo { border-color: rgba(217,165,48,0.4); background: rgba(217,165,48,0.08); }
.selo-amarelo .cac-selo { background: rgba(217,165,48,0.2); color: var(--c-dourado, #d9a530); }
.selo-vermelho { border-color: rgba(231,76,60,0.4); background: rgba(231,76,60,0.08); }
.selo-vermelho .cac-selo { background: rgba(231,76,60,0.2); color: #e88; }

.cac-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 2rem; }
.cac-card {
  display: flex; flex-direction: column; gap: 0.3rem;
  padding: 1.1rem;
  background: rgba(0,0,0,0.15);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 12px);
}
.cac-card-num { font-size: 1.4rem; font-weight: 700; color: var(--c-texto, #f0e9d8); }
.cac-card-lbl { font-size: 0.82rem; color: var(--c-texto-suave); line-height: 1.4; }

/* Análise */
.cac-analise {
  border-top: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  padding-top: 1.5rem;
}
.cac-analise h3 { color: var(--c-dourado, #d9a530); margin: 0 0 1rem; }
.cac-analise h4 {
  color: var(--c-dourado, #d9a530);
  font-size: 0.95rem; letter-spacing: 0.04em;
  margin: 1.5rem 0 0.5rem;
}
.cac-analise p { line-height: 1.75; margin: 0.7rem 0; color: var(--c-texto, #f0e9d8); }
.cac-carregando { display: flex; flex-direction: column; align-items: center; gap: 1rem; padding: 2rem; color: var(--c-texto-suave); }

@media (max-width: 560px) {
  .cac-ferramenta { padding: 1.3rem; }
  .cac-cards { grid-template-columns: 1fr; }
  .cac-res-numero { font-size: 2.3rem; }
  .cac-nav-final { flex-direction: column; }
  .cac-nav-final .btn { width: 100%; }
}

/* v96 — Botão do pitch: permite quebrar linha em telas estreitas (evita corte) */
.pitch-bloco .btn-pleno {
  white-space: normal;
  line-height: 1.3;
  padding-left: 1rem;
  padding-right: 1rem;
  text-align: center;
  word-break: break-word;
}
@media (max-width: 560px) {
  .pitch-bloco .btn-pleno {
    letter-spacing: 0.05em;
    font-size: 0.8rem;
  }
}

/* v98 — botões de ajuda "?" nos campos da calculadora CAC */
.cac-ajuda-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-left: 4px;
  padding: 0;
  border-radius: 50%;
  border: 1.5px solid var(--c-dourado, #d9a530);
  background: none;
  color: var(--c-dourado, #d9a530);
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
  line-height: 1;
  vertical-align: middle;
  transition: background .15s, color .15s;
}
.cac-ajuda-btn:hover, .cac-ajuda-btn.ativo {
  background: var(--c-dourado, #d9a530);
  color: #1c1b18;
}
.cac-ajuda-texto {
  margin-top: 0.5rem;
  padding: 0.8rem 1rem;
  background: rgba(217, 165, 48, 0.08);
  border-left: 3px solid var(--c-dourado, #d9a530);
  border-radius: 6px;
  font-size: 0.88rem;
  line-height: 1.55;
  color: var(--c-texto-suave, #b8b0a3);
}

/* ============================================================
   v99 — FERRAMENTA O ESPELHO
   ============================================================ */
/* Script para copiar */
.esp-script {
  background: rgba(217, 165, 48, 0.08);
  border: 1px solid rgba(217, 165, 48, 0.3);
  border-radius: var(--raio, 12px);
  padding: 1.2rem;
  margin-bottom: 1.5rem;
}
.esp-script-topo { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.6rem; gap: 1rem; }
.esp-script-rotulo { font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--c-texto-suave); }
.esp-copiar {
  background: var(--c-dourado, #d9a530); color: #1c1b18;
  border: none; border-radius: 999px; padding: 0.3rem 0.9rem;
  font-size: 0.78rem; font-weight: 700; cursor: pointer; white-space: nowrap;
}
.esp-script-texto { margin: 0; line-height: 1.6; color: var(--c-texto, #f0e9d8); font-style: italic; }

/* Perguntas */
.esp-perguntas { margin-bottom: 1rem; }
.esp-perguntas h3 { margin: 0 0 0.8rem; }
.esp-grupo-titulo {
  color: var(--c-dourado, #d9a530); font-weight: 700;
  margin: 1rem 0 0.3rem; font-size: 0.95rem;
}
.esp-perguntas ul { margin: 0 0 0.5rem; padding-left: 1.2rem; }
.esp-perguntas li { line-height: 1.5; margin: 0.3rem 0; color: var(--c-texto-suave); }

/* Cards de feedback */
.esp-fb-card {
  background: rgba(0,0,0,0.15);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio, 12px);
  padding: 1rem;
  margin-bottom: 1rem;
}
.esp-fb-topo { display: flex; gap: 0.6rem; margin-bottom: 0.6rem; align-items: center; }
.esp-fb-nome { flex: 1; padding: 0.6rem 0.8rem; background: rgba(0,0,0,0.2); border: 1px solid var(--c-borda, rgba(255,255,255,0.12)); border-radius: 8px; color: var(--c-texto, #f0e9d8); font-size: 0.95rem; }
.esp-fb-grupo { padding: 0.6rem 0.8rem; background: rgba(0,0,0,0.2); border: 1px solid var(--c-borda, rgba(255,255,255,0.12)); border-radius: 8px; color: var(--c-texto, #f0e9d8); font-size: 0.9rem; }
.esp-fb-remover {
  width: 32px; height: 32px; flex-shrink: 0;
  background: none; border: 1px solid rgba(231,76,60,0.4);
  color: #e88; border-radius: 8px; font-size: 1.2rem; cursor: pointer; line-height: 1;
}
.esp-fb-texto, .cac-campo textarea {
  width: 100%; box-sizing: border-box;
  padding: 0.7rem 0.9rem;
  background: rgba(0,0,0,0.2);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: 8px;
  color: var(--c-texto, #f0e9d8);
  font-size: 0.95rem; font-family: inherit; line-height: 1.5;
  resize: vertical;
}
.esp-fb-texto:focus, .cac-campo textarea:focus { outline: none; border-color: var(--c-dourado, #d9a530); }

@media (max-width: 560px) {
  .esp-fb-topo { flex-wrap: wrap; }
  .esp-fb-nome { min-width: 100%; }
}

/* v100 — topo das perguntas do Espelho (título + botão copiar) */
.esp-perguntas-topo {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  margin-bottom: 0.8rem;
  flex-wrap: wrap;
}
.esp-perguntas-topo h3 { margin: 0; }

/* ============================================================
   v103 — FERRAMENTA VENCENDO AS DESCULPAS
   ============================================================ */
#desc-cartao { text-align: center; padding: 1rem 0 0.5rem; }
.desc-cartao-numero {
  display: inline-flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(217,165,48,0.12);
  border: 1.5px solid var(--c-dourado, #d9a530);
  color: var(--c-dourado, #d9a530);
  font-weight: 800; font-size: 1.1rem; margin-bottom: 1.2rem;
}
.desc-cartao-texto {
  font-size: 1.5rem; line-height: 1.4; margin: 0 auto 0.5rem;
  max-width: 90%; color: var(--c-texto, #f0e9d8);
}
.desc-cartao-pergunta { color: var(--c-texto-suave); margin: 0 0 1.8rem; }
.desc-opcoes { display: flex; flex-direction: column; gap: 0.8rem; max-width: 380px; margin: 0 auto 1.5rem; }
.desc-opcao {
  padding: 1rem 1.2rem;
  background: rgba(255,255,255,0.03);
  border: 1.5px solid var(--c-borda, rgba(255,255,255,0.15));
  border-radius: var(--raio, 12px);
  color: var(--c-texto, #f0e9d8);
  font-size: 1rem; font-weight: 600; cursor: pointer;
  transition: border-color .15s, background .15s, transform .1s;
}
.desc-opcao:hover { border-color: var(--c-dourado, #d9a530); background: rgba(217,165,48,0.06); }
.desc-opcao:active { transform: scale(0.98); }
.desc-opcao.escolhida { border-color: var(--c-dourado, #d9a530); background: rgba(217,165,48,0.18); color: var(--c-dourado, #d9a530); }
.desc-voltar-cartao {
  background: none; border: none; color: var(--c-texto-suave);
  font-size: 0.88rem; cursor: pointer; text-decoration: underline; padding: 0.4rem;
}

/* Resultado — planos */
.desc-planos-titulo { margin: 2rem 0 1rem; color: var(--c-dourado, #d9a530); }
.desc-plano-card {
  background: rgba(0,0,0,0.15);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-left: 3px solid var(--c-dourado, #d9a530);
  border-radius: var(--raio, 12px);
  padding: 1.1rem 1.3rem; margin-bottom: 1rem;
}
.desc-plano-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 0.5rem; flex-wrap: wrap; }
.desc-plano-desculpa { font-weight: 700; color: var(--c-texto, #f0e9d8); font-style: italic; }
.desc-plano-grau {
  font-size: 0.72rem; font-weight: 700; white-space: nowrap;
  padding: 0.2rem 0.7rem; border-radius: 999px;
  background: rgba(217,165,48,0.15); color: var(--c-dourado, #d9a530);
}
.desc-plano-texto { margin: 0; line-height: 1.6; color: var(--c-texto-suave); }
.desc-parabens {
  text-align: center; padding: 2rem;
  background: rgba(39,174,96,0.08);
  border: 1px solid rgba(39,174,96,0.3);
  border-radius: var(--raio, 12px); margin-top: 1.5rem;
}
.desc-parabens h3 { color: #6fd39a; margin: 0 0 0.6rem; }
.desc-parabens p { margin: 0; line-height: 1.6; color: var(--c-texto-suave); }

@media (max-width: 560px) {
  .desc-cartao-texto { font-size: 1.25rem; }
}

/* ============================================================
   v103 — FERRAMENTA VENCENDO AS DESCULPAS
   ============================================================ */
/* Cartão */
.desc-cartao { text-align: center; padding: 1.5rem 0.5rem; }
.desc-pergunta-intro { color: var(--c-texto-suave); font-size: 0.9rem; text-transform: uppercase; letter-spacing: 0.06em; margin: 0 0 1.2rem; }
.desc-frase {
  font-size: 1.6rem; line-height: 1.35; margin: 0 auto 2rem; max-width: 90%;
  color: var(--c-texto, #f0e9d8);
}
.desc-opcoes { display: flex; flex-direction: column; gap: 0.8rem; max-width: 380px; margin: 0 auto; }
.desc-opcao {
  padding: 1rem 1.2rem;
  background: rgba(255,255,255,0.04);
  border: 1.5px solid var(--c-borda, rgba(255,255,255,0.15));
  border-radius: var(--raio, 12px);
  color: var(--c-texto, #f0e9d8);
  font-size: 1.05rem; font-weight: 600; cursor: pointer;
  transition: all .15s;
}
.desc-opcao:hover { border-color: var(--c-dourado, #d9a530); background: rgba(217,165,48,0.08); }
.desc-opcao.ativa { border-color: var(--c-dourado, #d9a530); background: var(--c-dourado, #d9a530); color: #1c1b18; }
.desc-voltar-cartao {
  margin-top: 1.5rem; background: none; border: none;
  color: var(--c-texto-suave); font-size: 0.9rem; cursor: pointer;
}
.desc-voltar-cartao:hover { color: var(--c-dourado, #d9a530); }

/* Resultado */
.desc-res-card {
  background: rgba(0,0,0,0.18);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-left: 3px solid var(--c-dourado, #d9a530);
  border-radius: var(--raio, 12px);
  padding: 1.1rem 1.3rem; margin-bottom: 1rem;
}
.desc-res-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; margin-bottom: 0.5rem; }
.desc-res-topo h4 { margin: 0; font-size: 1.1rem; color: var(--c-texto, #f0e9d8); }
.desc-selo { flex-shrink: 0; padding: 0.25rem 0.7rem; border-radius: 999px; font-size: 0.72rem; font-weight: 700; white-space: nowrap; }
.desc-selo-alto { background: rgba(231,76,60,0.2); color: #e88; }
.desc-selo-medio { background: rgba(217,165,48,0.2); color: var(--c-dourado, #d9a530); }
.desc-res-plano { margin: 0; line-height: 1.6; color: var(--c-texto-suave); font-size: 0.95rem; }

.desc-toggle-leves { background: none; border: none; color: var(--c-texto-suave); cursor: pointer; font-size: 0.9rem; padding: 0; }
.desc-toggle-leves:hover { color: var(--c-dourado, #d9a530); }
.desc-leve-item { padding: 0.5rem 0.8rem; color: var(--c-texto-suave); font-size: 0.9rem; border-bottom: 1px solid rgba(255,255,255,0.05); }

/* Plano */
.desc-plano-card {
  background: rgba(0,0,0,0.15);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio, 12px);
  padding: 1.1rem; margin-bottom: 1rem;
}
.desc-plano-frase { font-weight: 700; color: var(--c-dourado, #d9a530); margin: 0 0 0.8rem; }
.desc-plano-quando {
  width: 100%; box-sizing: border-box; padding: 0.7rem 0.9rem;
  background: rgba(0,0,0,0.2); border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: 8px; color: var(--c-texto, #f0e9d8); font-size: 0.95rem;
}
.desc-plano-quando:focus { outline: none; border-color: var(--c-dourado, #d9a530); }

@media (max-width: 560px) {
  .desc-frase { font-size: 1.3rem; }
  .desc-res-topo { flex-direction: column; }
}

/* ============================================================
   v105 — FERRAMENTA APRENDA A VENDER
   ============================================================ */
/* Checklist */
.vd-etapa { margin-bottom: 1.8rem; }
.vd-etapa-nome {
  color: var(--c-dourado, #d9a530); font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.05em; font-size: 0.9rem;
  margin: 0 0 0.8rem; padding-bottom: 0.4rem;
  border-bottom: 1px solid var(--c-borda, rgba(255,255,255,0.1));
}
.vd-pergunta {
  display: flex; justify-content: space-between; align-items: center;
  gap: 1rem; padding: 0.7rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
}
.vd-pergunta > span { flex: 1; line-height: 1.45; color: var(--c-texto, #f0e9d8); font-size: 0.95rem; }
.vd-escala { display: flex; gap: 0.3rem; flex-shrink: 0; flex-wrap: wrap; justify-content: flex-end; max-width: 340px; }
.vd-nivel {
  padding: 0.35rem 0.7rem; border-radius: 999px;
  border: 1.5px solid var(--c-borda, rgba(255,255,255,0.18));
  background: none; color: var(--c-texto-suave); font-size: 0.78rem; font-weight: 600; cursor: pointer;
  white-space: nowrap; transition: all .12s;
}
.vd-nivel:hover { border-color: var(--c-dourado, #d9a530); }
/* gradiente de cor: vermelho (Nunca) → verde (Sempre) */
.vd-nivel.ativo.n0 { background: rgba(231,76,60,0.25); border-color: rgba(231,76,60,0.6); color: #f0a599; }
.vd-nivel.ativo.n1 { background: rgba(230,126,60,0.22); border-color: rgba(230,126,60,0.55); color: #f0bf99; }
.vd-nivel.ativo.n2 { background: rgba(217,165,48,0.22); border-color: rgba(217,165,48,0.55); color: var(--c-dourado, #d9a530); }
.vd-nivel.ativo.n3 { background: rgba(120,180,90,0.22); border-color: rgba(120,180,90,0.55); color: #a9d68a; }
.vd-nivel.ativo.n4 { background: rgba(39,174,96,0.25); border-color: rgba(39,174,96,0.6); color: #6fd39a; }

/* Funil visual */
.vd-funil { margin: 1rem 0 1.5rem; }
.vd-funil-linha { display: flex; align-items: center; gap: 0.8rem; margin: 0.3rem 0; }
.vd-funil-nome { width: 90px; flex-shrink: 0; font-size: 0.9rem; color: var(--c-texto-suave); }
.vd-funil-barra-wrap { flex: 1; background: rgba(255,255,255,0.05); border-radius: 6px; overflow: hidden; height: 28px; }
.vd-funil-barra { height: 100%; background: linear-gradient(90deg, var(--c-dourado,#d9a530), #b8862a); border-radius: 6px; min-width: 6px; transition: width .4s; }
.vd-funil-valor { width: 44px; text-align: right; font-weight: 700; color: var(--c-texto, #f0e9d8); }
.vd-funil-taxa { margin: 0.1rem 0 0.1rem 100px; font-size: 0.8rem; color: var(--c-texto-suave); }
.vd-funil-taxa.gargalo { color: #e88; font-weight: 700; }

.vd-gargalo {
  padding: 1rem 1.2rem; border-radius: var(--raio, 12px);
  background: rgba(231,76,60,0.1); border: 1px solid rgba(231,76,60,0.35);
  color: var(--c-texto, #f0e9d8); line-height: 1.5; margin-bottom: 1.5rem;
}
.vd-gargalo strong { color: #e88; }

/* Caixa de ferramentas */
.vd-caixa-grupo { margin-bottom: 1.8rem; }
.vd-caixa-grupo h3 { color: var(--c-dourado, #d9a530); font-size: 1.05rem; margin: 0 0 0.8rem; }
.vd-caixa-item {
  background: rgba(0,0,0,0.15); border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: 10px; padding: 0.9rem 1.1rem; margin-bottom: 0.7rem;
}
.vd-caixa-topo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0.4rem; }
.vd-caixa-titulo { font-weight: 700; color: var(--c-texto, #f0e9d8); font-size: 0.92rem; }
.vd-caixa-texto { margin: 0; line-height: 1.55; color: var(--c-texto-suave); font-size: 0.92rem; font-style: italic; }

@media (max-width: 560px) {
  .vd-pergunta { flex-direction: column; align-items: flex-start; gap: 0.6rem; }
  .vd-escala { max-width: 100%; justify-content: flex-start; }
  .vd-nivel { font-size: 0.75rem; padding: 0.35rem 0.6rem; }
  .vd-funil-nome { width: 70px; font-size: 0.8rem; }
  .vd-funil-taxa { margin-left: 78px; }
}

/* v106 — nav: antecipa o menu hambúrguer em telas médias (721–960px)
   para evitar que o logo e os links se sobreponham quando há muitos itens */
@media (min-width: 721px) and (max-width: 960px) {
  .nav-hamburguer { display: inline-flex !important; }
  .nav-marca-texto { display: flex; }
  .nav-links {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--c-fundo, #0d0d0d);
    border-top: 1px solid var(--c-borda, rgba(255,255,255,0.1));
    box-shadow: 0 8px 24px rgba(0,0,0,0.4);
    padding: var(--e-2);
    z-index: 200;
  }
  .nav-links.aberto { display: flex; }
  .nav-links a, .nav-links a.btn {
    width: 100%;
    text-align: center;
    justify-content: center;
    padding: 0.9rem 1rem;
    border-radius: 8px;
  }
}

/* v109 — resumo do plano salvo na plataforma (Desculpas e outras) */
.desc-resumo-card, .vd-resumo-card, .esp-resumo-card {
  margin-top: 1.5rem;
  padding: 1.3rem 1.5rem;
  background: rgba(217, 165, 48, 0.08);
  border: 1px solid rgba(217, 165, 48, 0.3);
  border-radius: var(--raio, 14px);
}
.desc-resumo-item, .vd-resumo-item, .esp-resumo-item {
  padding: 0.7rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.06);
}
.desc-resumo-item:last-child, .vd-resumo-item:last-child, .esp-resumo-item:last-child { border-bottom: none; }
.desc-resumo-desculpa {
  font-weight: 700; color: var(--c-texto, #f0e9d8); margin: 0 0 0.3rem; font-size: 1rem;
}
.desc-resumo-quando, .vd-resumo-quando {
  margin: 0; color: var(--c-texto-suave); line-height: 1.5; font-size: 0.95rem;
}
.desc-resumo-quando span, .vd-resumo-quando span {
  color: var(--c-dourado, #d9a530); font-weight: 600;
}

/* v110 — Espelho: cada pergunta com botão de copiar próprio */
.esp-perguntas-ajuda { color: var(--c-texto-suave); font-size: 0.9rem; margin: 0 0 1.2rem; line-height: 1.5; }
.esp-pergunta-item {
  display: flex; align-items: center; justify-content: space-between;
  gap: 1rem; padding: 0.7rem 0;
  border-bottom: 1px solid rgba(255,255,255,0.05);
}
.esp-pergunta-txt { flex: 1; line-height: 1.5; color: var(--c-texto-suave); font-size: 0.95rem; }
.esp-copiar-uma { flex-shrink: 0; }
@media (max-width: 560px) {
  .esp-pergunta-item { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
}

/* v112 — FERRAMENTA MOTIVOS CERTOS E MATURIDADE */
.mot-cartao { padding: 0.5rem 0; }
.mot-pergunta {
  font-size: 1.4rem; line-height: 1.35; margin: 0.5rem 0 0.6rem;
  color: var(--c-texto, #f5f1e8);
}
.mot-ancora {
  font-size: 0.95rem; color: var(--c-dourado, #d9a530); font-style: italic;
  margin: 0 0 1.2rem; line-height: 1.5;
}
/* Resumo das respostas na tela do espelho */
.mot-resumo-card {
  margin-top: 1.8rem; padding: 1.3rem 1.5rem;
  background: rgba(217, 165, 48, 0.06);
  border: 1px solid rgba(217, 165, 48, 0.25);
  border-radius: var(--raio, 14px);
}
.mot-resumo-item { padding: 0.8rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.mot-resumo-item:last-child { border-bottom: none; }
.mot-resumo-pergunta { font-weight: 700; color: var(--c-texto, #f0e9d8); margin: 0 0 0.3rem; font-size: 0.95rem; line-height: 1.4; }
.mot-resumo-resposta { margin: 0; color: var(--c-texto-suave); line-height: 1.6; font-size: 0.95rem; white-space: pre-wrap; }
@media (max-width: 560px) {
  .mot-pergunta { font-size: 1.2rem; }
}

/* v113 — FERRAMENTA O FOCO CERTO (80/20) */
.par-area-titulo { font-size: 1.5rem; font-weight: 700; color: var(--c-texto, #f5f1e8); margin: 0 0 0.4rem; }
.par-area-intro { color: var(--c-texto-suave); margin: 0 0 1.5rem; line-height: 1.55; }
.par-exemplos { margin: -0.5rem 0 1.2rem; line-height: 2.1; }
.par-exemplos-label { font-size: 0.82rem; color: var(--c-texto-suave); margin-right: 0.3rem; }
.par-chip {
  display: inline-block; padding: 0.3rem 0.7rem; margin: 0 0.2rem 0.3rem 0;
  background: rgba(217,165,48,0.08); border: 1px solid rgba(217,165,48,0.28);
  border-radius: 999px; color: var(--c-dourado, #d9a530); font-size: 0.8rem; cursor: pointer;
  transition: background .12s;
}
.par-chip:hover { background: rgba(217,165,48,0.18); }
.par-chip.ativo {
  background: var(--c-dourado, #d9a530);
  border-color: var(--c-dourado, #d9a530);
  color: #1c1b18;
  font-weight: 600;
}
.par-chip.ativo::before { content: "✓ "; }
.cac-campo em { font-style: italic; color: var(--c-texto-suave); font-weight: 400; }

/* Resumo por área */
.par-resumo-card {
  margin-top: 1.8rem; padding: 1.3rem 1.5rem;
  background: rgba(217, 165, 48, 0.06);
  border: 1px solid rgba(217, 165, 48, 0.25);
  border-radius: var(--raio, 14px);
}
.par-resumo-item { padding: 0.8rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); }
.par-resumo-item:last-child { border-bottom: none; }
.par-resumo-area { font-weight: 700; color: var(--c-texto, #f0e9d8); margin: 0 0 0.4rem; font-size: 1rem; }
.par-resumo-linha { margin: 0.2rem 0; color: var(--c-texto-suave); line-height: 1.5; font-size: 0.92rem; }
.par-resumo-linha span { color: var(--c-dourado, #d9a530); font-weight: 600; }
@media (max-width: 560px) {
  .par-area-titulo { font-size: 1.25rem; }
}

/* v115 — FEEDBACK DA IMERSÃO */
.fb-bloco { margin: 1.5rem 0; }
.fb-pergunta { font-weight: 600; color: var(--c-texto, #f0e9d8); margin: 0 0 0.6rem; font-size: 1rem; }
.fb-pergunta em { font-style: italic; color: var(--c-texto-suave); font-weight: 400; }
.fb-estrelas { display: flex; gap: 0.3rem; }
.fb-estrela {
  background: none; border: none; cursor: pointer;
  font-size: 2rem; line-height: 1; color: rgba(255,255,255,0.2);
  transition: color .12s, transform .12s; padding: 0;
}
.fb-estrela:hover { transform: scale(1.15); }
.fb-estrela.ativa { color: var(--c-dourado, #d9a530); }
.fb-assinatura { display: flex; flex-direction: column; gap: 0.6rem; }
.fb-radio { display: flex; align-items: center; gap: 0.6rem; cursor: pointer; color: var(--c-texto, #f0e9d8); }
.fb-radio input { width: 18px; height: 18px; accent-color: var(--c-dourado, #d9a530); }
.fb-obrigado-card { text-align: center; padding: 2rem 1rem; }
.fb-obrigado-icone { font-size: 3rem; margin: 0 0 0.5rem; }

/* Depoimentos na home */
.depoimentos-secao { padding: 3rem 0; }
.depoimentos-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.2rem; margin-top: 1.5rem; }
.depoimento-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-left: 3px solid var(--c-dourado, #d9a530);
  border-radius: var(--raio, 14px);
  padding: 1.4rem 1.5rem;
}
.depoimento-estrelas { color: var(--c-dourado, #d9a530); font-size: 0.95rem; margin-bottom: 0.6rem; letter-spacing: 2px; }
.depoimento-texto { color: var(--c-texto, #f0e9d8); line-height: 1.6; font-size: 0.98rem; margin: 0 0 0.8rem; font-style: italic; }
.depoimento-autor { color: var(--c-dourado, #d9a530); font-weight: 600; font-size: 0.9rem; }

/* Painel do gestor de feedbacks */
.gfb-media { display: flex; align-items: baseline; gap: 0.5rem; margin: 1rem 0 2rem; }
.gfb-media-nota { font-size: 2.5rem; font-weight: 700; color: var(--c-dourado, #d9a530); }
.gfb-media-label { color: var(--c-texto-suave); }
.gfb-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio, 14px);
  padding: 1.4rem 1.5rem; margin-bottom: 1.2rem;
}
.gfb-card.publico { border-color: rgba(217,165,48,0.5); background: rgba(217,165,48,0.05); }
.gfb-topo { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0.8rem; flex-wrap: wrap; }
.gfb-autor { font-weight: 700; color: var(--c-texto, #f0e9d8); }
.gfb-estrelas { color: var(--c-dourado, #d9a530); letter-spacing: 2px; }
.gfb-qa { margin: 0.7rem 0; }
.gfb-q { font-size: 0.82rem; color: var(--c-dourado, #d9a530); font-weight: 600; margin: 0 0 0.2rem; text-transform: uppercase; letter-spacing: 0.03em; }
.gfb-a { margin: 0; color: var(--c-texto-suave); line-height: 1.55; }
.gfb-acoes { margin-top: 1rem; display: flex; gap: 0.6rem; flex-wrap: wrap; }
@media (max-width: 560px) {
  .fb-estrela { font-size: 1.7rem; }
}

/* v115 — card de convite ao feedback */
.fb-convite-card {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: linear-gradient(135deg, rgba(217,165,48,0.1), rgba(217,165,48,0.04));
  border: 1px solid rgba(217,165,48,0.35);
  border-radius: var(--raio, 14px);
  padding: 1.4rem 1.6rem; text-decoration: none;
  transition: transform .12s, border-color .12s;
}
.fb-convite-card:hover { transform: translateY(-2px); border-color: rgba(217,165,48,0.6); }
.fb-convite-info h3 { margin: 0.2rem 0; color: var(--c-texto, #f0e9d8); }
.fb-convite-info p { margin: 0; color: var(--c-texto-suave); font-size: 0.92rem; }
@media (max-width: 560px) {
  .fb-convite-card { flex-direction: column; align-items: flex-start; }
}

/* v117 — CHECK-IN DA IMERSÃO */
.checkin-grade {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 1rem; margin-top: 1.2rem;
}
.checkin-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio, 14px);
  padding: 1.3rem 1rem; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 0.6rem;
}
.checkin-card.feito { border-color: rgba(217,165,48,0.5); background: rgba(217,165,48,0.06); }
.checkin-card.bloqueado { opacity: 0.55; }
.checkin-icone { font-size: 2rem; line-height: 1; }
.checkin-nome { font-weight: 700; color: var(--c-texto, #f0e9d8); margin: 0; font-size: 0.98rem; }
.checkin-badge { color: var(--c-dourado, #d9a530); font-size: 0.85rem; font-weight: 600; }
.checkin-badge-aguarda { color: var(--c-texto-suave); font-size: 0.82rem; }
.btn-pequeno { padding: 0.5rem 1rem; font-size: 0.88rem; }

/* Modais de check-in / indicação */
.checkin-modal {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(0,0,0,0.7);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem; overflow-y: auto;
}
.checkin-modal-caixa {
  background: var(--c-fundo, #1a1a2e);
  border: 1px solid rgba(217,165,48,0.3);
  border-radius: var(--raio, 14px);
  padding: 2rem; max-width: 520px; width: 100%;
  position: relative; max-height: 90vh; overflow-y: auto;
}
.checkin-modal-x {
  position: absolute; top: 1rem; right: 1rem;
  background: none; border: none; color: var(--c-texto-suave);
  font-size: 1.8rem; line-height: 1; cursor: pointer; padding: 0;
}
.checkin-modal-x:hover { color: var(--c-texto, #f0e9d8); }
.checkin-ok-icone { font-size: 3rem; margin: 0 0 0.5rem; }
.checkin-ok-msg { color: var(--c-texto, #f0e9d8); line-height: 1.6; font-size: 1.05rem; margin: 0 0 1.5rem; }

/* Card de indicação */
.indicar-card {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: var(--raio, 14px);
  padding: 1.4rem 1.6rem; text-decoration: none;
  transition: transform .12s, border-color .12s;
}
.indicar-card:hover { transform: translateY(-2px); border-color: rgba(217,165,48,0.4); }
.indicar-info h3 { margin: 0.2rem 0; color: var(--c-texto, #f0e9d8); }
.indicar-info p { margin: 0; color: var(--c-texto-suave); font-size: 0.92rem; }
.indicar-texto-box {
  background: rgba(217,165,48,0.06);
  border: 1px solid rgba(217,165,48,0.25);
  border-radius: var(--raio, 14px);
  padding: 1.2rem; margin: 0.6rem 0 1rem;
}
.indicar-texto-box p { margin: 0; color: var(--c-texto, #f0e9d8); line-height: 1.6; white-space: pre-wrap; font-size: 0.95rem; }
@media (max-width: 560px) {
  .indicar-card { flex-direction: column; align-items: flex-start; }
  .checkin-modal-caixa { padding: 1.5rem; }
}

/* v117 — PAINEL GESTOR CHECK-IN */
.gck-secao { margin: 2.5rem 0; }
.gck-controles { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; margin-top: 1rem; }
.gck-controle {
  background: rgba(255,255,255,0.03); border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio, 14px); padding: 1.2rem; text-align: center;
}
.gck-controle.aberto { border-color: rgba(217,165,48,0.5); background: rgba(217,165,48,0.06); }
.gck-controle-topo { display: flex; align-items: center; justify-content: center; gap: 0.5rem; margin-bottom: 0.8rem; }
.gck-controle-icone { font-size: 1.5rem; }
.gck-controle-nome { font-weight: 700; color: var(--c-texto, #f0e9d8); }
.gck-hora-label { display: block; font-size: 0.8rem; color: var(--c-texto-suave); margin-bottom: 0.8rem; }
.gck-hora { display: block; width: 100%; margin-top: 0.3rem; padding: 0.4rem; border-radius: 8px; border: 1px solid var(--c-borda, rgba(255,255,255,0.15)); background: rgba(0,0,0,0.2); color: var(--c-texto, #f0e9d8); }
.gck-resumo { display: flex; gap: 1.5rem; flex-wrap: wrap; }
.gck-resumo-item { text-align: center; }
.gck-resumo-num { display: block; font-size: 2rem; font-weight: 700; color: var(--c-dourado, #d9a530); }
.gck-resumo-lbl { color: var(--c-texto-suave); font-size: 0.9rem; }
.gck-tabs { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 1.2rem; }
.gck-tab {
  background: rgba(255,255,255,0.04); border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: 999px; padding: 0.5rem 1rem; color: var(--c-texto-suave); cursor: pointer; font-size: 0.9rem;
}
.gck-tab.ativa { background: var(--c-dourado, #d9a530); color: #1c1b18; border-color: var(--c-dourado, #d9a530); font-weight: 600; }
.gck-linha {
  display: flex; align-items: flex-start; gap: 1rem; padding: 1rem;
  background: rgba(255,255,255,0.03); border: 1px solid var(--c-borda, rgba(255,255,255,0.08));
  border-radius: var(--raio, 14px); margin-bottom: 0.8rem;
}
.gck-linha.gck-pos-top { border-color: rgba(217,165,48,0.5); background: rgba(217,165,48,0.05); }
.gck-pos { font-size: 1.3rem; font-weight: 700; color: var(--c-dourado, #d9a530); min-width: 2.2rem; }
.gck-linha-info { flex: 1; }
.gck-linha-nome { font-weight: 700; color: var(--c-texto, #f0e9d8); margin: 0 0 0.2rem; }
.gck-linha-hora { color: var(--c-texto-suave); font-size: 0.85rem; margin: 0; }
.gck-extra { font-size: 0.88rem; color: var(--c-texto-suave); margin: 0.3rem 0 0; }
.gck-extra span { color: var(--c-dourado, #d9a530); font-weight: 600; }
.gck-tag-aluno, .gck-tag-vol { font-size: 0.72rem; padding: 0.15rem 0.5rem; border-radius: 999px; font-weight: 600; margin-left: 0.4rem; }
.gck-tag-aluno { background: rgba(217,165,48,0.15); color: var(--c-dourado, #d9a530); }
.gck-tag-vol { background: rgba(120,160,255,0.15); color: #9db4ff; }
.gck-presente { font-size: 0.8rem; color: var(--c-texto-suave); display: flex; align-items: center; gap: 0.3rem; cursor: pointer; white-space: nowrap; }
.gck-ind-linha { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; background: rgba(255,255,255,0.03); border: 1px solid var(--c-borda, rgba(255,255,255,0.08)); border-radius: var(--raio, 14px); margin-bottom: 0.8rem; }
.gck-vazio { color: var(--c-texto-suave); font-style: italic; }
@media (max-width: 560px) {
  .gck-linha { flex-direction: column; }
  .gck-presente { white-space: normal; }
}

/* v118 — tag de turma no painel de check-in */
.gck-turma-tag { color: var(--c-texto-suave); margin: 0 0 0.5rem; font-size: 0.95rem; }
.gck-turma-tag strong { color: var(--c-dourado, #d9a530); }

/* v118 — ajuda do horário mínimo + registro opcional de indicação */
.gck-hora-ajuda { font-size: 0.72rem; color: var(--c-texto-suave); margin: 0.3rem 0 0.8rem; line-height: 1.4; }
.indicar-registro { margin-top: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--c-borda, rgba(255,255,255,0.1)); }
.indicar-registro-ajuda { font-size: 0.85rem; color: var(--c-texto-suave); margin: 0 0 1rem; line-height: 1.5; }
.indicar-ok-msg { color: var(--c-dourado, #d9a530); line-height: 1.6; margin: 0.5rem 0 0; }
.cac-campo em { font-style: italic; color: var(--c-texto-suave); font-weight: 400; }

/* v119 — CONTATO (botões de ação) */
.contato-botoes { display: flex; flex-direction: column; gap: 0.8rem; margin: 1.2rem 0; }
.contato-botao {
  display: flex; align-items: center; gap: 1rem;
  padding: 1rem 1.2rem; text-decoration: none;
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: var(--raio, 14px);
  color: var(--c-texto, #f0e9d8); line-height: 1.4;
  transition: transform .12s, border-color .12s;
}
.contato-botao:hover { transform: translateY(-2px); border-color: rgba(217,165,48,0.5); }
.contato-botao strong { color: var(--c-dourado, #d9a530); }
.contato-icone { font-size: 1.6rem; flex-shrink: 0; }

/* v119 — cards de voluntário no painel */
.gck-vol-card {
  background: rgba(255,255,255,0.03); border: 1px solid var(--c-borda, rgba(255,255,255,0.1));
  border-radius: var(--raio, 14px); padding: 1.2rem; margin-bottom: 0.8rem;
}
.gck-vol-topo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.6rem; }

/* v122 — SUPER VENDEDOR (design visual) */
/* Abas */
.sv-abas { display: flex; gap: 0.5rem; flex-wrap: wrap; margin: 1.5rem 0; }
.sv-aba {
  background: rgba(255,255,255,0.04); border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: 999px; padding: 0.6rem 1.1rem; color: var(--c-texto-suave);
  cursor: pointer; font-size: 0.92rem; font-weight: 600; transition: all .12s; white-space: nowrap;
}
.sv-aba:hover { border-color: rgba(217,165,48,0.4); }
.sv-aba.ativa { background: var(--c-dourado, #d9a530); color: #1c1b18; border-color: var(--c-dourado, #d9a530); }
.sv-painel { display: none; animation: svFade .25s ease; }
.sv-painel.ativo { display: block; }
@keyframes svFade { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.sv-intro { color: var(--c-texto-suave); line-height: 1.6; margin: 0 0 1.2rem; font-size: 1.02rem; }

/* Aba 1 — perguntas de abertura */
.sv-perguntas { display: flex; flex-direction: column; gap: 0.9rem; }
.sv-pergunta-card {
  display: flex; gap: 1rem; align-items: flex-start;
  background: rgba(217,165,48,0.06); border: 1px solid rgba(217,165,48,0.2);
  border-radius: var(--raio, 14px); padding: 1.1rem 1.2rem;
}
.sv-pergunta-num {
  flex-shrink: 0; width: 2rem; height: 2rem; border-radius: 50%;
  background: var(--c-dourado, #d9a530); color: #1c1b18; font-weight: 700;
  display: flex; align-items: center; justify-content: center; font-size: 0.95rem;
}
.sv-pergunta-txt { color: var(--c-texto, #f0e9d8); font-weight: 600; margin: 0.2rem 0 0.4rem; line-height: 1.4; }
.sv-pergunta-revela { color: var(--c-texto-suave); font-size: 0.9rem; margin: 0; line-height: 1.5; }

/* Aba 2 — cartões de perfil */
.sv-perfis-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.2rem; }
.sv-perfil-card {
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12)); border-radius: var(--raio, 14px);
  padding: 1.3rem; border-top: 4px solid var(--sv-cor, #d9a530);
  background: var(--sv-bg, rgba(255,255,255,0.03));
}
.sv-p-dom { --sv-cor: #e05a4d; --sv-bg: rgba(224,90,77,0.06); }
.sv-p-ana { --sv-cor: #4d8fe0; --sv-bg: rgba(77,143,224,0.06); }
.sv-p-ext { --sv-cor: #e0a94d; --sv-bg: rgba(224,169,77,0.07); }
.sv-p-pac { --sv-cor: #5bb36a; --sv-bg: rgba(91,179,106,0.06); }
.sv-perfil-topo { display: flex; gap: 0.8rem; align-items: center; margin-bottom: 1rem; }
.sv-perfil-icone {
  font-size: 1.6rem; width: 3rem; height: 3rem; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--sv-cor, #d9a530); border-radius: 12px;
}
.sv-perfil-nome { margin: 0; color: var(--c-texto, #f0e9d8); font-size: 1.15rem; }
.sv-perfil-resumo { margin: 0.15rem 0 0; color: var(--c-texto-suave); font-size: 0.88rem; line-height: 1.4; }
.sv-perfil-lbl {
  color: var(--sv-cor, #d9a530); font-weight: 700; font-size: 0.75rem;
  text-transform: uppercase; letter-spacing: 0.04em; margin: 1rem 0 0.4rem;
}
.sv-perfil-lista { margin: 0; padding-left: 1.1rem; }
.sv-perfil-lista li { color: var(--c-texto, #f0e9d8); font-size: 0.92rem; line-height: 1.5; margin-bottom: 0.3rem; }
.sv-perfil-tom { color: var(--c-texto-suave); font-size: 0.9rem; margin: 1rem 0 0; line-height: 1.5; }
.sv-perfil-tom strong { color: var(--c-texto, #f0e9d8); }
.sv-perfil-evite {
  background: rgba(224,90,77,0.1); border-radius: 10px; padding: 0.7rem 0.9rem;
  color: var(--c-texto, #f0e9d8); font-size: 0.88rem; margin: 0.8rem 0 0; line-height: 1.5;
}
.sv-perfil-frase {
  font-style: italic; color: var(--c-texto-suave); font-size: 0.92rem;
  margin: 0.8rem 0 0; padding-top: 0.8rem; border-top: 1px dashed rgba(255,255,255,0.12); line-height: 1.5;
}

/* Aba 3 — pitch */
.sv-pitch-lista { display: flex; flex-direction: column; gap: 1rem; }
.sv-pitch-card {
  border: 1px solid var(--c-borda, rgba(255,255,255,0.12)); border-left: 4px solid var(--sv-cor, #d9a530);
  border-radius: var(--raio, 14px); padding: 1.1rem 1.3rem; background: var(--sv-bg, rgba(255,255,255,0.03));
}
.sv-pitch-nome { font-weight: 700; color: var(--c-texto, #f0e9d8); margin: 0 0 0.5rem; font-size: 1.05rem; }
.sv-pitch-txt { color: var(--c-texto-suave); line-height: 1.6; margin: 0; }

/* Aba 4 — SPIN */
.sv-spin-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1rem; }
.sv-spin-bloco { border-radius: var(--raio, 14px); padding: 1.1rem 1.2rem; border: 1px solid var(--sv-cor, #d9a530); background: rgba(255,255,255,0.02); }
.sv-spin-s { --sv-cor: #4d8fe0; }
.sv-spin-p { --sv-cor: #e0a94d; }
.sv-spin-i { --sv-cor: #e05a4d; }
.sv-spin-n { --sv-cor: #5bb36a; }
.sv-spin-titulo { color: var(--sv-cor, #d9a530); font-weight: 700; margin: 0 0 0.6rem; font-size: 1rem; }
.sv-spin-lista { margin: 0; padding-left: 1.1rem; }
.sv-spin-lista li { color: var(--c-texto, #f0e9d8); font-size: 0.92rem; line-height: 1.5; margin-bottom: 0.4rem; }

/* palavra final */
.sv-palavra-final {
  display: flex; gap: 1rem; align-items: center; margin-top: 1.8rem;
  background: rgba(217,165,48,0.06); border: 1px solid rgba(217,165,48,0.25);
  border-radius: var(--raio, 14px); padding: 1.3rem 1.5rem;
}
.sv-palavra-icone { font-size: 1.8rem; flex-shrink: 0; }
.sv-palavra-final p { margin: 0; color: var(--c-texto, #f0e9d8); line-height: 1.6; font-style: italic; }

@media (max-width: 560px) {
  .sv-perfis-grade, .sv-spin-grade { grid-template-columns: 1fr; }
  .sv-abas { overflow-x: auto; flex-wrap: nowrap; }
}

/* v123 — SUPER VENDEDOR: descrição guiada + biblioteca + aviso */
.sv-guia-desc {
  background: rgba(217,165,48,0.05); border: 1px solid rgba(217,165,48,0.2);
  border-radius: var(--raio, 14px); padding: 1.3rem 1.5rem; margin: 1.2rem 0 1.5rem;
}
.sv-guia-desc-titulo { color: var(--c-dourado, #d9a530); font-weight: 700; margin: 0 0 0.6rem; }
.sv-guia-desc-lista { margin: 0 0 1rem; padding-left: 1.2rem; }
.sv-guia-desc-lista li { color: var(--c-texto, #f0e9d8); line-height: 1.6; margin-bottom: 0.3rem; font-size: 0.95rem; }
.sv-guia-desc-lista strong { color: var(--c-dourado, #d9a530); }
.sv-exemplos { display: grid; grid-template-columns: 1fr 1fr; gap: 0.8rem; }
.sv-ex { border-radius: 10px; padding: 0.9rem 1rem; }
.sv-ex p { margin: 0.4rem 0 0; font-size: 0.88rem; line-height: 1.5; color: var(--c-texto, #f0e9d8); font-style: italic; }
.sv-ex-bom { background: rgba(91,179,106,0.08); border: 1px solid rgba(91,179,106,0.3); }
.sv-ex-ruim { background: rgba(224,90,77,0.08); border: 1px solid rgba(224,90,77,0.3); }
.sv-ex-tag { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; }
.sv-ex-bom .sv-ex-tag { color: #5bb36a; }
.sv-ex-ruim .sv-ex-tag { color: #e05a4d; }
.sv-contador { display: block; text-align: right; color: var(--c-texto-suave); font-size: 0.8rem; margin-top: 0.3rem; }

/* biblioteca */
.sv-biblioteca { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--c-borda, rgba(255,255,255,0.1)); }
.sv-biblioteca-titulo { color: var(--c-texto, #f0e9d8); font-weight: 700; font-size: 1.05rem; margin: 0 0 0.3rem; }
.sv-biblioteca-sub { color: var(--c-texto-suave); font-size: 0.88rem; margin: 0 0 1rem; }
.sv-biblioteca-lista { display: flex; flex-direction: column; gap: 0.7rem; }
.sv-bib-card {
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
  background: rgba(255,255,255,0.03); border: 1px solid var(--c-borda, rgba(255,255,255,0.12));
  border-radius: var(--raio, 14px); padding: 1rem 1.2rem; cursor: pointer; transition: border-color .12s;
}
.sv-bib-card:hover { border-color: rgba(217,165,48,0.4); }
.sv-bib-nome { color: var(--c-texto, #f0e9d8); font-weight: 600; margin: 0 0 0.2rem; }
.sv-bib-desc { color: var(--c-texto-suave); font-size: 0.85rem; margin: 0; }
.sv-bib-x {
  flex-shrink: 0; background: none; border: none; color: var(--c-texto-suave);
  font-size: 1.5rem; line-height: 1; cursor: pointer; padding: 0 0.3rem;
}
.sv-bib-x:hover { color: #e05a4d; }

/* aviso de descrição pobre */
.sv-aviso {
  display: flex; gap: 1rem; align-items: flex-start;
  background: rgba(224,169,77,0.1); border: 1px solid rgba(224,169,77,0.35);
  border-radius: var(--raio, 14px); padding: 1.1rem 1.3rem; margin-bottom: 1.5rem;
}
.sv-aviso-icone { font-size: 1.5rem; flex-shrink: 0; }
.sv-aviso-titulo { color: #e0a94d; font-weight: 700; margin: 0 0 0.3rem; }
.sv-aviso-texto { color: var(--c-texto, #f0e9d8); margin: 0 0 0.5rem; line-height: 1.5; font-size: 0.92rem; }

/* subtítulo do guia (nome do produto) */
.sv-guia-sub-txt { color: var(--c-dourado, #d9a530); font-weight: 600; font-size: 0.95rem; margin: -0.5rem 0 0.5rem; }

/* perguntas de abertura melhoradas */
.sv-pergunta-corpo { flex: 1; }
.sv-pergunta-porque { color: var(--c-texto-suave); font-size: 0.88rem; margin: 0.4rem 0 0; line-height: 1.5; }
.sv-pergunta-porque strong { color: var(--c-texto, #f0e9d8); }
.sv-pergunta-revela { color: var(--c-texto-suave); font-size: 0.88rem; margin: 0.4rem 0 0; line-height: 1.5; }
.sv-pergunta-revela strong { color: var(--c-dourado, #d9a530); }
@media (max-width: 560px) { .sv-exemplos { grid-template-columns: 1fr; } }
