/* O que a página real das provas acrescenta à maqueta (prova.css + portal.css): as alternativas em grelha e em coluna,
   os textos de leitura, as figuras SVG (e as legendas ao toque) e os passos da solução. */
.alts-grelha { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 6px; column-gap: 24px; }
.alts-coluna { display: grid; grid-template-columns: minmax(0, 1fr); row-gap: 4px; }
.alts-linha { grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); column-gap: 12px; }
.alts-coluna .alt, .alts-grelha .alt { align-items: baseline; }
.alt > span { min-width: 0; }
.alt .fig { margin: 0; }
.q-e p { margin: 0 0 6px; }
.q-e p:last-child { margin-bottom: 0; }
.q-e ul, .q-e ol { margin: 4px 0 6px; padding-left: 22px; }
.q-e table { border-collapse: collapse; margin: 6px 0; font-size: 0.95em; }
.q-e th, .q-e td { border: 1px solid #1d1d1b; padding: 3px 8px; }
.texto-leitura { margin: 14px 64px 10px 92px; font: 400 15.5px/1.45 var(--serifa); text-align: justify; }
.texto-leitura p { margin: 0 0 8px; text-indent: 1.5em; }
.texto-leitura__tit { text-align: center; font-weight: 700; text-indent: 0 !important; }
.texto-leitura__fonte { text-align: right; font-style: italic; font-size: 0.9em; text-indent: 0 !important; }

/* figuras: SVG do desenho, à largura do original e nunca maiores do que a coluna */
.fig { margin: 8px 0; max-width: 100%; }
.fig > svg { display: block; max-width: 100%; height: auto; }
.q-e .fig > svg { margin: 0 auto; }
.fig__cred { margin-top: 4px; font: italic 400 12px/1.3 var(--serifa); color: #555; text-align: center; }
.fig-falta { color: #a8321a; font: 500 13px/1 var(--font-text); }

/* legendas: cada parte é um <g data-legenda>; ao passar o rato ou tocar, a parte acende e a legenda aparece */
.fig--inter [data-legenda] { cursor: pointer; }
.fig--inter [data-legenda] :is(path, circle, ellipse, rect, polygon, line, polyline) { transition: stroke 120ms ease-out, fill-opacity 120ms ease-out; }
.fig--inter [data-legenda].is-on :is(path, circle, ellipse, rect, polygon, line, polyline):not([fill="transparent"]) { stroke: #d63f1a; }
.fig--inter [data-legenda].is-on [fill="transparent"] { fill: rgb(255 82 44 / 0.12); }
@media (hover: hover) { .fig--inter [data-legenda]:hover :is(path, circle, ellipse, rect, polygon, line, polyline):not([fill="transparent"]) { stroke: #d63f1a; } }
.legenda-flutua { position: fixed; z-index: 90; max-width: 260px; padding: 8px 12px; border-radius: 12px; background: #2a1516; color: #fff; font: 400 14px/1.35 var(--font-text); pointer-events: none; box-shadow: 0 12px 30px -12px rgb(0 0 0 / 0.5); }
.legenda-flutua b { display: block; font-weight: 600; }
.legenda-flutua span { color: rgb(255 255 255 / 0.8); }

/* a solução */
.q-vazia .q-e p { font-weight: 700; letter-spacing: 0.02em; }
.sol__anulada { margin: 0 0 6px; font: 600 20px/1.3 var(--font-text); color: var(--ink); }
.sol__nota--ressalva { border-color: rgb(42 21 22 / 0.15); background: var(--surface); }
.sol__fig { display: grid; place-items: center; padding: 10px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.sol__fig .fig { margin: 0; }
.sol__dica { margin: 4px 0 0; font-size: 13px; color: var(--muted); }
.sol__valor--texto { font: 400 18px/1.4 var(--font-text); }
.sol__resol { display: grid; gap: 10px; }
.sol__passo { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 10px; align-items: start; font-size: 16px; line-height: 1.55; color: var(--ink); }
.sol__num { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 999px; background: rgb(255 82 44 / 0.12); color: #a8321a; font: 600 13px/1 var(--font-text); }
.sol__passo .katex-display { margin: 6px 0; overflow-x: auto; overflow-y: hidden; }

/* o modelo 3D da solução */
.sol__3d { display: grid; gap: 8px; }
.sol__3d-tabs { display: flex; flex-wrap: wrap; gap: 6px; }
.sol__3d-tabs button { height: 36px; padding: 0 14px; border: 0; border-radius: 999px; background: var(--surface); color: var(--ink); font: 500 14px/1 var(--font-text); cursor: pointer; }
.sol__3d-tabs button[aria-selected="true"] { background: #2a1516; color: #fff; }
.sol__3d-palco { position: relative; aspect-ratio: 4 / 3; border-radius: 14px; background: radial-gradient(120% 90% at 50% 20%, #ffffff, #f3eee9); box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; touch-action: none; cursor: grab; }
.sol__3d-palco:active { cursor: grabbing; }
.sol__3d-palco canvas { display: block; width: 100%; height: 100%; }
.sol__3d-palco.a-carregar::after { content: ""; position: absolute; inset: 0; margin: auto; width: 28px; height: 28px; border-radius: 50%; border: 2px solid rgb(42 21 22 / 0.15); border-top-color: #d63f1a; animation: roda 0.8s linear infinite; }
@keyframes roda { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .sol__3d-palco.a-carregar::after { animation: none; } }

@media (max-width: 859px) {
  .texto-leitura { margin: 12px 16px 10px; font-size: 15px; }
  .alts-linha, .alts-grelha { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media print {
  .sol-fontes, .legenda-flutua { display: none !important; }
}

/* as folhas têm a altura do que levam (no ecrã); a capa de uma página A4 só na impressão */
.folha { min-height: 0; }
.so-impressao { display: none; }
.folha--gabarito .gab__tit { margin: 0 0 4px 67px; font: 700 20px/1.2 var(--estreita); }
.folha--gabarito .gab__sub { margin: 0 0 18px 67px; font: 400 13px/1.3 var(--estreita); color: #555; }
.gab__grelha { list-style: none; margin: 0 0 0 67px; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px 10px; font: 400 15px/1.2 var(--serifa); }
.gab__grelha li { display: flex; justify-content: space-between; padding: 5px 10px; border: 1px solid #cfcac4; border-radius: 4px; }
.gab__grelha b { font-weight: 700; }
.gab__nota { margin: 18px 0 0 67px; font: 400 12px/1.4 var(--estreita); color: #555; }

/* imprimir e o PDF: só a prova, a correr pelas páginas A4 (sem folhas meio vazias), com o número de cada página em
   baixo; a folha das respostas começa numa página nova */
@page { size: A4; margin: 14mm 13mm 16mm 9mm; @bottom-center { content: counter(page); font: 10pt "Times New Roman", serif; color: #444; } }
@media print {
  html, body { background: #fff !important; }
  .nav, header.nav, .skip-link, .prova-topo, footer, .footer, .indice, .leitura__sol, .sol, .veu, .ver, .sol-fontes, .legenda-flutua, .folha-num { display: none !important; }
  main, .leitura, .leitura__grelha, .leitura__papel { display: block !important; padding: 0 !important; margin: 0 !important; background: none !important; }
  .so-impressao { display: block; break-before: page; }
  .folha-sombra { box-shadow: none !important; break-after: auto; }
  .folha { width: auto !important; min-height: 0 !important; padding-top: 0 !important; padding-bottom: 0 !important; margin: 0 !important; box-sizing: border-box; }
  .cab { margin-top: 0; }
  .q, .alts, .fig, .texto-leitura p, .gab__grelha li { break-inside: avoid; }
  /* um título (de texto ou de parte) nunca fica sozinho no fundo da página */
  .texto-leitura__tit, .texto-leitura p:has(> strong:only-child), .q-e p:has(> strong:only-child), h2, h3 { break-after: avoid; }
  .q.ativa { background: none !important; }
  .q.ativa .q-n { color: inherit !important; }
}
