/* Alerta Legislativo: estilo próprio, sem fontes nem recursos externos. */
:root {
  --fundo: #fbfaf7;
  --superficie: #ffffff;
  --texto: #1c1c22;
  --suave: #4d4f5c;
  --link: #0a4d9e;
  --destaque-texto: #8c2f00;
  --cab-fundo: #1d2b4a;
  --cab-texto: #ffffff;
  --foco: #0a58c9;
  --borda: #d5d2ca;
  --borda-forte: #75716a;
  --botao-fundo: #0a4d9e;
  --botao-texto: #ffffff;
  --alta-fundo: #fbe3df;
  --alta-texto: #7a1209;
  --media-fundo: #fdf0d0;
  --media-texto: #5c3b00;
  --baixa-fundo: #e4eef7;
  --baixa-texto: #17405f;
  --aviso-fundo: #fff4d6;
  --aviso-texto: #5c3b00;
  --alerta: #f5b700;
  --alerta-borda: #1d2b4a;
  --alerta-tinta: #1d2b4a;
  --quadro-fundo: #1d2b4a;
  --quadro-texto: #ffffff;
  color-scheme: light;
}

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --fundo: #121418;
    --superficie: #1c1f26;
    --texto: #ececf1;
    --suave: #b0b3c0;
    --link: #8fbcff;
    --destaque-texto: #ffb48a;
    --cab-fundo: #0a0c11;
    --cab-texto: #f2f2f6;
    --foco: #ffd166;
    --borda: #343846;
    --borda-forte: #8a8e9d;
    --botao-fundo: #8fbcff;
    --botao-texto: #0b1020;
    --alta-fundo: #5a1a14;
    --alta-texto: #ffd9d3;
    --media-fundo: #4a3708;
    --media-texto: #ffe8b0;
    --baixa-fundo: #1c3347;
    --baixa-texto: #cfe4f7;
    --aviso-fundo: #3d3108;
    --aviso-texto: #ffe8b0;
    --alerta: #ffc61a;
    --alerta-borda: #0a0c11;
    --alerta-tinta: #0a0c11;
    --quadro-fundo: #0a0c11;
    --quadro-texto: #ffffff;
    color-scheme: dark;
  }
}

:root[data-theme="dark"] {
  --fundo: #121418;
  --superficie: #1c1f26;
  --texto: #ececf1;
  --suave: #b0b3c0;
  --link: #8fbcff;
  --destaque-texto: #ffb48a;
  --cab-fundo: #0a0c11;
  --cab-texto: #f2f2f6;
  --foco: #ffd166;
  --borda: #343846;
  --borda-forte: #8a8e9d;
  --botao-fundo: #8fbcff;
  --botao-texto: #0b1020;
  --alta-fundo: #5a1a14;
  --alta-texto: #ffd9d3;
  --media-fundo: #4a3708;
  --media-texto: #ffe8b0;
  --baixa-fundo: #1c3347;
  --baixa-texto: #cfe4f7;
  --aviso-fundo: #3d3108;
  --aviso-texto: #ffe8b0;
  --alerta: #ffc61a;
  --alerta-borda: #0a0c11;
  --alerta-tinta: #0a0c11;
  --quadro-fundo: #0a0c11;
  --quadro-texto: #ffffff;
  color-scheme: dark;
}

*, *::before, *::after { box-sizing: border-box; }

html { background: var(--fundo); scroll-padding-top: 7rem; -webkit-text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--fundo);
  color: var(--texto);
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  font-size: 1.0625rem;
  line-height: 1.6;
  overflow-wrap: break-word;
}

[hidden] { display: none !important; }

a { color: var(--link); text-underline-offset: 0.15em; }
a:hover { text-decoration-thickness: 2px; }

:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; border-radius: 2px; }

.pular {
  position: absolute; left: 0.5rem; top: -4rem; z-index: 20;
  background: var(--botao-fundo); color: var(--botao-texto);
  padding: 0.6rem 1rem; border-radius: 0.3rem; font-weight: 600;
}
.pular:focus { top: 0.5rem; }

.so-leitor {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Cabeçalho fixo e simples */
.topo { position: sticky; top: 0; z-index: 10; background: var(--cab-fundo); color: var(--cab-texto); }
.topo-in { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.5rem 1rem 0; max-width: 84rem; margin: 0 auto; }
.marca { color: var(--cab-texto); font-weight: 700; font-size: 1.15rem; text-decoration: none; letter-spacing: 0.01em; }
.marca:hover { text-decoration: underline; }
.menu { max-width: 84rem; margin: 0 auto; padding: 0 0.5rem; }
.menu ul { list-style: none; margin: 0; padding: 0.25rem 0 0.4rem; display: flex; gap: 0.25rem; overflow-x: auto; white-space: nowrap; }
.menu a { display: block; color: var(--cab-texto); text-decoration: none; padding: 0.4rem 0.7rem; border-radius: 0.3rem; }
.menu a:hover { text-decoration: underline; }
.menu a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 3px; text-underline-offset: 0.3em; font-weight: 700; }
.topo :focus-visible { outline-color: var(--cab-texto); }

.seletor-tema { display: flex; align-items: center; gap: 0.25rem; color: var(--cab-texto); }
.seletor-tema .peq { color: var(--cab-texto); }
.seletor-tema button {
  font: inherit; font-size: 0.875rem; cursor: pointer; padding: 0.25rem 0.6rem; border-radius: 0.3rem;
  background: transparent; color: var(--cab-texto); border: 1px solid var(--cab-texto);
}
.seletor-tema button[aria-pressed="true"] { background: var(--cab-texto); color: var(--cab-fundo); font-weight: 700; }

main { max-width: 84rem; margin: 0 auto; padding: 1rem 1rem 3rem; }
main:focus { outline: none; }

h1 { font-size: clamp(1.5rem, 4.5vw, 2.1rem); line-height: 1.2; margin: 0.5rem 0 1rem; }
h2 { font-size: 1.4rem; line-height: 1.25; margin: 2rem 0 0.6rem; }
h3 { font-size: 1.15rem; margin: 1.2rem 0 0.4rem; }
p, ul, ol { margin: 0.6rem 0; }
li { margin: 0.25rem 0; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 0.92em; background: var(--superficie); border: 1px solid var(--borda); padding: 0 0.25em; border-radius: 0.2rem; }

.lead { font-size: 1.15rem; max-width: 62rem; }
.peq { font-size: 0.875rem; color: var(--suave); }
td .peq, th .peq { display: block; }
.num { text-align: right; font-variant-numeric: tabular-nums; }
.vazio { color: var(--suave); font-style: italic; }
.atualizacao { color: var(--suave); }

.migalhas ol { list-style: none; display: flex; flex-wrap: wrap; gap: 0.25rem; padding: 0; margin: 0.25rem 0; font-size: 0.9rem; }
.migalhas li + li::before { content: "/"; margin-right: 0.25rem; color: var(--suave); }

/* Tabelas */
.rolagem { position: relative; overflow-x: auto; max-width: 100%; border: 1px solid var(--borda); border-radius: 0.4rem; background: var(--superficie); margin: 1rem 0; }
table { border-collapse: collapse; width: 100%; font-size: 0.95rem; }
table.grande { min-width: 64rem; }
caption { text-align: left; font-weight: 700; padding: 0.7rem 0.8rem; color: var(--texto); }
th, td { padding: 0.55rem 0.7rem; vertical-align: top; text-align: left; border-top: 1px solid var(--borda); }
thead th { border-top: 0; border-bottom: 2px solid var(--borda-forte); background: var(--superficie); font-size: 0.85rem; white-space: nowrap; }
tbody th { font-weight: 600; }
td.largo { min-width: 16rem; }
.rolagem:focus-visible { outline-offset: -3px; }
table:not(.grande) { background: var(--superficie); }
main > section > table, main > table { margin: 1rem 0; border: 1px solid var(--borda); }

.nota { font-weight: 700; white-space: nowrap; }
.prio { display: inline-block; padding: 0.2rem 0.55rem; border-radius: 0.4rem; border: 1px solid currentColor; }
.prio .peq { color: inherit; display: inline; }
.prio-num { font-size: 1.15rem; font-weight: 800; }
.prio-alta { background: var(--alta-fundo); color: var(--alta-texto); }
.prio-media { background: var(--media-fundo); color: var(--media-texto); }
.prio-baixa { background: var(--baixa-fundo); color: var(--baixa-texto); }

.botao { display: inline-block; background: var(--botao-fundo); color: var(--botao-texto); font-weight: 700; padding: 0.4rem 0.9rem; border-radius: 0.4rem; text-decoration: none; }
.botao:hover { text-decoration: underline; }

.aviso-dado { display: block; margin-top: 0.3rem; font-size: 0.85rem; padding: 0.2rem 0.5rem; border-radius: 0.3rem; background: var(--aviso-fundo); color: var(--aviso-texto); border: 1px solid currentColor; }
.aviso-dado.bloco { display: block; }

.selo { display: inline-block; font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; padding: 0.05rem 0.5rem; border-radius: 0.3rem; border: 1px solid currentColor; margin-right: 0.4rem; vertical-align: 0.1em; }
.selo-fato { color: var(--link); }
.selo-nosso { color: var(--destaque-texto); }

.tag { display: inline-block; font-size: 0.85rem; padding: 0 0.5rem; margin: 0 0.25rem 0.25rem 0; border: 1px solid var(--borda-forte); border-radius: 999px; }

.painel, .bloco { background: var(--superficie); border: 1px solid var(--borda); border-radius: 0.5rem; padding: 0.2rem 1rem 0.8rem; margin: 1rem 0; }
.painel h2, .bloco h2, .bloco h3 { margin-top: 0.8rem; }
.ficha-tec { display: grid; grid-template-columns: max-content 1fr; gap: 0.35rem 1rem; margin: 0.6rem 0; }
.ficha-tec dt { font-weight: 700; }
.ficha-tec dd { margin: 0; }
.avaliacao { border-left: 4px solid var(--destaque-texto); padding-left: 0.8rem; }

/* Filtros */
.filtros { display: flex; flex-wrap: wrap; gap: 0.8rem 1rem; align-items: end; margin: 1rem 0; padding: 0.8rem; border: 1px solid var(--borda); border-radius: 0.5rem; background: var(--superficie); }
.filtros label { display: block; font-weight: 600; font-size: 0.9rem; margin-bottom: 0.2rem; }
.filtros input, .filtros select { font: inherit; padding: 0.4rem 0.5rem; min-width: 12rem; max-width: 100%; background: var(--fundo); color: var(--texto); border: 1px solid var(--borda-forte); border-radius: 0.3rem; }
.filtros p { margin: 0; }

.rodape { max-width: 84rem; margin: 0 auto; padding: 1rem 1rem 2.5rem; border-top: 1px solid var(--borda); color: var(--suave); font-size: 0.92rem; }

nav[aria-label="Nesta página"] ul { columns: 2 16rem; }

@media (max-width: 40rem) {
  body { font-size: 1rem; }
  .ficha-tec { grid-template-columns: 1fr; }
  .ficha-tec dd { margin-bottom: 0.4rem; }
  .filtros input, .filtros select { min-width: 0; width: 100%; }
  .filtros > div { flex: 1 1 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

@media print {
  .topo, .seletor-tema, .filtros, .pular { display: none !important; }
  body { background: #fff; color: #000; }
}
nav ul.cols { columns: 2 18rem; }

.faixa-previa { background: var(--aviso-fundo); color: var(--aviso-texto); border-bottom: 3px solid var(--aviso-texto); text-align: center; font-weight: 800; padding: 0.4rem 1rem; letter-spacing: 0.03em; }
.selo-pendente { color: var(--aviso-texto); background: var(--aviso-fundo); display: inline-block; margin: 0.2rem 0 0; }

/* Início: título em destaque, centrado */
.hero {
  text-align: center;
  margin: 1.5rem auto 1.75rem;
  padding: 1.75rem 1rem 1.5rem;
  border-top: 6px solid var(--alta-texto);
  border-bottom: 1px solid var(--borda);
  background: var(--alta-fundo);
  border-radius: 0 0 10px 10px;
}
.hero-marca {
  margin: 0 0 0.4rem;
  font-size: clamp(0.85rem, 2.2vw, 1rem);
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--alta-texto);
}
.titulo-principal {
  margin: 0 auto;
  max-width: 22ch;
  font-size: clamp(2rem, 7vw, 3.6rem);
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.015em;
  color: var(--alta-texto);
  text-wrap: balance;
}
.aviso-cobertura { margin: 1rem auto 0; max-width: 46rem; font-size: 0.98rem; color: var(--texto); }

/* Marca: quadro com símbolo de alerta (identidade visual própria) */
.marca { display: inline-flex; align-items: center; gap: 0.5rem; }
.marca .simbolo { width: 1.6rem; height: auto; flex: none; }
.marca-quadro {
  display: inline-flex; align-items: center; gap: clamp(0.6rem, 2.5vw, 1.2rem);
  margin: 0 auto 1.25rem; padding: clamp(0.7rem, 2.5vw, 1.1rem) clamp(1rem, 4vw, 1.8rem);
  background: var(--quadro-fundo); color: var(--quadro-texto);
  border: 4px solid var(--alerta); border-radius: 14px;
  box-shadow: 0 0 0 4px var(--quadro-fundo), 0 10px 24px rgba(0, 0, 0, 0.18);
  max-width: 100%;
}
.marca-quadro .simbolo { width: clamp(2.2rem, 9vw, 5.5rem); height: auto; flex: none; }
.marca-texto {
  display: flex; flex-direction: column; align-items: flex-start; text-align: left;
  font-size: clamp(1.5rem, 7.4vw, 4.8rem); font-weight: 900; line-height: 0.95;
  letter-spacing: -0.02em; text-transform: uppercase;
}
.marca-texto span:last-child { color: var(--alerta); }

/* Celular: cada linha das tabelas de propostas vira um cartão (a tabela continua sendo <table> no HTML).
   Grade: posição, nome e prioridade no alto; o que faz; dano e chance lado a lado; situação; casa e autoria; Votar. */
@media (max-width: 45rem) {
  .topo { position: static; }
  .menu ul { flex-wrap: wrap; white-space: normal; overflow: visible; gap: 0.1rem 0.2rem; }
  .menu a { padding: 0.35rem 0.55rem; }
  .rolagem:has(table.cartoes) { overflow: visible; border: 0; background: none; margin: 0.5rem 0; }
  table.cartoes { min-width: 0; display: block; font-size: 1rem; background: none; }
  table.cartoes caption { display: block; padding: 0.4rem 0; }
  table.cartoes thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.cartoes tbody { display: block; }
  table.cartoes tr {
    display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr) auto; width: 100%; gap: 0.6rem 0.7rem; align-items: start;
    grid-template-areas: "pos nome nome prio" "faz faz faz faz" "dano dano chance chance" "situ situ situ situ"
                         "meta meta meta meta" "autor autor autor autor" "acao acao acao acao";
    margin: 0 0 1.1rem; padding: 0.9rem 0.9rem 1rem;
    background: var(--superficie); border: 1px solid var(--borda); border-left: 6px solid var(--borda-forte);
    border-radius: 0.7rem; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
  }
  table.cartoes tr.linha-alta { border-left-color: var(--alta-texto); }
  table.cartoes tr.linha-media { border-left-color: var(--alerta); }
  table.cartoes tr.linha-baixa { border-left-color: var(--baixa-texto); }
  table.cartoes th, table.cartoes td { display: block; border: 0; padding: 0; text-align: left; min-width: 0; }
  table.cartoes td::before { content: attr(data-label); display: block; font-size: 0.78rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.04em; color: var(--suave); margin-bottom: 0.1rem; }
  table.cartoes td.num { grid-area: pos; width: 2.4rem; height: 2.4rem; border-radius: 50%; display: flex;
    align-items: center; justify-content: center; font-weight: 800; font-size: 1.05rem;
    background: var(--cab-fundo); color: var(--cab-texto); }
  table.cartoes td.num::before { display: none; }
  table.cartoes tbody th { grid-area: nome; font-size: 1.3rem; line-height: 1.2; align-self: center; }
  table.cartoes tbody th a { font-weight: 800; }
  table.cartoes td.prioridade { grid-area: prio; text-align: center; }
  table.cartoes td.prioridade::before { display: none; }
  table.cartoes td.prioridade .prio { display: flex; flex-direction: column; align-items: center; padding: 0.15rem 0.6rem; line-height: 1.1; }
  table.cartoes td.prioridade .prio-num { font-size: 1.5rem; }
  table.cartoes td.prioridade .prio .peq { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; }
  table.cartoes td.largo { grid-area: faz; font-size: 1.08rem; line-height: 1.45; }
  table.cartoes td.largo::before { display: none; }
  table.cartoes td.medida { padding: 0.45rem 0.6rem; border-radius: 0.5rem; background: var(--fundo); border: 1px solid var(--borda); }
  table.cartoes td[data-label="Dano"] { grid-area: dano; }
  table.cartoes td[data-label="Chance"] { grid-area: chance; }
  table.cartoes td.medida .peq { display: block; }
  table.cartoes td.situ { grid-area: situ; padding: 0.5rem 0.6rem; border-radius: 0.5rem; background: var(--baixa-fundo);
    color: var(--baixa-texto); }
  table.cartoes td.situ::before { color: inherit; }
  table.cartoes td.situ .peq { color: inherit; display: block; }
  table.cartoes td.casa { grid-area: meta; display: inline; font-size: 0.92rem; color: var(--suave); }
  table.cartoes td.casa::before, table.cartoes td.autor::before { display: inline; content: attr(data-label) ": ";
    font-size: 0.92rem; text-transform: none; letter-spacing: 0; }
  table.cartoes td.autor { grid-area: autor; font-size: 0.92rem; color: var(--suave); }
  table.cartoes td .peq { display: inline; }
  table.cartoes td.acao { grid-area: acao; margin-top: 0.2rem; }
  table.cartoes td.acao::before { display: none; }
  table.cartoes td.acao .botao { display: block; width: 100%; text-align: center; padding: 0.75rem 1rem; font-size: 1.2rem; }
  table.cartoes td.acao .peq { display: block; text-align: center; margin-top: 0.3rem; }
  table.cartoes .rotulos { margin-top: 0.35rem; }

}

/* Início com carrossel: marca, título e aviso centrados numa coluna; carrossel à direita, alinhado ao topo
   (celular: abaixo do título). */
.hero-duplo { display: grid; grid-template-columns: 1fr; gap: 1.75rem; align-items: start; justify-items: center; }
.hero-duplo .hero-texto { min-width: 0; display: flex; flex-direction: column; align-items: center; text-align: center; }
.hero-duplo .marca-quadro { margin: 0 0 1.25rem; }
.hero-duplo .titulo-principal { margin: 0; max-width: 16ch; }
.hero-duplo .aviso-cobertura { margin: 1rem 0 0; max-width: 34rem; }
@media (min-width: 60rem) {
  .hero-duplo { grid-template-columns: minmax(0, 1fr) 23rem; gap: 2.5rem; align-items: center; padding: 2rem 2rem 1.75rem; }
}

/* Carrossel de cartões */
.carrossel { min-width: 0; width: 100%; max-width: 23rem; text-align: center; }
.carrossel-titulo { font-size: 1.25rem; margin: 0 0 0.6rem; color: var(--alta-texto); }
.carrossel-controles { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; margin: 0 0 0.6rem; }
.seta { font: inherit; font-size: 2rem; line-height: 1; width: 3rem; height: 3rem; cursor: pointer; border-radius: 50%;
  background: var(--botao-fundo); color: var(--botao-texto); border: 0; display: inline-flex; align-items: center; justify-content: center; padding: 0 0 0.2rem; }
.seta:disabled { background: var(--borda); color: var(--suave); cursor: default; }
.contador { font-size: 1.15rem; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--texto); }
.carrossel .faixa {
  position: relative; display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; overscroll-behavior-x: contain;
  gap: 1rem; scrollbar-width: none;
}
.carrossel .faixa::-webkit-scrollbar { display: none; }
.carrossel .slide { flex: 0 0 100%; scroll-snap-align: start; min-width: 0; }
.carrossel .slide img { display: block; width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--borda-forte);
  background: var(--superficie); box-shadow: 0 6px 18px rgba(0, 0, 0, 0.14); }
.slide-acoes { display: grid; grid-template-columns: 1fr 1fr; gap: 0.5rem; margin-top: 0.75rem; }
.slide-acoes .botao-zap { grid-column: 1 / -1; font-size: 1.1rem; padding: 0.7rem 0.8rem; }
.botao-sec { font: inherit; font-size: 1rem; font-weight: 700; cursor: pointer; text-decoration: none; text-align: center;
  background: var(--superficie); color: var(--link); border: 2px solid var(--link); padding: 0.55rem 0.6rem; border-radius: 0.5rem; }
.botao-sec.botao-zap { background: var(--botao-fundo); color: var(--botao-texto); border-color: var(--botao-fundo); }
.botao-sec:hover { text-decoration: underline; }
.carrossel-status { min-height: 1.4rem; margin: 0.4rem 0 0; }
.fora-da-tela { position: fixed; left: -9999px; top: 0; opacity: 0; }

/* Votar */
.voto-sugerido { margin-top: 0.3rem; }
.votar-bloco { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1.2rem; margin: 0.5rem 0 1.25rem;
  padding: 1rem 1.2rem; border: 2px solid var(--botao-fundo); border-radius: 0.6rem; background: var(--superficie); }
.votar-bloco p { margin: 0; flex: 1 1 18rem; font-size: 1.1rem; }
.botao-votar { font-size: 1.6rem; padding: 0.7rem 2.4rem; border-radius: 0.6rem; letter-spacing: 0.02em; }

/* Dica com as últimas movimentações (details): abre no toque; com mouse, flutua (dica.js) */
.dica summary { cursor: pointer; list-style: none; }
.dica summary::-webkit-details-marker { display: none; }
.dica summary { text-decoration: underline dotted; text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
.dica-ver { display: block; width: fit-content; white-space: nowrap; margin-top: 0.25rem; font-size: 0.8rem; font-weight: 700; color: var(--link);
  border: 1px solid currentColor; border-radius: 999px; padding: 0 0.5rem; text-decoration: none; }
.dica-ver::before { content: "\25B8  "; }
.dica[open] .dica-ver::before { content: "\25BE  "; }
.dica-corpo { margin: 0.4rem 0; padding: 0.6rem 0.8rem; background: var(--superficie); color: var(--texto);
  border: 2px solid var(--borda-forte); border-radius: 0.5rem; font-size: 0.92rem; line-height: 1.45; }
.dica.flutua .dica-corpo { position: fixed; z-index: 30; width: min(30rem, calc(100vw - 1rem)); margin: 0;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.28); }
.dica-corpo ol, .movs { list-style: none; padding: 0; margin: 0.4rem 0; }
.dica-corpo li, .movs li { padding: 0.3rem 0; border-top: 1px solid var(--borda); }
.mov-data { font-weight: 800; font-variant-numeric: tabular-nums; }
.mov-orgao { display: inline-block; font-size: 0.8rem; font-weight: 700; padding: 0 0.4rem; border-radius: 0.3rem;
  background: var(--baixa-fundo); color: var(--baixa-texto); }

/* Histórico na ficha: linha do tempo (SVG) e situações */
.historico { margin: 1.5rem 0; }
.historico-atual { font-size: 1.1rem; }
.diagrama-caixa { border: 1px solid var(--borda); border-radius: 0.5rem; background: var(--superficie); padding: 0.6rem 0.8rem 0.4rem; }
.diagrama { display: block; width: 100%; height: auto; }
.diagrama .eixo { stroke: var(--borda-forte); stroke-width: 2; }
.diagrama .eixo-txt { fill: var(--suave); font-size: 15px; }
.diagrama .seg-a { fill: var(--baixa-fundo); stroke: var(--baixa-texto); stroke-width: 1; }
.diagrama .seg-b { fill: var(--media-fundo); stroke: var(--media-texto); stroke-width: 1; }
.diagrama .seg-atual { fill: var(--alta-fundo); stroke: var(--alta-texto); stroke-width: 2; }
.diagrama .ponto-mov { fill: var(--link); fill-opacity: 0.55; }
.diagrama-legenda { display: flex; flex-wrap: wrap; align-items: center; gap: 0.3rem 0.5rem; margin: 0.3rem 0 0; }
.diagrama-datas { margin-left: auto; font-variant-numeric: tabular-nums; }
.leg { display: inline-block; width: 1rem; height: 0.8rem; border-radius: 0.2rem; vertical-align: middle; }
.leg-mov { width: 0.7rem; height: 0.7rem; border-radius: 50%; background: var(--link); opacity: 0.55; }
.leg-seg { background: var(--baixa-fundo); border: 1px solid var(--baixa-texto); }
.leg-atual { background: var(--alta-fundo); border: 2px solid var(--alta-texto); }
.linha-tempo { list-style: none; margin: 0.6rem 0; padding: 0 0 0 1.4rem; border-left: 3px solid var(--borda-forte); }
.linha-tempo li { position: relative; margin: 0 0 0.7rem; }
.linha-tempo li::before { content: ""; position: absolute; left: -1.95rem; top: 0.35rem; width: 0.9rem; height: 0.9rem;
  border-radius: 50%; background: var(--superficie); border: 3px solid var(--borda-forte); }
.linha-tempo li.atual::before { background: var(--alta-texto); border-color: var(--alta-texto); }
.linha-tempo .lt-data { display: block; font-size: 0.9rem; color: var(--suave); font-variant-numeric: tabular-nums; }
.linha-tempo li.atual strong { color: var(--alta-texto); }
.todas summary { cursor: pointer; font-weight: 700; color: var(--link); }

/* Tabela no computador: sem rolagem lateral em telas comuns e com folga à direita da última coluna */
@media (min-width: 45.01rem) {
  table.grande { min-width: 60rem; }
  td.largo { min-width: 14rem; }
  td.autor { max-width: 11rem; }
  td.acao { min-width: 9rem; padding-right: 1.25rem; }
  thead th:last-child { padding-right: 1.25rem; }
  .rolagem { padding-right: 0.25rem; }
}

/* Ordenação por coluna (ordenar.js) */
.ordenar { font: inherit; font-weight: 700; color: inherit; background: none; border: 0; padding: 0; cursor: pointer;
  display: inline-flex; align-items: center; gap: 0.25rem; white-space: nowrap; }
.ordenar::after { content: "\2195"; color: var(--suave); font-size: 0.9em; }
th[aria-sort="ascending"] .ordenar::after { content: "\25B2"; color: var(--link); }
th[aria-sort="descending"] .ordenar::after { content: "\25BC"; color: var(--link); }
.ordenar:hover { text-decoration: underline; }
.ordem { display: none; align-items: center; gap: 0.6rem; margin: 0.8rem 0 0.4rem; font-weight: 700; }
.ordem select { font: inherit; font-weight: 400; padding: 0.45rem 0.5rem; flex: 1; max-width: 22rem; background: var(--superficie);
  color: var(--texto); border: 1px solid var(--borda-forte); border-radius: 0.4rem; }

/* Medidor de 1 a 5 (dano e chance) */
.pontos { display: block; letter-spacing: 0.12em; font-size: 0.8rem; line-height: 1.3; color: var(--destaque-texto); }
.pontos-1::before { content: "\25CF\25CB\25CB\25CB\25CB"; }
.pontos-2::before { content: "\25CF\25CF\25CB\25CB\25CB"; }
.pontos-3::before { content: "\25CF\25CF\25CF\25CB\25CB"; }
.pontos-4::before { content: "\25CF\25CF\25CF\25CF\25CB"; }
.pontos-5::before { content: "\25CF\25CF\25CF\25CF\25CF"; }

/* Rótulos (assunto): o primeiro é o mais relevante */
:root { --r1f: #e3f1e4; --r1t: #1d5226; --r2f: #f7e6d6; --r2t: #6b3410; --r3f: #efe3f7; --r3t: #5a2378;
  --r4f: #e0ebf8; --r4t: #183f6e; --r5f: #f9e0de; --r5t: #7a1a12; --r6f: #fbf0cc; --r6t: #5c4300; --r7f: #dff2f1; --r7t: #12504c; }
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) { --r1f: #1f3a23; --r1t: #c9eccd; --r2f: #432a16; --r2t: #f6d6b9; --r3f: #3a2348;
    --r3t: #ead2f7; --r4f: #1c3150; --r4t: #cfe0f7; --r5f: #4a1d19; --r5t: #ffd6d1; --r6f: #43380d; --r6t: #f9e7a6;
    --r7f: #17403d; --r7t: #c6efec; }
}
:root[data-theme="dark"] { --r1f: #1f3a23; --r1t: #c9eccd; --r2f: #432a16; --r2t: #f6d6b9; --r3f: #3a2348;
  --r3t: #ead2f7; --r4f: #1c3150; --r4t: #cfe0f7; --r5f: #4a1d19; --r5t: #ffd6d1; --r6f: #43380d; --r6t: #f9e7a6;
  --r7f: #17403d; --r7t: #c6efec; }
.rotulos { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.3rem; font-weight: 400; }
.rotulo { display: inline-flex; align-items: center; font-size: 0.78rem; font-weight: 700; line-height: 1.25;
  padding: 0.12rem 0.55rem; border: 1px solid transparent; border-radius: 999px; background: var(--r4f); color: var(--r4t);
  white-space: nowrap; text-decoration: none; }
.rotulo:first-child { border-color: currentColor; }
a.rotulo:hover { text-decoration: underline; }
/* Na tabela do computador: um rótulo por linha, alinhados à esquerda, sem quebrar o texto do rótulo */
table.grande tbody th .rotulos { flex-direction: column; align-items: flex-start; gap: 0.2rem; margin-top: 0.4rem; }
.rotulo-meio-ambiente, .rotulo-terra { background: var(--r1f); color: var(--r1t); }
.rotulo-povos-indigenas { background: var(--r2f); color: var(--r2t); }
.rotulo-direitos-da-mulher, .rotulo-aborto, .rotulo-lgbtqia { background: var(--r3f); color: var(--r3t); }
.rotulo-democracia, .rotulo-expressao-e-protesto, .rotulo-estado-laico { background: var(--r4f); color: var(--r4t); }
.rotulo-armas-e-policia, .rotulo-penal-e-prisoes, .rotulo-anistia { background: var(--r5f); color: var(--r5t); }
.rotulo-criancas-e-jovens, .rotulo-educacao, .rotulo-cultura { background: var(--r6f); color: var(--r6t); }
.rotulo-trabalho-e-previdencia, .rotulo-assistencia-social, .rotulo-moradia, .rotulo-saude, .rotulo-servicos-publicos,
.rotulo-pessoas-com-deficiencia { background: var(--r7f); color: var(--r7t); }
.rotulos-ficha .rotulos { margin: 0 0 0.6rem; }
.rotulos-ficha .rotulo { font-size: 0.95rem; padding: 0.15rem 0.7rem; }

/* Quadro de últimas movimentações, abaixo do título (baixo, com rolagem) */
.movimentos { margin: 0 0 1.5rem; border: 1px solid var(--borda-forte); border-radius: 0.6rem; background: var(--superficie); overflow: hidden; }
.mov-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 0.5rem 0.9rem;
  background: var(--cab-fundo); color: var(--cab-texto); }
.mov-cab h2 { margin: 0; font-size: 1.05rem; }
.mov-cab a { color: var(--cab-texto); font-weight: 700; font-size: 0.92rem; }
.mov-lista { list-style: none; margin: 0; padding: 0 0.9rem; max-height: 11.5rem; overflow-y: auto; overscroll-behavior: contain; }
.mov-lista li { margin: 0; padding: 0.4rem 0; border-top: 1px solid var(--borda); line-height: 1.4; }
.mov-lista li:first-child { border-top: 0; }
.mov-prop { font-weight: 800; }
.mov-txt { color: var(--texto); }
.mov-dia { font-size: 1.1rem; margin: 1.4rem 0 0.3rem; padding-bottom: 0.2rem; border-bottom: 2px solid var(--borda-forte); }
@media (max-width: 45rem) {
  .mov-lista { max-height: 14rem; font-size: 0.95rem; }
  .ordem { display: flex; }
}
.dica-ver { white-space: nowrap; }

/* Índice de assuntos */
.lista-assuntos { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); gap: 0.6rem 1rem; }
.lista-assuntos li { margin: 0; display: flex; align-items: center; gap: 0.5rem; }
.lista-assuntos .rotulo { font-size: 1rem; padding: 0.25rem 0.8rem; }

/* Botão Votar: mostra o endereço oficial para onde leva (mouse ou teclado); no toque, fica sempre visível */
a[data-destino] { position: relative; }
a[data-destino]::after {
  content: attr(data-destino); position: absolute; z-index: 25; top: calc(100% + 0.4rem); right: 0;
  width: max-content; max-width: min(22rem, 80vw); white-space: pre-line; text-align: left;
  font-size: 0.8rem; font-weight: 600; line-height: 1.35; overflow-wrap: anywhere;
  padding: 0.4rem 0.6rem; border-radius: 0.4rem; background: var(--cab-fundo); color: var(--cab-texto);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25); opacity: 0; visibility: hidden; pointer-events: none;
}
a[data-destino]:hover::after, a[data-destino]:focus-visible::after { opacity: 1; visibility: visible; }
.votar-bloco a[data-destino]::after { left: 0; right: auto; }
@media (hover: none) {
  a[data-destino]::after { position: static; display: block; opacity: 1; visibility: visible; width: auto; max-width: none;
    margin-top: 0.45rem; background: transparent; color: inherit; box-shadow: none; padding: 0; font-weight: 400;
    text-align: center; }
}

/* Esfera estadual: bloco "Agir" (sem consulta pública por projeto) e índice dos estados */
.agir-bloco .contatos { list-style: none; padding: 0; margin: 0.6rem 0 0; display: grid; gap: 0.3rem; font-size: 0.95rem; }
.agir-bloco .contatos li { overflow-wrap: anywhere; }
.lista-estados { padding-left: 1.2rem; display: grid; gap: 0.4rem; font-size: 1.05rem; }

/* Bloco "Compartilhe esta proposta" na ficha: o cartão dela, do tamanho da coluna */
.compartilhar { max-width: 26rem; margin: 2rem 0; }
.compartilhar img { display: block; max-width: 100%; height: auto; border-radius: 12px; border: 1px solid var(--borda-forte); }
