/* Folhas A4 das atividades (tela e impressão) */
.folha {
  --c1: #601793; --c2: #efe7f8; --c3: #ffd43b; --tinta: #1d1a2b; --linha: #b9b3cc;
  --escala: 1;
  width: 210mm; height: 297mm; flex: none;
  padding: 9mm 12mm 7mm;
  background: #fff; color: var(--tinta);
  display: flex; flex-direction: column; gap: 3mm;
  overflow: hidden; position: relative;
  font-family: Manrope, sans-serif;
  box-shadow: 0 2px 6px #3c288c14, 0 16px 40px #3c288c1a;
  border-radius: 4px;
  -webkit-print-color-adjust: exact; print-color-adjust: exact;
}
.tema-geografia { --c1: #1f7a52; --c2: #e4f6ea; }
.tema-historia { --c1: #8a4b1f; --c2: #f7eddd; --c3: #f2c14e; }
.tema-fisica { --c1: #601793; --c2: #efe7f8; }
.pb .folha { filter: grayscale(1) contrast(1.1); }
.folha .ic { width: 1.1em; height: 1.1em; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -.18em; flex: none; }

/* Cabeçalho */
.f-faixa { display: flex; justify-content: space-between; align-items: center; font-size: 8pt; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.f-materia { background: var(--c1); color: #fff; padding: 1.2mm 3.2mm; border-radius: 99px; }
.f-tipo { color: var(--c1); display: inline-flex; align-items: center; gap: 1.5mm; }
.f-cabeca {
  background: var(--c2); border: 2px solid var(--c1); border-radius: 5mm;
  padding: 4mm 6mm 4.5mm; text-align: center; position: relative;
}
.f-cabeca h1 { font-family: Fredoka, Sora, sans-serif; font-weight: 700; font-size: 25pt; line-height: 1.05; color: var(--c1); text-transform: uppercase; letter-spacing: .01em; }
.f-cabeca p {
  display: inline-block; margin: 2.2mm 0 0; background: var(--c3); color: var(--tinta);
  font-weight: 800; font-size: 10pt; padding: 1.2mm 4mm; border-radius: 99px;
}
.tipo-detetive .f-cabeca { background: #f6ecd6; border-color: #3a2a1a; }
.tipo-detetive .f-cabeca h1 { font-family: "Special Elite", monospace; color: #2a1e12; text-transform: none; font-size: 24pt; }
.tipo-missao_codigo .f-cabeca { background: #1d1a2b; border-color: #1d1a2b; }
.tipo-missao_codigo .f-cabeca h1 { color: #fff; }

.f-aluno { display: flex; gap: 5mm; font-size: 9.5pt; font-weight: 700; }
.f-aluno span { display: flex; align-items: flex-end; gap: 2mm; flex: 1; }
.f-aluno span i { flex: 1; border-bottom: 1px solid var(--tinta); height: 1em; }
.f-aluno .curto { flex: .45; }
.f-aluno .data { flex: none; }

.f-corpo {
  flex: 1; min-height: 0; overflow: hidden;
  display: flex; flex-direction: column; gap: 3.2mm;
  font-size: calc(10.5pt * var(--escala)); line-height: 1.38;
}
.adaptada .f-corpo { font-size: calc(13pt * var(--escala)); line-height: 1.45; }
.f-corpo p { margin: 0; }
.f-rodape { display: flex; align-items: center; gap: 2mm; font-size: 7.5pt; color: #7a7591; border-top: 1px dashed var(--linha); padding-top: 2mm; }
.f-rodape img { width: 5mm; height: 5mm; border-radius: 50%; }
.f-pag { margin-left: auto; font-weight: 700; }

/* Blocos comuns */
.f-secao h2 { display: flex; align-items: center; gap: 2mm; font-family: Fredoka, sans-serif; font-weight: 600; font-size: 1.22em; color: var(--c1); margin: 0 0 1.5mm; }
.f-secao h2 b { width: 1.5em; height: 1.5em; border-radius: 50%; background: var(--c1); color: #fff; display: grid; place-items: center; font-size: .85em; }
.f-secao.sem-numero h2 b { display: none; }
.f-linhas i { display: block; height: 2.15em; border-bottom: 1px solid var(--linha); }
.adaptada .f-linhas i { height: 2.4em; }
.anotacoes {
  flex: 1 1 0; min-height: 0; border: 1.5px dashed var(--linha); border-radius: 3mm; padding: 2mm 4mm;
  background: repeating-linear-gradient(transparent 0 calc(2.15em - 1px), #dcd7e8 calc(2.15em - 1px) 2.15em) 0 2.4em / 100% calc(100% - 2.4em) no-repeat content-box;
}
.anotacoes span { display: flex; align-items: center; gap: 1.5mm; font-size: .8em; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--c1); }
.instrucao { font-weight: 600; color: #4a4560; margin-bottom: 1.5mm !important; }
.destaque-instrucao { display: flex; align-items: center; gap: 1.5mm; background: var(--c2); border-left: 4px solid var(--c1); padding: 2mm 3mm; border-radius: 2mm; color: var(--tinta); }
.destaque-instrucao .ic { color: var(--c1); }
.linha-corte { display: flex; align-items: center; gap: 2mm; font-size: .85em; font-weight: 700; color: #6d6883; border-bottom: 1.5px dashed #6d6883; padding-bottom: 1mm; }
.cartoes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3mm; }
.adaptada .cartoes { grid-template-columns: repeat(2, 1fr); }
.cartao-recorte {
  border: 1.6px dashed #4d4863; border-radius: 2.5mm; padding: 2.5mm 3mm; min-height: 4.2em;
  display: flex; align-items: center; justify-content: center; text-align: center; font-weight: 600;
}
.espaco-cola {
  border: 1.6px dashed #a9a3bd; border-radius: 2.5mm; min-height: 3.6em;
  display: grid; place-items: center; color: #b3aec4; font-size: .78em; font-weight: 700; text-transform: uppercase; letter-spacing: .05em;
}

/* Detetives */
.caso { position: relative; background: #fbf6ea; border: 1.5px solid #d6c49c; border-radius: 3mm; padding: 4mm 5mm; }
.caso h2 { font-family: "Special Elite", monospace; font-size: 1.45em; margin: 1mm 0 1.5mm; color: #2a1e12; }
.caso-etq { display: inline-flex; align-items: center; gap: 1.5mm; font-size: .78em; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--c1); }
.carimbo {
  position: absolute; top: 4mm; right: 5mm; transform: rotate(-8deg);
  border: 2.5px solid #c0392b; color: #c0392b; border-radius: 2mm; padding: .6mm 2.5mm;
  font-family: "Special Elite", monospace; font-size: 1.05em; text-transform: uppercase; letter-spacing: .08em;
}
.missao { display: flex; gap: 2mm; align-items: flex-start; margin-top: 2.5mm; background: #fff; border: 1.5px solid #2a1e12; border-radius: 2mm; padding: 2mm 3mm; }
.missao .ic { color: #c0392b; width: 1.4em; height: 1.4em; }
.pistas { display: grid; grid-template-columns: 1fr 1fr; gap: 3mm; }
.pista { background: #fffdf7; border: 1.5px solid #d6c49c; border-radius: 2.5mm; padding: 2.5mm 3.2mm; box-shadow: 1.5mm 1.5mm 0 #efe3c6; }
.pista:last-child:nth-child(odd) { grid-column: span 2; }
.pista-topo { display: flex; align-items: center; gap: 1.5mm; font-size: .74em; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--c1); }
.pista h3 { font-family: Fredoka, sans-serif; font-weight: 600; font-size: 1.08em; margin: 1mm 0; }
.pista p { font-size: .95em; }
.pergunta { margin-bottom: 1.5mm; }
.dica { font-size: .88em; color: #6b5a12; background: #fff6d6; border-radius: 1.5mm; padding: .8mm 2mm; margin-top: 1mm !important; display: inline-flex; gap: 1.5mm; align-items: center; }
.hipoteses { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.8mm; }
.hipoteses li { display: flex; gap: 2.5mm; align-items: flex-start; }
.caixa { flex: none; width: 1.15em; height: 1.15em; border: 1.8px solid var(--tinta); border-radius: 1mm; margin-top: .15em; }
.relatorio { display: grid; grid-template-columns: 1fr 26mm; gap: 4mm; align-items: center; }
.selo-resolvido {
  width: 24mm; height: 24mm; border-radius: 50%; border: 2px dashed #c0392b; color: #c0392b;
  display: grid; place-items: center; text-align: center; font-family: "Special Elite", monospace; font-size: .8em; text-transform: uppercase; transform: rotate(-10deg);
}

/* Recorte e cole: painel */
.painel { display: grid; grid-template-columns: repeat(var(--colunas), 1fr); gap: 3mm; flex: 1; }
.coluna { --cor: #601793; --fundo: #efe7f8; border: 2px solid var(--cor); border-radius: 3mm; padding: 0 2.5mm 2.5mm; display: flex; flex-direction: column; gap: 2.2mm; }
.coluna-topo { background: var(--fundo); margin: 0 -2.5mm; padding: 2.5mm; border-radius: 2mm 2mm 0 0; text-align: center; border-bottom: 2px solid var(--cor); }
.coluna-topo strong { display: block; font-family: Fredoka, sans-serif; font-weight: 600; font-size: 1.15em; color: var(--cor); }
.coluna-topo small { display: block; font-size: .8em; color: #5c5772; line-height: 1.3; }
.cor-0 { --cor: #601793; --fundo: #efe7f8; }
.cor-1 { --cor: #1f7a52; --fundo: #e4f6ea; }
.cor-2 { --cor: #b85f00; --fundo: #fff0d6; }
.cor-3 { --cor: #1f5fa8; --fundo: #e3eefb; }
.coluna .espaco-cola { flex: 1; min-height: 4.4em; }
.tipo-recorte_classificacao .cartao-recorte { min-height: 6.2em; font-size: 1.05em; }

/* Linha do tempo */
.trilha { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2.5mm; position: relative; flex: 1; min-height: 0; }
.trilha::before { content: ""; position: absolute; left: 25mm; top: 2mm; bottom: 2mm; width: 3px; background: var(--c1); border-radius: 2px; }
.trilha li { flex: 1; display: grid; grid-template-columns: 21mm 8mm 1fr; align-items: center; }
.trilha li .espaco-cola { align-self: stretch; }
.marco { font-family: Fredoka, sans-serif; font-weight: 700; font-size: 1.05em; color: var(--c1); text-align: right; padding-right: 1mm; }
.ponto { width: 4.5mm; height: 4.5mm; border-radius: 50%; background: #fff; border: 3px solid var(--c1); justify-self: center; z-index: 1; }
.trilha .espaco-cola { min-height: 3.9em; }
.cartoes.eventos { grid-template-columns: 1fr 1fr; }
.evento { flex-direction: column; gap: 1mm; text-align: left; align-items: flex-start; justify-content: flex-start; }
.evento strong { font-family: Fredoka, sans-serif; font-weight: 600; color: var(--c1); font-size: 1.05em; }
.evento span { font-weight: 500; font-size: .92em; }

/* Missão código secreto */
.briefing { display: flex; gap: 4mm; align-items: flex-start; background: #1d1a2b; color: #fff; border-radius: 3mm; padding: 4mm 5mm; }
.briefing .ic.grande { width: 11mm; height: 11mm; color: var(--c3); stroke-width: 1.6; }
.briefing .caso-etq { color: var(--c3); }
.briefing p { margin-top: 1mm !important; }
.briefing .briefing-como { font-size: .9em; color: #d8d3ea; }
.desafios { display: flex; flex-direction: column; gap: 3mm; }
.desafio { border: 1.5px solid #dcd6ea; border-radius: 3mm; padding: 2.5mm 3.5mm; }
.desafio h3 { margin: 0 0 1mm; }
.desafio h3 span { display: inline-block; font-family: Fredoka, sans-serif; font-weight: 600; font-size: .85em; background: var(--c1); color: #fff; padding: .5mm 3mm; border-radius: 99px; }
.alternativas { list-style: none; margin: 1.8mm 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 1.5mm 4mm; }
.adaptada .alternativas { grid-template-columns: 1fr; }
.alternativas li { display: flex; gap: 2mm; align-items: center; }
.codigo { flex: none; width: 1.6em; height: 1.6em; border: 2px solid var(--c1); border-radius: 1.5mm; display: grid; place-items: center; font-family: Fredoka, sans-serif; font-weight: 700; color: var(--c1); }
.decodificador { background: var(--c2); border: 2px solid var(--c1); border-radius: 3mm; padding: 3mm 4mm; text-align: center; }
.decodificador h3 { font-family: Fredoka, sans-serif; font-weight: 600; color: var(--c1); margin: 0 0 2mm; font-size: 1.2em; display: inline-flex; gap: 2mm; align-items: center; }
.casas { display: flex; justify-content: center; gap: 2.5mm; flex-wrap: wrap; }
.casas div { display: flex; flex-direction: column; align-items: center; gap: .8mm; }
.casas span { width: 13mm; height: 14mm; background: #fff; border: 2px solid var(--tinta); border-radius: 2mm; }
.casas small { font-weight: 800; font-size: .8em; }

/* Dominó */
.pecas { display: grid; grid-template-columns: 1fr 1fr; gap: 4mm; align-content: start; flex: 1; }
.adaptada .pecas { gap: 6mm; }
.peca { display: grid; grid-template-columns: 38% 1fr; border: 1.6px dashed #4d4863; border-radius: 3mm; min-height: 24mm; overflow: hidden; }
.peca-termo { background: var(--c2); border-right: 2px solid var(--tinta); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2mm; gap: 1mm; }
.peca-termo strong { font-family: Fredoka, sans-serif; font-weight: 600; color: var(--c1); font-size: 1.08em; line-height: 1.15; }
.peca-termo em { font-style: normal; font-size: .68em; font-weight: 800; text-transform: uppercase; background: var(--c3); padding: .4mm 1.6mm; border-radius: 99px; display: inline-flex; gap: .8mm; align-items: center; }
.peca-def { display: flex; align-items: center; padding: 2mm 3mm; font-size: .9em; }
.registro { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5mm 6mm; }
.registro strong { font-family: Fredoka, sans-serif; font-weight: 600; color: var(--c1); }

/* Caça-palavras */
.intro { background: var(--c2); border-radius: 2.5mm; padding: 2.5mm 4mm; font-weight: 500; }
.pistas-caca { margin: 0; padding-left: 1.9em; display: flex; flex-direction: column; gap: 2.4mm; }
.pistas-caca li::marker { font-weight: 800; color: var(--c1); }
.pistas-caca span:first-child { display: block; }
.caixinhas { display: flex; gap: 1mm; margin-top: 1mm; }
.caixinhas i { width: 6.2mm; height: 6.8mm; border: 1.5px solid var(--tinta); border-radius: 1mm; font-style: normal; font-family: Fredoka, sans-serif; font-weight: 700; display: grid; place-items: center; color: var(--c1); }
.adaptada .caixinhas i { width: 8mm; height: 8.5mm; }
.diagrama { --lado: calc(150mm / var(--tam)); display: grid; grid-template-columns: repeat(var(--tam), var(--lado)); margin: 2mm auto 0; border: 2px solid var(--c1); border-radius: 2mm; width: max-content; padding: 1.5mm; }
.diagrama span { width: var(--lado); height: var(--lado); display: grid; place-items: center; font-family: Fredoka, sans-serif; font-weight: 600; font-size: calc(var(--lado) * .55); }
.diagrama.mini { --lado: calc(78mm / var(--tam)); margin: 0; }
.diagrama.mini span.marcada { background: var(--c3); border-radius: 1mm; }
.g-caca { display: grid; grid-template-columns: 1fr auto; gap: 5mm; align-items: start; }

/* Gabarito */
.folha.gabarito .f-cabeca { background: #fff; border-style: dashed; border-color: var(--c1); }
.folha.gabarito .f-cabeca h1 { color: var(--c1); }
.g-info { background: var(--c2); border-radius: 2.5mm; padding: 3mm 4mm; display: flex; flex-direction: column; gap: 1mm; }
.g-passos, .g-lista { margin: 0; padding-left: 1.9em; display: flex; flex-direction: column; gap: 1.2mm; }
.f-secao > p + p, .f-secao > ol + p, .f-secao > div + p { margin-top: 1.5mm; }
.g-palavra { font-family: Fredoka, sans-serif; font-weight: 700; letter-spacing: .15em; color: var(--c1); }
.g-exp { color: #5c5772; }
.g-aviso { margin-top: auto !important; font-size: .82em; color: #7a7591; font-style: italic; }

/* Tela pequena: miniatura das folhas */
@media screen and (max-width: 860px) {
  .folhas { overflow-x: auto; }
  .folha { zoom: .44; }
}

@media print {
  @page { size: A4; margin: 0; }
  .folha { box-shadow: none; border-radius: 0; break-after: page; zoom: 1; }
  .folha:last-child { break-after: auto; }
}
