/* Blocos de conteúdo dos temas (js/ui/blocos.js) */
.lead { font-size: 1.0625rem; line-height: 1.5; }

.topic-intro { display: flex; gap: 14px; align-items: flex-start; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px; }
.topic-intro > .ico { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; background: var(--surface-2); color: var(--primary); flex: none; }
.topic-intro > div { display: grid; gap: 8px; min-width: 0; }
.topic-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.topic-tags .tag { text-transform: none; letter-spacing: .02em; font-family: var(--font-ui); font-size: .75rem; }
.tag .dot { width: 8px; height: 8px; border-radius: 50%; }
.tag svg.i.sm { width: 14px; height: 14px; }

.topic-body { display: grid; gap: 24px; }
.topic-sources:empty { display: none; }
.blk { display: grid; gap: 12px; }
.blk-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.blk-head h2 { font-size: 1.125rem; }

/* Destaques: números grandes */
.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; }
.fact { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); padding: 14px 16px; display: grid; gap: 4px; }
.fact b { font-family: var(--font-mono); font-size: 1.375rem; line-height: 1.15; color: var(--primary); }
.fact small { color: var(--text-muted); font-size: .8125rem; line-height: 1.35; }

/* Passos numerados */
.steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; counter-reset: passo; }
.steps li {
  counter-increment: passo; display: grid; grid-template-columns: 32px 1fr; gap: 12px; align-items: center; line-height: 1.45;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px 14px;
}
.steps li::before {
  content: counter(passo); width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center;
  background: var(--primary); color: var(--on-primary); font-family: var(--font-mono); font-weight: 700; font-size: .875rem;
}

/* Lista com check */
.checks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.checks li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.45; }
.checks li > .i { color: var(--verde-escuro); margin-top: 2px; }
[data-theme="dark"] .checks li > .i { color: var(--ok-fg); }

/* Pode / não pode */
.can-cant { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.can-cant > div { border-radius: var(--r-md); padding: 14px 16px; display: grid; gap: 8px; align-content: start; }
.can-cant h3 { display: flex; align-items: center; gap: 8px; font-size: .9375rem; text-transform: uppercase; letter-spacing: .06em; font-family: var(--font-mono); }
.can-cant ul { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; line-height: 1.45; }
.can { background: var(--ok-bg); color: var(--ok-fg); }
.cant { background: rgb(180 35 24 / .08); color: var(--danger-fg); }
[data-theme="dark"] .cant { background: rgb(255 138 128 / .12); }
.can li, .cant li { color: var(--text); }

/* Linha do tempo */
.timeline { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.timeline li { display: grid; grid-template-columns: 64px 1fr; gap: 14px; position: relative; padding-bottom: 16px; }
.timeline li::before { content: ""; position: absolute; left: 31px; top: 36px; bottom: 0; border-left: 2px dashed var(--line); }
.timeline li:last-child::before { display: none; }
.timeline li:last-child { padding-bottom: 0; }
.timeline .mark {
  height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--board-bg); color: var(--board-mark);
  font-family: var(--font-mono); font-weight: 700; font-size: .875rem; padding: 0 4px; text-align: center; line-height: 1.1;
}
.timeline li > div { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); padding: 12px 14px; display: grid; gap: 4px; }
.timeline li p { color: var(--text-muted); font-size: .9375rem; }

/* Acordeão */
.accordion { display: grid; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.accordion details + details { border-top: 1px solid var(--line); }
.accordion summary {
  list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: var(--touch); padding: 12px 16px; font-weight: 700; cursor: pointer;
}
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary:hover { background: var(--surface-2); }
.accordion summary .i { transform: rotate(90deg); transition: transform .2s var(--ease); color: var(--text-muted); }
.accordion details[open] summary .i { transform: rotate(-90deg); }
.acc-body { padding: 0 16px 16px; display: grid; gap: 8px; line-height: 1.5; }
.acc-body ul { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; }
.acc-body .tag { justify-self: start; }

/* Regras por companhia */
.airlines { display: grid; gap: 10px; }
.airline { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); padding: 14px 16px; display: grid; gap: 8px; }
.airline h3 { display: flex; align-items: center; gap: 8px; }
.airline .dot { width: 10px; height: 10px; border-radius: 50%; }
.airline ul { margin: 0; padding-left: 1.1em; display: grid; gap: 6px; line-height: 1.45; }

/* Chamada para outra tela */
.cta-box {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;
  background: var(--surface-2); border-radius: var(--r-md); padding: 16px;
}
.cta-box > div { display: grid; gap: 2px; flex: 1 1 220px; }

/* Fontes oficiais */
.sources ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.sources a { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; color: var(--primary); font-weight: 600; text-underline-offset: 3px; }
.sources a .i { flex: none; }
