/* ================================================================
   Infosimples DUO — sistema visual editorial jurídico
   ================================================================ */

:root {
    color-scheme: light;

    --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    --font-editorial: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;

    --color-canvas: #f5f2eb;
    --color-paper: #fffdf8;
    --color-surface: #ffffff;
    --color-surface-subtle: #f0eee8;
    --color-ink: #172033;
    --color-ink-soft: #344456;
    --color-muted: #53606d;
    --color-primary: #17324d;
    --color-primary-hover: #0f263a;
    --color-primary-soft: #eaf0f4;
    --color-accent: #7a4e0b;
    --color-accent-hover: #5f3c08;
    --color-border: #d6d2c8;
    --color-border-strong: #afa99c;
    --color-link: #185b86;
    --color-focus: #2563eb;

    --success-bg: #ecf8f0;
    --success-fg: #14532d;
    --success-border: #2e7d52;
    --warning-bg: #fff7d6;
    --warning-fg: #6b3a00;
    --warning-border: #b7791f;
    --danger-bg: #fff1f0;
    --danger-fg: #7a1f1f;
    --danger-border: #b42318;
    --neutral-bg: #eff2f5;
    --neutral-fg: #344054;
    --neutral-border: #667085;
    --info-bg: #eaf3f9;
    --info-fg: #174f70;
    --info-border: #39799f;

    --space-1: 0.25rem;
    --space-2: 0.5rem;
    --space-3: 0.75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 2.5rem;
    --space-8: 3rem;

    --radius-sm: 3px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --shadow-card: 0 1px 2px rgb(23 32 51 / 8%), 0 8px 24px rgb(23 32 51 / 4%);
    --shadow-header: 0 1px 0 rgb(255 255 255 / 8%), 0 6px 18px rgb(5 18 31 / 14%);
    --container: 74rem;
    --ease-out: cubic-bezier(0.23, 1, 0.32, 1);
    --transition-fast: 150ms var(--ease-out);
}

/* Base e acessibilidade */

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

html {
    min-width: 20rem;
    background: var(--color-canvas);
    font-size: 100%;
}

body {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    background:
        linear-gradient(180deg, rgb(255 255 255 / 42%) 0, transparent 16rem),
        var(--color-canvas);
    color: var(--color-ink);
    font-family: var(--font-ui);
    font-size: 1rem;
    line-height: 1.6;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
    color: inherit;
    font: inherit;
}

button,
summary {
    -webkit-tap-highlight-color: transparent;
}

a {
    color: var(--color-link);
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

a:hover {
    text-decoration-thickness: 0.12em;
}

:focus-visible {
    outline: 3px solid var(--color-focus);
    outline-offset: 3px;
}

.site-header :focus-visible {
    outline-color: #f4dfb8;
}

summary:focus-visible {
    outline-offset: -3px;
}

main:focus {
    outline: none;
}

::selection {
    background: #d9e7f1;
    color: var(--color-primary-hover);
}

.skip-link {
    position: fixed;
    z-index: 1000;
    top: -6rem;
    left: var(--space-3);
    padding: var(--space-2) var(--space-4);
    border-radius: var(--radius-sm);
    background: var(--color-paper);
    color: var(--color-primary);
    font-weight: 700;
    text-decoration: none;
    transition: top var(--transition-fast);
}

.skip-link:focus {
    top: var(--space-3);
}

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

.container {
    width: min(100% - 2rem, var(--container));
    margin-inline: auto;
}

/* Cabeçalho e navegação */

.site-header {
    position: sticky;
    z-index: 100;
    top: 0;
}

.navbar {
    border-bottom: 3px solid #9a6a2b;
    background: var(--color-primary);
    box-shadow: var(--shadow-header);
}

.navbar-inner {
    min-height: 4.75rem;
    display: flex;
    align-items: stretch;
    justify-content: space-between;
    gap: var(--space-6);
}

.navbar-brand {
    min-width: max-content;
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    color: #ffffff;
    text-decoration: none;
}

.navbar-brand:hover {
    text-decoration: none;
}

.brand-monogram {
    width: 2.5rem;
    height: 2.5rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid rgb(255 255 255 / 34%);
    border-radius: 50%;
    color: #f4dfb8;
    font-family: var(--font-editorial);
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.brand-copy {
    display: grid;
    line-height: 1.15;
}

.brand-copy strong {
    font-family: var(--font-editorial);
    font-size: 1.12rem;
    letter-spacing: 0.015em;
}

.brand-copy small {
    margin-top: 0.22rem;
    color: #c8d3dc;
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.navbar-links {
    display: flex;
    align-items: stretch;
    gap: var(--space-1);
}

.navbar-links a {
    position: relative;
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    padding-inline: var(--space-3);
    color: #e0e8ee;
    font-size: 0.9rem;
    font-weight: 650;
    text-decoration: none;
    transition: color var(--transition-fast), background-color var(--transition-fast);
}

.navbar-links a::after {
    position: absolute;
    right: var(--space-3);
    bottom: 0.65rem;
    left: var(--space-3);
    height: 2px;
    content: "";
    transform: scaleX(0);
    transform-origin: left;
    background: #d8b273;
    transition: transform var(--transition-fast);
}

/* Conteúdo e tipografia */

main.container {
    flex: 1;
    padding-block: clamp(1.75rem, 4vw, 3.5rem) 4rem;
}

h1,
h2,
h3,
h4,
p,
ul,
ol,
blockquote {
    margin-top: 0;
}

h1,
h2,
h3 {
    color: var(--color-primary);
}

h1,
.page-title {
    margin-bottom: var(--space-2);
    font-family: var(--font-editorial);
    font-size: clamp(2rem, 4vw, 3.15rem);
    font-weight: 650;
    letter-spacing: -0.025em;
    line-height: 1.08;
}

h2 {
    font-family: var(--font-editorial);
    font-size: clamp(1.25rem, 2vw, 1.55rem);
    line-height: 1.25;
}

h3 {
    font-size: 1rem;
    line-height: 1.35;
}

h4 {
    color: var(--color-ink-soft);
    font-size: 0.92rem;
}

.page-header {
    position: relative;
    max-width: 58rem;
    margin-bottom: var(--space-6);
    padding-bottom: var(--space-5);
    border-bottom: 1px solid var(--color-border);
}

.page-header::after {
    position: absolute;
    bottom: -1px;
    left: 0;
    width: 4.5rem;
    height: 2px;
    content: "";
    background: var(--color-accent);
}

.page-header h1,
.page-header .page-title {
    margin-top: 0;
}

.page-header p:last-child,
.subtitle {
    max-width: 52rem;
    margin-bottom: 0;
    color: var(--color-muted);
    font-size: 1rem;
}

.eyebrow {
    margin-bottom: var(--space-2) !important;
    color: var(--color-accent) !important;
    font-size: 0.72rem !important;
    font-weight: 800;
    letter-spacing: 0.14em;
    line-height: 1.3;
    text-transform: uppercase;
}

.page-header-dossie {
    max-width: none;
}

.dossie-meta,
.cnpj-destaque,
.resultado-info,
.stat-valor,
.custo-estimado strong,
td,
code {
    font-variant-numeric: tabular-nums;
}

.dossie-meta,
.cnpj-destaque {
    overflow-wrap: anywhere;
}

.cnpj-destaque {
    color: var(--color-primary) !important;
    font-size: 1.05rem !important;
    font-weight: 750;
}

.muted,
.resultado-info {
    color: var(--color-muted);
    font-size: 0.88rem;
}

.header-com-acao {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-5);
}

/* Cards e estados */

.card {
    margin-block: 0 var(--space-5);
    padding: clamp(1rem, 2.5vw, 1.5rem);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
}

.card h2 {
    min-width: 0;
    margin-bottom: var(--space-4);
    padding-bottom: var(--space-3);
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    border-bottom: 1px solid var(--color-border);
}

.card h2 small {
    color: var(--color-muted);
    font-family: var(--font-ui);
    font-size: 0.78rem;
    font-weight: 500;
}

.card-custo {
    border-color: var(--color-border-strong);
    background: var(--color-surface-subtle);
}

.card-grupo {
    border-left: 4px solid var(--color-primary);
}

.card-formulario {
    max-width: 48rem;
    border-top: 3px solid var(--color-primary);
}

.estado-vazio {
    max-width: 44rem;
    margin-inline: auto;
    padding-block: clamp(2rem, 8vw, 4rem);
    text-align: center;
}

.estado-vazio .page-title {
    margin-top: 0;
}

.estado-vazio .subtitle {
    margin-inline: auto;
    margin-bottom: var(--space-5);
}

.texto-vazio {
    margin-bottom: 0;
    padding-block: var(--space-4);
    color: var(--color-muted);
    font-style: italic;
}

.texto-vazio-inline {
    color: var(--color-muted);
}

/* Formulários */

form {
    display: flex;
    flex-direction: column;
    gap: var(--space-4);
}

.form-consulta {
    max-width: 32rem;
}

.form-dossie {
    max-width: 44rem;
}

label,
.campo label {
    display: block;
    margin-bottom: var(--space-2);
    color: var(--color-ink-soft);
    font-size: 0.88rem;
    font-weight: 750;
}

input[type="text"],
input[type="number"],
input[type="date"],
select,
textarea {
    width: 100%;
    min-height: 2.75rem;
    padding: 0.65rem 0.75rem;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-sm);
    background: var(--color-paper);
    color: var(--color-ink);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
}

input::placeholder,
textarea::placeholder {
    color: #6c7580;
    opacity: 1;
}

input:hover,
select:hover,
textarea:hover {
    border-color: #7f8a94;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: none;
    border-color: var(--color-focus);
    background: #ffffff;
    box-shadow: 0 0 0 3px rgb(37 99 235 / 18%);
}

.campo {
    margin: 0;
}

.campo-ajuda {
    display: block;
    margin: calc(0rem - var(--space-1)) 0 var(--space-2);
    color: var(--color-muted);
    font-size: 0.8rem;
    line-height: 1.45;
}

.form-acoes,
.filtros-acoes,
.acoes,
.acoes-flex,
.form-confirmacao {
    display: flex;
    align-items: center;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--space-3);
}

.form-acoes {
    margin-top: var(--space-2);
}

.acoes {
    margin-block: var(--space-4) var(--space-6);
}

.form-inline {
    width: auto;
    display: inline-flex;
}

.form-filtros {
    max-width: none;
}

.filtros-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: var(--space-4);
}

.filtro-campo {
    min-width: 0;
}

/* Botões e links de ação */

:where(
    .btn,
    .btn-primary,
    .btn-secundario,
    .btn-outline,
    .btn-exportar,
    .btn-certidoes,
    .btn-expandir,
    .btn-certidao,
    .btn-comprovante
) {
    min-height: 2.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    padding: 0.58rem 1rem;
    border: 1px solid transparent;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-family: var(--font-ui);
    font-size: 0.88rem;
    font-weight: 750;
    line-height: 1.2;
    text-align: center;
    text-decoration: none;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);
}

:where(
    .btn,
    .btn-primary,
    .btn-secundario,
    .btn-outline,
    .btn-exportar,
    .btn-certidoes,
    .btn-expandir,
    .btn-certidao,
    .btn-comprovante
):active {
    transform: scale(0.98);
}

.btn-primary,
.btn-exportar,
.btn-certidao {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #ffffff;
}

.btn-secundario,
.btn-outline {
    border-color: var(--color-primary);
    background: var(--color-paper);
    color: var(--color-primary);
}

.btn-expandir,
.btn-certidoes {
    border-color: var(--color-accent);
    background: var(--color-accent);
    color: #ffffff;
}

.btn-comprovante {
    min-height: 2rem;
    margin-left: auto;
    padding: 0.32rem 0.6rem;
    border-color: #8eb1c6;
    background: var(--info-bg);
    color: var(--info-fg);
    font-size: 0.72rem;
    white-space: nowrap;
}

.link-externo,
.links-comprovantes a {
    color: var(--color-link);
    font-size: 0.84rem;
    font-weight: 650;
}

/* Alertas e semáforo */

.alerta {
    position: relative;
    margin-bottom: var(--space-5);
    padding: 0.9rem 1rem 0.9rem 3rem;
    border: 1px solid var(--info-border);
    border-left-width: 4px;
    border-radius: var(--radius-sm);
    background: var(--info-bg);
    color: var(--info-fg);
    font-size: 0.9rem;
    overflow-wrap: anywhere;
}

.alerta::before {
    position: absolute;
    top: 0.9rem;
    left: 0.85rem;
    width: 1.35rem;
    height: 1.35rem;
    display: grid;
    place-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    content: "i";
    font-family: var(--font-editorial);
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1;
}

.alerta-verde,
.alerta.verde {
    border-color: var(--success-border);
    background: var(--success-bg);
    color: var(--success-fg);
}

.alerta-verde::before,
.alerta.verde::before {
    content: "✓";
    font-family: var(--font-ui);
}

.alerta-amarelo,
.alerta.amarelo {
    border-color: var(--warning-border);
    background: var(--warning-bg);
    color: var(--warning-fg);
}

.alerta-amarelo::before,
.alerta.amarelo::before {
    content: "!";
    font-family: var(--font-ui);
}

.alerta-vermelho,
.alerta.vermelho {
    border-color: var(--danger-border);
    background: var(--danger-bg);
    color: var(--danger-fg);
}

.alerta-vermelho::before,
.alerta.vermelho::before {
    content: "×";
    font-family: var(--font-ui);
}

.alerta .titulo,
.alerta .detalhe,
.alerta .severidade {
    display: block;
}

.alerta .titulo {
    font-weight: 800;
}

.alerta .detalhe {
    margin-top: 0.15rem;
    color: inherit;
    line-height: 1.5;
}

.alerta .severidade {
    margin-bottom: var(--space-1);
    font-size: 0.68rem;
    font-weight: 850;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.alerta ul {
    margin: var(--space-2) 0 0;
    padding-left: 1.2rem;
}

.alerta-com-margem,
.tabela-com-margem {
    margin-top: var(--space-4);
}

.aviso-custo {
    margin-bottom: var(--space-2);
    padding-block: 1rem;
}

.semaforo {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: var(--space-3);
    margin-top: var(--space-3);
}

.semaforo .alerta {
    margin-bottom: 0;
}

/* Badges */

.badge,
.badge-certidao-verde,
.badge-certidao-vermelho,
.badge-certidao-cinza {
    min-height: 1.55rem;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0.18rem 0.48rem;
    border: 1px solid var(--neutral-border);
    border-radius: var(--radius-sm);
    background: var(--neutral-bg);
    color: var(--neutral-fg);
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.035em;
    line-height: 1.1;
    text-transform: uppercase;
    vertical-align: middle;
    white-space: nowrap;
}

.badge::before,
.badge-certidao-verde::before,
.badge-certidao-vermelho::before,
.badge-certidao-cinza::before {
    font-size: 0.82rem;
    line-height: 1;
}

.badge-ok,
.badge-verde,
.badge-certidao-verde {
    border-color: var(--success-border);
    background: var(--success-bg);
    color: var(--success-fg);
}

.badge-ok::before,
.badge-verde::before,
.badge-certidao-verde::before {
    content: "✓";
}

.badge-warn {
    border-color: var(--warning-border);
    background: var(--warning-bg);
    color: var(--warning-fg);
}

.badge-warn::before {
    content: "!";
}

.badge-red,
.badge-vermelho,
.badge-certidao-vermelho {
    border-color: var(--danger-border);
    background: var(--danger-bg);
    color: var(--danger-fg);
}

.badge-red::before,
.badge-vermelho::before,
.badge-certidao-vermelho::before {
    content: "×";
}

.badge-neutral,
.badge-cache,
.badge-certidao-cinza {
    border-color: var(--neutral-border);
    background: var(--neutral-bg);
    color: var(--neutral-fg);
}

.badge-neutral::before {
    content: "•";
}

.badge-api {
    border-color: var(--info-border);
    background: var(--info-bg);
    color: var(--info-fg);
}

.badge-risco {
    min-width: 6.6rem;
    width: max-content;
    max-width: 100%;
    justify-content: center;
    justify-self: start;
}

/* Tabelas */

.tabela-responsiva {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    scrollbar-color: var(--color-border-strong) transparent;
    scrollbar-width: thin;
}

.tabela-responsiva:focus-within {
    border-color: var(--color-focus);
}

.tabela,
.tabela-dados,
.tabela-listagem {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    border-spacing: 0;
    background: var(--color-surface);
    font-size: 0.88rem;
}

.tabela,
.tabela-listagem {
    min-width: 44rem;
}

.tabela-dados {
    min-width: 32rem;
}

.tabela th,
.tabela td,
.tabela-dados th,
.tabela-dados td,
.tabela-listagem th,
.tabela-listagem td {
    padding: 0.68rem 0.75rem;
    border-bottom: 1px solid var(--color-border);
    text-align: left;
    vertical-align: top;
    overflow-wrap: anywhere;
}

.tabela thead th,
.tabela-dados thead th,
.tabela-listagem thead th {
    background: var(--color-primary-soft);
    color: var(--color-primary);
    font-size: 0.7rem;
    font-weight: 850;
    letter-spacing: 0.065em;
    text-transform: uppercase;
    white-space: nowrap;
}

.tabela-dados tbody th,
.tabela-dados > tbody > tr > th,
.tabela-dados > tr > th {
    width: 13rem;
    background: #faf9f5;
    color: var(--color-ink-soft);
    font-weight: 750;
}

.tabela-colunas thead th,
.tabela-dados.tabela-colunas thead th {
    width: auto;
}

.tabela tbody tr:last-child > *,
.tabela-dados tbody tr:last-child > *,
.tabela-dados > tr:last-child > *,
.tabela-listagem tbody tr:last-child > * {
    border-bottom: 0;
}

.tabela code,
.processo code,
code {
    padding: 0.12rem 0.3rem;
    border-radius: var(--radius-sm);
    background: var(--neutral-bg);
    color: var(--color-ink);
    font-family: var(--font-mono);
    font-size: 0.82em;
}

/* Details, catálogo e entidades */

details > summary {
    list-style: none;
}

details > summary::-webkit-details-marker {
    display: none;
}

.grupo {
    margin-top: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-paper);
    overflow: clip;
}

.grupo > summary,
.subdetalhes > summary,
.processo > summary {
    min-height: 2.75rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    cursor: pointer;
    color: var(--color-ink-soft);
}

.grupo > summary {
    padding: 0.75rem 0.9rem;
    background: #f8f7f3;
}

.grupo > summary::after,
.subdetalhes > summary::after,
.processo > summary::after {
    width: 0.55rem;
    height: 0.55rem;
    margin-left: auto;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    content: "";
    transform: rotate(45deg) translateY(-0.12rem);
    transform-origin: center;
    transition: transform var(--transition-fast);
}

.grupo[open] > summary::after,
.subdetalhes[open] > summary::after,
.processo[open] > summary::after {
    transform: rotate(225deg) translate(-0.08rem, -0.08rem);
}

.grupo > .muted,
.grupo > .tabela-responsiva {
    margin-inline: var(--space-4);
}

.grupo > .muted {
    margin-top: var(--space-3);
}

.grupo > .tabela-responsiva {
    width: auto;
    margin-bottom: var(--space-4);
}

.entidade-dossie {
    margin-block: var(--space-4);
    border-color: #c5cbd0;
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
}

.entidade-dossie > summary {
    padding: 0.9rem 1rem;
    background: var(--color-primary-soft);
    color: var(--color-primary);
}

.entidade-dossie[open] > summary {
    border-bottom: 1px solid var(--color-border);
}

.entidade-dossie > summary .no-doc,
.entidade-dossie > summary .nivel-tag {
    color: var(--color-muted);
}

.entidade-conteudo {
    padding: 0 var(--space-5) var(--space-4);
}

.secao-dossie {
    padding-block: var(--space-5);
    border-bottom: 1px solid var(--color-border);
}

.secao-dossie:last-child {
    border-bottom: 0;
}

.secao-dossie h3 {
    margin-bottom: var(--space-3);
    color: var(--color-primary);
    font-size: 0.78rem;
    font-weight: 850;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.secao-dossie h4 {
    margin: var(--space-4) 0 var(--space-2);
}

.subdetalhes {
    margin-top: var(--space-3);
    border-top: 1px solid var(--color-border);
}

.subdetalhes > summary {
    padding-block: var(--space-2);
    font-size: 0.88rem;
    font-weight: 750;
}

.subdetalhes > .tabela-responsiva,
.subdetalhes > .lista-dados,
.subdetalhes > .links-comprovantes,
.subdetalhes > h4 {
    margin-bottom: var(--space-3);
}

/* Árvore do grupo econômico */

.arvore {
    margin: var(--space-4) 0 0;
    padding: 0 0 0 1rem;
    border-left: 1px solid var(--color-border-strong);
    list-style: none;
}

.arvore li {
    position: relative;
    min-height: 3.1rem;
    margin: 0 0 var(--space-2) var(--recuo-original, 0rem);
    padding: 0.62rem 0.75rem;
    display: grid;
    grid-template-columns: auto minmax(10rem, 1fr) auto auto;
    align-items: center;
    gap: var(--space-2) var(--space-3);
    border: 1px solid var(--color-border);
    border-left: 3px solid var(--color-primary);
    border-radius: var(--radius-sm);
    background: var(--color-paper);
}

.arvore li::before {
    position: absolute;
    top: 50%;
    left: calc(-1rem - var(--recuo-original, 0rem));
    width: calc(1rem + var(--recuo-original, 0rem));
    border-top: 1px solid var(--color-border-strong);
    content: "";
}

.arvore strong,
.arvore .no-doc {
    overflow-wrap: anywhere;
}

.no-doc {
    color: var(--color-muted);
    font-family: var(--font-mono);
    font-size: 0.76rem;
}

.nivel-tag {
    color: var(--color-muted);
    font-size: 0.68rem;
    font-weight: 750;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    white-space: nowrap;
}

.arvore-legenda {
    margin: var(--space-2) 0 0;
}

.grupo-raiz-item.tem-filiais {
    align-items: start;
    background: var(--color-surface-subtle);
}

.lista-filiais,
.ligacoes-inline {
    grid-column: 1 / -1;
    margin: var(--space-2) 0 0;
    padding: 0.5rem 0 0 1.1rem;
    border-top: 1px dashed var(--color-border);
    list-style: none;
}

.lista-filiais li {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
    padding: 0.25rem 0;
    font-size: 0.85rem;
}

.ligacoes-inline {
    color: var(--color-muted);
    font-size: 0.8rem;
}

.ligacoes-inline li + li {
    margin-top: 0.2rem;
}

.ligacoes-inline strong {
    color: var(--color-body, inherit);
}

.badge-mini {
    display: inline-flex;
    width: 0.6rem;
    height: 0.6rem;
    min-width: 0;
    padding: 0;
    border-radius: 50%;
}

.badge-mini-texto {
    padding: 0.05rem 0.4rem;
    font-size: 0.62rem;
}

/* Listas, certidões e processos */

.lista-dados {
    margin: var(--space-2) 0 0;
    padding-left: 1.25rem;
}

.lista-dados li + li {
    margin-top: var(--space-1);
}

.certidoes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: var(--space-3);
}

.certidao-card {
    padding: var(--space-4);
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-primary);
    border-radius: var(--radius-sm);
    background: #faf9f5;
}

.certidao-card h4 {
    margin: 0 0 var(--space-3);
    color: var(--color-primary);
    font-family: var(--font-editorial);
    font-size: 1.05rem;
}

.certidao-card h4 small {
    color: var(--color-muted);
    font-family: var(--font-ui);
    font-size: 0.72rem;
    font-weight: 600;
}

.certidao-card p {
    margin-bottom: var(--space-2);
    font-size: 0.86rem;
}

.certidao-acoes,
.links-comprovantes,
.badges-status,
.totais-processos {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.certidao-acoes,
.links-comprovantes {
    margin-top: var(--space-3);
}

.badges-status,
.totais-processos {
    margin-bottom: var(--space-3);
}

.totais-processos span {
    padding: 0.35rem 0.55rem;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface-subtle);
    font-size: 0.82rem;
}

.processo {
    margin-top: var(--space-3);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    overflow: clip;
}

.processo > summary {
    padding: 0.72rem 0.8rem;
    background: #f8f7f3;
    font-size: 0.84rem;
    font-weight: 700;
}

.processo > summary span:not(.badge) {
    color: var(--color-muted);
    font-size: 0.76rem;
}

.processo-corpo {
    padding: var(--space-4);
    border-top: 1px solid var(--color-border);
}

.decisao + .decisao {
    margin-top: var(--space-4);
}

.decisao blockquote {
    margin: var(--space-2) 0 0;
    padding: var(--space-3) var(--space-4);
    border-left: 3px solid var(--color-accent);
    background: #faf9f5;
    color: var(--color-ink-soft);
    white-space: pre-wrap;
}

.consulta-adicional {
    padding-top: var(--space-2);
}

/* Histórico, estatísticas e paginação */

.stats-row {
    margin-bottom: var(--space-5);
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-3);
}

.stat-card {
    min-height: 7rem;
    padding: var(--space-4);
    display: grid;
    align-content: center;
    border: 1px solid var(--color-border);
    border-top: 3px solid var(--color-accent);
    border-radius: var(--radius-sm);
    background: var(--color-surface);
    box-shadow: var(--shadow-card);
    text-align: center;
}

.stat-valor {
    color: var(--color-primary);
    font-family: var(--font-editorial);
    font-size: clamp(1.5rem, 3vw, 2rem);
    font-weight: 700;
    line-height: 1.1;
}

.stat-label {
    margin-top: var(--space-2);
    color: var(--color-muted);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}

.paginacao {
    margin-block: var(--space-6);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: var(--space-2);
}

.paginacao-atual,
.paginacao-link {
    width: 2.75rem;
    height: 2.75rem;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--color-border-strong);
    border-radius: var(--radius-sm);
    font-size: 0.86rem;
    font-weight: 750;
    text-decoration: none;
}

.paginacao-atual {
    border-color: var(--color-primary);
    background: var(--color-primary);
    color: #ffffff;
}

.paginacao-link {
    background: var(--color-paper);
    color: var(--color-primary);
}

.paginacao-ellipsis {
    color: var(--color-muted);
}

/* Expansão manual */

.confirmacao-expansao {
    max-width: 52rem;
    margin-inline: auto;
}

.confirmacao-expansao .page-title {
    margin-top: 0;
}

.confirmacao-expansao .tabela-dados {
    min-width: 34rem;
}

.custo-estimado {
    margin-top: var(--space-5);
    padding: var(--space-4);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    border: 1px solid var(--success-border);
    border-left-width: 4px;
    border-radius: var(--radius-sm);
    background: var(--success-bg);
    color: var(--success-fg);
}

.custo-estimado strong {
    font-family: var(--font-editorial);
    font-size: 1.35rem;
    white-space: nowrap;
}

.aviso-expansao {
    margin: var(--space-4) 0 0;
    padding: var(--space-3) var(--space-4);
    border-left: 4px solid var(--warning-border);
    background: var(--warning-bg);
    color: var(--warning-fg);
    font-size: 0.88rem;
}

.form-confirmacao {
    margin-top: var(--space-5);
}

.empresas-incluidas {
    margin: var(--space-3) 0 0;
    color: var(--success-fg);
    font-size: 0.86rem;
    font-weight: 750;
}

.estado-vazio-expansao p {
    margin-bottom: var(--space-4);
}

/* Footer */

.footer {
    margin-top: auto;
    border-top: 3px solid #9a6a2b;
    background: var(--color-primary);
    color: #d8e0e7;
    font-size: 0.8rem;
}

.footer-inner {
    min-height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    text-align: center;
}

.footer-separator {
    color: #d8b273;
}

/* Interações sem ruído visual */

@media (hover: hover) and (pointer: fine) {
    .navbar-links a:hover {
        background: rgb(255 255 255 / 6%);
        color: #ffffff;
    }

    .navbar-links a:hover::after {
        transform: scaleX(1);
    }

    .btn-primary:hover,
    .btn-exportar:hover,
    .btn-certidao:hover {
        border-color: var(--color-primary-hover);
        background: var(--color-primary-hover);
        color: #ffffff;
    }

    .btn-secundario:hover,
    .btn-outline:hover {
        background: var(--color-primary-soft);
        color: var(--color-primary-hover);
    }

    .btn-expandir:hover,
    .btn-certidoes:hover {
        border-color: var(--color-accent-hover);
        background: var(--color-accent-hover);
        color: #ffffff;
    }

    .btn-comprovante:hover {
        border-color: var(--info-fg);
        background: #dcecf6;
        color: #103c57;
    }

    .tabela tbody tr:hover > *,
    .tabela-dados tbody tr:hover > *,
    .tabela-listagem tbody tr:hover > * {
        background: #f7f5ef;
    }

    .paginacao-link:hover {
        border-color: var(--color-primary);
        background: var(--color-primary-soft);
    }

    .grupo > summary:hover,
    .subdetalhes > summary:hover,
    .processo > summary:hover {
        color: var(--color-primary);
    }
}

/* Responsividade */

@media (max-width: 64rem) {
    .filtros-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .arvore li {
        grid-template-columns: auto minmax(0, 1fr) auto;
    }

    .arvore .badge-risco {
        grid-column: 1;
        grid-row: 1 / span 2;
    }

    .arvore strong {
        grid-column: 2;
        grid-row: 1;
    }

    .arvore .nivel-tag {
        grid-column: 3;
        grid-row: 1;
    }

    .arvore .no-doc {
        grid-column: 2 / -1;
        grid-row: 2;
    }
}

@media (max-width: 52rem) {
    .container {
        width: min(100% - 1.25rem, var(--container));
    }

    .site-header {
        position: static;
    }

    .navbar-inner {
        min-height: auto;
        padding-top: var(--space-3);
        flex-direction: column;
        gap: var(--space-2);
    }

    .navbar-brand {
        min-height: 2.75rem;
    }

    .navbar-links {
        width: 100%;
        margin-inline: -0.2rem;
        overflow-x: auto;
        scrollbar-width: thin;
    }

    .navbar-links a {
        min-width: max-content;
        padding-inline: 0.7rem;
    }

    main.container {
        padding-block: var(--space-6) var(--space-8);
    }

    h1,
    .page-title {
        font-size: clamp(1.8rem, 9vw, 2.45rem);
    }

    .header-com-acao,
    .custo-estimado {
        align-items: flex-start;
        flex-direction: column;
    }

    .card {
        padding: var(--space-4);
    }

    .stats-row,
    .filtros-grid {
        grid-template-columns: 1fr;
    }

    .semaforo,
    .certidoes-grid {
        grid-template-columns: 1fr;
    }

    .form-acoes,
    .filtros-acoes,
    .acoes-flex,
    .form-confirmacao {
        align-items: stretch;
        flex-direction: column;
    }

    .form-acoes > *,
    .filtros-acoes > *,
    .acoes-flex > *,
    .form-confirmacao > * {
        width: 100%;
    }

    .form-inline {
        display: flex;
    }

    .btn-comprovante {
        width: auto;
        margin-left: 0;
    }

    .entidade-conteudo,
    .processo-corpo {
        padding-inline: var(--space-3);
    }

    .arvore {
        padding-left: 0.65rem;
    }

    .arvore li {
        margin-left: var(--recuo-mobile, 0rem);
        display: flex;
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .arvore li::before {
        left: calc(-0.65rem - var(--recuo-mobile, 0rem));
        width: calc(0.65rem + var(--recuo-mobile, 0rem));
    }

    .arvore .badge-risco {
        min-width: 0;
    }

    .arvore strong,
    .arvore .no-doc {
        width: 100%;
    }

    .arvore .no-doc {
        padding-left: 0;
    }

    .grupo > summary,
    .entidade-dossie > summary,
    .processo > summary {
        padding-inline: var(--space-3);
    }

    .footer-inner {
        padding-block: var(--space-4);
        flex-direction: column;
        gap: var(--space-1);
    }

    .footer-separator {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }

    :where(
        .btn,
        .btn-primary,
        .btn-secundario,
        .btn-outline,
        .btn-exportar,
        .btn-certidoes,
        .btn-expandir,
        .btn-certidao,
        .btn-comprovante
    ):active {
        transform: none;
    }
}

@media print {
    body {
        background: #ffffff;
    }

    .site-header,
    .footer,
    .acoes,
    .btn,
    .btn-primary,
    .btn-secundario,
    .btn-expandir,
    .btn-certidao,
    .btn-comprovante {
        display: none !important;
    }

    main.container {
        width: 100%;
        padding: 0;
    }

    .card,
    .entidade-dossie,
    .processo {
        box-shadow: none;
        break-inside: avoid;
    }

    .tabela-responsiva {
        overflow: visible;
    }

    .tabela,
    .tabela-dados,
    .tabela-listagem {
        min-width: 0;
    }
}
