/* ============================================================
   Correções de responsividade para dispositivos móveis
   Carregado por último (mu-plugin) para sobrepor com segurança.
   ============================================================ */

/* Rede de segurança: sobras laterais de poucos px não geram
   rolagem horizontal na página inteira. "clip" não cria um
   contêiner de rolagem, então não quebra position:sticky. */
html, body { overflow-x: clip; }
body { max-width: 100%; }

/* Strings longas sem espaço (DOIs, PMIDs, URLs) quebram em vez
   de esticar a largura do contêiner. */
.supplement-prose a,
.reference-list a,
.reference-list p,
.source-list a,
.matrix-study-link,
.matrix-evidence a,
.assessment-sources a,
.evidence-table a {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Mídia e tabelas nunca ultrapassam a largura da tela. */
img, svg, video, iframe, table { max-width: 100%; }

@media (max-width: 640px) {
  /* -----------------------------------------------------------
     Tabela de estudos (Ano · Fonte · Identificador) nas páginas
     de condição: em vez de rolar para o lado, empilha em cartões.
     ----------------------------------------------------------- */
  .table-wrap {
    overflow-x: visible;
    border: 0;
    border-radius: 0;
  }
  .evidence-table {
    min-width: 0;
    display: block;
    background: transparent;
  }
  .evidence-table thead {
    position: absolute;
    width: 1px; height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .evidence-table tbody,
  .evidence-table tr,
  .evidence-table td {
    display: block;
    width: 100%;
  }
  .evidence-table tr {
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    margin-bottom: .8rem;
    overflow: hidden;
  }
  .evidence-table td {
    border-top: 0;
    padding: .7rem 1rem;
  }
  .evidence-table td:not(:last-child) {
    border-bottom: 1px solid var(--line);
  }
  .evidence-table td::before {
    display: block;
    margin-bottom: .25rem;
    font: 500 .55rem var(--mono);
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #77837f;
  }
  .evidence-table td:nth-child(1)::before { content: 'Ano'; }
  .evidence-table td:nth-child(2)::before { content: 'Fonte'; }
  .evidence-table td:nth-child(3)::before { content: 'Identificador'; }
  .evidence-table td:first-child { font-weight: 700; color: var(--ink); }

  /* Grades de cartões: garantir que caibam sem estourar a largura. */
  .condition-grid,
  .supplement-grid,
  .catalog-grid,
  .inline-supplements {
    gap: .8rem;
  }
}
