/* LAB DE FLUÊNCIA — estilos só do LAB. NÃO É PRODUTO.
   O BASELINE usa vendor/styles.css (cópia de app/styles.css) sem nenhuma sobreposição de grade.
   As regras de grade abaixo valem SÓ em body.lab-modo-refino. */

.lab-desligado { font: 600 18px/1.4 'Nunito', sans-serif; color: #5B6E5E; text-align: center; padding: 48px 16px; }
body.lab-ligado .lab-desligado { display: none; }
[hidden] { display: none !important; }

/* Barra do laboratório (fica fora do .fl-wrap da produção) */
/* NÃO é sticky de propósito: o cronômetro da produção gruda no topo ao rolar (styles.css), e a barra do LAB não pode cobri-lo. */
/* Barra (doc 49): mesmo estilo da página inicial (creme + logo), "← Início" em destaque. Vale em todos os modos;
   no BASELINE só a barra muda: a tela da avaliação (#fl-stage, cópia da produção) segue igual. */
.lab-barra { background: #FEFBF6; color: #3A2418; border-bottom: 2px solid #EFE3CF; font: 700 13px/1.35 'Nunito', sans-serif; padding: 8px 14px; display: flex; flex-direction: column; gap: 8px; text-transform: none; }
.lab-barra-linha1 { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.lab-barra-linha2 { display: flex; align-items: center; gap: 8px 12px; flex-wrap: wrap; }
.lab-voltar { font: 800 15px/1 'Nunito', sans-serif; color: #fff; background: var(--forest); border-radius: 999px; padding: 10px 16px; text-decoration: none; box-shadow: 0 2px 0 var(--forest-dk); white-space: nowrap; }
.lab-voltar:hover, .lab-voltar:focus-visible { background: var(--forest-dk); outline: none; }
.lab-barra-logo { height: 40px; width: auto; display: block; }
.lab-barra-contexto { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.lab-barra-contexto > b { font: 700 17px/1.2 'Fredoka', 'Nunito', sans-serif; color: #3A2418; }
.lab-barra-titulo { font-size: 12px; font-weight: 700; color: #8A6A3A; }
.lab-modos { display: flex; gap: 4px; background: #F3EBDD; border-radius: 999px; padding: 4px; }
.lab-modo { color: #6B4E3A; text-decoration: none; padding: 6px 12px; border-radius: 999px; font-weight: 800; }
.lab-modo.ativo { background: #3A2418; color: #fff; }
.lab-acoes { display: flex; flex-wrap: wrap; gap: 6px; }
.lab-acao { font: 700 13px 'Nunito', sans-serif; color: #3A2418; background: #fff; border: 1.5px solid #EFE3CF; border-radius: 999px; padding: 6px 12px; cursor: pointer; text-decoration: none; text-transform: none; }
.lab-acao:hover, .lab-acao:focus-visible { border-color: #E3B567; outline: none; }
@media (max-width: 520px) { .lab-barra-logo { height: 30px; } .lab-barra-contexto > b { font-size: 15px; } }

/* REFINO e SONDA (doc 49): fundo creme e a área da avaliação num cartão, como a página inicial */
body.lab-modo-refino, body.lab-modo-sonda { background: #FEFBF6; }
body.lab-modo-refino .fl-wrap, body.lab-modo-sonda .fl-wrap { background: #fff; border: 2px solid #EFE3CF; border-radius: 22px; box-shadow: 0 3px 0 #EFE3CF; margin-top: 16px; margin-bottom: 24px; }
body.lab-modo-refino .lab-aviso, body.lab-modo-sonda .lab-aviso { background: #FBF3E3; border-color: #DDBF86; color: #6B4E3A; }
@media (max-width: 520px) { body.lab-modo-refino .fl-wrap, body.lab-modo-sonda .fl-wrap { margin: 10px 6px 16px; border-radius: 16px; } }

.lab-aviso { background: #F3F3F3; border: 2px dashed #9A9A9A; border-radius: 12px; padding: 10px 14px; font-size: 14px; font-weight: 600; color: #333; margin-bottom: 12px; line-height: 1.45; }
.lab-nota { font-size: 13px; font-weight: 600; color: #5B6E5E; margin: 6px 0; }
.lab-pequeno { font-size: 14px !important; padding: 8px 12px !important; }

/* ── REFINO: mesma grade do papel (4 colunas, numerada) em QUALQUER largura ── */
body.lab-modo-refino .fl-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lab-num { display: block; font-size: 11px; font-weight: 700; line-height: 1; text-align: left; opacity: .6; letter-spacing: 0; margin-bottom: 2px; }
.fl-word.read .lab-num { opacity: .9; }
@media (max-width: 520px) {
  body.lab-modo-refino .fl-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 5px; padding: 8px; }
  body.lab-modo-refino .fl-word { font-size: clamp(11px, 3.6vw, 19px); letter-spacing: 0; padding: 6px 2px; }
  body.lab-modo-refino .fl-word.read::after { content: none; }
}
.lab-redirecionar[disabled] { opacity: .6; }
/* REFINO: "Até qual número a criança chegou?" (1 marcação por lista, depois do tempo) */
.lab-alcance { background: #FFF7E6; border: 2px solid var(--line); border-radius: 12px; padding: 10px 12px; margin: 10px 0; }
.lab-alcance label { display: block; margin-bottom: 6px; }
.lab-seletor-alcance { width: 100%; min-height: 48px; font: 800 18px 'Nunito', sans-serif; padding: 8px 10px; border: 2px solid var(--forest); border-radius: 10px; background: #fff; color: var(--ink); }
.lab-cobertura th { font-size: 12px; text-align: left; }
/* celular: a tabela de cobertura (5 colunas) não pode passar da tela (o body da produção corta, não rola) */
@media (max-width: 520px) {
  .lab-cobertura { table-layout: fixed; }
  .lab-cobertura th, .lab-cobertura td { font-size: 11px; padding: 6px 3px; overflow-wrap: anywhere; letter-spacing: 0; }
}
/* REFINO — última palavra alcançada no texto (doc 24 §A): botões grandes, nada pré-escolhido */
.lab-palavras { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 8px; }
.lab-palavra { font: 800 16px 'Nunito', sans-serif; text-transform: uppercase; min-height: 44px; padding: 6px 10px; border: 2px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); cursor: pointer; }
.lab-palavra.escolhida { background: var(--forest); border-color: var(--forest); color: #fff; }
.lab-palavra-extra { text-transform: none; font-weight: 700; border-style: dashed; margin-top: 2px; }
.lab-outra-frase { margin-top: 8px; }
.lab-outra-frase summary { font: 700 14px 'Nunito', sans-serif; color: var(--ink-soft); cursor: pointer; }
.lab-comp-res th, .lab-texto-alcance-res td:first-child { font-size: 12px; text-align: left; }
/* REFINO — texto em T1 (Passo 1, doc 33): cada frase numa linha; cada palavra é um alvo.
   Toque = certa (verde); 2º toque = dúvida (âmbar, "?"); 3º toque limpa. */
.lab-texto-t1 .lab-t1-frase { margin: 4px 0 8px; line-height: 2.1; }
.lab-tpal { font: 700 clamp(16px, 2.4vw, 22px) 'Nunito', sans-serif; text-transform: none; color: var(--ink); background: #fff; border: 2px solid var(--line); border-radius: 8px; padding: 4px 6px; min-height: 40px; margin: 2px 0; cursor: pointer; }
.lab-tpal:disabled { cursor: default; opacity: .85; }
.lab-tpal.c { background: var(--leaf); border-color: var(--leaf); color: #fff; }
.lab-tpal.d { background: #FFE7A8; border-color: #C98A00; color: var(--ink); }
.lab-tpal.d::after { content: " ?"; font-weight: 900; }
.lab-medicao li { font-size: 14px; }
/* REFINO — compreensão multimodal (doc 28): imagem + texto à vista, uma pergunta por tela, alvos grandes */
.lab-mm-figura { margin: 0 0 10px; background: #fff; border: 3px solid #fff; border-radius: 16px; box-shadow: var(--shadow-sm); overflow: hidden; }
.lab-mm-figura img { display: block; width: 100%; height: auto; }
.lab-mm-texto { background: var(--paper); border: 2px solid var(--line); border-radius: 14px; padding: 8px 12px; margin-bottom: 12px; }
.lab-mm-texto summary { font: 800 15px 'Nunito', sans-serif; color: var(--forest-dk); cursor: pointer; }
.lab-mm-texto p { font: 600 17px/1.6 'Nunito', sans-serif; color: var(--ink); text-transform: none; margin: 8px 0 4px; max-height: 40vh; overflow-y: auto; }
.lab-mm-pergunta { background: #fff; border: 2px solid var(--line); border-radius: 14px; padding: 12px; }
.lab-mm-num { font: 800 13px 'Nunito', sans-serif; color: var(--ink-soft); margin: 0 0 4px; }
.lab-mm-enunciado { font: 800 18px/1.4 'Nunito', sans-serif; color: var(--ink); margin: 0 0 8px; text-transform: none; }
.lab-mm-opcoes { display: grid; gap: 8px; margin-top: 8px; }
.lab-mm-opcao { text-align: left; min-height: 56px; font: 700 17px/1.3 'Nunito', sans-serif; text-transform: none; color: var(--ink); background: #fff; border: 3px solid #4A4A4A; border-radius: 14px; padding: 10px 12px; cursor: pointer; }
.lab-mm-opcao.escolhida { background: var(--forest); border-color: var(--forest); color: #fff; }
.lab-mm-classif { font: 800 12px 'Nunito', sans-serif; color: var(--ink-soft); letter-spacing: .04em; margin: 12px 0 0; }
.lab-mm-rubrica { display: block; font: 600 13px/1.35 'Nunito', sans-serif; color: var(--ink-soft); margin-top: 3px; }
.lab-mm-opcao.escolhida .lab-mm-rubrica { color: #fff; }
.lab-mm-pergunta .lab-nota { text-transform: none; } /* a produção põe tudo em bastão; nota longa do aplicador fica legível */
.lab-mm-titulo { font: 800 15px 'Nunito', sans-serif; color: var(--forest-dk); margin: 14px 0 4px; }
.lab-comp-res { list-style: none; padding: 0; margin: 8px 0; display: grid; gap: 8px; }
.lab-comp-res li { background: #fff; border: 2px solid var(--line); border-radius: 12px; padding: 10px 12px; font-size: 14px; font-weight: 600; line-height: 1.5; color: var(--ink); }

/* Painel da regra de bolso */
.lab-painel-regra { position: fixed; right: 12px; bottom: 12px; max-width: min(420px, calc(100vw - 24px)); max-height: 75vh; overflow: auto; background: #fff; border: 3px solid #2B2B2B; border-radius: 14px; padding: 14px 16px; z-index: 60; font: 600 14px/1.45 'Nunito', sans-serif; color: #22332A; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.lab-painel-regra h2 { font-size: 17px; margin: 0 0 8px; }
.lab-painel-regra ul { margin: 2px 0 8px 18px; padding: 0; }

/* ── SONDA ── */
.lab-item-sonda { font: 800 clamp(40px, 12vw, 88px)/1.1 'Nunito', sans-serif; letter-spacing: 2px; text-align: center; color: #22332A; background: #fff; border: 3px solid var(--line); border-radius: 18px; padding: 18px 8px; margin: 6px 0 12px; }
.lab-estados { display: grid; gap: 10px; margin-top: 10px; }
.lab-estados-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.lab-estados-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* Mesmo peso visual para todos os estados do grupo 1: sem verde, sem vermelho (decisão C2). */
.lab-estado { min-height: 64px; font: 800 17px/1.15 'Nunito', sans-serif; color: #22332A; background: #fff; border: 3px solid #4A4A4A; border-radius: 14px; padding: 10px 6px; cursor: pointer; }
.lab-estado:active { background: #EDEDED; }
.lab-grupo2 { font: 700 13px 'Nunito', sans-serif; color: #5B6E5E; margin: 18px 0 4px; text-transform: uppercase; letter-spacing: .04em; }
.lab-estado-nc { width: 100%; border: 3px dotted #8A8A8A; color: #4A4A4A; background: #FAFAFA; min-height: 56px; }
.lab-estado-neutro { border-style: dashed; }
.lab-pergunta { background: #F7F7F7; border-radius: 14px; padding: 12px; }
.lab-pergunta-texto { font: 700 18px 'Nunito', sans-serif; margin: 0 0 6px; }
.lab-prevista { font-size: 24px; letter-spacing: 1px; }
@media (max-width: 420px) { .lab-estados-3 { grid-template-columns: 1fr; } }

/* Cartão para mostrar à criança (tela inteira; toque volta) */
.lab-cartao { position: fixed; inset: 0; background: #FFF8EC; z-index: 80; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; }
.lab-cartao-texto { font: 800 clamp(64px, 22vw, 200px)/1 'Nunito', sans-serif; letter-spacing: 4px; color: #22332A; }
.lab-cartao-dica { font: 600 14px 'Nunito', sans-serif; color: #8A8A8A; margin-top: 24px; }

/* folha REFINO: imagem do bloco multimodal */
.lab-folha-img { display: block; width: 100%; height: auto; border-radius: 12px; margin-top: 8px; }
/* REFINO — degrau CAEd 2026 (doc 41): régua principal do modo PARC */
.lab-degrau-caed { background: #fff; border: 3px solid var(--forest); border-radius: 14px; padding: 10px 12px; margin: 6px 0 10px; font: 600 15px/1.45 'Nunito', sans-serif; color: var(--ink); text-transform: none; }
.lab-degrau-nome { font: 800 22px/1.2 'Nunito', sans-serif; color: var(--forest-dk); }
/* REFINO — Simulado CAEd (doc 43): grade de 5 colunas, como o caderno CAEd; 3 exemplos antes da lista */
body.lab-modo-refino .fl-grid[data-colunas="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 520px) {
  body.lab-modo-refino .fl-grid[data-colunas="5"] { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; padding: 6px; }
  body.lab-modo-refino .fl-grid[data-colunas="5"] .fl-word { font-size: clamp(9px, 2.9vw, 17px); padding: 6px 1px; }
}
.lab-exemplos { background: #fff; border: 2px dashed var(--line); border-radius: 14px; padding: 8px 12px; margin: 6px 0 10px; text-transform: none; }
.lab-exemplos-itens { font: 800 20px/1.3 'Nunito', sans-serif; letter-spacing: .04em; margin: 4px 0; }
.fh-section .fl-grid.lab-folha-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.lab-folha-exemplos { font: 800 18px/1.4 'Nunito', sans-serif; text-transform: uppercase; letter-spacing: .05em; margin: 4px 0 10px; }
.lab-folha-paragrafo { margin: 0 0 .6em; }
/* REFINO — resultado simples (doc 44): onde ela está na régua CAEd 2026 + quanto falta; resto em "Ver detalhes" */
.lab-resultado { display: block; text-transform: none; }
.lab-caed-card { background: #fff; border: 2px solid var(--line); border-radius: 14px; padding: 12px 14px; margin: 0 0 10px; font: 600 15px/1.45 'Nunito', sans-serif; color: var(--ink); text-transform: none; }
.lab-caed-card.lab-degrau-caed { border: 3px solid var(--forest); }
.lab-caed-card .lab-degrau-nome { display: block; font: 800 26px/1.2 'Nunito', sans-serif; color: var(--forest-dk); margin: 2px 0 10px; }
.lab-escada { list-style: none; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 4px; margin: 0 0 6px; padding: 0; }
.lab-escada li { text-align: center; font-size: 12px; font-weight: 700; color: #6B7A6E; }
.lab-escada-barra { display: block; height: 10px; border-radius: 5px; background: #DCE3DD; margin-bottom: 4px; }
.lab-escada li.feito .lab-escada-barra { background: #9DB8D9; }
.lab-escada li.atual .lab-escada-barra { background: var(--forest); }
.lab-escada li.atual { color: var(--forest-dk); font-weight: 800; }
.lab-degrau-criterio { margin: 4px 0 0; }
.lab-caed-titulo { font: 800 17px/1.3 'Nunito', sans-serif; margin: 0 0 8px; color: var(--ink); }
.lab-caed-passo { margin: 4px 0; font-weight: 700; }
.lab-meta { margin: 0 0 10px; }
.lab-meta-linha { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.lab-meta-linha b { white-space: nowrap; font-size: 17px; }
.lab-meta-barra { height: 10px; border-radius: 5px; background: #EEF1EE; margin-top: 4px; overflow: hidden; }
.lab-meta-barra i { display: block; height: 100%; border-radius: 5px; background: var(--sun-deep); }
.lab-meta[data-ok="true"] .lab-meta-barra i { background: #2E9B6A; }
.lab-meta-falta { margin: 3px 0 0; font-size: 14px; font-weight: 800; color: #9A5B00; }
.lab-meta[data-ok="true"] .lab-meta-falta { color: #1E7A52; }
.lab-caed-garantido .lab-meta-linha { margin: 2px 0; }
.lab-caed-garantido .lab-meta-linha b { color: #1E7A52; }
.lab-etiquetas { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.lab-etiqueta { background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 4px 10px; font: 700 13px/1.3 'Nunito', sans-serif; color: #4A5A4E; text-transform: none; }
@media (max-width: 420px) {
  .lab-escada { gap: 3px; }
  .lab-escada li { font-size: 10.5px; letter-spacing: -0.2px; }
  .lab-caed-card .lab-degrau-nome { font-size: 23px; }
}
/* Aba "Mestre das Palavras versão CAEd — dúvidas e dicas para a avaliação" (doc 45) */
body.lab-duvidas-body { text-transform: none; padding: 16px; }
.lab-duvidas { max-width: 820px; margin: 0 auto; font: 600 16px/1.55 'Nunito', sans-serif; color: var(--ink); text-transform: none; }
.lab-duvidas h1 { font: 800 26px/1.2 'Nunito', sans-serif; color: var(--forest-dk); margin: 2px 0 6px; text-transform: none; }
.lab-duvidas h2 { font: 800 19px/1.3 'Nunito', sans-serif; color: var(--forest-dk); margin: 22px 0 8px; text-transform: none; }
.lab-duvidas-marca { font: 800 13px/1.2 'Nunito', sans-serif; letter-spacing: .06em; text-transform: uppercase; color: var(--forest); margin: 0; }
.lab-duvida { background: #fff; border: 2px solid var(--line); border-radius: 14px; padding: 10px 14px; margin: 0 0 8px; }
.lab-duvida > summary { cursor: pointer; font-weight: 800; color: var(--ink); }
.lab-duvida[open] > summary { margin-bottom: 6px; color: var(--forest-dk); }
.lab-duvida p, .lab-duvida li { margin: 4px 0; }
.lab-duvida ul, .lab-duvida ol { padding-left: 20px; margin: 4px 0; }
.lab-fala-crianca li { font-style: italic; }
.lab-duvidas-tabela td { vertical-align: top; text-transform: none; }
.lab-link-duvidas { display: inline-block; margin: 8px 0 4px; font-weight: 800; color: var(--forest-dk); }
/* Página inicial com abas (docs 46 e 48): modelo do site do Mestre, com a logo. Cores de destaque tiradas da logo
   (terra, palha, folha) + o azul do app; fundo creme igual ao da logo. */
body.lab-inicio-body { text-transform: none; padding: 20px 16px 32px; background: #FEFBF6; }
.lab-inicio { max-width: 920px; margin: 0 auto; font: 600 16px/1.5 'Nunito', sans-serif; color: #3A2418; text-transform: none; }
.lab-hero { text-align: center; padding: 8px 8px 18px; }
.lab-hero-logo { display: block; width: min(100%, 560px); height: auto; margin: 0 auto; }
.lab-hero-sub { font: 700 17px/1.3 'Nunito', sans-serif; color: #7A5A44; margin: 6px 0 10px; }
.lab-hero-selo { display: inline-block; font: 700 12.5px/1.3 'Nunito', sans-serif; color: #8A6A3A; background: #F7EBD3; border: 1px dashed #DDBF86; border-radius: 999px; padding: 5px 12px; margin: 0; }
.lab-abas { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 6px 0 16px; padding: 6px; background: #F3EBDD; border-radius: 999px; border: none; }
.lab-aba { font: 800 15px/1.2 'Nunito', sans-serif; text-transform: none; padding: 10px 18px; border: none; border-radius: 999px; background: transparent; color: #6B4E3A; cursor: pointer; transition: background .15s, color .15s; }
.lab-aba:hover { background: #FFF8EC; }
.lab-aba.ativa { background: var(--forest); color: #fff; box-shadow: 0 2px 0 var(--forest-dk); }
.lab-aba:focus-visible { outline: 3px solid #E3B567; outline-offset: 2px; }
.lab-painel { background: transparent; border: none; padding: 0; }
.lab-painel-intro { text-align: center; color: #6B4E3A; margin: 0 0 14px; }
.lab-cartoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 14px; }
.lab-cartao-link { position: relative; display: flex; flex-direction: column; gap: 6px; background: #fff; border: 2px solid #EFE3CF; border-radius: 18px; padding: 16px 16px 14px; color: #3A2418; text-decoration: none; box-shadow: 0 3px 0 #EFE3CF; transition: transform .12s, box-shadow .12s, border-color .12s; }
.lab-cartao-link b { display: block; font: 700 19px/1.2 'Fredoka', 'Nunito', sans-serif; color: #3A2418; }
.lab-cartao-link span:not(.lab-cartao-icone) { display: block; font-size: 14.5px; font-weight: 600; color: #6B5A4E; }
a.lab-cartao-link:hover, a.lab-cartao-link:focus-visible { transform: translateY(-2px); border-color: #E3B567; box-shadow: 0 5px 0 #E3B567; outline: none; }
a.lab-cartao-link::after { content: 'Abrir →'; margin-top: auto; padding-top: 6px; font: 800 13.5px/1 'Nunito', sans-serif; color: var(--forest); }
.lab-cartao-icone { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; font: 800 22px/1 'Fredoka', 'Nunito', sans-serif; }
.lab-cor-terra { background: #F8E1D6; color: #B4502B; }
.lab-cor-folha { background: #E2F0DA; color: #3E7F2F; }
.lab-cor-azul { background: #E3EDF9; color: var(--forest-dk); }
.lab-cor-palha { background: #F7EBD3; color: #8A6A3A; }
.lab-cor-cinza { background: #EEEAE4; color: #5F564E; }
.lab-cartao-tag { align-self: flex-start; font: 800 11.5px/1.2 'Nunito', sans-serif; font-style: normal; color: #9A5B00; background: #FFF1D6; border-radius: 999px; padding: 3px 9px; }
.lab-cartao-breve { opacity: .7; border-style: dashed; }
.lab-inicio-rodape { text-align: center; font-size: 12.5px; color: #9A8676; margin-top: 22px; }
@media (max-width: 520px) {
  .lab-abas { border-radius: 18px; }
  .lab-aba { padding: 9px 12px; font-size: 14px; }
}
.lab-voltar-inicio { display: inline-block; margin: 0 0 8px; font-weight: 800; color: var(--forest-dk); }
/* Folha: botão de imprimir (doc 47); some na impressão (.no-print da folha-leitura.css) */
.lab-imprimir-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 12px; text-transform: none; }
.lab-imprimir-barra .btn-primary { font-size: 17px; padding: 10px 18px; }
@media print { .lab-imprimir-barra { display: none !important; } }
/* Páginas avulsas (dúvidas, folha) com o mesmo topo da página inicial (doc 49) */
.lab-pag-topo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 12px; }
body.lab-duvidas-body { background: #FEFBF6; }
.lab-duvidas { color: #3A2418; }
.lab-duvidas h1 { font: 700 28px/1.2 'Fredoka', 'Nunito', sans-serif; color: #3A2418; }
.lab-duvidas h2 { font: 700 20px/1.3 'Fredoka', 'Nunito', sans-serif; color: var(--forest-dk); }
.lab-duvidas .lab-aviso { background: #FBF3E3; border-color: #DDBF86; color: #6B4E3A; }
.lab-duvida { border-color: #EFE3CF; border-radius: 18px; box-shadow: 0 2px 0 #EFE3CF; }
.lab-duvida > summary { list-style: none; position: relative; padding-left: 26px; }
.lab-duvida > summary::-webkit-details-marker { display: none; }
.lab-duvida > summary::before { content: '＋'; position: absolute; left: 0; top: 0; color: var(--forest); font-weight: 800; }
.lab-duvida[open] > summary::before { content: '－'; }
.lab-imprimir-barra .lab-voltar { padding: 12px 16px; }
body.fl-body:not(.lab-inicio-body):not(.lab-duvidas-body) { background: #FEFBF6; }
body.lab-modo-refino .fl-status:empty, body.lab-modo-sonda .fl-status:empty { display: none; }
/* Alunos (doc 50): lista fictícia com avatares + histórico de uso */
.lab-alunos-bloco { margin: 14px 0 6px; text-transform: none; }
.lab-alunos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin: 6px 0; }
.lab-aluno { display: flex; align-items: center; gap: 8px; text-align: left; background: #fff; border: 2px solid #EFE3CF; border-radius: 14px; padding: 8px 10px; cursor: pointer; font: 700 13.5px/1.25 'Nunito', sans-serif; color: #3A2418; text-transform: none; }
.lab-aluno:hover, .lab-aluno:focus-visible { border-color: #E3B567; outline: none; }
.lab-aluno.escolhido { border-color: var(--forest); background: #EAF2FC; box-shadow: 0 2px 0 var(--forest); }
.lab-aluno-avatar { font-size: 26px; line-height: 1; }
.lab-historico { background: #FFFDF8; border: 2px solid #EFE3CF; border-radius: 14px; padding: 10px 12px; margin-top: 8px; text-transform: none; }
.lab-historico-titulo { font: 700 16px/1.3 'Fredoka', 'Nunito', sans-serif; margin: 0 0 6px; color: #3A2418; }
.lab-historico-tabela td, .lab-historico-tabela th { text-transform: none; font-size: 13.5px; }
.lab-progresso { background: #F4F9F1; border: 2px solid #CFE4C4; border-radius: 12px; padding: 8px 10px; margin: 0 0 10px; }
.lab-progresso-titulo { font: 700 15px/1.3 'Fredoka', 'Nunito', sans-serif; margin: 0 0 2px; color: #2F6B22; }
.lab-progresso-tabela td, .lab-progresso-tabela th { text-transform: none; font-size: 13px; padding: 6px; }
/* Meta da rede: 8 de cada 10 (doc 51) */
.lab-meta-regra { background: #EAF2FC; border: 2px solid #B9D2F0; border-radius: 16px; padding: 10px 14px; margin: 6px 0 14px; color: #123F80; text-transform: none; }
.lab-meta-regra p, .lab-meta-regra li { margin: 4px 0; }
.lab-meta-regra ul { padding-left: 20px; margin: 4px 0; }
.lab-meta-frase { font: 700 20px/1.3 'Fredoka', 'Nunito', sans-serif; color: #3A2418; margin: 2px 0 8px; }
.lab-bolinhas { display: flex; gap: 6px; margin: 4px 0 4px; }
.lab-bolinha { display: inline-block; width: 22px; height: 22px; border-radius: 50%; border: 3px solid var(--forest); background: #fff; vertical-align: middle; }
.lab-bolinha.fluente { background: var(--forest); }
.lab-bolinha.falta { border-style: dashed; border-color: #D08A1E; }
.lab-bolinha.alem { border-color: #C9D6E6; }
.lab-bolinhas-legenda .lab-bolinha { width: 12px; height: 12px; border-width: 2px; }
.lab-meta-numeros { font-size: 15px; margin: 6px 0 10px; }
.lab-ok { color: #1E7A52; font-weight: 800; }
.lab-falta { color: #9A5B00; font-weight: 800; }
.lab-meta-tabela td, .lab-meta-tabela th { text-transform: none; font-size: 14px; }
.lab-meta-escolas { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 10px; }
.lab-meta-link { display: inline-block; margin-top: 8px; }
.lab-meta-visoes { justify-content: flex-start; }
@media (max-width: 420px) { .lab-bolinha { width: 18px; height: 18px; } .lab-bolinhas { gap: 4px; } }
.lab-cartao-meta { border-color: #B9D2F0; box-shadow: 0 3px 0 #B9D2F0; }
.lab-meta-perfil { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: #F3EBDD; border-radius: 14px; padding: 8px 12px; margin: 0 0 8px; text-transform: none; }
.lab-meta-trilha { font-weight: 800; margin: 0 0 10px; text-transform: none; }
.lab-meta-trilha a { color: var(--forest-dk); }
.lab-meta-entradas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); gap: 12px; margin-top: 8px; }
.lab-meta-grupo { cursor: default; }
.lab-meta-opcoes { display: flex; flex-direction: column; gap: 6px; margin-top: 6px; }
.lab-meta-opcoes .lab-aluno { text-decoration: none; }
.lab-meta-tabela a { color: var(--forest-dk); font-weight: 800; }
/* Pílulas de treino (doc 52) */
.lab-treino-abas { justify-content: flex-start; margin: 4px 0 10px; }
.lab-pilulas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 10px; margin: 8px 0 12px; }
.lab-pilula { display: flex; flex-direction: column; gap: 4px; background: #fff; border: 2px solid #EFE3CF; border-radius: 16px; padding: 10px 12px; text-transform: none; font-size: 14px; }
.lab-pilula b { font: 700 17px/1.2 'Fredoka', 'Nunito', sans-serif; }
.lab-pilula { cursor: pointer; text-align: left; font: inherit; color: inherit; }
.lab-pilula[aria-checked="true"] { border-color: #1E5FB0; background: #EEF5FD; box-shadow: 0 3px 0 #1E5FB0; }
.lab-pilula:focus-visible { outline: 3px solid #F2B544; }
.lab-pilula-icone { font-size: 24px; }
.lab-pilula-meta { background: #EAF2FC; border: 2px solid #B9D2F0; border-radius: 12px; padding: 8px 12px; margin: 8px 0; text-transform: none; }
.lab-pilula-frase { font: 800 24px/1.8 'Nunito', sans-serif; margin: 10px 0; }
.lab-pilula-tabela td, .lab-pilula-tabela th { text-transform: none; font-size: 13.5px; }
.lab-cartao-frase { font-size: clamp(26px, 6vw, 56px); line-height: 1.3; }
.lab-comparacao-caed { border: 3px solid var(--forest); }
.lab-comp-ritmo { background: #FBF3E3; border-radius: 10px; padding: 8px 10px; }
.lab-progresso-resultado { margin: 0 0 10px; }
/* Parecer da pedagoga (doc 53): separar regra do CAEd x regra do Mestre; selo da estimativa bem visível */
.lab-regra-caed, .lab-regra-mestre { display: inline-block; font: 800 11.5px/1.3 'Nunito', sans-serif; border-radius: 999px; padding: 2px 8px; margin-right: 4px; text-transform: none; vertical-align: 1px; }
.lab-regra-caed { background: #E3EDF9; color: #123F80; border: 1px solid #B9D2F0; }
.lab-regra-mestre { background: #F7EBD3; color: #7A4F12; border: 1px solid #DDBF86; }
.lab-selo-estimativa { background: #FFF1D6; border: 2px solid #D08A1E; color: #7A4300; border-radius: 10px; padding: 6px 10px; font: 900 14px/1.3 'Nunito', sans-serif; letter-spacing: .02em; margin: 0 0 8px; text-transform: none; }
.lab-quest-guia { background: #F4F9F1; border-radius: 8px; padding: 6px 8px; margin: 4px 0; }

/* Regras de correção da pedagoga nas listas da versão CAEd (doc 56) */
.lab-regras-correcao { background: #FFF8E8; border: 2px solid #E8D3A6; border-radius: 12px; padding: 6px 12px; margin: 8px 0; text-transform: none; }
.lab-regras-correcao summary { cursor: pointer; font-weight: 700; }
.lab-regras-correcao ul { margin: 6px 0 4px; padding-left: 20px; }

/* Treino em dupla e Treino do ouvido (doc 57) */
.lab-dupla-cartao { background: #FFFFFF; border: 2px solid #EFE3CF; border-radius: 14px; padding: 12px 16px; margin: 14px 0; text-transform: none; }
.lab-dupla-cartao h2 { font: 700 20px/1.25 'Fredoka', 'Nunito', sans-serif; margin: 4px 0 6px; color: #123F80; }
.lab-dupla-tag { display: inline-block; font-weight: 800; font-size: 12px; letter-spacing: .03em; background: #FBF3E3; border: 1.5px dashed #DDBF86; border-radius: 999px; padding: 2px 10px; margin: 0; }
.lab-dupla-cartao[data-papel="marcador"] .lab-dupla-tag { background: #EAF2FC; border-color: #B9D2F0; }
.lab-dupla-tabela td, .lab-dupla-tabela th { text-transform: none; font-size: 14px; padding: 6px 8px; vertical-align: top; }
.lab-dupla-palavra { font-weight: 800; font-size: 17px; letter-spacing: .03em; }
.lab-dupla-caixa { font-size: 22px; line-height: 1; }
.lab-dupla-gabarito { margin-top: 12px; border-top: 2px dashed #DDBF86; padding-top: 6px; }
.lab-dupla-grade { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: 8px 0; }
.lab-dupla-celula { border: 1.5px solid #D9CDB8; border-radius: 8px; padding: 8px; font-size: 15px; display: flex; align-items: center; gap: 6px; justify-content: space-between; }
@media (max-width: 620px) { .lab-dupla-grade { grid-template-columns: repeat(2, 1fr); } }
.lab-ouvido-niveis { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 12px 0; }
.lab-ouvido-nivel { text-align: left; background: #FFFFFF; border: 2px solid #EFE3CF; border-radius: 14px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; cursor: pointer; font: inherit; text-transform: none; }
.lab-ouvido-nivel b { font: 700 16px/1.25 'Fredoka', 'Nunito', sans-serif; color: #123F80; }
.lab-ouvido-nivel span { font-size: 13px; color: #6B4E3A; }
.lab-ouvido-nivel.escolhido { border-color: #1E5FB0; background: #EEF5FD; }
.lab-ouvido-palavra { font: 800 34px/1.2 'Nunito', sans-serif; letter-spacing: .05em; text-align: center; margin: 10px 0; }
.lab-ouvido-codigo { color: #8A6A3A; }
.lab-ouvido-sem-audio { background: #FBF3E3; border: 1.5px dashed #DDBF86; border-radius: 10px; padding: 8px 12px; text-transform: none; }
.lab-ouvido-feedback[data-acertou="true"] { border-color: #9BCB86; background: #F4F9F1; }
.lab-ouvido-feedback[data-acertou="false"] { border-color: #E3A5A0; background: #FDF1F0; }
.lab-ouvido-roteiro { margin-top: 16px; }
.lab-ouvido-roteiro-tabela td, .lab-ouvido-roteiro-tabela th { text-transform: none; font-size: 13px; padding: 5px 7px; vertical-align: top; }
.lab-ouvido-grade .fl-word.on { background: #DDF0D3; border-color: #5E9E46; }
@media print {
  .lab-nao-imprimir, .lab-desligado { display: none !important; }
  .lab-dupla-cartao { break-inside: avoid; border: 1.5px solid #999; margin: 0 0 8mm; }
  .lab-dupla-cartao + .lab-dupla-cartao { break-before: page; }
  .lab-ouvido-roteiro summary { display: none; }
  html, body.lab-duvidas-body { height: auto !important; overflow: visible !important; }
  .lab-ouvido-roteiro-tabela tr, .lab-dupla-tabela tr { break-inside: avoid; }
  .lab-dupla-tabela td, .lab-dupla-tabela th { font-size: 11px; padding: 2px 6px; line-height: 1.3; }
  .lab-dupla-palavra { font-size: 14px; }
  .lab-dupla-cartao { padding: 8px 12px; }
  .lab-dupla-cartao h2 { font-size: 17px; margin: 2px 0 4px; }
  .lab-dupla-cartao .lab-nota { font-size: 11px; }
  .lab-dupla-gabarito { margin-top: 6px; }
}

/* Painel administrativo da campanha (doc 61) */
.lab-adm-nome { color: #1E5FB0; white-space: nowrap; }
.lab-adm-abas { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.lab-adm-aba { font: 800 14px/1 'Nunito', sans-serif; border: 2px solid #EFE3CF; background: #fff; color: #3A2418; border-radius: 999px; padding: 9px 14px; cursor: pointer; text-transform: none; }
.lab-adm-aba.ativa { background: #1E5FB0; border-color: #1E5FB0; color: #fff; }
.lab-adm-semana-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 6px 0 10px; }
.lab-adm-grade { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 16px; }
@media (max-width: 860px) { .lab-adm-grade { grid-template-columns: 1fr; } }
.lab-adm-h2 { font: 700 18px/1.25 'Fredoka', 'Nunito', sans-serif; color: #123F80; margin: 10px 0 6px; }
.lab-adm-envio { display: grid; grid-template-columns: minmax(0, 1fr) 120px; gap: 12px; background: #fff; border: 2px solid #EFE3CF; border-radius: 14px; padding: 10px 12px; margin: 0 0 10px; text-transform: none; }
.lab-adm-envio.enviado { opacity: .62; border-style: dashed; }
.lab-adm-meta { margin: 0 0 4px; font-size: 13px; color: #7A6656; }
.lab-adm-texto { background: #F4F9F1; border-radius: 10px; padding: 8px 10px; font-size: 14.5px; line-height: 1.45; text-transform: none; }
.lab-adm-miniatura { width: 120px; height: 120px; border-radius: 8px; border: 1px solid #ddd; }
@media (max-width: 560px) { .lab-adm-envio { grid-template-columns: 1fr; } .lab-adm-miniatura { width: 100%; height: auto; } }
.lab-adm-pausa { background: #EEF5FD; border: 2px dashed #B9D2F0; border-radius: 12px; padding: 10px 12px; margin: 0 0 10px; text-transform: none; }
.lab-adm-contagem { font: 700 28px/1.1 'Fredoka', 'Nunito', sans-serif; color: #1E5FB0; margin: 4px 0; }
.lab-adm-tarefa { display: flex; gap: 8px; align-items: flex-start; margin: 6px 0; font-size: 14px; text-transform: none; cursor: pointer; }
.lab-adm-tarefa input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.lab-adm-tabela td, .lab-adm-tabela th { text-transform: none; font-size: 13.5px; padding: 6px 8px; vertical-align: top; }
.lab-adm-cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 10px; }
.lab-adm-cartao { margin: 0; background: #fff; border: 2px solid #EFE3CF; border-radius: 12px; padding: 6px; }
.lab-adm-cartao img { width: 100%; height: auto; border-radius: 8px; display: block; }
.lab-adm-cartao figcaption { font-size: 12.5px; padding: 4px 2px 0; text-transform: none; }
.lab-adm-termo { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; margin: 8px 0; }
.lab-adm-termo label { display: flex; flex-direction: column; gap: 4px; font-weight: 800; font-size: 14px; text-transform: none; }
.lab-adm-termo input, .lab-adm-termo select { font: inherit; padding: 8px; border: 2px solid #EFE3CF; border-radius: 10px; }
.lab-adm-ouro { border-color: #B4502B; background: #FDF1EC; }

/* Kit da Turma (doc 61) */
.lab-kit-folha { background: #fff; border: 2px solid #EFE3CF; border-radius: 14px; padding: 14px 18px; margin: 14px 0; text-transform: none; }
.lab-kit-tag { display: inline-block; font: 800 12px/1 'Nunito', sans-serif; background: #FBF3E3; border: 1.5px dashed #DDBF86; border-radius: 999px; padding: 4px 10px; margin: 0; }
.lab-kit-folha h2 { font: 700 24px/1.2 'Fredoka', 'Nunito', sans-serif; color: #123F80; margin: 6px 0 8px; }
.lab-kit-nao { background: #FDF1EC; border: 2px solid #E3A5A0; border-radius: 10px; padding: 8px 10px; }
.lab-kit-mural { position: relative; border: 3px solid #D9CDB8; border-radius: 14px; overflow: hidden; background: linear-gradient(#EAF4FB, #FEFBF6); padding-top: 34px; }
.lab-kit-faixa { border-top: 5px dashed #B4502B; margin: 0 0 8px; position: relative; }
.lab-kit-faixa span { position: absolute; right: 10px; top: -28px; font: 800 14px 'Nunito', sans-serif; color: #B4502B; }
.lab-kit-nivel { height: 70px; border-top: 1.5px dashed #CFE4C4; display: flex; align-items: center; padding-left: 12px; font-size: 30px; }
.lab-kit-terra { background: #B98A5E; color: #fff; font: 800 16px 'Nunito', sans-serif; text-align: center; padding: 10px; }
.lab-kit-gotas { display: grid; grid-template-columns: repeat(10, 1fr); gap: 8px; margin: 10px 0; }
.lab-kit-gota { aspect-ratio: 3 / 4; border: 2.5px solid #1E5FB0; border-radius: 50% 50% 50% 50% / 62% 62% 38% 38%; }
.lab-kit-missoes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.lab-kit-missao { border: 2.5px dashed #2F7D4F; border-radius: 12px; padding: 10px 12px; }
.lab-kit-missao b { font: 700 20px/1.2 'Fredoka', 'Nunito', sans-serif; color: #2F7D4F; }
.lab-kit-carta-texto { font: 600 20px/1.6 'Nunito', sans-serif; background: #FFF8E8; border: 2px solid #E8D3A6; border-radius: 12px; padding: 14px 16px; }
@media print {
  .lab-kit-folha { break-inside: avoid; border: 1.5px solid #999; }
  .lab-kit-folha + .lab-kit-folha { break-before: page; }
  .lab-kit-folha[data-folha="orientacao"] { font-size: 12.5px; line-height: 1.4; padding: 10px 14px; }
  .lab-kit-folha[data-folha="orientacao"] td, .lab-kit-folha[data-folha="orientacao"] th { font-size: 11.5px; padding: 3px 6px; }
  .lab-kit-folha[data-folha="orientacao"] ol { margin: 4px 0; }
}

/* Calendário da campanha na página inicial (doc 61) */
.lab-campanha-faixa { background: #EEF5FD; border: 2px solid #B9D2F0; border-radius: 14px; padding: 10px 12px; margin: 0 0 14px; text-transform: none; }
.lab-campanha-titulo { font: 700 16px/1.2 'Fredoka', 'Nunito', sans-serif; color: #123F80; margin: 0 0 6px; }
.lab-campanha-fases { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; }
.lab-campanha-fases li { background: #fff; border: 1.5px solid #D6E4F5; border-radius: 999px; padding: 5px 10px; font-size: 13px; }
.lab-campanha-fases li.atual { background: #1E5FB0; border-color: #1E5FB0; color: #fff; }
.lab-campanha-fases li small { opacity: .8; }

/* Pílulas por passos (doc 62): letra normal para o adulto; só o que a criança lê em maiúsculas */
.lab-pil, .lab-pil-intro, .lab-pil-itens { text-transform: none; }
.lab-pil { font: 600 16px/1.5 'Nunito', sans-serif; color: #2A2018; }
.lab-pil-opcao-texto { font-weight: 800; letter-spacing: .02em; }
.lab-pil-topo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0 0 10px; }
.lab-pil-tag { font: 700 20px/1.2 'Fredoka', 'Nunito', sans-serif; color: #123F80; }
.lab-pil-aluno { background: #EAF2FC; border-radius: 999px; padding: 4px 12px; font-weight: 800; font-size: 14px; }
.lab-pil-leitura { margin-left: auto; font-weight: 800; font-size: 14px; color: #8A6A3A; background: #FBF3E3; border-radius: 999px; padding: 4px 12px; }
.lab-pil-etapas { display: flex; gap: 6px; list-style: none; padding: 0; margin: 0 0 12px; }
.lab-pil-etapas li { flex: 1; text-align: center; padding: 8px 6px; border-radius: 12px; background: #F3EBDD; color: #8A7A66; font-weight: 800; font-size: 14px; }
.lab-pil-etapas li span { display: inline-flex; width: 22px; height: 22px; border-radius: 50%; background: #fff; align-items: center; justify-content: center; margin-right: 4px; font-size: 13px; }
.lab-pil-etapas li.atual { background: #1E5FB0; color: #fff; }
.lab-pil-etapas li.atual span { color: #1E5FB0; }
.lab-pil-etapas li.feito { background: #DDF0D3; color: #2F6B22; }
.lab-pil-crianca { background: #fff; border: 2px solid #EFE3CF; border-radius: 16px; padding: 12px 14px; margin: 0 0 12px; }
.lab-pil-crianca .lab-pilula-frase { margin: 0 0 8px; }
.lab-exp-frase { font: 800 26px/1.5 'Nunito', sans-serif; letter-spacing: .02em; }
.lab-pil-passo { display: flex; gap: 14px; align-items: flex-start; background: #FFF8E8; border: 2px solid #E8D3A6; border-radius: 16px; padding: 14px 16px; margin: 0 0 12px; }
.lab-pil-num { flex: none; width: 40px; height: 40px; border-radius: 50%; background: #F2B544; color: #3A2418; font: 700 21px/1 'Fredoka', 'Nunito', sans-serif; display: flex; align-items: center; justify-content: center; margin: 0; }
.lab-pil-passo-corpo { flex: 1; min-width: 0; }
.lab-pil-instr { margin: 0 0 4px; font-weight: 700; }
.lab-pil-fala { margin: 0 0 10px; font-style: italic; color: #123F80; font-size: 18px; font-weight: 700; }
.lab-pil-grande { font-size: 18px; padding: 12px 22px; }
.lab-pil-relogio, .lab-pil-contagem { font: 700 32px/1.1 'Fredoka', 'Nunito', sans-serif; color: #1E5FB0; margin: 4px 0 10px; }
.lab-pil-pergunta { border: none; padding: 0; margin: 0 0 12px; }
.lab-pil-pergunta legend { font-weight: 800; margin: 0 0 6px; padding: 0; }
.lab-pil-sn { display: inline-flex; position: relative; margin: 0 8px 6px 0; cursor: pointer; }
.lab-pil-sn input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.lab-pil-sn span { border: 2px solid #D9CDB8; border-radius: 999px; padding: 8px 16px; background: #fff; font-weight: 800; font-size: 15px; }
.lab-pil-sn input:checked + span { background: #1E5FB0; border-color: #1E5FB0; color: #fff; }
.lab-pil-sn input:focus-visible + span { outline: 3px solid #F2B544; }
.lab-pil-regra { margin: 6px 0 0; font-size: 14px; }
.lab-pil-regra summary { cursor: pointer; }
.lab-pil-feedback { background: #F4F9F1; border: 2px solid #9BCB86; border-radius: 16px; padding: 14px 16px; margin: 0 0 12px; }
.lab-pil-feedback-titulo { font: 700 20px/1.3 'Fredoka', 'Nunito', sans-serif; margin: 0 0 4px; }
.lab-sil-lista { display: flex; flex-direction: column; }
.lab-sil-linha { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 0; border-bottom: 1.5px dashed #EFE3CF; flex-wrap: wrap; }
.lab-sil-palavra { font: 800 30px/1.2 'Nunito', sans-serif; letter-spacing: .04em; }
.lab-sil-0 { color: #1E5FB0; }
.lab-sil-1 { color: #B4502B; }
.lab-rap-grade { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; margin: 0 0 8px; }
.lab-rap-grade .lab-tpal { font-size: 22px; min-height: 52px; }
@media (max-width: 560px) { .lab-rap-grade { grid-template-columns: repeat(2, 1fr); } .lab-pil-etapas li { font-size: 12px; } }

.lab-pil-metas li[data-estado="ok"] { background: #F4F9F1; border-color: #9BCB86; }
.lab-pil-metas li[data-estado="ok"] .lab-pil-meta-estado { color: #2F6B22; }
.lab-pil-metas li[data-estado="nao"] { background: #FFF8E8; border-color: #E8D3A6; }
.lab-pil-metas li[data-estado="nao"] .lab-pil-meta-estado { color: #9A5B00; }
.lab-pil-obs { margin: 0 0 6px; font-size: 15px; }
.lab-pil-dica { margin: 8px 0 0; font-size: 15px; background: #fff; border: 2px dashed #F2B544; border-radius: 10px; padding: 6px 10px; }
.lab-pil-emocao { margin: 0 0 10px; font-size: 16px; }
.lab-sil-escada { display: flex; gap: 8px; list-style: none; margin: 0; padding: 0; }
.lab-sil-escada li { flex: 1; background: #fff; border: 1.5px solid #D6E4F5; border-radius: 10px; padding: 6px 8px; text-align: center; }
.lab-sil-escada li[data-estado="agora"] { border: 2.5px solid #1E5FB0; background: #EEF5FD; }
.lab-sil-escada li[data-estado="feito"] { background: #F4F9F1; border-color: #9BCB86; }
.lab-sil-escada-rot { display: block; font-size: 13px; font-weight: 800; color: #3A2418; }
.lab-sil-escada-ex { display: block; font: 800 24px/1.3 'Nunito', sans-serif; letter-spacing: .03em; }
@media (max-width: 560px) { .lab-sil-escada { flex-direction: column; } }
/* Pílula 1 · Plante a palavra (?plante=1) — v0.3: um botão (a semente), horta, sol de 60 s; v0.1/v0.2 no histórico */
.lab-junta-ultima { background: #FFF8E8; border: 1.5px dashed #E8D3A6; border-radius: 10px; padding: 6px 10px; margin: 8px 0 0; }
.lab-plante-cena { padding: 0 0 10px; overflow: hidden; }
.lab-plante-ceu { position: relative; height: 120px; background: linear-gradient(#BFE3FA, #EAF6FD); border-radius: 14px 14px 0 0; overflow: hidden; }
.lab-plante-tarde { position: absolute; inset: 0; background: linear-gradient(#3B3F7A, #F2A65A); opacity: 0; }
.lab-plante-sol { position: absolute; left: calc(12% - 18px); top: 6%; font-size: 34px; line-height: 1; transition: left .2s linear, top .2s linear; }
.lab-plante-morro { position: absolute; left: -10%; right: -10%; bottom: -40px; height: 70px; background: #8CC56B; border-radius: 50% 50% 0 0; }
.lab-plante-semente { --cresce: .86; --dx: 0px; --dy: 0px; position: relative; z-index: 2; margin: -22px auto 8px; width: min(360px, 88%); min-height: 132px; display: flex; flex-direction: column; align-items: center; justify-content: center; font: inherit; color: inherit; cursor: pointer; background: radial-gradient(ellipse at 50% 35%, #F7E3B5, #D9A961); border: 3px solid #A8742F; border-radius: 50% 50% 46% 46% / 58% 58% 42% 42%; box-shadow: 0 6px 0 #A8742F55; transform: scale(var(--cresce)); transition: transform .25s ease; -webkit-tap-highlight-color: transparent; }
.lab-plante-semente:active { transform: scale(calc(var(--cresce) * .97)); }
.lab-plante-semente:focus-visible { outline: 4px solid #F08A5D; outline-offset: 4px; }
.lab-plante-semente[data-estado="coberta"] .lab-plante-trecho { color: #A8742F; }
.lab-plante-trecho { font: 800 60px/1.15 'Nunito', sans-serif; letter-spacing: .04em; color: #2A2018; padding: 10px 14px 0; text-transform: none; }
.lab-plante-dica { font: 700 14px/1.2 'Nunito', sans-serif; color: #7A4B2C; min-height: 0; padding-bottom: 8px; }
.lab-plante-dica:empty { display: none; }
.lab-plante-pips { display: flex; gap: 6px; padding: 4px 0 10px; }
.lab-plante-pips:empty { display: none; }
.lab-plante-pips span { width: 14px; height: 14px; border-radius: 50%; border: 2px solid #A8742F; background: transparent; transition: background-color .25s ease; }
.lab-plante-pips span.cheio { background: #5FA046; border-color: #3E7A2A; }
.lab-plante-semente.lab-plante-voando { transition: transform .65s ease-in, opacity .65s ease-in; transform: translate(var(--dx), var(--dy)) scale(.18); opacity: .35; pointer-events: none; }
/* Horta "de verdade": moldura de madeira, terra em leiras e covas */
.lab-plante-horta { margin: 6px 8px 8px; padding: 10px; border: 8px solid #8B5E3C; border-radius: 12px; background: repeating-linear-gradient(180deg, #6B4226 0 14px, #7D4E2E 14px 28px); box-shadow: inset 0 3px 8px #0006, 0 2px 0 #5C3A20; }
.lab-plante-leiras { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px 8px; }
.lab-plante-cova { position: relative; min-height: 62px; border-radius: 50% 50% 46% 46% / 40% 40% 60% 60%; background: radial-gradient(ellipse at 50% 75%, #2E1A0D 0 34%, #4A2D18 35% 60%, transparent 61%); display: flex; flex-direction: column; align-items: center; justify-content: flex-end; padding-bottom: 2px; }
.lab-plante-cova.plantada { background: radial-gradient(ellipse at 50% 80%, #5A3A22 0 40%, transparent 41%); }
.lab-plante-muda { display: inline-block; font-size: 30px; line-height: 1; transform-origin: 50% 100%; animation: lab-plante-brota .7s ease-out 1; }
@keyframes lab-plante-brota { from { transform: scale(0); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.lab-plante-rotulo { font: 800 11px/1.2 'Nunito', sans-serif; color: #FFF8E8; background: #3E2615CC; border-radius: 6px; padding: 1px 5px; margin-top: 2px; letter-spacing: .02em; }
/* Fim: as palavras plantadas ganham vida (a muda vira o que a palavra é) */
.lab-plante-horta-fim .lab-plante-cova { min-height: 74px; }
.lab-plante-horta-fim .lab-plante-muda { position: absolute; bottom: 20px; animation: lab-plante-some .4s ease-in forwards; animation-delay: calc(.6s + var(--i) * .22s); }
.lab-plante-vida { display: inline-block; font-size: 34px; line-height: 1; opacity: 0; transform: scale(.3); animation: lab-plante-vive .5s cubic-bezier(.2, 1.6, .4, 1) forwards; animation-delay: calc(.8s + var(--i) * .22s); }
@keyframes lab-plante-some { to { opacity: 0; transform: scale(.4); } }
@keyframes lab-plante-vive { to { opacity: 1; transform: scale(1); } }
@media (prefers-reduced-motion: reduce) { .lab-plante-semente, .lab-plante-sol, .lab-plante-pips span { transition: none; } .lab-plante-semente.lab-plante-voando { transition: none; } .lab-plante-muda { animation: none; } .lab-plante-horta-fim .lab-plante-muda { display: none; } .lab-plante-vida { animation: none; opacity: 1; transform: none; } }
.lab-plante-fim-titulo { font: 700 22px/1.2 'Fredoka', 'Nunito', sans-serif; color: #3B3F7A; margin: 4px 0; }
.lab-plante-contador { font: 800 26px/1.2 'Fredoka', 'Nunito', sans-serif; color: #2F6B22; margin: 6px 0; }
.lab-plante-onde { margin: 0 0 4px; font-size: 13px; font-weight: 800; color: #6A5A48; }
.lab-plante-regra { margin: 4px 0 6px; background: #fff; border: 2px dashed #F2B544; border-radius: 10px; padding: 6px 10px; font-size: 15px; }
.lab-plante-extra { margin: 8px 0 0; }
.lab-plante-resumo { margin: 6px 0 10px; padding-left: 18px; }
.lab-plante-trecho-cheio { font: 800 22vmin/1 'Nunito', sans-serif; letter-spacing: .04em; }
.lab-plante-imp .lab-plante-seta { color: #9DB7D8; font-weight: 400; }
@media (max-width: 560px) { .lab-plante-trecho { font-size: 44px; } .lab-plante-ceu { height: 96px; } .lab-plante-leiras { grid-template-columns: repeat(4, 1fr); } }
/* Pílula 2 · Palavras que florescem (?florescem=1) — irmã da Pílula 1: usa o céu/sol/horta .lab-plante-* */
.lab-flor-trilha { display: flex; gap: 6px; list-style: none; padding: 0; margin: 0 0 10px; }
.lab-flor-trilha li { flex: 1; text-align: center; background: #fff; border: 1.5px solid #D6E4F5; border-radius: 10px; padding: 4px 6px; font-weight: 800; font-size: 13px; }
.lab-flor-trilha li[data-estado="agora"] { border: 2.5px solid #1E5FB0; background: #EEF5FD; }
.lab-flor-trilha li[data-estado="feito"] { background: #F4F9F1; border-color: #9BCB86; }
.lab-flor-palco { display: flex; align-items: center; gap: 12px; margin: -24px 10px 8px; position: relative; z-index: 2; }
.lab-flor-planta { flex: none; width: 140px; transform-origin: 50% 90%; transition: transform .6s ease, filter .6s ease; }
.lab-flor-palco .lab-flor-planta { padding: 6px 4px 0; border-radius: 14px; background: linear-gradient(180deg, #EAF6FD 0 55%, #A8D88A 55% 100%); border: 2px solid #CFE6C0; }
.lab-flor-svg { width: 100%; height: auto; display: block; }
.lab-flor-caule, .lab-flor-folha, .lab-flor-botao { transition: all .5s ease; }
.lab-flor-planta.lab-flor-murcha { transform: rotate(-9deg) translateY(3px); filter: saturate(.55) brightness(.95); }
.lab-flor-planta.lab-flor-murcha .lab-flor-folha { transform-box: fill-box; transform-origin: 50% 50%; transform: rotate(28deg); }
.lab-flor-planta.lab-flor-regando::before { content: '💧💧💧'; position: absolute; margin: -6px 0 0 30px; font-size: 18px; animation: lab-flor-chuva .7s ease-in 1; }
@keyframes lab-flor-chuva { from { transform: translateY(-14px); opacity: 0; } 40% { opacity: 1; } to { transform: translateY(26px); opacity: 0; } }
.lab-flor-palavras { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 10px; background: #FFFDF8; border: 2px solid #EFE3CF; border-radius: 14px; padding: 12px 10px; min-height: 120px; }
.lab-flor-linha { display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; }
.lab-flor-palavra { position: relative; text-align: center; font: 800 34px/1.25 'Nunito', sans-serif; letter-spacing: .03em; color: #2A2018; padding: 2px 10px 0 18px; }
.lab-flor-palavra::before { content: attr(data-n); position: absolute; top: 0; left: 0; font: 800 12px/1 'Nunito', sans-serif; color: #fff; background: #1E5FB0; border-radius: 999px; width: 18px; height: 18px; display: flex; align-items: center; justify-content: center; }
.lab-flor-seta { color: #5F86B8; font: 800 24px/1 'Nunito', sans-serif; }
.lab-flor-quebra { color: #A0855C; font-size: 22px; }
.lab-flor-cheio .lab-flor-linha { gap: 3vmin; margin: 2vmin 0; }
.lab-flor-cheio .lab-flor-palavra { font-size: 9vmin; padding-left: 4vmin; }
.lab-flor-cheio .lab-flor-palavra::before { width: 3.2vmin; height: 3.2vmin; font-size: 2vmin; }
.lab-flor-cheio .lab-flor-seta { font-size: 6vmin; }
.lab-flor-imp .lab-flor-linha { justify-content: flex-start; margin: 4px 0; }
.lab-flor-imp .lab-flor-palavra { font-size: 26px; }
.lab-flor-espera { grid-column: 1 / -1; text-align: center; color: #8A7A66; font-weight: 700; }
.lab-flor-regar-area { display: flex; justify-content: center; margin: 4px 0 12px; }
.lab-flor-regar { font: 800 26px/1 'Fredoka', 'Nunito', sans-serif; color: #fff; background: #2C8FD6; border: 0; border-radius: 999px; padding: 18px 46px; min-height: 64px; box-shadow: 0 5px 0 #1C6BA6; cursor: pointer; }
.lab-flor-regar:active:not(:disabled) { transform: translateY(3px); box-shadow: 0 2px 0 #1C6BA6; }
.lab-flor-regar:disabled { background: #B9C7D3; box-shadow: none; cursor: default; }
.lab-flor-regar:focus-visible { outline: 4px solid #F08A5D; outline-offset: 3px; }
.lab-flor-msg { margin: 4px 0 8px; background: #FBF3E3; border: 1.5px solid #E8D3A6; border-radius: 10px; padding: 6px 10px; font-weight: 700; }
.lab-flor-cheio { display: block; text-align: center; }
.lab-flor-grande { width: 160px; margin: 0 auto; }
.lab-flor-vitoria .lab-flor-flor { transform-box: fill-box; transform-origin: 50% 50%; animation: lab-flor-abre .9s cubic-bezier(.2, 1.6, .4, 1) 1; }
@keyframes lab-flor-abre { from { transform: scale(.2) rotate(-40deg); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.lab-flor-jardim .lab-plante-leiras { grid-template-columns: repeat(6, 1fr); }
.lab-flor-jardim .lab-plante-vida { animation-delay: calc(.3s + var(--i) * .18s); }
@media (prefers-reduced-motion: reduce) { .lab-flor-planta { transition: none; } .lab-flor-planta.lab-flor-regando::before, .lab-flor-vitoria .lab-flor-flor { animation: none; } }
@media (max-width: 560px) { .lab-flor-palco { flex-direction: column; } .lab-flor-palavra { font-size: 24px; padding-left: 16px; } .lab-flor-seta { font-size: 18px; } .lab-flor-trilha li { font-size: 11px; } .lab-flor-jardim .lab-plante-leiras { grid-template-columns: repeat(3, 1fr); } }
/* Pílula 2 · Os 4 canteiros do Tito (fases) — o céu muda com a hora do dia */
.lab-flor-mapa { margin: 0 0 10px; }
.lab-flor-mapa-titulo { margin: 0 0 6px; font-weight: 800; font-size: 14px; color: #6A5A48; }
.lab-flor-canteiros { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.lab-flor-canteiro { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 4px; border-radius: 12px; border: 2px solid #E3D3B8; background: #FBF7EF; font: 700 12px/1.25 'Nunito', sans-serif; color: #4A3F33; text-align: center; }
button.lab-flor-canteiro:not(:disabled) { cursor: pointer; }
.lab-flor-canteiro b { font-size: 13px; }
.lab-flor-canteiro-icone { font-size: 26px; line-height: 1; }
.lab-flor-terra { display: inline-block; width: 34px; height: 16px; margin: 5px 0; border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; background: radial-gradient(ellipse at 50% 30%, #9A6A45, #5C3A20); }
.lab-flor-canteiro-estado { font-weight: 800; color: #1E5FB0; min-height: 1em; }
.lab-flor-canteiro[data-estado="agora"] { border: 3px solid #1E5FB0; background: #EEF5FD; }
.lab-flor-canteiro[data-estado="florido"] { border-color: #9BCB86; background: #F4F9F1; }
.lab-flor-canteiro[data-estado="depois"] { opacity: .75; }
.lab-flor-mapa-fim { margin: 0 0 10px; }
.lab-flor[data-dia="1"] .lab-plante-ceu { background: linear-gradient(#BFE3FA, #FFF3C4); }
.lab-flor[data-dia="2"] .lab-plante-ceu { background: linear-gradient(#9CC9EE, #FFD49A); }
.lab-flor[data-dia="3"] .lab-plante-ceu { background: linear-gradient(#8FA6D9, #F7A8A0); }
.lab-flor[data-dia="4"] .lab-plante-ceu { background: linear-gradient(#5E5A9E, #F59E6B); }
@media (max-width: 560px) { .lab-flor-canteiros { grid-template-columns: repeat(2, 1fr); } }
/* Pílula 3 · Sementes estranhas (?sementes=1) — o tempo é a estação das chuvas (não o pôr do sol) */
.lab-sem { --estacao: 0; }
.lab-sem-cena { padding: 0 0 10px; overflow: hidden; }
.lab-sem-ceu { position: relative; height: 120px; border-radius: 14px 14px 0 0; overflow: hidden; background: linear-gradient(#8FA3B8, #C9D7E2); }
.lab-sem-ceu::after { content: ''; position: absolute; inset: 0; background: linear-gradient(#9CD3F5, #EAF6FD); opacity: var(--estacao); }
/* A chuva passa e o sol chega aos poucos: chuva forte some até a metade; a fina, até 85%; o sol sobe do chão a partir de 20%. */
.lab-sem-nuvem { position: absolute; top: 4px; left: 28%; font-size: 52px; z-index: 2; opacity: clamp(0, calc(1.15 - var(--estacao) * 1.25), 1); transform: translateX(calc(var(--estacao) * 260px)) scale(calc(1 - var(--estacao) * .45)); }
.lab-sem-nuvem2 { left: 8%; top: 18px; font-size: 38px; opacity: clamp(0, calc(1 - var(--estacao) * 1.6), .9); transform: translateX(calc(var(--estacao) * -120px)); }
.lab-sem-chuva { position: absolute; inset: 0; z-index: 1; opacity: clamp(0, calc((.5 - var(--estacao)) * 3), 1); background-image: repeating-linear-gradient(105deg, transparent 0 12px, #3E8FD08C 12px 15px); animation: lab-sem-chover .6s linear infinite; }
.lab-sem-chuva-fina { opacity: clamp(0, calc((.85 - var(--estacao)) * 3), .8); background-image: repeating-linear-gradient(105deg, transparent 0 34px, #5BB4F044 34px 35px); }
@keyframes lab-sem-chover { from { background-position: 0 0; } to { background-position: -10px 30px; } }
.lab-sem-sol { position: absolute; top: 8px; right: 12%; font-size: calc(26px + var(--estacao) * 18px); z-index: 2; opacity: clamp(0, calc(var(--estacao) * 2 - .4), 1); transform: translateY(calc((1 - var(--estacao)) * 70px)); filter: drop-shadow(0 0 calc(var(--estacao) * 14px) #FFD54A); }
.lab-sem-chao { position: absolute; left: 0; right: 0; bottom: 0; height: 22px; z-index: 3; background: color-mix(in srgb, #5C3A20 calc((1 - var(--estacao)) * 100%), #C9A26A); }
.lab-sem-chao::after { content: ''; position: absolute; inset: 0; opacity: clamp(0, calc((var(--estacao) - .75) * 4), 1); background-image: repeating-linear-gradient(70deg, transparent 0 22px, #8A6A3A 22px 23px), repeating-linear-gradient(-60deg, transparent 0 31px, #8A6A3A 31px 32px); }
.lab-sem-estacao-txt { margin: 6px 10px 2px; font-weight: 800; font-size: 15px; color: #4A6A86; }
.lab-sem[data-etapa="2"] .lab-sem-estacao-txt, .lab-sem[data-etapa="3"] .lab-sem-estacao-txt { color: #9A6A1A; }
.lab-sem[data-fase="fim"] .lab-sem-estacao-txt { color: #8A6A3A; }
/* Peneira de palha com as sementes soltas, cada uma num lugar e virada para um lado (fundador, 18/10). */
.lab-sem-peneira { position: relative; width: min(calc(100% - 20px), 440px); aspect-ratio: 1.9 / 1; margin: 12px auto 10px; border-radius: 50%; border: 9px solid #B8874A; box-shadow: inset 0 8px 16px #00000030, 0 6px 0 #8E6232;
  background: repeating-linear-gradient(45deg, #0000 0 7px, #A87C4238 7px 9px), repeating-linear-gradient(-45deg, #0000 0 7px, #A87C4238 7px 9px), radial-gradient(ellipse at 50% 40%, #F3E0B6, #DDBB7E); }
.lab-sem-semente { position: absolute; left: var(--x); top: var(--y); width: 58px; height: 58px; margin: -29px 0 0 -29px; padding: 0; border: 0; border-radius: 50%; background: transparent; font-size: 40px; line-height: 1; cursor: pointer; transform: rotate(var(--r)); filter: drop-shadow(0 3px 2px #00000045); transition: transform .15s ease, opacity .2s ease; }
.lab-sem-semente:not(:disabled):hover { transform: rotate(var(--r)) translateY(-3px) scale(1.08); }
.lab-sem-semente, .lab-sem-semente:disabled { color: #000; } /* o navegador clareia o texto de botão desativado e o emoji da semente saía apagado */
.lab-sem-semente:disabled { cursor: default; }
.lab-sem-semente[data-estado="cesto"]:disabled { opacity: .8; }
.lab-sem-semente[data-estado="aberta"] { transform: rotate(var(--r)) scale(1.25); background: #FFFFFF88; box-shadow: 0 0 0 3px #1E5FB0; }
.lab-sem-semente[data-estado="espera"] { opacity: .45; filter: grayscale(.6); }
.lab-sem-semente:focus-visible { outline: 4px solid #F08A5D; outline-offset: 2px; }
.lab-sem-semente[data-estado="plantada"] { opacity: 0; pointer-events: none; }
.lab-sem-palavra { min-height: 96px; margin: 6px 10px; display: flex; align-items: center; justify-content: center; background: #FFFDF8; border: 2px solid #EFE3CF; border-radius: 14px; }
.lab-sem-texto { font: 800 56px/1.15 'Nunito', sans-serif; letter-spacing: .05em; color: #2A2018; text-transform: none; }
.lab-sem-espera { color: #8A7A66; font-weight: 700; }
.lab-sem-palavra.lab-sem-plantando .lab-sem-texto { animation: lab-sem-planta .6s ease-in 1 forwards; }
@keyframes lab-sem-planta { to { transform: translateY(40px) scale(.3); opacity: 0; } }
.lab-sem-brota { animation: lab-plante-brota .7s ease-out 1; }
.sem-p-sil { border-radius: 6px; animation: lab-sem-realce 2.4s ease-in-out infinite; animation-delay: calc(var(--k) * .8s); }
@keyframes lab-sem-realce { 0%, 30% { background: #FFE58A; } 31%, 100% { background: transparent; } }
.sem-p-coda { text-decoration: none; border-bottom: 5px solid #E0A33A; }
.sem-p-nasal, .sem-p-dig { font-weight: 800; background: #FFE58A; border-radius: 6px; padding: 0 2px; }
.sem-p-enc { outline: 3px solid #1E5FB0; border-radius: 6px; padding: 0 2px; }
.lab-sem-botoes { display: flex; justify-content: center; gap: 14px; margin: 4px 0 12px; flex-wrap: wrap; }
.lab-sem-plantar, .lab-sem-naoainda { font: 800 22px/1 'Fredoka', 'Nunito', sans-serif; border-radius: 999px; padding: 16px 30px; min-height: 60px; border: 0; cursor: pointer; }
.lab-sem-plantar { color: #fff; background: #5FA046; box-shadow: 0 5px 0 #3E7A2A; }
.lab-sem-naoainda { color: #4A3F33; background: #F3F0EC; box-shadow: 0 5px 0 #C9BBA6; }
.lab-sem-plantar:disabled, .lab-sem-naoainda:disabled { background: #D5D9DD; color: #fff; box-shadow: none; cursor: default; }
.lab-sem-plantar:focus-visible, .lab-sem-naoainda:focus-visible { outline: 4px solid #F08A5D; outline-offset: 3px; }
.lab-sem-canteiro { margin: 6px 10px 6px; }
.lab-sem-vitoria .lab-plante-muda { animation: lab-plante-vive .6s cubic-bezier(.2, 1.6, .4, 1) 1; }
.lab-sem-cheio { font: 800 16vmin/1.1 'Nunito', sans-serif; letter-spacing: .05em; }
.lab-sem-imp { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.lab-sem-imp span { border: 2px dashed #A8742F; border-radius: 12px; padding: 18px 6px; text-align: center; font: 800 28px/1 'Nunito', sans-serif; }
@media (prefers-reduced-motion: reduce) { .lab-sem-chuva, .sem-p-sil, .lab-sem-brota, .lab-sem-vitoria .lab-plante-muda, .lab-sem-palavra.lab-sem-plantando .lab-sem-texto { animation: none; } .sem-p-sil { background: #FFE58A55; } }
@media (max-width: 560px) { .lab-sem-texto { font-size: 40px; } .lab-sem-semente { width: 48px; height: 48px; margin: -24px 0 0 -24px; font-size: 32px; } }
/* Pílulas: sugestão pelo último Simulado (só sugere; o tutor escolhe) */
.lab-pil-sugestao { background: #EEF5FD; border: 2px solid #9DB7D8; border-radius: 12px; padding: 8px 12px; margin: 0 0 10px; font-size: 15px; }
.lab-pil-sugestao p { margin: 2px 0; }
.lab-pil-sugestao[data-estado="sem-aluno"], .lab-pil-sugestao[data-estado="sem-simulado"] { background: #FBF7EF; border-color: #E8D3A6; }
.lab-pilula[data-sugerida="true"] { position: relative; box-shadow: 0 0 0 3px #1E5FB0; }
.lab-pilula[data-sugerida="true"]::before { content: '👉 sugerida'; position: absolute; top: -10px; right: 8px; background: #1E5FB0; color: #fff; font: 800 12px/1 'Nunito', sans-serif; padding: 4px 8px; border-radius: 999px; }
/* Pílulas: explicação antes de começar, objetivo escrito, "Agora" e impressão (doc 62, pedidos do fundador 17/10) */
.lab-pil-explicacao { background: #fff; border: 2px solid #B9D2F0; border-radius: 16px; padding: 12px 16px; margin: 4px 0 12px; text-transform: none; }
.lab-pil-exp-titulo { font: 700 20px/1.2 'Fredoka', 'Nunito', sans-serif; color: #123F80; margin: 0 0 8px; }
.lab-pil-exp { margin: 0; display: grid; gap: 8px; }
.lab-pil-exp > div { display: grid; grid-template-columns: 170px 1fr; gap: 10px; }
.lab-pil-exp dt { font-weight: 800; color: #3A2418; }
.lab-pil-exp dd { margin: 0; }
.lab-pil-exp ol { margin: 0; padding-left: 20px; }
@media (max-width: 560px) { .lab-pil-exp > div { grid-template-columns: 1fr; gap: 2px; } }
.lab-pilula > span:nth-of-type(2) { font-weight: 700; }
.lab-pil-objetivo { background: #EEF5FD; border: 2px solid #B9D2F0; border-radius: 16px; padding: 10px 14px; margin: 0 0 12px; }
.lab-pil-obj-titulo { margin: 0 0 6px; font-size: 16px; }
.lab-pil-metas { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.lab-pil-metas li { display: flex; justify-content: space-between; gap: 10px; align-items: center; background: #fff; border-radius: 10px; padding: 6px 10px; border: 1.5px solid #D6E4F5; }
.lab-pil-meta-nome { font-weight: 700; }
.lab-pil-meta-estado { font-weight: 800; font-size: 14px; white-space: nowrap; color: #8A7A66; }
.lab-pil-metas li[data-estado="agora"] { border-color: #1E5FB0; box-shadow: inset 4px 0 0 #1E5FB0; }
.lab-pil-metas li[data-estado="agora"] .lab-pil-meta-estado { color: #1E5FB0; }
.lab-pil-metas li[data-estado="feito"] { background: #F4F9F1; border-color: #9BCB86; }
.lab-pil-metas li[data-estado="feito"] .lab-pil-meta-estado { color: #2F6B22; }
.lab-pil-agora { flex: none; margin: 0; font: 700 16px/1 'Fredoka', 'Nunito', sans-serif; color: #fff; background: #F08A5D; border-radius: 999px; padding: 8px 12px; white-space: nowrap; }
.lab-pil-botoes { display: inline-flex; gap: 8px; flex-wrap: wrap; }
.lab-treino-imprimir { text-transform: none; background: #FBF3E3; border-radius: 10px; padding: 6px 10px; }
#lab-pil-impressao { display: none; }
.lab-imp-cab { font: 700 12px 'Nunito', sans-serif; color: #777; margin: 0 0 10mm; }
.lab-imp-frase { font: 800 40px/1.6 'Nunito', sans-serif; letter-spacing: .03em; }
.lab-imp-grade { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 40px; font: 800 40px/1.3 'Nunito', sans-serif; }
.lab-imp-bloco { break-inside: avoid; margin: 0 0 10mm; }
.lab-imp-rodada { font: 700 13px 'Nunito', sans-serif; color: #777; margin: 0; }
.lab-imp-palavra { font: 800 36px/1.4 'Nunito', sans-serif; margin: 2px 0; }
@media print {
  body.lab-imprimindo-pilula > *:not(#lab-pil-impressao) { display: none !important; }
  body.lab-imprimindo-pilula #lab-pil-impressao { display: block; text-transform: none; }
  html, body.lab-imprimindo-pilula { height: auto !important; overflow: visible !important; background: #fff !important; }
}

/* Pílula 4 · De volta ao Sítio (18/10/2026) — o caminho, o Tito oficial e a ventania como relógio (nunca tempestade) */
.lab-sit { --vento: 0; }
.lab-sit-paisagem { position: relative; height: 170px; border-radius: 14px; overflow: hidden; background: linear-gradient(#BFE3F7, #EAF6FD 60%, #CFE6B0 60%, #B6D68E); }
.lab-sit-paisagem::before { content: ''; position: absolute; inset: 0; background: #9FB3C4; opacity: calc(var(--vento) * .3); z-index: 1; pointer-events: none; }
.lab-sit-estrada { position: absolute; left: 3%; right: 3%; bottom: 40px; height: 14px; border-radius: 7px; background: #D9BC8C; box-shadow: inset 0 -3px 0 #C4A06A; z-index: 1; }
.lab-sit-ponto { position: absolute; left: var(--x); top: 0; bottom: 0; width: 0; z-index: 2; }
.lab-sit-marco { position: absolute; bottom: 56px; left: 0; transform: translateX(-50%); font-size: 26px; line-height: 1; }
.lab-sit-ponto small { position: absolute; bottom: 10px; left: 0; transform: translateX(-50%); white-space: nowrap; font-size: 11px; font-weight: 800; color: #6A7A4A; }
.lab-sit-ponto.passou small { color: #2F6B22; }
.lab-sit-ponto[data-id="cerca"] .lab-sit-marco { width: 42px; height: 26px; background: linear-gradient(transparent 7px, #A8742F 7px 10px, transparent 10px 17px, #A8742F 17px 20px, transparent 20px), repeating-linear-gradient(90deg, #8E6232 0 4px, transparent 4px 12px); }
.lab-sit-ponto[data-id="porteira"] .lab-sit-marco { width: 44px; height: 32px; background: linear-gradient(90deg, #8E6232 0 5px, transparent 5px calc(100% - 5px), #8E6232 calc(100% - 5px)), repeating-linear-gradient(transparent 0 6px, #B8874A 6px 9px); }
.lab-sit-tito { position: absolute; left: var(--tx); bottom: 42px; height: 96px; width: auto; translate: -50% 0; transition: left .45s ease-in-out; z-index: 4; filter: drop-shadow(0 3px 2px #00000033); }
.lab-sit-tito.andando { animation: lab-sit-passo .15s ease-in-out 3 alternate; }
@keyframes lab-sit-passo { to { translate: -50% -5px; } }
.lab-sit-vento { position: absolute; left: 0; top: 0; bottom: 0; width: calc(6% + var(--vento) * 70%); background: linear-gradient(90deg, #DCE8F2CC, #DCE8F200); z-index: 3; pointer-events: none; }
.lab-sit-folha { position: absolute; left: calc(var(--k) * 8%); top: calc(12px + var(--k) * 11px); font-size: 18px; opacity: clamp(0, calc(var(--vento) * 3 - var(--k) * .3), 1); animation: lab-sit-voa calc(2.6s - var(--vento) * 1.2s) linear infinite; animation-delay: calc(var(--k) * -.37s); }
@keyframes lab-sit-voa { from { translate: 0 0; rotate: 0deg; } to { translate: 150px 14px; rotate: 200deg; } }
.lab-sit-vento-txt { margin: 6px 4px 2px; font-weight: 800; font-size: 15px; color: #4A6A86; }
.lab-sit[data-etapa="2"] .lab-sit-vento-txt { color: #5A5A86; }
.lab-sit-frase { min-height: 96px; margin: 8px 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; background: #FFFDF8; border: 2px solid #EFE3CF; border-radius: 14px; padding: 8px 12px; text-align: center; }
.lab-sit-num { font-size: 12px; font-weight: 800; color: #8A7A66; }
.lab-sit-texto { font: 800 34px/1.25 'Nunito', sans-serif; letter-spacing: .02em; color: #2A2018; }
.lab-sit-espera { color: #8A7A66; font-weight: 700; }
.lab-sit-botoes { display: flex; justify-content: center; margin: 4px 0 12px; }
.lab-sit-avancar { font: 800 24px/1 'Fredoka', 'Nunito', sans-serif; border-radius: 999px; padding: 16px 38px; min-height: 62px; border: 0; color: #fff; background: #2E7FC4; box-shadow: 0 5px 0 #1C5A90; cursor: pointer; }
.lab-sit-avancar:disabled { background: #D5D9DD; box-shadow: none; cursor: default; }
.lab-sit-avancar:focus-visible { outline: 4px solid #F08A5D; outline-offset: 3px; }
.lab-sit-desafio { display: block; margin: 6px 0; }
.lab-sit-cheio { font: 800 9vmin/1.25 'Nunito', sans-serif; }
.lab-sit-mini { display: flex; align-items: flex-end; justify-content: center; gap: 10px; margin: 6px 0; flex-wrap: wrap; }
.lab-sit-mini-caminho { display: flex; align-items: center; gap: 4px; font-size: 22px; }
.lab-sit-mini-caminho span { opacity: .4; }
.lab-sit-mini-caminho span.passou { opacity: 1; }
.lab-sit-mini-caminho i { color: #C4A06A; font-style: normal; }
.lab-sit-mini img { height: 70px; width: auto; }
.lab-sit-segura img { rotate: -7deg; }
.lab-sit-chegou img { animation: lab-sit-pulo .45s ease-out 2; }
@keyframes lab-sit-pulo { 50% { translate: 0 -10px; } }
.lab-sit-lenta td { background: #FFF4D6; }
@media (prefers-reduced-motion: reduce) { .lab-sit-tito { transition: none; } .lab-sit-tito.andando, .lab-sit-folha, .lab-sit-chegou img { animation: none; } }
@media (max-width: 560px) { .lab-sit-paisagem { height: 150px; } .lab-sit-tito { height: 78px; } .lab-sit-marco { font-size: 22px; } .lab-sit-ponto small { font-size: 10px; } .lab-sit-texto { font-size: 24px; } .lab-sit-avancar { font-size: 20px; padding: 14px 28px; } }
.lab-sit-titulo { display: block; font-size: .8em; color: #5A4A36; margin-bottom: 2px; }
.lab-sit-texto.lab-sit-longa { font-size: 27px; }
.lab-sit-colar { width: 100%; box-sizing: border-box; font: 600 15px/1.4 'Nunito', sans-serif; padding: 8px; border: 2px solid #EFE3CF; border-radius: 10px; }
.lab-sit-ritmos { border: 1.5px solid #E8D3A6; border-radius: 10px; padding: 6px 10px; margin: 8px 0; }
.lab-sit-ritmos legend { font-weight: 800; font-size: 13px; color: #6A5A48; }
.lab-sit-ritmo { display: block; margin: 4px 0; }
.lab-sit-previa { margin: 6px 0; padding-left: 22px; font-weight: 700; }
.lab-sit-previa .lab-sit-titulo { display: inline; font-size: 1em; }
@media (max-width: 560px) { .lab-sit-texto.lab-sit-longa { font-size: 20px; } }

/* Pílula 5 · A voz do vento (19/10/2026) — mensagem numa folha limpa, pontuação bem visível, brisa como relógio */
.lab-ven { --vento: 0; }
.lab-ven-paisagem { position: relative; height: 120px; border-radius: 14px; overflow: hidden; background: linear-gradient(#CFE9F8, #F1F9FD 70%, #CFE6B0 70%, #B6D68E); }
.lab-ven-brisa { position: absolute; inset: 0; pointer-events: none; }
.lab-ven-folha { position: absolute; left: calc(var(--k) * 11%); top: calc(10px + var(--k) * 8px); font-size: 18px; opacity: clamp(0, calc(.25 + var(--vento) * 2.5 - var(--k) * .3), 1); animation: lab-ven-voa calc(3s - var(--vento) * 1.4s) linear infinite; animation-delay: calc(var(--k) * -.41s); }
@keyframes lab-ven-voa { from { translate: 0 0; rotate: 0deg; } to { translate: 160px 10px; rotate: 160deg; } }
.lab-ven-tito { position: absolute; left: 4%; bottom: 6px; height: 100px; width: auto; filter: drop-shadow(0 3px 2px #00000033); z-index: 2; }
.lab-ven-enviadas { position: absolute; right: 10px; top: 8px; display: flex; gap: 4px; font-size: 18px; z-index: 2; }
.lab-ven-enviadas span { opacity: .3; filter: grayscale(.7); }
.lab-ven-enviadas span.foi { opacity: 1; filter: none; }
.lab-ven-onde { margin: 6px 4px 2px; font-weight: 800; font-size: 14px; color: #4A6A86; }
.lab-ven-mensagem { min-height: 104px; margin: 8px 0; display: flex; align-items: center; justify-content: center; background: #FBFFF5; border: 3px solid #A9CF7F; border-radius: 26px 6px 26px 6px; padding: 10px 16px; text-align: center; box-shadow: 0 3px 0 #8DB866; transition: transform .45s ease-in, opacity .45s ease-in; }
.lab-ven-mensagem.voando { transform: translateX(110%) rotate(8deg) scale(.6); opacity: 0; }
.lab-ven-texto { font: 800 32px/1.3 'Nunito', sans-serif; letter-spacing: .02em; color: #1F2A18; }
.lab-ven-sinal { color: #C2410C; font-size: 1.25em; padding: 0 .04em; }
.lab-ven-espera { color: #6A7A5A; font-weight: 700; }
.lab-ven-botoes { display: flex; justify-content: center; margin: 4px 0 12px; }
.lab-ven-soprar { font: 800 24px/1 'Fredoka', 'Nunito', sans-serif; border-radius: 999px; padding: 16px 38px; min-height: 62px; border: 0; color: #fff; background: #3D9A6A; box-shadow: 0 5px 0 #2A7350; cursor: pointer; }
.lab-ven-soprar:disabled { background: #D5D9DD; box-shadow: none; cursor: default; }
.lab-ven-soprar:focus-visible { outline: 4px solid #F08A5D; outline-offset: 3px; }
.lab-ven-rodada { margin: 0 0 4px; font-size: 14px; color: #4A3F33; }
.lab-ven-marca { font: 800 18px/1 'Nunito', sans-serif; color: #C2410C; }
.lab-ven-apos { color: #6A4AA0; font-weight: 800; }
.lab-ven-cheio { font: 800 8vmin/1.3 'Nunito', sans-serif; }
.lab-ven-mini { display: flex; align-items: flex-end; justify-content: center; gap: 10px; margin: 6px 0; }
.lab-ven-mini i { font-style: normal; font-size: 22px; opacity: .3; }
.lab-ven-mini i.foi { opacity: 1; }
.lab-ven-mini img { height: 70px; width: auto; }
.lab-ven-calma i.foi { animation: lab-ven-calma 2.4s ease-in-out infinite; animation-delay: calc(var(--k, 0) * .2s); }
@keyframes lab-ven-calma { 50% { translate: 4px -3px; } }
@media (prefers-reduced-motion: reduce) { .lab-ven-folha, .lab-ven-calma i.foi { animation: none; } .lab-ven-mensagem { transition: none; } }
@media (max-width: 560px) { .lab-ven-texto { font-size: 24px; } .lab-ven-soprar { font-size: 20px; padding: 14px 28px; } .lab-ven-tito { height: 84px; } }

/* Pílula 6 · Colheita da história (20/10/2026) — legibilidade primeiro: texto parado, reto, numa placa clara; vento só no céu */
.lab-col { --vento: 0; }
.lab-col-ceu { position: relative; height: 92px; border-radius: 14px 14px 0 0; overflow: hidden; background: linear-gradient(#CFE9F8, #EEF7FC); }
.lab-col-ceu::after { content: ''; position: absolute; inset: 0; background: #9FB3C4; opacity: calc(var(--vento) * .28); pointer-events: none; }
.lab-col-vento { position: absolute; left: 0; top: 0; bottom: 0; width: calc(10% + var(--vento) * 85%); background: linear-gradient(90deg, #DCE8F2CC, #DCE8F200); }
.lab-col-folha { position: absolute; left: calc(var(--k) * 9%); top: calc(8px + (var(--k) * 7px)); font-size: 18px; opacity: clamp(0, calc(.2 + var(--vento) * 2.6 - var(--k) * .28), 1); animation: lab-col-voa calc(2.8s - var(--vento) * 1.3s) linear infinite; animation-delay: calc(var(--k) * -.33s); }
@keyframes lab-col-voa { from { translate: 0 0; rotate: 0deg; } to { translate: 140px 12px; rotate: 180deg; } }
.lab-col-tito { position: absolute; right: 4%; bottom: -6px; height: 92px; width: auto; filter: drop-shadow(0 3px 2px #00000033); }
.lab-col-canteiro { background: #7A5230; border-radius: 0 0 16px 16px; padding: 12px; display: grid; gap: 10px; box-shadow: inset 0 0 0 4px #5E3D22; }
.lab-col-placa { position: relative; background: #FFFDF6; border-radius: 10px; padding: 16px 20px; color: #1F1A14; }
.lab-col-titulo { margin: 0 0 8px; font: 800 22px/1.3 'Nunito', sans-serif; letter-spacing: .02em; text-align: center; }
.lab-col-texto { margin: 0; font: 700 24px/1.75 'Nunito', sans-serif; letter-spacing: .02em; word-spacing: .12em; max-width: 46ch; margin-inline: auto; }
.lab-col-placa[data-coberta="sim"] .lab-col-titulo, .lab-col-placa[data-coberta="sim"] .lab-col-texto { visibility: hidden; }
.lab-col-placa[data-coberta="sim"]::after { content: 'A história aparece quando a colheita começar.'; position: absolute; inset: 0; display: grid; place-items: center; color: #6A5A48; font-weight: 700; }
.lab-col-p.tocavel { cursor: pointer; border-radius: 4px; outline: 1px dashed #C79A5B; outline-offset: 1px; }
.lab-col-p.tocavel:hover, .lab-col-p.tocavel:focus-visible { background: #FFE58A; outline: 2px solid #A8742F; }
.lab-col-pergunta { background: #F3E6CF; border: 2px dashed #C79A5B; border-radius: 10px; padding: 8px 14px; color: #6A5A48; font-weight: 700; font-size: 14px; }
.lab-col-pergunta[data-estado="aberta"] { background: #FFFFFF; border: 3px solid #2E7FC4; color: #123F80; font: 800 24px/1.35 'Nunito', sans-serif; text-align: center; }
.lab-col-brotos { display: flex; justify-content: space-around; font-size: 18px; line-height: 1; }
.lab-col.lab-col-chegou .lab-col-vento { width: 100%; }
.lab-col.lab-col-calmo .lab-col-folha { animation-duration: 6s; }
.lab-col-botoes { display: flex; justify-content: center; margin: 4px 0 12px; }
.lab-col-colher { font: 800 24px/1 'Fredoka', 'Nunito', sans-serif; border-radius: 999px; padding: 16px 38px; min-height: 62px; border: 0; color: #fff; background: #B7791F; box-shadow: 0 5px 0 #8A5A12; cursor: pointer; }
.lab-col-colher:disabled { background: #D5D9DD; box-shadow: none; cursor: default; }
.lab-col-colher:focus-visible { outline: 4px solid #F08A5D; outline-offset: 3px; }
.lab-col-cheio { font: 700 4.6vmin/1.6 'Nunito', sans-serif; text-align: left; }
.lab-col-mini { display: flex; align-items: flex-end; justify-content: center; gap: 10px; margin: 6px 0; font-size: 22px; }
.lab-col-mini img { height: 70px; width: auto; }
.lab-col-viva span { animation: lab-col-cresce .6s ease-out 1; display: inline-block; transform-origin: bottom; }
@keyframes lab-col-cresce { from { transform: scaleY(.4); opacity: .4; } }
@media (prefers-reduced-motion: reduce) { .lab-col-folha, .lab-col-viva span { animation: none; } }
@media (max-width: 560px) { .lab-col-texto { font-size: 19px; } .lab-col-titulo { font-size: 18px; } .lab-col-placa { padding: 12px; } .lab-col-pergunta[data-estado="aberta"] { font-size: 19px; } .lab-col-colher { font-size: 20px; padding: 14px 28px; } .lab-col-tito { height: 76px; } }

/* Pílula 6 · horta visível; palavras que começam como BROTO e, tocadas pelo tutor, aparecem COLHIDAS (fundador, 20/10/2026).
   Broto = letras verdes + folhinha desenhada (sem emoji, para não poluir a leitura). Colhida = dourada. A palavra NÃO muda de
   tamanho nem de lugar: a leitura da criança não se mexe. O cesto embaixo enche conforme ela colhe. */
.lab-col { --colhido: 0; }
.lab-col-canteiro { background: repeating-linear-gradient(90deg, #6B4423 0 3px, #75502C 3px 9px); box-shadow: inset 0 0 0 7px #4E3018, inset 0 0 0 9px #8E6232; border-radius: 0 0 18px 18px; padding: 16px; gap: 12px; }
.lab-col-cerca { height: 16px; margin: -6px -2px 0; background: linear-gradient(transparent 5px, #B8874A 5px 8px, transparent 8px), repeating-linear-gradient(90deg, #C79A5B 0 6px, transparent 6px 22px); border-radius: 4px; }
.lab-col-placa { background: #F6EAD2; border-radius: 12px; box-shadow: inset 0 0 0 2px #E4CC9F; }
.lab-col-titulo, .lab-col-texto { background-image: repeating-linear-gradient(to bottom, transparent 0 calc(1.75em - 6px), #E2C796 calc(1.75em - 6px) 1.75em); }
.lab-col-titulo { line-height: 1.75; }
.lab-col-p { position: relative; border-radius: 6px; transition: color .35s ease, background-color .35s ease; }
/* broto = letras verdes + tracinho verde EMBAIXO. Nada em cima das letras: marca em cima parece acento (Ȯ, É) e confunde. */
.lab-col-brotando .lab-col-p { color: #2B6A1C; box-shadow: inset 0 -2px 0 #8FC46A; }
.lab-col-p.tocavel { cursor: pointer; outline: none; }
.lab-col-p.tocavel:hover { background-color: #EEF6E4; }
.lab-col[data-fase="tempo"] .lab-col-p.tocavel { outline: 1px dashed #C79A5B; outline-offset: 1px; }
.lab-col-p.colhida, .lab-col-brotando .lab-col-p.colhida { color: #4A3410; background-color: #FBE3A0; box-shadow: inset 0 -3px 0 #D9A441; }
.lab-col-hortalicas { display: flex; justify-content: space-around; align-items: flex-end; min-height: 38px; }
.lab-col-hortalicas > span { font-size: 24px; line-height: 1; opacity: calc(1 - var(--colhido) * .6); transition: opacity .4s ease; }
.lab-col-fim { display: flex; align-items: flex-end; gap: 12px; margin: 6px 0; }
.lab-col-fim-texto { flex: 1; min-width: 0; background: #F6EAD2; border-radius: 10px; padding: 10px 12px; font: 700 15px/2.2 'Nunito', sans-serif; color: #2B6A1C; }
.lab-col-fim img { height: 70px; width: auto; }
@media (prefers-reduced-motion: reduce) { .lab-col-p, .lab-col-hortalicas span, .lab-col-cesto { transition: none; } }
.lab-col-canteiro { grid-template-columns: minmax(0, 1fr); }
.lab-col-canteiro > * { min-width: 0; }

/* Pílula 6 · ao terminar uma linha, as palavras colhidas caem no cesto (fundador, 20/10/2026). A cópia voa pela margem
   direita; a original fica no lugar, clarinha como palha (o texto não se mexe e dá para reler). */
.lab-col-brotando .lab-col-p.colhida.no-cesto { color: #8C7244; background-color: transparent; box-shadow: inset 0 -2px 0 #E2C796; }
.lab-col-voa { position: fixed; z-index: 60; pointer-events: none; color: #4A3410; background: #FBE3A0; border: 2px solid #D9A441; border-radius: 999px; padding: 2px 8px; font: 800 15px/1.2 'Nunito', sans-serif; white-space: nowrap; }
.lab-col-cesto.pulo { animation: lab-col-pulo .35s ease-out 1; }
@keyframes lab-col-pulo { 50% { translate: 0 -4px; } }
@media (prefers-reduced-motion: reduce) { .lab-col-cesto.pulo { animation: none; } }

/* Pílula 6 · brotinho 🌱 em cima de cada palavra (fundador, 20/10/2026), numa camada à parte: não muda a área de toque e fica
   no espaço entre as linhas, acima dos acentos. Colhida = o broto é arrancado (some). */
.lab-col-placa { position: relative; }
.lab-col-brotos-camada { position: absolute; inset: 0; pointer-events: none; }
.lab-col-placa[data-coberta="sim"] .lab-col-brotos-camada { visibility: hidden; }
.lab-col-broto { position: absolute; line-height: 1; translate: -50% 0; transition: opacity .3s ease, transform .3s ease; }
.lab-col-broto.colhido { opacity: 0; transform: translateY(-5px) scale(.6); }
/* Cesto de palha que enche de verdade: as hortaliças empilham de baixo para cima conforme os feixes chegam. */
.lab-col-hortalicas { align-items: flex-end; min-height: 72px; }
.lab-col-cesto { position: relative; width: 88px; height: 70px; flex: none; }
.lab-col-cesto::before { content: ''; position: absolute; left: 16px; right: 16px; top: 0; height: 36px; border: 4px solid #A86F2C; border-bottom: none; border-radius: 40px 40px 0 0; }
.lab-col-cesto-corpo { position: absolute; left: 0; right: 0; bottom: 0; height: 38px; background: repeating-linear-gradient(45deg, #C68B3E 0 6px, #A86F2C 6px 12px); border-radius: 6px 6px 18px 18px; box-shadow: inset 0 4px 0 #E3B06A, 0 3px 0 #6E4A1E; z-index: 2; }
.lab-col-cesto-carga { position: absolute; left: 4px; right: 4px; bottom: 26px; display: flex; flex-wrap: wrap-reverse; justify-content: center; z-index: 1; }
.lab-col-cesto-carga span { font-size: 16px; line-height: 1; width: 20px; text-align: center; visibility: hidden; }
.lab-col-cesto-carga span.tem { visibility: visible; animation: lab-col-entra .35s ease-out 1; }
@keyframes lab-col-entra { from { transform: translateY(-14px); opacity: 0; } }
.lab-col-fim-lado { display: flex; flex-direction: column; align-items: center; gap: 6px; }
@media (prefers-reduced-motion: reduce) { .lab-col-broto { transition: none; } .lab-col-cesto-carga span.tem { animation: none; } }
@media (max-width: 560px) { .lab-col-cesto { width: 76px; } .lab-col-hortalicas > span { font-size: 18px; } }

/* MODO FINAL (fundador, 20/10/2026): o link fica perto da versão que o tutor vai usar. Só esconde (nada é apagado). */
html[data-final="1"] #aba-lab, html[data-final="1"] #painel-lab,
html[data-final="1"] .lab-hero-selo, html[data-final="1"] .lab-cartao-tag,
html[data-final="1"] .lab-barra-titulo, html[data-final="1"] .lab-modos,
html[data-final="1"] #lab-regra, html[data-final="1"] #lab-sinal-flag, html[data-final="1"] #lab-exportar, html[data-final="1"] #lab-apagar,
html[data-final="1"] .lab-aviso, html[data-final="1"] .lab-so-lab, html[data-final="1"] #lab-prog-aviso { display: none !important; }
.mestre-versao-teste { margin: 24px auto 16px; text-align: center; font: 700 11px/1.4 'Nunito', system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; color: #8A7A66; }

/* PÍLULA 2 · A FLOR VIRA AS PALAVRAS DE VERDADE (fundador, 20/10/2026). 1) a flor abre (0–0,9 s); 2) a planta brilha e se
   desfaz (1,2–1,9 s) e solta uma pétala por cova (voo em JS, enfeite); 3) a pétala chega: a cova mostra a flor e depois o
   que a palavra é; 4) o lugar da planta se recolhe e a horta sobe. Na vitória são sempre 14 palavras. */
.lab-flor-vitoria { position: relative; }
.lab-flor-vitoria .lab-flor-grande { max-height: 320px; animation: lab-flor-vira .7s ease-in 1.2s forwards, lab-flor-recolhe .5s ease 4.7s forwards; }
@keyframes lab-flor-vira { 0% { transform: scale(1); opacity: 1; filter: brightness(1); } 35% { transform: scale(1.12); filter: brightness(1.3) drop-shadow(0 0 12px #FFE58A); } 100% { transform: scale(.25) translateY(80px); opacity: 0; } }
@keyframes lab-flor-recolhe { to { max-height: 0; margin-top: 0; margin-bottom: 0; } }
.lab-flor-vitoria .lab-flor-jardim .lab-plante-muda { opacity: 0; transform: scale(.4); animation: lab-flor-chega .35s ease-out forwards, lab-plante-some .35s ease-in forwards; animation-delay: calc(1.9s + var(--i) * .12s), calc(2.45s + var(--i) * .12s); }
@keyframes lab-flor-chega { to { opacity: 1; transform: scale(1); } }
.lab-flor-vitoria .lab-flor-jardim .lab-plante-vida { animation-delay: calc(2.6s + var(--i) * .12s); }
.lab-flor-petala { position: absolute; z-index: 5; font-size: 24px; line-height: 1; pointer-events: none; }
@media (prefers-reduced-motion: reduce) {
  .lab-flor-vitoria .lab-flor-grande { animation: none; display: none; }
  .lab-flor-vitoria .lab-flor-jardim .lab-plante-muda { animation: none; opacity: 0; }
  .lab-flor-vitoria .lab-flor-jardim .lab-plante-vida { animation: none; opacity: 1; transform: none; }
}

/* PÍLULA 1 · "🤝 Silabou / ajudei" (fundador, 20/10/2026): botão pequeno do tutor; a semente continua o único botão da criança. */
.lab-plante-apoio { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 8px 0 4px; }
.lab-plante-apoio .lab-nota { margin: 0; }
#lab-plante-apoio[aria-pressed="true"] { background: #FFF1D6; border-color: #C98A2B; color: #6B4310; font-weight: 800; }

/* "MEU CAMINHO" (fundador, 20/10/2026): a criança se compara só com ela mesma. Comemoração só quando melhora. */
.lab-meu-caminho-festa { margin: 0 0 14px; padding: 12px 16px; border-radius: 14px; background: #FFF6D8; border: 2px solid #F2C14E; color: #5A4300; font-size: 18px; line-height: 1.4; text-align: center; animation: lab-meu-caminho-festa .6s cubic-bezier(.2, 1.6, .4, 1) both; }
@keyframes lab-meu-caminho-festa { from { opacity: 0; transform: scale(.85); } to { opacity: 1; transform: scale(1); } }
.lab-meu-caminho-festa span { font-size: 26px; vertical-align: -3px; }
.lab-meu-caminho { margin: 14px 0 4px; padding: 8px 12px; border: 1px dashed #CDBF9F; border-radius: 10px; background: #FFFDF6; }
.lab-meu-caminho summary { cursor: pointer; font-weight: 800; }
.lab-meu-caminho ul { margin: 6px 0; padding-left: 20px; }
@media (prefers-reduced-motion: reduce) { .lab-meu-caminho-festa { animation: none; } }
