/* Callil — sistema visual v3 (ADR-0019, método "UI/UX definitivo").
   Um azul institucional faz quase tudo (marca, ação primária, link); estados em
   laranja-queimado / verde / cinza, sempre com ícone e rótulo; um amarelo
   "marca-texto" é o traço de personalidade e só aparece onde está a próxima ação
   ou a evidência lida da lei. Corpo de texto em 16 px; escala de espaço em base 4. */

:root {
  --texto: #1E2229;
  --texto-2: #575E6B;
  --marca: #1F4FB4;
  --fundo: #F3F4F6;
  --superficie: #FFFFFF;
  --superficie-2: #F8F9FA;
  --borda: #DDE0E5;
  --borda-forte: #7D8490;
  --link: var(--marca-ui); /* v3: link é a própria cor de marca, não um segundo azul */
  --marca-forte: #173E8F;
  --viol: #BA4E00;        --viol-tinta: #FDF1E6;
  --viol-forte: #8A3A00;
  --ok: #0F7A52;          --ok-tinta: #E6F2EA;
  --nv: #5C5C5C;          --nv-tinta: #EEEEEC;
  --info-tinta: #E8EEFB;
  --foco: #C2850C;
  --palco: var(--marca);
  --palco-texto: #FFFFFF;
  --palco-texto-2: rgba(255,255,255,.84);
  --fonte: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --marca-fonte: "Plus Jakarta Sans", "Arial Black", sans-serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --raio: 10px;          /* campos, botões, linhas */
  --raio-p: 999px;       /* selos, abas, pílulas */
  /* Escala tipográfica (8 passos) */
  --t-legenda: 12px; --t-apoio: 14px; --t-corpo: 16px; --t-destaque: 18px;
  --t-subtitulo: 20px; --t-titulo: 24px; --t-display: 32px; --t-numero: 44px;
  /* Bordas e tintas de estado */
  --viol-borda: #EBC9AE; --viol-forte-borda: #D9A98A; --ok-borda: #BFDCCB; --nv-borda: #CFCFCB; --info-borda: #C5D3F3;
  --pauta: #FFF4D6; --pauta-borda: #E6CC8A; --pauta-texto: #1E2229; --pauta-marca: #B88600;
  /* Marca-texto: a próxima ação e o trecho de lei. Único elemento "de personalidade". */
  --realce: #FFE45C; --realce-tinta: #FFF7CC; --realce-borda: #E3C21F; --realce-texto: #1E2229;
  /* Espaço (base 4) e movimento */
  --e1: 4px; --e2: 8px; --e3: 12px; --e4: 16px; --e5: 24px; --e6: 32px; --e7: 48px; --e8: 64px;
  --dur-rapida: 150ms; --dur-media: 250ms; --curva-entrada: cubic-bezier(.2,.8,.2,1); --curva-saida: cubic-bezier(.4,0,1,1);
  --raio-c: 16px;        /* cartões e faixas */
  --raio-palco: 28px;    /* base do palco */
  --elevacao: 0 1px 2px rgba(16,24,40,.06), 0 10px 28px -8px rgba(16,24,40,.14);
  --largura: 1200px;
  color-scheme: light;
}

/* Tema escuro — tokens próprios, contraste verificado (texto ≥ 6,5:1; estados ≥ 6,1:1 sobre suas tintas) */
:root[data-theme="dark"] {
  --texto: #E8E8E6;
  --texto-2: #A9AAA7;
  --marca-ui: #5885E2;
  --fundo: #17181B;
  --superficie: #222327;
  --superficie-2: #1D1E22;
  --palco: color-mix(in srgb, var(--marca) 46%, #121316);
  --palco-texto-2: rgba(255,255,255,.80);
  --elevacao: 0 1px 2px rgba(0,0,0,.4), 0 12px 32px -10px rgba(0,0,0,.6);
  --viol-borda: #5A3A22; --viol-forte-borda: #6B4628; --ok-borda: #2A5A44; --nv-borda: #4A4B50; --info-borda: #34508A;
  --pauta: #3A3012; --pauta-borda: #6B5A22; --pauta-texto: #F2D27A; --pauta-marca: #F2D27A;
  --realce: #F2D27A; --realce-tinta: #3A3012; --realce-borda: #8A7426; --realce-texto: #1B1C1F;
  --marca-forte: #8FB0FF;
  --borda: #3A3B40;
  --borda-forte: #8A8B88;
  --link: #8FB0FF;
  --viol: #F0924A;        --viol-tinta: #3A2616;
  --viol-forte: #F7B07A;
  --ok: #5FC79A;          --ok-tinta: #16302A;
  --nv: #B9BAB6;          --nv-tinta: #2E2F33;
  --info-tinta: #1C2740;
  --foco: #F2B84B;
  color-scheme: dark;
}
:root { --marca-ui-claro: #1F4FB4; --marca-ui-escuro: #5885E2; --marca-ui: var(--marca-ui-claro); }
:root[data-theme="dark"] { --marca-ui: var(--marca-ui-escuro); }
:root[data-theme="dark"] .zona:hover, :root[data-theme="dark"] .zona.arrastando, :root[data-theme="dark"] .tile:hover, :root[data-theme="dark"] .tabela tbody tr.clicavel:hover { background: #2B2C31; }
:root[data-theme="dark"] .barra .seg.nv, :root[data-theme="dark"] .barra-legenda i.nv { background: repeating-linear-gradient(135deg, #6E6F6C 0 4px, #4A4B48 4px 8px); }
:root[data-theme="dark"] .detalhe-fundo { background: rgba(0,0,0,.6); }
:root[data-theme="dark"] .toast { background: #E8E8E6; color: #1B1C1F; }
:root[data-theme="dark"] .toast.erro { background: var(--viol-forte); color: #1B1C1F; }
:root[data-theme="dark"] .trecho { background: #2B2C31; }
:root[data-theme="dark"] .btn.primario:hover { filter: brightness(1.1); }
:root[data-theme="dark"] input::placeholder, :root[data-theme="dark"] textarea::placeholder { color: #8A8B88; }
:root[data-theme="dark"] .aviso { color: var(--texto); }
.tema .lua { display: none; }
:root[data-theme="dark"] .tema .sol { display: none; }
:root[data-theme="dark"] .tema .lua { display: block; }

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; padding: 0; }
body {
  font-family: var(--fonte); font-size: var(--t-corpo); line-height: 1.5;
  background: var(--fundo); color: var(--texto);
  -webkit-font-smoothing: antialiased;
  font-variant-numeric: tabular-nums slashed-zero;
  min-height: 100vh; display: flex; flex-direction: column;
}
h1, h2, h3, h4 { margin: 0; font-weight: 600; letter-spacing: -0.005em; line-height: 1.25; }
h1 { font-size: var(--t-titulo); }
h2 { font-size: var(--t-destaque); }
h3 { font-size: var(--t-corpo); }
h4 { font-size: var(--t-legenda); text-transform: uppercase; letter-spacing: .06em; color: var(--texto-2); font-weight: 600; }
.h1-marca { font-family: var(--marca-fonte); font-weight: 400; font-size: var(--t-titulo); letter-spacing: 0; }
p { margin: 0; }
a { color: var(--link); }
code, .mono { font-family: var(--mono); font-size: 0.93em; }
.ajuda, .mini { color: var(--texto-2); font-size: var(--t-apoio); }
.lede { color: var(--texto-2); font-size: var(--t-corpo); max-width: 72ch; margin-top: 6px; line-height: 1.5; }
.texto-leitura { font-size: var(--t-corpo); line-height: 1.5; max-width: 68ch; }
.pular { position: absolute; left: -9999px; top: 8px; background: var(--texto); color: #fff; padding: 8px 12px; border-radius: var(--raio); z-index: 100; }
.pular:focus { left: 8px; }
:focus-visible { outline: 2px solid var(--foco); outline-offset: 1px; box-shadow: 0 0 0 4px var(--texto); border-radius: var(--raio); }
.conteudo:focus { outline: none; box-shadow: none; }
button, input, select, textarea { font: inherit; color: inherit; }

/* Topo */
.topo { background: var(--superficie); border-bottom: 1px solid var(--borda); }
.topo-int, .conteudo, .rodape-int { max-width: var(--largura); margin: 0 auto; padding: 0 24px; width: 100%; }
.topo-int { display: flex; align-items: center; gap: 28px; height: 56px; }
.marca { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--texto); }
.marca-selo { width: 30px; height: 30px; border-radius: var(--raio); background: var(--marca); color: #fff; font-family: var(--marca-fonte); font-size: var(--t-destaque); display: grid; place-items: center; }
.marca-nome { font-family: var(--marca-fonte); font-size: var(--t-subtitulo); }
.nav { display: flex; gap: 4px; flex: 1; }
.nav a { color: var(--texto-2); text-decoration: none; font-weight: 500; padding: 8px 12px; white-space: nowrap; border-radius: var(--raio); border-bottom: 2px solid transparent; }
.nav a:hover { color: var(--texto); background: var(--fundo); }
.nav a.ativo { color: var(--texto); border-bottom-color: var(--marca); border-radius: var(--raio) var(--raio) 0 0; }
.status { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-apoio); color: var(--texto-2); white-space: nowrap; }
.tema { flex: none; }
.status .ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--texto-2); }
.status.st-ok .ponto { background: var(--ok); }
.status.st-aviso .ponto { background: var(--viol); }
.status.st-erro .ponto { background: var(--viol-forte); }

.conteudo { flex: 1; padding-top: 28px; padding-bottom: 48px; }
.rodape { border-top: 1px solid var(--borda); background: var(--superficie); }
.rodape-int { display: flex; justify-content: space-between; gap: 24px; padding-top: 14px; padding-bottom: 14px; font-size: var(--t-legenda); color: var(--texto-2); flex-wrap: wrap; }

.pagina { display: flex; flex-direction: column; gap: 20px; }
.pagina-cab { display: flex; flex-direction: column; gap: 4px; }

/* Superfícies e botões */
.cartao { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 18px 20px; }
.cartao > h2 { margin-bottom: 8px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 36px; padding: 0 14px; border-radius: var(--raio); border: 1px solid var(--borda-forte); background: var(--superficie); color: var(--texto); font-weight: 500; cursor: pointer; text-decoration: none; }
.btn:hover { background: var(--fundo); }
.btn:disabled { opacity: .55; cursor: progress; }
.btn.primario { background: var(--marca); border-color: var(--marca); color: #fff; font-weight: 600; }
.btn.primario:hover { filter: brightness(.9); }
.btn.pequeno { min-height: 30px; padding: 0 10px; font-size: var(--t-apoio); }
.btn.icone { padding: 0; width: 36px; }
.btn.icone.pequeno { width: 30px; }
button.link { background: none; border: none; padding: 0; color: var(--link); text-decoration: underline; cursor: pointer; }
.acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.giro { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--borda); border-top-color: var(--texto); animation: girar .8s linear infinite; display: inline-block; }
@keyframes girar { to { transform: rotate(360deg); } }

/* Campos */
input:not([type]), input[type="text"], select, textarea { width: 100%; padding: 8px 10px; border: 1px solid var(--borda-forte); border-radius: var(--raio); background: var(--superficie); min-height: 36px; }
textarea { resize: vertical; min-height: 88px; line-height: 1.45; }
input::placeholder, textarea::placeholder { color: #7A7A7A; }
.campo { display: flex; flex-direction: column; gap: 4px; }
.campo > span { font-weight: 600; font-size: var(--t-apoio); }
.campos { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px 16px; margin-bottom: 14px; }

/* Estado: componente único (ícone + rótulo + cor) */
.estado { display: inline-flex; align-items: center; gap: 6px; padding: 2px 8px 2px 6px; border-radius: var(--raio); font-size: var(--t-legenda); font-weight: 600; border: 1px solid transparent; white-space: nowrap; }
.estado svg { width: 14px; height: 14px; flex: none; }
.estado.viol { color: var(--viol); background: var(--viol-tinta); border-color: var(--viol-borda); }
.estado.viol-forte { color: var(--viol-forte); background: var(--viol-tinta); border-color: var(--viol-forte-borda); }
.estado.ok { color: var(--ok); background: var(--ok-tinta); border-color: var(--ok-borda); }
.estado.nv { color: var(--nv); background: var(--nv-tinta); border-color: var(--nv-borda); }
.estado.na { color: var(--texto-2); background: transparent; border-color: var(--borda); }
.estado.info { color: var(--link); background: var(--info-tinta); border-color: var(--info-borda); }
.estado.pauta { color: var(--pauta-texto); background: var(--pauta); border-color: var(--pauta-borda); }
.chip { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-apoio); color: var(--texto-2); }
.chip b { color: var(--texto); font-weight: 500; }
.chip .origem { font-size: var(--t-legenda); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding: 1px 6px; border-radius: var(--raio); border: 1px solid var(--borda); color: var(--texto-2); }
.chip .origem.informado { border-color: var(--ok-borda); color: var(--ok); }

/* Entrada */
.grade-entrada { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(300px, 1fr); gap: 20px; align-items: start; }
.coluna-principal, .coluna-lado { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.zona { background: var(--superficie); border: 2px dashed var(--borda-forte); border-radius: var(--raio); padding: 40px 28px; min-height: 280px; display: grid; place-items: center; text-align: center; cursor: pointer; }
.zona:hover, .zona.arrastando { border-color: var(--texto); background: var(--superficie-2); }
.zona.arrastando { border-style: solid; }
.zona.ocupada { cursor: default; text-align: left; place-items: stretch; }
.zona-ocioso { display: flex; flex-direction: column; align-items: center; gap: 8px; max-width: 560px; }
.zona-icone { color: var(--texto-2); margin-bottom: 4px; }
.zona h2 { font-size: var(--t-subtitulo); }
.zona-nota { font-size: var(--t-apoio); color: var(--texto-2); }
.zona-trabalho { display: flex; flex-direction: column; gap: 12px; }
.zona-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.zona-lista li { display: grid; grid-template-columns: 24px minmax(0,1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border: 1px solid var(--borda); border-radius: var(--raio); font-size: var(--t-apoio); }
.zona-lista .nome { font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.zona-lista .st { color: var(--texto-2); white-space: nowrap; }
.zona-lista li.ok .st { color: var(--ok); }
.zona-lista li.alerta .st { color: var(--viol); }
.zona-lista li.erro .st { color: var(--viol-forte); }
.zona-lista .pino { width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--borda); display: grid; place-items: center; font-size: var(--t-legenda); font-weight: 600; color: var(--texto-2); }
.zona-etapas { display: flex; align-items: center; gap: 10px; font-weight: 500; color: var(--texto-2); }
.ajustar { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); }
.ajustar summary { cursor: pointer; font-weight: 500; padding: 12px 16px; list-style: none; display: flex; gap: 8px; align-items: center; }
.ajustar summary::-webkit-details-marker { display: none; }
.ajustar summary::before { content: ""; width: 7px; height: 7px; border-right: 2px solid var(--texto-2); border-bottom: 2px solid var(--texto-2); transform: rotate(-45deg); transition: transform .15s; }
.ajustar[open] summary::before { transform: rotate(45deg); }
.painel-ajustar { padding: 4px 16px 16px; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--borda); padding-top: 14px; }
.docs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.doc { border: 1px solid var(--borda); border-radius: var(--raio); padding: 10px; display: flex; flex-direction: column; gap: 8px; }
.doc-linha { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr) auto; gap: 8px; align-items: center; }
.doc-meta { font-size: var(--t-legenda); color: var(--texto-2); display: flex; gap: 12px; flex-wrap: wrap; }
.doc-meta .alerta { color: var(--viol); font-weight: 600; }
.docs-vazio { font-size: var(--t-apoio); color: var(--texto-2); padding: 8px 0; }
.docs:not(:empty) + .docs-vazio { display: none; }
.rodape-form { display: flex; justify-content: flex-end; }
.lista { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; color: var(--texto-2); font-size: var(--t-apoio); }
.lista b { color: var(--texto); font-weight: 600; }
.lista-exemplos { display: flex; flex-direction: column; gap: 8px; }
.exemplo { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--borda); border-radius: var(--raio); }
.exemplo .nome { font-weight: 600; font-size: var(--t-apoio); }
.exemplo .sub { color: var(--texto-2); font-size: var(--t-legenda); }

/* Resultado — faixa 0 */
.cab-resultado { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.cab-resultado .meta { display: flex; gap: 8px 16px; flex-wrap: wrap; margin-top: 8px; }
.selo-caixa { display: grid; grid-template-columns: 1fr; gap: 0; font-size: var(--t-apoio); }
.selo-caixa .k { color: var(--texto-2); }
.selo-caixa .v { word-break: break-all; }
.selo-caixa div { display: grid; grid-template-columns: 150px minmax(0,1fr); gap: 8px; padding: 4px 0; border-bottom: 1px solid var(--borda); }

/* Faixa 1 — tríptico invariante: tiles idênticos */
.triptico { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.tile { background: var(--superficie); border: 1px solid var(--borda); border-top: 4px solid var(--borda-forte); border-radius: var(--raio); padding: 16px 18px 14px; display: flex; flex-direction: column; gap: 4px; text-align: left; cursor: pointer; color: var(--texto); font: inherit; }
.tile:hover { background: var(--superficie-2); }
.tile.ativo { outline: 2px solid var(--texto); outline-offset: -2px; }
.tile.ok { border-top-color: var(--ok); }
.tile.viol { border-top-color: var(--viol); }
.tile.nv { border-top-color: var(--nv); }
.tile .rot { display: flex; align-items: center; gap: 8px; font-size: var(--t-apoio); font-weight: 600; color: var(--texto-2); text-transform: uppercase; letter-spacing: .05em; }
.tile .rot svg { width: 16px; height: 16px; }
.tile.ok .rot svg { color: var(--ok); } .tile.viol .rot svg { color: var(--viol); } .tile.nv .rot svg { color: var(--nv); }
.tile .num { font-size: var(--t-numero); font-weight: 600; line-height: 1; color: var(--texto); font-variant-numeric: tabular-nums; }
.tile .desc { font-size: var(--t-apoio); color: var(--texto-2); }

/* Faixas 2–6 */
.faixa { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); }
.faixa-cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid var(--borda); flex-wrap: wrap; }
.faixa-cab h2 { display: flex; align-items: center; gap: 10px; font-size: var(--t-corpo); }
.faixa-cab h2 svg { width: 18px; height: 18px; color: var(--texto-2); }
.faixa-cab .n { color: var(--texto-2); font-weight: 500; }
.faixa-corpo { padding: 14px 18px; }
details.faixa > summary { list-style: none; cursor: pointer; }
details.faixa > summary::-webkit-details-marker { display: none; }
details.faixa > summary .faixa-cab::after { content: "mostrar"; font-size: var(--t-apoio); color: var(--link); text-decoration: underline; }
details.faixa[open] > summary .faixa-cab::after { content: "ocultar"; }
.vazio { color: var(--texto-2); font-size: var(--t-apoio); }
.aviso { padding: 10px 12px; border-left: 3px solid var(--viol); background: var(--viol-tinta); border-radius: 0 var(--raio) var(--raio) 0; font-size: var(--t-apoio); }
.aviso.info { border-left-color: var(--link); background: var(--info-tinta); }
.aviso.ok { border-left-color: var(--ok); background: var(--ok-tinta); }

/* Decomposição */
.decomp { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; }
.decomp table { width: 100%; }
.regra-teto { font-size: var(--t-apoio); color: var(--texto-2); margin-top: 8px; }

/* Pauta */
.pauta-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--borda); }
.pauta-item:last-child { border-bottom: none; }
.pauta-item .t { font-weight: 600; }
.pauta-item .m { font-size: var(--t-apoio); color: var(--texto-2); margin-top: 2px; }
.pauta-item .d { font-size: var(--t-apoio); margin-top: 6px; }

/* Tabelas (14 px, números à direita, cabeçalho alinhado) */
.tabela { width: 100%; border-collapse: collapse; font-size: var(--t-apoio); }
.tabela th { text-align: left; font-size: var(--t-legenda); text-transform: uppercase; letter-spacing: .05em; color: var(--texto-2); font-weight: 600; padding: 8px 10px; border-bottom: 1px solid var(--borda-forte); white-space: nowrap; }
.tabela td { padding: 9px 10px; border-bottom: 1px solid var(--borda); vertical-align: top; }
.tabela tr:last-child td { border-bottom: none; }
.tabela .num, .tabela th.num { text-align: right; font-variant-numeric: tabular-nums; }
.tabela tbody tr.clicavel { cursor: pointer; }
.tabela tbody tr.clicavel:hover { background: var(--superficie-2); }
.tabela tbody tr.selecionada { background: var(--fundo); }
.tabela .sub { display: block; color: var(--texto-2); font-size: var(--t-legenda); }
.filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.filtros select { width: auto; min-height: 30px; padding: 4px 28px 4px 8px; font-size: var(--t-apoio); }
.filtros .limpar { font-size: var(--t-apoio); }

/* Painel de detalhe (lateral ≥ 1280 px; página abaixo) */
.detalhe-fundo { position: fixed; inset: 0; background: rgba(35,35,35,.35); z-index: 30; }
.detalhe { position: fixed; top: 0; right: 0; bottom: 0; width: min(640px, 100vw); background: var(--superficie); border-left: 1px solid var(--borda); z-index: 31; overflow: auto; display: flex; flex-direction: column; }
.detalhe-cab { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; padding: 16px 20px; border-bottom: 1px solid var(--borda); position: sticky; top: 0; background: var(--superficie); }
.detalhe-cab h2 { font-size: var(--t-destaque); }
.detalhe-corpo { padding: 16px 20px 32px; display: flex; flex-direction: column; gap: 18px; }
.camada { display: flex; flex-direction: column; gap: 6px; }
.camada h4 { display: flex; align-items: center; gap: 8px; }
.camada h4 .nro { width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--borda-forte); display: grid; place-items: center; font-size: var(--t-legenda); color: var(--texto); }
.camada p { font-size: var(--t-corpo); line-height: 1.5; }
.trecho { border-left: 3px solid var(--realce-borda); padding: 8px 12px; background: var(--fundo); font-size: var(--t-apoio); line-height: 1.5; white-space: pre-wrap; max-height: 260px; overflow: auto; }
.trecho.negativo { border-left-color: var(--viol); }
.fato { font-size: var(--t-apoio); padding: 8px 10px; border: 1px solid var(--borda); border-radius: var(--raio); display: grid; gap: 2px; }
.fato .pred { font-family: var(--mono); font-size: var(--t-legenda); }
.fato .prov { color: var(--texto-2); font-size: var(--t-legenda); word-break: break-all; }
details.tecnico { border: 1px dashed var(--borda); border-radius: var(--raio); padding: 6px 10px; }
details.tecnico summary { cursor: pointer; font-size: var(--t-apoio); color: var(--texto-2); }
details.tecnico[open] summary { margin-bottom: 8px; }
details.tecnico .fato + .fato { margin-top: 6px; }
.fund { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: var(--t-apoio); padding: 6px 0; }
.decisao-form { display: grid; gap: 8px; border: 1px solid var(--borda); border-radius: var(--raio); padding: 12px; }
.decisao-form .linha { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.trilha { font-size: var(--t-apoio); color: var(--texto-2); display: grid; gap: 4px; }
.trilha b { color: var(--texto); }

.toast { position: fixed; bottom: 20px; left: 50%; transform: translate(-50%, 20px); opacity: 0; pointer-events: none; padding: 10px 16px; border-radius: var(--raio); background: var(--texto); color: #fff; font-weight: 500; font-size: var(--t-apoio); transition: all .2s; max-width: min(92vw, 560px); z-index: 50; }
.toast.ver { opacity: 1; transform: translate(-50%, 0); }
.toast.erro { background: var(--viol-forte); }
body.arrastando-global::after { content: "Solte para analisar"; position: fixed; inset: 10px; border: 2px dashed var(--texto); border-radius: var(--raio); display: grid; place-items: center; font-size: var(--t-subtitulo); font-weight: 600; color: var(--texto); background: rgba(247,247,245,.85); z-index: 40; pointer-events: none; }

/* Regras */
.grade-regras { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 16px; }
.cartao-regra .cab { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; margin-bottom: 8px; }
.cartao-regra .id { font-family: var(--mono); font-size: var(--t-legenda); color: var(--texto-2); }

/* Veredito e barra de proporção */
.cab-titulo .sobre { font-size: var(--t-apoio); color: var(--texto-2); margin-bottom: 2px; }
.veredito { background: var(--superficie); border: 1px solid var(--borda); border-left: 6px solid var(--borda-forte); border-radius: var(--raio); padding: 18px 20px; display: flex; flex-direction: column; gap: 12px; }
.veredito.ok { border-left-color: var(--ok); } .veredito.viol { border-left-color: var(--viol); } .veredito.viol-forte { border-left-color: var(--viol-forte); } .veredito.nv { border-left-color: var(--nv); }
.veredito-rotulo { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: var(--t-apoio); text-transform: uppercase; letter-spacing: .05em; color: var(--texto-2); }
.veredito-rotulo svg { width: 18px; height: 18px; }
.veredito.ok .veredito-rotulo svg { color: var(--ok); } .veredito.viol .veredito-rotulo svg, .veredito.viol-forte .veredito-rotulo svg { color: var(--viol); } .veredito.nv .veredito-rotulo svg { color: var(--nv); }
.veredito-frase { font-size: var(--t-subtitulo); line-height: 1.35; font-weight: 500; margin-top: 4px; max-width: 60ch; }
.barra { display: flex; height: 12px; border-radius: var(--raio); overflow: hidden; background: var(--nv-tinta); border: 1px solid var(--borda); }
.barra .seg { display: block; height: 100%; }
.barra .seg.ok { background: var(--ok); } .barra .seg.viol { background: var(--viol); } .barra .seg.nv { background: repeating-linear-gradient(135deg, #9A9A96 0 4px, #C9C9C5 4px 8px); }
.barra-legenda { display: flex; gap: 16px; flex-wrap: wrap; font-size: var(--t-apoio); color: var(--texto-2); }
.barra-legenda i { display: inline-block; width: 10px; height: 10px; border-radius: var(--raio); margin-right: 6px; vertical-align: -1px; }
.barra-legenda i.ok { background: var(--ok); } .barra-legenda i.viol { background: var(--viol); } .barra-legenda i.nv { background: repeating-linear-gradient(135deg, #9A9A96 0 3px, #C9C9C5 3px 6px); }

/* Contexto do processo */
.ctx-lista { margin: 0; padding: 6px 18px 10px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 28px; }
.ctx { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 10px; padding: 8px 0; border-bottom: 1px solid var(--borda); font-size: var(--t-apoio); }
.ctx dt { color: var(--texto-2); } .ctx dd { margin: 0; }
.ctx .origem { display: inline-block; font-size: var(--t-legenda); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding: 1px 6px; border-radius: var(--raio); border: 1px solid var(--borda); color: var(--texto-2); margin-left: 6px; vertical-align: 1px; white-space: nowrap; }
.ctx .origem.informado { border-color: var(--ok-borda); color: var(--ok); }

/* O que fazer agora */
.proximos { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.proximos li { display: grid; grid-template-columns: 12px minmax(0,1fr); gap: 12px; align-items: start; font-size: var(--t-corpo); line-height: 1.45; }
.proximos .marca-passo { width: 12px; height: 12px; border-radius: 50%; margin-top: 6px; background: var(--viol); }
.proximos li.nv .marca-passo { background: var(--nv); }
.selo-caixa div { display: grid; grid-template-columns: 170px minmax(0,1fr) auto; gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--borda); }
.selo-caixa .copiar { width: 28px; min-height: 28px; }

/* Responsivo */
@media (max-width: 1080px) {
  .grade-entrada { grid-template-columns: 1fr; }
  .decomp { grid-template-columns: 1fr; }
  .ctx-lista { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body { font-size: var(--t-corpo); }
  .topo-int, .conteudo, .rodape-int { padding-left: 16px; padding-right: 16px; }
  .topo-int { height: auto; flex-wrap: wrap; gap: 6px 12px; padding-top: 10px; padding-bottom: 0; }
  .marca { flex: 1; }
  .tema { order: 1; width: 40px; min-height: 40px; }
  .status { width: 100%; order: 2; font-size: var(--t-legenda); white-space: normal; padding-bottom: 6px; }
  .nav { order: 3; width: 100%; margin: 0 -16px; padding: 0 12px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; gap: 0; border-top: 1px solid var(--borda); }
  .nav::-webkit-scrollbar { display: none; }
  .nav a { min-height: 44px; display: inline-flex; align-items: center; padding: 0 12px; border-radius: 0; }
  .nav a.ativo { border-bottom-width: 3px; }
  .conteudo { padding-top: 18px; }
  .pagina { gap: 14px; }
  h1 { font-size: var(--t-subtitulo); }
  .h1-marca { font-size: var(--t-subtitulo); }
  .lede { font-size: var(--t-apoio); }
  .cab-resultado { flex-direction: column; }
  .cab-resultado .acoes { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
  .cab-resultado .acoes .btn { min-height: 44px; }
  .veredito { padding: 16px; }
  .veredito-frase { font-size: var(--t-destaque); }
  .ctx { grid-template-columns: 1fr; gap: 2px; }
  .ctx dt { font-size: var(--t-legenda); text-transform: uppercase; letter-spacing: .05em; }
  .triptico { gap: 8px; }
  .tile { padding: 10px 10px 8px; gap: 2px; border-top-width: 3px; }
  .tile .rot { font-size: var(--t-legenda); letter-spacing: .02em; gap: 4px; line-height: 1.2; min-height: 24px; align-items: flex-start; }
  .tile .rot svg { width: 13px; height: 13px; }
  .tile .num { font-size: var(--t-display); }
  .tile .desc { display: none; }
  .faixa-cab { padding: 12px 14px; }
  .faixa-cab .n { display: block; width: 100%; font-size: var(--t-legenda); }
  .faixa-cab h2 { flex-wrap: wrap; }
  .faixa-corpo { padding: 12px 14px; }
  .filtros { width: 100%; }
  .filtros select { flex: 1; min-height: 40px; }
  .zona { padding: 28px 18px; min-height: 200px; }
  .zona h2 { font-size: var(--t-destaque); }
  .campos, .doc-linha, .decisao-form .linha { grid-template-columns: 1fr; }
  .btn { min-height: 44px; }
  .btn.pequeno { min-height: 40px; }
  .btn.icone.pequeno, .selo-caixa .copiar { width: 40px; min-height: 40px; }

  /* Tabelas de requisitos e histórico viram cartões */
  .tabela.cartoes thead { display: none; }
  .tabela.cartoes, .tabela.cartoes tbody, .tabela.cartoes tr, .tabela.cartoes td { display: block; }
  .tabela.cartoes tr { border: 1px solid var(--borda); border-radius: var(--raio); padding: 10px 12px; margin: 0 0 10px; background: var(--superficie); }
  .tabela.cartoes td { padding: 4px 0; border: none; }
  .tabela.cartoes td::before { content: attr(data-rotulo); display: block; font-size: var(--t-legenda); text-transform: uppercase; letter-spacing: .05em; color: var(--texto-2); font-weight: 600; margin-bottom: 2px; }
  .tabela.cartoes td.td-titulo { order: -1; }
  .tabela.cartoes tr { display: flex; flex-direction: column; }
  .tabela.cartoes td.td-titulo::before { display: none; }
  .tabela.cartoes td.td-titulo b { font-size: var(--t-corpo); }
  .tabela.cartoes td[data-rotulo="Situação"], .tabela.cartoes td[data-rotulo="Gravidade"] { display: inline-block; margin-right: 10px; }
  .tabela.cartoes td[data-rotulo="Situação"]::before, .tabela.cartoes td[data-rotulo="Gravidade"]::before { display: none; }

  /* Tabelas chave-valor empilham */
  .tabela.kv td { display: block; padding: 2px 0 8px; border: none; width: auto !important; }
  .tabela.kv td:first-child { font-size: var(--t-legenda); text-transform: uppercase; letter-spacing: .05em; color: var(--texto-2); font-weight: 600; padding-top: 10px; border-top: 1px solid var(--borda); }
  .tabela.kv tr:first-child td:first-child { border-top: none; }
  .selo-caixa div { grid-template-columns: minmax(0,1fr) auto; }
  .selo-caixa .k { grid-column: 1 / -1; font-size: var(--t-legenda); text-transform: uppercase; letter-spacing: .05em; }
  .selo-caixa .v { font-size: var(--t-legenda); }
  .detalhe { width: 100vw; }
  .detalhe-cab { padding: 12px 16px; }
  .detalhe-corpo { padding: 14px 16px 40px; }
  .camada p { font-size: var(--t-corpo); }
  .rodape-int { flex-direction: column; gap: 6px; }
  body.arrastando-global::after { display: none; }
}

/* Impressão — relatório A4 completo */
@media print {
  @page { size: A4; margin: 16mm 14mm; }
  /* O relatório é sempre impresso em tema claro, qualquer que seja o tema na tela. */
  :root, :root[data-theme="dark"] {
    --texto: #232323; --texto-2: #5C5C5C; --fundo: #FFFFFF; --superficie: #FFFFFF; --borda: #D9D9D6; --borda-forte: #5C5C5C;
    --link: #0043CE; --viol: #BA4E00; --viol-tinta: #FDF1E6; --viol-forte: #8A3A00; --ok: #0F7A52; --ok-tinta: #E6F2EA;
    --nv: #5C5C5C; --nv-tinta: #EEEEEC; --info-tinta: #E8EEFB; --marca-ui: var(--marca-ui-claro); color-scheme: light;
  }
  :root[data-theme="dark"] .marca-logo.placa { background: none; padding: 0; }
  .btn, .pend-acoes, .decisao-form, .ajustar, #tema { display: none !important; }
  .barra .seg.nv, .barra-legenda i.nv { background: repeating-linear-gradient(135deg, #9A9A96 0 4px, #C9C9C5 4px 8px) !important; }
  body { background: #fff; font-size: 11pt; display: block; }
  .topo, .rodape, .acoes, .toast, .filtros, .detalhe-fundo, .pular, .status { display: none !important; }
  .conteudo { max-width: none; padding: 0; }
  .faixa, .cartao, .tile { border-color: #999; break-inside: avoid; }
  details.faixa > summary .faixa-cab::after { content: none; }
  details.faixa:not([open]) > *:not(summary) { display: block !important; }
  .tabela tbody tr.clicavel { cursor: default; }
  .detalhe { position: static; width: auto; border: none; }
  .impressao-achados { display: block !important; }
  a { color: inherit; text-decoration: none; }
}
.impressao-achados { display: none; }

/* Jornada de conformidade */
.passos { list-style: none; margin: 0 0 16px; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
.passos li { display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 10px; align-items: start; padding: 12px; border: 1px solid var(--borda); border-radius: var(--raio); color: var(--texto-2); }
.passos li b { display: block; color: var(--texto); }
.passos li.atual { border-color: var(--texto); }
.passos li.feito .passo-n { color: var(--ok); border-color: var(--ok); }
.passo-n { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--borda-forte); display: grid; place-items: center; font-weight: 600; font-size: var(--t-apoio); color: var(--texto); }
.passo-n svg { width: 16px; height: 16px; }
.pend-h3 { margin: 6px 0 10px; }
.pendencias { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pend { border: 1px solid var(--borda); border-left: 4px solid var(--viol); border-radius: var(--raio); padding: 12px 14px; display: grid; gap: 8px; }
.pend.nao-verificavel { border-left-color: var(--nv); }
.pend.afastada { border-left-color: var(--ok); opacity: .85; }
.pend.confirmada, .pend.esclarecimento { border-left-color: var(--pauta-marca); }
.pend-cab { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.pend-titulo { font-weight: 600; font-size: var(--t-corpo); }
.pend-fazer { font-size: var(--t-corpo); line-height: 1.45; }
.pend-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.conclusao { border: 1px solid var(--ok-borda); background: var(--ok-tinta); border-radius: var(--raio); padding: 16px 18px; }
.conclusao-titulo { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: var(--t-destaque); color: var(--ok); margin-bottom: 6px; }
.conclusao-titulo svg { width: 20px; height: 20px; }
.conclusao p { font-size: var(--t-corpo); line-height: 1.5; }
.linha-tempo { margin: 8px 0 0; padding-left: 18px; display: grid; gap: 6px; font-size: var(--t-apoio); }
.linha-tempo li.atual > a { font-weight: 600; }
.linha-tempo .mini { display: block; }
.modal { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(560px, calc(100vw - 32px)); background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 20px; z-index: 31; display: grid; gap: 10px; max-height: 90vh; overflow: auto; }
.opcao { display: block; padding: 10px 12px; border: 1px solid var(--borda); border-radius: var(--raio); margin-top: 8px; cursor: pointer; }
.opcao:has(input:checked) { border-color: var(--texto); }
@media (max-width: 760px) {
  .passos { grid-template-columns: 1fr; gap: 6px; }
  .passos li { padding: 10px; }
  .pend-acoes .btn, .pend-acoes label.btn { flex: 1 1 100%; }
}


/* Identidade do órgão (White Label) */
.marca-logo { height: 32px; max-width: 160px; object-fit: contain; display: block; }
.marca-textos { display: flex; flex-direction: column; line-height: 1.1; }
.marca-sub { font-family: var(--fonte); font-size: var(--t-legenda); color: var(--texto-2); font-weight: 500; max-width: 240px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.marca-selo { background: var(--marca); }
.btn.primario { background: var(--marca); border-color: var(--marca); }
.btn.primario:hover { filter: brightness(.9); background: var(--marca); }
.grade-identidade { display: grid; grid-template-columns: minmax(0, 1.8fr) minmax(300px, 1fr); gap: 20px; align-items: start; }
.zona-logo { min-height: 140px; padding: 24px; }
.logo-previa { display: grid; grid-template-columns: 1fr 1fr auto; gap: 12px; align-items: center; }
.logo-amostra { border: 1px solid var(--borda); border-radius: var(--raio); padding: 16px; display: grid; place-items: center; min-height: 110px; }
.logo-amostra.clara { background: #FFFFFF; } .logo-amostra.escura { background: #242529; }
.logo-amostra img { max-height: 72px; max-width: 100%; object-fit: contain; }
.amostras { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.amostra { display: grid; justify-items: center; gap: 4px; background: none; border: 2px solid transparent; border-radius: var(--raio); padding: 6px; cursor: pointer; }
.amostra[aria-checked="true"] { border-color: var(--texto); }
.amostra-cor { width: 44px; height: 44px; border-radius: 50%; background: var(--c); border: 1px solid var(--borda); }
.cor-linha { display: flex; gap: 8px; align-items: center; }
.cor-linha input[type="color"] { width: 44px; height: 36px; padding: 2px; border: 1px solid var(--borda-forte); border-radius: var(--raio); background: var(--superficie); cursor: pointer; }
.cor-linha input[name="cor_primaria"] { max-width: 140px; }
.previas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.previa { border: 1px solid var(--borda); border-radius: var(--raio); overflow: hidden; }
.previa[data-tema="light"] { background: #F7F7F5; color: #232323; }
.previa[data-tema="dark"] { background: #1B1C1F; color: #E8E8E6; }
.previa-topo { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-bottom: 1px solid rgba(128,128,128,.3); }
.previa[data-tema="light"] .previa-topo { background: #FFFFFF; } .previa[data-tema="dark"] .previa-topo { background: #242529; }
.previa-logo img { height: 24px; max-width: 110px; object-fit: contain; display: block; }
.previa-selo { width: 24px; height: 24px; border-radius: var(--raio); background: var(--marca); color: #fff; font-family: var(--marca-fonte); display: grid; place-items: center; font-size: var(--t-apoio); }
.previa-aba { margin-left: auto; font-size: var(--t-legenda); padding: 4px 0; border-bottom: 2px solid var(--marca); }
.previa-corpo { display: flex; gap: 8px; align-items: center; padding: 12px; flex-wrap: wrap; }
.previa .mini { padding: 0 12px 10px; font-size: var(--t-legenda); }
.previa[data-tema="dark"] .estado.ok { color: #5FC79A; background: #16302A; border-color: #2A5A44; }
.previa[data-tema="dark"] .estado.viol { color: #F0924A; background: #3A2616; border-color: #5A3A22; }
.previa[data-tema="light"] .estado.ok { color: #0F7A52; background: #E6F2EA; border-color: #BFDCCB; }
.previa[data-tema="light"] .estado.viol { color: #BA4E00; background: #FDF1E6; border-color: #EBC9AE; }
.impressao-cab { display: none; }
.impressao-cabecalho { display: flex; gap: 16px; align-items: center; border-bottom: 2px solid #232323; padding-bottom: 10px; margin-bottom: 14px; }
.impressao-cabecalho img { height: 48px; max-width: 160px; object-fit: contain; }
.impressao-cabecalho b { font-size: var(--t-corpo); }
@media print { .impressao-cab { display: block; } }
@media (max-width: 1080px) { .grade-identidade { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .logo-previa { grid-template-columns: 1fr 1fr; } .logo-previa .btn { grid-column: 1 / -1; }
  .previas { grid-template-columns: 1fr; }
  .marca-logo { height: 28px; max-width: 120px; }
  .marca-sub { max-width: 160px; }
}

.logo-acoes { display: grid; gap: 8px; }
:root[data-theme="dark"] .marca-logo.placa, .logo-amostra.escura img.placa, .previa[data-tema="dark"] .previa-logo img.placa { background: #FFFFFF; padding: 3px 6px; border-radius: var(--raio); box-sizing: content-box; }

/* Criador de processos (premium) */
.nav-cta { margin-left: auto; border: 1px solid var(--marca); color: var(--marca) !important; border-radius: var(--raio) !important; display: inline-flex; align-items: center; gap: 8px; }
.nav-cta:hover { background: var(--marca) !important; color: #fff !important; }
.nav-cta.ativo { background: var(--marca) !important; color: #fff !important; border-bottom-width: 1px !important; }
.nav-cta.bloqueado { opacity: .75; }
.premium { font-size: var(--t-legenda); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 6px; border-radius: var(--raio); background: #232323; color: #FFFFFF; }
:root[data-theme="dark"] .premium { background: #E8E8E6; color: #1B1C1F; }
.nav-cta.ativo .premium, .nav-cta:hover .premium { background: rgba(255,255,255,.25); color: #fff; }
.campo-largo { grid-column: 1 / -1; }
.criador-cab { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.pecas-nav { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
.pecas-nav a { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); color: var(--texto-2); text-decoration: none; font-weight: 600; }
.pecas-nav a.ativa { border-color: var(--texto); color: var(--texto); }
.pecas-nav a.pronta { color: var(--ok); }
.pecas-nav a svg { width: 18px; height: 18px; }
.pecas-n { font-size: var(--t-legenda); font-weight: 600; padding: 2px 6px; border-radius: var(--raio); border: 1px solid var(--borda); color: var(--texto-2); font-variant-numeric: tabular-nums; }
.grade-criador .ctx-lista { grid-template-columns: 1fr; }
.grade-criador .ctx { grid-template-columns: 1fr; gap: 2px; }
.grade-criador .ctx dt { font-size: var(--t-legenda); text-transform: uppercase; letter-spacing: .05em; }
.grade-criador { display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(280px, 1fr); gap: 20px; align-items: start; }
.secoes { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.secao { background: var(--superficie); border: 1px solid var(--borda); border-left: 4px solid var(--borda); border-radius: var(--raio); padding: 14px 16px; }
.secao.obrigatoria { border-left-color: var(--texto-2); }
.secao.preenchida { border-left-color: var(--ok); }
.secao-cab { display: flex; justify-content: space-between; gap: 10px; align-items: flex-start; flex-wrap: wrap; }
.secao-titulo { font-weight: 600; font-size: var(--t-corpo); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.secao-pergunta { font-size: var(--t-corpo); margin-top: 8px; }
.secao-dica { margin-top: 2px; }
.secao-respostas { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px 12px; margin-top: 10px; }
.secao-texto { width: 100%; margin-top: 4px; font-size: var(--t-corpo); line-height: 1.5; }
.modal-oferta { width: min(620px, calc(100vw - 32px)); }
.oferta-cab { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.oferta-cab .premium { background: var(--marca); }
@media (max-width: 1080px) { .grade-criador { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .nav-cta { margin-left: 0; }
  .pecas-nav { grid-template-columns: 1fr; }
  .secao-respostas { grid-template-columns: 1fr; }
  .criador-cab .acoes { width: 100%; display: grid; grid-template-columns: 1fr; }
}

/* ---- Pesquisa de preços em fontes oficiais (ADR-0014) ---- */
.faixa.precos { margin-bottom: 14px; }
.precos-itens { display: grid; gap: 8px; }
.precos-item { display: grid; grid-template-columns: minmax(0,1fr) 140px auto; gap: 8px 12px; align-items: end; }
.campo.inline { display: inline-grid; gap: 4px; margin: 0; }
.campo.inline select { padding: 8px 10px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); color: var(--texto); font: inherit; }
.precos-res { display: grid; gap: 12px; margin-top: 14px; }
.precos-cartao h3 { font-size: var(--t-corpo); }
.precos-stats { margin-top: 8px; }
.aviso-linha { margin: 6px 0 0; color: var(--viol); }
.tabela-rolagem { overflow: auto; max-height: 380px; border: 1px solid var(--borda); border-radius: var(--raio); margin-top: 6px; }
.precos-tabela td, .precos-tabela th { padding: 6px 8px; vertical-align: top; }
.precos-tabela tr.descartado td { color: var(--texto-2); }
.precos-total { display: grid; gap: 8px; padding: 12px 14px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.precos-total .k { display: block; font-size: var(--t-legenda); color: var(--texto-2); }
.precos-total .v { font-size: var(--t-destaque); }
@media (max-width: 720px) {
  .precos-item { grid-template-columns: 1fr; }
  .precos-item button { justify-self: start; }
}


/* =====================================================================
   Direção visual v2 (ADR-0015) — referência estrutural: apps do Banco do
   Brasil (palco colorido com título pesado, cartão sobre o palco, números
   grandes, blocos contornados, barra inferior no celular). A cor é a da
   Callil — ou a do órgão, pelo módulo de identidade — nunca a do banco.
   ===================================================================== */
body { font-size: var(--t-corpo); line-height: 1.5; font-feature-settings: "tnum" 1; }
h1, h2, h3, h4 { letter-spacing: -0.015em; }
h1 { font-size: var(--t-display); font-weight: 800; line-height: 1.12; letter-spacing: -0.025em; }
h2 { font-size: var(--t-destaque); font-weight: 700; }
h3 { font-size: var(--t-corpo); font-weight: 700; }
h4 { font-size: var(--t-apoio); text-transform: none; letter-spacing: 0; font-weight: 700; color: var(--texto-2); }
.h1-marca { font-family: var(--fonte); font-weight: 800; font-size: var(--t-display); letter-spacing: -0.025em; }

/* ---- Barra superior: parte do palco ---- */
.topo { background: var(--palco); border-bottom: none; color: var(--palco-texto); position: relative; z-index: 20; }
.topo-int { height: 64px; gap: 20px; }
.marca { color: var(--palco-texto); }
.marca-selo { background: #FFFFFF; color: var(--marca); border-radius: var(--raio); width: 32px; height: 32px; font-weight: 800; font-family: var(--fonte); font-size: var(--t-destaque); }
.marca-nome { font-family: var(--fonte); font-weight: 800; font-size: var(--t-subtitulo); letter-spacing: -0.02em; }
.marca-sub { color: var(--palco-texto-2); }
.topo .marca-logo { background: #FFFFFF; padding: 4px 8px; border-radius: var(--raio); box-sizing: content-box; }
.nav { gap: 2px; align-items: center; }
.nav a, .nav-mais { color: var(--palco-texto-2); font-weight: 600; font-size: var(--t-apoio); padding: 8px 12px; border-radius: var(--raio-p); border: none; display: inline-flex; align-items: center; gap: 8px; }
.nav a:hover { color: #FFFFFF; background: rgba(255,255,255,.12); }
.nav a.ativo { color: var(--marca); background: #FFFFFF; border-radius: var(--raio-p); }
.nav .nav-ic { width: 18px; height: 18px; flex: none; display: none; }
.nav .l-curto, .nav-mais { display: none; }
.nav-cta { margin-left: auto; border: 1.5px solid rgba(255,255,255,.7) !important; color: #FFFFFF !important; border-radius: var(--raio-p) !important; }
.nav-cta:hover { background: #FFFFFF !important; color: var(--marca) !important; }
.nav-cta.ativo { background: #FFFFFF !important; color: var(--marca) !important; }
.nav-cta .nav-ic { display: block; }
.premium { text-transform: none; letter-spacing: 0; font-size: var(--t-legenda); font-weight: 700; border-radius: var(--raio-p); padding: 2px 8px; background: rgba(255,255,255,.22); color: #FFFFFF; }
.nav-cta:hover .premium, .nav-cta.ativo .premium { background: var(--marca); color: #FFFFFF; }
:root[data-theme="dark"] .premium { background: rgba(255,255,255,.22); color: #FFFFFF; }
.oferta-cab .premium { background: var(--marca); color: #FFFFFF; }
.status { color: var(--palco-texto-2); font-size: var(--t-legenda); }
.status .ponto { background: rgba(255,255,255,.6); box-shadow: 0 0 0 2px rgba(255,255,255,.25); }
.status.st-ok .ponto { background: #7BE0B0; } .status.st-aviso .ponto { background: #FFC27A; } .status.st-erro .ponto { background: #FFFFFF; }
.topo .btn.icone.tema { background: transparent; border: 1.5px solid rgba(255,255,255,.55); color: #FFFFFF; border-radius: var(--raio-p); width: 38px; min-height: 38px; }
.topo .btn.icone.tema:hover { background: rgba(255,255,255,.14); }
.topo :focus-visible, .pagina-cab :focus-visible, .cab-resultado :focus-visible { outline-color: #FFFFFF; box-shadow: 0 0 0 4px #1E2229; }
.menu-mais { display: none; }

/* ---- Palco: cabeçalho da página sobre a cor de marca ---- */
.conteudo { padding-top: 0; }
.pagina { gap: 18px; }
.pagina-cab, .cab-resultado {
  position: relative; background: var(--palco); color: var(--palco-texto);
  box-shadow: 0 0 0 100vmax var(--palco); clip-path: inset(0 -100vmax 0 -100vmax);
  padding: 18px 0 84px; margin-bottom: -66px; gap: 10px;
}
.pagina-cab h1, .cab-resultado h1 { color: var(--palco-texto); max-width: 22ch; }
.pagina-cab .lede, .cab-resultado .sobre, .cab-titulo .sobre { color: var(--palco-texto-2); font-size: var(--t-corpo); max-width: 64ch; }
.pagina-cab .sobre { color: var(--palco-texto-2); }
.pagina-cab + *, .cab-resultado + * { position: relative; z-index: 2; }
.cab-resultado { align-items: flex-end; }
.cab-titulo { display: flex; flex-direction: column; gap: 6px; }
/* Botões sobre o palco */
.pagina-cab .btn, .cab-resultado .btn { background: transparent; color: #FFFFFF; border: 1.5px solid rgba(255,255,255,.6); }
.pagina-cab .btn:hover, .cab-resultado .btn:hover { background: rgba(255,255,255,.14); }
.pagina-cab .btn.primario, .cab-resultado .btn.primario { background: #FFFFFF; color: var(--marca); border-color: #FFFFFF; }
.pagina-cab .btn.primario:hover, .cab-resultado .btn.primario:hover { filter: none; background: #F3F4F6; }
:root[data-theme="dark"] .pagina-cab .btn.primario, :root[data-theme="dark"] .cab-resultado .btn.primario { color: var(--palco); }
.pagina-cab a:not(.btn), .cab-resultado a:not(.btn) { color: #FFFFFF; }
.pagina-cab .aviso { background: rgba(255,255,255,.12); color: #FFFFFF; border-left-color: #FFFFFF; }

/* ---- Superfícies ---- */
.cartao, .faixa, .veredito, .zona, .ajustar, .secao, .tile, .pecas-nav a, .conclusao, .modal, .tabela.cartoes tr, .passos li, .pend, .doc, .opcao, .logo-amostra, .previa, .precos-total { border-radius: var(--raio-c); }
.cartao, .faixa { border-color: var(--borda); }
.faixa-cab { padding: 16px 20px; border-bottom-color: var(--borda); }
.faixa-cab h2 { font-size: var(--t-destaque); font-weight: 700; }
.faixa-corpo { padding: 16px 20px; }
.cartao { padding: 20px 22px; }
/* Só o que está sobre o palco ganha elevação: é o que a página quer que você leia primeiro. */
.pagina-cab + *, .cab-resultado + .veredito { box-shadow: var(--elevacao); }
.pagina-cab + .grade-entrada, .pagina-cab + .grade-identidade, .pagina-cab + .grade-regras, .pagina-cab + div, .pagina-cab + nav { box-shadow: none; }
.pagina-cab + .grade-entrada .zona, .pagina-cab + .grade-entrada .coluna-lado > .cartao:first-child,
.pagina-cab + .grade-regras > *, .pagina-cab + .grade-identidade > * > :first-child, .pagina-cab + .pecas-nav a { box-shadow: var(--elevacao); }
.pagina-cab + div#livro > :first-child { box-shadow: var(--elevacao); }

/* ---- Botões e campos ---- */
.btn { min-height: 42px; padding: 0 18px; border-radius: var(--raio); border: 1.5px solid var(--borda-forte); font-weight: 600; }
.btn.pequeno { min-height: 34px; padding: 0 12px; font-size: var(--t-apoio); }
.btn.primario { font-weight: 700; }
.btn.icone { width: 42px; padding: 0; }
.btn.icone.pequeno { width: 34px; }
input:not([type]), input[type="text"], select, textarea { border-radius: var(--raio); border: 1.5px solid var(--borda); background: var(--superficie); min-height: 44px; padding: 10px 12px; }
input:not([type]):hover, input[type="text"]:hover, select:hover, textarea:hover { border-color: var(--borda-forte); }
textarea { min-height: 96px; }
.campo > span { font-size: var(--t-apoio); font-weight: 600; color: var(--texto); }
.estado { border-radius: var(--raio-p); padding: 3px 10px 3px 7px; font-size: var(--t-legenda); }
.chip .origem, .ctx .origem { text-transform: none; letter-spacing: 0; border-radius: var(--raio-p); padding: 1px 8px; font-size: var(--t-legenda); }

/* Rótulos em caixa alta viram frase normal, em peso 600 */
.tabela th, .ctx dt, .tabela.cartoes td::before, .tabela.kv td:first-child, .selo-caixa .k, .tile .rot, .veredito-rotulo, .grade-criador .ctx dt { text-transform: none !important; letter-spacing: 0 !important; }
.tabela th { font-size: var(--t-legenda); color: var(--texto-2); border-bottom: 1.5px solid var(--borda); }

/* ---- Entrada (arrastar e soltar) ---- */
.grade-entrada { gap: 18px; }
.zona { border: 2px dashed color-mix(in srgb, var(--marca) 45%, var(--borda)); background: var(--superficie); min-height: 320px; padding: 44px 32px; }
.zona:hover, .zona.arrastando { border-color: var(--marca); background: color-mix(in srgb, var(--marca) 4%, var(--superficie)); }
.zona h2 { font-size: var(--t-titulo); font-weight: 800; letter-spacing: -0.02em; max-width: 18ch; }
.zona-icone { width: 64px; height: 64px; padding: 16px; border-radius: var(--raio-c); background: color-mix(in srgb, var(--marca) 10%, var(--superficie)); color: var(--marca); box-sizing: border-box; margin-bottom: 8px; }
:root[data-theme="dark"] .zona-icone { color: var(--marca-ui); background: color-mix(in srgb, var(--marca) 22%, var(--superficie)); }
.zona-ocioso > p:not(.zona-nota) { font-size: var(--t-corpo); }
.zona-lista li { border-radius: var(--raio); padding: 10px 12px; }
.coluna-lado > .cartao h2 { font-size: var(--t-destaque); }
.lista { gap: 8px; font-size: var(--t-apoio); }

/* ---- Veredito: o cartão sobre o palco na página de resultado ---- */
.veredito { border: 1px solid var(--borda); border-left-width: 1px; padding: 24px 26px; gap: 16px; border-top: 6px solid var(--borda-forte); border-radius: var(--raio-c); }
.veredito.ok { border-top-color: var(--ok); } .veredito.viol { border-top-color: var(--viol); } .veredito.viol-forte { border-top-color: var(--viol-forte); } .veredito.nv { border-top-color: var(--nv); }
.veredito.ok, .veredito.viol, .veredito.viol-forte, .veredito.nv { border-left-color: var(--borda); }
.veredito-rotulo { font-size: var(--t-apoio); font-weight: 700; color: var(--texto); }
.veredito-frase { font-size: var(--t-titulo); font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; max-width: 30ch; }
.barra { height: 14px; border-radius: var(--raio-p); border: none; gap: 3px; background: transparent; }
.barra .seg { border-radius: var(--raio-p); }
.barra .seg[style*="width:0%"] { display: none; }
.barra-legenda { font-size: var(--t-apoio); }
.barra-legenda i { border-radius: var(--raio-p); }

/* ---- Tríptico: blocos contornados, número pesado ---- */
.triptico { gap: 14px; }
.tile { border: 1.5px solid var(--borda); border-top-width: 1.5px; padding: 18px 20px 16px; gap: 6px; }
.tile.ok { border-color: color-mix(in srgb, var(--ok) 45%, var(--borda)); }
.tile.viol { border-color: color-mix(in srgb, var(--viol) 45%, var(--borda)); }
.tile.nv { border-color: color-mix(in srgb, var(--nv) 40%, var(--borda)); }
.tile.ativo { outline: none; border-color: var(--texto); box-shadow: inset 0 0 0 1.5px var(--texto); }
.tile .rot { font-size: var(--t-apoio); font-weight: 700; color: var(--texto); }
.tile .num { font-size: var(--t-numero); font-weight: 800; letter-spacing: -0.04em; }

/* ---- Jornada ---- */
.passos li { border-width: 1.5px; padding: 14px; }
.passos li.atual { border-color: var(--marca); }
:root[data-theme="dark"] .passos li.atual { border-color: var(--marca-ui); }
.passo-n { width: 30px; height: 30px; border-width: 1.5px; font-weight: 800; }
.pend { border-left-width: 1px; border-top: 4px solid var(--viol); padding: 16px 18px; }
.pend.nao-verificavel { border-top-color: var(--nv); border-left-color: var(--borda); }
.pend.afastada { border-top-color: var(--ok); border-left-color: var(--borda); }
.pend.confirmada, .pend.esclarecimento { border-top-color: var(--pauta-marca); border-left-color: var(--borda); }
.pend-titulo { font-size: var(--t-destaque); font-weight: 700; }
.pend-h3 { font-size: var(--t-destaque); font-weight: 800; }
.conclusao-titulo { font-size: var(--t-subtitulo); font-weight: 800; letter-spacing: -0.015em; }

/* ---- Criador ---- */
.pecas-nav { gap: 12px; }
.pecas-nav a { border: 1.5px solid var(--borda); padding: 14px 16px; font-weight: 700; }
.pecas-nav a.ativa { border-color: var(--marca); color: var(--texto); box-shadow: inset 0 0 0 1px var(--marca), var(--elevacao) !important; }
:root[data-theme="dark"] .pecas-nav a.ativa { border-color: var(--marca-ui); box-shadow: inset 0 0 0 1px var(--marca-ui), var(--elevacao) !important; }
.pecas-n { border-radius: var(--raio-p); padding: 2px 8px; }
.secao { border-left-width: 1px; border-top: 4px solid var(--borda); padding: 18px 20px; }
.secao.obrigatoria { border-top-color: var(--borda-forte); border-left-color: var(--borda); }
.secao.preenchida { border-top-color: var(--ok); border-left-color: var(--borda); }
.secao-titulo { font-size: var(--t-destaque); font-weight: 700; }
.secao-pergunta { font-size: var(--t-corpo); font-weight: 500; }
.criador-cab { flex-direction: row; align-items: flex-end; }
.criador-cab .acoes { flex-wrap: wrap; }
.precos-total .v { font-size: var(--t-titulo); font-weight: 800; letter-spacing: -0.02em; }
.precos-stats .v b { font-weight: 800; }

/* ---- Outros ---- */
.toast { border-radius: var(--raio); padding: 12px 18px; font-weight: 600; }
.modal { border: none; box-shadow: var(--elevacao); padding: 24px; }
.modal h2 { font-size: var(--t-subtitulo); font-weight: 800; letter-spacing: -0.015em; }
.detalhe-cab h2 { font-size: var(--t-subtitulo); font-weight: 800; }
.rodape { background: transparent; border-top: 1px solid var(--borda); }
.selo-caixa div { border-bottom-color: var(--borda); }

/* ---- Celular: barra inferior de abas, palco com base arredondada ---- */
@media (max-width: 760px) {
  body { font-size: var(--t-corpo); padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
  h1, .h1-marca { font-size: var(--t-titulo); }
  .topo-int { height: 56px; flex-wrap: nowrap; padding-top: 0; padding-bottom: 0; gap: 10px; }
  .status { display: none; }
  .tema { order: 0; }
  .nav {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; margin: 0; width: auto;
    display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 0;
    padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); overflow: visible;
    background: var(--superficie); border-top: 1px solid var(--borda); box-shadow: 0 -6px 20px -12px rgba(16,24,40,.25);
  }
  .nav a, .nav-mais { flex-direction: column; gap: 3px; min-height: 54px; padding: 4px 2px; border-radius: var(--raio); color: var(--texto-2); font-size: var(--t-legenda); font-weight: 600; justify-content: center; background: none; border: none; cursor: pointer; }
  .nav a:hover { background: var(--superficie-2); color: var(--texto); }
  .nav a.ativo, .nav-mais.ativo { color: var(--marca); background: none; border: none !important; }
  :root[data-theme="dark"] .nav a.ativo, :root[data-theme="dark"] .nav-mais.ativo { color: var(--marca-ui); }
  .nav a.ativo .nav-ic, .nav-mais.ativo .nav-ic { background: color-mix(in srgb, var(--marca) 12%, transparent); }
  .nav .nav-ic { display: block; width: 44px; height: 28px; padding: 4px 12px; border-radius: var(--raio-p); }
  .nav .l-longo, .nav .nav-sec, .nav .premium { display: none !important; }
  .nav .l-curto { display: block; }
  .nav-mais { display: flex; font: inherit; }
  .nav-cta { margin: 0; border: none !important; color: var(--texto-2) !important; border-radius: var(--raio) !important; }
  .nav-cta:hover { background: var(--superficie-2) !important; color: var(--texto) !important; }
  .nav-cta.ativo { background: none !important; color: var(--marca) !important; }
  .nav-cta .nav-ic { background: var(--marca); color: #FFFFFF; }
  .nav-cta.ativo .nav-ic { background: var(--marca) !important; }
  .menu-mais:not([hidden]) {
    display: grid; position: fixed; right: 10px; bottom: calc(76px + env(safe-area-inset-bottom)); z-index: 26;
    background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio-c); box-shadow: var(--elevacao); padding: 6px; min-width: 240px;
  }
  .menu-mais a { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: var(--raio); color: var(--texto); text-decoration: none; font-weight: 600; min-height: 48px; }
  .menu-mais a .nav-ic { width: 20px; height: 20px; color: var(--texto-2); }
  .menu-mais a.ativo { color: var(--marca); }
  .menu-mais a:hover { background: var(--superficie-2); }
  .toast { bottom: calc(80px + env(safe-area-inset-bottom)); }

  .pagina-cab, .cab-resultado { padding: 10px 0 72px; margin-bottom: -56px; }
  .pagina-cab .lede, .cab-resultado .sobre { font-size: var(--t-corpo); }
  .cab-resultado .acoes { display: grid; grid-template-columns: 1fr 1fr; }
  .cab-resultado .acoes .btn { min-height: 44px; }
  .criador-cab .acoes { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .criador-cab .acoes .btn { min-height: 44px; }
  .veredito { padding: 20px; border-radius: var(--raio-c); }
  .veredito-frase { font-size: var(--t-subtitulo); }
  .zona { min-height: 0; padding: 30px 20px; }
  .zona h2 { font-size: var(--t-subtitulo); }
  .tile { padding: 12px 12px 10px; border-top-width: 1.5px; }
  .tile .rot { font-size: var(--t-legenda); letter-spacing: 0; min-height: 30px; }
  .tile .num { font-size: var(--t-display); }
  .faixa-cab { padding: 14px 16px; }
  .faixa-corpo { padding: 14px 16px; }
  .btn { min-height: 46px; }
  .btn.pequeno { min-height: 42px; }
  .pend-acoes .btn, .pend-acoes label.btn { min-height: 46px; }
}

@media print {
  .pagina-cab, .cab-resultado { background: none; color: #1E2229; box-shadow: none; clip-path: none; padding: 0 0 8px; margin: 0; }
  .pagina-cab h1, .cab-resultado h1, .cab-titulo .sobre, .pagina-cab .lede { color: #1E2229; }
  .veredito, .pagina-cab + * { box-shadow: none !important; }
  .nav, .menu-mais { display: none !important; }
  body { padding: 0; }
}
@media (prefers-reduced-motion: reduce) { .toast { transition: none; } }

/* Status da instalação mora no rodapé (informativo, não navegação) */
.rodape .status { color: var(--texto-2); width: 100%; font-size: var(--t-legenda); }
.rodape .status .ponto { background: var(--texto-2); box-shadow: none; }
.rodape .status.st-ok .ponto { background: var(--ok); } .rodape .status.st-aviso .ponto { background: var(--viol); } .rodape .status.st-erro .ponto { background: var(--viol-forte); }
.topo .tema { margin-left: 4px; }
h1, .h1-marca { letter-spacing: -0.02em; }
@media (max-width: 760px) {
  .rodape .status { display: inline-flex; }
  .nav-mais { font-family: var(--fonte); font-size: var(--t-legenda); font-weight: 600; }
  .topo .tema { margin-left: auto; }
}
@media (min-width: 761px) and (max-width: 1380px) {
  .nav .l-longo { display: none; }
  .nav .l-curto { display: inline; }
  .nav a { padding: 8px 10px; }
  .nav-cta .premium { display: none; }
}
/* Tudo o que vem depois do palco fica acima dele (inclui casos com aviso oculto entre os dois) */
.pagina > * { position: relative; z-index: 1; }
.pagina > .pagina-cab, .pagina > .cab-resultado { z-index: 0; }
.pagina-cab + [hidden] + * { box-shadow: var(--elevacao); }
.pagina-cab + [hidden] + .grade-criador, .pagina-cab + [hidden] + .grade-entrada { box-shadow: none; }
.pagina-cab + [hidden] + .grade-criador .coluna-principal > :first-child,
.pagina-cab + [hidden] + .grade-criador .coluna-lado > :first-child,
.pagina-cab + .grade-criador .coluna-principal > :first-child,
.pagina-cab + .grade-criador .coluna-lado > :first-child { box-shadow: var(--elevacao); }
:root[data-theme="dark"] .nav-cta.ativo .premium, :root[data-theme="dark"] .nav-cta:hover .premium { background: var(--marca); color: #FFFFFF; }
:root[data-theme="dark"] .nav a.ativo, :root[data-theme="dark"] .nav-cta.ativo { color: var(--palco) !important; }
.cartao-regra .cab { flex-wrap: wrap; }
.cartao-regra h3 { font-size: var(--t-destaque); font-weight: 800; letter-spacing: -0.015em; }
@media (max-width: 760px) {
  .cartao-regra .cab { flex-direction: column; gap: 8px; }
  :root[data-theme="dark"] .nav a.ativo, :root[data-theme="dark"] .nav-cta.ativo { color: var(--marca-ui) !important; }
}
.pagina-cab + [hidden] + .grade-entrada .coluna-principal > :first-child,
.pagina-cab + [hidden] + .grade-entrada .coluna-lado > :first-child { box-shadow: var(--elevacao); }

/* ---- Ícones de interface (sempre acompanhados de rótulo) ---- */
.ui-ic { width: 18px; height: 18px; flex: none; }
.btn .ui-ic { width: 18px; height: 18px; margin-left: -2px; }
.btn.pequeno .ui-ic { width: 16px; height: 16px; }
label.btn { gap: 8px; }
.ui-ic.tit { width: 22px; height: 22px; padding: 3px; border-radius: var(--raio); box-sizing: content-box; color: var(--marca-ui); background: color-mix(in srgb, var(--marca) 10%, transparent); margin-right: 2px; }
:root[data-theme="dark"] .ui-ic.tit { background: color-mix(in srgb, var(--marca) 26%, transparent); }
.faixa-cab h2, .cartao > h2, .coluna-lado h2, .pend-h3 { display: flex; align-items: center; gap: 10px; }
.camada h4 { display: flex; align-items: center; gap: 8px; color: var(--texto); font-size: var(--t-apoio); }
.camada h4 .ui-ic.tit { width: 18px; height: 18px; padding: 4px; }
.cartao-regra h4 { display: flex; align-items: center; gap: 8px; }
.cartao-regra h4 .ui-ic.tit { width: 16px; height: 16px; padding: 3px; }
.ui-ic.peca { width: 20px; height: 20px; color: var(--marca-ui); }
.pecas-nav a.pronta .ui-ic.peca { color: var(--ok); }
.pagina-cab .ui-ic, .cab-resultado .ui-ic { color: currentColor; }
@media (max-width: 760px) { .faixa-cab h2 .ui-ic.tit { width: 20px; height: 20px; } }
@media print { .ui-ic.tit { background: none; padding: 0; } .btn .ui-ic { display: none; } }

/* ---- Início: continuar de onde parou + funções da plataforma ---- */
.continuar-lista { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 8px; }
.continuar-item { display: grid; grid-template-columns: 40px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 12px; border: 1.5px solid var(--borda); border-radius: var(--raio); color: var(--texto); text-decoration: none; }
.continuar-item:hover { border-color: var(--marca-ui); background: var(--superficie-2); }
.continuar-ic, .funcao-ic { display: grid; place-items: center; border-radius: var(--raio); color: var(--marca-ui); background: color-mix(in srgb, var(--marca) 10%, transparent); }
:root[data-theme="dark"] .continuar-ic, :root[data-theme="dark"] .funcao-ic { background: color-mix(in srgb, var(--marca) 26%, transparent); }
.continuar-ic { width: 40px; height: 40px; }
.continuar-ic .ui-ic { width: 20px; height: 20px; }
.continuar-txt { display: grid; gap: 2px; min-width: 0; }
.continuar-txt b { font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.continuar-acao { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; font-size: var(--t-apoio); color: var(--marca-ui); white-space: nowrap; }
.continuar-acao .ui-ic { width: 16px; height: 16px; }

.funcoes { margin-top: 18px; display: grid; gap: 14px; }
.funcoes-titulo { font-size: var(--t-titulo); font-weight: 800; letter-spacing: -0.02em; }
.funcoes-grade { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.funcao { display: grid; grid-template-rows: auto auto 1fr auto; gap: 8px; padding: 20px; background: var(--superficie); border: 1.5px solid var(--borda); border-radius: var(--raio-c); color: var(--texto); text-decoration: none; min-height: 196px; }
.funcao:hover { border-color: var(--marca-ui); }
.funcao:hover .funcao-ir { gap: 10px; }
.funcao-ic { width: 52px; height: 52px; margin-bottom: 6px; }
.funcao-ic .ui-ic { width: 26px; height: 26px; }
.funcao-titulo { font-size: var(--t-destaque); font-weight: 800; letter-spacing: -0.015em; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.funcao-texto { color: var(--texto-2); font-size: var(--t-apoio); line-height: 1.45; }
.funcao-ir { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; font-size: var(--t-apoio); color: var(--marca-ui); transition: gap .15s; }
.funcao-ir .ui-ic { width: 16px; height: 16px; }
.premium.premium-claro { background: color-mix(in srgb, var(--marca) 12%, transparent); color: var(--marca-ui); }
@media (max-width: 1080px) { .funcoes-grade { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 760px) {
  .funcoes-titulo { font-size: var(--t-subtitulo); }
  .funcoes-grade { grid-template-columns: 1fr; gap: 10px; }
  .funcao { grid-template-columns: 48px minmax(0,1fr); grid-template-rows: auto auto; min-height: 0; padding: 16px; column-gap: 14px; row-gap: 4px; }
  .funcao-ic { width: 48px; height: 48px; margin: 0; grid-row: 1 / span 2; align-self: start; }
  .funcao-ir { display: none; }
  .funcao-titulo { font-size: var(--t-corpo); }
  .funcao-texto { font-size: var(--t-apoio); }
}
@media (prefers-reduced-motion: reduce) { .funcao-ir { transition: none; } }
@media print { .funcoes, .continuar { display: none !important; } }
.precos-controles { align-items: flex-end; }
.precos-controles > .btn { min-height: 44px; }
.precos-controles .campo.inline select { min-height: 44px; }
@media (max-width: 760px) {
  .continuar-item { grid-template-columns: 40px minmax(0,1fr) 20px; }
  .continuar-acao { font-size: 0; gap: 0; }
  .continuar-acao .ui-ic { width: 20px; height: 20px; }
  .precos-controles { display: grid; grid-template-columns: 1fr 1fr; }
  .precos-controles > #precos-buscar, .precos-controles > #precos-mais { grid-column: 1 / -1; }
}
@media (max-width: 760px) { .faixa-cab h2 { flex-wrap: nowrap; } .faixa-cab h2 .n { width: auto; display: inline; } }
/* Upload ocupa a largura toda; "continuar" vira faixa abaixo dele */
.grade-entrada.grade-unica { grid-template-columns: minmax(0, 1fr); }
.grade-unica .zona { min-height: 300px; }
.continuar { margin-top: 18px; display: grid; gap: 12px; }
.continuar .funcoes-titulo { font-size: var(--t-subtitulo); }
.continuar-lista { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); margin: 0; }
.continuar-item { background: var(--superficie); }
@media (max-width: 760px) { .continuar-lista { grid-template-columns: 1fr; } .continuar .funcoes-titulo { font-size: var(--t-destaque); } }
.precos-passos { margin: 0 0 14px; padding-left: 20px; display: grid; gap: 4px; color: var(--texto-2); font-size: var(--t-apoio); }
.precos-passos b { color: var(--texto); }
.precos-itens { margin-top: 4px; }
.precos-leitura { display: grid; gap: 10px; justify-items: start; margin-bottom: 12px; }
.precos-leitura .aviso { display: flex; gap: 10px; align-items: flex-start; width: 100%; }
.precos-leitura .aviso .ui-ic { color: var(--ok); margin-top: 1px; }
.precos-origem { grid-column: 1 / -1; margin-top: -2px; }
.precos-aderencia { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 10px 0 6px; }
.precos-comparacao { border-radius: var(--raio); padding: 10px 12px; font-size: var(--t-apoio); line-height: 1.45; margin: 6px 0; }
.precos-comparacao.rever { background: var(--pauta); border: 1px solid var(--pauta-borda); }
.precos-comparacao.ok { background: var(--ok-tinta); border: 1px solid var(--ok-borda); }
.precos-itens.compacto { gap: 4px; }
.precos-itens.compacto .precos-item { grid-template-columns: minmax(0,1fr) 110px auto; }
.precos-itens.compacto .rot-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.precos-itens.compacto .precos-origem { margin: -2px 0 6px; }
@media (max-width: 760px) {
  .precos-itens.compacto .precos-item { grid-template-columns: minmax(0,1fr) 84px; }
  .precos-itens.compacto .precos-item > button { grid-column: 1 / -1; justify-self: end; min-height: 36px; }
}
.precos-itens.compacto .campo-largo { grid-column: auto; }
.precos-item .btn.remover { width: 44px; min-height: 44px; padding: 0; color: var(--texto-2); }
.precos-item .btn.remover .ui-ic { margin: 0; }
.precos-itens.compacto .precos-item { grid-template-columns: minmax(0,1fr) 110px 44px; }
@media (max-width: 760px) {
  .precos-itens.compacto .precos-item { grid-template-columns: minmax(0,1fr) 64px 44px; gap: 6px; }
  .precos-itens.compacto .precos-item > button { grid-column: auto; justify-self: stretch; min-height: 44px; }
  .precos-item { grid-template-columns: minmax(0,1fr) 84px 44px; }
  .precos-item > .campo-largo { grid-column: auto; }
}

/* =====================================================================
   Resultado em linha do tempo (DIRECAO-INTERFACE.md, 08/10/2026)
   ===================================================================== */
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.cab-resultado .voltar { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-apoio); font-weight: 600; color: var(--palco-texto); text-decoration: none; min-height: 32px; width: fit-content; }
.cab-resultado .voltar:hover { text-decoration: underline; }
.voltar-ic { transform: rotate(180deg); width: 16px; height: 16px; }
.cab-meta { margin: 2px 0 0; color: var(--palco-texto-2); font-size: var(--t-apoio); max-width: 64ch; }
.veredito .triptico { margin-top: 2px; }
.veredito .tile { background: var(--superficie); }
.veredito-nota { margin-top: -4px; }
.resultado-grade { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.resultado-principal, .resultado-lado { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.resultado-lado .ctx-lista { grid-template-columns: 1fr; padding: 4px 20px 6px; }
.resultado-lado .ctx { grid-template-columns: 1fr; gap: 2px; }
.resultado-lado .ctx dt { font-size: var(--t-legenda); font-weight: 600; }
.ctx-nota { padding: 0 20px 16px; }

.linha { list-style: none; margin: 0; padding: 0; }
.etapa { position: relative; display: grid; grid-template-columns: 32px minmax(0, 1fr); column-gap: 14px; padding-bottom: 22px; }
.etapa:last-child { padding-bottom: 0; }
.etapa::before { content: ""; position: absolute; left: 15px; top: 34px; bottom: 4px; width: 2px; border-radius: 2px; background: var(--borda); }
.etapa:last-child::before { display: none; }
.etapa.feita::before { background: var(--ok); }
.etapa-marca { width: 32px; height: 32px; box-sizing: border-box; border-radius: 50%; border: 2px solid var(--borda-forte); background: var(--superficie); display: grid; place-items: center; color: #FFFFFF; }
.etapa-marca svg { width: 18px; height: 18px; }
.etapa.feita .etapa-marca { background: var(--ok); border-color: var(--ok); }
.etapa.atual:not(.feita) .etapa-marca { border: 3px solid var(--viol); }
.etapa.futura .etapa-marca { border-color: var(--borda); }
.etapa-titulo { margin: 4px 0 2px; font-size: var(--t-destaque); font-weight: 700; }
.etapa.futura .etapa-titulo, .etapa.futura .etapa-texto { color: var(--texto-2); }
.etapa-texto { color: var(--texto-2); font-size: var(--t-apoio); line-height: 1.5; }
.etapa-sub { margin: 16px 0 8px; font-size: var(--t-apoio); font-weight: 700; color: var(--texto-2); }
.agora { margin-top: 10px; border: 1.5px solid var(--viol-borda); border-radius: var(--raio-c); padding: 14px 16px 16px; background: var(--superficie); box-shadow: var(--elevacao); }
.agora-rotulo { display: inline-block; font-size: var(--t-legenda); font-weight: 800; color: var(--viol-forte); margin-bottom: 6px; }
.agora .pend { border: none; border-radius: 0; padding: 0; }
.agora .pend-titulo { font-size: var(--t-destaque); }
.agora .pend-acoes .btn { min-height: 44px; }
.pend-compactas .pend { padding: 12px 14px; }
.pend-compactas .pend-fazer { font-size: var(--t-apoio); color: var(--texto-2); }
.etapa .conclusao { margin-top: 8px; }
@media (max-width: 1080px) {
  .resultado-grade { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .etapa { grid-template-columns: 28px minmax(0, 1fr); column-gap: 12px; }
  .etapa-marca { width: 28px; height: 28px; }
  .etapa::before { left: 13px; top: 30px; }
  .agora { padding: 12px; }
  .agora .pend-acoes .btn, .agora .pend-acoes label.btn { flex: 1 1 100%; }
  .veredito .tile .rot { min-height: 34px; }
}
@media print {
  .resultado-grade { grid-template-columns: 1fr; }
  .agora { box-shadow: none; }
  .voltar, .veredito-nota { display: none !important; }
}

/* ---------------------------------------------------------------- Privacidade, LGPD e termos (ADR-0016) */
.aviso-privacidade { display: flex; gap: 8px; align-items: flex-start; margin: 12px 2px 0; font-size: var(--t-legenda); line-height: 1.5; color: var(--texto-2); }
.aviso-privacidade svg { flex: none; margin-top: 2px; color: var(--marca-ui, var(--marca)); }
.rodape-links { display: flex; gap: 16px; flex-wrap: wrap; }
.rodape-links a { color: var(--texto-2); text-decoration: underline; text-underline-offset: 3px; min-height: 24px; display: inline-flex; align-items: center; }
.rodape-links a:hover { color: var(--texto); }
.legal { gap: 20px; }
.legal-resumo ul, .legal-texto ul { margin: 8px 0 0; padding-left: 20px; display: flex; flex-direction: column; gap: 6px; }
.legal-resumo li, .legal-texto li { line-height: 1.55; }
.legal-indice { display: flex; flex-wrap: wrap; gap: 8px; }
.legal-indice a { font-size: var(--t-apoio); font-weight: 600; text-decoration: none; padding: 6px 12px; min-height: 32px; display: inline-flex; align-items: center; border: 1px solid var(--borda); border-radius: var(--raio-p); background: var(--superficie); color: var(--texto); }
.legal-indice a:hover { border-color: var(--borda-forte); }
.legal-texto { max-width: 76ch; display: flex; flex-direction: column; gap: 10px; }
.legal-texto h2 { font-size: var(--t-destaque); font-weight: 800; margin-top: 18px; scroll-margin-top: 90px; }
.legal-texto p { line-height: 1.6; }
.legal-dl { display: grid; gap: 10px; margin: 6px 0 0; padding: 14px 16px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.legal-dl dt { font-size: var(--t-legenda); color: var(--texto-2); font-weight: 600; }
.legal-dl dd { margin: 2px 0 0; }
.a-informar { color: var(--pauta-texto); background: var(--pauta); border: 1px solid var(--pauta-borda); border-radius: var(--raio-p); padding: 0 8px; font-size: var(--t-legenda); font-weight: 600; }
.legal-pendente { margin-top: 10px; padding: 10px 14px; border-radius: var(--raio); background: var(--pauta); border: 1px solid var(--pauta-borda); color: var(--pauta-texto); font-size: var(--t-apoio); line-height: 1.5; }
.legal-rolagem { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.legal-tabela td { vertical-align: top; padding: 10px; border-bottom: 1px solid var(--borda); line-height: 1.5; }
.legal-tabela td:first-child { font-weight: 600; min-width: 200px; }
.legal-tabela th { white-space: normal; }
.legal-navegador { display: flex; flex-direction: column; gap: 10px; max-width: 76ch; }
.legal-navegador code { font-family: var(--mono); font-size: var(--t-legenda); }
.acoes-linha { display: flex; gap: 8px; flex-wrap: wrap; }
.btn.perigo { border-color: var(--viol); color: var(--viol-forte, var(--viol)); }
@media (max-width: 640px) {
  .legal-tabela, .legal-tabela tbody, .legal-tabela tr, .legal-tabela td { display: block; width: 100%; }
  .legal-tabela thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .legal-tabela tr { border-bottom: 1px solid var(--borda); padding: 12px 14px; }
  .legal-tabela tr:last-child { border-bottom: 0; }
  .legal-tabela td { border: 0; padding: 2px 0; min-width: 0; }
  .legal-tabela td:nth-child(2) { color: var(--marca-ui, var(--link)); font-weight: 600; font-size: var(--t-apoio); }
  .legal-tabela td:nth-child(3) { color: var(--texto-2); }
}

/* ---------------------------------------------------------------- Início enxuto (2026-10-09): um título, uma ação */
.zona-ocioso { gap: 12px; }
.zona-botao { min-height: 48px; padding: 0 28px; font-size: var(--t-corpo); font-weight: 700; }
.zona-meta { font-size: var(--t-apoio); color: var(--texto-2); margin: 0; }
.aviso-privacidade { justify-content: center; margin-top: 14px; }
@media (pointer: coarse), (max-width: 640px) {
  .zona { padding-top: 28px; padding-bottom: 28px; }
  .zona-botao { width: 100%; max-width: 320px; }
}
.marca-produto { font-weight: 500; opacity: .9; }
@media (max-width: 360px) { .marca-produto { display: none; } }

/* ---------------------------------------------------------------- Pesquisa de preços enxuta (2026-10-11)
   Conclusão primeiro, uma linha por item, detalhes sob demanda. */
.pl-link { background: none; border: 0; padding: 0; color: var(--link); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; font: inherit; font-size: var(--t-apoio); font-weight: 600; min-height: 32px; display: inline-flex; align-items: center; }
.pl-origem { display: flex; align-items: center; gap: 8px 16px; flex-wrap: wrap; margin-bottom: 14px; font-size: var(--t-apoio); color: var(--texto-2); }
.pl-origem-txt { display: inline-flex; gap: 8px; align-items: center; }
.pl-origem-txt .ui-ic { color: var(--ok); }
.pl-origem-txt b { color: var(--texto); }

.pl-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.pl-item { display: grid; grid-template-columns: 28px minmax(0, 1fr) 150px 44px; gap: 10px; align-items: end; }
.pl-n { align-self: center; font-weight: 800; color: var(--texto-2); font-size: var(--t-apoio); text-align: right; }
.pl-campo { display: grid; gap: 6px; font-size: var(--t-apoio); font-weight: 600; }
.pl-campo input { width: 100%; box-sizing: border-box; min-height: 44px; padding: 0 12px; border: 1px solid var(--borda-forte); border-radius: var(--raio); background: var(--superficie); color: var(--texto); font: inherit; font-weight: 400; font-size: var(--t-corpo); }
.pl-qtd { position: relative; display: block; }
.pl-un { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); font-size: var(--t-legenda); color: var(--texto-2); pointer-events: none; }
.pl-qtd input { padding-right: 54px; }
.pl-remover { width: 44px; min-height: 44px; padding: 0; color: var(--texto-2); }
.pl-remover .ui-ic { margin: 0; }
/* Lista lida do documento: parece lista, vira campo ao tocar. */
.pl-lista.quieta { gap: 0; border: 1px solid var(--borda); border-radius: var(--raio-c); background: var(--superficie); overflow: hidden; }
.pl-lista.quieta .pl-item { align-items: center; padding: 4px 8px 4px 4px; border-bottom: 1px solid var(--borda); }
.pl-lista.quieta .pl-item:last-child { border-bottom: 0; }
.pl-lista.quieta input { border-color: transparent; background: transparent; min-height: 40px; }
.pl-lista.quieta input:hover { border-color: var(--borda); }
.pl-lista.quieta input:focus { border-color: var(--marca-ui, var(--marca)); background: var(--superficie); }
.pl-lista.quieta .pl-remover { border-color: transparent; background: transparent; }
.pl-lista.quieta .pl-remover:hover { border-color: var(--borda); }
.pl-controles { display: flex; align-items: center; gap: 10px 18px; flex-wrap: wrap; margin-top: 14px; }
.pl-controles > .btn { min-height: 44px; }
.pl-ajustes summary { cursor: pointer; font-size: var(--t-apoio); color: var(--texto-2); min-height: 32px; display: inline-flex; align-items: center; }
.pl-ajustes[open] { flex-basis: 100%; }
.pl-ajustes-corpo { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 8px; }
.pl-ajustes-corpo select { min-height: 44px; }
.pl-carregando { display: flex; gap: 10px; align-items: center; padding: 14px 16px; margin: 0 0 14px; border: 1px dashed var(--borda-forte); border-radius: var(--raio-c); color: var(--texto-2); }

.pl-res { display: grid; gap: 14px; margin-bottom: 16px; }
.pl-conclusao { display: grid; gap: 14px; padding: 18px 20px; border: 1px solid var(--borda); border-radius: var(--raio-c); background: var(--superficie); box-shadow: var(--elevacao); }
.pl-totais { display: flex; gap: 16px 40px; flex-wrap: wrap; }
.pl-total { display: grid; gap: 2px; }
.pl-total .k { font-size: var(--t-apoio); color: var(--texto-2); font-weight: 600; }
.pl-total .v { font-size: var(--t-display); font-weight: 800; letter-spacing: -0.03em; line-height: 1.1; font-variant-numeric: tabular-nums; }
.pl-total-doc .v { font-size: var(--t-titulo); color: var(--texto-2); }
.pl-frase { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: var(--raio); background: var(--pauta); border: 1px solid var(--pauta-borda); color: var(--pauta-texto); }
.pl-frase svg { flex: none; width: 18px; height: 18px; margin-top: 2px; color: var(--pauta-marca, currentColor); }
.pl-frase p { margin: 0; line-height: 1.5; font-weight: 600; }
.pl-frase .mini { display: block; font-weight: 400; margin-top: 2px; color: inherit; opacity: .9; }
.pl-frase.ok { background: var(--ok-tinta); border-color: var(--ok-borda); color: var(--texto); }
.pl-frase.ok svg { color: var(--ok); }
.pl-conclusao .acoes { margin: 0; }
.pl-notas { border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); padding: 0 14px; }
.pl-notas summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-size: var(--t-apoio); font-weight: 600; }
.pl-notas ul { margin: 0 0 12px; padding-left: 18px; display: grid; gap: 6px; font-size: var(--t-apoio); color: var(--texto-2); line-height: 1.5; }

.pl-tabela { border: 1px solid var(--borda); border-radius: var(--raio-c); background: var(--superficie); overflow: hidden; }
.pl-cab, .pl-sum, .pl-rodape { display: grid; grid-template-columns: minmax(0, 1fr) 130px 150px 150px 24px; gap: 12px; align-items: center; padding: 10px 16px; }
.pl-cab { font-size: var(--t-legenda); font-weight: 600; color: var(--texto-2); border-bottom: 1px solid var(--borda-forte); }
.pl-cab span:nth-child(2), .pl-cab span:nth-child(3), .pl-c-doc, .pl-c-ref, .pl-rodape span:nth-child(2), .pl-rodape span:nth-child(3) { text-align: right; font-variant-numeric: tabular-nums; }
.pl-linha { border-bottom: 1px solid var(--borda); }
.pl-sum { cursor: pointer; list-style: none; min-height: 56px; }
.pl-sum::-webkit-details-marker { display: none; }
.pl-sum:hover { background: var(--superficie-2); }
.pl-c-item { display: grid; gap: 2px; min-width: 0; }
.pl-c-item b { font-weight: 700; overflow-wrap: anywhere; }
.pl-c-doc { color: var(--texto-2); }
.pl-rever { display: inline-flex; align-items: center; padding: 2px 10px; border-radius: var(--raio-p); background: var(--pauta); border: 1px solid var(--pauta-borda); color: var(--pauta-texto); font-size: var(--t-legenda); font-weight: 700; white-space: nowrap; }
.pl-seta { color: var(--texto-2); display: grid; place-items: center; transition: transform .15s; }
.pl-linha details[open] .pl-seta { transform: rotate(90deg); }
.pl-linha details[open] .pl-sum { background: var(--superficie-2); }
.pl-detalhe { padding: 6px 16px 16px; display: grid; gap: 12px; background: var(--superficie-2); }
.pl-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 16px; margin: 0; }
.pl-stats dt { font-size: var(--t-legenda); color: var(--texto-2); }
.pl-stats dd { margin: 2px 0 0; font-variant-numeric: tabular-nums; }
.pl-detalhe .tabela-rolagem { max-height: 320px; background: var(--superficie); }
.pl-rodape { font-weight: 600; background: var(--superficie-2); }
.pl-editar { border: 1px solid var(--borda); border-radius: var(--raio-c); padding: 0 14px; background: var(--superficie); }
.pl-editar > summary { cursor: pointer; min-height: 48px; display: flex; align-items: center; font-weight: 600; font-size: var(--t-apoio); }
.pl-editar[open] { padding-bottom: 14px; }
.pl-editar .pl-lista.quieta { border: 0; border-top: 1px solid var(--borda); border-radius: 0; }
:root[data-theme="dark"] .pl-conclusao { box-shadow: none; }

@media (max-width: 760px) {
  .pl-item { grid-template-columns: 22px minmax(0, 1fr) 96px 44px; gap: 6px; }
  .pl-qtd input { padding-right: 46px; padding-left: 8px; }
  .pl-cab { display: none; }
  .pl-sum, .pl-rodape { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "item seta" "ref dif" "doc doc"; gap: 4px 8px; padding: 12px 14px; }
  .pl-c-item { grid-area: item; } .pl-seta { grid-area: seta; align-self: start; }
  .pl-c-doc, .pl-rodape span:nth-child(2) { grid-area: doc; }
  .pl-c-ref, .pl-rodape span:nth-child(3) { grid-area: ref; }
  .pl-c-dif, .pl-rodape span:nth-child(4) { grid-area: dif; }
  .pl-rodape span:nth-child(1) { grid-area: item; }
  .pl-rodape span:nth-child(5) { display: none; }
  .pl-c-doc, .pl-c-ref, .pl-rodape span:nth-child(2), .pl-rodape span:nth-child(3) { display: flex; gap: 6px; align-items: baseline; text-align: left; font-size: var(--t-apoio); }
  .pl-c-ref, .pl-rodape span:nth-child(3) { font-size: var(--t-corpo); }
  .pl-c-doc, .pl-rodape span:nth-child(2) { font-size: var(--t-legenda); }
  .pl-c-dif, .pl-rodape span:nth-child(4) { justify-self: end; align-self: center; }
  .pl-c-doc::before, .pl-c-ref::before, .pl-rodape span[data-rot]::before { content: attr(data-rot); color: var(--texto-2); font-weight: 400; font-size: var(--t-legenda); }
  .pl-stats { grid-template-columns: 1fr 1fr; }
  .pl-total .v { font-size: var(--t-titulo); }
  .pl-total-doc .v { font-size: var(--t-subtitulo); }
  .pl-conclusao { padding: 16px; }
  .pl-conclusao .acoes .btn { width: 100%; }
}
.precos.sem-cab > .faixa-cab { display: none; }
.pl-item.sozinho { grid-template-columns: minmax(0, 1fr) 150px; }
@media (max-width: 760px) { .pl-item.sozinho { grid-template-columns: minmax(0, 1fr) 110px; } }
#secoes.recolhidas { display: none; }
.secoes-barra { display: flex; justify-content: space-between; align-items: center; gap: 8px 16px; flex-wrap: wrap; padding: 14px 18px; border: 1px dashed var(--borda-forte); border-radius: var(--raio-c); color: var(--texto-2); }
.secoes-barra p { margin: 0; line-height: 1.5; }
.secoes-barra b { color: var(--texto); font-weight: 600; }
.secoes-barra .mini { display: block; }

/* ---------------------------------------------------------------- Cinco peças (ADR-0017) */
.pecas-nav { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.pecas-nav a { padding: 12px; gap: 8px; font-size: var(--t-apoio); line-height: 1.25; }
@media (max-width: 1600px) {
  .pecas-nav { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; padding-bottom: 4px; }
  .pecas-nav a { flex: 0 0 auto; min-width: 190px; scroll-snap-align: start; }
}

/* ---------------------------------------------------------------- Colaboração no criador (ADR-0017) */
.colab-secao { display: flex; align-items: center; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; margin-top: 10px; padding-top: 10px; border-top: 1px dashed var(--borda); }
.colab-resp { display: inline-flex; align-items: center; gap: 8px; font-size: var(--t-legenda); color: var(--texto-2); }
.colab-resp input { min-height: 36px; padding: 0 10px; border: 1px solid var(--borda); border-radius: var(--raio-p); background: var(--superficie); color: var(--texto); font: inherit; font-size: var(--t-apoio); width: 220px; max-width: 60vw; }
.colab-resp input:not(:placeholder-shown) { border-color: var(--marca-ui, var(--marca)); font-weight: 600; }
.colab-thread { margin-top: 10px; padding: 12px 14px; border-radius: var(--raio); background: var(--superficie-2); display: grid; gap: 10px; }
.colab-coms { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.colab-coms li { padding-bottom: 10px; border-bottom: 1px solid var(--borda); }
.colab-coms li.resolvido { opacity: .65; }
.colab-coms p { margin: 4px 0; line-height: 1.5; }
.colab-meta { font-size: var(--t-legenda); color: var(--texto-2); }
.colab-novo { display: grid; gap: 8px; }
.colab-novo textarea, .colab-novo input { width: 100%; box-sizing: border-box; }
.colab-conflito { margin-top: 10px; padding: 10px 12px; border-radius: var(--raio); background: var(--pauta); border: 1px solid var(--pauta-borda); color: var(--pauta-texto); }
.colab-conflito summary { cursor: pointer; font-weight: 600; font-size: var(--t-apoio); }
.colab-conflito textarea { width: 100%; box-sizing: border-box; margin: 8px 0; background: var(--superficie); color: var(--texto); }
.secao.colab-atualizada { box-shadow: 0 0 0 2px var(--marca-ui, var(--marca)); transition: box-shadow .4s; }
.colab h2 { margin-bottom: 4px; }
.colab-h3 { font-size: var(--t-apoio); font-weight: 700; margin: 12px 0 6px; }
.colab-hist { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: var(--t-apoio); }
.colab-hist li { display: grid; gap: 2px; line-height: 1.4; }
.colab-alerta { margin: 0 0 8px; padding: 8px 10px; border-radius: var(--raio); background: var(--pauta); border: 1px solid var(--pauta-borda); color: var(--pauta-texto); font-size: var(--t-apoio); font-weight: 600; }
.pl-cotacao { border-top: 1px solid var(--borda); padding-top: 12px; }
.pl-cotacao summary { cursor: pointer; font-weight: 600; font-size: var(--t-apoio); min-height: 32px; display: flex; align-items: center; color: var(--link); }
.pl-cotacao[open] { display: grid; gap: 10px; }
.pl-cotacao-campos { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 10px; }
@media (max-width: 640px) { .pl-cotacao-campos { grid-template-columns: 1fr; } }
.pl-fontes { margin: -4px 0 0; }

/* ---------------------------------------------------------------- Acessibilidade (ADR-0018) */
.atalhos .pular { display: inline-flex; gap: 6px; }
.premium { background: color-mix(in srgb, var(--marca) 40%, #0B1020) !important; color: #FFFFFF !important; }
.nav-cta.ativo .premium, .nav-cta:hover .premium { background: var(--marca) !important; color: #FFFFFF !important; }
:root[data-theme="dark"] .continuar-acao, :root[data-theme="dark"] .funcao-ir { color: #9DB9F7; }
html.texto-ampliado body { zoom: var(--escala-texto, 1); }
.painel-a11y { position: absolute; top: 64px; right: 16px; z-index: 60; width: min(340px, calc(100vw - 32px)); background: var(--superficie); color: var(--texto); border: 1px solid var(--borda-forte); border-radius: var(--raio-c); box-shadow: 0 18px 40px -16px rgba(0,0,0,.35); padding: 16px; display: grid; gap: 12px; text-align: left; }
.painel-a11y[hidden] { display: none; }
.painel-a11y-tit { font-weight: 800; margin: 0; }
.painel-a11y-linha { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: var(--t-apoio); font-weight: 600; min-height: 44px; }
.painel-a11y-linha input[type=checkbox] { width: 22px; height: 22px; accent-color: var(--marca-ui, var(--marca)); }
.painel-a11y .mini { margin: 0; color: var(--texto-2); line-height: 1.45; }
.seg { display: inline-flex; border: 1px solid var(--borda-forte); border-radius: var(--raio-p); overflow: hidden; }
.seg button { min-width: 44px; min-height: 40px; border: 0; background: transparent; color: var(--texto); font: inherit; font-weight: 700; cursor: pointer; }
.seg button + button { border-left: 1px solid var(--borda-forte); }
.seg button[aria-pressed=true] { background: var(--marca); color: #FFFFFF; }
.topo-int { position: relative; }

/* Alto contraste: preto, branco e amarelo; bordas e sublinhados explícitos. */
:root[data-contraste] {
  --fundo: #000000; --superficie: #000000; --superficie-2: #0A0A0A; --texto: #FFFFFF; --texto-2: #FFFFFF;
  --borda: #FFFFFF; --borda-forte: #FFFFFF; --link: #FFE14D; --marca: #FFE14D; --marca-ui: #FFE14D; --palco: #000000;
  --palco-texto: #FFFFFF; --palco-texto-2: #FFFFFF; --ok: #7CFFB2; --viol: #FFB36B; --viol-forte: #FFB36B; --nv: #FFFFFF;
  --ok-tinta: #000000; --viol-tinta: #000000; --nv-tinta: #000000; --info-tinta: #000000; --pauta: #000000; --pauta-texto: #FFE14D; --pauta-borda: #FFE14D;
  --elevacao: none;
}
:root[data-contraste] body { background: #000; color: #fff; }
:root[data-contraste] a { color: #FFE14D !important; text-decoration: underline !important; }
:root[data-contraste] .btn, :root[data-contraste] button.btn { background: #000 !important; color: #FFE14D !important; border: 2px solid #FFE14D !important; }
:root[data-contraste] .btn.primario { background: #FFE14D !important; color: #000 !important; }
:root[data-contraste] .topo, :root[data-contraste] .palco, :root[data-contraste] .pagina-cab { background: #000 !important; }
:root[data-contraste] *:focus-visible { outline: 3px solid #FFE14D !important; outline-offset: 2px; }
:root[data-contraste] .estado, :root[data-contraste] .pl-rever { background: #000 !important; color: #fff !important; border: 1px solid #fff !important; }
:root[data-contraste] .seg button[aria-pressed=true] { background: #FFE14D; color: #000; }
:root[data-contraste] img.marca-logo { filter: grayscale(1) contrast(1.4); }
.marca-nome { white-space: nowrap; }
@media (min-width: 761px) and (max-width: 1400px) {
  .nav { gap: 2px; }
  .nav a { padding-left: 10px; padding-right: 10px; }
}

/* ---------------------------------------------------------------- Processos e trilha das sete peças (ADR-0018) */
.procs { display: grid; gap: 14px; }
.proc-card { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio-c); padding: 18px 20px; display: grid; gap: 12px; }
.proc-cab { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; flex-wrap: wrap; }
.proc-tit { font-size: var(--t-destaque); font-weight: 800; margin: 0 0 2px; }
.proc-verif { margin: 0; font-size: var(--t-apoio); color: var(--texto-2); }
.proc-verif b { color: var(--texto); }
.proc-card .acoes { margin: 0; }
.trilha { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 0; counter-reset: passo; }
.trilha-passo { position: relative; display: grid; justify-items: center; gap: 6px; text-align: center; font-size: var(--t-legenda); font-weight: 600; color: var(--texto-2); }
.trilha-passo::before { content: ""; position: absolute; top: 13px; left: -50%; width: 100%; height: 2px; background: var(--borda); z-index: 0; }
.trilha-passo:first-child::before { display: none; }
.trilha-passo.ok::before, .trilha-passo.andamento::before { background: var(--ok); }
.trilha-marca { position: relative; z-index: 1; width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; background: var(--superficie); border: 2px solid var(--borda-forte); box-sizing: border-box; }
.trilha-passo.ok .trilha-marca { background: var(--ok); border-color: var(--ok); color: #FFFFFF; }
.trilha-passo.ok .trilha-marca svg { width: 14px; height: 14px; }
.trilha-passo.andamento .trilha-marca { border-color: var(--marca-ui, var(--marca)); background: color-mix(in srgb, var(--marca) 14%, var(--superficie)); }
.trilha-passo.ok, .trilha-passo.andamento { color: var(--texto); }
@media (max-width: 560px) { .trilha-rot { font-size: 11px; } .trilha-marca { width: 24px; height: 24px; } .trilha-passo::before { top: 11px; } }
.comparacao-versoes { margin-top: 10px; padding: 12px 14px; border-radius: var(--raio); background: var(--superficie-2); border: 1px solid var(--borda); display: grid; gap: 8px; }
.cmp-tit { margin: 0; font-weight: 700; font-size: var(--t-apoio); }
.cmp-linhas { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.cmp-grupo summary { cursor: pointer; font-size: var(--t-apoio); min-height: 32px; display: inline-flex; align-items: center; gap: 4px; }
.cmp-grupo.ok summary b { color: var(--ok); }
.cmp-grupo.nova summary b { color: var(--viol); }
.cmp-grupo ul { margin: 6px 0 0; padding-left: 18px; font-size: var(--t-apoio); color: var(--texto-2); }
.cmp-grupo[open] { flex-basis: 100%; }

/* ------------------------------------------------------------------ Primeiros passos, exemplo e ajuda (ADR-0018) */
.exemplo-link { margin-top: 10px; font-size: var(--t-apoio); color: var(--texto-2); text-align: center; }
.primeiros { margin-top: 18px; background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio-c); padding: 18px 20px; display: grid; gap: 12px; }
.primeiros-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.primeiros .funcoes-titulo { font-size: var(--t-subtitulo); }
.primeiros-cab .mini { font-weight: 600; margin-left: 6px; }
.primeiros-lista { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.primeiros-lista li { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie-2); }
.primeiros-lista li > div { display: grid; gap: 4px; }
.primeiros-lista li.feito { background: var(--superficie); }
.primeiros-lista li.feito b { text-decoration: line-through; text-decoration-color: var(--texto-2); }
.primeiros-marca { flex: 0 0 22px; height: 22px; border-radius: 50%; border: 2px solid var(--borda-forte); display: inline-grid; place-items: center; color: #fff; }
.primeiros-marca svg { width: 14px; height: 14px; }
.feito .primeiros-marca { background: var(--ok); border-color: var(--ok); }
@media (max-width: 1000px) { .primeiros-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .primeiros-lista { grid-template-columns: 1fr; } .primeiros { padding: 14px; } }

.painel-ajuda { position: fixed; top: 0; right: 0; bottom: 0; z-index: 70; width: min(400px, 100vw); background: var(--superficie); color: var(--texto); border-left: 1px solid var(--borda-forte); box-shadow: -18px 0 40px -20px rgba(0,0,0,.35); padding: 20px; overflow-y: auto; display: grid; align-content: start; gap: 18px; text-align: left; }
.painel-ajuda h2 { font-size: var(--t-subtitulo); font-weight: 800; }
.painel-ajuda h3 { font-size: var(--t-apoio); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--texto-2); margin-bottom: 8px; }
.ajuda-cab { display: flex; justify-content: space-between; align-items: center; }
.ajuda-dicas { margin: 0; padding-left: 20px; display: grid; gap: 8px; font-size: var(--t-apoio); line-height: 1.5; }
.ajuda-faq { border-top: 1px solid var(--borda); padding: 10px 0; font-size: var(--t-apoio); }
.ajuda-faq summary { cursor: pointer; font-weight: 600; min-height: 32px; display: flex; align-items: center; }
.ajuda-faq p { margin-top: 6px; color: var(--texto-2); line-height: 1.5; }
.ajuda-acoes { display: grid; gap: 10px; }
.ajuda-acoes .btn { justify-content: center; }
@media print { .primeiros, .painel-ajuda, .exemplo-link { display: none !important; } }

/* Faixa de preços por item (ADR-0018) */
.pl-faixa { margin: 6px 0 4px; padding: 30px 10px 0; }
.pl-faixa-trilho { position: relative; height: 22px; border-radius: var(--raio-p); background: var(--superficie-2); border: 1px solid var(--borda); }
.pl-faixa-banda { position: absolute; top: 0; bottom: 0; background: var(--info-tinta); border-left: 2px solid var(--borda-forte); border-right: 2px solid var(--borda-forte); }
.pl-faixa-ponto { position: absolute; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: var(--marca); opacity: .55; }
.pl-faixa-mediana, .pl-faixa-doc { position: absolute; top: -6px; bottom: -6px; width: 0; border-left: 3px solid var(--ok); }
.pl-faixa-doc { border-left-color: var(--viol); border-left-style: dashed; top: -6px; bottom: -26px; }
.pl-faixa-mediana > span, .pl-faixa-doc > span { position: absolute; white-space: nowrap; font-size: var(--t-legenda); font-weight: 700; transform: translateX(-50%); padding: 0 4px; background: var(--superficie); border-radius: 4px; }
.pl-faixa-mediana > span { bottom: calc(100% + 2px); color: var(--ok); }
.pl-faixa-doc > span { top: calc(100% + 2px); color: var(--viol-forte); }
.pl-faixa-eixo { display: flex; justify-content: space-between; font-size: var(--t-legenda); color: var(--texto-2); margin-top: 8px; font-family: var(--mono); }
.pl-faixa.com-doc .pl-faixa-eixo { margin-top: 28px; }
.legal-texto.cartao { max-width: none; border-radius: var(--raio-c); }
.legal-texto.cartao > * { max-width: 76ch; }
.legal-texto.cartao > h2:first-child { margin-top: 0; }
.ajuda-links { display: flex; flex-wrap: wrap; gap: 4px 16px; }

/* Ação persistente para resolver pendências (o pop-up pode ser recusado sem perder o caminho) */
.veredito-acao { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-top: 14px; padding: 14px 16px; border-radius: var(--raio); background: var(--superficie-2); border: 1px solid var(--borda); color: var(--texto); }
.veredito-acao p { margin: 0; flex: 1 1 320px; line-height: 1.5; }
.veredito-acao p .mini { display: block; margin-top: 2px; }
.veredito-acao .acoes { display: flex; flex-wrap: wrap; gap: 8px; }
.veredito-acao .btn .ui-ic { width: 18px; height: 18px; }
.btn.destaque { outline: 3px solid var(--foco); outline-offset: 3px; transition: outline-color .3s; }
@media (max-width: 560px) { .veredito-acao .acoes, .veredito-acao .acoes .btn { width: 100%; } .veredito-acao .acoes .btn { justify-content: center; } }
@media print { .veredito-acao { display: none !important; } }
.agora { scroll-margin-top: 16px; }

/* Item de preço: abrir com destaque e resolver o que ficou sem preço */
.pl-cab, .pl-sum, .pl-rodape { grid-template-columns: minmax(0, 1fr) 120px 140px 130px 118px; }
.pl-abrir { justify-self: end; display: inline-flex; align-items: center; gap: 4px; padding: 6px 10px 6px 12px; min-height: 36px; border-radius: var(--raio-p); border: 1px solid var(--borda-forte); background: var(--superficie); color: var(--link); font-size: var(--t-apoio); font-weight: 700; white-space: nowrap; }
.pl-abrir svg { transition: transform .15s; flex: 0 0 auto; }
.pl-sum:hover .pl-abrir { border-color: var(--link); }
.pl-linha details[open] .pl-abrir svg { transform: rotate(90deg); }
.pl-abrir.resolver { background: var(--marca); border-color: var(--marca); color: #fff; }
.pl-sum:hover .pl-abrir.resolver { filter: brightness(1.08); }
:root[data-theme="dark"] .pl-abrir { color: #9DB9F7; }
:root[data-theme="dark"] .pl-abrir.resolver { background: #9DB9F7; border-color: #9DB9F7; color: #14161A; }
.pl-linha.precisa { box-shadow: inset 4px 0 0 var(--viol); }
.pl-fonte-inf { display: block; font-weight: 600; }
.pl-pendentes { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 12px 14px; border-radius: var(--raio); background: var(--viol-tinta); border: 1px solid var(--viol-borda); color: var(--texto); }
.pl-pendentes p { margin: 0; flex: 1 1 320px; line-height: 1.5; font-size: var(--t-apoio); }
.pl-resolver { display: grid; gap: 12px; }
.pl-resolver-tit { margin: 0; line-height: 1.5; }
.pl-opcoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 12px; }
.pl-opcao { display: flex; flex-direction: column; gap: 8px; padding: 14px; border: 1px solid var(--borda); border-radius: var(--raio); background: var(--superficie); }
.pl-opcao h4 { display: flex; align-items: center; gap: 8px; font-size: var(--t-corpo); font-weight: 800; margin: 0; }
.pl-opcao-n { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--info-tinta); color: var(--link); font-size: var(--t-legenda); font-weight: 800; }
.pl-opcao .mini { margin: 0; }
.pl-opcao .btn { margin-top: auto; justify-content: center; }
.pl-opcao .campo small { font-weight: 400; color: var(--texto-2); }
.pl-encontrados > summary { cursor: pointer; font-size: var(--t-apoio); font-weight: 600; color: var(--link); min-height: 36px; display: flex; align-items: center; }
.pl-encontrados[open] > summary { margin-bottom: 8px; }
.pl-informado { padding: 12px 14px; border-radius: var(--raio); background: var(--ok-tinta); border: 1px solid var(--ok-borda); display: grid; gap: 8px; justify-items: start; }
.pl-informado p { margin: 0; line-height: 1.5; }
@media (max-width: 760px) {
  .pl-sum, .pl-rodape { grid-template-columns: minmax(0, 1fr) auto; }
  .pl-sum { grid-template-areas: "item abrir" "ref dif" "doc doc"; }
  .pl-abrir { grid-area: abrir; align-self: start; }
  .pl-abrir-txt { display: inline; }
}

/* =================================================================== v3 (ADR-0019) */
/* Navegação por tarefa: Verificar · Processos · Preços · Mais, e a ação de criar à direita. */
.nav .nav-cta { order: 10; margin-left: auto; }
.nav-mais { display: inline-flex; background: none; cursor: pointer; font: inherit; font-weight: 600; font-size: var(--t-apoio); }
.nav-mais .l-curto { display: none; }
.nav-mais:hover, .nav-mais[aria-expanded="true"] { color: #FFFFFF; background: rgba(255,255,255,.12); }
.nav-mais.ativo { color: var(--marca); background: #FFFFFF; }
.nav-mais .nav-ic { display: block; width: 18px; height: 18px; }
.topo-int { position: relative; }
.menu-mais:not([hidden]) {
  display: grid; position: absolute; top: 58px; z-index: 40; min-width: 260px; padding: var(--e2);
  left: var(--menu-x, auto); background: var(--superficie); color: var(--texto);
  border: 1px solid var(--borda); border-radius: var(--raio-c); box-shadow: var(--elevacao);
  animation: menu-entra var(--dur-rapida) var(--curva-entrada);
}
.menu-mais a { display: flex; align-items: center; gap: var(--e3); padding: var(--e3) 14px; min-height: 44px; border-radius: var(--raio); color: var(--texto); text-decoration: none; font-weight: 600; font-size: var(--t-apoio); }
.menu-mais a .nav-ic { width: 20px; height: 20px; color: var(--texto-2); }
.menu-mais a:hover { background: var(--superficie-2); }
.menu-mais a.ativo { color: var(--marca-ui); background: var(--info-tinta); }
@keyframes menu-entra { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .menu-mais:not([hidden]) { animation: none; } }
@media (max-width: 1180px) and (min-width: 761px) { .nav a .l-longo { font-size: var(--t-apoio); } .nav .l-longo { white-space: nowrap; } }
@media (max-width: 760px) {
  .nav .nav-cta { order: 0; margin: 0; }
  .nav-mais .l-longo { display: none; }
  .nav-mais .l-curto { display: block; }
  .nav-mais.ativo { background: none; color: var(--marca); }
  .menu-mais:not([hidden]) { position: fixed; top: auto; left: auto; right: 10px; bottom: calc(76px + env(safe-area-inset-bottom)); }
}

/* Seções secundárias do resultado: recolhidas, com o rótulo do que há dentro. */
.recolhivel > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: var(--e3); flex-wrap: wrap; }
.recolhivel > summary::-webkit-details-marker { display: none; }
.recolhivel > summary h2 { display: flex; align-items: center; gap: var(--e2); }
.recolhivel-dica { display: inline-flex; align-items: center; gap: 6px; font-size: var(--t-apoio); font-weight: 700; color: var(--link); padding: 6px 12px; border: 1px solid var(--borda-forte); border-radius: var(--raio-p); white-space: nowrap; }
.recolhivel-dica::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); transition: transform var(--dur-rapida) var(--curva-entrada); }
.recolhivel[open] > summary .recolhivel-dica::after { transform: rotate(-135deg) translate(-2px, -2px); }
.recolhivel > summary:hover .recolhivel-dica { border-color: var(--link); }
.recolhivel:not([open]) > summary { border-bottom: none; }
.filtros-linha { border-top: 1px solid var(--borda); justify-content: flex-end; }
@media print { .recolhivel-dica { display: none; } }

/* Marca-texto: a próxima ação. */
.agora { border: 2px solid var(--realce-borda); }
.agora-rotulo { color: var(--realce-texto); background: var(--realce); padding: 2px 10px; border-radius: 4px; letter-spacing: .02em; }
.trecho mark, mark.realce { background: var(--realce-tinta); color: inherit; box-shadow: inset 0 -0.45em 0 var(--realce); padding: 0 2px; border-radius: 2px; }

/* Início: "O que mais a Callil faz" vira uma lista compacta (não uma grade de cartões iguais). */
.funcoes-grade { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 var(--e5); background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio-c); padding: var(--e2) var(--e5); }
.funcao { grid-template-columns: 44px minmax(0,1fr) auto; grid-template-rows: auto auto; column-gap: var(--e4); row-gap: 2px; align-items: center; min-height: 0; padding: var(--e4) 0; border: none; border-bottom: 1px solid var(--borda); border-radius: 0; background: none; }
.funcao:nth-last-child(-n+2) { border-bottom: none; }
.funcao:hover { background: none; }
.funcao:hover .funcao-titulo { color: var(--link); }
.funcao-ic { width: 44px; height: 44px; margin: 0; grid-row: 1 / span 2; }
.funcao-ic .ui-ic { width: 22px; height: 22px; }
.funcao-titulo { font-size: var(--t-corpo); grid-column: 2; }
.funcao-texto { grid-column: 2; }
.funcao-ir { grid-column: 3; grid-row: 1 / span 2; font-size: 0; gap: 0; }
.funcao-ir .ui-ic { width: 20px; height: 20px; }
@media (max-width: 1080px) { .funcoes-grade { grid-template-columns: 1fr; } .funcao:nth-last-child(2) { border-bottom: 1px solid var(--borda); } }
@media (max-width: 760px) { .funcoes-grade { padding: 0 var(--e4); } .funcao { grid-template-columns: 40px minmax(0,1fr); } .funcao-ic { width: 40px; height: 40px; } .funcao-ir { display: none; } }

/* Botões: estados completos e resposta em até 150 ms. */
.btn { transition: background-color var(--dur-rapida) var(--curva-entrada), border-color var(--dur-rapida) var(--curva-entrada), color var(--dur-rapida) var(--curva-entrada), transform var(--dur-rapida) var(--curva-entrada); }
.btn:active:not(:disabled) { transform: translateY(1px); }
.btn.primario:active:not(:disabled) { filter: brightness(.82); }
.btn[aria-busy="true"] { cursor: progress; opacity: .8; }
@media (prefers-reduced-motion: reduce) { .btn { transition: none; } .btn:active:not(:disabled) { transform: none; } }
a { text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
.funcao { align-content: center; }
.funcao-titulo { align-self: end; }
.funcao-texto { align-self: start; }
.recolhivel > summary h2 { min-width: 0; }
@media (max-width: 560px) { .recolhivel-dica { white-space: normal; } .recolhivel > summary { align-items: flex-start; } }
:root[data-contraste] { --realce: #FFE14D; --realce-tinta: #000000; --realce-borda: #FFE14D; --realce-texto: #000000; }

/* =================================================================== v5 (ADR-0019, direção C com o DNA Alessandro Callil)
   Estrutura da direção C (palco que abraça a página, manchete em linguagem de gente,
   anel de progresso, próximo passo em destaque) vestida com a identidade da marca
   Alessandro Callil, "direção e blindagem": palco titânio, vermelho Callil #BF1822 como
   cor de ação, cinza #5C5C5C e preto #232323, tipografia Poppins, o esquadro como selo
   e o chevron como marcador de seção.
   White label: a cor de ação é a da identidade (--marca, padrão vermelho Callil); o palco
   titânio é fixo e neutro, então funciona com a cor de qualquer órgão.
   O vermelho nunca indica estado. "Não atendida" passou para âmbar: é um apontamento
   técnico pedindo atenção, não um erro. */
:root {
  --fonte: "Poppins", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --marca-fonte: "Poppins", "Arial Black", sans-serif;
  --marca: #BF1822; --marca-ui-claro: #BF1822; --marca-ui-escuro: #E94F5C; --marca-ui: var(--marca-ui-claro);
  --link: var(--marca-ui); --foco: var(--marca-ui);
  --titanio: #2C292A; --titanio-2: #3A3637; --cinza-callil: #5C5C5C; --preto-callil: #232323;
  --palco: var(--titanio); --palco-texto: #FFFFFF; --palco-texto-2: #D4CFCF;
  --texto: #232323; --texto-2: #454545; --texto-3: #5C5C5C;
  --fundo: #E6E6E4; --superficie: #FFFFFF; --superficie-2: #F4F4F2;
  --borda: #D9D9D6; --borda-forte: #7A7A78;
  --ok: #12764A; --ok-tinta: #E6F2EA; --ok-borda: #BFDCCB;
  --viol: #8A5A00; --viol-tinta: #FFF4DC; --viol-borda: #E9D19A; --viol-forte: #6B4500; --viol-forte-borda: #D9BC7A;
  --nv: #5C5C5C;
  --info-tinta: #EEEEEC; --info-borda: #D0D0CC;
  --pauta: #FFF4DC; --pauta-borda: #E9D19A; --pauta-marca: #8A5A00;
  --secundario: #EDEDEB; --secundario-hover: #E0E0DD; --secundario-texto: #232323;
  --realce: var(--marca); --realce-texto: #FFFFFF; --realce-borda: var(--marca);
  --realce-tinta: color-mix(in srgb, var(--marca) 12%, #FFFFFF);
  --raio: 12px; --raio-c: 18px; --raio-m: 16px;
  --elevacao: 0 1px 2px rgba(35,35,35,.06), 0 20px 40px -24px rgba(35,35,35,.4);
}
:root[data-theme="dark"] {
  --marca-ui: var(--marca-ui-escuro); --link: var(--marca-ui-escuro); --foco: var(--marca-ui-escuro);
  --palco: #262324; --palco-texto-2: #CFCACA;
  --texto: #EDECEA; --texto-2: #C4C0BF; --texto-3: #A9A5A4;
  --fundo: #141313; --superficie: #201E1F; --superficie-2: #1A1819;
  --borda: #363233; --borda-forte: #8A8584;
  --ok: #5FC79A; --ok-tinta: #16302A; --ok-borda: #2A5A44;
  --viol: #E6AE4C; --viol-tinta: #33270F; --viol-borda: #5E4A1F; --viol-forte: #F0C574; --viol-forte-borda: #6B5526;
  --nv: #BDB9B8;
  --info-tinta: #2A2728; --info-borda: #3E3A3B;
  --pauta: #33270F; --pauta-borda: #5E4A1F; --pauta-texto: #F0C574; --pauta-marca: #F0C574;
  --secundario: #2E2B2C; --secundario-hover: #3A3637; --secundario-texto: #EDECEA;
  --realce-tinta: color-mix(in srgb, var(--marca) 26%, #201E1F);
  --elevacao: 0 1px 2px rgba(0,0,0,.4), 0 20px 40px -24px rgba(0,0,0,.75);
}
:root[data-theme="dark"] .zona:hover, :root[data-theme="dark"] .tile:hover, :root[data-theme="dark"] .tabela tbody tr.clicavel:hover { background: #2A2728; }
body { background: var(--fundo); color: var(--texto); font-family: var(--fonte); }
h1, h2, h3, h4, .h1-marca { font-family: var(--fonte); }

/* Botões: pílula (como a etiqueta do site no manual). Primário na cor de ação, secundário neutro. */
.btn { border-radius: var(--raio-p); padding: 0 18px; font-weight: 600; background: var(--secundario); color: var(--secundario-texto); border: 1px solid transparent; }
.btn:hover { background: var(--secundario-hover); }
.btn.pequeno { padding: 0 14px; }
.btn.icone { padding: 0; }
.btn.primario { background: var(--marca); border-color: var(--marca); color: #FFFFFF; font-weight: 700; }
.btn.primario:hover { background: var(--marca); filter: brightness(.86); }
:root[data-theme="dark"] .btn.primario:hover { filter: brightness(1.12); }
input, select, textarea { border-radius: var(--raio); }

/* Cabeçalho titânio com a assinatura: CALLIL, "licitações" e o esquadro vermelho. */
.topo { background: var(--palco); }
.marca { gap: 10px; }
.marca-callil .marca-selo { order: 3; width: 22px; height: 22px; border-radius: 0; color: transparent; font-size: 0; align-self: center; margin-left: 2px;
  background: var(--marca); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M0 0H10V10H7V3H0ZM0 6V10H3.9Z'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M0 0H10V10H7V3H0ZM0 6V10H3.9Z'/%3E%3C/svg%3E") center / contain no-repeat; }
.marca:not(.marca-callil) .marca-selo { background: #FFFFFF; color: var(--marca); width: 34px; height: 34px; border-radius: 10px; font-size: 18px; font-weight: 800; }
.marca-callil .marca-textos { order: 1; }
.marca-callil .marca-nome { display: inline-flex; align-items: center; gap: 10px; font-size: 24px; font-weight: 800; letter-spacing: -0.01em; text-transform: uppercase; line-height: 1; }
.marca-callil .marca-produto { font-size: 13px; font-weight: 500; letter-spacing: .14em; text-transform: lowercase; opacity: 1; color: var(--palco-texto-2); }
@media (min-width: 761px) {
  .topo-int { height: 76px; }
  .nav a, .nav-mais { font-size: 15px; font-weight: 600; padding: 9px 16px; color: #FFFFFF; }
  .nav a:hover, .nav-mais:hover { background: rgba(255,255,255,.1); }
  .nav a.ativo, .nav-mais.ativo { color: var(--preto-callil) !important; background: #FFFFFF; }
  .nav-cta { background: var(--marca) !important; color: #FFFFFF !important; border: none !important; font-weight: 700 !important; padding: 11px 20px !important; }
  .nav-cta:hover { background: var(--marca) !important; filter: brightness(.88); color: #FFFFFF !important; }
  .nav-cta.ativo { background: #FFFFFF !important; color: var(--preto-callil) !important; box-shadow: inset 0 0 0 2px var(--marca); }
  .menu-mais:not([hidden]) { top: 66px; }
}
@media (max-width: 760px) {
  .nav-cta .nav-ic, .nav-cta.ativo .nav-ic { background: var(--marca) !important; color: #FFFFFF; }
  .nav a.ativo, .nav-mais.ativo { color: var(--texto); }
  .nav a.ativo .nav-ic, .nav-mais.ativo .nav-ic { background: var(--secundario-hover); }
  .nav-mais .nav-ic { width: 44px; height: 28px; }
  .marca-callil .marca-nome { font-size: 20px; gap: 8px; }
  .marca-callil .marca-produto { font-size: 11px; letter-spacing: .1em; }
}
@media (max-width: 360px) { .marca-produto { display: none; } }

/* Palco: títulos em Poppins pesada. */
.pagina-cab h1, .cab-resultado h1 { font-size: clamp(28px, 3.4vw, 44px); font-weight: 800; letter-spacing: -0.025em; line-height: 1.1; }
.pagina-cab, .cab-resultado { padding-bottom: 104px; margin-bottom: -84px; }
.pagina-cab .btn, .cab-resultado .btn { border-radius: var(--raio-p); }
.pagina-cab .btn.primario, .cab-resultado .btn.primario { background: var(--marca); border-color: var(--marca); color: #FFFFFF; }
.pagina-cab .btn.primario:hover, .cab-resultado .btn.primario:hover { background: var(--marca); filter: brightness(.88); }
:root[data-theme="dark"] .pagina-cab .btn.primario, :root[data-theme="dark"] .cab-resultado .btn.primario { color: #FFFFFF; }

/* Resultado: manchete à esquerda, anel de progresso à direita, ações abaixo. */
.cab-resultado { display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-areas: "titulo anel" "acoes anel"; column-gap: var(--e6); row-gap: var(--e4); align-items: end; }
.cab-resultado .cab-titulo { grid-area: titulo; }
.cab-resultado .acoes { grid-area: acoes; justify-self: start; }
.cab-resultado h1 { max-width: 24ch; }
.cab-resultado .sobre { font-weight: 500; }
.cab-proc { color: #FFFFFF; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; font-size: 13px; }
@property --p { syntax: "<number>"; inherits: true; initial-value: 0; }
.anel { grid-area: anel; display: flex; flex-direction: column; align-items: center; gap: 6px; --p: var(--alvo); animation: anel-enche 900ms var(--curva-entrada) both; }
.anel-disco { width: 132px; height: 132px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--marca) calc(var(--p) * 1%), rgba(255,255,255,.16) 0); }
.anel-num { width: 106px; height: 106px; border-radius: 50%; background: var(--palco); display: grid; place-items: center; color: #FFFFFF; font-weight: 700; font-size: 30px; letter-spacing: -0.02em; font-feature-settings: "tnum" 1; }
.anel-rot { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--palco-texto-2); }
@keyframes anel-enche { from { --p: 0; } to { --p: var(--alvo); } }
@media (prefers-reduced-motion: reduce) { .anel { animation: none; } }
@media (max-width: 760px) {
  .cab-resultado { grid-template-columns: minmax(0,1fr) auto; column-gap: var(--e4); padding-bottom: 80px; margin-bottom: -60px; }
  .cab-resultado .acoes { grid-column: 1 / -1; justify-self: stretch; }
  .anel { align-self: start; margin-top: 36px; }
  .anel-disco { width: 84px; height: 84px; }
  .anel-num { width: 68px; height: 68px; font-size: 19px; }
  .anel-rot { font-size: 10px; letter-spacing: .1em; }
}
@media print { .anel { display: none; } .cab-proc { color: inherit; } }

/* Superfícies: cartões brancos, cantos firmes (a marca é geométrica). */
.cartao, .faixa, .veredito, .zona, .conclusao, .modal, .precos-total { border-radius: var(--raio-c); }
.tile, .pend, .doc, .opcao, .passos li, .pecas-nav a, .ajustar, .secao, .tabela.cartoes tr { border-radius: var(--raio-m); }
.cartao, .faixa { border-color: var(--borda); }
.veredito { border: none; border-top: 6px solid var(--borda-forte); box-shadow: var(--elevacao); }
.veredito-frase { font-size: var(--t-subtitulo); font-weight: 600; max-width: 52ch; color: var(--texto-2); letter-spacing: -0.01em; }

/* Marcador de seção: o chevron do manual. */
.faixa-cab > h2:not(:has(svg))::before, .secao-marcada::before {
  content: ""; display: inline-block; width: .8em; height: .8em; margin-right: .5em; vertical-align: -0.04em; background: var(--marca-ui);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M0 6 2 3.9V8.1Z'/%3E%3Cpath d='M4.2 0 10.2 6 4.2 12 2.8 10.6 7.4 6 2.8 1.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M0 6 2 3.9V8.1Z'/%3E%3Cpath d='M4.2 0 10.2 6 4.2 12 2.8 10.6 7.4 6 2.8 1.4Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* "Resolver tudo de uma vez?": cartão titânio dentro do veredito. */
.veredito-acao { background: var(--titanio); border: 1px solid var(--titanio-2); border-radius: var(--raio-m); color: #FFFFFF; padding: 18px 20px; }
.veredito-acao .va-tit { display: block; font-size: 17px; font-weight: 700; letter-spacing: -0.01em; }
.veredito-acao .mini { color: #D4CFCF; }
.veredito-acao .btn:not(.primario) { background: transparent; color: #FFFFFF; border: 1.5px solid rgba(255,255,255,.55); }
.veredito-acao .btn:not(.primario):hover { background: rgba(255,255,255,.1); }
.veredito-acao :focus-visible { outline-color: #FFFFFF; }
:root[data-theme="dark"] .veredito-acao { background: #2E2A2B; border-color: #4A4546; }

/* Próximo passo: rótulo na cor de ação e contagem "1 de N". */
.agora { border: 2px solid var(--marca-ui); border-radius: var(--raio-c); padding: 18px 20px 16px; box-shadow: var(--elevacao); }
.agora-cab { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.agora-rotulo { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 5px 12px; border-radius: var(--raio-p); color: #FFFFFF; background: var(--marca); }
.agora-conta { font-size: var(--t-apoio); font-weight: 600; color: var(--texto-3); }
.agora .pend-titulo { font-size: var(--t-subtitulo); font-weight: 700; letter-spacing: -0.015em; }
.agora-nota { margin-top: 12px; color: var(--texto-3); }

/* Evidência lida da lei: grifo discreto na cor de ação. */
.trecho { border-left-color: var(--marca-ui); }
.trecho mark, mark.realce { background: var(--realce-tinta); color: inherit; box-shadow: inset 0 -2px 0 var(--marca-ui); padding: 0 2px; border-radius: 2px; }

.recolhivel-dica { border: none; background: var(--secundario); color: var(--secundario-texto); }
.recolhivel > summary:hover .recolhivel-dica { background: var(--secundario-hover); }

.aviso.info { border-left-color: var(--cinza-callil); }
:root[data-theme="dark"] .aviso.info { border-left-color: var(--texto-3); }

/* Rodapé: a assinatura espaçada do manual. */
.rodape-assinatura { width: 100%; margin: 0 0 6px; padding-bottom: 10px; border-bottom: 2px solid var(--borda-forte); font-weight: 700; font-size: 13px; letter-spacing: .35em; text-transform: uppercase; color: var(--texto); }
@media print { .rodape-assinatura { display: none; } }

/* Alto contraste: preto, branco e amarelo, sem tintas; vence o tema escuro. */
:root[data-contraste], :root[data-contraste][data-theme="dark"] {
  --fundo: #000000; --superficie: #000000; --superficie-2: #0A0A0A; --texto: #FFFFFF; --texto-2: #FFFFFF; --texto-3: #FFFFFF;
  --borda: #FFFFFF; --borda-forte: #FFFFFF; --link: #FFE14D; --marca: #FFE14D; --marca-ui: #FFE14D; --marca-ui-escuro: #FFE14D; --palco: #000000; --titanio: #000000; --titanio-2: #FFFFFF;
  --palco-texto: #FFFFFF; --palco-texto-2: #FFFFFF; --ok: #7CFFB2; --viol: #FFB36B; --viol-forte: #FFB36B; --nv: #FFFFFF;
  --ok-tinta: #000000; --viol-tinta: #000000; --nv-tinta: #000000; --info-tinta: #000000; --pauta: #000000; --pauta-texto: #FFE14D; --pauta-borda: #FFE14D;
  --secundario: #000000; --secundario-hover: #000000; --secundario-texto: #FFE14D; --foco: #FFE14D;
  --realce: #FFE14D; --realce-tinta: #000000; --realce-borda: #FFE14D; --realce-texto: #000000;
  --elevacao: none;
}
:root[data-contraste] .anel-num { background: #000; }
:root[data-contraste] .veredito-acao { background: #000; color: #fff; border: 2px solid #FFE14D; }
:root[data-contraste] .veredito-acao .mini { color: #fff; }
:root[data-contraste] .agora-rotulo { background: #FFE14D; color: #000; }
:root[data-contraste] .nav-cta { background: #FFE14D !important; color: #000 !important; }
:root[data-contraste] .btn.primario, :root[data-contraste] .pagina-cab .btn.primario, :root[data-contraste] .cab-resultado .btn.primario { color: #000 !important; }

/* Barra superior destacada do palco: uma camada própria, em titânio um tom acima,
   afastada das bordas e fixa no alto ao rolar. O palco continua por trás dela. */
:root { --barra: #3A3637; --barra-borda: rgba(255,255,255,.09); --altura-topo: 92px; }
:root[data-theme="dark"] { --barra: #353132; --barra-borda: rgba(255,255,255,.1); }
html { scroll-padding-top: calc(var(--altura-topo) + 8px); }
body { background: linear-gradient(var(--palco) 0 var(--altura-topo), var(--fundo) var(--altura-topo)) no-repeat, var(--fundo); }
.topo { position: sticky; top: 0; z-index: 30; background: transparent; padding: 12px 16px 0; }
.topo-int {
  max-width: calc(var(--largura) - 16px); margin: 0 auto; height: 68px; padding: 0 14px 0 22px;
  background: var(--barra); border: 1px solid var(--barra-borda); border-radius: 20px;
  box-shadow: 0 14px 34px -18px rgba(0,0,0,.6);
}
.agora { scroll-margin-top: calc(var(--altura-topo) + 12px); }
@media (min-width: 761px) { .menu-mais:not([hidden]) { top: 74px; } }
@media (max-width: 760px) {
  :root { --altura-topo: 72px; }
  .topo { padding: 8px 10px 0; }
  .topo-int { height: 60px; padding: 0 8px 0 16px; border-radius: 16px; }
}
:root[data-contraste] { --barra: #000000; --barra-borda: #FFFFFF; }
:root[data-contraste] body { background: #000; }
@media print { .topo { position: static; padding: 0; } .topo-int { box-shadow: none; border: none; } body { background: #fff; } }

/* Telas de 320 px: o cálculo das notas não pode empurrar a página para o lado. */
@media (max-width: 760px) {
  .decomp { grid-template-columns: minmax(0, 1fr); }
  .decomp > div { min-width: 0; }
  .decomp .tabela { table-layout: fixed; }
  .decomp .tabela td { overflow-wrap: anywhere; }
}
@media (max-width: 760px) { .decomp .estado { white-space: normal; max-width: 100%; height: auto; } }

/* Pesquisa de preços pelo local de execução (ADR-0021) */
.campo-check { display: flex; align-items: flex-start; gap: 10px; font-size: var(--t-apoio); line-height: 1.4; cursor: pointer; }
.campo-check input { width: 20px; height: 20px; margin-top: 1px; flex: none; accent-color: var(--marca); }
.pl-local { margin: 0 0 var(--e3); padding: 10px 14px; border-radius: var(--raio); background: var(--superficie-2); border: 1px solid var(--borda); }
.campo-alerta { display: block; margin-top: 6px; padding: 8px 10px; border-radius: var(--raio); background: var(--viol-tinta); color: var(--viol-forte); border: 1px solid var(--viol-borda); font-size: var(--t-apoio); font-weight: 600; line-height: 1.4; }
.campo[hidden] { display: none !important; }

/* Atestados de capacidade técnica (ADR-0021) */
.atestados .faixa { margin-bottom: 16px; }
.at-exig { display: grid; gap: 10px; margin: 10px 0 12px; }
.at-linha { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(0, 1fr) minmax(0, 1.2fr) minmax(0, 1.2fr) auto; gap: 10px; align-items: end; padding-bottom: 10px; border-bottom: 1px dashed var(--borda); }
.at-linha .campo { margin: 0; }
.at-lista { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; }
.at-lista li { display: flex; gap: 10px; flex-wrap: wrap; overflow-wrap: anywhere; }
.at-lista .nome { font-weight: 600; }
.at-res { padding: 12px 0; border-bottom: 1px solid var(--borda); overflow-wrap: anywhere; }
.at-res:last-of-type { border-bottom: 0; }
.at-res-cab { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 4px; }
.at-res .ctx-lista { padding-left: 0; padding-right: 0; }
@media (max-width: 720px) {
  .at-linha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .at-linha .at-desc { grid-column: 1 / -1; }
  .at-res .ctx-lista { grid-template-columns: minmax(0, 1fr); }
}

/* Entrar, criar senha e equipe (ADR-0021) */
.entrar-caixa { max-width: 520px; margin: 0 auto; }
.form-entrar { background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio); padding: 18px; display: grid; gap: 12px; }
.form-entrar .campo { margin: 0; }
.form-entrar .acoes { align-items: center; gap: 16px; }
.entrar-aberta { margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--borda); }
.entrar-aberta h2 { font-size: var(--t-corpo); margin-bottom: 6px; }
.conta-btn { text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.conta-iniciais { font-weight: 700; font-size: 13px; letter-spacing: .02em; }
.equipe .faixa { margin-bottom: 16px; }
.eu-linha { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.membros { list-style: none; margin: 0; padding: 0; }
.membro { padding: 12px 0; border-bottom: 1px solid var(--borda); overflow-wrap: anywhere; }
.membro:last-child { border-bottom: 0; }
.membro-cab { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; align-items: flex-start; }
.membro-selos { display: flex; gap: 6px; flex-wrap: wrap; }
.membro-editar summary { cursor: pointer; color: var(--marca-ui, var(--marca)); font-weight: 600; min-height: 44px; display: flex; align-items: center; }
.form-membro { display: grid; gap: 10px; }
.form-membro .campo { margin: 0; }
.grade-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.etapas-check { border: 1px solid var(--borda); border-radius: var(--raio); padding: 8px 12px 10px; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px 16px; }
.etapas-check legend { padding: 0 6px; font-weight: 600; font-size: var(--t-apoio); }
.passos-ativar { margin: 0 0 12px; padding-left: 20px; display: grid; gap: 4px; }
.cobertura { list-style: none; margin: 0 0 8px; padding: 0; }
.cobertura li { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--borda); align-items: center; overflow-wrap: anywhere; }
.cobertura li:last-child { border-bottom: 0; }
.cobertura select, .cobertura input { width: 100%; min-height: 40px; }
.colab-etapas { margin: 4px 0 14px; }
.colab-etapas summary { cursor: pointer; font-weight: 600; min-height: 40px; display: flex; align-items: center; gap: 6px; }
.colab-etapas .cobertura li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
@media (max-width: 720px) {
  .grade-2, .etapas-check, .cobertura li { grid-template-columns: minmax(0, 1fr); }
}

/* Tablet (761 a 1023 px): a barra flutuante cabe numa linha só (sem rolagem lateral). */
@media (min-width: 761px) and (max-width: 1023px) {
  .topo-int { gap: 8px; padding: 0 10px 0 16px; }
  .nav .nav-ic { display: none; }
  .nav a, .nav-mais { padding: 8px 8px; }
  .topo .btn.icone.tema { width: 34px; min-height: 34px; }
  .marca-callil .marca-produto { display: none; }
}
@media (min-width: 1381px) { .topo-int { gap: 8px; } .topo-int .nav a { padding-left: 10px; padding-right: 10px; } }
@media (max-width: 760px) { .topo-int { gap: 6px; } .topo .btn.icone.tema { width: 36px; min-height: 36px; } }
@media (max-width: 360px) { .marca-callil .marca-produto { display: none; } }
@media (min-width: 761px) and (max-width: 1380px) { .nav-mais .l-curto { display: inline; } }
