/* P03: peças do curso, controle segmentado inspirado no Material Design. */
.iv2-abrir-preparacao { display:block; margin-top:4px; color:var(--ui-brand); font-size:.85rem; }
.wv.iv2 { display:grid; gap:20px; max-width:920px; margin-inline:auto; padding-bottom:32px; }
.iv2 p { margin-block:4px 8px; line-height:1.55; }
/* Controle segmentado Estudar | Simular: só volta à tela quando houver duas
   portas (P03-a). Com uma só, era um botão "Simular" que não fazia nada.
   P15 (17/10/2026): as duas portas, no mesmo desenho do controle do Progresso
   (SegmentedButton do Material 3: trilho elevado, a escolhida em superfície). */
.iv2-portas { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:4px; border-radius:999px; background:var(--ui-raised); width:100%; max-width:440px; justify-self:center; box-sizing:border-box; }
.iv2-porta { min-height:48px; padding:0 12px; border:0; border-radius:999px; background:transparent; color:var(--ui-muted); font:700 .95rem/1 var(--wv-font-body); cursor:pointer; }
.iv2-porta[aria-pressed="true"] { background:var(--ui-surface); color:var(--ui-text); box-shadow:0 1px 3px rgb(0 0 0 / .14); cursor:default; }
.iv2-porta:hover:not([aria-pressed="true"]) { color:var(--ui-text); }
.iv2-porta:focus-visible { outline:3px solid var(--ui-brand); outline-offset:2px; }
.iv2-meta__prova { display:block; margin-top:2px; color:var(--ui-muted); font-size:.82rem; font-weight:500; }
/* P15: a data da prova na folha Sua meta (campo nativo, 48 px). */
.wv .iv2-data { display:grid; gap:6px; margin:4px 0 8px; }
.iv2-data label { display:flex; align-items:baseline; gap:8px; }
.iv2-data .iv2-data__campo { min-height:48px; padding:0 12px; border:1px solid var(--ui-control-border); border-radius:14px; background:var(--ui-surface); color:var(--ui-text); font:500 1rem/1 var(--wv-font-body); max-width:100%; box-sizing:border-box; }
.iv2-data .iv2-data__campo:focus-visible { outline:3px solid var(--ui-brand); outline-offset:2px; }
.iv2-data .iv2-link { justify-self:start; padding-inline:0; }

/* Revisão de 16/10/2026: próximo passo, panorama e cartões. */
.iv2-resumo { display:contents; }
.iv2-heroi h1 { margin:0; font:700 clamp(1.3rem, 6vw, 1.6rem)/1.12 var(--wv-font-display); letter-spacing:-.01em; text-wrap:balance; overflow-wrap:break-word; }
.iv2-heroi p { margin:0; }
.iv2-heroi .iv2-heroi__prova { font-size:.82rem; opacity:.88; }
.iv2-heroi__ico { width:56px; height:56px; flex:none; display:grid; place-items:center; border-radius:18px; background:rgb(255 255 255 / .14); color:var(--wv-hero-ink); }
.iv2-panorama { grid-template-columns:1fr; gap:4px; padding-block:4px 14px; }
.iv2-meta { display:flex; align-items:center; gap:12px; padding:12px 0; background:none; border:0; border-bottom:1px solid var(--ui-border); color:var(--ui-text); font:inherit; text-align:left; min-height:56px; cursor:pointer; }
.iv2-meta strong { margin-left:auto; color:var(--ui-brand); }
/* Banda geral na mesma linha do rótulo (como "Sua meta"); vazia, orienta. */
.iv2-geral { display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:center; gap:2px 12px; padding-top:10px; }
.iv2-geral > strong { grid-column:2; grid-row:1; font:700 1.75rem/1.1 var(--wv-font-display); font-variant-numeric:tabular-nums; }
.iv2-geral small, .iv2 .iv2-geral__vazia { grid-column:1 / -1; }
.iv2-geral small { color:var(--ui-muted); }
.iv2 .iv2-geral__vazia { margin:0; color:var(--ui-text); font-size:.9rem; line-height:1.45; }
.iv2-completo { min-height:72px; }
.iv2-completo > span:nth-child(2), .iv2-sequencia a > span:nth-child(2) { flex:1; min-width:0; }
.iv2-completo:hover, .iv2-sequencia a:hover { background:var(--ui-raised); }
.iv2-meta:focus-visible, .iv2-completo:focus-visible, .iv2-sequencia a:focus-visible, .iv2-mais summary:focus-visible {
  outline:3px solid var(--ui-brand); outline-offset:2px; border-radius:12px; }
.iv2-modulos { display:grid; gap:16px; margin-top:12px; }
.iv2-modulo { align-content:start; gap:6px; }
.iv2-modulo-topo { display:flex; gap:10px; align-items:center; color:var(--ui-brand); }
/* O nome do módulo é o título do cartão; o resultado vem logo abaixo. */
.iv2-modulo-topo h3 { margin:0; color:var(--ui-text); font:700 1.25rem/1.2 var(--wv-font-display); }
.iv2 .iv2-nota { margin:0; color:var(--ui-brand); font:700 1rem/1.35 var(--wv-font-body); }
.iv2 .iv2-nota--vazia { color:var(--ui-muted); font-weight:500; font-size:.92rem; }
/* D-R2: o Treino fica sob a banda, em texto de apoio, sem disputar com ela. */
.iv2 .iv2-treino { margin:0; color:var(--ui-text); font-size:.92rem; font-weight:600; font-variant-numeric:tabular-nums; }
.iv2 .iv2-treino small { color:var(--ui-muted); font-size:inherit; font-weight:500; }
/* "Ver mais": a seta que gira do Aprender e do Progresso, alvo de 48 px. */
.iv2-mais summary { display:flex; align-items:center; gap:6px; min-height:48px; cursor:pointer; color:var(--ui-brand); font-weight:650; list-style:none; }
.iv2-mais summary::-webkit-details-marker { display:none; }
.iv2-mais summary .wv-ico { flex:none; transform:rotate(90deg); transition:transform var(--wv-dur) var(--wv-ease); }
.iv2-mais[open] summary .wv-ico { transform:rotate(-90deg); }
.iv2 .wv-card .wv-btn { margin-top:auto; }
/* Folhas: título com X de 48 px, sem "Fechar" repetido no pé. */
.wv .iv2-folha-topo { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-right:-8px; }
.wv .iv2-metas { border:0; padding:0; display:grid; grid-template-columns:repeat(5, minmax(0, 1fr)); gap:8px; margin:12px 0 4px; }
.wv [data-meta-form] { display:grid; gap:12px; }
.iv2-metas legend { margin-bottom:12px; font-weight:700; }
.iv2-metas label { position:relative; min-width:0; }
.iv2-metas input { position:absolute; opacity:0; }
.iv2-metas span { display:grid; place-content:center; justify-items:center; gap:2px; min-height:56px; padding:4px 2px; border:1px solid var(--ui-control-border); border-radius:14px; cursor:pointer; text-align:center; }
.iv2-metas b { font:700 1rem/1.1 var(--wv-font-body); }
.iv2-metas small { display:block; font-size:.72rem; line-height:1.1; }
.iv2-metas input:checked + span { background:var(--ui-button); color:#fff; border-color:var(--ui-button); }
.iv2-metas input:focus-visible + span { outline:3px solid var(--ui-brand); outline-offset:3px; }
.iv2-link { justify-self:center; min-height:48px; padding:0 12px; border:0; border-radius:12px; background:none; color:var(--ui-brand);
  font:650 1rem/1 var(--wv-font-body); text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.iv2-link:focus-visible { outline:3px solid var(--ui-brand); outline-offset:2px; }
.iv2-link:disabled { color:var(--ui-muted); cursor:default; }
.iv2-sequencia { display:grid; gap:10px; margin:0; padding:0; list-style:none; }
.iv2-sequencia .wv-row__ico { font:700 1rem/1 var(--wv-font-body); }
/* No celular, o primeiro módulo precisa caber acima do menu (360×780). */
@media(max-width:419px) {
  .wv.iv2 { gap:16px; }
  .iv2-heroi { gap:14px; padding:18px; }
  .iv2-heroi__ico { display:none; }
  .iv2-completo { min-height:64px; padding-block:10px; }
}
@media(min-width:700px) {
  .iv2-modulos { grid-template-columns:1fr 1fr; }
  .iv2-heroi > .wv-btn { justify-self:start; width:auto; min-width:300px; }
  .iv2-panorama { grid-template-columns:1fr 1fr; gap:24px; align-items:center; padding-block:14px; }
  .iv2-meta { border-bottom:0; border-right:1px solid var(--ui-border); padding-right:20px; }
  .iv2-geral { padding-top:0; }
}

/* P04: bloco compartilhado dos resultados, sem alterar a prova ou o menu.
   Revisão de 16/10: cartão estático usa a borda de divisória (--ui-border);
   --ui-control-border fica para campos. Cada tipo: nome | "3 de 8" e barra. */
.ielts-focus { padding:20px; border:1px solid var(--ui-border); border-radius:20px; background:var(--ui-surface); color:var(--ui-text); margin-block:20px; overflow-wrap:anywhere; }
.ielts-focus h2 { margin:0 0 12px; font-size:1.3rem; }
.ielts-focus h3 { margin:0; font-size:1rem; }
.ielts-focus p { line-height:1.6; }
.ielts-focus__tipos { list-style:none; padding:0; margin:0; }
.ielts-focus__tipos li { display:grid; gap:8px; padding-block:14px; border-top:1px solid var(--ui-border); }
.ielts-focus__linha { display:grid; grid-template-columns:minmax(0, 1fr) auto; align-items:baseline; gap:12px; }
.ielts-focus__linha strong { color:var(--ui-brand); font-variant-numeric:tabular-nums; white-space:nowrap; }
.ielts-focus__barra { height:6px; border-radius:99px; background:var(--ui-raised); overflow:hidden; }
.ielts-focus__barra > i { display:block; height:100%; border-radius:inherit; background:var(--ui-brand); }
.ielts-focus__tipos p { margin:0; color:var(--ui-muted); font-size:.9rem; line-height:1.5; }
.ielts-focus__nota { color:var(--ui-muted); }
/* P15: "Estudar este tipo", a aula do Estudar que ensina o tipo (alvo de 44 px). */
.ielts-focus__estudar { justify-self:start; display:grid; gap:2px; min-height:44px; align-content:center; padding:6px 0; color:var(--ui-brand); font-weight:700; text-decoration:none; }
.ielts-focus__estudar small { color:var(--ui-muted); font-weight:500; font-size:.85rem; }
.ielts-focus__estudar:hover { text-decoration:underline; }
.ielts-focus__estudar:focus-visible { outline:3px solid var(--ui-brand); outline-offset:2px; border-radius:6px; }
.ielts-focus > p.ielts-focus__nota { margin-top:12px; font-size:.875rem; }

/* Simular na casca da aula (17/10/2026, pedido do Anderson): as quatro habilidades
   em caixinhas, como a aula (wv-skills), e Listening e Reading com uma questão por
   tela (ielts-prova-casca.js). Tudo com os tokens --ui-*; modo escuro vem junto. */
.iv2 a.wv-skill { text-decoration: none; }
.iv2 .wv-skill:focus-visible { outline: 3px solid var(--ui-brand); outline-offset: 3px; }
.iv2 .wv-skill .iv2-caixa__nota { color: var(--ui-brand); font-weight: 700; font-size: .88rem; }
.iv2 .wv-skill--feita .iv2-caixa__nota { color: var(--ui-positive); }
.iv2-caixas { margin-top: 12px; }
@media (min-width: 900px) { .iv2-caixas { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.ielts-casca [hidden] { display: none !important; }
.ielts-casca .wv-sessao__topo { gap: 8px; }
.ielts-casca__conta { min-width: 44px; min-height: 44px; padding: 0 2px 0 6px; display: inline-flex; align-items: center; gap: 2px; border: 0; border-radius: 12px;
  background: transparent; color: var(--ui-muted); font: 700 .85rem/1 var(--wv-font-body); font-variant-numeric: tabular-nums; cursor: pointer; }
.ielts-casca__conta .wv-ico { transform: rotate(90deg); color: var(--ui-brand); }
.ielts-casca__conta:focus-visible { outline: 3px solid var(--ui-brand); outline-offset: 2px; }
.ielts-casca__relogio { min-width: 46px; text-align: right; font: 700 .85rem/1 var(--wv-font-body); color: var(--ui-muted); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ielts-casca--aviso .ielts-casca__relogio { color: var(--ui-negative); }
.ielts-casca__aviso { padding: 10px 12px; border-radius: var(--wv-radius-md); background: var(--ui-negative-soft); color: var(--ui-text); }
.ielts-casca__ler { display: grid; gap: 16px; align-content: start; }
.ielts-casca__cabeca { display: grid; gap: 6px; }
.ielts-casca__cabeca p { margin: 0; }
.ielts-casca__titulo-texto { margin: 6px 0 0; font: 700 1.02rem/1.3 var(--wv-font-display); color: var(--ui-text); }
.ielts-casca__texto .wv-paragrafo { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-items: start; padding: 0; margin: 0; font-size: 1.02rem; line-height: 1.6; }
.ielts-casca__pagina { gap: 14px; }
.ielts-casca__retorno:empty { display: none; }
/* O player é o das aulas (wv-player), o mesmo em todas as questões da parte. Com o
   áudio de uma vez só na Prova (REPETIR_NA_PROVA = false), tocar já usado fica apagado. */
.ielts-casca__audio .wv-player__tocar:disabled { opacity: .55; cursor: default; box-shadow: none; }
/* Nas aulas, o enunciado da parte fica só na primeira questão. */
.ielts-casca__unidade--seguinte .ielts-casca__cabeca h2, .ielts-casca__unidade--seguinte .ielts-casca__cabeca p { display: none; }
/* Resultado: o retorno das aulas, com filtro por situação. */
.ielts-casca__filtros button { font-size: .88rem; }
.ielts-casca__respostas { display: grid; gap: 16px; }
.ielts-casca__respostas .ielts-casca__grupo { margin: 0; }
.ielts-casca__respostas[data-mostrar="rever"] li[data-situacao="certa"],
.ielts-casca__respostas[data-mostrar="certas"] li[data-situacao="rever"] { display: none; }
.ielts-casca .ielts-focus { margin-block: 0; border-radius: var(--wv-radius-lg); }
.ielts-casca .ielts-focus h2 { font: 700 1.05rem/1.25 var(--wv-font-display); }
.ielts-sheet-gerenciar, .wv-sheet .wv-gerenciar { margin-top: 8px; }
/* Lista das 40 questões (folha): como a barra de questões da prova no computador. */
.ielts-casca__grupo { display: grid; gap: 8px; margin-bottom: 14px; }
.ielts-casca__grade { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.ielts-casca__numero { min-height: 48px; border-radius: 14px; border: 2px solid var(--ui-control-border); background: var(--ui-surface);
  color: var(--ui-text); font: 700 1rem/1 var(--wv-font-body); font-variant-numeric: tabular-nums; cursor: pointer; }
.ielts-casca__numero--feita { border-color: transparent; background: var(--ui-soft); color: var(--ui-brand); }
.ielts-casca__numero--atual { border-color: var(--ui-brand); }
.ielts-casca__numero:focus-visible { outline: 3px solid var(--ui-brand); outline-offset: 2px; }
@media (min-width: 900px) {
  .ielts-casca__ler { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "cabeca cabeca" "fonte perguntas"; column-gap: 24px; align-items: start; }
  .ielts-casca__cabeca { grid-area: cabeca; }
  .ielts-casca__fonte { grid-area: fonte; position: sticky; top: 76px; max-height: calc(100dvh - 260px); overflow: auto; }
  .ielts-casca__perguntas { grid-area: perguntas; }
  .ielts-casca .wv-pergunta-fixa { display: none; }
}
/* Writing e Speaking do Simular na casca (17/10/2026): o editor como o Escrever das
   aulas do IELTS e a chamada como o Falar (ielts-writing-casca.js, simulado-casca.js). */
.ielts-casca__escolha .wv-opcao__letra { font-variant-numeric: tabular-nums; }
.ielts-casca__slot:empty { display: none; }
.ielts-casca__entregas { display: grid; gap: 10px; }
.ielts-casca__entregas h2 { margin: 0; }
.ielts-casca__links { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ielts-casca__link { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 12px; min-height: 56px;
  padding: 10px 14px; border: 1px solid var(--ui-border); border-radius: var(--wv-radius-md); background: var(--ui-surface);
  color: var(--ui-text); text-decoration: none; }
.ielts-casca__link > span:first-child { display: grid; gap: 2px; min-width: 0; }
.ielts-casca__link small { color: var(--ui-muted); font-size: .84rem; line-height: 1.35; }
.ielts-casca__link-acao { color: var(--ui-brand); font-weight: 700; font-size: .88rem; text-align: right; }
.ielts-casca__link-acao--muda { color: var(--ui-muted); font-weight: 600; }
.ielts-casca__link:focus-visible { outline: 3px solid var(--ui-brand); outline-offset: 2px; }
.ielts-casca__tarefa { display: grid; gap: 16px; align-items: start; }
.ielts-casca__pedido, .ielts-casca__escrita { gap: 14px; }
.ielts-casca__pedido .wv-subtitle, .ielts-casca__pedido .wv-instrucao { margin: 0; }
.ielts-casca__rascunho { margin: 0; font-size: .84rem; }
.ielts-casca__resultado:not([hidden]) { display: grid; gap: 14px; padding-top: 18px; border-top: 1px solid var(--ui-border); }
.ielts-casca__resultado :is(h1, h2, h3, p) { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.ielts-casca .wv-sessao__titulo:has(+ .ielts-casca__relogio) { padding-right: 0; }
.ielts-casca__relogio--writing b { color: var(--ui-text); }
@media (min-width: 900px) {
  .ielts-casca__tarefa { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 24px; }
  .ielts-casca__pedido { position: sticky; top: 76px; }
}
.ielts-casca--speaking .wv-voz-palco { padding-top: 4px; }
.ielts-casca--speaking .wv-ielts-passos li span { color: var(--ui-muted); }
.ielts-casca--speaking .wv-ielts-etapas li.feita { color: var(--ui-text); }

/* Alinhamento com as aulas (17/10/2026): o retorno do Writing e do Speaking no desenho
   do retorno das aulas, na casca (depois da entrega e nos resultados). */
.ielts-casca__retorno-tarefa { gap: 14px; }
.ielts-casca__retorno-tarefa .wv-title { margin: 0; }
