/* ============================================================
   DESAFIO · Volta ao Foco · 5 Dias
   CSS consolidado dos 7 previews (Dia 0 a Dia 5 + homepage).
   Tudo prefixado com #tab-desafio, #vtab-desafio para isolamento.
   Variáveis de aliasing mapeiam nomes do preview com os do portal.
   ============================================================ */

/* Variáveis com scope · só dentro do tab e do vtab do desafio.
   Mapeia nomes usados nos previews (--carvao, --branco, etc.)
   para as variáveis equivalentes do portal (--s1, --w100, etc.). */
#tab-desafio, #vtab-desafio {
  --preto: var(--bg);
  --carvao: var(--s1);
  --carvao-2: var(--s2);
  --carvao-3: var(--s3);
  --branco: var(--w100);
  --w90: rgba(255,255,255,0.9);
  --w55: rgba(255,255,255,0.55);
  --w40: rgba(255,255,255,0.4);
  --w10: rgba(255,255,255,0.1);
  --w05: rgba(255,255,255,0.05);
  --o-soft: rgba(255,117,31,0.12);
  --o-bd: rgba(255,117,31,0.32);
  --g-soft: rgba(39,174,96,0.12);
  --g-bd: rgba(39,174,96,0.4);
  --rad-s: var(--rads);
}

/* Container do desafio · max-width e padding mobile-first */
#tab-desafio, #vtab-desafio { padding: 0; }
#tab-desafio .des-wrap, #vtab-desafio .des-wrap { max-width: 720px; margin: 0 auto; padding: 0 4px; }
@media (min-width: 768px) {
  #tab-desafio .des-wrap, #vtab-desafio .des-wrap { padding: 0 12px; }
}

/* ============================================================
   MOBILE GLOBAL · ajustes agressivos para entry mobile <480px
   Evita "estava grande demais e nao via logo tudo"
   ============================================================ */
@media (max-width: 480px) {
  #tab-desafio .des-titulo, #vtab-desafio .des-titulo {
    font-size: 24px;
    letter-spacing: -0.2px;
  }
  #tab-desafio .des-saudacao, #vtab-desafio .des-saudacao {
    font-size: 11px;
    letter-spacing: 2px;
  }
  #tab-desafio .des-subtitulo, #vtab-desafio .des-subtitulo {
    font-size: 13px;
    line-height: 1.5;
  }
  #tab-desafio .dia-titulo, #vtab-desafio .dia-titulo {
    font-size: 22px;
    letter-spacing: -0.2px;
  }
  #tab-desafio .dia-eyebrow, #vtab-desafio .dia-eyebrow {
    font-size: 10px;
    letter-spacing: 1.6px;
  }
  #tab-desafio .dia-ancora, #vtab-desafio .dia-ancora {
    font-size: 14px;
  }
  #tab-desafio .dia-porque, #vtab-desafio .dia-porque {
    font-size: 14px;
    line-height: 1.55;
  }
  #tab-desafio .des-cartao, #vtab-desafio .des-cartao {
    padding: 16px 16px 14px;
  }
  #tab-desafio .des-mapa, #vtab-desafio .des-mapa {
    padding: 16px 14px 14px;
  }
  #tab-desafio .des-mapa-lbl, #vtab-desafio .des-mapa-lbl {
    font-size: 9.5px;
    letter-spacing: 0.5px;
  }
  #tab-desafio .des-header, #vtab-desafio .des-header {
    padding: 8px 0 18px;
    margin-bottom: 20px;
  }
}
@media (max-width: 360px) {
  #tab-desafio .des-titulo, #vtab-desafio .des-titulo { font-size: 21px; }
  #tab-desafio .dia-titulo, #vtab-desafio .dia-titulo { font-size: 19px; }
  #tab-desafio .des-mapa-lbl, #vtab-desafio .des-mapa-lbl { font-size: 9px; }
}

/* ============================================================
   HEADER GLOBAL · saudação · cartão Dia 0 · placard
   ============================================================ */
#tab-desafio .des-header, #vtab-desafio .des-header {
  padding: 12px 0 24px;
  border-bottom: 1px solid var(--w08);
  margin-bottom: 28px;
}
#tab-desafio .des-saudacao, #vtab-desafio .des-saudacao {
  font-size: 13px;
  font-weight: 600;
  color: var(--o);
  letter-spacing: 2.5px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
#tab-desafio .des-titulo, #vtab-desafio .des-titulo {
  font-size: 28px;
  font-weight: 800;
  line-height: 1.15;
  margin-bottom: 6px;
  letter-spacing: -0.3px;
}
@media (min-width: 768px) {
  #tab-desafio .des-titulo, #vtab-desafio .des-titulo { font-size: 36px; }
}
#tab-desafio .des-subtitulo, #vtab-desafio .des-subtitulo {
  font-size: 14px;
  color: var(--w55);
  font-weight: 400;
}

#tab-desafio .des-cartao, #vtab-desafio .des-cartao {
  background: linear-gradient(180deg, var(--carvao-2) 0%, var(--carvao) 100%);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 22px 22px 20px;
  margin-top: 22px;
  position: relative;
  overflow: hidden;
}
#tab-desafio .des-cartao::before, #vtab-desafio .des-cartao::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: var(--o);
}
#tab-desafio .des-cartao-tag, #vtab-desafio .des-cartao-tag {
  font-size: 10px;
  font-weight: 700;
  color: var(--w55);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 14px;
}
#tab-desafio .des-cartao p, #vtab-desafio .des-cartao p {
  font-size: 15px;
  color: var(--w90);
  line-height: 1.65;
  margin-bottom: 6px;
}
#tab-desafio .des-cartao p:last-of-type, #vtab-desafio .des-cartao p:last-of-type { margin-bottom: 0; }
#tab-desafio .des-cartao b, #vtab-desafio .des-cartao b { color: var(--branco); font-weight: 700; }
#tab-desafio .des-cartao .pill, #vtab-desafio .des-cartao .pill {
  display: inline-block;
  padding: 3px 10px;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  border-radius: 50px;
  color: var(--o);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.3px;
}

/* Placard de disciplina · 5 dots dos dias do desafio */
#tab-desafio .des-placard, #vtab-desafio .des-placard {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 14px;
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 16px 18px;
  margin-top: 14px;
}
#tab-desafio .des-placard-info, #vtab-desafio .des-placard-info {
  font-size: 11px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--w55);
  font-weight: 700;
  margin-bottom: 6px;
}
#tab-desafio .des-placard-tarefa, #vtab-desafio .des-placard-tarefa {
  font-size: 14px;
  color: var(--w90);
  font-weight: 600;
  line-height: 1.4;
}
#tab-desafio .des-placard-dots, #vtab-desafio .des-placard-dots { display: flex; gap: 6px; flex-shrink: 0; }
#tab-desafio .des-placard-dot, #vtab-desafio .des-placard-dot {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--w08);
  border: 1.5px solid var(--w20);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  color: var(--w40);
  position: relative;
}
#tab-desafio .des-placard-dot.feito, #vtab-desafio .des-placard-dot.feito {
  background: var(--o-soft);
  border-color: var(--o);
  color: var(--o);
}
#tab-desafio .des-placard-dot.feito::after, #vtab-desafio .des-placard-dot.feito::after {
  content: "✓";
  position: absolute;
  font-size: 13px;
  font-weight: 900;
}
#tab-desafio .des-placard-dot.feito span, #vtab-desafio .des-placard-dot.feito span { display: none; }
#tab-desafio .des-placard-dot.atual, #vtab-desafio .des-placard-dot.atual {
  border-color: var(--o);
  color: var(--o);
  box-shadow: 0 0 0 3px var(--o-soft);
  animation: des-pulse 2.5s ease-in-out infinite;
}
@keyframes des-pulse {
  0%, 100% { box-shadow: 0 0 0 3px var(--o-soft); }
  50% { box-shadow: 0 0 0 6px rgba(255,117,31,0.06); }
}

/* ============================================================
   BLOCO DO DIA · eyebrow, título, frase âncora, vídeo, copy
   ============================================================ */
#tab-desafio .dia-bloco, #vtab-desafio .dia-bloco { margin-top: 28px; margin-bottom: 36px; }
@media (min-width: 768px) {
  #tab-desafio .dia-bloco, #vtab-desafio .dia-bloco { margin-top: 36px; }
}

/* Botão "Editar respostas" no estado fechado expandido · permite voltar a editar */
#tab-desafio .btn-reabrir-wrap, #vtab-desafio .btn-reabrir-wrap {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px dashed var(--w08);
  text-align: center;
}
#tab-desafio .btn-reabrir, #vtab-desafio .btn-reabrir {
  background: transparent;
  border: 1px solid var(--w20);
  color: var(--w70);
  padding: 8px 16px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  transition: all .15s;
  letter-spacing: 0.3px;
}
#tab-desafio .btn-reabrir:hover, #vtab-desafio .btn-reabrir:hover {
  border-color: var(--o);
  color: var(--o);
  background: var(--o-soft);
}
/* Esconde no estado fechado COMPACTO · só aparece quando expandido */
#tab-desafio .fechado.visivel:not(.expandido) .btn-reabrir-wrap,
#vtab-desafio .fechado.visivel:not(.expandido) .btn-reabrir-wrap { display: none; }

/* Badge "Onboarding · antes do Dia 1" · só no D0 · sinaliza visualmente que é etapa preparatória */
#tab-desafio .badge-antes, #vtab-desafio .badge-antes {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  background: linear-gradient(135deg, rgba(255,117,31,.18), rgba(255,117,31,.08));
  border: 1px dashed var(--o);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  color: var(--o);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 14px;
}
#tab-desafio .badge-antes-ico, #vtab-desafio .badge-antes-ico {
  font-size: 14px;
  line-height: 1;
}
@media (max-width: 480px) {
  #tab-desafio .badge-antes, #vtab-desafio .badge-antes {
    font-size: 10px;
    letter-spacing: 1.2px;
    padding: 5px 10px;
  }
}
#tab-desafio .dia-eyebrow, #vtab-desafio .dia-eyebrow {
  font-size: 11px;
  font-weight: 700;
  color: var(--o);
  letter-spacing: 3px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
#tab-desafio .dia-titulo, #vtab-desafio .dia-titulo {
  font-size: 32px;
  font-weight: 800;
  line-height: 1.1;
  margin-bottom: 10px;
  letter-spacing: -0.5px;
}
@media (min-width: 768px) {
  #tab-desafio .dia-titulo, #vtab-desafio .dia-titulo { font-size: 42px; }
}
#tab-desafio .dia-ancora, #vtab-desafio .dia-ancora {
  font-size: 17px;
  font-weight: 600;
  color: var(--o);
  font-style: italic;
  border-left: 3px solid var(--o);
  padding-left: 14px;
  margin: 18px 0 24px;
  line-height: 1.5;
}
#tab-desafio .dia-porque, #vtab-desafio .dia-porque {
  font-size: 16px;
  color: var(--w70);
  line-height: 1.7;
  margin-bottom: 24px;
}
#tab-desafio .dia-porque b, #vtab-desafio .dia-porque b { color: var(--branco); }

#tab-desafio .dia-video, #vtab-desafio .dia-video {
  position: relative;
  aspect-ratio: 16 / 9;
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  overflow: hidden;
  margin-bottom: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
}
#tab-desafio .dia-video iframe, #vtab-desafio .dia-video iframe { width: 100%; height: 100%; border: 0; }
#tab-desafio .dia-video-placeholder, #vtab-desafio .dia-video-placeholder { text-align: center; padding: 30px; }
#tab-desafio .dia-video-placeholder svg, #vtab-desafio .dia-video-placeholder svg {
  width: 56px; height: 56px;
  color: var(--o);
  margin-bottom: 14px;
}
#tab-desafio .dia-video-placeholder p, #vtab-desafio .dia-video-placeholder p {
  font-size: 13px;
  color: var(--w55);
  font-weight: 500;
  line-height: 1.5;
}
#tab-desafio .dia-video-placeholder b, #vtab-desafio .dia-video-placeholder b {
  display: block;
  color: var(--branco);
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 6px;
}

/* ============================================================
   EXEMPLO ACCORDION · Catarina (todos os dias)
   ============================================================ */
#tab-desafio .exemplo, #vtab-desafio .exemplo {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  margin-bottom: 24px;
  overflow: hidden;
}
#tab-desafio .exemplo-toggle, #vtab-desafio .exemplo-toggle {
  width: 100%;
  background: transparent;
  border: 0;
  padding: 18px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  color: var(--branco);
  font-family: inherit;
  text-align: left;
  gap: 16px;
  list-style: none;
}
#tab-desafio .exemplo-toggle::-webkit-details-marker, #vtab-desafio .exemplo-toggle::-webkit-details-marker { display: none; }
#tab-desafio .exemplo-toggle-l, #vtab-desafio .exemplo-toggle-l {
  display: flex;
  align-items: center;
  gap: 14px;
  flex: 1;
  min-width: 0;
}
#tab-desafio .exemplo-icone, #vtab-desafio .exemplo-icone {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: var(--o);
}
#tab-desafio .exemplo-icone svg, #vtab-desafio .exemplo-icone svg { width: 18px; height: 18px; }
#tab-desafio .exemplo-toggle-titulo, #vtab-desafio .exemplo-toggle-titulo {
  font-size: 13px;
  font-weight: 600;
  color: var(--w90);
  line-height: 1.3;
}
#tab-desafio .exemplo-toggle-sub, #vtab-desafio .exemplo-toggle-sub {
  font-size: 11px;
  color: var(--w55);
  font-weight: 400;
  margin-top: 2px;
  letter-spacing: 0.2px;
}
#tab-desafio .exemplo-chevron, #vtab-desafio .exemplo-chevron {
  color: var(--o);
  font-size: 20px;
  font-weight: 400;
  flex-shrink: 0;
  transition: transform .2s;
}
#tab-desafio .exemplo[open] .exemplo-chevron, #vtab-desafio .exemplo[open] .exemplo-chevron { transform: rotate(45deg); }
#tab-desafio .exemplo-corpo, #vtab-desafio .exemplo-corpo {
  padding: 0 20px 22px;
  border-top: 1px solid var(--w05);
  margin-top: -1px;
  padding-top: 18px;
}
#tab-desafio .exemplo-corpo p, #vtab-desafio .exemplo-corpo p {
  font-size: 13.5px;
  color: var(--w70);
  line-height: 1.65;
  margin-bottom: 10px;
}
#tab-desafio .exemplo-corpo p b, #vtab-desafio .exemplo-corpo p b { color: var(--w90); }
#tab-desafio .exemplo-corpo p:last-child, #vtab-desafio .exemplo-corpo p:last-child { margin-bottom: 0; }

/* Bloco interno do exemplo (usado em Dia 3, 4, 5) */
#tab-desafio .exemplo-bloco, #vtab-desafio .exemplo-bloco { margin-bottom: 14px; }
#tab-desafio .exemplo-bloco:last-child, #vtab-desafio .exemplo-bloco:last-child { margin-bottom: 0; }
#tab-desafio .exemplo-bloco-tit, #vtab-desafio .exemplo-bloco-tit {
  font-size: 11px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 6px;
}
#tab-desafio .exemplo-bloco ul, #vtab-desafio .exemplo-bloco ul {
  list-style: none;
  padding-left: 14px;
  border-left: 2px solid var(--w08);
  margin: 0;
}
#tab-desafio .exemplo-bloco ul li, #vtab-desafio .exemplo-bloco ul li {
  font-size: 13.5px;
  color: var(--w70);
  line-height: 1.6;
  padding-left: 14px;
  position: relative;
  margin-bottom: 6px;
}
#tab-desafio .exemplo-bloco ul li::before, #vtab-desafio .exemplo-bloco ul li::before {
  content: "·";
  position: absolute;
  left: 0;
  color: var(--o);
  font-weight: 800;
}
#tab-desafio .exemplo-bloco p, #vtab-desafio .exemplo-bloco p {
  font-size: 13.5px;
  color: var(--w70);
  line-height: 1.65;
  padding-left: 14px;
  border-left: 2px solid var(--w08);
  margin-bottom: 6px;
}

/* Exemplo inline (Dia 1 · usado nos blocos de síntese e solução) */
#tab-desafio .exemplo-inline, #vtab-desafio .exemplo-inline {
  background: rgba(255,117,31,0.05);
  border: 1px dashed var(--o-bd);
  border-radius: var(--rad-s);
  padding: 14px 16px;
  margin-bottom: 14px;
  position: relative;
}
#tab-desafio .exemplo-inline-tag, #vtab-desafio .exemplo-inline-tag {
  display: inline-block;
  font-size: 9px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 6px;
  padding: 2px 8px;
  background: var(--o-soft);
  border-radius: 4px;
}
#tab-desafio .exemplo-inline p, #vtab-desafio .exemplo-inline p {
  font-size: 13.5px;
  color: var(--w70);
  line-height: 1.65;
  font-style: italic;
  margin: 0;
}

/* ============================================================
   AJUDA DE BLOQUEIO · canal WhatsApp · todos os dias
   ============================================================ */
#tab-desafio .ajuda-bloqueio, #vtab-desafio .ajuda-bloqueio {
  background: rgba(37,211,102,0.06);
  border: 1px solid rgba(37,211,102,0.25);
  border-radius: var(--rad-s);
  padding: 14px 16px;
  margin-bottom: 18px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
#tab-desafio .ajuda-bloqueio svg, #vtab-desafio .ajuda-bloqueio svg {
  flex-shrink: 0;
  width: 20px; height: 20px;
  color: #25d366;
  margin-top: 2px;
}
#tab-desafio .ajuda-bloqueio p, #vtab-desafio .ajuda-bloqueio p {
  font-size: 13px;
  color: var(--w70);
  line-height: 1.6;
  margin: 0;
}
#tab-desafio .ajuda-bloqueio a, #vtab-desafio .ajuda-bloqueio a {
  color: #25d366;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
  font-weight: 600;
}

/* ============================================================
   EXERCÍCIOS · cabeçalho + cards + textareas + sub-campos
   ============================================================ */
#tab-desafio .ex-h2, #vtab-desafio .ex-h2 {
  font-size: 22px;
  font-weight: 800;
  margin: 28px 0 6px;
  letter-spacing: -0.2px;
}
#tab-desafio .ex-instrucao, #vtab-desafio .ex-instrucao {
  font-size: 14px;
  color: var(--w55);
  line-height: 1.6;
  margin-bottom: 24px;
}

/* Card padrão usado em vários dias (Dia 3 · esp-card; Dia 4 · spr-card; Dia 5 · rev-card) */
#tab-desafio .des-card, #vtab-desafio .des-card {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 20px 20px 18px;
  margin-bottom: 14px;
}
#tab-desafio .des-card-header, #vtab-desafio .des-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 6px;
}
#tab-desafio .des-card-num, #vtab-desafio .des-card-num {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: var(--o);
  flex-shrink: 0;
}
#tab-desafio .des-card-titulo, #vtab-desafio .des-card-titulo {
  font-size: 16px;
  font-weight: 800;
  color: var(--branco);
  letter-spacing: 0.1px;
}
#tab-desafio .des-card-sub, #vtab-desafio .des-card-sub {
  font-size: 12.5px;
  color: var(--w55);
  margin-bottom: 12px;
  margin-left: 44px;
  line-height: 1.55;
}
#tab-desafio .des-card-textarea, #vtab-desafio .des-card-textarea {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit;
  font-size: 15px;
  color: var(--branco);
  outline: none;
  resize: none;
  min-height: 90px;
  line-height: 1.55;
  transition: border-color .15s, background .15s;
}
#tab-desafio .des-card-textarea:focus, #vtab-desafio .des-card-textarea:focus {
  border-color: var(--o);
  background: rgba(255,117,31,0.04);
}
#tab-desafio .des-card-textarea::placeholder, #vtab-desafio .des-card-textarea::placeholder { color: var(--w40); }

/* Sub-campo dentro de card (Dia 5 · funcionou/falhou) */
#tab-desafio .sub-campo, #vtab-desafio .sub-campo { margin-top: 10px; }
#tab-desafio .sub-campo:first-of-type, #vtab-desafio .sub-campo:first-of-type { margin-top: 0; }
#tab-desafio .sub-campo-label, #vtab-desafio .sub-campo-label {
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: var(--w70);
  margin-bottom: 6px;
  letter-spacing: 0.3px;
}
#tab-desafio .sub-campo-textarea, #vtab-desafio .sub-campo-textarea {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit;
  font-size: 14.5px;
  color: var(--branco);
  outline: none;
  resize: none;
  min-height: 70px;
  line-height: 1.55;
}
#tab-desafio .sub-campo-textarea:focus, #vtab-desafio .sub-campo-textarea:focus {
  border-color: var(--o);
  background: rgba(255,117,31,0.04);
}

/* ============================================================
   DIA 1 · momento (auditoria de fugas)
   ============================================================ */
#tab-desafio .momento, #vtab-desafio .momento {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 20px 20px 18px;
  margin-bottom: 14px;
}
#tab-desafio .momento.preenchido, #vtab-desafio .momento.preenchido {
  border-color: var(--o-bd);
  background: linear-gradient(180deg, rgba(255,117,31,0.04) 0%, var(--carvao) 100%);
}
#tab-desafio .momento-header, #vtab-desafio .momento-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
#tab-desafio .momento-num, #vtab-desafio .momento-num {
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
  color: var(--o);
  flex-shrink: 0;
}
#tab-desafio .momento-titulo, #vtab-desafio .momento-titulo {
  font-size: 14px;
  font-weight: 700;
  color: var(--branco);
  letter-spacing: 0.2px;
}
#tab-desafio .campo, #vtab-desafio .campo { margin-bottom: 12px; }
#tab-desafio .campo:last-child, #vtab-desafio .campo:last-child { margin-bottom: 0; }
#tab-desafio .campo-label, #vtab-desafio .campo-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: var(--w70);
  margin-bottom: 6px;
  letter-spacing: 0.2px;
}
#tab-desafio .campo-input, #vtab-desafio .campo-input {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit;
  font-size: 15px;
  color: var(--branco);
  outline: none;
  transition: border-color .15s, background .15s;
}
#tab-desafio .campo-input:focus, #vtab-desafio .campo-input:focus {
  border-color: var(--o);
  background: rgba(255,117,31,0.04);
}
#tab-desafio .campo-input::placeholder, #vtab-desafio .campo-input::placeholder { color: var(--w40); }

#tab-desafio .padrao-bloco, #vtab-desafio .padrao-bloco {
  background: linear-gradient(180deg, var(--carvao-2) 0%, var(--carvao) 100%);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 22px;
  margin-top: 24px;
}
#tab-desafio .padrao-h3, #vtab-desafio .padrao-h3 {
  font-size: 17px;
  font-weight: 800;
  margin-bottom: 6px;
}
#tab-desafio .padrao-sub, #vtab-desafio .padrao-sub {
  font-size: 13px;
  color: var(--w55);
  margin-bottom: 16px;
  line-height: 1.6;
}
#tab-desafio .campo-textarea, #vtab-desafio .campo-textarea {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit;
  font-size: 15px;
  color: var(--branco);
  outline: none;
  resize: none;
  min-height: 70px;
  line-height: 1.55;
  transition: border-color .15s;
}
#tab-desafio .campo-textarea:focus, #vtab-desafio .campo-textarea:focus {
  border-color: var(--o);
  background: rgba(255,117,31,0.04);
}

/* ============================================================
   DIA 0 · 3 passos · stepper · escolha de área
   ============================================================ */
#tab-desafio .progresso-passos, #vtab-desafio .progresso-passos {
  margin: 4px 0 26px;
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 22px 22px 18px;
}
#tab-desafio .progresso-stepper, #vtab-desafio .progresso-stepper {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  position: relative;
  margin-bottom: 14px;
}
#tab-desafio .progresso-stepper-linha-bg, #vtab-desafio .progresso-stepper-linha-bg {
  position: absolute;
  top: 16px; left: 32px; right: 32px;
  height: 2px;
  background: var(--w08);
  z-index: 0;
}
#tab-desafio .progresso-stepper-linha-fill, #vtab-desafio .progresso-stepper-linha-fill {
  position: absolute;
  top: 16px; left: 32px;
  height: 2px;
  background: var(--g);
  z-index: 0;
  width: 0%;
  transition: width .35s ease;
}
#tab-desafio .passo-stepper, #vtab-desafio .passo-stepper {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  flex: 1;
  position: relative;
  z-index: 1;
}
#tab-desafio .passo-stepper-dot, #vtab-desafio .passo-stepper-dot {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--carvao-3);
  border: 2px solid var(--w20);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: var(--w55);
  transition: all .25s;
  flex-shrink: 0;
}
#tab-desafio .passo-stepper.feito .passo-stepper-dot, #vtab-desafio .passo-stepper.feito .passo-stepper-dot {
  background: var(--g);
  border-color: var(--g);
  color: var(--branco);
}
#tab-desafio .passo-stepper.feito .passo-stepper-dot::after, #vtab-desafio .passo-stepper.feito .passo-stepper-dot::after {
  content: "✓";
  font-size: 16px;
  font-weight: 900;
}
#tab-desafio .passo-stepper.feito .passo-stepper-dot span, #vtab-desafio .passo-stepper.feito .passo-stepper-dot span { display: none; }
#tab-desafio .passo-stepper.atual .passo-stepper-dot, #vtab-desafio .passo-stepper.atual .passo-stepper-dot {
  border-color: var(--o);
  color: var(--o);
  box-shadow: 0 0 0 4px var(--o-soft);
  animation: des-pulse-stepper 2.4s ease-in-out infinite;
}
@keyframes des-pulse-stepper {
  0%, 100% { box-shadow: 0 0 0 4px var(--o-soft); }
  50% { box-shadow: 0 0 0 8px rgba(255,117,31,0.05); }
}
#tab-desafio .passo-stepper-lbl, #vtab-desafio .passo-stepper-lbl {
  font-size: 10.5px;
  color: var(--w55);
  letter-spacing: 0.3px;
  text-transform: uppercase;
  font-weight: 700;
  text-align: center;
  line-height: 1.3;
}
#tab-desafio .passo-stepper.atual .passo-stepper-lbl, #vtab-desafio .passo-stepper.atual .passo-stepper-lbl { color: var(--o); }
#tab-desafio .passo-stepper.feito .passo-stepper-lbl, #vtab-desafio .passo-stepper.feito .passo-stepper-lbl { color: var(--g); }
#tab-desafio .progresso-label, #vtab-desafio .progresso-label {
  font-size: 12px;
  color: var(--w55);
  text-align: center;
  letter-spacing: 0.3px;
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid var(--w08);
}
#tab-desafio .progresso-label b, #vtab-desafio .progresso-label b { color: var(--o); font-weight: 700; }
#tab-desafio .progresso-label.completo b, #vtab-desafio .progresso-label.completo b { color: var(--g); }

/* Cards dos 3 passos · Quiz · Roda · Agenda */
#tab-desafio .passo-card, #vtab-desafio .passo-card {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 22px;
  margin-bottom: 14px;
  position: relative;
  overflow: hidden;
}
#tab-desafio .passo-card.feito, #vtab-desafio .passo-card.feito {
  border-color: var(--g-bd);
  background: linear-gradient(180deg, var(--g-soft) 0%, var(--carvao) 100%);
}
#tab-desafio .passo-card-header, #vtab-desafio .passo-card-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 12px;
}
#tab-desafio .passo-num, #vtab-desafio .passo-num {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1.5px solid var(--o-bd);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: var(--o);
  flex-shrink: 0;
  transition: all .2s;
}
#tab-desafio .passo-card.feito .passo-num, #vtab-desafio .passo-card.feito .passo-num {
  background: var(--g-soft);
  border-color: var(--g);
  color: var(--g);
}
#tab-desafio .passo-card.feito .passo-num::before, #vtab-desafio .passo-card.feito .passo-num::before { content: "✓"; }
#tab-desafio .passo-card.feito .passo-num span, #vtab-desafio .passo-card.feito .passo-num span { display: none; }
#tab-desafio .passo-titulo, #vtab-desafio .passo-titulo {
  font-size: 17px;
  font-weight: 800;
  color: var(--branco);
}
#tab-desafio .passo-tempo, #vtab-desafio .passo-tempo {
  font-size: 12px;
  color: var(--w55);
  margin-top: 2px;
}
#tab-desafio .passo-card-corpo, #vtab-desafio .passo-card-corpo { margin-left: 50px; }
#tab-desafio .passo-descricao, #vtab-desafio .passo-descricao {
  font-size: 14px;
  color: var(--w70);
  line-height: 1.6;
  margin-bottom: 14px;
}
#tab-desafio .passo-resultado, #vtab-desafio .passo-resultado {
  background: var(--carvao-2);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 14px 16px;
  margin-bottom: 14px;
  display: none;
}
#tab-desafio .passo-card.feito .passo-resultado, #vtab-desafio .passo-card.feito .passo-resultado { display: block; }
#tab-desafio .passo-resultado-tag, #vtab-desafio .passo-resultado-tag {
  font-size: 10px;
  font-weight: 800;
  color: var(--g);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 6px;
}
#tab-desafio .passo-resultado p, #vtab-desafio .passo-resultado p {
  font-size: 14px;
  color: var(--w90);
  line-height: 1.55;
}
#tab-desafio .passo-resultado p b, #vtab-desafio .passo-resultado p b { color: var(--branco); font-weight: 700; }
#tab-desafio .passo-resultado .pill, #vtab-desafio .passo-resultado .pill {
  display: inline-block;
  padding: 2px 10px;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  border-radius: 50px;
  color: var(--o);
  font-size: 12px;
  font-weight: 700;
  margin: 2px 4px 2px 0;
}
#tab-desafio .passo-acao, #vtab-desafio .passo-acao { display: flex; gap: 8px; }
#tab-desafio .passo-card.feito .passo-acao .btn-fazer, #vtab-desafio .passo-card.feito .passo-acao .btn-fazer { display: none; }
#tab-desafio .btn-fazer, #vtab-desafio .btn-fazer {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 20px;
  background: var(--o);
  color: var(--bg);
  border: 0;
  border-radius: var(--rad-s);
  font-family: inherit;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
}
#tab-desafio .btn-fazer:hover, #vtab-desafio .btn-fazer:hover { background: #ff8c40; }
#tab-desafio .btn-rever, #vtab-desafio .btn-rever {
  display: none;
  align-items: center;
  gap: 8px;
  padding: 11px 20px;
  background: transparent;
  color: var(--w70);
  border: 1.5px solid var(--w20);
  border-radius: var(--rad-s);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
}
#tab-desafio .btn-rever:hover, #vtab-desafio .btn-rever:hover { border-color: var(--o); color: var(--o); }
#tab-desafio .passo-card.feito .btn-rever, #vtab-desafio .passo-card.feito .btn-rever { display: inline-flex; }

/* ============================================================
   ESP-CARD · 4 cards numerados do Dia 3 (Afastar/Aproximar/Ritual/Bloco)
   ============================================================ */
#tab-desafio .esp-card, #vtab-desafio .esp-card {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 20px 20px 18px;
  margin-bottom: 14px;
}
#tab-desafio .esp-card-header, #vtab-desafio .esp-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 6px;
}
#tab-desafio .esp-card-num, #vtab-desafio .esp-card-num {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: var(--o);
  flex-shrink: 0;
}
#tab-desafio .esp-card-titulo, #vtab-desafio .esp-card-titulo {
  font-size: 16px;
  font-weight: 800;
  color: var(--w100);
  letter-spacing: 0.1px;
}
#tab-desafio .esp-card-sub, #vtab-desafio .esp-card-sub {
  font-size: 12.5px;
  color: var(--w55);
  margin-bottom: 12px;
  margin-left: 44px;
  line-height: 1.55;
}
#tab-desafio .esp-card-textarea, #vtab-desafio .esp-card-textarea {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit;
  font-size: 15px;
  color: var(--w100);
  outline: none;
  resize: none;
  min-height: 100px;
  line-height: 1.55;
  transition: border-color .15s, background .15s;
  box-sizing: border-box;
}
#tab-desafio .esp-card-textarea:focus, #vtab-desafio .esp-card-textarea:focus {
  border-color: var(--o);
  background: rgba(255,117,31,0.04);
}
#tab-desafio .esp-card-textarea::placeholder, #vtab-desafio .esp-card-textarea::placeholder { color: var(--w40); }
@media (max-width: 480px) {
  #tab-desafio .esp-card, #vtab-desafio .esp-card { padding: 16px 16px 14px; }
  #tab-desafio .esp-card-sub, #vtab-desafio .esp-card-sub { margin-left: 0; }
}

/* ============================================================
   SPR-CARD · 3 cards numerados do Dia 4 (Tarefa/Pico/Aprendi)
   ============================================================ */
#tab-desafio .spr-card, #vtab-desafio .spr-card {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 20px 20px 18px;
  margin-bottom: 14px;
}
#tab-desafio .spr-card-header, #vtab-desafio .spr-card-header {
  display: flex; align-items: center; gap: 12px; margin-bottom: 6px;
}
#tab-desafio .spr-card-num, #vtab-desafio .spr-card-num {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 800; color: var(--o); flex-shrink: 0;
}
#tab-desafio .spr-card-titulo, #vtab-desafio .spr-card-titulo {
  font-size: 16px; font-weight: 800; color: var(--w100); letter-spacing: 0.1px;
}
#tab-desafio .spr-card-sub, #vtab-desafio .spr-card-sub {
  font-size: 12.5px; color: var(--w55);
  margin-bottom: 12px; margin-left: 44px; line-height: 1.55;
}
#tab-desafio .spr-card-textarea, #vtab-desafio .spr-card-textarea {
  width: 100%; box-sizing: border-box;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit; font-size: 15px; color: var(--w100);
  outline: none; resize: none; min-height: 90px; line-height: 1.55;
  transition: border-color .15s, background .15s;
}
#tab-desafio .spr-card-textarea:focus, #vtab-desafio .spr-card-textarea:focus {
  border-color: var(--o); background: rgba(255,117,31,0.04);
}
#tab-desafio .spr-card-textarea::placeholder, #vtab-desafio .spr-card-textarea::placeholder { color: var(--w40); }
@media (max-width: 480px) {
  #tab-desafio .spr-card, #vtab-desafio .spr-card { padding: 16px 16px 14px; }
  #tab-desafio .spr-card-sub, #vtab-desafio .spr-card-sub { margin-left: 0; }
}

/* ============================================================
   REV-CARD · 5 cards numerados do Dia 5 (Revisão da semana)
   ============================================================ */
#tab-desafio .rev-card, #vtab-desafio .rev-card {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 20px 20px 18px;
  margin-bottom: 14px;
}
#tab-desafio .rev-card-header, #vtab-desafio .rev-card-header {
  display: flex; align-items: center; gap: 12px; margin-bottom: 6px;
}
#tab-desafio .rev-card-num, #vtab-desafio .rev-card-num {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 800; color: var(--o); flex-shrink: 0;
}
#tab-desafio .rev-card-titulo, #vtab-desafio .rev-card-titulo {
  font-size: 16px; font-weight: 800; color: var(--w100); letter-spacing: 0.1px;
}
#tab-desafio .rev-card-sub, #vtab-desafio .rev-card-sub {
  font-size: 12.5px; color: var(--w55);
  margin-bottom: 12px; margin-left: 44px; line-height: 1.55;
}
#tab-desafio .rev-card-textarea, #vtab-desafio .rev-card-textarea {
  width: 100%; box-sizing: border-box;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit; font-size: 15px; color: var(--w100);
  outline: none; resize: none; min-height: 90px; line-height: 1.55;
  transition: border-color .15s, background .15s;
}
#tab-desafio .rev-card-textarea:focus, #vtab-desafio .rev-card-textarea:focus {
  border-color: var(--o); background: rgba(255,117,31,0.04);
}
#tab-desafio .rev-card-textarea::placeholder, #vtab-desafio .rev-card-textarea::placeholder { color: var(--w40); }
@media (max-width: 480px) {
  #tab-desafio .rev-card, #vtab-desafio .rev-card { padding: 16px 16px 14px; }
  #tab-desafio .rev-card-sub, #vtab-desafio .rev-card-sub { margin-left: 0; }
}

/* ============================================================
   DIA 5 · Estado fechado · recorrente + placard bónus
   ============================================================ */
/* Chips de dias da semana (Seg-Dom) · 7 colunas */
#tab-desafio .dias-chips, #vtab-desafio .dias-chips {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}
#tab-desafio .chip, #vtab-desafio .chip {
  width: 44px !important;
  height: 44px !important;
  max-width: 44px !important;
  aspect-ratio: 1 !important;
  margin: 0 auto;
  border-radius: 50% !important;
  border: 1.5px solid var(--w20);
  background: var(--carvao-3);
  color: var(--w70);
  font-family: inherit; font-size: 13px; font-weight: 700;
  cursor: pointer; padding: 0;
  transition: all .15s;
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
#tab-desafio .dias-chips, #vtab-desafio .dias-chips {
  display: flex !important;
  justify-content: space-between;
  gap: 4px;
}
@media (max-width: 360px) {
  #tab-desafio .chip, #vtab-desafio .chip {
    width: 38px !important;
    height: 38px !important;
    max-width: 38px !important;
    font-size: 12px;
  }
}
#tab-desafio .chip:hover, #vtab-desafio .chip:hover { border-color: var(--o); color: var(--o); }
#tab-desafio .chip.selecionado, #vtab-desafio .chip.selecionado {
  background: var(--o-soft); border-color: var(--o); color: var(--o);
}

/* Resumo do recorrente · texto contextual */
#tab-desafio .cal-summary-rec, #vtab-desafio .cal-summary-rec {
  font-size: 13px;
  color: var(--w90);
  margin-bottom: 12px;
  padding: 10px 12px;
  background: rgba(255,117,31,0.04);
  border-left: 3px solid var(--o);
  border-radius: 4px;
  line-height: 1.55;
  text-align: left;
}
#tab-desafio .cal-summary-rec b, #vtab-desafio .cal-summary-rec b { color: var(--o); }
#tab-desafio .cal-summary-rec .vazio, #vtab-desafio .cal-summary-rec .vazio { color: var(--w55); font-style: italic; }

/* Botões Google Calendar / .ics do recorrente */
#tab-desafio .cal-buttons-rec, #vtab-desafio .cal-buttons-rec {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 4px;
}
@media (max-width: 480px) {
  #tab-desafio .cal-buttons-rec, #vtab-desafio .cal-buttons-rec { grid-template-columns: 1fr; }
}
#tab-desafio .cal-btn-rec, #vtab-desafio .cal-btn-rec {
  display: flex; align-items: center; justify-content: center;
  gap: 8px; padding: 12px;
  border: 1.5px solid var(--w20);
  border-radius: var(--rad-s);
  background: var(--carvao-3);
  color: var(--w100);
  font-family: inherit; font-size: 13px; font-weight: 700;
  cursor: pointer; text-decoration: none;
  transition: all .15s;
}
#tab-desafio .cal-btn-rec:hover:not(:disabled), #vtab-desafio .cal-btn-rec:hover:not(:disabled) {
  border-color: var(--o); color: var(--o);
}
#tab-desafio .cal-btn-rec:disabled, #vtab-desafio .cal-btn-rec:disabled { opacity: 0.4; cursor: not-allowed; }
#tab-desafio .cal-btn-rec svg, #vtab-desafio .cal-btn-rec svg { width: 16px; height: 16px; flex-shrink: 0; }

/* ============================================================
   BONUS MINI-WIDGET · formato igual ao Placard da Disciplina existente
   Card horizontal com hábito + botão circular HOJE, na homepage
   ============================================================ */
.bonus-mini-widget {
  /* Sem container especial · segue o estilo do widget Placard mentoria */
}
.bonus-mini-stats {
  font-size: 11.5px;
  color: rgba(255,255,255,0.55);
  text-align: center;
  margin-top: 12px;
  letter-spacing: 0.2px;
}
.bonus-mini-stats b {
  color: rgba(255,255,255,0.9);
  font-weight: 700;
}

/* Bonus widget · ESTADO 1 (form definir tarefa + datas) */
.bonus-form-card {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,117,31,0.25);
  border-radius: 12px;
  padding: 16px;
}
.bonus-form-lbl {
  display: block;
  font-size: 11px;
  font-weight: 700;
  color: rgba(255,255,255,0.55);
  letter-spacing: 0.4px;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.bonus-form-input {
  width: 100%;
  background: rgba(0,0,0,0.3);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 8px;
  padding: 10px 12px;
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  color: rgba(255,255,255,0.95);
  outline: none;
  transition: border-color .15s;
  color-scheme: dark;
  margin-bottom: 12px;
  box-sizing: border-box;
}
.bonus-form-input:focus { border-color: #ff751f; }
.bonus-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 4px;
}
@media (max-width: 360px) {
  .bonus-form-row { grid-template-columns: 1fr; }
}
.bonus-form-btn {
  width: 100%;
  background: #ff751f;
  color: #0a0a0a;
  border: 0;
  border-radius: 8px;
  padding: 12px;
  font-family: 'Poppins', sans-serif;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  transition: background .15s;
  margin-top: 4px;
}
.bonus-form-btn:hover { background: #ff8c40; }
.bonus-form-btn:active { transform: scale(0.98); }

/* Bonus widget · ESTADO 2 (placard com bolinhas) */
.bonus-card-info {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}
.bonus-card-tarefa {
  font-size: 15px;
  font-weight: 700;
  color: rgba(255,255,255,0.95);
  line-height: 1.35;
  flex: 1;
  min-width: 0;
}
.bonus-card-edit {
  background: none;
  border: 0;
  color: #ff751f;
  font-size: 12px;
  font-weight: 600;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  padding: 4px 8px;
  flex-shrink: 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.bonus-card-edit:hover { color: #ff8c40; }
.bonus-card-periodo {
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  margin: 4px 0 14px;
  letter-spacing: 0.2px;
}

/* ============================================================
   BONUS WIDGET (versão antiga · grid de dots) · mantida para Dia 5 fechado
   Reaproveita .bonus-placard, .bonus-stats das classes do Dia 5
   ============================================================ */
#tab-inicio .bonus-widget, #vtab-inicio .bonus-widget {
  background: linear-gradient(180deg, rgba(255,117,31,0.08) 0%, var(--carvao, #1a1a1a) 70%);
  border: 1px solid rgba(255,117,31,0.25);
  border-radius: 16px;
  padding: 18px 18px 16px;
  position: relative;
  overflow: hidden;
}
#tab-inicio .bonus-widget::before, #vtab-inicio .bonus-widget::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: #ff751f;
}
#tab-inicio .bonus-widget-header, #vtab-inicio .bonus-widget-header {
  margin-bottom: 14px;
}
#tab-inicio .bonus-widget-tag, #vtab-inicio .bonus-widget-tag {
  font-size: 10px;
  font-weight: 800;
  color: #ff751f;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  margin: 0 0 6px;
}
#tab-inicio .bonus-widget-tarefa, #vtab-inicio .bonus-widget-tarefa {
  font-size: 17px;
  font-weight: 700;
  color: rgba(255,255,255,0.95);
  line-height: 1.3;
  margin: 0;
  letter-spacing: -0.1px;
}
#tab-inicio .bonus-widget-tarefa.vazio, #vtab-inicio .bonus-widget-tarefa.vazio {
  font-weight: 600;
  color: #ff751f;
  font-size: 14px;
  font-style: italic;
  text-decoration: underline;
  text-decoration-style: dashed;
  text-underline-offset: 4px;
  text-decoration-color: rgba(255,117,31,0.6);
}
#tab-inicio .bonus-widget-tarefa.vazio:hover, #vtab-inicio .bonus-widget-tarefa.vazio:hover,
#tab-inicio .bonus-widget-tarefa.vazio:active, #vtab-inicio .bonus-widget-tarefa.vazio:active {
  text-decoration-style: solid;
  text-decoration-color: #ff751f;
}
/* Reutiliza estilos .bonus-placard já existentes mas adapta padding interior */
#tab-inicio .bonus-widget .bonus-placard, #vtab-inicio .bonus-widget .bonus-placard {
  margin-top: 0;
  padding: 12px;
  background: rgba(0,0,0,0.25);
  border: 1px solid rgba(255,255,255,0.06);
}

/* ============================================================
   BOTÕES DE CALENDÁRIO · estado "adicionado" após click
   Aplica-se a .cal-btn (Dia 3), .cal-btn-rec (Dia 5), .agenda-btn (Dia 0)
   ============================================================ */
/* Estado "adicionado" = VERDE com check (visual claro de "concluído")
   !important porque competem com regras :disabled e :hover de mesma specificity */
#tab-desafio .cal-btn.adicionado, #vtab-desafio .cal-btn.adicionado,
#tab-desafio .cal-btn-rec.adicionado, #vtab-desafio .cal-btn-rec.adicionado,
#tab-desafio .agenda-btn.adicionado, #vtab-desafio .agenda-btn.adicionado {
  background: rgba(102,187,106,0.15) !important;
  border-color: #66bb6a !important;
  color: #66bb6a !important;
  opacity: 1 !important;
}
#tab-desafio .cal-btn.adicionado::before, #vtab-desafio .cal-btn.adicionado::before,
#tab-desafio .cal-btn-rec.adicionado::before, #vtab-desafio .cal-btn-rec.adicionado::before,
#tab-desafio .agenda-btn.adicionado::before, #vtab-desafio .agenda-btn.adicionado::before {
  content: "✓ ";
  font-weight: 900;
  margin-right: 4px;
  color: #66bb6a;
}
#tab-desafio .cal-btn.adicionado svg, #vtab-desafio .cal-btn.adicionado svg,
#tab-desafio .cal-btn-rec.adicionado svg, #vtab-desafio .cal-btn-rec.adicionado svg,
#tab-desafio .agenda-btn.adicionado svg, #vtab-desafio .agenda-btn.adicionado svg {
  color: #66bb6a;
}
#tab-desafio .cal-btn.adicionado:hover, #vtab-desafio .cal-btn.adicionado:hover,
#tab-desafio .cal-btn-rec.adicionado:hover, #vtab-desafio .cal-btn-rec.adicionado:hover,
#tab-desafio .agenda-btn.adicionado:hover, #vtab-desafio .agenda-btn.adicionado:hover {
  background: rgba(102,187,106,0.25) !important;
  color: #66bb6a !important;
}

/* ============================================================
   PLACARD BÓNUS · período definido pela aluna · 3 estados por dia
   (feito / falhou / por marcar) · click cycla
   ============================================================ */
.bonus-placard {
  margin-top: 16px;
  padding: 14px;
  background: var(--carvao-2);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
}
.bonus-placard-tag {
  font-size: 11px;
  color: var(--w55);
  font-weight: 700;
  letter-spacing: 0.4px;
  margin: 0 0 12px;
  text-transform: uppercase;
}
.bonus-placard-tag b {
  color: var(--o);
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
}
.bonus-placard-vazio {
  text-align: center;
  font-size: 13px;
  color: var(--w55);
  padding: 28px 16px;
  font-style: italic;
}
.bonus-placard-header {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 6px;
}
.bonus-placard-header span {
  font-size: 9.5px;
  color: var(--w45);
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}
.bonus-placard-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}
@media (max-width: 480px) {
  /* Em mobile pequeno, gap menor + dots ocupam mais espaço para tap target maior */
  .bonus-placard-grid { gap: 3px; }
  .bonus-placard-header { gap: 3px; }
  .bonus-placard-dot { font-size: 10px; }
}
.bonus-placard-spacer { display: block; }
.bonus-placard-dot {
  position: relative;
  aspect-ratio: 1;
  width: 100%;
  max-width: 44px;
  margin: 0 auto;
  border: 1.5px solid var(--w08);
  background: var(--carvao-3);
  color: var(--w55);
  border-radius: 50%;
  cursor: pointer;
  padding: 0;
  font-family: inherit;
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all .12s ease;
  -webkit-tap-highlight-color: transparent;
  font-variant-numeric: tabular-nums;
}
.bonus-placard-dot:hover:not(:disabled) {
  border-color: var(--o);
  transform: scale(1.05);
}
.bonus-placard-dot.feito {
  background: var(--o);
  border-color: var(--o);
  color: #0a0a0a;
}
.bonus-placard-dot.feito::after {
  content: "✓";
  position: absolute;
  top: 2px; right: 4px;
  font-size: 10px;
  font-weight: 900;
  color: #0a0a0a;
}
.bonus-placard-dot.falhou {
  background: rgba(255,255,255,0.04);
  border-color: var(--w20);
  color: var(--w45);
  text-decoration: line-through;
  text-decoration-color: rgba(255,255,255,0.35);
}
.bonus-placard-dot.falhou::after {
  content: "×";
  position: absolute;
  top: 0px; right: 4px;
  font-size: 14px;
  font-weight: 900;
  color: var(--w55);
  line-height: 1;
}
.bonus-placard-dot.hoje:not(.feito):not(.falhou) {
  border-color: var(--o);
  box-shadow: 0 0 0 2px var(--o-soft);
  color: var(--o);
}
.bonus-placard-dot.futuro {
  opacity: 0.35;
  cursor: not-allowed;
}
.bonus-placard-dot:active:not(:disabled) {
  transform: scale(0.92);
}

/* Legenda dos 3 estados */
.bonus-legenda {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 12px;
  font-size: 11px;
  color: var(--w55);
}
.bonus-legenda-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.bonus-legenda-dot {
  width: 12px; height: 12px;
  border-radius: 3px;
  border: 1.5px solid var(--w08);
  background: var(--carvao-3);
}
.bonus-legenda-dot.feito {
  background: var(--o); border-color: var(--o);
}
.bonus-legenda-dot.falhou {
  background: rgba(255,255,255,0.04); border-color: var(--w20);
}

/* Stats · 3 contadores em linha */
.bonus-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--w08);
}
.bonus-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.bonus-stat-num {
  font-size: 22px;
  font-weight: 800;
  color: var(--o);
  font-variant-numeric: tabular-nums;
  line-height: 1.2;
}
.bonus-stat-lbl {
  font-size: 10.5px;
  color: var(--w55);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 700;
}

/* Placard bónus contínuo · 7 dots para marcar dias */
#tab-desafio .placard-semana, #vtab-desafio .placard-semana { margin-top: 14px; }
#tab-desafio .placard-semana-tag, #vtab-desafio .placard-semana-tag {
  font-size: 11px;
  color: var(--w55);
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
#tab-desafio .placard-dias, #vtab-desafio .placard-dias {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-bottom: 14px;
}
#tab-desafio .placard-dia, #vtab-desafio .placard-dia {
  display: flex; flex-direction: column; align-items: center; gap: 6px;
}
#tab-desafio .placard-dia-label, #vtab-desafio .placard-dia-label {
  font-size: 10px; color: var(--w55);
  text-transform: uppercase; letter-spacing: 0.5px; font-weight: 700;
}
#tab-desafio .placard-dia-label.hoje, #vtab-desafio .placard-dia-label.hoje { color: var(--o); }
#tab-desafio .dia-dot-bonus, #vtab-desafio .dia-dot-bonus {
  width: 100%; max-width: 56px; aspect-ratio: 1; margin: 0 auto;
  border-radius: 50%;
  border: 1.5px solid var(--w20);
  background: var(--carvao-3);
  cursor: pointer;
  transition: all .15s;
  position: relative;
  padding: 0;
  font-family: inherit; font-size: 16px; font-weight: 900;
  color: transparent;
}
#tab-desafio .dia-dot-bonus:hover:not(:disabled), #vtab-desafio .dia-dot-bonus:hover:not(:disabled) { border-color: var(--o); }
#tab-desafio .dia-dot-bonus.feito, #vtab-desafio .dia-dot-bonus.feito {
  background: var(--o); border-color: var(--o); color: #0a0a0a;
}
#tab-desafio .dia-dot-bonus.feito::after, #vtab-desafio .dia-dot-bonus.feito::after {
  content: "✓"; position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  color: #0a0a0a; font-size: 16px; font-weight: 900;
}
#tab-desafio .dia-dot-bonus:disabled, #vtab-desafio .dia-dot-bonus:disabled { cursor: not-allowed; opacity: 0.5; }
#tab-desafio .dia-dot-bonus.hoje:not(.feito), #vtab-desafio .dia-dot-bonus.hoje:not(.feito) {
  border-color: var(--o); box-shadow: 0 0 0 3px var(--o-soft);
}

/* Streak counter · "X dias marcados esta semana" */
#tab-desafio .placard-streak, #vtab-desafio .placard-streak {
  display: flex; align-items: baseline; gap: 8px;
  padding-top: 14px; border-top: 1px solid var(--w08);
}
#tab-desafio .placard-streak-num, #vtab-desafio .placard-streak-num {
  font-size: 28px; font-weight: 800; color: var(--o);
  font-variant-numeric: tabular-nums;
}
#tab-desafio .placard-streak-label, #vtab-desafio .placard-streak-label {
  font-size: 13px; color: var(--w70);
}

/* CAL-ACAO · sub-bloco accionável dentro do card 4 (Bloco de tempo) */
#tab-desafio .cal-acao, #vtab-desafio .cal-acao {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--w08);
}
#tab-desafio .cal-acao-titulo, #vtab-desafio .cal-acao-titulo {
  font-size: 11px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  margin-bottom: 12px;
}

/* Bloco accionável · agenda no Dia 0 e Dia 3 */
#tab-desafio .agenda-bloco, #vtab-desafio .agenda-bloco { margin-top: 14px; }
#tab-desafio .passo-card.feito .agenda-bloco, #vtab-desafio .passo-card.feito .agenda-bloco { display: none; }
#tab-desafio .agenda-inputs, #vtab-desafio .agenda-inputs,
#tab-desafio .cal-inputs, #vtab-desafio .cal-inputs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-bottom: 12px;
}
@media (max-width: 480px) {
  #tab-desafio .agenda-inputs, #vtab-desafio .agenda-inputs,
  #tab-desafio .cal-inputs, #vtab-desafio .cal-inputs { grid-template-columns: 1fr; }
}
#tab-desafio .agenda-input-wrap label, #vtab-desafio .agenda-input-wrap label,
#tab-desafio .cal-input-wrap label, #vtab-desafio .cal-input-wrap label {
  font-size: 11px;
  color: var(--w55);
  font-weight: 600;
  display: block;
  margin-bottom: 4px;
}
#tab-desafio .agenda-input-wrap input, #vtab-desafio .agenda-input-wrap input,
#tab-desafio .agenda-input-wrap select, #vtab-desafio .agenda-input-wrap select,
#tab-desafio .cal-input-wrap input, #vtab-desafio .cal-input-wrap input,
#tab-desafio .cal-input-wrap select, #vtab-desafio .cal-input-wrap select {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 10px 12px;
  font-family: inherit;
  font-size: 14px;
  color: var(--branco);
  outline: none;
  transition: border-color .15s;
  color-scheme: dark;
}
#tab-desafio .agenda-input-wrap input:focus, #vtab-desafio .agenda-input-wrap input:focus,
#tab-desafio .agenda-input-wrap select:focus, #vtab-desafio .agenda-input-wrap select:focus,
#tab-desafio .cal-input-wrap input:focus, #vtab-desafio .cal-input-wrap input:focus,
#tab-desafio .cal-input-wrap select:focus, #vtab-desafio .cal-input-wrap select:focus { border-color: var(--o); }
#tab-desafio .agenda-summary, #vtab-desafio .agenda-summary,
#tab-desafio .cal-summary, #vtab-desafio .cal-summary {
  font-size: 13px;
  color: var(--w90);
  margin-bottom: 12px;
  padding: 10px 12px;
  background: rgba(255,117,31,0.04);
  border-left: 3px solid var(--o);
  border-radius: 4px;
  line-height: 1.55;
}
#tab-desafio .agenda-summary b, #vtab-desafio .agenda-summary b,
#tab-desafio .cal-summary b, #vtab-desafio .cal-summary b { color: var(--o); }
#tab-desafio .agenda-buttons, #vtab-desafio .agenda-buttons,
#tab-desafio .cal-buttons, #vtab-desafio .cal-buttons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
@media (max-width: 480px) {
  #tab-desafio .agenda-buttons, #vtab-desafio .agenda-buttons,
  #tab-desafio .cal-buttons, #vtab-desafio .cal-buttons { grid-template-columns: 1fr; }
}
#tab-desafio .agenda-btn, #vtab-desafio .agenda-btn,
#tab-desafio .cal-btn, #vtab-desafio .cal-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  border: 1.5px solid var(--w20);
  border-radius: var(--rad-s);
  background: var(--carvao-3);
  color: var(--branco);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
}
#tab-desafio .agenda-btn:hover, #vtab-desafio .agenda-btn:hover,
#tab-desafio .cal-btn:hover, #vtab-desafio .cal-btn:hover { border-color: var(--o); color: var(--o); }
#tab-desafio .agenda-btn svg, #vtab-desafio .agenda-btn svg,
#tab-desafio .cal-btn svg, #vtab-desafio .cal-btn svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Cartão final · Dia 0 (após 3 passos feitos) */
#tab-desafio .cartao-final, #vtab-desafio .cartao-final {
  display: none;
  background: linear-gradient(180deg, var(--carvao-2) 0%, var(--carvao) 100%);
  border: 1px solid var(--o-bd);
  border-radius: var(--rad);
  padding: 28px 22px 24px;
  margin-top: 28px;
  position: relative;
  overflow: hidden;
}
#tab-desafio .cartao-final::before, #vtab-desafio .cartao-final::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: var(--o);
}
#tab-desafio .cartao-final.visivel, #vtab-desafio .cartao-final.visivel { display: block; }
#tab-desafio .cartao-final-tag, #vtab-desafio .cartao-final-tag {
  font-size: 10px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 14px;
}
#tab-desafio .cartao-final h3, #vtab-desafio .cartao-final h3 {
  font-size: 22px;
  font-weight: 800;
  margin-bottom: 14px;
  letter-spacing: -0.2px;
}
#tab-desafio .cartao-final p, #vtab-desafio .cartao-final p {
  font-size: 15px;
  color: var(--w90);
  line-height: 1.7;
  margin-bottom: 10px;
}
#tab-desafio .cartao-final p:last-of-type, #vtab-desafio .cartao-final p:last-of-type { margin-bottom: 0; }
#tab-desafio .cartao-final b, #vtab-desafio .cartao-final b { color: var(--branco); font-weight: 700; }
#tab-desafio .cartao-final .destaque, #vtab-desafio .cartao-final .destaque {
  background: var(--o-soft);
  border-left: 3px solid var(--o);
  padding: 14px 16px;
  border-radius: 4px;
  margin: 14px 0;
  font-style: italic;
}

/* Escolha de área · Dia 0 */
#tab-desafio .escolha-area, #vtab-desafio .escolha-area {
  display: none;
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 22px;
  margin-top: 14px;
}
#tab-desafio .escolha-area.visivel, #vtab-desafio .escolha-area.visivel { display: block; }
#tab-desafio .escolha-area h3, #vtab-desafio .escolha-area h3 {
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 6px;
}
#tab-desafio .escolha-area .sub, #vtab-desafio .escolha-area .sub {
  font-size: 13.5px;
  color: var(--w70);
  line-height: 1.6;
  margin-bottom: 18px;
}
#tab-desafio .areas-opcoes, #vtab-desafio .areas-opcoes { display: grid; gap: 10px; }
#tab-desafio .area-opcao, #vtab-desafio .area-opcao {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: var(--carvao-2);
  border: 1.5px solid var(--w08);
  border-radius: var(--rad-s);
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
  text-align: left;
  width: 100%;
  color: var(--w90);
}
#tab-desafio .area-opcao:hover, #vtab-desafio .area-opcao:hover { border-color: var(--w20); }
#tab-desafio .area-opcao.escolhida, #vtab-desafio .area-opcao.escolhida {
  border-color: var(--o);
  background: var(--o-soft);
}
#tab-desafio .area-opcao-radio, #vtab-desafio .area-opcao-radio {
  width: 18px; height: 18px;
  border-radius: 50%;
  border: 2px solid var(--w20);
  flex-shrink: 0;
  position: relative;
  transition: all .15s;
}
#tab-desafio .area-opcao.escolhida .area-opcao-radio, #vtab-desafio .area-opcao.escolhida .area-opcao-radio {
  border-color: var(--o);
  background: var(--o);
}
#tab-desafio .area-opcao.escolhida .area-opcao-radio::after, #vtab-desafio .area-opcao.escolhida .area-opcao-radio::after {
  content: "";
  position: absolute;
  top: 3px; left: 3px;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--bg);
}
#tab-desafio .area-opcao-texto, #vtab-desafio .area-opcao-texto {
  flex: 1;
  font-size: 14px;
  font-weight: 600;
}
#tab-desafio .area-opcao-pill, #vtab-desafio .area-opcao-pill {
  font-size: 10px;
  font-weight: 800;
  color: var(--o);
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  padding: 2px 8px;
  border-radius: 50px;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  flex-shrink: 0;
}
#tab-desafio .outras-areas, #vtab-desafio .outras-areas {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--w08);
}
#tab-desafio .outras-areas-titulo, #vtab-desafio .outras-areas-titulo {
  font-size: 12px;
  font-weight: 700;
  color: var(--w55);
  letter-spacing: 0.5px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
#tab-desafio .areas-grelha, #vtab-desafio .areas-grelha {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}
@media (min-width: 600px) {
  #tab-desafio .areas-grelha, #vtab-desafio .areas-grelha { grid-template-columns: repeat(4, 1fr); }
}
#tab-desafio .area-mini, #vtab-desafio .area-mini {
  background: var(--carvao-2);
  border: 1.5px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 10px 12px;
  font-family: inherit;
  font-size: 12.5px;
  color: var(--w70);
  cursor: pointer;
  transition: all .15s;
  text-align: center;
}
#tab-desafio .area-mini:hover, #vtab-desafio .area-mini:hover { border-color: var(--w20); color: var(--w90); }
#tab-desafio .area-mini.escolhida, #vtab-desafio .area-mini.escolhida {
  border-color: var(--o);
  background: var(--o-soft);
  color: var(--o);
  font-weight: 700;
}
#tab-desafio .btn-confirmar, #vtab-desafio .btn-confirmar {
  width: 100%;
  margin-top: 18px;
  padding: 14px 24px;
  background: var(--o);
  color: var(--bg);
  border: 0;
  border-radius: var(--rad-s);
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  letter-spacing: 0.3px;
  transition: all .15s;
}
#tab-desafio .btn-confirmar:hover:not(:disabled), #vtab-desafio .btn-confirmar:hover:not(:disabled) { background: #ff8c40; }
#tab-desafio .btn-confirmar:disabled, #vtab-desafio .btn-confirmar:disabled { opacity: 0.4; cursor: not-allowed; }

#tab-desafio .pronto, #vtab-desafio .pronto {
  display: none;
  text-align: center;
  padding: 40px 24px;
  background: linear-gradient(180deg, var(--carvao-2) 0%, var(--carvao) 100%);
  border: 1px solid var(--o-bd);
  border-radius: var(--rad);
  margin-top: 28px;
}
#tab-desafio .pronto.visivel, #vtab-desafio .pronto.visivel { display: block; }
#tab-desafio .pronto-icone, #vtab-desafio .pronto-icone {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 2px solid var(--o);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  color: var(--o);
}
#tab-desafio .pronto-icone svg, #vtab-desafio .pronto-icone svg { width: 28px; height: 28px; }
#tab-desafio .pronto h3, #vtab-desafio .pronto h3 {
  font-size: 22px;
  font-weight: 800;
  margin-bottom: 10px;
}
#tab-desafio .pronto p, #vtab-desafio .pronto p {
  font-size: 15px;
  color: var(--w70);
  line-height: 1.6;
  max-width: 460px;
  margin: 0 auto 8px;
}
#tab-desafio .pronto .countdown, #vtab-desafio .pronto .countdown {
  margin-top: 22px;
  padding: 18px;
  background: rgba(255,117,31,0.06);
  border: 1px solid var(--o-bd);
  border-radius: var(--rad-s);
  font-size: 13px;
  color: var(--w70);
  letter-spacing: 0.3px;
}
#tab-desafio .pronto .countdown b, #vtab-desafio .pronto .countdown b {
  color: var(--o);
  display: block;
  margin-top: 4px;
  font-size: 16px;
}

/* ============================================================
   DIA 2 · WOOP cards · letras · separador · Script do Não
   ============================================================ */
#tab-desafio .woop-card, #vtab-desafio .woop-card {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 20px 20px 18px;
  margin-bottom: 14px;
}
#tab-desafio .woop-card-header, #vtab-desafio .woop-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 6px;
}
#tab-desafio .woop-card-letra, #vtab-desafio .woop-card-letra {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: 800;
  color: var(--o);
  flex-shrink: 0;
}
#tab-desafio .woop-card-titulo, #vtab-desafio .woop-card-titulo {
  font-size: 16px;
  font-weight: 800;
  color: var(--branco);
  letter-spacing: 0.1px;
}
#tab-desafio .woop-card-sub, #vtab-desafio .woop-card-sub {
  font-size: 12.5px;
  color: var(--w55);
  margin-bottom: 12px;
  margin-left: 44px;
  line-height: 1.55;
}
#tab-desafio .woop-card-textarea, #vtab-desafio .woop-card-textarea {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit;
  font-size: 15px;
  color: var(--branco);
  outline: none;
  resize: none;
  min-height: 80px;
  line-height: 1.55;
  transition: border-color .15s, background .15s;
}
#tab-desafio .woop-card-textarea:focus, #vtab-desafio .woop-card-textarea:focus {
  border-color: var(--o);
  background: rgba(255,117,31,0.04);
}
#tab-desafio .woop-card-textarea::placeholder, #vtab-desafio .woop-card-textarea::placeholder { color: var(--w40); }

/* WOOP no exemplo accordion */
#tab-desafio .woop-linha, #vtab-desafio .woop-linha { margin-bottom: 12px; }
#tab-desafio .woop-linha:last-child, #vtab-desafio .woop-linha:last-child { margin-bottom: 0; }
#tab-desafio .woop-letra, #vtab-desafio .woop-letra {
  display: inline-block;
  width: 26px; height: 26px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  color: var(--o);
  font-size: 12px;
  font-weight: 800;
  text-align: center;
  line-height: 24px;
  margin-right: 10px;
  vertical-align: middle;
}
#tab-desafio .woop-titulo, #vtab-desafio .woop-titulo {
  display: inline;
  font-size: 13px;
  font-weight: 700;
  color: var(--w90);
}
#tab-desafio .woop-texto, #vtab-desafio .woop-texto {
  margin-top: 6px;
  margin-left: 36px;
  font-size: 13.5px;
  color: var(--w70);
  line-height: 1.65;
}

/* Script do Não · separador + card distinto */
#tab-desafio .script-separador, #vtab-desafio .script-separador {
  margin: 32px 0 14px;
  display: flex;
  align-items: center;
  gap: 12px;
}
#tab-desafio .script-separador-linha, #vtab-desafio .script-separador-linha {
  flex: 1;
  height: 1px;
  background: var(--w08);
}
#tab-desafio .script-separador-tag, #vtab-desafio .script-separador-tag {
  font-size: 10px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 2px;
  text-transform: uppercase;
}
#tab-desafio .script-card, #vtab-desafio .script-card {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-left: 3px solid var(--o);
  border-radius: var(--rad);
  padding: 20px 20px 18px;
}
#tab-desafio .script-card-tag, #vtab-desafio .script-card-tag {
  display: inline-block;
  font-size: 10px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  margin-bottom: 10px;
  padding: 3px 8px;
  background: var(--o-soft);
  border-radius: 4px;
}
#tab-desafio .script-card-titulo, #vtab-desafio .script-card-titulo {
  font-size: 18px;
  font-weight: 800;
  color: var(--branco);
  margin-bottom: 8px;
  letter-spacing: -0.1px;
}
#tab-desafio .script-card-sub, #vtab-desafio .script-card-sub {
  font-size: 13px;
  color: var(--w70);
  margin-bottom: 14px;
  line-height: 1.6;
}
#tab-desafio .script-card textarea, #vtab-desafio .script-card textarea {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 12px 14px;
  font-family: inherit;
  font-size: 15px;
  color: var(--branco);
  outline: none;
  resize: none;
  min-height: 100px;
  line-height: 1.55;
  transition: border-color .15s, background .15s;
}
#tab-desafio .script-card textarea:focus, #vtab-desafio .script-card textarea:focus {
  border-color: var(--o);
  background: rgba(255,117,31,0.04);
}

/* ============================================================
   DIA 4 · Sprint Guiado · instruções
   ============================================================ */
#tab-desafio .sprint-instr, #vtab-desafio .sprint-instr {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 22px 22px 20px;
  margin-bottom: 24px;
}
#tab-desafio .sprint-instr-tag, #vtab-desafio .sprint-instr-tag {
  font-size: 10px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 2px;
  text-transform: uppercase;
  margin-bottom: 12px;
}
#tab-desafio .sprint-instr h4, #vtab-desafio .sprint-instr h4 {
  font-size: 17px;
  font-weight: 800;
  margin-bottom: 12px;
}
#tab-desafio .sprint-instr ol, #vtab-desafio .sprint-instr ol {
  list-style: none;
  counter-reset: passo;
  padding: 0;
  margin: 0;
}
#tab-desafio .sprint-instr ol li, #vtab-desafio .sprint-instr ol li {
  counter-increment: passo;
  padding: 10px 0 10px 36px;
  position: relative;
  font-size: 14px;
  color: var(--w70);
  line-height: 1.6;
  border-bottom: 1px solid var(--w05);
}
#tab-desafio .sprint-instr ol li:last-child, #vtab-desafio .sprint-instr ol li:last-child { border-bottom: 0; }
#tab-desafio .sprint-instr ol li::before, #vtab-desafio .sprint-instr ol li::before {
  content: counter(passo);
  position: absolute;
  left: 0;
  top: 9px;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 1px solid var(--o-bd);
  color: var(--o);
  font-size: 11px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* ============================================================
   MAPA DOS 5 DIAS · sense of progress no topo do tab
   ============================================================ */
#tab-desafio .des-mapa, #vtab-desafio .des-mapa {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 18px 20px 16px;
  margin-bottom: 24px;
}
#tab-desafio .des-mapa-tag, #vtab-desafio .des-mapa-tag {
  font-size: 10px;
  font-weight: 800;
  color: var(--w55);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  margin-bottom: 14px;
}
#tab-desafio .des-mapa-linha, #vtab-desafio .des-mapa-linha {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  position: relative;
}
#tab-desafio .des-mapa-bg-line, #vtab-desafio .des-mapa-bg-line {
  position: absolute;
  top: 15px;
  left: 30px;
  right: 30px;
  height: 2px;
  background: var(--w08);
  z-index: 0;
}
#tab-desafio .des-mapa-fill-line, #vtab-desafio .des-mapa-fill-line {
  position: absolute;
  top: 15px;
  left: 30px;
  height: 2px;
  background: var(--g);
  z-index: 0;
  width: 0%;
  transition: width .3s ease;
}
#tab-desafio .des-mapa-step, #vtab-desafio .des-mapa-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  flex: 1;
  cursor: pointer;
  user-select: none;
  position: relative;
  z-index: 1;
  transition: transform .15s;
  position: relative;
  z-index: 1;
}
#tab-desafio .des-mapa-dot, #vtab-desafio .des-mapa-dot {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--carvao-3);
  border: 2px solid var(--w20);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
  font-weight: 800;
  color: var(--w55);
  transition: all .25s;
  flex-shrink: 0;
}
#tab-desafio .des-mapa-step.feito .des-mapa-dot, #vtab-desafio .des-mapa-step.feito .des-mapa-dot {
  background: var(--g);
  border-color: var(--g);
  color: var(--branco);
}
#tab-desafio .des-mapa-step.feito .des-mapa-dot::after, #vtab-desafio .des-mapa-step.feito .des-mapa-dot::after {
  content: "✓";
  font-size: 14px;
}
#tab-desafio .des-mapa-step.feito .des-mapa-dot span, #vtab-desafio .des-mapa-step.feito .des-mapa-dot span { display: none; }
#tab-desafio .des-mapa-step.atual .des-mapa-dot, #vtab-desafio .des-mapa-step.atual .des-mapa-dot {
  border-color: var(--o);
  color: var(--o);
  box-shadow: 0 0 0 4px var(--o-soft);
  animation: des-pulse-stepper 2.4s ease-in-out infinite;
}
#tab-desafio .des-mapa-lbl, #vtab-desafio .des-mapa-lbl {
  font-size: 9.5px;
  color: var(--w55);
  letter-spacing: 0.3px;
  text-transform: uppercase;
  font-weight: 700;
  text-align: center;
  line-height: 1.2;
  max-width: 60px;
}
#tab-desafio .des-mapa-step.atual .des-mapa-lbl, #vtab-desafio .des-mapa-step.atual .des-mapa-lbl { color: var(--o); }
#tab-desafio .des-mapa-step.feito .des-mapa-lbl, #vtab-desafio .des-mapa-step.feito .des-mapa-lbl { color: var(--g); }
@media (max-width: 480px) {
  #tab-desafio .des-mapa-lbl, #vtab-desafio .des-mapa-lbl {
    font-size: 8.5px;
    letter-spacing: 0.2px;
    max-width: none; /* deixa o flex distribuir */
  }
}
@media (max-width: 360px) {
  #tab-desafio .des-mapa-lbl, #vtab-desafio .des-mapa-lbl {
    font-size: 8px;
    letter-spacing: 0.1px;
  }
}

/* ============================================================
   TERMÓMETRO · meta-pergunta, deve ser visualmente discreto
   (mais pequeno que um exercício real)
   ============================================================ */
#tab-desafio .termometro, #vtab-desafio .termometro {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 14px 16px;
  margin-top: 18px;
}
#tab-desafio .termometro-titulo, #vtab-desafio .termometro-titulo {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 4px;
  color: var(--w90);
  letter-spacing: 0;
}
#tab-desafio .termometro-sub, #vtab-desafio .termometro-sub {
  font-size: 11.5px;
  color: var(--w55);
  margin-bottom: 12px;
  line-height: 1.5;
}
#tab-desafio .termometro-escala, #vtab-desafio .termometro-escala {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-bottom: 8px;
}
#tab-desafio .termometro-btn, #vtab-desafio .termometro-btn {
  background: var(--carvao-3);
  border: 1.5px solid var(--w08);
  border-radius: 8px;
  padding: 8px 0;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  color: var(--w55);
  cursor: pointer;
  transition: all .15s;
  font-variant-numeric: tabular-nums;
}
#tab-desafio .termometro-btn:hover, #vtab-desafio .termometro-btn:hover {
  border-color: var(--w20);
  color: var(--w90);
}
#tab-desafio .termometro-btn.escolhido, #vtab-desafio .termometro-btn.escolhido {
  background: var(--o-soft);
  border-color: var(--o);
  color: var(--o);
}
/* Mobile · alvos de toque mínimos 48x48 (Apple/Google guideline) */
@media (max-width: 480px) {
  #tab-desafio .termometro-btn, #vtab-desafio .termometro-btn {
    min-height: 48px;
    min-width: 48px;
    font-size: 16px;
    padding: 10px 0;
  }
  #tab-desafio .termometro-escala, #vtab-desafio .termometro-escala {
    gap: 8px;
  }
}
/* Hover/active feedback no mapa step (clicável) */
#tab-desafio .des-mapa-step:hover, #vtab-desafio .des-mapa-step:hover { transform: translateY(-2px); }
#tab-desafio .des-mapa-step:active, #vtab-desafio .des-mapa-step:active { transform: translateY(0); opacity: .8; }
#tab-desafio .des-mapa-step:focus-visible, #vtab-desafio .des-mapa-step:focus-visible {
  outline: 2px solid var(--o);
  outline-offset: 4px;
  border-radius: 8px;
}
#tab-desafio .termometro-labels, #vtab-desafio .termometro-labels {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: var(--w40);
  letter-spacing: 0.2px;
  margin-bottom: 10px;
}
#tab-desafio .termometro-comentario, #vtab-desafio .termometro-comentario {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 10px 12px;
  font-family: inherit;
  font-size: 13px;
  color: var(--branco);
  outline: none;
  resize: none;
  min-height: 44px;
  line-height: 1.5;
  transition: border-color .15s;
}
#tab-desafio .termometro-comentario:focus, #vtab-desafio .termometro-comentario:focus {
  border-color: var(--o);
  background: rgba(255,117,31,0.04);
}

/* ============================================================
   COMPROMISSO · botões reler/submeter · todos os dias
   ============================================================ */
#tab-desafio .compromisso, #vtab-desafio .compromisso {
  margin-top: 36px;
  padding-top: 28px;
  border-top: 1px solid var(--w08);
  text-align: center;
}
#tab-desafio .compromisso-aviso, #vtab-desafio .compromisso-aviso {
  font-size: 13px;
  color: var(--w55);
  line-height: 1.6;
  margin-bottom: 18px;
}
#tab-desafio .compromisso-aviso b, #vtab-desafio .compromisso-aviso b { color: var(--w90); }
#tab-desafio .des-btn, #vtab-desafio .des-btn {
  display: inline-block;
  width: 100%;
  max-width: 380px;
  padding: 16px 28px;
  border: 0;
  border-radius: var(--rad-s);
  font-family: inherit;
  font-size: 15px;
  font-weight: 800;
  letter-spacing: 0.3px;
  cursor: pointer;
  transition: all .15s;
  text-align: center;
}
#tab-desafio .des-btn-secondary, #vtab-desafio .des-btn-secondary {
  background: transparent;
  border: 1.5px solid var(--w20);
  color: var(--w90);
  margin-bottom: 10px;
}
#tab-desafio .des-btn-secondary:hover, #vtab-desafio .des-btn-secondary:hover { border-color: var(--o); color: var(--o); }
#tab-desafio .des-btn-primary, #vtab-desafio .des-btn-primary {
  background: var(--o);
  color: var(--bg);
}
#tab-desafio .des-btn-primary:hover:not(:disabled), #vtab-desafio .des-btn-primary:hover:not(:disabled) {
  background: #ff8c40;
  transform: translateY(-1px);
}
#tab-desafio .des-btn-primary:disabled, #vtab-desafio .des-btn-primary:disabled { opacity: 0.4; cursor: not-allowed; }

/* ============================================================
   ESTADO PÓS-SUBMIT · "fechado" · todos os dias
   ============================================================ */
#tab-desafio .fechado, #vtab-desafio .fechado {
  display: none;
  text-align: center;
  padding: 48px 24px;
  background: linear-gradient(180deg, var(--carvao-2) 0%, var(--carvao) 100%);
  border: 1px solid var(--o-bd);
  border-radius: var(--rad);
  margin-top: 28px;
}
/* Modo compacto · UX padrão para dias 0-4 fechados (1 linha + chevron) */
#tab-desafio .fechado.visivel, #vtab-desafio .fechado.visivel {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  margin: 8px 0;
  text-align: left;
  cursor: pointer;
  background: var(--carvao);
  transition: background .15s, border-color .15s;
}
#tab-desafio .fechado.visivel:hover, #vtab-desafio .fechado.visivel:hover {
  background: var(--carvao-2);
  border-color: var(--o);
}
#tab-desafio .fechado.visivel:not(.expandido) .fechado-icone,
#vtab-desafio .fechado.visivel:not(.expandido) .fechado-icone {
  width: 28px; height: 28px; margin: 0; flex-shrink: 0;
}
#tab-desafio .fechado.visivel:not(.expandido) .fechado-icone svg,
#vtab-desafio .fechado.visivel:not(.expandido) .fechado-icone svg { width: 14px; height: 14px; }
#tab-desafio .fechado.visivel:not(.expandido) h3,
#vtab-desafio .fechado.visivel:not(.expandido) h3 {
  font-size: 14px; font-weight: 700; margin: 0; flex: 1; text-align: left;
}
#tab-desafio .fechado.visivel:not(.expandido) p,
#tab-desafio .fechado.visivel:not(.expandido) .amanha,
#tab-desafio .fechado.visivel:not(.expandido) .hoje-zoom,
#tab-desafio .fechado.visivel:not(.expandido) .bloco-acao,
#tab-desafio .fechado.visivel:not(.expandido) .bloco-bonus,
#tab-desafio .fechado.visivel:not(.expandido) .countdown,
#vtab-desafio .fechado.visivel:not(.expandido) p,
#vtab-desafio .fechado.visivel:not(.expandido) .amanha,
#vtab-desafio .fechado.visivel:not(.expandido) .hoje-zoom,
#vtab-desafio .fechado.visivel:not(.expandido) .bloco-acao,
#vtab-desafio .fechado.visivel:not(.expandido) .bloco-bonus,
#vtab-desafio .fechado.visivel:not(.expandido) .countdown { display: none; }
#tab-desafio .fechado.visivel:not(.expandido)::after,
#vtab-desafio .fechado.visivel:not(.expandido)::after {
  content: "›"; color: var(--w55); font-size: 22px; line-height: 1; margin-left: auto; font-weight: 300;
}

/* Modo expandido · usado para Dia 5 sempre, Dias 0-4 ao acabar de fechar ou ao clicar */
#tab-desafio .fechado.visivel.expandido, #vtab-desafio .fechado.visivel.expandido {
  display: block;
  text-align: center;
  padding: 48px 24px;
  cursor: default;
  background: linear-gradient(180deg, var(--carvao-2) 0%, var(--carvao) 100%);
}
#tab-desafio .fechado.visivel.expandido::after,
#vtab-desafio .fechado.visivel.expandido::after { content: none; }
#tab-desafio .fechado-icone, #vtab-desafio .fechado-icone {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--o-soft);
  border: 2px solid var(--o);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 18px;
  color: var(--o);
}
#tab-desafio .fechado-icone svg, #vtab-desafio .fechado-icone svg { width: 28px; height: 28px; }
#tab-desafio .fechado h3, #vtab-desafio .fechado h3 {
  font-size: 22px;
  font-weight: 800;
  margin-bottom: 10px;
}
#tab-desafio .fechado p, #vtab-desafio .fechado p {
  font-size: 15px;
  color: var(--w70);
  line-height: 1.6;
  max-width: 460px;
  margin: 0 auto 8px;
}
#tab-desafio .fechado .amanha, #vtab-desafio .fechado .amanha {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--w08);
  font-size: 13px;
  color: var(--w55);
  letter-spacing: 1px;
  text-transform: uppercase;
  font-weight: 700;
}
#tab-desafio .fechado .amanha b, #vtab-desafio .fechado .amanha b {
  color: var(--o);
  display: block;
  margin-top: 6px;
  font-size: 16px;
  text-transform: none;
  letter-spacing: 0;
}
#tab-desafio .fechado .hoje-zoom, #vtab-desafio .fechado .hoje-zoom {
  margin-top: 22px;
  padding: 18px 20px;
  background: rgba(255,117,31,0.08);
  border: 1px solid var(--o-bd);
  border-radius: var(--rad-s);
  font-size: 13px;
  color: var(--w70);
  line-height: 1.55;
  max-width: 460px;
  margin-left: auto;
  margin-right: auto;
}
#tab-desafio .fechado .hoje-zoom b, #vtab-desafio .fechado .hoje-zoom b {
  color: var(--o);
  display: block;
  margin-bottom: 4px;
  font-size: 15px;
  letter-spacing: 0.3px;
}

/* ============================================================
   DIA 5 · cards de revisão (5) · placard contínuo · accionável recorrente
   ============================================================ */
#tab-desafio .bloco-acao, #vtab-desafio .bloco-acao {
  margin-top: 22px;
  padding: 22px;
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  text-align: left;
  max-width: 100%;
}
#tab-desafio .bloco-acao-tag, #vtab-desafio .bloco-acao-tag {
  font-size: 10px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
#tab-desafio .bloco-acao-titulo, #vtab-desafio .bloco-acao-titulo {
  font-size: 17px;
  font-weight: 800;
  color: var(--branco);
  margin-bottom: 6px;
}
#tab-desafio .bloco-acao-sub, #vtab-desafio .bloco-acao-sub {
  font-size: 13.5px;
  color: var(--w70);
  line-height: 1.6;
  margin-bottom: 18px;
}
#tab-desafio .bloco-acao-btn, #vtab-desafio .bloco-acao-btn {
  display: inline-block;
  background: var(--o);
  color: #0a0a0a;
  border: 0;
  border-radius: 8px;
  padding: 10px 18px;
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  transition: background .15s;
}
#tab-desafio .bloco-acao-btn:hover, #vtab-desafio .bloco-acao-btn:hover { background: #ff8c40; }

/* MODO LEITURA · resumo do que foi definido (bónus + recorrente) */
#tab-desafio .bonus-resumo-leitura, #vtab-desafio .bonus-resumo-leitura,
#tab-desafio .rec-resumo-leitura, #vtab-desafio .rec-resumo-leitura {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.06);
  border-radius: 10px;
  padding: 14px 16px;
  margin: 12px 0 14px;
}
#tab-desafio .bonus-resumo-linha, #vtab-desafio .bonus-resumo-linha {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.04);
  font-size: 13px;
}
#tab-desafio .bonus-resumo-linha:last-of-type, #vtab-desafio .bonus-resumo-linha:last-of-type { border-bottom: 0; }
#tab-desafio .bonus-resumo-lbl, #vtab-desafio .bonus-resumo-lbl {
  color: rgba(255,255,255,0.55);
  font-size: 11.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.4px;
  flex-shrink: 0;
}
#tab-desafio .bonus-resumo-val, #vtab-desafio .bonus-resumo-val {
  color: rgba(255,255,255,0.95);
  font-weight: 600;
  text-align: right;
  word-break: break-word;
}
#tab-desafio .rec-leitura-status, #vtab-desafio .rec-leitura-status {
  margin-top: 10px;
  padding: 8px 12px;
  background: rgba(102,187,106,0.12);
  border: 1px solid rgba(102,187,106,0.4);
  border-radius: 8px;
  color: #66bb6a;
  font-size: 12.5px;
  font-weight: 700;
  text-align: center;
}
#tab-desafio .btn-link-edit, #vtab-desafio .btn-link-edit {
  display: block;
  width: 100%;
  margin-top: 12px;
  background: none;
  border: 0;
  color: var(--o);
  font-family: 'Poppins', sans-serif;
  font-size: 12.5px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
  padding: 6px;
  letter-spacing: 0.2px;
}
#tab-desafio .btn-link-edit:hover, #vtab-desafio .btn-link-edit:hover { color: #ff8c40; }
#tab-desafio .bonus-form-guardar-btn, #vtab-desafio .bonus-form-guardar-btn {
  width: 100%;
  background: var(--o);
  color: #0a0a0a;
  border: 0;
  border-radius: 8px;
  padding: 12px;
  font-family: 'Poppins', sans-serif;
  font-size: 13px;
  font-weight: 800;
  cursor: pointer;
  margin-top: 8px;
  transition: background .15s;
}
#tab-desafio .bonus-form-guardar-btn:hover, #vtab-desafio .bonus-form-guardar-btn:hover { background: #ff8c40; }
#tab-desafio .campo-grupo, #vtab-desafio .campo-grupo { margin-bottom: 14px; }
#tab-desafio .campo-grupo label.lbl, #vtab-desafio .campo-grupo label.lbl {
  display: block;
  font-size: 11px;
  color: var(--w55);
  font-weight: 700;
  letter-spacing: 0.3px;
  margin-bottom: 6px;
  text-transform: uppercase;
}
#tab-desafio .campo-grupo input, #vtab-desafio .campo-grupo input,
#tab-desafio .campo-grupo select, #vtab-desafio .campo-grupo select {
  width: 100%;
  background: var(--carvao-3);
  border: 1px solid var(--w08);
  border-radius: var(--rad-s);
  padding: 10px 12px;
  font-family: inherit;
  font-size: 14px;
  color: var(--branco);
  outline: none;
  transition: border-color .15s;
  color-scheme: dark;
}
#tab-desafio .campo-grupo input:focus, #vtab-desafio .campo-grupo input:focus,
#tab-desafio .campo-grupo select:focus, #vtab-desafio .campo-grupo select:focus { border-color: var(--o); }
#tab-desafio .campo-grupo-row, #vtab-desafio .campo-grupo-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 480px) {
  #tab-desafio .campo-grupo-row, #vtab-desafio .campo-grupo-row { grid-template-columns: 1fr; }
}

/* Chips dos dias da semana · Dia 5 recorrente */
#tab-desafio .dias-chips, #vtab-desafio .dias-chips {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
}
#tab-desafio .chip, #vtab-desafio .chip {
  width: 100%;
  aspect-ratio: 1;
  max-height: 44px;
  border-radius: 50%;
  border: 1.5px solid var(--w20);
  background: var(--carvao-3);
  color: var(--w70);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: all .15s;
  display: flex;
  align-items: center;
  justify-content: center;
}
#tab-desafio .chip:hover, #vtab-desafio .chip:hover { border-color: var(--o); color: var(--o); }
#tab-desafio .chip.selecionado, #vtab-desafio .chip.selecionado {
  background: var(--o-soft);
  border-color: var(--o);
  color: var(--o);
}
#tab-desafio .cal-summary-rec, #vtab-desafio .cal-summary-rec {
  font-size: 13px;
  color: var(--w90);
  margin-bottom: 12px;
  padding: 10px 12px;
  background: rgba(255,117,31,0.04);
  border-left: 3px solid var(--o);
  border-radius: 4px;
  line-height: 1.55;
  text-align: left;
}
#tab-desafio .cal-summary-rec b, #vtab-desafio .cal-summary-rec b { color: var(--o); }
#tab-desafio .cal-summary-rec .vazio, #vtab-desafio .cal-summary-rec .vazio { color: var(--w55); font-style: italic; }
#tab-desafio .cal-buttons-rec, #vtab-desafio .cal-buttons-rec {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 4px;
}
@media (max-width: 480px) {
  #tab-desafio .cal-buttons-rec, #vtab-desafio .cal-buttons-rec { grid-template-columns: 1fr; }
}
#tab-desafio .cal-btn-rec, #vtab-desafio .cal-btn-rec {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px;
  border: 1.5px solid var(--w20);
  border-radius: var(--rad-s);
  background: var(--carvao-3);
  color: var(--branco);
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
}
#tab-desafio .cal-btn-rec:hover:not(:disabled), #vtab-desafio .cal-btn-rec:hover:not(:disabled) {
  border-color: var(--o);
  color: var(--o);
}
#tab-desafio .cal-btn-rec:disabled, #vtab-desafio .cal-btn-rec:disabled { opacity: 0.4; cursor: not-allowed; }
#tab-desafio .cal-btn-rec svg, #vtab-desafio .cal-btn-rec svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Bónus · Placard contínuo (Dia 5) */
#tab-desafio .bloco-bonus, #vtab-desafio .bloco-bonus {
  margin-top: 14px;
  padding: 22px;
  background: linear-gradient(180deg, rgba(255,117,31,0.06) 0%, var(--carvao) 100%);
  border: 1px solid var(--o-bd);
  border-radius: var(--rad);
  text-align: left;
}
#tab-desafio .placard-semana, #vtab-desafio .placard-semana { margin-top: 14px; }
#tab-desafio .placard-semana-tag, #vtab-desafio .placard-semana-tag {
  font-size: 11px;
  color: var(--w55);
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
#tab-desafio .placard-dias, #vtab-desafio .placard-dias {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-bottom: 14px;
}
#tab-desafio .placard-dia, #vtab-desafio .placard-dia {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
#tab-desafio .placard-dia-label, #vtab-desafio .placard-dia-label {
  font-size: 10px;
  color: var(--w55);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 700;
}
#tab-desafio .placard-dia-label.hoje, #vtab-desafio .placard-dia-label.hoje { color: var(--o); }
#tab-desafio .dia-dot-bonus, #vtab-desafio .dia-dot-bonus {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--w20);
  background: var(--carvao-3);
  cursor: pointer;
  transition: all .15s;
  position: relative;
  padding: 0;
  font-family: inherit;
  margin: 0 auto;
}
#tab-desafio .dia-dot-bonus:hover:not(:disabled), #vtab-desafio .dia-dot-bonus:hover:not(:disabled) { border-color: var(--o); }
#tab-desafio .dia-dot-bonus.feito, #vtab-desafio .dia-dot-bonus.feito {
  background: var(--o);
  border-color: var(--o);
}
#tab-desafio .dia-dot-bonus.feito::after, #vtab-desafio .dia-dot-bonus.feito::after {
  content: "✓";
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  color: var(--bg);
  font-size: 14px;
  font-weight: 900;
}
#tab-desafio .dia-dot-bonus.hoje:not(.feito), #vtab-desafio .dia-dot-bonus.hoje:not(.feito) {
  border-color: var(--o);
  box-shadow: 0 0 0 3px var(--o-soft);
}
#tab-desafio .placard-streak, #vtab-desafio .placard-streak {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding-top: 14px;
  border-top: 1px solid var(--w08);
}
#tab-desafio .placard-streak-num, #vtab-desafio .placard-streak-num {
  font-size: 28px;
  font-weight: 800;
  color: var(--o);
  font-variant-numeric: tabular-nums;
}
#tab-desafio .placard-streak-label, #vtab-desafio .placard-streak-label {
  font-size: 13px;
  color: var(--w70);
}

/* ============================================================
   RODAPÉ · zoom + WhatsApp · todos os dias
   ============================================================ */
#tab-desafio .rodape-info, #vtab-desafio .rodape-info {
  margin-top: 56px;
  padding-top: 32px;
  border-top: 1px solid var(--w08);
  display: grid;
  gap: 14px;
}
#tab-desafio .info-card, #vtab-desafio .info-card {
  background: var(--carvao);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 18px 20px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
#tab-desafio .info-card.destaque, #vtab-desafio .info-card.destaque {
  background: linear-gradient(180deg, rgba(255,117,31,0.08) 0%, var(--carvao) 100%);
  border-color: var(--o-bd);
}
#tab-desafio .info-card svg, #vtab-desafio .info-card svg {
  flex-shrink: 0;
  margin-top: 2px;
  color: var(--o);
  width: 22px; height: 22px;
}
#tab-desafio .info-card-corpo, #vtab-desafio .info-card-corpo {
  font-size: 13px;
  color: var(--w70);
  line-height: 1.6;
}
#tab-desafio .info-card-corpo b, #vtab-desafio .info-card-corpo b {
  color: var(--branco);
  display: block;
  font-size: 14px;
  margin-bottom: 4px;
}
#tab-desafio .info-card.destaque .info-card-corpo b, #vtab-desafio .info-card.destaque .info-card-corpo b { color: var(--o); }
#tab-desafio .info-card-corpo a, #vtab-desafio .info-card-corpo a {
  color: var(--o);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

/* ============================================================
   HOMEPAGE · Foco da Semana + Placard contínuo (Dia 5 mode)
   IMPORTANTE: estes elementos vivem na homepage (#tab-inicio
   ou #vtab-inicio), NÃO dentro do tab-desafio.
   ============================================================ */
#tab-inicio .foco-card, #vtab-inicio .foco-card {
  background: linear-gradient(180deg, rgba(255,117,31,0.08) 0%, var(--s1) 70%);
  border: 1px solid var(--o25);
  border-radius: var(--rad);
  padding: 22px;
  margin-bottom: 14px;
  position: relative;
  overflow: hidden;
}
#tab-inicio .foco-card::before, #vtab-inicio .foco-card::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 4px; height: 100%;
  background: var(--o);
}
#tab-inicio .foco-tag, #vtab-inicio .foco-tag {
  font-size: 10px;
  font-weight: 800;
  color: var(--o);
  letter-spacing: 1.8px;
  text-transform: uppercase;
  margin-bottom: 10px;
}
#tab-inicio .foco-titulo, #vtab-inicio .foco-titulo {
  font-size: 22px;
  font-weight: 800;
  color: var(--w100);
  line-height: 1.25;
  margin-bottom: 14px;
  letter-spacing: -0.2px;
}
#tab-inicio .foco-meta, #vtab-inicio .foco-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 12.5px;
  color: var(--w70);
  margin-bottom: 16px;
  align-items: center;
}
#tab-inicio .foco-meta-item, #vtab-inicio .foco-meta-item { display: flex; align-items: center; gap: 6px; }
#tab-inicio .foco-meta-item svg, #vtab-inicio .foco-meta-item svg { width: 14px; height: 14px; color: var(--o); flex-shrink: 0; }
#tab-inicio .foco-meta-item b, #vtab-inicio .foco-meta-item b { color: var(--w100); font-weight: 700; }
#tab-inicio .foco-meta-sabotador, #vtab-inicio .foco-meta-sabotador {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  background: var(--o10);
  border: 1px solid var(--o25);
  border-radius: 50px;
  font-size: 11px;
  font-weight: 700;
  color: var(--o);
}
#tab-inicio .foco-progresso, #vtab-inicio .foco-progresso {
  display: flex;
  gap: 6px;
  margin-bottom: 18px;
}
#tab-inicio .foco-dot, #vtab-inicio .foco-dot {
  width: 22px; height: 22px;
  border-radius: 50%;
  background: var(--w08);
  border: 1.5px solid var(--w20);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  color: var(--w45);
  position: relative;
}
#tab-inicio .foco-dot.feito, #vtab-inicio .foco-dot.feito {
  background: var(--o10);
  border-color: var(--o);
  color: var(--o);
}
#tab-inicio .foco-dot.feito::after, #vtab-inicio .foco-dot.feito::after { content: "✓"; position: absolute; font-size: 13px; font-weight: 900; }
#tab-inicio .foco-dot.feito span, #vtab-inicio .foco-dot.feito span { display: none; }
#tab-inicio .foco-dot.atual, #vtab-inicio .foco-dot.atual {
  border-color: var(--o);
  color: var(--o);
  box-shadow: 0 0 0 3px var(--o10);
}
#tab-inicio .foco-cta, #vtab-inicio .foco-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  background: var(--o);
  color: var(--bg);
  border: 0;
  border-radius: var(--rads);
  font-family: inherit;
  font-size: 14px;
  font-weight: 800;
  cursor: pointer;
  text-decoration: none;
  transition: all .15s;
  width: 100%;
}
#tab-inicio .foco-cta:hover, #vtab-inicio .foco-cta:hover { background: #ff8c40; transform: translateY(-1px); }
#tab-inicio .foco-cta svg, #vtab-inicio .foco-cta svg { width: 16px; height: 16px; flex-shrink: 0; }

/* Placard da Disciplina · widget homepage · 2 versões condicionais */
#tab-inicio .placard-wrap, #vtab-inicio .placard-wrap { margin-bottom: 14px; }
#tab-inicio .placard-wrap-header, #vtab-inicio .placard-wrap-header {
  font-size: 13px;
  font-weight: 800;
  color: var(--w70);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
}
#tab-inicio .placard-wrap-header::before, #vtab-inicio .placard-wrap-header::before {
  content: "";
  width: 12px; height: 12px;
  background: var(--o);
  border-radius: 2px;
  flex-shrink: 0;
}
#tab-inicio .placard-card, #vtab-inicio .placard-card {
  background: var(--s1);
  border: 1px solid var(--w08);
  border-radius: var(--rad);
  padding: 20px 20px 18px;
  position: relative;
}
#tab-inicio .placard-card.is-novo, #vtab-inicio .placard-card.is-novo {
  border-color: var(--o25);
  background: linear-gradient(180deg, rgba(255,117,31,0.05) 0%, var(--s1) 70%);
}
#tab-inicio .placard-tag, #vtab-inicio .placard-tag {
  font-size: 10px;
  font-weight: 700;
  color: var(--w55);
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-bottom: 8px;
}
#tab-inicio .placard-titulo, #vtab-inicio .placard-titulo {
  font-size: 16px;
  font-weight: 800;
  color: var(--w100);
  margin-bottom: 6px;
}
#tab-inicio .placard-tarefa, #vtab-inicio .placard-tarefa {
  font-size: 13px;
  color: var(--w70);
  line-height: 1.5;
  margin-bottom: 16px;
  font-style: italic;
}
#tab-inicio .dias-desafio, #vtab-inicio .dias-desafio {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 6px;
  margin-bottom: 14px;
}
#tab-inicio .dia-desafio, #vtab-inicio .dia-desafio {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}
#tab-inicio .dia-desafio-lbl, #vtab-inicio .dia-desafio-lbl {
  font-size: 10px;
  color: var(--w55);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  font-weight: 700;
}
#tab-inicio .dia-desafio-lbl.hoje, #vtab-inicio .dia-desafio-lbl.hoje { color: var(--o); }
#tab-inicio .dia-desafio-dot, #vtab-inicio .dia-desafio-dot {
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--w20);
  background: var(--s2);
  margin: 0 auto;
  position: relative;
  transition: all .2s;
}
#tab-inicio .dia-desafio-dot.feito, #vtab-inicio .dia-desafio-dot.feito {
  background: var(--o);
  border-color: var(--o);
}
#tab-inicio .dia-desafio-dot.feito::after, #vtab-inicio .dia-desafio-dot.feito::after {
  content: "✓";
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  color: var(--bg);
  font-size: 14px;
  font-weight: 900;
}
#tab-inicio .dia-desafio-dot.atual, #vtab-inicio .dia-desafio-dot.atual {
  border-color: var(--o);
  box-shadow: 0 0 0 3px var(--o10);
  animation: des-pulse-dot 2.5s ease-in-out infinite;
}
@keyframes des-pulse-dot {
  0%, 100% { box-shadow: 0 0 0 3px var(--o10); }
  50% { box-shadow: 0 0 0 6px rgba(255,117,31,0.06); }
}
#tab-inicio .dias-mini, #vtab-inicio .dias-mini {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 6px;
  margin-bottom: 14px;
}
#tab-inicio .dia-mini, #vtab-inicio .dia-mini {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}
#tab-inicio .dia-mini-lbl, #vtab-inicio .dia-mini-lbl {
  font-size: 10px;
  color: var(--w55);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  font-weight: 700;
}
#tab-inicio .dia-mini-lbl.hoje, #vtab-inicio .dia-mini-lbl.hoje { color: var(--o); }
#tab-inicio .dia-mini-dot, #vtab-inicio .dia-mini-dot {
  width: 32px; height: 32px;
  border-radius: 50%;
  border: 1.5px solid var(--w20);
  background: var(--s2);
  cursor: pointer;
  transition: all .15s;
  position: relative;
  padding: 0;
  font-family: inherit;
  margin: 0 auto;
}
#tab-inicio .dia-mini-dot:hover:not(:disabled), #vtab-inicio .dia-mini-dot:hover:not(:disabled) { border-color: var(--o); }
#tab-inicio .dia-mini-dot.feito, #vtab-inicio .dia-mini-dot.feito {
  background: var(--o);
  border-color: var(--o);
}
#tab-inicio .dia-mini-dot.feito::after, #vtab-inicio .dia-mini-dot.feito::after {
  content: "✓";
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  color: var(--bg);
  font-size: 14px;
  font-weight: 900;
}
#tab-inicio .dia-mini-dot.hoje:not(.feito), #vtab-inicio .dia-mini-dot.hoje:not(.feito) {
  border-color: var(--o);
  box-shadow: 0 0 0 3px var(--o10);
}
#tab-inicio .streak-mini, #vtab-inicio .streak-mini {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding-top: 12px;
  border-top: 1px solid var(--w08);
}
#tab-inicio .streak-mini-num, #vtab-inicio .streak-mini-num {
  font-size: 22px;
  font-weight: 800;
  color: var(--o);
  font-variant-numeric: tabular-nums;
}
#tab-inicio .streak-mini-lbl, #vtab-inicio .streak-mini-lbl {
  font-size: 12px;
  color: var(--w70);
}

/* Foco visível para acessibilidade dentro dos containers */
#tab-desafio :focus-visible, #vtab-desafio :focus-visible,
#tab-inicio .foco-card :focus-visible, #vtab-inicio .foco-card :focus-visible,
#tab-inicio .placard-wrap :focus-visible, #vtab-inicio .placard-wrap :focus-visible {
  outline: 2px solid var(--o);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Glossário discreto em baixo do mapa · explica siglas (WOOP) */
#tab-desafio .des-mapa-glossario, #vtab-desafio .des-mapa-glossario {
  margin: 14px 0 0;
  padding-top: 12px;
  border-top: 1px solid var(--w08);
  font-size: 11px;
  color: var(--w55);
  line-height: 1.5;
}
#tab-desafio .des-mapa-glossario b, #vtab-desafio .des-mapa-glossario b {
  color: var(--w70);
  font-weight: 700;
}

/* ============================================================
   DIA SECÇÃO · separador entre blocos numerados dentro de um dia
   Quebra o wall of forms · da observação à decisão
   ============================================================ */
#tab-desafio .dia-secao, #vtab-desafio .dia-secao {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid var(--w08);
}
#tab-desafio .dia-secao-num, #vtab-desafio .dia-secao-num {
  flex-shrink: 0;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--o);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 14px;
}
#tab-desafio .dia-secao-corpo, #vtab-desafio .dia-secao-corpo {
  flex: 1;
  min-width: 0;
}
#tab-desafio .dia-secao-titulo, #vtab-desafio .dia-secao-titulo {
  font-size: 18px;
  font-weight: 700;
  color: var(--w100);
  margin: 0 0 2px;
  line-height: 1.3;
}
#tab-desafio .dia-secao-sub, #vtab-desafio .dia-secao-sub {
  font-size: 13px;
  color: var(--w55);
  margin: 0;
  line-height: 1.45;
}

/* ============================================================
   DIA BLOQUEADO · placeholders para Dias 2-5 antes de abrir
   Mostra estrutura inteira do desafio · evita "isto é tudo?"
   ============================================================ */
#tab-desafio .dia-bloqueado, #vtab-desafio .dia-bloqueado {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  margin-top: 10px;
  background: transparent;
  border: 1px dashed var(--w08);
  border-radius: var(--rad-s);
  opacity: 0.55;
  transition: opacity .2s, border-color .2s;
}
#tab-desafio .dia-bloqueado:hover, #vtab-desafio .dia-bloqueado:hover { opacity: 0.75; }
#tab-desafio .dia-bloqueado.disponivel, #vtab-desafio .dia-bloqueado.disponivel {
  opacity: 1;
  border-style: solid;
  border-color: var(--o25);
  background: var(--o05);
}
#tab-desafio .dia-bloqueado-icone, #vtab-desafio .dia-bloqueado-icone {
  flex-shrink: 0;
  width: 32px; height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--w45);
}
#tab-desafio .dia-bloqueado-icone svg, #vtab-desafio .dia-bloqueado-icone svg {
  width: 18px; height: 18px;
}
#tab-desafio .dia-bloqueado.disponivel .dia-bloqueado-icone, #vtab-desafio .dia-bloqueado.disponivel .dia-bloqueado-icone {
  color: var(--o);
}
#tab-desafio .dia-bloqueado-corpo, #vtab-desafio .dia-bloqueado-corpo {
  flex: 1;
  min-width: 0;
}
#tab-desafio .dia-bloqueado-eyebrow, #vtab-desafio .dia-bloqueado-eyebrow {
  font-size: 11px;
  font-weight: 700;
  color: var(--w55);
  letter-spacing: 1.4px;
  text-transform: uppercase;
  margin: 0 0 2px;
}
#tab-desafio .dia-bloqueado-titulo, #vtab-desafio .dia-bloqueado-titulo {
  font-size: 14px;
  font-weight: 600;
  color: var(--w70);
  margin: 0;
  line-height: 1.35;
}
#tab-desafio .dia-bloqueado.disponivel .dia-bloqueado-titulo, #vtab-desafio .dia-bloqueado.disponivel .dia-bloqueado-titulo {
  color: var(--w100);
}
#tab-desafio .dia-bloqueado-status, #vtab-desafio .dia-bloqueado-status {
  flex-shrink: 0;
  font-size: 11px;
  font-weight: 600;
  color: var(--w45);
  margin: 0;
}
#tab-desafio .dia-bloqueado.disponivel .dia-bloqueado-status, #vtab-desafio .dia-bloqueado.disponivel .dia-bloqueado-status {
  color: var(--o);
}
@media (max-width: 480px) {
  #tab-desafio .dia-bloqueado, #vtab-desafio .dia-bloqueado {
    gap: 10px;
    padding: 12px 14px;
  }
  #tab-desafio .dia-bloqueado-titulo, #vtab-desafio .dia-bloqueado-titulo { font-size: 13px; }
}

/* Reduce motion · respeitar preferência do utilizador */
@media (prefers-reduced-motion: reduce) {
  #tab-desafio *, #vtab-desafio *,
  #tab-inicio .foco-card *, #vtab-inicio .foco-card *,
  #tab-inicio .placard-wrap *, #vtab-inicio .placard-wrap * {
    transition: none !important;
    animation: none !important;
  }
}

/* ============================================================
   BOTTOM NAVIGATION BAR · só visível em mobile <768px
   Padrão Instagram/WhatsApp · 5 slots + sheet "Mais"
   Top nav `.nr` mantém-se intacta (esconde-se em mobile via CSS)
   ============================================================ */
.bnav {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 100;
  background: #0a0a0a;
  border-top: 1px solid var(--w08, rgba(255,255,255,0.08));
  display: none;
  align-items: stretch;
  height: 64px;
  padding-bottom: env(safe-area-inset-bottom, 0);
  box-shadow: 0 -4px 16px rgba(0,0,0,0.4);
}
.bnav-item {
  flex: 1;
  background: none;
  border: 0;
  padding: 8px 4px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  font-family: 'Poppins', sans-serif;
  color: rgba(255,255,255,0.55);
  cursor: pointer;
  transition: color .15s, transform .15s;
  min-width: 0;
  -webkit-tap-highlight-color: transparent;
}
.bnav-item svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.bnav-item span {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.bnav-item.on {
  color: #ff751f;
}
.bnav-item.on svg {
  stroke-width: 2.4;
}
.bnav-item:active {
  transform: scale(0.95);
}

/* Mobile · activa bottom nav, esconde top nav */
@media (max-width: 767px) {
  .bnav { display: flex; }
  .nr { display: none !important; }
  body { padding-bottom: 80px !important; }
}

/* Sheet "Mais" · overlay + sheet de baixo */
.bnav-sheet-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.65);
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s ease;
  z-index: 99;
}
.bnav-sheet-overlay.aberto {
  opacity: 1;
  pointer-events: auto;
}
.bnav-sheet {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: #0d0d0d;
  border-top: 1px solid rgba(255,255,255,0.08);
  border-radius: 16px 16px 0 0;
  padding: 10px 16px 24px;
  padding-bottom: calc(24px + env(safe-area-inset-bottom, 0));
  transform: translateY(100%);
  transition: transform .25s ease;
  z-index: 101;
  max-height: 75vh;
  overflow-y: auto;
  display: none;
}
.bnav-sheet.aberto {
  transform: translateY(0);
}
@media (max-width: 767px) {
  .bnav-sheet { display: block; }
}
.bnav-sheet-grip {
  display: block;
  width: 40px; height: 4px;
  background: rgba(255,255,255,0.2);
  border-radius: 2px;
  margin: 0 auto 14px;
}
.bnav-sheet-header {
  position: relative;
  margin-bottom: 16px;
}
.bnav-sheet-header h3 {
  font-size: 16px;
  font-weight: 700;
  margin: 0;
  text-align: center;
  color: rgba(255,255,255,0.95);
}
.bnav-sheet-close {
  position: absolute;
  top: -6px; right: -4px;
  background: none;
  border: 0;
  color: rgba(255,255,255,0.55);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  padding: 4px 10px;
  -webkit-tap-highlight-color: transparent;
}
.bnav-sheet-list {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.bnav-sheet-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 14px;
  border: 0;
  border-radius: 10px;
  background: rgba(255,255,255,0.04);
  color: rgba(255,255,255,0.9);
  font-family: 'Poppins', sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: background .15s;
  -webkit-tap-highlight-color: transparent;
  width: 100%;
}
.bnav-sheet-item:active {
  background: rgba(255,255,255,0.08);
}
.bnav-sheet-item svg {
  width: 20px;
  height: 20px;
  color: #ff751f;
  flex-shrink: 0;
}
.bnav-sheet-item.com-badge {
  position: relative;
}
.bnav-sheet-item .badge-dot {
  margin-left: auto;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #ff751f;
}
