/* ===== Design System Farol — "Digital Beacon" (corretor/docs/design.md) ===== */
:root {
    --color-primary: #006c47;
    --color-primary-container: #08bd80;
    --color-surface: #f8f9ff;
    --color-surface-container-low: #eff3ff;
    --color-surface-container-lowest: #ffffff;
    --color-surface-container-high: #e1e8f9;
    --color-on-surface: #141c28;
    --color-secondary: #575f6c;
    --color-outline-variant: #bbcabf;
    --shadow-ambient: 0 12px 48px rgba(20, 28, 40, 0.06);
    --ok-bg: rgba(8, 189, 128, 0.16);
    --ok-text: #0b5e40;
    --erro-bg: rgba(196, 64, 80, 0.10);
    --erro-text: #8a3a46;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: 'Inter', sans-serif;
    color: var(--color-on-surface);
    background-color: var(--color-surface);
}
a { color: var(--color-primary); }

/* Tipografia */
.headline-md { font-size: 1.75rem; font-weight: 600; margin: 0 0 1.5rem; }
.title-sm { font-size: 1rem; font-weight: 600; margin: 0; }
.body-md { font-size: 0.875rem; line-height: 1.5; }
.label-md { font-size: 0.75rem; color: var(--color-secondary); }

/* Botões */
.button {
    display: inline-block;
    border-radius: 0.375rem;
    font-weight: 500;
    transition: all 0.2s;
    border: none;
    cursor: pointer;
    text-decoration: none;
    font-family: inherit;
}
.button-primary {
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-container));
    color: #ffffff;
}
.button-primary:hover { opacity: 0.9; }
.button-primary:disabled { opacity: 0.45; cursor: not-allowed; }
.button-secondary {
    background: transparent;
    color: var(--color-on-surface);
    border: 1px solid color-mix(in srgb, var(--color-outline-variant) 20%, transparent);
}
.button-secondary:hover { background-color: var(--color-surface-container-high); }
.button-md { padding: 0.75rem 1.5rem; font-size: 0.875rem; }

/* Inputs */
.form-group { margin-bottom: 1.25rem; }
.form-group label { display: block; margin-bottom: 0.5rem; font-weight: 500; font-size: 0.875rem; }
.input {
    width: 100%;
    padding: 0.75rem 1rem;
    background-color: var(--color-surface-container-lowest);
    border: 1px solid color-mix(in srgb, var(--color-outline-variant) 20%, transparent);
    border-radius: 0.375rem;
    font-size: 0.875rem;
    font-family: inherit;
    transition: all 0.2s;
}
.input:focus {
    outline: none;
    background-color: var(--color-surface);
    border-color: color-mix(in srgb, var(--color-primary) 30%, transparent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 10%, transparent);
}
textarea.input { min-height: 7rem; resize: vertical; }
.campos { border: 0; padding: 0; margin: 0; min-width: 0; }
.campos:disabled { opacity: 0.7; }
.check { display: flex; align-items: center; gap: 0.5rem; }
.check label { margin: 0; }
.radio-grupo .rotulo { display: block; margin-bottom: 0.5rem; font-weight: 500; font-size: 0.875rem; }
.radio-grupo label { display: inline-flex; align-items: center; gap: 0.4rem; margin-right: 1rem; font-size: 0.875rem; }

/* Banners */
.banner { border-radius: 0.5rem; padding: 1rem 1.25rem; margin-bottom: 1.25rem; font-size: 0.875rem; }
.banner-info { background-color: var(--color-surface-container-high); color: var(--color-on-surface); }
.banner-success { background-color: var(--ok-bg); color: var(--ok-text); }
.banner-warning { background-color: rgba(240, 180, 41, 0.12); color: #7a5a12; }
.banner-error { background-color: var(--erro-bg); color: var(--erro-text); }
.lista-faltando { margin: 0.5rem 0 0 1.25rem; padding: 0; }

/* Carregando: só o indicador apontado por hx-indicator aparece */
.spinner {
    display: inline-block;
    width: 0.85rem;
    height: 0.85rem;
    vertical-align: -0.12rem;
    margin-right: 0.45rem;
    border: 2px solid color-mix(in srgb, var(--color-primary) 25%, transparent);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: spin 0.7s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
.htmx-indicator { display: none; }
.htmx-indicator.htmx-request { display: inline-block; }

/* Layout */
.topo {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    padding: 0.75rem 1.5rem;
    background-color: var(--color-surface-container-low);
}
.topo-marca { display: flex; align-items: center; gap: 0.5rem; font-weight: 600; color: var(--color-on-surface); text-decoration: none; }
.topo-nav { display: flex; flex-wrap: wrap; gap: 1rem; }
.topo-nav a { color: var(--color-secondary); text-decoration: none; font-size: 0.875rem; }
.topo-nav a.ativo { color: var(--color-primary); font-weight: 600; }
.pagina { max-width: 56rem; margin: 0 auto; padding: 2rem 1.5rem 4rem; }
.card {
    background-color: var(--color-surface-container-lowest);
    border-radius: 0.5rem;
    padding: 2rem;
    box-shadow: var(--shadow-ambient);
    margin-bottom: 1.5rem;
}
.etapa { margin: 2rem 0 1rem; }
.grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: 0 1rem; }
.grade .largo { grid-column: 1 / -1; }
.acoes { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin-top: 1rem; }
.resultado { margin-top: 1.5rem; }
.secao-dupla { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }

/* Validar / registrar */
.lint-item { background-color: var(--color-surface-container-low); border-radius: 0.375rem; padding: 0.75rem 1rem; margin-bottom: 0.5rem; font-size: 0.875rem; }
.lint-item summary { cursor: pointer; font-weight: 500; }
pre { background-color: var(--color-surface-container-high); padding: 0.5rem; border-radius: 0.25rem; white-space: pre-wrap; font-size: 0.8125rem; }
.tabela { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.tabela th { text-align: left; font-weight: 600; padding: 0.5rem; background-color: var(--color-surface-container-high); }
.tabela td { padding: 0.5rem; vertical-align: top; }
.tabela tbody tr:nth-child(even) td { background-color: var(--color-surface-container-low); }

@media (max-width: 48rem) {
    .pagina { padding: 1.5rem 1rem 3rem; }
    .card { padding: 1.25rem; }
    .secao-dupla { grid-template-columns: 1fr; }
    .tabela { display: block; overflow-x: auto; }
}


/* Carregando (todas as telas): qualquer requisição HTMX, menos a consulta periódica do andamento */
.carregando {
    display: none;
    position: fixed;
    top: 0.75rem;
    left: 50%;
    transform: translateX(-50%);
    z-index: 50;
    align-items: center;
    padding: 0.5rem 1rem;
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 500;
    background-color: var(--color-on-surface);
    color: #fff;
    box-shadow: var(--shadow-ambient);
}
.carregando .spinner { border-color: rgba(255, 255, 255, 0.3); border-top-color: #fff; }
body:has(.htmx-request:not([hx-trigger^="every"])) .carregando { display: inline-flex; }

/* ===== Templater ===== */
:root {
    --fixo: #5b6b82;        --fixo-bg: #f3f5f9;
    --variavel: #006c47;    --variavel-bg: #e6f6ef;
    --sofia: #1f5fbf;       --sofia-bg: #e8f0fd;
    --condicional: #a45f00; --condicional-bg: #fff3df;
    --material: #00777a;    --material-bg: #e2f4f4;
    --citacao: #6b5b4b;     --citacao-bg: #f7f3ee;
    --labour: #7030a0;      --labour-bg: #f4ecfa;   /* o roxo do [LABOUR] no Google Docs */
    --proposta: #b4530f;    --proposta-bg: #fdeee3;
    --remover: #b3261e;     --remover-bg: #fdecea;
}
.pagina:has(.revisao-layout) { max-width: 100rem; }
.button-lg { padding: 0.9rem 2.25rem; font-size: 1rem; }
.button-sm { padding: 0.4rem 0.8rem; font-size: 0.8125rem; }
.button-contorno { background: transparent; color: var(--color-primary); border: 1px solid var(--color-primary); cursor: pointer; }
.button-contorno:hover { background-color: var(--variavel-bg); }
.button-excluir { background: transparent; color: var(--remover); border: 1px solid var(--remover); cursor: pointer; }
.button-excluir:hover { background-color: var(--remover-bg); }

/* Etiquetas e legenda */
.etiqueta {
    display: inline-block;
    padding: 0.1rem 0.55rem;
    border-radius: 999px;
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--c);
    background-color: var(--c-bg);
    border: 1px solid color-mix(in srgb, var(--c) 30%, transparent);
}
.etiqueta-fixo { --c: var(--fixo); --c-bg: var(--fixo-bg); }
.etiqueta-variavel { --c: var(--variavel); --c-bg: var(--variavel-bg); }
.etiqueta-sofia { --c: var(--sofia); --c-bg: var(--sofia-bg); }
.etiqueta-condicional { --c: var(--condicional); --c-bg: var(--condicional-bg); }
.etiqueta-material { --c: var(--material); --c-bg: var(--material-bg); }
.etiqueta-citacao { --c: var(--citacao); --c-bg: var(--citacao-bg); }
.etiqueta-labour { --c: var(--labour); --c-bg: var(--labour-bg); }
.etiqueta-proposta { --c: var(--proposta); --c-bg: var(--proposta-bg); }
.etiqueta-absorvido, .etiqueta-erro, .etiqueta-removido { --c: var(--remover); --c-bg: var(--remover-bg); }
.etiqueta-editado { --c: var(--sofia); --c-bg: var(--sofia-bg); }
.etiqueta-conferir { --c: var(--proposta); --c-bg: var(--proposta-bg); }
.legenda { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0.75rem 0 1.25rem; }

/* Teses à esquerda, a escolhida à direita */
.revisao { background-color: var(--color-surface-container-low); }
.revisao-layout { display: grid; grid-template-columns: 15rem minmax(0, 1fr) 18rem; gap: 1.25rem; align-items: start; }

/* Checklist do que trava o Finalizar (pedido do usuário, 2026-10-21): fixo à direita; clicar leva ao parágrafo. */
.revisao-pendencias {
    position: sticky;
    top: 1rem;
    max-height: calc(100vh - 2rem);
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 0.75rem;
    border-radius: 0.5rem;
    background-color: var(--color-surface-container-high);
}
.revisao-pendencias .label-md { margin: 0 0 0.25rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.pendencia {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--color-outline-variant);
    border-left: 4px solid var(--remover);
    border-radius: 0.5rem;
    background-color: var(--color-surface-container-lowest);
    color: var(--color-on-surface);
    text-decoration: none;
    font-size: 0.8125rem;
}
.pendencia:hover { border-color: var(--remover); }
.pendencia-onde { font-size: 0.75rem; font-weight: 600; color: var(--color-secondary); }
.pendencia-trecho { font-style: italic; overflow-wrap: anywhere; }
.pendencia-problema { font-weight: 700; color: var(--remover); }
.pendencia-porque { font-size: 0.75rem; color: var(--color-secondary); }
.pendencia-ir { font-size: 0.75rem; font-weight: 700; color: var(--color-primary); }
.pendencia-vazia { margin: 0; font-weight: 600; color: var(--ok-text); }
.etiqueta-pendencia { --c: var(--remover); --c-bg: var(--remover-bg); }
.etiqueta-pendencia[hidden] { display: none; }
.par:target, .proposta:target, .editor:target { scroll-margin-top: 1rem; animation: alvo-pendencia 2.4s ease-out; }
@keyframes alvo-pendencia {
    0%, 40% { box-shadow: 0 0 0 3px var(--remover); }
    100% { box-shadow: 0 0 0 3px transparent; }
}
.revisao-teses {
    position: sticky;
    top: 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 0.75rem;
    border-radius: 0.5rem;
    background-color: var(--color-surface-container-high);
}
.revisao-teses .label-md { margin: 0 0 0.25rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.04em; }
.tese-item {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.2rem;
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: 1px solid transparent;
    border-radius: 0.375rem;
    background-color: var(--color-surface-container-lowest);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}
.tese-item:hover { border-color: var(--color-primary); }
.tese-item.ativa { background-color: var(--color-primary); color: #fff; }
.tese-item.ativa .tese-contador { color: rgba(255, 255, 255, 0.85); }
.tese-nome { font-size: 0.875rem; font-weight: 600; }
.tese-contador { font-size: 0.75rem; color: var(--color-secondary); }
.tese-contador.completa::before { content: "✓ "; }
.revisao-titulo { margin: 0 0 0.75rem; font-size: 1.25rem; font-weight: 600; color: var(--color-primary); }
.tese-item.htmx-request, .proposta.htmx-request, .proposta:has(.htmx-request) {
    opacity: 0.55;
    pointer-events: none;
    transition: opacity 0.15s;
}

/* A peça: faixa da cor do tipo em cada parágrafo; título e recuo da peça base */
.folha {
    padding: 1.25rem 1.5rem;
    border-radius: 0.5rem;
    font-size: 0.875rem;
    background-color: var(--color-surface-container-lowest);
    box-shadow: var(--shadow-ambient);
}
.par {
    --c: color-mix(in srgb, var(--fixo) 40%, transparent);
    --c-bg: transparent;
    margin: 0 0 0.5rem calc(var(--recuo, 0) * 0.9rem);
    padding: 0.35rem 0.75rem;
    border-left: 3px solid var(--c);
    border-radius: 0 0.25rem 0.25rem 0;
    background-color: var(--c-bg);
}
.par p { margin: 0; line-height: 1.55; }
.par-variavel { --c: var(--variavel); --c-bg: var(--variavel-bg); }
.par-sofia { --c: var(--sofia); --c-bg: var(--sofia-bg); font-style: italic; }
.par-absorvido { --c: var(--remover); opacity: 0.5; }
.par-absorvido p { text-decoration: line-through; }
.par-titulo { margin-top: 1rem; }
.par-titulo p { font-weight: 700; }
.par-citacao { --c: var(--citacao); --c-bg: var(--citacao-bg); font-size: 0.8125rem; }
.par-citacao p { font-style: italic; }
/* Parágrafo comum editável: clique abre o editor no lugar */
.par-editavel { cursor: pointer; transition: box-shadow 0.15s; }
.par-editavel:hover { box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-primary) 35%, transparent); }
.par-editavel.htmx-request { opacity: 0.55; }
.par-labour { --c: var(--labour); --c-bg: var(--labour-bg); }
.par-labour p { color: var(--labour); font-weight: 600; }
.par-removido { --c: var(--remover); --c-bg: var(--remover-bg); }
.par-removido p { text-decoration: line-through; opacity: 0.6; }
.par-erro { margin-top: 0.25rem !important; font-size: 0.75rem; font-weight: 600; color: var(--remover); }
.editor {
    --c: var(--fixo);
    --c-bg: var(--fixo-bg);
    margin: 0.75rem 0;
    padding: 0 1rem 1rem;
    border: 1px solid color-mix(in srgb, var(--color-primary) 35%, transparent);
    border-left: 5px solid var(--color-primary);
    border-radius: 0.5rem;
    background-color: var(--color-surface-container-lowest);
    box-shadow: var(--shadow-ambient);
}
.editor.htmx-request, .editor:has(.htmx-request) { opacity: 0.55; pointer-events: none; }
.etiquetas { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-bottom: 0.25rem; }
.grupo-condicional, .grupo-material {
    margin: 0.75rem 0;
    padding: 0.5rem 0.75rem;
    border: 1.5px dashed var(--g);
    border-radius: 0.5rem;
    background-color: var(--g-bg);
}
.grupo-condicional { --g: var(--condicional); --g-bg: var(--condicional-bg); }
.grupo-material { --g: var(--material); --g-bg: var(--material-bg); }
.grupo-rotulo { margin: 0 0 0.5rem; font-size: 0.75rem; font-weight: 700; color: var(--g); text-transform: uppercase; letter-spacing: 0.04em; }
/* Condição do bloco editável (pedido do usuário, 2026-10-20); bloco com a condição retirada fica pontilhado. */
.grupo-sem-condicao { border-style: dotted; background-color: transparent; }
.condicao-editor { margin: -0.25rem 0 0.75rem; }
.condicao-editor > summary { display: inline-block; cursor: pointer; font-size: 0.8125rem; font-weight: 600; color: var(--g); text-decoration: underline; }
.condicao-editor form { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 0.5rem; padding: 0.75rem; border-radius: 0.5rem; background-color: var(--color-surface-container-lowest); }
.condicao-editor .acoes { justify-content: flex-start; flex-wrap: wrap; }

/* Cartões das propostas */
.proposta {
    --c: var(--proposta);
    --c-bg: var(--proposta-bg);
    margin: 0.75rem 0;
    padding: 0 1rem 1rem;
    border: 1px solid color-mix(in srgb, var(--c) 35%, transparent);
    border-left: 5px solid var(--c);
    border-radius: 0.5rem;
    background-color: var(--color-surface-container-lowest);
}
.proposta-labour { --c: var(--labour); --c-bg: var(--labour-bg); }
.proposta-cabecalho {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin: 0 -1rem 0.75rem;
    padding: 0.5rem 1rem;
    border-radius: 0 0.5rem 0 0;
    background-color: var(--c-bg);
}
.proposta-estado { margin-left: auto; font-size: 0.75rem; font-weight: 600; color: var(--proposta); }
.proposta.decidida .proposta-estado { color: var(--variavel); }
.proposta-original { padding: 0.5rem 0.75rem; border-radius: 0.375rem; font-size: 0.875rem; background-color: var(--fixo-bg); }

/* Ação da proposta: botões coloridos (o rádio continua para teclado e leitor de tela) */
.escolhas { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.75rem 0; }
.escolha { position: relative; }
.escolha input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.escolha span {
    display: inline-block;
    padding: 0.45rem 0.9rem;
    border: 1.5px solid var(--c);
    border-radius: 999px;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--c);
    background-color: var(--color-surface-container-lowest);
    cursor: pointer;
    transition: all 0.15s;
}
.escolha span:hover { background-color: var(--c-bg); }
.escolha input:checked + span { background-color: var(--c); color: #fff; }
.escolha input:focus-visible + span { outline: 2px solid var(--c); outline-offset: 2px; }
.escolha-aceitar { --c: var(--variavel); --c-bg: var(--variavel-bg); }
.escolha-editar { --c: var(--sofia); --c-bg: var(--sofia-bg); }
.escolha-labour { --c: var(--labour); --c-bg: var(--labour-bg); }
.escolha-fixo { --c: var(--fixo); --c-bg: var(--fixo-bg); }
.escolha-remover { --c: var(--remover); --c-bg: var(--remover-bg); }
.ajustes { margin-top: 0.75rem; gap: 0.4rem; }
.finalizar { margin-top: 1.5rem; padding-top: 1.25rem; border-top: 1px solid var(--color-outline-variant); }

/* Nova execução: etapas numeradas (pedido do usuário, 2026-10-17) */
.nova { display: flex; flex-direction: column; gap: 1.25rem; }
.etapa-nova { display: grid; grid-template-columns: 2.25rem minmax(0, 1fr); gap: 1rem; padding: 1.25rem; border-radius: 0.5rem; background-color: var(--color-surface-container-low); border-left: 4px solid var(--color-primary); }
.etapa-numero { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: 50%; font-weight: 700; color: #fff; background: linear-gradient(135deg, var(--color-primary), var(--color-primary-container)); }
.etapa-corpo { display: flex; flex-direction: column; gap: 0.6rem; min-width: 0; }
.etapa-titulo { margin: 0; font-size: 1rem; font-weight: 600; color: var(--color-primary); }
.etapa-subtitulo { margin-top: 0.5rem; font-size: 0.875rem; font-weight: 600; }
.etapa-corpo textarea { min-height: 6rem; }
.area-arquivos { position: relative; display: flex; flex-direction: column; align-items: center; gap: 0.35rem; padding: 1.25rem; text-align: center; font-size: 0.875rem; border: 2px dashed color-mix(in srgb, var(--color-primary) 45%, transparent); border-radius: 0.5rem; background-color: var(--color-surface-container-lowest); cursor: pointer; transition: background-color 0.15s; }
.area-arquivos:hover { background-color: var(--variavel-bg); }
.area-icone { font-size: 1.5rem; color: var(--color-primary); }
.area-escolhidos { font-size: 0.8125rem; color: var(--color-secondary); word-break: break-word; }
.area-arquivos input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.area-arquivos:focus-within { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.lista-links { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.35rem; }
.link-item { padding: 0.45rem 0.75rem; border-radius: 0.375rem; font-size: 0.875rem; word-break: break-all; }
.link-ok { background-color: var(--variavel-bg); }
.link-ok a { font-weight: 600; word-break: normal; }
.link-erro { background-color: var(--remover-bg); color: var(--remover); }
.link-status { font-weight: 700; }
.link-cru { font-family: ui-monospace, monospace; font-size: 0.75rem; }

/* Revisão das teses: um cartão por tese, peças pelo nome */
.tese-cartao { margin-bottom: 1rem; border: 1px solid color-mix(in srgb, var(--color-primary) 25%, transparent); border-radius: 0.5rem; background-color: var(--color-surface-container-lowest); overflow: hidden; }
.tese-cabecalho { display: flex; align-items: flex-end; gap: 1rem; padding: 0.9rem 1rem; background: linear-gradient(90deg, var(--variavel-bg), var(--color-surface-container-low)); border-bottom: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent); }
.tese-nome-form { flex: 1; display: flex; flex-direction: column; gap: 0.25rem; }
.tese-nome-form .input { font-weight: 600; }
.pecas { list-style: none; margin: 0; padding: 0.5rem 1rem; }
.peca { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(10rem, 14rem); align-items: center; gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px solid var(--color-surface-container-high); }
.peca:last-child { border-bottom: none; }
.peca-info { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; min-width: 0; }
.peca-nome { font-weight: 600; font-size: 0.875rem; overflow-wrap: anywhere; }
.peca-base { background-color: color-mix(in srgb, var(--variavel-bg) 60%, transparent); border-radius: 0.375rem; padding-left: 0.5rem; padding-right: 0.5rem; }
.peca-mover .input { width: 100%; }
.selo-base { position: relative; }
.selo-base input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.selo-base span { display: inline-block; padding: 0.3rem 0.75rem; border-radius: 999px; font-size: 0.75rem; font-weight: 600; white-space: nowrap; cursor: pointer; color: var(--color-primary); border: 1.5px solid var(--color-primary); background-color: var(--color-surface-container-lowest); }
.selo-base input:checked + span { color: #fff; background-color: var(--color-primary); }
.selo-base input:focus-visible + span { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.tese-rodape { padding: 0.6rem 1rem; background-color: var(--color-surface-container-low); }
.descartadas { margin-bottom: 1rem; padding: 0.5rem 1rem; border: 1.5px dashed var(--fixo); border-radius: 0.5rem; background-color: var(--fixo-bg); --g: var(--fixo); }

@media (max-width: 40rem) {
    .peca { grid-template-columns: 1fr; }
    .tese-cabecalho { flex-direction: column; align-items: stretch; }
}

/* Endereçamento: condicional de menor (regra do usuário, 2026-10-17) */
.par-foro { --c: var(--condicional); --c-bg: var(--condicional-bg); --g: var(--condicional); }
.par-foro .foro-rotulo { margin-bottom: 0.25rem; }
.par-foro .foro-versao { margin-top: 0.4rem; }
.par-foro .foro-versao .etiqueta { margin-right: 0.35rem; }

/* Gerador: etapas em blocos coloridos (pedido do usuário, 2026-10-17) */
.gerador .campos { display: flex; flex-direction: column; gap: 1.25rem; }
.bloco { --a: var(--color-primary); --a-bg: var(--variavel-bg); border-left: 4px solid var(--a); border-radius: 0.5rem; background-color: var(--color-surface-container-low); padding: 1.25rem 1.25rem 1.5rem; }
.bloco-companhia { --a: var(--sofia); --a-bg: var(--sofia-bg); }
.bloco-foro { --a: var(--condicional); --a-bg: var(--condicional-bg); }
.bloco-caso { --a: var(--labour); --a-bg: var(--labour-bg); }
.bloco-cabecalho { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 1rem; }
.bloco-cabecalho .etapa { margin: 0; color: var(--a); font-size: 1.05rem; }
.bloco-numero { display: flex; align-items: center; justify-content: center; flex: none; width: 2.25rem; height: 2.25rem; border-radius: 50%; font-weight: 700; color: #fff; background-color: var(--a); box-shadow: 0 2px 8px color-mix(in srgb, var(--a) 35%, transparent); }
.bloco-corpo { display: flex; flex-direction: column; gap: 0.75rem; min-width: 0; }
.painel-grupo { padding: 1rem 1rem 0.25rem; border-radius: 0.5rem; background-color: var(--color-surface-container-lowest); border: 1px solid color-mix(in srgb, var(--a) 22%, transparent); }
.painel-titulo { margin: 0 0 0.75rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: var(--a); }
.acoes-gerar { justify-content: flex-start; padding-top: 0.5rem; }

@media (max-width: 60rem) {
    .revisao-layout { grid-template-columns: 1fr; }
    .revisao-teses { position: static; flex-direction: row; flex-wrap: wrap; }
    .revisao-pendencias { position: static; max-height: none; order: -1; }   /* em tela estreita, antes da peça */
    .revisao-teses .label-md { flex-basis: 100%; }
    .tese-item { width: auto; }
}
