:root {
    --verde: #006b45;
    --verde-escuro: #004c32;
    --vermelho: #df0016;

    --preto: #111111;
    --cinza: #5d6266;
    --cinza-medio: #a8aaac;
    --cinza-claro: #dddddd;
    --cinza-fundo: #f5f5f5;

    --branco: #ffffff;

    --largura: 1300px;
}


/* ========================================
   BASE
======================================== */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    color: var(--preto);
    background: var(--branco);

    -webkit-font-smoothing: antialiased;
}

a {
    color: inherit;
}

button,
input {
    font: inherit;
}

img {
    max-width: 100%;
}

.container {
    width: min(
        calc(100% - 48px),
        var(--largura)
    );

    margin-inline: auto;
}


/* ========================================
   CABEÇALHO
======================================== */

.topo {
    background: #ffffff;

    border-top: 1px solid #d9d9d9;
}

.topo-superior {
    min-height: 110px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    gap: 40px;
}


/* ========================================
   MARCA DO GOVERNO
======================================== */

.marca {
    display: flex;

    align-items: center;

    min-width: 270px;

    color: var(--preto);

    text-decoration: none;
}

.marca img {
    width: 58px;
    height: 72px;

    object-fit: contain;
}


/* BARRA COM AS CORES NACIONAIS */

.barra-nacional {
    width: 5px;
    height: 73px;

    margin: 0 13px;

    display: flex;
    flex-direction: column;
}

.barra-nacional i {
    display: block;

    flex: 1;
}

.barra-nacional i:nth-child(1) {
    background: var(--verde);
}

.barra-nacional i:nth-child(2) {
    background: var(--vermelho);
}

.barra-nacional i:nth-child(3) {
    background: #eeeeee;
}

.barra-nacional i:nth-child(4) {
    background: #111111;
}


/* TEXTO DA MARCA */

.marca-texto {
    display: flex;

    flex-direction: column;

    line-height: 1.12;
}

.marca-texto strong {
    font-size: 15px;

    font-weight: 500;
}

.marca-texto small {
    margin-top: 6px;

    color: var(--cinza);

    font-size: 11px;
}


/* ========================================
   LINKS INSTITUCIONAIS
======================================== */

.links-institucionais {
    display: flex;

    align-items: center;

    gap: 32px;
}

.links-institucionais a {
    color: #51565a;

    text-decoration: none;

    font-size: 14px;

    font-weight: 700;

    text-transform: uppercase;
}

.links-institucionais a:hover {
    color: var(--verde);
}

.mais {
    padding: 4px 0;

    border: 0;

    background: transparent;

    color: var(--preto);

    font-size: 22px;

    cursor: pointer;
}


/* ========================================
   MENU E PESQUISA
======================================== */

.acoes {
    min-height: 88px;

    display: flex;

    align-items: center;
    justify-content: space-between;

    border-bottom:
        1px solid var(--cinza-claro);
}

.botao-menu,
.botao-pesquisa {
    padding: 0;

    display: flex;

    align-items: center;

    gap: 13px;

    border: 0;

    background: transparent;

    color: var(--preto);

    font-size: 28px;

    font-weight: 400;

    cursor: pointer;
}


/* ÍCONE DO MENU */

.icone-menu {
    position: relative;

    width: 22px;
    height: 16px;

    display: inline-block;

    font-size: 0;

    border-top:
        2px solid var(--verde);

    border-bottom:
        2px solid var(--verde);
}

.icone-menu::after {
    content: "";

    position: absolute;

    top: 5px;
    left: 0;

    width: 22px;
    height: 2px;

    background: var(--verde);
}


/* ÍCONE DA PESQUISA */

.lupa {
    color: var(--verde);

    font-size: 27px;

    line-height: 1;
}


/* ========================================
   NAVEGAÇÃO PRINCIPAL
======================================== */

.menu-principal {
    min-height: 78px;

    display: flex;

    align-items: center;

    gap: 44px;
}

.menu-principal a {
    position: relative;

    color: var(--preto);

    text-decoration: none;

    font-size: 20px;

    font-weight: 400;
}

.menu-principal a:hover,
.menu-principal a.ativo {
    font-weight: 700;
}

.menu-principal a.ativo::after {
    content: "";

    position: absolute;

    left: 0;
    right: 0;

    bottom: -15px;

    height: 3px;

    background: var(--verde);
}


/* ========================================
   HOME — NOTÍCIA PRINCIPAL
======================================== */

.destaque {
    margin-top: 10px;
}

.imagem-destaque {
    width: 100%;

    height:
        clamp(
            360px,
            39vw,
            505px
        );

    display: block;

    overflow: hidden;

    background: #eeeeee;
}

.imagem-destaque img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    object-position: center;

    transition:
        transform .35s ease;
}

.imagem-destaque:hover img {
    transform:
        scale(1.012);
}

.conteudo-destaque {
    max-width: 970px;

    padding:
        34px 0 55px;
}

.categoria {
    margin:
        0 0 10px;

    color: var(--verde);

    font-size: 17px;

    font-weight: 700;
}

.conteudo-destaque h1 {
    margin: 0;

    font-size:
        clamp(
            38px,
            4vw,
            58px
        );

    line-height: 1.08;

    font-weight: 500;

    letter-spacing: -1.4px;
}

.resumo {
    max-width: 850px;

    margin:
        23px 0;

    font-size: 21px;

    line-height: 1.48;
}

.meta {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 10px;

    color: var(--cinza);

    font-size: 15px;
}


/* ========================================
   HOME — ÚLTIMAS NOTÍCIAS
======================================== */

.ultimas {
    padding:
        58px 0 90px;

    border-top:
        5px solid #e3e3e3;
}

.titulo-secao {
    margin-bottom: 40px;

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 30px;
}

.titulo-secao h2,
.autoridades h2 {
    margin: 0;

    font-size: 38px;

    font-weight: 500;
}

.titulo-secao > a {
    color: var(--verde);

    text-decoration: none;

    font-size: 17px;

    font-weight: 700;
}

.titulo-secao > a:hover {
    text-decoration: underline;
}


/* GRADE DE NOTÍCIAS */

.grade-noticias {
    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 45px;
}

.noticia {
    padding-top: 22px;

    border-top:
        1px solid #aaaaaa;
}

.noticia h3 {
    margin:
        10px 0 15px;

    font-size: 26px;

    line-height: 1.2;

    font-weight: 500;
}

.noticia h3 a {
    text-decoration: none;
}

.noticia h3 a:hover {
    color: var(--verde);

    text-decoration: underline;
}

.noticia > p:not(.categoria) {
    color: #333333;

    font-size: 17px;

    line-height: 1.5;
}

.noticia time {
    margin-top: 25px;

    display: block;

    color: var(--cinza);

    font-size: 14px;
}


/* ========================================
   HOME — AUTORIDADES
======================================== */

.autoridades {
    padding:
        75px 0;

    background:
        var(--cinza-fundo);
}

.grade-autoridades {
    margin-top: 40px;

    display: grid;

    grid-template-columns:
        repeat(2, 1fr);

    gap: 30px;
}

.autoridade {
    min-height: 190px;

    padding: 32px;

    display: flex;

    flex-direction: column;

    justify-content: center;

    background: #ffffff;

    border-bottom:
        5px solid var(--verde);

    text-decoration: none;

    transition:
        transform .2s ease,
        box-shadow .2s ease;
}

.autoridade:hover {
    transform:
        translateY(-3px);

    box-shadow:
        0 10px 30px
        rgba(0, 0, 0, .08);
}

.autoridade .cargo {
    color: var(--verde);

    font-weight: 700;
}

.autoridade strong {
    margin:
        12px 0 25px;

    font-size: 30px;

    font-weight: 500;
}

.autoridade span:last-child {
    font-size: 16px;
}


/* ========================================
   PÁGINAS INSTITUCIONAIS
   PRAESVOLÍ / KANZLERE
======================================== */

.pagina-autoridade {
    padding-bottom: 80px;
}


/* CABEÇALHO DA AUTORIDADE */

.cabecalho-autoridade {
    padding:
        55px 0 42px;

    border-top:
        5px solid #e3e3e3;
}

.rotulo-pagina {
    margin:
        0 0 13px;

    color: var(--verde);

    font-size: 18px;

    font-weight: 700;
}

.cabecalho-autoridade h1 {
    max-width: 950px;

    margin: 0;

    font-size:
        clamp(
            45px,
            5vw,
            68px
        );

    line-height: 1.05;

    font-weight: 500;

    letter-spacing: -1.7px;
}

.subtitulo-cargo {
    margin:
        17px 0 0;

    color: #3f4346;

    font-size: 23px;

    line-height: 1.4;
}


/* ========================================
   APRESENTAÇÃO DA AUTORIDADE
======================================== */

.apresentacao-autoridade {
    display: grid;

    grid-template-columns:
        minmax(0, 1.65fr)
        minmax(300px, .75fr);

    gap: 55px;

    align-items: start;
}


/* FOTO */

.foto-autoridade {
    width: 100%;

    min-height: 520px;

    max-height: 680px;

    display: block;

    object-fit: cover;

    object-position: center top;

    background: #eeeeee;
}


/* TEXTO */

.informacoes-autoridade {
    padding-top: 4px;
}

.informacoes-autoridade h2 {
    margin:
        0 0 20px;

    font-size: 31px;

    font-weight: 500;
}

.informacoes-autoridade p {
    margin:
        0 0 20px;

    color: #272727;

    font-size: 18px;

    line-height: 1.62;
}

.link-biografia {
    color: var(--verde);

    font-size: 17px;

    font-weight: 700;

    text-decoration: none;
}

.link-biografia:hover {
    text-decoration: underline;
}


/* ========================================
   ÁREA RESTRITA
======================================== */

.area-restrita {
    margin-top: 38px;

    padding-top: 27px;

    border-top:
        1px solid #bcbcbc;
}

.area-restrita h3 {
    margin:
        0 0 10px;

    font-size: 20px;

    font-weight: 700;
}

.area-restrita p {
    margin-bottom: 18px;

    color: var(--cinza);

    font-size: 15px;

    line-height: 1.5;
}

.botao-entrar {
    min-height: 48px;

    padding:
        0 23px;

    display: inline-flex;

    align-items: center;

    justify-content: center;

    border:
        2px solid var(--verde);

    color: var(--verde);

    background: transparent;

    text-decoration: none;

    font-size: 16px;

    font-weight: 700;

    transition:
        background .15s ease,
        color .15s ease;
}

.botao-entrar:hover {
    color: #ffffff;

    background: var(--verde);
}


/* ========================================
   PERFIL INSTITUCIONAL
======================================== */

.perfil-institucional {
    margin-top: 75px;

    padding-top: 55px;

    border-top:
        5px solid #e3e3e3;
}

.perfil-conteudo {
    max-width: 950px;
}

.perfil-conteudo h2 {
    margin:
        0 0 25px;

    font-size: 38px;

    font-weight: 500;
}

.perfil-conteudo > p:not(.rotulo-pagina) {
    max-width: 820px;

    margin:
        0 0 38px;

    font-size: 19px;

    line-height: 1.6;
}


/* FICHA */

.ficha-autoridade {
    margin: 0;

    border-top:
        1px solid #999999;
}

.ficha-autoridade > div {
    padding:
        22px 0;

    display: grid;

    grid-template-columns:
        210px 1fr;

    border-bottom:
        1px solid #cccccc;
}

.ficha-autoridade dt {
    font-weight: 700;
}

.ficha-autoridade dd {
    margin:
        0 0 7px;

    line-height: 1.45;
}

.ficha-autoridade dd:last-child {
    margin-bottom: 0;
}


/* ========================================
   PUBLICAÇÕES DA AUTORIDADE
======================================== */

.publicacoes-autoridade {
    margin-top: 75px;

    padding-top: 55px;

    border-top:
        5px solid #e3e3e3;
}

.publicacoes-autoridade > h2 {
    margin:
        0 0 40px;

    font-size: 38px;

    font-weight: 500;
}

.lista-publicacoes {
    max-width: 950px;
}

.item-publicacao {
    padding:
        30px 0;

    border-top:
        1px solid #aaaaaa;
}

.item-publicacao:first-child {
    border-top-color: #777777;
}

.item-publicacao time {
    color: var(--cinza);

    font-size: 14px;
}

.item-publicacao .tipo-publicacao {
    margin:
        9px 0;

    color: var(--verde);

    font-size: 16px;

    font-weight: 700;
}

.item-publicacao h3 {
    margin:
        7px 0 13px;

    font-size: 29px;

    line-height: 1.2;

    font-weight: 500;
}

.item-publicacao h3 a {
    text-decoration: none;
}

.item-publicacao h3 a:hover {
    color: var(--verde);

    text-decoration: underline;
}

.item-publicacao > p:not(.tipo-publicacao) {
    max-width: 820px;

    margin: 0;

    color: #333333;

    font-size: 17px;

    line-height: 1.55;
}


/* ========================================
   RODAPÉ
======================================== */

footer {
    border-top:
        1px solid #dddddd;
}

.rodape-principal {
    min-height: 180px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 40px;
}

.marca-rodape {
    display: flex;

    align-items: center;

    gap: 20px;
}

.marca-rodape img {
    width: 110px;

    height: 70px;

    object-fit: contain;
}

.marca-rodape div {
    display: flex;

    flex-direction: column;

    gap: 5px;
}

.marca-rodape strong {
    font-size: 18px;
}

.marca-rodape span {
    color: var(--cinza);

    font-size: 14px;
}

.links-rodape {
    display: flex;

    gap: 30px;
}

.links-rodape a {
    color: #444444;

    text-decoration: none;
}

.links-rodape a:hover {
    color: var(--verde);
}

.rodape-final {
    padding:
        20px 0;

    color: #ffffff;

    background: var(--preto);

    font-size: 14px;
}

/* ========================================
   REFINAMENTOS — PÁGINA DA AUTORIDADE
======================================== */

.pagina-autoridade .container {
    width: min(
        calc(100% - 90px),
        1300px
    );
}


/* TÍTULO */

.cabecalho-autoridade {
    padding:
        48px 0 36px;
}


/* FOTO + SOBRE */

.apresentacao-autoridade {
    display: grid;

    grid-template-columns:
        minmax(560px, 1.55fr)
        minmax(330px, .75fr);

    gap: 60px;

    align-items: start;
}

.foto-autoridade {
    width: 100%;

    height: auto;

    min-height: 0;
    max-height: none;

    display: block;

    object-fit: contain;

    background: #eeeeee;
}


/* TEXTO LATERAL */

.informacoes-autoridade {
    max-width: 420px;

    padding-top: 2px;
}

.informacoes-autoridade h2 {
    margin:
        0 0 20px;

    font-size: 32px;

    line-height: 1.15;

    font-weight: 500;
}

.informacoes-autoridade p {
    margin:
        0 0 18px;

    font-size: 17px;

    line-height: 1.58;
}


/* ÁREA RESTRITA */

.area-restrita {
    margin-top: 30px;

    padding-top: 24px;
}


/* PERFIL INSTITUCIONAL */

.perfil-institucional {
    margin-top: 55px;

    padding-top: 50px;
}

.perfil-conteudo {
    max-width: 1000px;
}

.perfil-conteudo > p:not(.rotulo-pagina) {
    max-width: 900px;
}


/* FICHA */

.ficha-autoridade {
    max-width: 950px;
}

.ficha-autoridade > div {
    padding:
        22px 0;

    display: grid;

    grid-template-columns:
        210px minmax(0, 1fr);

    align-items: start;

    border-bottom:
        1px solid #cccccc;
}

.ficha-autoridade dt {
    font-weight: 700;
}

.ficha-autoridade dd {
    display: block;

    margin:
        0 0 8px;

    line-height: 1.5;
}


/* PUBLICAÇÕES */

.publicacoes-autoridade {
    margin-top: 60px;

    padding-top: 50px;
}

.lista-publicacoes {
    max-width: 1000px;
}

.item-publicacao {
    padding:
        28px 0 32px;
}

.item-publicacao h3 {
    max-width: 850px;

    font-size: 30px;
}


/* ========================================
   RESPONSIVIDADE DO REFINAMENTO
======================================== */

@media (max-width: 1050px) {

    .pagina-autoridade .container {
        width: min(
            calc(100% - 48px),
            1300px
        );
    }

    .apresentacao-autoridade {
        grid-template-columns:
            minmax(0, 1.4fr)
            minmax(290px, .8fr);

        gap: 40px;
    }

}


@media (max-width: 800px) {

    .apresentacao-autoridade {
        grid-template-columns: 1fr;

        gap: 35px;
    }

    .informacoes-autoridade {
        max-width: 750px;
    }

    .foto-autoridade {
        width: 100%;
    }

}


@media (max-width: 560px) {

    .pagina-autoridade .container {
        width: min(
            calc(100% - 32px),
            1300px
        );
    }

    .perfil-institucional {
        margin-top: 45px;
    }

    .ficha-autoridade > div {
        grid-template-columns: 1fr;

        gap: 8px;
    }

}


/* ========================================
   TABLETS
======================================== */

@media (max-width: 900px) {

    .topo-superior {
        min-height: 100px;
    }


    .links-institucionais {
        display: none;
    }


    .acoes {
        min-height: 78px;
    }


    .botao-menu,
    .botao-pesquisa {
        font-size: 22px;
    }


    /* MENU MOBILE */

    .menu-principal {
        display: none;

        padding-top: 20px;

        padding-bottom: 20px;

        flex-direction: column;

        align-items: flex-start;

        gap: 0;
    }


    .menu-principal.aberto {
        display: flex;
    }


    .menu-principal a {
        width: 100%;

        padding:
            17px 0;

        border-bottom:
            1px solid #dddddd;
    }


    .menu-principal a.ativo::after {
        display: none;
    }


    /* HOME */

    .imagem-destaque {
        height: 420px;
    }


    .grade-noticias,
    .grade-autoridades {
        grid-template-columns: 1fr;
    }


    /* AUTORIDADES */

    .apresentacao-autoridade {
        grid-template-columns: 1fr;

        gap: 38px;
    }


    .informacoes-autoridade {
        max-width: 750px;
    }


    .foto-autoridade {
        min-height: 450px;
    }


    /* RODAPÉ */

    .rodape-principal {
        padding:
            40px 0;

        align-items: flex-start;

        flex-direction: column;
    }


    .links-rodape {
        flex-wrap: wrap;
    }
}


/* ========================================
   CELULARES
======================================== */

@media (max-width: 560px) {

    .container {
        width: min(
            calc(100% - 32px),
            var(--largura)
        );
    }


    /* CABEÇALHO */

    .topo-superior {
        min-height: 90px;
    }


    .marca {
        min-width: 0;
    }


    .marca img {
        width: 47px;

        height: 59px;
    }


    .barra-nacional {
        height: 59px;

        margin:
            0 10px;
    }


    .marca-texto strong {
        font-size: 13px;
    }


    .marca-texto small {
        font-size: 10px;
    }


    .acoes {
        min-height: 70px;
    }


    .botao-pesquisa span:last-child {
        display: none;
    }


    /* HOME */

    .imagem-destaque {
        min-height: 0;

        height: 270px;
    }


    .conteudo-destaque {
        padding:
            25px 0 40px;
    }


    .conteudo-destaque h1 {
        font-size: 35px;
    }


    .resumo {
        font-size: 18px;
    }


    .ultimas {
        padding:
            45px 0 60px;
    }


    .titulo-secao {
        align-items: flex-start;

        flex-direction: column;
    }


    .titulo-secao h2,
    .autoridades h2,
    .publicacoes-autoridade > h2 {
        font-size: 31px;
    }


    .autoridade {
        padding: 25px;
    }


    .autoridade strong {
        font-size: 25px;
    }


    /* PÁGINA DA AUTORIDADE */

    .cabecalho-autoridade {
        padding:
            38px 0 30px;
    }


    .cabecalho-autoridade h1 {
        font-size: 42px;
    }


    .subtitulo-cargo {
        font-size: 19px;
    }


    .foto-autoridade {
        min-height: 0;

        height: 410px;
    }


    .informacoes-autoridade h2 {
        font-size: 27px;
    }


    .informacoes-autoridade p {
        font-size: 17px;
    }


    /* PERFIL INSTITUCIONAL */

    .perfil-institucional {
        margin-top: 55px;

        padding-top: 42px;
    }


    .perfil-conteudo h2 {
        font-size: 31px;
    }


    .perfil-conteudo > p:not(.rotulo-pagina) {
        font-size: 17px;
    }


    .ficha-autoridade > div {
        grid-template-columns: 1fr;

        gap: 9px;
    }


    /* PUBLICAÇÕES */

    .publicacoes-autoridade {
        margin-top: 55px;

        padding-top: 42px;
    }


    .item-publicacao h3 {
        font-size: 25px;
    }


    /* RODAPÉ */

    .marca-rodape img {
        width: 90px;

        height: 60px;
    }
}

/* ========================================
   LOGIN — ÁREA RESERVADA
======================================== */

.pagina-login {
    min-height: 100vh;
}

.login-principal {
    padding:
        75px 0 100px;

    border-top:
        5px solid #e3e3e3;
}

.login-grid {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        minmax(380px, 520px);

    gap: 100px;

    align-items: start;
}


/* APRESENTAÇÃO */

.login-apresentacao {
    max-width: 650px;
}

.login-apresentacao h1 {
    margin:
        0 0 28px;

    font-size:
        clamp(
            46px,
            5vw,
            68px
        );

    line-height: 1.05;

    font-weight: 500;

    letter-spacing: -1.7px;
}

.login-apresentacao > p:not(.rotulo-pagina) {
    max-width: 600px;

    font-size: 20px;

    line-height: 1.55;
}

.login-aviso {
    margin-top: 35px;

    padding-top: 25px;

    border-top:
        1px solid #cccccc;

    color: var(--cinza);
}


/* CAIXA */

.login-caixa {
    padding: 38px;

    background:
        var(--cinza-fundo);

    border-top:
        5px solid var(--verde);
}

.login-caixa h2 {
    margin:
        0 0 10px;

    font-size: 32px;

    font-weight: 500;
}

.login-instrucao {
    margin:
        0 0 32px;

    color: var(--cinza);

    font-size: 16px;

    line-height: 1.5;
}


/* CAMPOS */

.campo-login {
    margin-bottom: 24px;
}

.campo-login label {
    margin-bottom: 9px;

    display: block;

    font-size: 16px;

    font-weight: 700;
}

.campo-login input {
    width: 100%;

    height: 52px;

    padding:
        0 14px;

    border:
        1px solid #888888;

    border-radius: 0;

    outline: none;

    color: var(--preto);

    background: #ffffff;

    font-size: 17px;
}

.campo-login input:focus {
    border:
        2px solid var(--verde);
}


/* SENHA */

.campo-senha {
    position: relative;
}

.campo-senha input {
    padding-right: 85px;
}

.mostrar-senha {
    position: absolute;

    top: 50%;
    right: 12px;

    transform:
        translateY(-50%);

    padding: 5px;

    border: 0;

    color: var(--verde);

    background: transparent;

    font-size: 14px;

    font-weight: 700;

    cursor: pointer;
}


/* MENSAGENS */

.mensagem-login {
    min-height: 0;

    margin-bottom: 18px;

    font-size: 15px;

    line-height: 1.45;
}

.mensagem-login:empty {
    display: none;
}

.mensagem-login.erro {
    padding: 13px 15px;

    color: #8b0000;

    background: #f7e6e6;

    border-left:
        4px solid #a80000;
}

.mensagem-login.sucesso {
    padding: 13px 15px;

    color: var(--verde-escuro);

    background: #e5f1ec;

    border-left:
        4px solid var(--verde);
}


/* BOTÃO */

.botao-login {
    width: 100%;

    min-height: 52px;

    padding:
        0 25px;

    border:
        2px solid var(--verde);

    color: #ffffff;

    background: var(--verde);

    font-size: 17px;

    font-weight: 700;

    cursor: pointer;

    transition:
        background .15s ease,
        border-color .15s ease;
}

.botao-login:hover {
    background:
        var(--verde-escuro);

    border-color:
        var(--verde-escuro);
}

.botao-login:disabled {
    opacity: .65;

    cursor: wait;
}


/* SEGURANÇA */

.login-seguranca {
    margin-top: 30px;

    padding-top: 23px;

    border-top:
        1px solid #cccccc;
}

.login-seguranca strong {
    font-size: 15px;
}

.login-seguranca p {
    margin:
        7px 0 0;

    color: var(--cinza);

    font-size: 14px;

    line-height: 1.5;
}


/* RESPONSIVO */

@media (max-width: 900px) {

    .login-grid {
        grid-template-columns: 1fr;

        gap: 50px;
    }

    .login-caixa {
        max-width: 600px;
    }

}


@media (max-width: 560px) {

    .login-principal {
        padding:
            45px 0 70px;
    }

    .login-apresentacao h1 {
        font-size: 42px;
    }

    .login-apresentacao > p:not(.rotulo-pagina) {
        font-size: 18px;
    }

    .login-caixa {
        padding:
            28px 22px;
    }

}

/* ========================================
   PAINEL INSTITUCIONAL
======================================== */

.pagina-painel {
    min-height: 100vh;

    background: #ffffff;
}


/* TOPO */

.painel-topo-acoes {
    display: flex;

    align-items: center;

    gap: 25px;
}

.link-ver-pagina {
    color: var(--verde);

    font-size: 15px;

    font-weight: 700;

    text-decoration: none;
}

.link-ver-pagina:hover {
    text-decoration: underline;
}

.botao-sair {
    min-height: 42px;

    padding: 0 20px;

    border:
        1px solid var(--preto);

    color: var(--preto);

    background: transparent;

    font-weight: 700;

    cursor: pointer;
}

.botao-sair:hover {
    color: #ffffff;

    background: var(--preto);
}


/* PRINCIPAL */

.painel-principal {
    min-height: 650px;

    padding:
        60px 0 100px;

    border-top:
        5px solid #e3e3e3;
}

.carregando-painel {
    padding:
        60px 0;

    color: var(--cinza);

    font-size: 18px;
}


/* CABEÇALHO */

.cabecalho-painel {
    max-width: 900px;

    margin-bottom: 55px;
}

.cabecalho-painel h1 {
    margin:
        0 0 15px;

    font-size:
        clamp(
            43px,
            5vw,
            64px
        );

    line-height: 1.05;

    font-weight: 500;

    letter-spacing: -1.5px;
}

.cabecalho-painel > p:last-child {
    margin:
        20px 0 0;

    color: var(--cinza);

    font-size: 18px;
}


/* LAYOUT */

.painel-layout {
    display: grid;

    grid-template-columns:
        minmax(0, 1.45fr)
        minmax(330px, .75fr);

    gap: 70px;

    align-items: start;
}


/* ========================================
   EDITOR
======================================== */

.editor-publicacao {
    padding-top: 30px;

    border-top:
        5px solid var(--verde);
}

.editor-cabecalho {
    margin-bottom: 35px;

    display: flex;

    align-items: flex-start;

    justify-content: space-between;

    gap: 25px;
}

.editor-cabecalho h2 {
    margin: 0;

    font-size: 34px;

    font-weight: 500;
}

.botao-cancelar-edicao {
    padding: 8px 0;

    border: 0;

    color: var(--verde);

    background: transparent;

    font-weight: 700;

    cursor: pointer;
}

.botao-cancelar-edicao:hover {
    text-decoration: underline;
}


/* CAMPOS */

.campo-painel {
    margin-bottom: 25px;
}

.campo-painel label {
    margin-bottom: 9px;

    display: block;

    font-size: 16px;

    font-weight: 700;
}

.campo-painel input,
.campo-painel select,
.campo-painel textarea {
    width: 100%;

    padding:
        12px 14px;

    border:
        1px solid #888888;

    border-radius: 0;

    outline: none;

    color: var(--preto);

    background: #ffffff;

    font-family:
        Arial,
        Helvetica,
        sans-serif;

    font-size: 16px;
}

.campo-painel input,
.campo-painel select {
    min-height: 50px;
}

.campo-painel textarea {
    min-height: 300px;

    line-height: 1.55;

    resize: vertical;
}

.campo-painel input:focus,
.campo-painel select:focus,
.campo-painel textarea:focus {
    border:
        2px solid var(--verde);
}

.campo-painel small {
    margin-top: 7px;

    display: block;

    color: var(--cinza);

    font-size: 13px;

    line-height: 1.4;
}


/* SALVAR */

.botao-salvar-publicacao {
    min-height: 52px;

    padding:
        0 28px;

    border:
        2px solid var(--verde);

    color: #ffffff;

    background: var(--verde);

    font-size: 16px;

    font-weight: 700;

    cursor: pointer;
}

.botao-salvar-publicacao:hover {
    background:
        var(--verde-escuro);

    border-color:
        var(--verde-escuro);
}

.botao-salvar-publicacao:disabled {
    opacity: .6;

    cursor: wait;
}


/* MENSAGENS */

.mensagem-painel {
    margin-bottom: 20px;

    font-size: 15px;

    line-height: 1.45;
}

.mensagem-painel:empty {
    display: none;
}

.mensagem-painel.sucesso {
    padding: 13px 15px;

    color: var(--verde-escuro);

    background: #e5f1ec;

    border-left:
        4px solid var(--verde);
}

.mensagem-painel.erro {
    padding: 13px 15px;

    color: #8b0000;

    background: #f7e6e6;

    border-left:
        4px solid #a80000;
}


/* ========================================
   MINHAS PUBLICAÇÕES
======================================== */

.minhas-publicacoes {
    padding-top: 30px;

    border-top:
        5px solid #dddddd;
}

.minhas-publicacoes-cabecalho {
    margin-bottom: 25px;
}

.minhas-publicacoes h2 {
    margin: 0;

    font-size: 29px;

    font-weight: 500;
}

.estado-lista {
    color: var(--cinza);

    line-height: 1.5;
}

.estado-lista.erro {
    color: #8b0000;
}


/* CARTÃO */

.cartao-publicacao-painel {
    padding:
        24px 0;

    border-top:
        1px solid #bcbcbc;
}

.cartao-publicacao-meta {
    margin-bottom: 10px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 10px;

    color: var(--cinza);

    font-size: 13px;
}

.status-publicacao {
    padding:
        4px 8px;

    font-size: 12px;

    font-weight: 700;

    text-transform: uppercase;
}

.status-publicacao.publicado {
    color: var(--verde-escuro);

    background: #e5f1ec;
}

.status-publicacao.rascunho {
    color: #555555;

    background: #eeeeee;
}

.categoria-painel {
    margin:
        0 0 7px;

    color: var(--verde);

    font-size: 14px;

    font-weight: 700;
}

.cartao-publicacao-painel h3 {
    margin:
        0 0 17px;

    font-size: 20px;

    line-height: 1.3;

    font-weight: 500;
}


/* EDITAR / EXCLUIR */

.acoes-publicacao {
    display: flex;

    gap: 18px;
}

.acoes-publicacao button {
    padding: 0;

    border: 0;

    background: transparent;

    font-size: 14px;

    font-weight: 700;

    cursor: pointer;
}

.editar-publicacao {
    color: var(--verde);
}

.excluir-publicacao {
    color: #8b0000;
}

.acoes-publicacao button:hover {
    text-decoration: underline;
}


/* ========================================
   PAINEL RESPONSIVO
======================================== */

@media (max-width: 1000px) {

    .painel-layout {
        grid-template-columns: 1fr;

        gap: 60px;
    }

    .minhas-publicacoes {
        max-width: 750px;
    }

}


@media (max-width: 650px) {

    .painel-topo-acoes {
        gap: 15px;
    }

    .link-ver-pagina {
        display: none;
    }

    .painel-principal {
        padding:
            45px 0 70px;
    }

    .cabecalho-painel {
        margin-bottom: 40px;
    }

    .cabecalho-painel h1 {
        font-size: 40px;
    }

    .editor-cabecalho {
        flex-direction: column;
    }

    .campo-painel textarea {
        min-height: 240px;
    }

}

/* ========================================
   CORREÇÕES CONSOLIDADAS — 16/09/2026
   Governo da União Sinética
======================================== */

/* Mantém retratos institucionais proporcionais em telas menores */
@media (max-width: 900px) {
    .foto-autoridade {
        width: 100%;
        height: auto;
        min-height: 0;
        max-height: none;
        object-fit: contain;
        object-position: center top;
    }
}

/* Ajustes definitivos do painel institucional */
.pagina-painel .container {
    width: min(calc(100% - 80px), 1300px);
}

.pagina-painel .topo-superior {
    min-height: 105px;
}

.painel-principal {
    width: 100%;
}

.conteudo-painel[hidden],
.carregando-painel[hidden] {
    display: none !important;
}

.editor-publicacao,
.minhas-publicacoes {
    min-width: 0;
}

#formPublicacao {
    width: 100%;
}

.campo-painel input,
.campo-painel select,
.campo-painel textarea {
    display: block;
    width: 100%;
}

@media (max-width: 1000px) {
    .pagina-painel .container {
        width: min(calc(100% - 48px), 1300px);
    }
}

@media (max-width: 560px) {
    .pagina-painel .container {
        width: min(calc(100% - 32px), 1300px);
    }

    .painel-topo-acoes {
        margin-left: auto;
    }
}
/* ========================================
   FAÇA PARTE DA UNIÃO
======================================== */

.pagina-ingresso {
    background: #ffffff;
}


/* ========================================
   CABEÇALHO DA PÁGINA
======================================== */

.cabecalho-ingresso {
    padding: 75px 0 65px;
    border-top: 5px solid #e3e3e3;
    background: #ffffff;
}

.cabecalho-ingresso .container {
    max-width: 1300px;
}

.cabecalho-ingresso h1 {
    max-width: 900px;
    margin: 0;
    font-size: clamp(48px, 6vw, 76px);
    line-height: 1.02;
    font-weight: 500;
    letter-spacing: -2px;
}

.introducao-ingresso {
    max-width: 760px;
    margin: 28px 0 0;
    color: var(--cinza);
    font-size: 20px;
    line-height: 1.6;
}


/* ========================================
   ÁREA DO FORMULÁRIO
======================================== */

.formulario-ingresso-secao {
    padding: 25px 0 110px;
}

.formulario-ingresso {
    width: min(100%, 920px);
    padding-top: 32px;
    border-top: 6px solid var(--verde);
}

.formulario-ingresso h2 {
    margin: 0 0 42px;
    font-size: 38px;
    line-height: 1.15;
    font-weight: 500;
    letter-spacing: -0.5px;
}


/* ========================================
   CAMPOS
======================================== */

.campo-ingresso {
    margin: 0 0 32px;
}

.campo-ingresso label,
.campo-ingresso legend {
    display: block;
    margin-bottom: 10px;
    color: var(--preto);
    font-size: 16px;
    font-weight: 700;
}

.campo-ingresso input[type="text"],
.campo-ingresso input[type="date"] {
    display: block;
    width: 100%;
    min-height: 56px;
    padding: 13px 16px;
    border: 1px solid #777;
    border-radius: 0;
    outline: none;
    color: var(--preto);
    background: #ffffff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease;
}

.campo-ingresso input[type="text"]:focus,
.campo-ingresso input[type="date"]:focus {
    border: 2px solid var(--verde);
    box-shadow: 0 0 0 3px rgba(0, 107, 69, 0.08);
}

.campo-ingresso small {
    display: block;
    margin-top: 8px;
    color: var(--cinza);
    font-size: 13px;
    line-height: 1.5;
}


/* ========================================
   ESCOLHA DA REPÚBLICA
======================================== */

.republicas-ingresso {
    padding: 0;
    border: 0;
}

.republicas-ingresso legend {
    margin-bottom: 14px;
}

.opcoes-republica {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.cartao-republica {
    position: relative;
    min-height: 145px;
    margin: 0 !important;
    padding: 25px 24px;
    display: flex !important;
    align-items: flex-start;
    gap: 16px;
    border: 2px solid #d0d0d0;
    background: #ffffff;
    cursor: pointer;
    transition:
        border-color 0.15s ease,
        background 0.15s ease,
        transform 0.15s ease;
}

.cartao-republica:hover {
    border-color: var(--verde);
    background: #f7faf8;
}

.cartao-republica:has(input:checked) {
    border-color: var(--verde);
    background: #edf6f2;
}

.cartao-republica input[type="radio"] {
    width: 21px;
    height: 21px;
    margin: 3px 0 0;
    flex: 0 0 auto;
    accent-color: var(--verde);
}

.cartao-republica > span {
    display: flex;
    flex-direction: column;
}

.cartao-republica strong {
    color: var(--preto);
    font-size: 23px;
    line-height: 1.2;
    font-weight: 500;
}

.cartao-republica small {
    margin-top: 9px;
    color: var(--cinza);
    font-size: 14px;
    line-height: 1.45;
}


/* ========================================
   PRIVACIDADE
======================================== */

.aviso-privacidade {
    max-width: 700px;
    margin: 38px 0 25px;
    padding: 18px 20px;
    border-left: 4px solid var(--verde);
    color: #454545;
    background: #f3f5f4;
    font-size: 14px;
    line-height: 1.55;
}


/* ========================================
   BOTÃO
======================================== */

.botao-solicitar-ingresso {
    min-height: 56px;
    padding: 0 32px;
    border: 2px solid var(--verde);
    border-radius: 0;
    color: #ffffff;
    background: var(--verde);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition:
        background 0.15s ease,
        border-color 0.15s ease;
}

.botao-solicitar-ingresso:hover {
    border-color: var(--verde-escuro);
    background: var(--verde-escuro);
}

.botao-solicitar-ingresso:disabled {
    opacity: 0.6;
    cursor: wait;
}


/* ========================================
   CONFIRMAÇÃO DO INGRESSO
======================================== */

.confirmacao-ingresso {
    max-width: 800px;
}

.confirmacao-ingresso[hidden] {
    display: none !important;
}

#areaFormularioIngresso[hidden] {
    display: none !important;
}

.confirmacao-ingresso h2 {
    max-width: 700px;
    margin: 0 0 22px;
    font-size: clamp(38px, 5vw, 55px);
    line-height: 1.08;
    font-weight: 500;
    letter-spacing: -1px;
}

.confirmacao-ingresso > p {
    max-width: 650px;
    color: var(--cinza);
    font-size: 18px;
    line-height: 1.6;
}


/* ========================================
   PROTOCOLO
======================================== */

.protocolo-ingresso {
    margin: 42px 0;
    padding: 28px 30px;
    border-left: 6px solid var(--verde);
    background: #f2f6f4;
}

.protocolo-ingresso span {
    display: block;
    margin-bottom: 8px;
    color: var(--verde);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
}

.protocolo-ingresso strong {
    display: block;
    color: var(--preto);
    font-size: clamp(25px, 4vw, 38px);
    line-height: 1.2;
    font-weight: 500;
    letter-spacing: 1px;
}


/* ========================================
   RESUMO DA SOLICITAÇÃO
======================================== */

.resumo-ingresso {
    margin: 0 0 35px;
    border-top: 1px solid #bdbdbd;
}

.resumo-ingresso > div {
    padding: 18px 0;
    display: grid;
    grid-template-columns: 190px 1fr;
    gap: 25px;
    border-bottom: 1px solid #d6d6d6;
}

.resumo-ingresso dt {
    color: var(--cinza);
    font-size: 14px;
    font-weight: 700;
}

.resumo-ingresso dd {
    margin: 0;
    color: var(--preto);
    font-size: 16px;
}

.guardar-protocolo {
    margin-bottom: 30px !important;
    font-size: 14px !important;
}


/* ========================================
   VOLTAR AO PORTAL
======================================== */

.botao-voltar-portal {
    min-height: 52px;
    padding: 0 27px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--verde);
    color: var(--verde);
    background: #ffffff;
    font-size: 15px;
    font-weight: 700;
    text-decoration: none;
}

.botao-voltar-portal:hover {
    color: #ffffff;
    background: var(--verde);
}


/* ========================================
   MENSAGEM DE ERRO
======================================== */

.pagina-ingresso .mensagem-painel {
    max-width: 700px;
    margin: 0 0 22px;
}

.pagina-ingresso .mensagem-painel:empty {
    display: none;
}

.pagina-ingresso .mensagem-painel.erro {
    padding: 14px 16px;
    border-left: 4px solid #a80000;
    color: #850000;
    background: #f7e7e7;
    font-size: 14px;
    line-height: 1.5;
}


/* ========================================
   RESPONSIVIDADE
======================================== */

@media (max-width: 800px) {

    .cabecalho-ingresso {
        padding: 55px 0 50px;
    }

    .cabecalho-ingresso h1 {
        font-size: 50px;
        letter-spacing: -1px;
    }

    .introducao-ingresso {
        font-size: 18px;
    }

    .formulario-ingresso-secao {
        padding-bottom: 80px;
    }

    .opcoes-republica {
        grid-template-columns: 1fr;
    }

    .cartao-republica {
        min-height: 120px;
    }

}


@media (max-width: 560px) {

    .cabecalho-ingresso {
        padding: 42px 0;
    }

    .cabecalho-ingresso h1 {
        font-size: 42px;
    }

    .introducao-ingresso {
        margin-top: 20px;
        font-size: 16px;
    }

    .formulario-ingresso {
        padding-top: 25px;
    }

    .formulario-ingresso h2 {
        margin-bottom: 32px;
        font-size: 31px;
    }

    .cartao-republica {
        padding: 21px 19px;
    }

    .protocolo-ingresso {
        padding: 23px 20px;
    }

    .resumo-ingresso > div {
        grid-template-columns: 1fr;
        gap: 6px;
    }

    .botao-solicitar-ingresso {
        width: 100%;
    }

}

/* ============================================================
   TERMINAL DE CIDADANIA — UNIÃO SINÉTICA
   Sistema interno de análise de solicitações
============================================================ */

.pagina-terminal-cidadania {
    min-height: 100vh;
    margin: 0;
    display: flex;
    flex-direction: column;
    color: #17201c;
    background:
        linear-gradient(
            rgba(24, 34, 29, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(24, 34, 29, 0.025) 1px,
            transparent 1px
        ),
        #9a9c91;
    background-size: 4px 4px;
    font-family: "Courier New", Courier, monospace;
}


/* ============================================================
   TOPO DO TERMINAL
============================================================ */

.terminal-topo {
    min-height: 86px;
    padding: 13px 28px;
    display: grid;
    grid-template-columns: 1fr auto auto;
    align-items: center;
    gap: 35px;
    border-top: 5px solid #293d32;
    border-bottom: 3px solid #293d32;
    color: #e7e8d8;
    background: #34473c;
    box-shadow:
        0 4px 0 rgba(0, 0, 0, 0.18),
        inset 0 -1px rgba(255, 255, 255, 0.06);
}

.terminal-marca {
    display: flex;
    align-items: center;
    gap: 15px;
}

.terminal-marca img {
    width: 48px;
    height: 58px;
    object-fit: contain;
    filter: sepia(0.15) contrast(0.9);
}

.terminal-marca > div {
    display: flex;
    flex-direction: column;
}

.terminal-marca strong {
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: 1.2px;
}

.terminal-marca span {
    margin-top: 5px;
    color: #bec6b9;
    font-size: 11px;
    letter-spacing: 0.5px;
}


/* ============================================================
   INDICADOR DO SISTEMA
============================================================ */

.terminal-status {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #cfd5c9;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 1px;
}

.terminal-luz {
    width: 9px;
    height: 9px;
    display: block;
    border-radius: 50%;
    background: #9fbd79;
    box-shadow:
        0 0 0 2px rgba(0, 0, 0, 0.2),
        0 0 8px rgba(159, 189, 121, 0.6);
}


/* ============================================================
   AÇÕES SUPERIORES
============================================================ */

.terminal-acoes {
    display: flex;
    align-items: center;
    gap: 18px;
}

.terminal-acoes a,
.terminal-acoes button {
    border: 0;
    color: #e2e4d7;
    background: transparent;
    font-family: inherit;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-decoration: none;
    cursor: pointer;
}

.terminal-acoes a:hover,
.terminal-acoes button:hover {
    color: #ffffff;
    text-decoration: underline;
}


/* ============================================================
   CONTEÚDO
============================================================ */

.terminal-principal {
    flex: 1;
    padding: 25px;
}

.terminal-carregando {
    max-width: 1450px;
    margin: 70px auto;
    padding: 25px;
    border: 2px solid #405047;
    color: #d9dccf;
    background: #35453d;
    font-size: 13px;
    letter-spacing: 1px;
}

.terminal-carregando[hidden],
.terminal-sistema[hidden],
.documento-area[hidden],
.terminal-sem-selecao[hidden],
.terminal-decisao[hidden],
.carimbo-documento[hidden] {
    display: none !important;
}

.terminal-sistema {
    width: min(100%, 1500px);
    margin: 0 auto;
    border: 3px solid #39463f;
    background: #c5c5b8;
    box-shadow:
        0 5px 15px rgba(0, 0, 0, 0.25),
        inset 0 0 0 1px rgba(255, 255, 255, 0.3);
}


/* ============================================================
   BARRA DE INFORMAÇÕES
============================================================ */

.terminal-barra {
    min-height: 66px;
    padding: 11px 20px;
    display: grid;
    grid-template-columns: 1.5fr 1fr 0.6fr;
    gap: 35px;
    align-items: center;
    border-bottom: 2px solid #566158;
    background: #b2b3a7;
}

.terminal-barra > div {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.terminal-barra span {
    margin-bottom: 4px;
    color: #596158;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.2px;
}

.terminal-barra strong {
    overflow: hidden;
    color: #202923;
    font-size: 12px;
    letter-spacing: 0.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}


/* ============================================================
   GRID PRINCIPAL
============================================================ */

.terminal-grade {
    min-height: 720px;
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);
}


/* ============================================================
   FILA / ARQUIVO
============================================================ */

.terminal-fila {
    min-width: 0;
    border-right: 3px solid #596159;
    background: #aeb0a5;
}

.terminal-titulo-secao {
    padding: 18px 20px 16px;
    border-bottom: 2px solid #777d75;
}

.terminal-titulo-secao > span {
    display: block;
    margin-bottom: 4px;
    color: #62685f;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1.5px;
}

.terminal-titulo-secao h1,
.terminal-titulo-secao h2 {
    margin: 0;
    color: #202823;
    font-family: "Courier New", Courier, monospace;
    font-size: 21px;
    line-height: 1.2;
    font-weight: 700;
}


/* ============================================================
   CONTADORES / FILTROS
============================================================ */

.terminal-contadores {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border-bottom: 2px solid #737970;
}

.filtro-solicitacao {
    min-height: 62px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    border: 0;
    border-right: 1px solid #898e86;
    border-bottom: 1px solid #898e86;
    color: #353c37;
    background: #bfc0b5;
    font-family: inherit;
    cursor: pointer;
}

.filtro-solicitacao:nth-child(2n) {
    border-right: 0;
}

.filtro-solicitacao span {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

.filtro-solicitacao strong {
    font-size: 19px;
    font-weight: 700;
}

.filtro-solicitacao:hover {
    background: #cacbc0;
}

.filtro-solicitacao.ativo {
    color: #eef0df;
    background: #45594d;
    box-shadow: inset 5px 0 0 #a5b781;
}


/* ============================================================
   LISTA DE REQUERENTES
============================================================ */

.terminal-lista {
    max-height: 550px;
    overflow-y: auto;
    scrollbar-color: #657067 #9fa297;
    scrollbar-width: thin;
}

.terminal-item-solicitacao {
    position: relative;
    width: 100%;
    min-height: 94px;
    padding: 14px 18px 13px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    border: 0;
    border-bottom: 1px solid #7f857d;
    color: #29312c;
    background: #b8baaf;
    font-family: inherit;
    text-align: left;
    cursor: pointer;
}

.terminal-item-solicitacao:hover {
    background: #c5c7bc;
}

.terminal-item-solicitacao.selecionado {
    padding-left: 23px;
    background: #e0dfcf;
    box-shadow: inset 6px 0 0 #344d3e;
}

.terminal-item-protocolo {
    margin-bottom: 5px;
    color: #666c65;
    font-size: 9px;
    letter-spacing: 0.5px;
}

.terminal-item-solicitacao strong {
    max-width: calc(100% - 75px);
    overflow: hidden;
    font-size: 14px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.terminal-item-republica {
    margin-top: 5px;
    color: #5d645e;
    font-size: 10px;
}

.terminal-item-status {
    position: absolute;
    top: 16px;
    right: 13px;
    padding: 4px 6px;
    border: 1px solid #767c75;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
}

.terminal-item-status.pendente {
    color: #625d34;
    background: #d7d0a3;
}

.terminal-item-status.aprovado {
    color: #29442f;
    background: #b9c9ae;
}

.terminal-item-status.recusado {
    color: #6a3434;
    background: #d0adab;
}


/* ============================================================
   ARQUIVO VAZIO
============================================================ */

.terminal-sem-registros {
    min-height: 150px;
    padding: 35px 20px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    color: #596059;
    font-size: 11px;
    line-height: 1.6;
    text-align: center;
}

.terminal-sem-registros strong {
    margin-bottom: 5px;
    color: #343c36;
    letter-spacing: 1px;
}

.terminal-sem-registros.erro {
    color: #713d3b;
}


/* ============================================================
   ÁREA DE ANÁLISE
============================================================ */

.terminal-analise {
    min-width: 0;
    padding-bottom: 30px;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(60, 70, 63, 0.025) 0,
            rgba(60, 70, 63, 0.025) 1px,
            transparent 1px,
            transparent 4px
        ),
        #d2d2c5;
}

.terminal-analise > .terminal-titulo-secao {
    background: #c0c1b6;
}

.terminal-sem-selecao {
    min-height: 580px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #6a7069;
    text-align: center;
}

.terminal-sem-selecao strong {
    margin-bottom: 8px;
    font-size: 14px;
    letter-spacing: 1px;
}

.terminal-sem-selecao span {
    font-size: 11px;
}


/* ============================================================
   MESA / DOCUMENTO
============================================================ */

.documento-area {
    padding: 38px 45px 10px;
}

.identidade-sinetica {
    position: relative;
    width: min(100%, 780px);
    min-height: 420px;
    margin: 0 auto;
    overflow: hidden;
    border: 1px solid #86877e;
    border-radius: 12px;
    color: #20241f;
    background:
        radial-gradient(
            circle at 20% 15%,
            rgba(255, 255, 255, 0.7),
            transparent 25%
        ),
        repeating-linear-gradient(
            0deg,
            rgba(40, 45, 40, 0.018) 0,
            rgba(40, 45, 40, 0.018) 1px,
            transparent 1px,
            transparent 3px
        ),
        #e4e2d4;
    box-shadow:
        0 9px 20px rgba(42, 45, 40, 0.28),
        inset 0 0 18px rgba(64, 67, 59, 0.08);
    transform: rotate(-0.3deg);
}


/* ============================================================
   CABEÇALHO DA IDENTIDADE
============================================================ */

.identidade-cabecalho {
    min-height: 88px;
    padding: 13px 22px;
    display: grid;
    grid-template-columns: 60px 1fr auto;
    gap: 14px;
    align-items: center;
    color: #e5e4d4;
    background:
        repeating-linear-gradient(
            0deg,
            rgba(255, 255, 255, 0.025) 0,
            rgba(255, 255, 255, 0.025) 1px,
            transparent 1px,
            transparent 4px
        ),
        #263c30;
}

.identidade-cabecalho img {
    width: 52px;
    height: 60px;
    object-fit: contain;
}

.identidade-cabecalho-texto {
    display: flex;
    flex-direction: column;
}

.identidade-cabecalho-texto strong {
    margin-bottom: 7px;
    font-size: 16px;
    line-height: 1.1;
    letter-spacing: 1px;
}

.identidade-cabecalho-texto span {
    margin-top: 2px;
    color: #c9cbbc;
    font-size: 9px;
    letter-spacing: 0.8px;
}

.identidade-estrelas {
    min-width: 76px;
    color: #e1dfcf;
    font-size: 23px;
    letter-spacing: 4px;
    text-align: center;
}

.identidade-estrelas small {
    margin-top: 2px;
    display: block;
    font-size: 9px;
    letter-spacing: 1px;
}


/* ============================================================
   CORPO DA IDENTIDADE
============================================================ */

.identidade-corpo {
    display: grid;
    grid-template-columns: 17px minmax(0, 1fr);
}

.identidade-faixa {
    display: grid;
    grid-template-rows: repeat(4, 1fr);
}

.identidade-faixa i:nth-child(1) {
    background: #246346;
}

.identidade-faixa i:nth-child(2) {
    background: #a52f35;
}

.identidade-faixa i:nth-child(3) {
    background: #e5e1d3;
}

.identidade-faixa i:nth-child(4) {
    background: #282a27;
}

.identidade-dados {
    padding: 18px 22px 21px;
}

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

.identidade-campo > span {
    margin-bottom: 5px;
    display: block;
    color: #565c54;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.5px;
}

.identidade-campo > strong {
    min-height: 42px;
    padding: 8px 11px;
    display: flex;
    align-items: center;
    border: 1px solid #919289;
    border-radius: 7px;
    overflow: hidden;
    color: #1c211d;
    background: rgba(247, 245, 232, 0.65);
    font-size: 17px;
    line-height: 1.2;
    font-weight: 700;
    text-overflow: ellipsis;
}

.identidade-nome {
    margin-bottom: 15px;
}

.identidade-nome > strong {
    min-height: 48px;
    font-size: 21px;
}

.identidade-grade {
    display: grid;
    grid-template-columns: 185px minmax(0, 1fr);
    gap: 20px;
}


/* ============================================================
   FOTO PROVISÓRIA
============================================================ */

.identidade-foto {
    min-height: 215px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid #878980;
    border-radius: 8px;
    background:
        repeating-linear-gradient(
            45deg,
            #d4d2c5,
            #d4d2c5 5px,
            #ceccc0 5px,
            #ceccc0 10px
        );
}

.silhueta-documento {
    width: 92px;
    height: 115px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #71756e;
    color: #72766f;
    background: rgba(233, 231, 217, 0.6);
    font-size: 42px;
}

.identidade-foto > span {
    margin-top: 10px;
    color: #666b64;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1px;
}


/* ============================================================
   CAMPOS DIREITOS
============================================================ */

.identidade-informacoes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 14px;
}

.identidade-informacoes .identidade-campo > strong {
    font-size: 14px;
}

.identidade-numero {
    grid-column: 1 / -1;
}

.identidade-numero > strong {
    color: #9a3035;
    font-size: 18px !important;
    letter-spacing: 1.2px;
}


/* ============================================================
   FICHA ABAIXO DO DOCUMENTO
============================================================ */

.terminal-ficha {
    width: min(100%, 780px);
    margin: 28px auto 0;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 2px solid #737a72;
    border-bottom: 2px solid #737a72;
    background: #bfc1b5;
}

.terminal-ficha > div {
    min-width: 0;
    padding: 13px 17px;
    border-right: 1px solid #8d928a;
}

.terminal-ficha > div:last-child {
    border-right: 0;
}

.terminal-ficha span {
    margin-bottom: 5px;
    display: block;
    color: #626961;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1px;
}

.terminal-ficha strong {
    display: block;
    overflow: hidden;
    color: #2c342e;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ficha-status.aprovado {
    color: #31563a;
}

.ficha-status.recusado {
    color: #7a3838;
}


/* ============================================================
   MENSAGENS
============================================================ */

.terminal-mensagem {
    width: min(100%, 780px);
    min-height: 0;
    margin: 15px auto 0;
    color: #525a53;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.7px;
}

.terminal-mensagem:empty {
    display: none;
}

.terminal-mensagem.sucesso {
    padding: 10px 13px;
    border-left: 5px solid #506f54;
    color: #29432e;
    background: #b8c5b3;
}

.terminal-mensagem.erro {
    padding: 10px 13px;
    border-left: 5px solid #843f3c;
    color: #6c302e;
    background: #cfb1ae;
}


/* ============================================================
   DECISÃO
============================================================ */

.terminal-decisao {
    width: min(100%, 780px);
    margin: 23px auto 0;
    padding: 17px;
    display: grid;
    grid-template-columns: 175px 1fr 175px;
    align-items: center;
    gap: 20px;
    border: 2px solid #70776f;
    background: #aeb1a6;
    box-shadow: inset 0 0 0 1px #d0d1c5;
}

.terminal-decisao-centro {
    display: flex;
    flex-direction: column;
    align-items: center;
    color: #555d56;
    text-align: center;
}

.terminal-decisao-centro > span {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 1px;
}

.terminal-decisao-centro small {
    margin-top: 5px;
    font-size: 8px;
}


/* ============================================================
   BOTÕES / CARIMBOS
============================================================ */

.carimbo-botao {
    min-height: 57px;
    padding: 8px 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    border: 3px double currentColor;
    font-family: "Courier New", Courier, monospace;
    font-size: 13px;
    font-weight: 900;
    letter-spacing: 1px;
    cursor: pointer;
    box-shadow:
        0 3px 0 rgba(0, 0, 0, 0.25);
}

.carimbo-botao span {
    font-size: 20px;
}

.carimbo-botao.aprovar {
    color: #294c35;
    background: #bdcbb5;
}

.carimbo-botao.recusar {
    color: #743936;
    background: #ceb4b0;
}

.carimbo-botao:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
}

.carimbo-botao:active {
    transform: translateY(2px);
    box-shadow: none;
}

.carimbo-botao:disabled {
    opacity: 0.5;
    cursor: wait;
    transform: none;
}


/* ============================================================
   CARIMBO OFICIAL DE DECISÃO
============================================================ */

.carimbo-documento {
    position: absolute;

    /*
       Fica no espaço inferior direito
       da identidade.
    */
    right: 34px;
    bottom: 28px;

    z-index: 15;

    width: 245px;

    padding: 8px 10px 7px;

    border: 4px solid currentColor;

    color: #355d38;

    background: transparent;

    font-family:
        "Courier New",
        Courier,
        monospace;

    font-weight: 900;

    text-transform: uppercase;

    line-height: 1;

    pointer-events: none;

    /*
       Pequena inclinação dá aparência
       de carimbo manual.
    */
    transform: rotate(-2.5deg);

    opacity: 0.82;

    /*
       Faz a tinta se integrar ao papel.
    */
    mix-blend-mode: multiply;
}


/* ========================================
   BORDA INTERNA
======================================== */

.carimbo-documento::before {
    content: "";

    position: absolute;

    inset: 3px;

    border: 1px dashed currentColor;

    opacity: 0.55;

    pointer-events: none;
}


/* ========================================
   DATA + SÍMBOLO
======================================== */

.carimbo-data {
    padding-bottom: 5px;

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 12px;

    border-bottom: 2px dotted currentColor;
}

.carimbo-data span {
    font-size: 10px;

    letter-spacing: 1px;
}

.carimbo-data strong {
    width: 27px;
    height: 27px;

    display: flex;

    align-items: center;

    justify-content: center;

    border: 2px solid currentColor;

    font-size: 20px;
}


/* ========================================
   TEXTO PRINCIPAL
======================================== */

.carimbo-titulo {
    margin-top: 7px;

    font-size: 18px;

    line-height: 1;

    letter-spacing: -0.7px;
}


/* ========================================
   UNIÃO SINÉTICA
======================================== */

.carimbo-pais {
    margin-top: 4px;

    font-size: 13px;

    letter-spacing: 1.5px;
}


/* ========================================
   MINISTÉRIO
======================================== */

.carimbo-ministerio {
    margin-top: 7px;

    padding-top: 5px;

    border-top: 1px solid currentColor;

    font-size: 7px;

    letter-spacing: 1px;
}


/* ============================================================
   APROVADO
============================================================ */

.carimbo-documento.aprovado {
    color: #35633c;
}


/* ============================================================
   RECUSADO
============================================================ */

.carimbo-documento.recusado {
    color: #913b3b;
}


/* ============================================================
   DOCUMENTO JÁ ANALISADO
============================================================ */

.carimbo-documento.historico {
    opacity: 0.72;
}


/* ============================================================
   ANIMAÇÃO — BATIDA DO CARIMBO
============================================================ */

.carimbo-documento.carimbando {
    animation:
        carimbar-documento
        0.48s
        cubic-bezier(.18, .89, .32, 1.15);
}


@keyframes carimbar-documento {

    /*
       O carimbo vem de cima.
    */

    0% {
        opacity: 0;

        transform:
            translateY(-110px)
            rotate(-2.5deg)
            scale(1.12);
    }


    /*
       Encosta no documento.
    */

    55% {
        opacity: 0.95;

        transform:
            translateY(4px)
            rotate(-2.5deg)
            scale(0.96);
    }


    /*
       Pequeno rebote mecânico.
    */

    72% {
        transform:
            translateY(-3px)
            rotate(-2.5deg)
            scale(1.02);
    }


    /*
       A impressão permanece.
    */

    100% {
        opacity: 0.82;

        transform:
            translateY(0)
            rotate(-2.5deg)
            scale(1);
    }

}


/* ============================================================
   PEQUENAS FALHAS DE TINTA
============================================================ */

.carimbo-documento::after {
    content: "";

    position: absolute;

    inset: 0;

    pointer-events: none;

    opacity: 0.14;

    background:
        repeating-linear-gradient(
            0deg,
            transparent 0,
            transparent 3px,
            rgba(255, 255, 255, 0.9) 4px,
            transparent 5px
        );
}


/* ============================================================
   RODAPÉ DO TERMINAL
============================================================ */

.terminal-rodape {
    min-height: 38px;
    padding: 0 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-top: 2px solid #29382f;
    color: #aeb8aa;
    background: #303f36;
    font-family: "Courier New", Courier, monospace;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 1px;
}


/* ============================================================
   TABLET
============================================================ */

@media (max-width: 1050px) {

    .terminal-topo {
        grid-template-columns: 1fr auto;
    }

    .terminal-status {
        display: none;
    }

    .terminal-grade {
        grid-template-columns: 280px minmax(0, 1fr);
    }

    .documento-area {
        padding: 30px 25px 10px;
    }

    .identidade-grade {
        grid-template-columns: 150px minmax(0, 1fr);
    }

    .terminal-decisao {
        grid-template-columns: 150px 1fr 150px;
    }

}


/* ============================================================
   MOBILE
============================================================ */

@media (max-width: 760px) {

    .terminal-principal {
        padding: 10px;
    }

    .terminal-topo {
        padding: 12px 15px;
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .terminal-acoes {
        justify-content: space-between;
    }

    .terminal-barra {
        grid-template-columns: 1fr;
        gap: 9px;
    }

    .terminal-grade {
        display: block;
    }

    .terminal-fila {
        border-right: 0;
        border-bottom: 3px solid #596159;
    }

    .terminal-lista {
        max-height: 260px;
    }

    .documento-area {
        padding: 20px 12px;
        overflow-x: auto;
    }

    /*
        Mantemos uma largura mínima para o
        documento continuar parecendo uma
        identidade, mesmo no celular.
    */

    .identidade-sinetica {
        min-width: 610px;
    }

    .terminal-ficha,
    .terminal-decisao {
        min-width: 610px;
    }

    .terminal-rodape {
        flex-direction: column;
        align-items: flex-start;
        padding: 10px 15px;
        gap: 4px;
    }

}


/* ========================================
   FAÇA PARTE — CIDADANIA E NOME SUDOVENO
   Atualização 17/09/2026
======================================== */

.campo-ingresso input[type="email"] {
    display: block;
    width: 100%;
    min-height: 56px;
    padding: 13px 16px;
    border: 1px solid #777;
    border-radius: 0;
    outline: none;
    color: var(--preto);
    background: #ffffff;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.campo-ingresso input[type="email"]:focus {
    border: 2px solid var(--verde);
    box-shadow: 0 0 0 3px rgba(0, 107, 69, 0.08);
}

.seletor-sudoveno {
    position: relative;
}

.seletor-sudoveno > input {
    width: 100%;
    padding-right: 56px;
}

.botao-abrir-nomes {
    position: absolute;
    top: 1px;
    right: 1px;
    width: 50px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-left: 1px solid var(--cinza-claro);
    background: transparent;
    color: var(--verde-escuro);
    font-size: 20px;
    cursor: pointer;
}

.botao-abrir-nomes:hover,
.botao-abrir-nomes:focus {
    background: var(--cinza-fundo);
    outline: none;
}

.lista-nomes-sudovenos {
    position: absolute;
    z-index: 100;
    top: calc(100% + 5px);
    left: 0;
    right: 0;
    max-height: 280px;
    overflow-y: auto;
    border: 1px solid #bdbdbd;
    background: var(--branco);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.14);
}

.opcao-nome-sudoveno {
    display: block;
    width: 100%;
    padding: 12px 16px;
    border: 0;
    border-bottom: 1px solid #eeeeee;
    background: transparent;
    color: var(--preto);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.opcao-nome-sudoveno:last-child {
    border-bottom: 0;
}

.opcao-nome-sudoveno:hover,
.opcao-nome-sudoveno:focus {
    background: #edf6f2;
    color: var(--verde-escuro);
    outline: none;
}

.nome-sudoveno-vazio {
    padding: 16px;
    color: var(--cinza);
    font-size: 14px;
}

.previa-nome-sinetico {
    margin: -5px 0 32px;
    padding: 19px 21px;
    border-left: 4px solid var(--verde);
    background: #f2f6f4;
}

.previa-nome-sinetico span {
    display: block;
    margin-bottom: 7px;
    color: var(--cinza);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.previa-nome-sinetico strong {
    display: block;
    color: var(--verde-escuro);
    font-size: 22px;
    line-height: 1.3;
    font-weight: 700;
}

.descricao-campo {
    max-width: 680px;
    margin: -2px 0 17px;
    color: var(--cinza);
    font-size: 14px;
    line-height: 1.5;
}

.bloco-acesso-cidadao {
    margin-top: 42px;
    padding: 30px 30px 4px;
    border-top: 5px solid var(--verde);
    background: var(--cinza-fundo);
}

.titulo-bloco-acesso {
    margin-bottom: 29px;
}

.titulo-bloco-acesso > span {
    display: block;
    margin-bottom: 8px;
    color: var(--vermelho);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.1em;
}

.titulo-bloco-acesso h3 {
    margin: 0 0 10px;
    color: var(--preto);
    font-size: 24px;
    line-height: 1.2;
    font-weight: 500;
}

.titulo-bloco-acesso p {
    max-width: 680px;
    margin: 0;
    color: var(--cinza);
    font-size: 15px;
    line-height: 1.6;
}

.aviso-privacidade strong {
    display: block;
    margin-bottom: 6px;
    color: var(--preto);
    font-size: 14px;
}

.aviso-privacidade p {
    margin: 0;
}

.mensagem-formulario {
    margin: 20px 0;
    padding: 14px 16px;
    border-left: 4px solid var(--vermelho);
    background: #fff2f2;
    color: #721c24;
    font-size: 15px;
    line-height: 1.5;
}

.mensagem-formulario.sucesso {
    border-left-color: var(--verde);
    background: #edf7f2;
    color: var(--verde-escuro);
}

.resumo-ingresso dd {
    overflow-wrap: anywhere;
}

@media (max-width: 700px) {
    .bloco-acesso-cidadao {
        margin-top: 34px;
        padding: 23px 20px 1px;
    }

    .previa-nome-sinetico strong {
        font-size: 19px;
    }

    .lista-nomes-sudovenos {
        max-height: 230px;
    }
}

@media (max-width: 560px) {
    .botao-abrir-nomes {
        width: 46px;
    }

    .seletor-sudoveno > input {
        padding-right: 52px;
    }

    .titulo-bloco-acesso h3 {
        font-size: 21px;
    }
}

/* =========================================================
   PORTAL DO CIDADÃO
   União Sinética
========================================================= */

.pagina-painel-cidadao {
    margin: 0;
    min-height: 100vh;
    background: #f3f4f3;
    color: var(--preto);
    font-family: Arial, Helvetica, sans-serif;
}


/* =========================================================
   FAIXA INSTITUCIONAL
========================================================= */

.pagina-painel-cidadao .faixa-institucional {
    width: 100%;
    height: 6px;
    display: grid;
    grid-template-columns: 4fr 1.2fr 1fr 0.8fr;
    background: #fff;
}

.pagina-painel-cidadao .faixa-institucional span {
    display: block;
}

.pagina-painel-cidadao .faixa-verde {
    background: var(--verde);
}

.pagina-painel-cidadao .faixa-vermelha {
    background: var(--vermelho);
}

.pagina-painel-cidadao .faixa-preta {
    background: #111;
}

.pagina-painel-cidadao .faixa-branca {
    background: #fff;
}


/* =========================================================
   CONTAINER
========================================================= */

.pagina-painel-cidadao .container {
    width: min(calc(100% - 48px), var(--largura));
    margin: 0 auto;
}


/* =========================================================
   CABEÇALHO
========================================================= */

.cabecalho-cidadao {
    background: #fff;
    border-bottom: 1px solid #d8dada;
}

.cabecalho-cidadao-conteudo {
    min-height: 96px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
}

.marca-cidadao {
    display: flex;
    align-items: center;
    gap: 17px;
}

.simbolo-cidadao {
    width: 56px;
    height: 56px;
    object-fit: contain;
}

.marca-cidadao > div {
    display: flex;
    flex-direction: column;
}

.marca-superior {
    margin-bottom: 4px;
    color: var(--verde);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.17em;
}

.marca-cidadao strong {
    color: #151515;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.acoes-cidadao {
    display: flex;
    align-items: center;
    gap: 24px;
}

.link-cidadao {
    color: #333;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}

.link-cidadao:hover {
    color: var(--verde);
}

.botao-sair-cidadao {
    padding: 11px 19px;
    background: transparent;
    border: 1px solid #bfc2c1;
    color: #222;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}

.botao-sair-cidadao:hover {
    background: #111;
    border-color: #111;
    color: #fff;
}

.botao-sair-cidadao:disabled {
    cursor: wait;
    opacity: 0.6;
}


/* =========================================================
   CARREGAMENTO
========================================================= */

.carregando-cidadao {
    min-height: 400px;
    display: flex;
    align-items: center;
}

.carregando-cidadao p {
    color: #686d6a;
    font-size: 14px;
}

.carregando-cidadao p::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 10px;
    border-radius: 50%;
    background: var(--verde);
    animation: pulso-cidadao 1.2s infinite;
}

@keyframes pulso-cidadao {
    0%,
    100% {
        opacity: 0.25;
    }

    50% {
        opacity: 1;
    }
}


/* =========================================================
   BOAS-VINDAS
========================================================= */

.boas-vindas-cidadao {
    padding: 64px 0 55px;
    background: #fff;
    border-bottom: 1px solid #dedfdf;
}

.rotulo-cidadao {
    display: block;
    margin: 0 0 13px;
    color: var(--verde);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.17em;
}

.boas-vindas-cidadao h1 {
    max-width: 850px;
    margin: 0;
    color: #111;
    font-size: clamp(36px, 4.3vw, 58px);
    line-height: 1.02;
    font-weight: 650;
    letter-spacing: -0.045em;
}

.boas-vindas-cidadao h1 span {
    color: var(--verde);
}

.texto-boas-vindas {
    max-width: 680px;
    margin: 22px 0 0;
    color: #5b605d;
    font-size: 17px;
    line-height: 1.65;
}


/* =========================================================
   ÁREA PRINCIPAL
========================================================= */

.area-painel-cidadao {
    padding: 56px 0 70px;
}

.grid-painel-cidadao {
    display: grid;
    grid-template-columns: minmax(0, 1.7fr) minmax(300px, 0.75fr);
    gap: 34px;
    align-items: start;
}


/* =========================================================
   IDENTIDADE SINÉTICA
========================================================= */

.cartao-identidade-cidadao {
    position: relative;
    overflow: hidden;
    min-height: 410px;
    background:
        linear-gradient(
            135deg,
            rgba(0, 107, 69, 0.035),
            transparent 45%
        ),
        #fdfdfb;
    border: 1px solid #c9cdca;
    box-shadow: 0 12px 34px rgba(0, 0, 0, 0.07);
}

.cartao-identidade-cidadao::before {
    content: "SIN";
    position: absolute;
    right: 15px;
    bottom: -36px;
    color: rgba(0, 107, 69, 0.035);
    font-size: 170px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -0.08em;
    pointer-events: none;
}

.identidade-cabecalho {
    position: relative;
    z-index: 1;
    min-height: 86px;
    padding: 18px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
    background: var(--verde-escuro);
    color: #fff;
}

.identidade-cabecalho > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.identidade-cabecalho span {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.15em;
    opacity: 0.78;
}

.identidade-cabecalho strong {
    font-size: 18px;
    letter-spacing: 0.055em;
}

.identidade-simbolo {
    width: 55px;
    height: 55px;
    object-fit: contain;
    filter: brightness(0) invert(1);
    opacity: 0.95;
}

.identidade-corpo {
    position: relative;
    z-index: 1;
    padding: 30px 26px 32px;
    display: grid;
    grid-template-columns: 145px minmax(0, 1fr);
    gap: 30px;
}

.foto-identidade-cidadao {
    width: 145px;
}

.foto-placeholder {
    width: 145px;
    height: 184px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background:
        repeating-linear-gradient(
            -45deg,
            #eceeec,
            #eceeec 7px,
            #e5e7e5 7px,
            #e5e7e5 14px
        );
    border: 1px solid #c5c9c6;
    color: #8b8f8c;
    font-size: 10px;
    line-height: 1.5;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.dados-identidade-cidadao {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px 28px;
    align-content: start;
}

.campo-identidade {
    min-width: 0;
    padding-bottom: 11px;
    border-bottom: 1px solid #d5d8d6;
}

.campo-identidade-largo {
    grid-column: 1 / -1;
}

.campo-identidade span {
    display: block;
    margin-bottom: 7px;
    color: #747a76;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.12em;
}

.campo-identidade strong {
    display: block;
    overflow-wrap: anywhere;
    color: #151716;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 750;
}

.campo-identidade-largo strong {
    color: var(--verde-escuro);
    font-size: 19px;
}

.status-identidade {
    width: fit-content;
}

.identidade-rodape {
    position: relative;
    z-index: 1;
    min-height: 49px;
    padding: 0 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    border-top: 1px solid #d0d3d1;
    background: rgba(238, 240, 238, 0.72);
}

.identidade-rodape span {
    color: #5e6460;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.13em;
}

.identidade-rodape strong {
    color: var(--verde);
    font-size: 20px;
    letter-spacing: 0.08em;
}


/* =========================================================
   STATUS
========================================================= */

.status-ativo {
    color: var(--verde) !important;
}

.status-suspenso {
    color: #9b6700 !important;
}

.status-cancelado {
    color: var(--vermelho) !important;
}


/* =========================================================
   RESUMO DA CIDADANIA
========================================================= */

.resumo-cidadania {
    padding: 29px 29px 24px;
    background: #fff;
    border-top: 4px solid var(--verde);
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.055);
}

.resumo-cidadania h2 {
    margin: 0 0 27px;
    color: #151515;
    font-size: 27px;
    line-height: 1.15;
    letter-spacing: -0.025em;
}

.linha-resumo {
    padding: 17px 0;
    display: flex;
    flex-direction: column;
    gap: 6px;
    border-top: 1px solid #e0e2e1;
}

.linha-resumo span {
    color: #777c79;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
}

.linha-resumo strong {
    color: #202321;
    font-size: 15px;
    line-height: 1.35;
}

.situacao-cidadao {
    display: flex;
    align-items: center;
    gap: 8px;
}

.situacao-cidadao::before {
    content: "";
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: currentColor;
}


/* =========================================================
   SERVIÇOS
========================================================= */

.servicos-cidadao {
    padding: 67px 0 82px;
    background: #fff;
    border-top: 1px solid #e0e2e1;
}

.cabecalho-secao-cidadao {
    margin-bottom: 35px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
}

.cabecalho-secao-cidadao h2 {
    margin: 0;
    color: #141414;
    font-size: clamp(29px, 3vw, 39px);
    line-height: 1.1;
    letter-spacing: -0.035em;
}

.grade-servicos-cidadao {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid #cacdcb;
    border-left: 1px solid #cacdcb;
}

.servico-cidadao {
    position: relative;
    min-height: 290px;
    padding: 26px;
    display: flex;
    flex-direction: column;
    border-right: 1px solid #cacdcb;
    border-bottom: 1px solid #cacdcb;
    transition:
        background 0.2s ease,
        transform 0.2s ease;
}

.servico-disponivel {
    background: #fff;
}

.servico-disponivel:hover {
    background: #f5f8f6;
}

.servico-bloqueado {
    background: #f7f7f6;
}

.numero-servico {
    margin-bottom: 39px;
    color: var(--verde);
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.servico-cidadao h3 {
    margin: 0 0 13px;
    color: #171918;
    font-size: 21px;
    line-height: 1.2;
    letter-spacing: -0.02em;
}

.servico-cidadao p {
    margin: 0 0 25px;
    color: #676c69;
    font-size: 14px;
    line-height: 1.55;
}

.acao-servico {
    width: fit-content;
    margin-top: auto;
    padding: 0 0 5px;
    background: transparent;
    border: 0;
    border-bottom: 2px solid var(--verde);
    color: var(--verde);
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.acao-servico:hover {
    color: var(--verde-escuro);
    border-color: var(--verde-escuro);
}

.etiqueta-breve {
    width: fit-content;
    margin-top: auto;
    padding: 6px 8px;
    background: #e4e6e5;
    color: #6e7470;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.11em;
}


/* =========================================================
   TELA DE ERRO
========================================================= */

.erro-painel-cidadao {
    padding: 90px 0;
}

.caixa-erro-cidadao {
    max-width: 720px;
    padding: 42px;
    background: #fff;
    border-top: 5px solid var(--vermelho);
    box-shadow: 0 10px 35px rgba(0, 0, 0, 0.06);
}

.erro-codigo {
    display: block;
    margin-bottom: 14px;
    color: var(--vermelho);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.15em;
}

.caixa-erro-cidadao h1 {
    margin: 0 0 17px;
    color: #171717;
    font-size: 32px;
    line-height: 1.15;
    letter-spacing: -0.03em;
}

.caixa-erro-cidadao p {
    margin: 0 0 28px;
    color: #626764;
    font-size: 15px;
    line-height: 1.65;
}

.botao-principal-cidadao {
    display: inline-flex;
    padding: 13px 19px;
    background: var(--verde);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
    transition: background 0.2s ease;
}

.botao-principal-cidadao:hover {
    background: var(--verde-escuro);
}


/* =========================================================
   RODAPÉ
========================================================= */

.rodape-cidadao {
    padding: 36px 0;
    background: #111;
    color: #fff;
}

.rodape-cidadao-conteudo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.rodape-cidadao-conteudo > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.rodape-cidadao-conteudo strong {
    font-size: 13px;
    letter-spacing: 0.09em;
}

.rodape-cidadao-conteudo span {
    color: #aeb2af;
    font-size: 11px;
}


/* =========================================================
   RESPONSIVIDADE
========================================================= */

@media (max-width: 1050px) {

    .grid-painel-cidadao {
        grid-template-columns: 1fr;
    }

    .resumo-cidadania {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        column-gap: 30px;
    }

    .resumo-cidadania .rotulo-cidadao,
    .resumo-cidadania h2 {
        grid-column: 1 / -1;
    }

    .grade-servicos-cidadao {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}


@media (max-width: 720px) {

    .pagina-painel-cidadao .container {
        width: min(calc(100% - 30px), var(--largura));
    }

    .cabecalho-cidadao-conteudo {
        min-height: 82px;
    }

    .simbolo-cidadao {
        width: 46px;
        height: 46px;
    }

    .marca-cidadao strong {
        font-size: 18px;
    }

    .marca-superior {
        font-size: 9px;
    }

    .link-cidadao {
        display: none;
    }

    .boas-vindas-cidadao {
        padding: 48px 0 42px;
    }

    .texto-boas-vindas {
        font-size: 15px;
    }

    .area-painel-cidadao {
        padding: 35px 0 50px;
    }

    .identidade-corpo {
        grid-template-columns: 105px minmax(0, 1fr);
        gap: 20px;
        padding: 23px 20px 26px;
    }

    .foto-identidade-cidadao,
    .foto-placeholder {
        width: 105px;
    }

    .foto-placeholder {
        height: 139px;
    }

    .dados-identidade-cidadao {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .campo-identidade-largo {
        grid-column: auto;
    }

    .campo-identidade-largo strong {
        font-size: 16px;
    }

    .identidade-cabecalho {
        padding: 16px 20px;
    }

    .identidade-cabecalho strong {
        font-size: 15px;
    }

    .identidade-simbolo {
        width: 45px;
        height: 45px;
    }

    .identidade-rodape {
        padding: 0 20px;
    }

    .resumo-cidadania {
        display: block;
    }

    .servicos-cidadao {
        padding: 52px 0 60px;
    }

    .grade-servicos-cidadao {
        grid-template-columns: 1fr;
    }

    .servico-cidadao {
        min-height: 240px;
    }

    .rodape-cidadao-conteudo {
        align-items: flex-start;
        flex-direction: column;
    }
}


@media (max-width: 480px) {

    .cabecalho-cidadao-conteudo {
        gap: 12px;
    }

    .marca-cidadao {
        gap: 10px;
    }

    .simbolo-cidadao {
        width: 39px;
        height: 39px;
    }

    .marca-cidadao strong {
        font-size: 16px;
    }

    .marca-superior {
        font-size: 8px;
        letter-spacing: 0.1em;
    }

    .botao-sair-cidadao {
        padding: 9px 12px;
    }

    .identidade-corpo {
        grid-template-columns: 1fr;
    }

    .foto-identidade-cidadao {
        width: 100%;
    }

    .foto-placeholder {
        width: 100px;
        height: 130px;
    }

    .identidade-cabecalho span {
        font-size: 7px;
    }

    .identidade-cabecalho strong {
        font-size: 13px;
    }

    .identidade-rodape span {
        max-width: 190px;
        font-size: 7px;
    }

    .caixa-erro-cidadao {
        padding: 28px 23px;
    }
}

/* Respeita elementos ocultados pelo JavaScript */
.pagina-painel-cidadao [hidden] {
    display: none !important;
}

/* =========================================================
   IDENTIDADE DIGITAL — UNIÃO SINÉTICA
   Estilos isolados para evitar conflitos com o portal
========================================================= */

body.pagina-identidade-digital {
    margin: 0;
    min-height: 100vh;
    background: #f1f3f1;
    color: #161816;
}

.pagina-identidade-digital *,
.pagina-identidade-digital *::before,
.pagina-identidade-digital *::after {
    box-sizing: border-box;
}

.pagina-identidade-digital [hidden] {
    display: none !important;
}

.pagina-identidade-digital .container {
    width: min(calc(100% - 48px), var(--largura));
    margin-inline: auto;
}

/* Faixa institucional */
.pagina-identidade-digital .faixa-institucional {
    width: 100%;
    height: 6px;
    display: grid;
    grid-template-columns: 4fr 1.2fr 1fr .8fr;
}

.pagina-identidade-digital .faixa-institucional > span { display: block; }
.pagina-identidade-digital .faixa-verde { background: var(--verde); }
.pagina-identidade-digital .faixa-vermelha { background: var(--vermelho); }
.pagina-identidade-digital .faixa-preta { background: #111; }
.pagina-identidade-digital .faixa-branca { background: #fff; }

/* Cabeçalho */
.pagina-identidade-digital .cabecalho-identidade {
    background: #fff;
    border-bottom: 1px solid #d8dbd9;
}

.pagina-identidade-digital .cabecalho-identidade-conteudo {
    min-height: 92px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.pagina-identidade-digital .marca-identidade {
    display: flex;
    align-items: center;
    gap: 16px;
    color: inherit;
    text-decoration: none;
}

.pagina-identidade-digital .marca-identidade > img {
    width: 55px;
    height: 55px;
    max-width: 55px;
    object-fit: contain;
    flex: 0 0 55px;
}

.pagina-identidade-digital .marca-identidade > div {
    display: flex;
    flex-direction: column;
}

.pagina-identidade-digital .marca-identidade span {
    margin-bottom: 4px;
    color: var(--verde);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .16em;
}

.pagina-identidade-digital .marca-identidade strong {
    color: #151715;
    font-size: 21px;
    line-height: 1.1;
}

.pagina-identidade-digital .acoes-identidade {
    display: flex;
    align-items: center;
    gap: 22px;
}

.pagina-identidade-digital .voltar-identidade {
    color: #424743;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.pagina-identidade-digital .voltar-identidade:hover { color: var(--verde); }

.pagina-identidade-digital .botao-imprimir-identidade {
    padding: 11px 18px;
    border: 1px solid var(--verde);
    background: var(--verde);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    cursor: pointer;
}

.pagina-identidade-digital .botao-imprimir-identidade:hover {
    background: var(--verde-escuro);
    border-color: var(--verde-escuro);
}

/* Carregamento e introdução */
.pagina-identidade-digital .carregando-identidade {
    min-height: 420px;
    display: flex;
    align-items: center;
}

.pagina-identidade-digital .carregando-identidade p {
    color: #666c68;
    font-size: 14px;
}

.pagina-identidade-digital .introducao-identidade {
    padding: 55px 0 45px;
    background: #fff;
    border-bottom: 1px solid #dfe1df;
}

.pagina-identidade-digital .rotulo-identidade {
    display: block;
    margin-bottom: 12px;
    color: var(--verde);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .17em;
}

.pagina-identidade-digital .introducao-identidade h1 {
    margin: 0;
    color: #111;
    font-size: clamp(36px, 4vw, 54px);
    line-height: 1;
    font-weight: 650;
    letter-spacing: -.045em;
}

.pagina-identidade-digital .introducao-identidade p {
    max-width: 620px;
    margin: 18px 0 0;
    color: #606561;
    font-size: 16px;
    line-height: 1.6;
}

/* Área do documento */
.pagina-identidade-digital .area-documento-identidade {
    padding: 62px 0 80px;
}

.pagina-identidade-digital .documento-identidade-digital {
    position: relative;
    isolation: isolate;
    width: 100%;
    max-width: 970px;
    min-height: 520px;
    margin: 0 auto;
    overflow: hidden;
    background:
        linear-gradient(120deg, rgba(0,107,69,.055), transparent 38%),
        linear-gradient(300deg, rgba(223,0,22,.025), transparent 35%),
        #fbfcf8;
    border: 1px solid #b9bfbb;
    border-radius: 4px;
    box-shadow: 0 24px 60px rgba(0,0,0,.12);
}

.pagina-identidade-digital .documento-identidade-digital::before {
    content: "SIN";
    position: absolute;
    z-index: -1;
    right: -20px;
    top: 145px;
    color: rgba(0,76,50,.04);
    font-size: 260px;
    line-height: .8;
    font-weight: 900;
    letter-spacing: -.09em;
    transform: rotate(-8deg);
    pointer-events: none;
}

.pagina-identidade-digital .documento-identidade-digital::after {
    content: "";
    position: absolute;
    z-index: -1;
    inset: 0;
    background: repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(0,0,0,.012) 4px, rgba(0,0,0,.012) 5px);
    pointer-events: none;
}

/* Topo do documento */
.pagina-identidade-digital .doc-identidade-topo {
    min-height: 105px;
    padding: 20px 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    background: linear-gradient(110deg, #004c32, #006b45);
    color: #fff;
}

.pagina-identidade-digital .doc-identidade-topo > div {
    display: flex;
    flex-direction: column;
}

.pagina-identidade-digital .doc-identidade-topo span {
    margin-bottom: 6px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .17em;
    opacity: .76;
}

.pagina-identidade-digital .doc-identidade-topo strong {
    margin-bottom: 4px;
    font-size: 21px;
    line-height: 1.1;
    letter-spacing: .055em;
}

.pagina-identidade-digital .doc-identidade-topo small {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
    opacity: .78;
}

.pagina-identidade-digital .doc-identidade-topo > img {
    width: 67px;
    height: 67px;
    max-width: 67px;
    object-fit: contain;
    flex: 0 0 67px;
    filter: brightness(0) invert(1);
    opacity: .96;
}

/* Corpo e fotografia */
.pagina-identidade-digital .doc-identidade-corpo {
    padding: 36px 32px 38px;
    display: grid;
    grid-template-columns: 185px minmax(0,1fr);
    gap: 37px;
}

.pagina-identidade-digital .doc-identidade-foto { width: 185px; }

.pagina-identidade-digital .doc-foto-placeholder {
    position: relative;
    width: 185px;
    height: 235px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: repeating-linear-gradient(-45deg,#e8ebe8,#e8ebe8 7px,#e1e5e1 7px,#e1e5e1 14px);
    border: 1px solid #bfc5c1;
    color: #7c837e;
}

.pagina-identidade-digital .doc-foto-placeholder::before {
    content: "";
    width: 54px;
    height: 54px;
    margin-bottom: 13px;
    border: 2px solid #adb4af;
    border-radius: 50%;
}

.pagina-identidade-digital .doc-foto-placeholder::after {
    content: "";
    position: absolute;
    width: 92px;
    height: 58px;
    left: 50%;
    bottom: 42px;
    border: 2px solid #adb4af;
    border-bottom: 0;
    border-radius: 50px 50px 0 0;
    transform: translateX(-50%);
}

.pagina-identidade-digital .doc-foto-placeholder span {
    position: absolute;
    bottom: 14px;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .15em;
}

.pagina-identidade-digital .doc-foto-placeholder strong {
    position: absolute;
    top: 8px;
    right: 9px;
    color: rgba(0,107,69,.28);
    font-size: 13px;
    letter-spacing: .08em;
}

/* Dados */
.pagina-identidade-digital .doc-identidade-dados {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 22px 31px;
    align-content: start;
}

.pagina-identidade-digital .doc-campo {
    min-width: 0;
    padding-bottom: 12px;
    border-bottom: 1px solid #ced3cf;
}

.pagina-identidade-digital .doc-campo-total { grid-column: 1 / -1; }

.pagina-identidade-digital .doc-campo span {
    display: block;
    margin-bottom: 7px;
    color: #6e756f;
    font-size: 8px;
    line-height: 1.25;
    font-weight: 900;
    letter-spacing: .13em;
}

.pagina-identidade-digital .doc-campo strong {
    display: block;
    overflow-wrap: anywhere;
    color: #171a18;
    font-size: 15px;
    line-height: 1.35;
    font-weight: 750;
}

.pagina-identidade-digital .doc-campo-total strong {
    color: var(--verde-escuro);
    font-size: 22px;
    line-height: 1.2;
    letter-spacing: -.015em;
}

.pagina-identidade-digital .documento-ativo { color: var(--verde) !important; }

/* Faixa e rodapé do documento */
.pagina-identidade-digital .doc-faixa-nacional {
    width: 100%;
    height: 8px;
    display: grid;
    grid-template-columns: 4fr 1.2fr 1fr .8fr;
}

.pagina-identidade-digital .doc-faixa-nacional span:nth-child(1) { background: var(--verde); }
.pagina-identidade-digital .doc-faixa-nacional span:nth-child(2) { background: var(--vermelho); }
.pagina-identidade-digital .doc-faixa-nacional span:nth-child(3) { background: #111; }
.pagina-identidade-digital .doc-faixa-nacional span:nth-child(4) { background: #fff; }

.pagina-identidade-digital .doc-identidade-rodape {
    min-height: 75px;
    padding: 0 31px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    background: rgba(235,239,235,.88);
    border-top: 1px solid #cbd0cc;
}

.pagina-identidade-digital .doc-identidade-rodape > div {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pagina-identidade-digital .doc-identidade-rodape span {
    color: #656c67;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .13em;
}

.pagina-identidade-digital .doc-identidade-rodape strong {
    color: var(--verde);
    font-size: 19px;
    line-height: 1;
    letter-spacing: .08em;
}

.pagina-identidade-digital .doc-validacao { text-align: right; }
.pagina-identidade-digital .doc-validacao strong { color: #222; font-size: 12px; letter-spacing: .05em; }

/* Informações abaixo */
.pagina-identidade-digital .informacoes-identidade {
    width: 100%;
    max-width: 970px;
    margin: 36px auto 0;
    padding: 30px 32px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 50px;
    background: #fff;
    border-top: 4px solid var(--verde);
    box-shadow: 0 8px 28px rgba(0,0,0,.05);
}

.pagina-identidade-digital .informacoes-identidade h2 {
    margin: 0 0 11px;
    color: #171917;
    font-size: 24px;
    line-height: 1.2;
    letter-spacing: -.025em;
}

.pagina-identidade-digital .informacoes-identidade p {
    max-width: 650px;
    margin: 0;
    color: #656a66;
    font-size: 14px;
    line-height: 1.6;
}

.pagina-identidade-digital .estado-documento {
    min-width: 160px;
    padding-left: 28px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    border-left: 1px solid #d9dcda;
}

.pagina-identidade-digital .estado-documento span {
    margin-bottom: 7px;
    color: #737974;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .13em;
}

.pagina-identidade-digital .estado-documento strong {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--verde);
    font-size: 15px;
}

.pagina-identidade-digital .estado-documento strong::before {
    content: "";
    width: 8px;
    height: 8px;
    flex: 0 0 8px;
    border-radius: 50%;
    background: currentColor;
}

/* Erro */
.pagina-identidade-digital .erro-identidade { padding: 90px 0; }

.pagina-identidade-digital .caixa-erro-identidade {
    max-width: 700px;
    padding: 40px;
    background: #fff;
    border-top: 5px solid var(--vermelho);
    box-shadow: 0 10px 35px rgba(0,0,0,.06);
}

.pagina-identidade-digital .caixa-erro-identidade > span {
    display: block;
    margin-bottom: 13px;
    color: var(--vermelho);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .16em;
}

.pagina-identidade-digital .caixa-erro-identidade h1 {
    margin: 0 0 16px;
    font-size: 31px;
    line-height: 1.15;
}

.pagina-identidade-digital .caixa-erro-identidade p {
    margin: 0 0 26px;
    color: #626763;
    font-size: 15px;
    line-height: 1.6;
}

.pagina-identidade-digital .caixa-erro-identidade a {
    display: inline-flex;
    padding: 12px 17px;
    background: var(--verde);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    text-decoration: none;
}

/* Rodapé da página */
.pagina-identidade-digital .rodape-identidade {
    padding: 34px 0;
    background: #111;
    color: #fff;
}

.pagina-identidade-digital .rodape-identidade .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.pagina-identidade-digital .rodape-identidade .container > div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.pagina-identidade-digital .rodape-identidade strong { font-size: 12px; letter-spacing: .09em; }
.pagina-identidade-digital .rodape-identidade span { color: #afb3b0; font-size: 10px; }

/* Responsividade */
@media (max-width: 700px) {
    .pagina-identidade-digital .container { width: min(calc(100% - 28px), var(--largura)); }
    .pagina-identidade-digital .cabecalho-identidade-conteudo { min-height: 80px; }
    .pagina-identidade-digital .marca-identidade > img { width: 43px; height: 43px; max-width: 43px; flex-basis: 43px; }
    .pagina-identidade-digital .marca-identidade span { font-size: 8px; }
    .pagina-identidade-digital .marca-identidade strong { font-size: 16px; }
    .pagina-identidade-digital .voltar-identidade { display: none; }
    .pagina-identidade-digital .introducao-identidade { padding: 42px 0 36px; }
    .pagina-identidade-digital .area-documento-identidade { padding: 35px 0 55px; }
    .pagina-identidade-digital .doc-identidade-topo { padding: 16px 18px; }
    .pagina-identidade-digital .doc-identidade-topo > img { width: 48px; height: 48px; max-width: 48px; flex-basis: 48px; }
    .pagina-identidade-digital .doc-identidade-corpo { grid-template-columns: 110px minmax(0,1fr); gap: 18px; padding: 24px 18px 28px; }
    .pagina-identidade-digital .doc-identidade-foto,
    .pagina-identidade-digital .doc-foto-placeholder { width: 110px; }
    .pagina-identidade-digital .doc-foto-placeholder { height: 145px; }
    .pagina-identidade-digital .doc-identidade-dados { grid-template-columns: 1fr; gap: 12px; }
    .pagina-identidade-digital .doc-campo-total { grid-column: auto; }
    .pagina-identidade-digital .doc-campo strong { font-size: 12px; }
    .pagina-identidade-digital .doc-campo-total strong { font-size: 15px; }
    .pagina-identidade-digital .informacoes-identidade { grid-template-columns: 1fr; gap: 24px; padding: 24px; }
    .pagina-identidade-digital .estado-documento { padding: 22px 0 0; border-left: 0; border-top: 1px solid #d9dcda; }
    .pagina-identidade-digital .rodape-identidade .container { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 430px) {
    .pagina-identidade-digital .doc-identidade-corpo { grid-template-columns: 1fr; }
    .pagina-identidade-digital .doc-identidade-foto { width: 100%; }
    .pagina-identidade-digital .doc-foto-placeholder { width: 105px; height: 140px; }
    .pagina-identidade-digital .documento-identidade-digital::before { top: 240px; right: -15px; font-size: 180px; }
}

/* Impressão: somente o documento */
@media print {
    @page { size: landscape; margin: 12mm; }

    body.pagina-identidade-digital { background: #fff !important; }

    .pagina-identidade-digital .faixa-institucional,
    .pagina-identidade-digital .cabecalho-identidade,
    .pagina-identidade-digital .introducao-identidade,
    .pagina-identidade-digital .informacoes-identidade,
    .pagina-identidade-digital .rodape-identidade,
    .pagina-identidade-digital .carregando-identidade,
    .pagina-identidade-digital .erro-identidade {
        display: none !important;
    }

    .pagina-identidade-digital .principal-identidade,
    .pagina-identidade-digital .area-documento-identidade,
    .pagina-identidade-digital #conteudoIdentidade {
        display: block !important;
        margin: 0 !important;
        padding: 0 !important;
        background: #fff !important;
    }

    .pagina-identidade-digital .area-documento-identidade .container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    .pagina-identidade-digital .documento-identidade-digital {
        width: 100% !important;
        max-width: 970px !important;
        margin: 0 auto !important;
        box-shadow: none !important;
        break-inside: avoid;
        page-break-inside: avoid;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* ========================================
   HOME — PUBLICAÇÕES DINÂMICAS
======================================== */

#carregandoDestaque {
    padding: 70px 0;
    color: var(--cinza);
    font-size: 17px;
}

#conteudoDestaque[hidden] {
    display: none !important;
}

.autor-publicacao-home {
    margin: 22px 0 0 !important;
    color: var(--preto) !important;
    font-size: 14px !important;
    font-weight: 700;
}

#gradePublicacoes > .estado-lista {
    grid-column: 1 / -1;
}

/* ========================================
   HOME — ACESSO AO PORTAL
======================================== */

.links-institucionais .link-login-topo {
    padding: 9px 15px;
    border: 1px solid var(--verde);

    color: var(--verde);

    font-weight: 700;
    text-decoration: none;

    transition:
        background 0.15s ease,
        color 0.15s ease;
}

.links-institucionais .link-login-topo:hover {
    color: #ffffff;
    background: var(--verde);
}

/* ==========================================================
   KANZLERE — MODELO EDITORIAL
   Página pública de Felipe Oliveira
========================================================== */


/* ==========================================================
   BASE
========================================================== */

.kanzlere-editorial {
    background: #ffffff;
    color: #111111;
    overflow: hidden;
}

.kanzlere-editorial img {
    display: block;
    max-width: 100%;
}

.kanzlere-editorial-rotulo {
    margin: 0 0 22px;

    color: var(--verde);

    font-size: 13px;
    font-weight: 800;
    line-height: 1.2;

    letter-spacing: 0.14em;
    text-transform: uppercase;
}


/* ==========================================================
   ABERTURA
========================================================== */

.kanzlere-editorial-abertura {
    padding:
        clamp(90px, 10vw, 155px)
        24px
        clamp(70px, 8vw, 120px);

    background: #ffffff;
}

.kanzlere-editorial-abertura-conteudo {
    width: min(100%, 960px);
    margin: 0 auto;

    text-align: center;
}

.kanzlere-editorial-abertura .kanzlere-editorial-rotulo {
    margin-bottom: 28px;
}

.kanzlere-editorial-abertura h1 {
    max-width: 900px;

    margin:
        0 auto
        clamp(30px, 4vw, 48px);

    color: #111111;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            58px,
            8vw,
            112px
        );

    font-weight: 400;
    line-height: 0.94;

    letter-spacing: -0.055em;
}

.kanzlere-editorial-introducao {
    max-width: 760px;
    margin: 0 auto;

    color: #303030;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            20px,
            2.1vw,
            27px
        );

    line-height: 1.55;
}


/* ==========================================================
   RETRATO OFICIAL
========================================================== */

.kanzlere-editorial-retrato {
    padding:
        0 24px
        clamp(90px, 10vw, 150px);
}

.kanzlere-editorial-retrato-container {
    width: min(100%, 1120px);
    margin: 0 auto;
}

.kanzlere-editorial-retrato figure {
    margin: 0;
}

.kanzlere-editorial-retrato img {
    width: min(100%, 760px);
    max-height: 980px;

    margin: 0 auto;

    object-fit: cover;
    object-position: center top;

    background: #eeeeee;
}

.kanzlere-editorial-retrato figcaption {
    width: min(100%, 760px);

    margin:
        15px auto
        0;

    color: #666666;

    font-size: 12px;
    line-height: 1.5;
}


/* ==========================================================
   ATALHOS EDITORIAIS
========================================================== */

.kanzlere-editorial-atalhos {
    padding:
        0 24px
        clamp(100px, 11vw, 160px);
}

.kanzlere-editorial-atalhos-grade {
    width: min(100%, 1180px);
    margin: 0 auto;

    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    border-top:
        1px solid
        #cfcfcf;

    border-bottom:
        1px solid
        #cfcfcf;
}

.kanzlere-editorial-atalhos a {
    min-height: 210px;

    padding:
        28px
        25px
        30px;

    display: flex;
    flex-direction: column;

    color: #111111;

    text-decoration: none;

    border-right:
        1px solid
        #cfcfcf;

    transition:
        background 0.2s ease,
        color 0.2s ease;
}

.kanzlere-editorial-atalhos a:first-child {
    border-left:
        1px solid
        #cfcfcf;
}

.kanzlere-editorial-numero {
    margin-bottom: auto;

    color: #777777;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 0.1em;
}

.kanzlere-editorial-atalhos strong {
    margin-top: 40px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            20px,
            2vw,
            28px
        );

    font-weight: 400;
}

.kanzlere-editorial-seta {
    margin-top: 20px;

    color: var(--verde);

    font-size: 22px;
}

.kanzlere-editorial-atalhos a:hover {
    background:
        var(--verde);

    color: #ffffff;
}

.kanzlere-editorial-atalhos a:hover
.kanzlere-editorial-numero,

.kanzlere-editorial-atalhos a:hover
.kanzlere-editorial-seta {
    color: #ffffff;
}


/* ==========================================================
   COLUNA EDITORIAL
========================================================== */

.kanzlere-editorial-coluna {
    width: min(
        calc(100% - 48px),
        760px
    );

    margin: 0 auto;
}

.kanzlere-editorial-texto,
.kanzlere-editorial-capitulo,
.kanzlere-editorial-uniao {
    scroll-margin-top: 50px;
}

.kanzlere-editorial-texto {
    padding:
        clamp(80px, 9vw, 130px)
        0;
}

.kanzlere-editorial-capitulo {
    padding:
        clamp(80px, 9vw, 130px)
        0;
}

.kanzlere-editorial-uniao {
    padding:
        clamp(80px, 9vw, 130px)
        0;
}

.kanzlere-editorial-coluna h2 {
    margin:
        0 0
        clamp(35px, 5vw, 55px);

    color: #111111;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            39px,
            5vw,
            66px
        );

    font-weight: 400;
    line-height: 1.03;

    letter-spacing: -0.035em;
}

.kanzlere-editorial-coluna h3 {
    margin:
        65px 0
        28px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            29px,
            3.2vw,
            40px
        );

    font-weight: 400;
    line-height: 1.15;

    letter-spacing: -0.02em;
}

.kanzlere-editorial-coluna > p:not(.kanzlere-editorial-rotulo) {
    margin:
        0 0
        27px;

    color: #282828;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            18px,
            1.6vw,
            21px
        );

    line-height: 1.75;
}


/* ==========================================================
   PARÁGRAFO DE DESTAQUE
========================================================== */

.kanzlere-editorial-coluna
.kanzlere-editorial-destaque-texto {
    margin-bottom: 42px;

    color: #111111;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            25px,
            2.8vw,
            34px
        );

    line-height: 1.4;
}


/* ==========================================================
   DIVISÕES ENTRE CAPÍTULOS
========================================================== */

.kanzlere-editorial-capitulo {
    border-top:
        1px solid
        #dddddd;

    border-bottom:
        1px solid
        #dddddd;

    background:
        #fafafa;
}

.kanzlere-editorial-uniao {
    border-top:
        1px solid
        #e1e1e1;
}


/* ==========================================================
   IMAGEM HISTÓRICA — REI DE KANINDÉ
========================================================== */

.kanzlere-editorial-imagem-historica {
    width: min(
        calc(100% - 48px),
        980px
    );

    margin:
        clamp(70px, 8vw, 110px)
        auto;
}

.kanzlere-editorial-imagem-historica img {
    width: min(
        100%,
        680px
    );

    max-height: 900px;

    margin: 0 auto;

    object-fit: cover;
    object-position: center top;

    background: #eeeeee;
}

.kanzlere-editorial-imagem-historica figcaption {
    width: min(
        100%,
        680px
    );

    margin:
        14px auto
        0;

    color: #666666;

    font-size: 12px;
    line-height: 1.55;
}


/* ==========================================================
   IMAGEM HORIZONTAL — UNIÃO SINÉTICA
========================================================== */

.kanzlere-editorial-imagem-larga {
    width: min(
        calc(100% - 48px),
        1180px
    );

    margin:
        clamp(70px, 8vw, 110px)
        auto 0;
}

.kanzlere-editorial-imagem-larga img {
    width: 100%;

    max-height: 720px;

    object-fit: cover;
    object-position: center;

    background: #eeeeee;
}

.kanzlere-editorial-imagem-larga figcaption {
    margin-top: 14px;

    color: #666666;

    font-size: 12px;
    line-height: 1.55;
}


/* ==========================================================
   CITAÇÃO
========================================================== */

.kanzlere-editorial blockquote {
    margin:
        clamp(65px, 7vw, 90px)
        0;

    padding:
        0 0
        0 34px;

    border-left:
        4px solid
        var(--verde);
}

.kanzlere-editorial blockquote p {
    margin: 0;

    color: #111111;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            25px,
            3vw,
            38px
        );

    font-weight: 400;
    line-height: 1.38;
}


/* ==========================================================
   FICHA INSTITUCIONAL
========================================================== */

.kanzlere-editorial-ficha {
    margin:
        clamp(65px, 7vw, 90px)
        0 0;

    padding: 0;

    border-top:
        1px solid
        #bdbdbd;
}

.kanzlere-editorial-ficha > div {
    display: grid;

    grid-template-columns:
        minmax(130px, 0.8fr)
        minmax(0, 1.7fr);

    gap: 30px;

    padding:
        22px 0;

    border-bottom:
        1px solid
        #d6d6d6;
}

.kanzlere-editorial-ficha dt {
    color: #666666;

    font-size: 12px;
    font-weight: 700;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.kanzlere-editorial-ficha dd {
    margin: 0;

    color: #111111;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 18px;
    line-height: 1.5;
}


/* ==========================================================
   PUBLICAÇÕES
========================================================== */

.kanzlere-editorial-publicacoes {
    scroll-margin-top: 50px;

    margin-top:
        clamp(40px, 5vw, 70px);

    padding:
        clamp(90px, 10vw, 145px)
        24px;

    background:
        #f2f2ef;
}

.kanzlere-editorial-publicacoes-cabecalho {
    width: min(
        100%,
        1180px
    );

    margin:
        0 auto
        clamp(60px, 7vw, 90px);

    display: grid;

    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(280px, 0.6fr);

    gap:
        clamp(50px, 8vw, 120px);

    align-items: end;
}

.kanzlere-editorial-publicacoes-cabecalho h2 {
    margin: 0;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            42px,
            5vw,
            68px
        );

    font-weight: 400;
    line-height: 1;

    letter-spacing: -0.04em;
}

.kanzlere-editorial-publicacoes-cabecalho > p {
    margin: 0;

    color: #505050;

    font-size: 15px;
    line-height: 1.65;
}


/* ==========================================================
   LISTA DE PUBLICAÇÕES
========================================================== */

.kanzlere-editorial-lista-publicacoes {
    width: min(
        100%,
        1180px
    );

    margin: 0 auto;
}

.kanzlere-editorial-publicacao {
    display: grid;

    grid-template-columns:
        minmax(240px, 0.75fr)
        minmax(0, 1.25fr);

    gap:
        clamp(35px, 6vw, 80px);

    padding:
        48px 0;

    border-top:
        1px solid
        #bdbdb8;
}

.kanzlere-editorial-publicacao:last-child {
    border-bottom:
        1px solid
        #bdbdb8;
}

.kanzlere-editorial-publicacao-imagem {
    display: block;

    overflow: hidden;

    align-self: start;

    background: #ddddda;
}

.kanzlere-editorial-publicacao-imagem img {
    width: 100%;
    aspect-ratio: 16 / 10;

    object-fit: cover;

    transition:
        transform 0.35s ease;
}

.kanzlere-editorial-publicacao-imagem:hover img {
    transform: scale(1.025);
}

.kanzlere-editorial-publicacao-conteudo {
    align-self: center;
}

.kanzlere-editorial-publicacao-meta {
    margin-bottom: 20px;

    display: flex;
    flex-wrap: wrap;

    gap:
        8px 22px;

    color: #626262;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.kanzlere-editorial-publicacao h3 {
    margin:
        0 0
        18px;
}

.kanzlere-editorial-publicacao h3 a {
    color: #111111;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            27px,
            3vw,
            42px
        );

    font-weight: 400;
    line-height: 1.08;

    letter-spacing: -0.025em;

    text-decoration: none;
}

.kanzlere-editorial-publicacao h3 a:hover {
    color: var(--verde);
}

.kanzlere-editorial-publicacao-conteudo > p {
    max-width: 680px;

    margin:
        0 0
        25px;

    color: #484848;

    font-size: 16px;
    line-height: 1.65;
}

.kanzlere-editorial-publicacao-link {
    color: var(--verde);

    font-size: 14px;
    font-weight: 800;

    text-decoration: none;
}

.kanzlere-editorial-publicacao-link:hover {
    text-decoration: underline;
}


/* ==========================================================
   ESTADOS DE CARREGAMENTO
========================================================== */

.kanzlere-editorial-lista-publicacoes
.estado-lista {
    margin: 0;

    padding:
        45px 0;

    border-top:
        1px solid
        #bdbdb8;

    border-bottom:
        1px solid
        #bdbdb8;

    color: #606060;

    font-size: 16px;
}

.kanzlere-editorial-lista-publicacoes
.estado-lista.erro {
    color: #9b1c1c;
}


/* ==========================================================
   ÁREA RESERVADA
========================================================== */

.kanzlere-editorial-reservada {
    padding:
        clamp(80px, 9vw, 125px)
        24px;

    color: #ffffff;

    background:
        var(--verde-escuro);
}

.kanzlere-editorial-reservada-conteudo {
    width: min(
        100%,
        1180px
    );

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    gap: 60px;

    align-items: center;
}

.kanzlere-editorial-reservada
.kanzlere-editorial-rotulo {
    color:
        rgba(
            255,
            255,
            255,
            0.72
        );
}

.kanzlere-editorial-reservada h2 {
    margin:
        0 0
        20px;

    color: #ffffff;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            38px,
            4.5vw,
            60px
        );

    font-weight: 400;
    line-height: 1.05;

    letter-spacing: -0.035em;
}

.kanzlere-editorial-reservada p:not(.kanzlere-editorial-rotulo) {
    max-width: 620px;

    margin: 0;

    color:
        rgba(
            255,
            255,
            255,
            0.82
        );

    font-size: 16px;
    line-height: 1.65;
}

.kanzlere-editorial-botao {
    min-width: 235px;

    padding:
        17px 24px;

    display: inline-flex;
    justify-content: center;
    align-items: center;

    border:
        1px solid
        rgba(
            255,
            255,
            255,
            0.65
        );

    color: #ffffff;

    font-size: 14px;
    font-weight: 800;

    text-decoration: none;

    transition:
        background 0.2s ease,
        color 0.2s ease;
}

.kanzlere-editorial-botao:hover {
    color:
        var(--verde-escuro);

    background:
        #ffffff;
}


/* ==========================================================
   SUAVIDADE NOS LINKS INTERNOS
========================================================== */

html {
    scroll-behavior: smooth;
}


/* ==========================================================
   TABLET
========================================================== */

@media (max-width: 900px) {

    .kanzlere-editorial-atalhos-grade {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .kanzlere-editorial-atalhos a {
        border-bottom:
            1px solid
            #cfcfcf;
    }

    .kanzlere-editorial-atalhos a:nth-child(odd) {
        border-left:
            1px solid
            #cfcfcf;
    }

    .kanzlere-editorial-publicacoes-cabecalho {
        grid-template-columns:
            1fr;

        gap: 30px;
    }

    .kanzlere-editorial-publicacao {
        grid-template-columns:
            1fr;

        gap: 30px;
    }

    .kanzlere-editorial-publicacao-imagem {
        width: min(
            100%,
            650px
        );
    }

    .kanzlere-editorial-reservada-conteudo {
        grid-template-columns:
            1fr;

        gap: 38px;
    }

    .kanzlere-editorial-botao {
        width: fit-content;
    }

}


/* ==========================================================
   CELULAR
========================================================== */

@media (max-width: 600px) {

    .kanzlere-editorial-abertura {
        padding:
            72px 20px
            65px;
    }

    .kanzlere-editorial-abertura h1 {
        font-size:
            clamp(
                48px,
                15vw,
                72px
            );

        line-height: 0.98;
    }

    .kanzlere-editorial-introducao {
        font-size: 19px;
        line-height: 1.55;
    }


    /* RETRATO */

    .kanzlere-editorial-retrato {
        padding:
            0 20px
            80px;
    }


    /* ATALHOS */

    .kanzlere-editorial-atalhos {
        padding:
            0 20px
            90px;
    }

    .kanzlere-editorial-atalhos-grade {
        grid-template-columns:
            1fr;
    }

    .kanzlere-editorial-atalhos a,
    .kanzlere-editorial-atalhos a:first-child,
    .kanzlere-editorial-atalhos a:nth-child(odd) {
        min-height: 145px;

        border-left:
            1px solid
            #cfcfcf;

        border-right:
            1px solid
            #cfcfcf;

        border-bottom:
            1px solid
            #cfcfcf;
    }

    .kanzlere-editorial-atalhos strong {
        margin-top: 25px;
    }


    /* TEXTOS */

    .kanzlere-editorial-coluna {
        width:
            calc(
                100% - 40px
            );
    }

    .kanzlere-editorial-texto,
    .kanzlere-editorial-capitulo,
    .kanzlere-editorial-uniao {
        padding:
            75px 0;
    }

    .kanzlere-editorial-coluna h2 {
        font-size:
            clamp(
                36px,
                11vw,
                49px
            );
    }

    .kanzlere-editorial-coluna
    > p:not(.kanzlere-editorial-rotulo) {
        font-size: 18px;
        line-height: 1.7;
    }

    .kanzlere-editorial-coluna
    .kanzlere-editorial-destaque-texto {
        font-size: 25px;
    }


    /* IMAGENS */

    .kanzlere-editorial-imagem-historica,
    .kanzlere-editorial-imagem-larga {
        width:
            calc(
                100% - 40px
            );
    }


    /* CITAÇÃO */

    .kanzlere-editorial blockquote {
        padding-left: 22px;
    }

    .kanzlere-editorial blockquote p {
        font-size: 25px;
    }


    /* FICHA */

    .kanzlere-editorial-ficha > div {
        grid-template-columns:
            1fr;

        gap: 8px;
    }


    /* PUBLICAÇÕES */

    .kanzlere-editorial-publicacoes {
        padding:
            75px 20px;
    }

    .kanzlere-editorial-publicacoes-cabecalho h2 {
        font-size:
            clamp(
                38px,
                11vw,
                50px
            );
    }

    .kanzlere-editorial-publicacao {
        padding:
            35px 0;
    }

    .kanzlere-editorial-publicacao h3 a {
        font-size: 29px;
    }


    /* ÁREA RESERVADA */

    .kanzlere-editorial-reservada {
        padding:
            75px 20px;
    }

    .kanzlere-editorial-botao {
        width: 100%;
    }

}


/* ==========================================================
   TELAS MUITO PEQUENAS
========================================================== */

@media (max-width: 380px) {

    .kanzlere-editorial-abertura h1 {
        font-size: 44px;
    }

    .kanzlere-editorial-introducao {
        font-size: 18px;
    }

    .kanzlere-editorial-coluna h2 {
        font-size: 35px;
    }

}


/* ==========================================================
   IMPRESSÃO
========================================================== */

@media print {

    .kanzlere-editorial-atalhos,
    .kanzlere-editorial-reservada {
        display: none !important;
    }

    .kanzlere-editorial {
        background: #ffffff !important;
    }

    .kanzlere-editorial-texto,
    .kanzlere-editorial-capitulo,
    .kanzlere-editorial-uniao,
    .kanzlere-editorial-publicacoes {
        padding:
            35px 0;
    }

}

/* ========================================
   TERMINAL — AUTORIDADE DECISORA
======================================== */

.terminal-autoridade-decisao {
    margin-top: 18px;
    padding: 15px 17px;

    border:
        1px solid
        rgba(0, 0, 0, 0.24);

    background:
        rgba(255, 255, 255, 0.32);
}

.terminal-autoridade-decisao[hidden] {
    display: none !important;
}

.terminal-autoridade-rotulo {
    display: block;

    margin-bottom: 9px;

    font-size: 10px;
    font-weight: 800;

    letter-spacing: 0.13em;
}

.terminal-autoridade-decisao strong {
    display: block;

    margin-bottom: 3px;

    font-size: 15px;
    line-height: 1.3;
}

.terminal-autoridade-decisao > span:not(
    .terminal-autoridade-rotulo
) {
    display: block;

    font-size: 12px;
    line-height: 1.4;
}

.terminal-autoridade-decisao time {
    display: block;

    margin-top: 9px;
    padding-top: 8px;

    border-top:
        1px dashed
        rgba(0, 0, 0, 0.25);

    font-size: 11px;
    font-weight: 700;
}

/* ========================================
   PAINEL DO KANZLERE — MÓDULOS
======================================== */

.painel-kanzlere-modulos {
    margin-bottom: 52px;
    padding-bottom: 48px;

    border-bottom:
        1px solid
        rgba(0, 0, 0, 0.13);
}

.painel-kanzlere-modulos-cabecalho {
    max-width: 680px;
    margin-bottom: 24px;
}

.painel-kanzlere-modulos-cabecalho h2 {
    margin:
        4px 0
        8px;

    font-size:
        clamp(25px, 3vw, 36px);

    line-height: 1.1;
}

.painel-kanzlere-modulos-cabecalho > p:last-child {
    margin: 0;

    color: #5a5a5a;

    font-size: 15px;
    line-height: 1.6;
}

.painel-kanzlere-modulos-grade {
    display: grid;

    grid-template-columns:
        repeat(2, minmax(0, 1fr));

    border-top:
        1px solid #c9c9c9;

    border-left:
        1px solid #c9c9c9;
}

.painel-kanzlere-modulo {
    position: relative;

    display: grid;

    grid-template-columns:
        auto 1fr auto;

    gap: 20px;

    min-height: 190px;

    padding: 28px;

    color: #111;
    background: #fff;

    border-right:
        1px solid #c9c9c9;

    border-bottom:
        1px solid #c9c9c9;

    text-decoration: none;

    transition:
        background 0.15s ease,
        color 0.15s ease;
}

.painel-kanzlere-modulo:hover {
    color: #fff;
    background: var(--verde);
}

.painel-kanzlere-modulo-numero {
    font-size: 11px;
    font-weight: 800;

    letter-spacing: 0.12em;

    opacity: 0.65;
}

.painel-kanzlere-modulo-tipo {
    display: block;

    margin-bottom: 9px;

    color: var(--verde);

    font-size: 11px;
    font-weight: 800;

    letter-spacing: 0.12em;

    text-transform: uppercase;
}

.painel-kanzlere-modulo:hover
.painel-kanzlere-modulo-tipo {
    color: inherit;
}

.painel-kanzlere-modulo h3 {
    margin:
        0 0
        10px;

    font-size: 22px;
    line-height: 1.15;
}

.painel-kanzlere-modulo p {
    max-width: 390px;

    margin: 0;

    font-size: 14px;
    line-height: 1.55;

    opacity: 0.76;
}

.painel-kanzlere-modulo-seta {
    align-self: end;

    font-size: 24px;

    transition:
        transform 0.15s ease;
}

.painel-kanzlere-modulo:hover
.painel-kanzlere-modulo-seta {
    transform:
        translateX(4px);
}


@media (max-width: 760px) {

    .painel-kanzlere-modulos-grade {
        grid-template-columns: 1fr;
    }

    .painel-kanzlere-modulo {
        min-height: 160px;
    }
}

/* =========================================================
   REGISTRO CENTRAL DE NOMEAÇÕES
   União Sinética
   ========================================================= */

.pagina-nomeacoes {
    --nom-fundo: #d8d4c8;
    --nom-papel: #eeeade;
    --nom-papel-claro: #f5f2e8;
    --nom-tinta: #171914;
    --nom-verde: #32483a;
    --nom-verde-escuro: #202d26;
    --nom-verde-claro: #65786a;
    --nom-vermelho: #8e302b;
    --nom-ouro: #9b8151;
    --nom-linha: #7c7a70;
    --nom-linha-clara: #b8b3a5;
    --nom-cinza: #696b64;
    --nom-sombra: rgba(25, 28, 23, 0.18);

    min-height: 100vh;
    margin: 0;
    background:
        linear-gradient(
            rgba(255, 255, 255, 0.08),
            rgba(0, 0, 0, 0.025)
        ),
        var(--nom-fundo);
    color: var(--nom-tinta);
}


/* =========================================================
   CABEÇALHO
   ========================================================= */

.pagina-nomeacoes .terminal-topo {
    background: var(--nom-verde-escuro);
    border-bottom: 4px solid #141b17;
    color: #f1eee3;
}

.pagina-nomeacoes .terminal-topo-interno {
    min-height: 84px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
}

.pagina-nomeacoes .terminal-marca {
    display: flex;
    align-items: center;
    gap: 15px;
    color: inherit;
    text-decoration: none;
}

.pagina-nomeacoes .terminal-marca img {
    width: 49px;
    height: 49px;
    object-fit: contain;
}

.pagina-nomeacoes .terminal-marca div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.pagina-nomeacoes .terminal-marca strong {
    font-family: "Courier New", monospace;
    font-size: 15px;
    letter-spacing: 0.07em;
}

.pagina-nomeacoes .terminal-marca span {
    color: #b8c0b7;
    font-family: "Courier New", monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
}

.pagina-nomeacoes .terminal-topo-acoes {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pagina-nomeacoes .terminal-status-sistema {
    color: #b9cfb9;
    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.pagina-nomeacoes .terminal-link-voltar,
.pagina-nomeacoes .terminal-botao-sair {
    border: 1px solid #76847b;
    background: transparent;
    color: #f1eee3;
    padding: 9px 13px;
    font-family: "Courier New", monospace;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
}

.pagina-nomeacoes .terminal-link-voltar:hover,
.pagina-nomeacoes .terminal-botao-sair:hover {
    background: #f1eee3;
    color: var(--nom-verde-escuro);
}


/* =========================================================
   BARRA DE IDENTIFICAÇÃO
   ========================================================= */

.pagina-nomeacoes .terminal-barra {
    background: #b9b5a9;
    border-bottom: 1px solid #77786f;
}

.pagina-nomeacoes .terminal-barra-grade {
    display: grid;
    grid-template-columns: 1.5fr 1.5fr 1fr 1fr;
}

.pagina-nomeacoes .terminal-barra-grade > div {
    min-height: 58px;
    padding: 10px 16px;
    border-left: 1px solid #8d8b82;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
}

.pagina-nomeacoes .terminal-barra-grade > div:last-child {
    border-right: 1px solid #8d8b82;
}

.pagina-nomeacoes .terminal-barra-grade span {
    color: #5d5d57;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.pagina-nomeacoes .terminal-barra-grade strong {
    font-family: "Courier New", monospace;
    font-size: 12px;
    text-transform: uppercase;
}


/* =========================================================
   ÁREA PRINCIPAL
   ========================================================= */

.pagina-nomeacoes .terminal-principal {
    padding: 38px 0 70px;
}

.pagina-nomeacoes .terminal-carregando {
    margin: 60px auto;
    padding: 30px;
    max-width: 600px;
    border: 1px solid var(--nom-linha);
    background: var(--nom-papel);
    text-align: center;
    font-family: "Courier New", monospace;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.pagina-nomeacoes .terminal-titulo {
    margin-bottom: 28px;
    border-bottom: 2px solid var(--nom-tinta);
    padding-bottom: 20px;
}

.pagina-nomeacoes .terminal-codigo,
.pagina-nomeacoes .terminal-secao-numero {
    margin: 0 0 7px;
    color: var(--nom-verde);
    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.pagina-nomeacoes .terminal-titulo h1 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(31px, 4vw, 51px);
    line-height: 1;
    font-weight: 500;
}

.pagina-nomeacoes .terminal-titulo > p:last-child {
    max-width: 720px;
    margin: 13px 0 0;
    color: #555850;
    line-height: 1.6;
}


/* =========================================================
   INDICADORES
   ========================================================= */

.nomeacoes-indicadores {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-bottom: 28px;
    border: 1px solid var(--nom-linha);
    background: #c5c1b5;
}

.nomeacoes-indicadores > div {
    min-height: 91px;
    padding: 17px 20px;
    border-right: 1px solid var(--nom-linha);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.nomeacoes-indicadores > div:last-child {
    border-right: 0;
}

.nomeacoes-indicadores span {
    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.nomeacoes-indicadores strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 30px;
    font-weight: 500;
}


/* =========================================================
   BLOCOS / FORMULÁRIOS
   ========================================================= */

.nomeacoes-bloco {
    margin-bottom: 30px;
    border: 1px solid var(--nom-linha);
    background: var(--nom-papel);
    box-shadow: 4px 5px 0 rgba(56, 58, 52, 0.08);
}

.nomeacoes-bloco-cabecalho {
    min-height: 79px;
    padding: 16px 21px;
    border-bottom: 1px solid var(--nom-linha);
    background: #c8c4b8;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.nomeacoes-bloco-cabecalho h2 {
    margin: 0;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 25px;
    font-weight: 500;
}

.nomeacoes-classificacao {
    padding: 6px 9px;
    border: 1px solid #77776f;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.nomeacoes-formulario {
    padding: 24px 21px 27px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 21px;
}

.nomeacoes-campo {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.nomeacoes-campo-largo {
    grid-column: 1 / -1;
}

.nomeacoes-campo label,
.nomeacoes-area-exoneracao label {
    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nomeacoes-campo select,
.nomeacoes-campo textarea,
.nomeacoes-area-exoneracao textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #73746c;
    border-radius: 0;
    outline: none;
    background: #f6f2e6;
    color: var(--nom-tinta);
    padding: 12px 13px;
    font: inherit;
}

.nomeacoes-campo select {
    min-height: 46px;
}

.nomeacoes-campo textarea,
.nomeacoes-area-exoneracao textarea {
    resize: vertical;
    line-height: 1.5;
}

.nomeacoes-campo select:focus,
.nomeacoes-campo textarea:focus,
.nomeacoes-area-exoneracao textarea:focus {
    border-color: var(--nom-verde-escuro);
    box-shadow: inset 0 0 0 1px var(--nom-verde-escuro);
}

.nomeacoes-campo select:disabled {
    background: #d6d2c7;
    color: #797971;
    cursor: not-allowed;
}

.nomeacoes-campo small {
    color: #686960;
    font-family: "Courier New", monospace;
    font-size: 10px;
}


/* =========================================================
   PRÉVIA DO ATO
   ========================================================= */

.nomeacoes-resumo {
    grid-column: 1 / -1;
    position: relative;
    padding: 19px;
    border: 1px dashed #77776f;
    background: #e1ddd1;
}

.nomeacoes-resumo > span {
    display: block;
    margin-bottom: 8px;
    color: #65665f;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.14em;
}

.nomeacoes-resumo > strong {
    display: block;
    margin-bottom: 6px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 23px;
    font-weight: 500;
}

.nomeacoes-resumo p {
    margin: 0;
    line-height: 1.55;
}


/* =========================================================
   BOTÃO PRINCIPAL
   ========================================================= */

.nomeacoes-botao-principal {
    grid-column: 1 / -1;
    min-height: 51px;
    border: 0;
    background: var(--nom-verde-escuro);
    color: #f5f1e5;
    font-family: "Courier New", monospace;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    cursor: pointer;
}

.nomeacoes-botao-principal:hover:not(:disabled) {
    background: #101a14;
}

.nomeacoes-botao-principal:disabled {
    opacity: 0.6;
    cursor: wait;
}


/* =========================================================
   MENSAGENS
   ========================================================= */

.pagina-nomeacoes .terminal-mensagem {
    grid-column: 1 / -1;
    display: none;
    padding: 11px 13px;
    border: 1px solid;
    font-family: "Courier New", monospace;
    font-size: 11px;
    font-weight: 700;
}

.pagina-nomeacoes .terminal-mensagem:not(:empty) {
    display: block;
}

.pagina-nomeacoes .terminal-mensagem.sucesso {
    border-color: #536c59;
    background: #d8e0d5;
    color: #233b2b;
}

.pagina-nomeacoes .terminal-mensagem.erro {
    border-color: #9a4b43;
    background: #ead4cf;
    color: #74271f;
}


/* =========================================================
   CORTE
   ========================================================= */

.nomeacoes-corte {
    border-top: 5px solid var(--nom-verde-escuro);
}

.nomeacoes-bloco-introducao {
    max-width: 790px;
    margin: 0;
    padding: 21px 21px 0;
    color: #55574f;
    line-height: 1.65;
}

.corte-cadeiras {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    padding: 23px 21px;
}

.corte-cadeira {
    min-height: 150px;
    box-sizing: border-box;
    padding: 16px;
    border: 1px solid var(--nom-linha);
    background: #dedacf;
    display: flex;
    flex-direction: column;
    position: relative;
}

.corte-cadeira > span {
    margin-bottom: auto;
    color: #64665e;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.corte-cadeira > strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    font-weight: 500;
}

.corte-cadeira > small {
    margin-top: 5px;
    color: #666860;
    font-family: "Courier New", monospace;
    font-size: 9px;
}

.corte-cadeira.vazia {
    border-style: dashed;
    justify-content: space-between;
    color: #77786f;
}

.corte-cadeira.vazia strong {
    color: #77786f;
    font-family: "Courier New", monospace;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.13em;
}

.corte-cadeira.ocupada {
    cursor: pointer;
}

.corte-cadeira.ocupada:hover {
    background: #d0ccc0;
    border-color: var(--nom-verde-escuro);
}

.corte-cadeira.presidente {
    border: 2px solid var(--nom-ouro);
    background: #e6dfcb;
}

.corte-cadeira.presidente::before {
    content: "";
    position: absolute;
    inset: 5px;
    border: 1px solid rgba(155, 129, 81, 0.45);
    pointer-events: none;
}

.corte-cadeira.presidente b {
    position: relative;
    z-index: 1;
    align-self: flex-start;
    margin-top: 11px;
    padding: 4px 6px;
    background: var(--nom-ouro);
    color: #fff;
    font-family: "Courier New", monospace;
    font-size: 8px;
    letter-spacing: 0.08em;
}


/* =========================================================
   PRESIDÊNCIA DA CORTE
   ========================================================= */

.corte-presidencia {
    margin: 0 21px 23px;
    padding: 20px;
    border: 1px solid #77776e;
    border-left: 6px solid var(--nom-ouro);
    background: #d1ccbe;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}

.corte-presidencia > div {
    display: flex;
    flex-direction: column;
}

.corte-presidencia strong {
    margin: 3px 0 6px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 24px;
    font-weight: 500;
}

.corte-presidencia p {
    margin: 0;
    color: #5d5e57;
    line-height: 1.5;
}

.corte-botao-sorteio {
    flex: 0 0 auto;
    min-width: 190px;
    min-height: 47px;
    border: 1px solid #4e4634;
    background: #736342;
    color: #fffbed;
    padding: 10px 16px;
    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    cursor: pointer;
}

.corte-botao-sorteio:hover:not(:disabled) {
    background: #50452f;
}

.corte-botao-sorteio:disabled {
    background: #999589;
    border-color: #858279;
    color: #ddd9ce;
    cursor: not-allowed;
}

.nomeacoes-corte > .terminal-mensagem {
    margin: -5px 21px 23px;
}


/* =========================================================
   FILTROS
   ========================================================= */

.nomeacoes-filtros {
    padding: 16px 20px;
    border-bottom: 1px solid var(--nom-linha);
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.nomeacoes-filtro {
    border: 1px solid #7d7d74;
    background: #dedacf;
    color: #3f413c;
    padding: 8px 11px;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.06em;
    cursor: pointer;
}

.nomeacoes-filtro:hover {
    background: #c9c5ba;
}

.nomeacoes-filtro.ativo {
    border-color: var(--nom-verde-escuro);
    background: var(--nom-verde-escuro);
    color: #f3efe4;
}


/* =========================================================
   REGISTRO DE NOMEAÇÕES
   ========================================================= */

.nomeacoes-registro {
    min-height: 120px;
}

.terminal-estado-lista {
    margin: 0;
    padding: 35px 20px;
    color: #676860;
    text-align: center;
    font-family: "Courier New", monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.terminal-estado-lista.erro {
    color: var(--nom-vermelho);
}

.nomeacoes-registro-item {
    display: grid;
    grid-template-columns: 185px minmax(0, 1fr) 175px;
    min-height: 105px;
    border-bottom: 1px solid var(--nom-linha-clara);
    cursor: pointer;
}

.nomeacoes-registro-item:last-child {
    border-bottom: 0;
}

.nomeacoes-registro-item:hover {
    background: #ddd9cd;
}

.nomeacoes-registro-item:focus {
    outline: 2px solid var(--nom-verde);
    outline-offset: -3px;
}

.nomeacoes-registro-ato,
.nomeacoes-registro-pessoa,
.nomeacoes-registro-status {
    padding: 17px 19px;
}

.nomeacoes-registro-ato {
    border-right: 1px solid var(--nom-linha-clara);
}

.nomeacoes-registro-ato span,
.nomeacoes-registro-pessoa > span {
    display: block;
    margin-bottom: 6px;
    color: #666860;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.nomeacoes-registro-ato strong {
    font-family: "Courier New", monospace;
    font-size: 12px;
}

.nomeacoes-registro-pessoa strong {
    display: block;
    margin-bottom: 5px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 20px;
    font-weight: 500;
}

.nomeacoes-registro-pessoa p {
    margin: 0;
    font-size: 13px;
}

.nomeacoes-registro-pessoa p b {
    color: #766139;
    font-family: "Courier New", monospace;
    font-size: 9px;
}

.nomeacoes-registro-status {
    border-left: 1px solid var(--nom-linha-clara);
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 8px;
    text-align: right;
}

.nomeacoes-registro-status > span {
    padding: 5px 7px;
    border: 1px solid;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
}

.nomeacoes-registro-status .em-exercicio {
    border-color: #4c6955;
    background: #d5ded3;
    color: #294431;
}

.nomeacoes-registro-status .fora-exercicio {
    border-color: #9b554f;
    background: #ead7d3;
    color: #7a3029;
}

.nomeacoes-registro-status small {
    color: #6a6b64;
    font-family: "Courier New", monospace;
    font-size: 9px;
}

.nomeacoes-registro-item.exonerado {
    opacity: 0.78;
}


/* =========================================================
   MODAL
   ========================================================= */

body.modal-aberto {
    overflow: hidden;
}

.nomeacoes-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    overflow-y: auto;
    padding: 35px 18px;
}

.nomeacoes-modal[hidden] {
    display: none !important;
}

.nomeacoes-modal-fundo {
    position: fixed;
    inset: 0;
    background: rgba(15, 18, 15, 0.76);
    backdrop-filter: blur(2px);
}

.nomeacoes-documento {
    position: relative;
    z-index: 2;
    width: min(760px, 100%);
    margin: 0 auto;
    border: 1px solid #4e5049;
    background:
        linear-gradient(
            rgba(255, 255, 255, 0.12),
            rgba(0, 0, 0, 0.015)
        ),
        #eee9dc;
    box-shadow: 0 25px 70px rgba(0, 0, 0, 0.42);
}

.nomeacoes-documento-topo {
    min-height: 74px;
    padding: 14px 18px;
    box-sizing: border-box;
    background: var(--nom-verde-escuro);
    color: #f4f0e4;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.nomeacoes-documento-topo > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.nomeacoes-documento-topo span {
    color: #b8c2b9;
    font-family: "Courier New", monospace;
    font-size: 9px;
    letter-spacing: 0.1em;
}

.nomeacoes-documento-topo strong {
    font-family: Georgia, "Times New Roman", serif;
    font-size: 22px;
    font-weight: 500;
}

.nomeacoes-documento-topo button {
    width: 38px;
    height: 38px;
    border: 1px solid #718078;
    background: transparent;
    color: #fff;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.nomeacoes-documento-topo button:hover {
    background: #f1eee3;
    color: var(--nom-verde-escuro);
}

.nomeacoes-documento-corpo {
    position: relative;
    padding: 26px;
}


/* =========================================================
   NÚMERO DO ATO
   ========================================================= */

.nomeacoes-documento-numero {
    margin-bottom: 24px;
    padding-bottom: 17px;
    border-bottom: 2px solid #343731;
}

.nomeacoes-documento-numero span {
    display: block;
    margin-bottom: 5px;
    color: #686960;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.nomeacoes-documento-numero strong {
    font-family: "Courier New", monospace;
    font-size: 20px;
    letter-spacing: 0.05em;
}


/* =========================================================
   DADOS DO DOCUMENTO
   ========================================================= */

.nomeacoes-documento-dados {
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    border-top: 1px solid var(--nom-linha-clara);
    border-left: 1px solid var(--nom-linha-clara);
}

.nomeacoes-documento-dados > div {
    min-height: 75px;
    padding: 13px 14px;
    box-sizing: border-box;
    border-right: 1px solid var(--nom-linha-clara);
    border-bottom: 1px solid var(--nom-linha-clara);
}

.nomeacoes-documento-dados dt {
    margin-bottom: 7px;
    color: #6a6b63;
    font-family: "Courier New", monospace;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.nomeacoes-documento-dados dd {
    margin: 0;
    line-height: 1.4;
    font-weight: 600;
}


/* =========================================================
   PRESIDENTE DA CORTE NO DOCUMENTO
   ========================================================= */

.nomeacoes-documento-presidencia {
    margin-top: 19px;
    border: 2px solid var(--nom-ouro);
    padding: 10px 15px;
    color: #6e572c;
    text-align: center;
    font-family: "Courier New", monospace;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
}


/* =========================================================
   OBSERVAÇÕES / EXONERAÇÃO
   ========================================================= */

.nomeacoes-documento-observacoes,
.nomeacoes-documento-exoneracao {
    margin-top: 18px;
    padding: 15px;
    border: 1px solid var(--nom-linha-clara);
    background: rgba(211, 207, 195, 0.55);
}

.nomeacoes-documento-observacoes > span,
.nomeacoes-documento-exoneracao > span {
    display: block;
    margin-bottom: 7px;
    color: #62645d;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.nomeacoes-documento-observacoes p,
.nomeacoes-documento-exoneracao p {
    margin: 0;
    white-space: pre-wrap;
    line-height: 1.55;
}

.nomeacoes-documento-exoneracao {
    border-color: #a3706b;
    background: #e5d2cd;
}

.nomeacoes-documento-exoneracao strong {
    display: block;
    margin-bottom: 4px;
}


/* =========================================================
   CARIMBO
   ========================================================= */

.nomeacoes-carimbo {
    width: max-content;
    margin: 27px 0 10px auto;
    padding: 9px 18px 7px;
    border: 4px double #45624d;
    color: #45624d;
    font-family: "Courier New", monospace;
    font-size: 22px;
    font-weight: 700;
    letter-spacing: 0.09em;
    transform: rotate(-3deg);
    opacity: 0.88;
}

.nomeacoes-carimbo.exonerado {
    border-color: var(--nom-vermelho);
    color: var(--nom-vermelho);
    transform: rotate(3deg);
}


/* =========================================================
   AÇÕES DO DOCUMENTO
   ========================================================= */

.nomeacoes-documento-acoes {
    margin-top: 22px;
    padding-top: 18px;
    border-top: 1px solid var(--nom-linha);
    display: flex;
    justify-content: flex-end;
}

.nomeacoes-botao-exonerar {
    min-height: 44px;
    border: 1px solid #752e28;
    background: var(--nom-vermelho);
    color: #fff;
    padding: 9px 17px;
    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    cursor: pointer;
}

.nomeacoes-botao-exonerar:hover {
    background: #6f211d;
}


/* =========================================================
   ÁREA DE EXONERAÇÃO
   ========================================================= */

.nomeacoes-area-exoneracao {
    margin-top: 18px;
    padding: 17px;
    border: 2px solid #8d4943;
    background: #e6d3ce;
}

.nomeacoes-area-exoneracao textarea {
    margin-top: 8px;
}

.nomeacoes-area-exoneracao > div {
    margin-top: 12px;
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.nomeacoes-area-exoneracao button {
    min-height: 40px;
    border: 1px solid #6d6d65;
    background: #d0ccc1;
    padding: 8px 12px;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    cursor: pointer;
}

#confirmarExoneracao {
    border-color: #702d28;
    background: var(--nom-vermelho);
    color: #fff;
}


/* =========================================================
   RODAPÉ
   ========================================================= */

.pagina-nomeacoes .terminal-rodape {
    border-top: 1px solid #6d6e67;
    background: #b9b5aa;
}

.pagina-nomeacoes .terminal-rodape .container {
    min-height: 61px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #50524c;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 0.08em;
}


/* =========================================================
   ACESSIBILIDADE
   ========================================================= */

.pagina-nomeacoes button:focus-visible,
.pagina-nomeacoes a:focus-visible,
.pagina-nomeacoes select:focus-visible,
.pagina-nomeacoes textarea:focus-visible,
.pagina-nomeacoes [role="button"]:focus-visible {
    outline: 2px solid #171914;
    outline-offset: 3px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .pagina-nomeacoes .terminal-topo-interno {
        padding-top: 14px;
        padding-bottom: 14px;
        align-items: flex-start;
    }

    .pagina-nomeacoes .terminal-topo-acoes {
        flex-wrap: wrap;
        justify-content: flex-end;
    }

    .pagina-nomeacoes .terminal-status-sistema {
        width: 100%;
        text-align: right;
    }

    .pagina-nomeacoes .terminal-barra-grade {
        grid-template-columns: repeat(2, 1fr);
    }

    .pagina-nomeacoes .terminal-barra-grade > div {
        border-bottom: 1px solid #8d8b82;
    }

    .nomeacoes-indicadores {
        grid-template-columns: repeat(2, 1fr);
    }

    .nomeacoes-indicadores > div:nth-child(2) {
        border-right: 0;
    }

    .nomeacoes-indicadores > div:nth-child(-n + 2) {
        border-bottom: 1px solid var(--nom-linha);
    }

    .corte-cadeiras {
        grid-template-columns: 1fr;
    }

    .corte-cadeira {
        min-height: 125px;
    }

    .corte-presidencia {
        align-items: stretch;
        flex-direction: column;
    }

    .corte-botao-sorteio {
        width: 100%;
    }

    .nomeacoes-registro-item {
        grid-template-columns: 150px minmax(0, 1fr);
    }

    .nomeacoes-registro-status {
        grid-column: 1 / -1;
        border-top: 1px solid var(--nom-linha-clara);
        border-left: 0;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }
}


/* =========================================================
   CELULAR
   ========================================================= */

@media (max-width: 620px) {

    .pagina-nomeacoes .terminal-topo-interno {
        flex-direction: column;
    }

    .pagina-nomeacoes .terminal-topo-acoes {
        width: 100%;
        justify-content: flex-start;
    }

    .pagina-nomeacoes .terminal-status-sistema {
        width: auto;
        text-align: left;
    }

    .pagina-nomeacoes .terminal-barra-grade {
        grid-template-columns: 1fr;
    }

    .pagina-nomeacoes .terminal-barra-grade > div {
        border-right: 1px solid #8d8b82;
    }

    .pagina-nomeacoes .terminal-principal {
        padding-top: 24px;
    }

    .nomeacoes-indicadores {
        grid-template-columns: 1fr 1fr;
    }

    .nomeacoes-indicadores > div {
        min-height: 80px;
    }

    .nomeacoes-bloco-cabecalho {
        align-items: flex-start;
        flex-direction: column;
    }

    .nomeacoes-formulario {
        grid-template-columns: 1fr;
        padding: 18px 15px 21px;
    }

    .nomeacoes-campo-largo,
    .nomeacoes-resumo,
    .nomeacoes-botao-principal,
    .pagina-nomeacoes .terminal-mensagem {
        grid-column: auto;
    }

    .nomeacoes-bloco-introducao {
        padding-left: 15px;
        padding-right: 15px;
    }

    .corte-cadeiras {
        padding-left: 15px;
        padding-right: 15px;
    }

    .corte-presidencia {
        margin-left: 15px;
        margin-right: 15px;
    }

    .nomeacoes-filtros {
        padding: 13px 15px;
    }

    .nomeacoes-filtro {
        flex: 1 1 auto;
    }

    .nomeacoes-registro-item {
        display: block;
    }

    .nomeacoes-registro-ato {
        border-right: 0;
        border-bottom: 1px solid var(--nom-linha-clara);
    }

    .nomeacoes-registro-status {
        border-left: 0;
    }

    .nomeacoes-documento-corpo {
        padding: 18px 14px;
    }

    .nomeacoes-documento-dados {
        grid-template-columns: 1fr;
    }

    .nomeacoes-documento-numero strong {
        font-size: 16px;
    }

    .nomeacoes-area-exoneracao > div {
        flex-direction: column;
    }

    .nomeacoes-area-exoneracao button {
        width: 100%;
    }

    .pagina-nomeacoes .terminal-rodape .container {
        padding-top: 15px;
        padding-bottom: 15px;
        align-items: flex-start;
        flex-direction: column;
    }
}

/* =========================================================
   SUPREMO SINÉTION
   Sistema Legislativo da União Sinética

   COLE ESTE BLOCO NO FINAL DO style.css EXISTENTE
   ========================================================= */


/* =========================================================
   BASE DO PAINEL
   ========================================================= */

.pagina-sinetion {
    --sin-fundo: #d8d4c8;
    --sin-papel: #eeeade;
    --sin-papel-claro: #f5f2e8;
    --sin-tinta: #171914;

    --sin-verde: #32483a;
    --sin-verde-escuro: #202d26;
    --sin-verde-claro: #65786a;

    --sin-vermelho: #8e302b;
    --sin-ouro: #9b8151;

    --sin-linha: #7c7a70;
    --sin-linha-clara: #b8b3a5;
    --sin-cinza: #696b64;

    min-height: 100vh;
    margin: 0;

    background:
        linear-gradient(
            rgba(255, 255, 255, 0.08),
            rgba(0, 0, 0, 0.025)
        ),
        var(--sin-fundo);

    color: var(--sin-tinta);
}


/* =========================================================
   CABEÇALHO
   ========================================================= */

.pagina-sinetion .terminal-topo {
    background: var(--sin-verde-escuro);
    border-bottom: 4px solid #141b17;
    color: #f1eee3;
}

.pagina-sinetion .terminal-topo-interno {
    min-height: 84px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 28px;
}

.pagina-sinetion .terminal-marca {
    display: flex;
    align-items: center;
    gap: 15px;

    color: inherit;
    text-decoration: none;
}

.pagina-sinetion .terminal-marca img {
    width: 49px;
    height: 49px;
    object-fit: contain;
}

.pagina-sinetion .terminal-marca div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.pagina-sinetion .terminal-marca strong {
    font-family: "Courier New", monospace;
    font-size: 15px;
    letter-spacing: 0.07em;
}

.pagina-sinetion .terminal-marca span {
    color: #b8c0b7;

    font-family: "Courier New", monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
}

.pagina-sinetion .terminal-topo-acoes {
    display: flex;
    align-items: center;
    gap: 12px;
}

.pagina-sinetion .terminal-status-sistema {
    color: #b9cfb9;

    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.pagina-sinetion .terminal-link-voltar,
.pagina-sinetion .terminal-botao-sair {
    border: 1px solid #76847b;
    background: transparent;
    color: #f1eee3;

    padding: 9px 13px;

    font-family: "Courier New", monospace;
    font-size: 11px;
    font-weight: 700;

    text-decoration: none;
    cursor: pointer;
}

.pagina-sinetion .terminal-link-voltar:hover,
.pagina-sinetion .terminal-botao-sair:hover {
    background: #f1eee3;
    color: var(--sin-verde-escuro);
}


/* =========================================================
   BARRA DE IDENTIFICAÇÃO
   ========================================================= */

.pagina-sinetion .terminal-barra {
    background: #b9b5a9;
    border-bottom: 1px solid #77786f;
}

.pagina-sinetion .terminal-barra-grade {
    display: grid;
    grid-template-columns: 1.5fr 1.7fr 1fr 1fr;
}

.pagina-sinetion .terminal-barra-grade > div {
    min-height: 58px;

    padding: 10px 16px;

    border-left: 1px solid #8d8b82;

    display: flex;
    flex-direction: column;
    justify-content: center;

    gap: 3px;
}

.pagina-sinetion .terminal-barra-grade > div:last-child {
    border-right: 1px solid #8d8b82;
}

.pagina-sinetion .terminal-barra-grade span {
    color: #5d5d57;

    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.12em;
}

.pagina-sinetion .terminal-barra-grade strong {
    font-family: "Courier New", monospace;
    font-size: 12px;

    text-transform: uppercase;
}


/* =========================================================
   ÁREA PRINCIPAL
   ========================================================= */

.pagina-sinetion .terminal-principal {
    padding: 38px 0 70px;
}

.pagina-sinetion .terminal-carregando {
    max-width: 650px;

    margin: 60px auto;
    padding: 30px;

    border: 1px solid var(--sin-linha);

    background: var(--sin-papel);

    text-align: center;

    font-family: "Courier New", monospace;
    font-size: 12px;
    font-weight: 700;

    letter-spacing: 0.1em;
    line-height: 1.6;
}


/* =========================================================
   TÍTULO
   ========================================================= */

.pagina-sinetion .terminal-titulo {
    margin-bottom: 28px;

    border-bottom: 2px solid var(--sin-tinta);

    padding-bottom: 20px;
}

.pagina-sinetion .terminal-codigo,
.pagina-sinetion .terminal-secao-numero {
    margin: 0 0 7px;

    color: var(--sin-verde);

    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;

    letter-spacing: 0.14em;
}

.pagina-sinetion .terminal-titulo h1 {
    margin: 0;

    font-family: Georgia, "Times New Roman", serif;

    font-size: clamp(31px, 4vw, 51px);
    line-height: 1;

    font-weight: 500;
}

.pagina-sinetion .terminal-titulo > p:last-child {
    max-width: 760px;

    margin: 13px 0 0;

    color: #555850;

    line-height: 1.6;
}


/* =========================================================
   INDICADORES DO PLENÁRIO
   ========================================================= */

.sinetion-indicadores {
    display: grid;
    grid-template-columns: repeat(4, 1fr);

    margin-bottom: 28px;

    border: 1px solid var(--sin-linha);

    background: #c5c1b5;
}

.sinetion-indicadores > div {
    min-height: 91px;

    padding: 17px 20px;

    border-right: 1px solid var(--sin-linha);

    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.sinetion-indicadores > div:last-child {
    border-right: 0;
}

.sinetion-indicadores span {
    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;

    letter-spacing: 0.1em;
}

.sinetion-indicadores strong {
    font-family: Georgia, "Times New Roman", serif;

    font-size: 30px;
    font-weight: 500;
}


/* =========================================================
   BLOCOS
   ========================================================= */

.sinetion-bloco {
    margin-bottom: 30px;

    border: 1px solid var(--sin-linha);

    background: var(--sin-papel);

    box-shadow:
        4px 5px 0 rgba(56, 58, 52, 0.08);
}

.sinetion-bloco-cabecalho {
    min-height: 79px;

    padding: 16px 21px;

    border-bottom: 1px solid var(--sin-linha);

    background: #c8c4b8;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;
}

.sinetion-bloco-cabecalho h2 {
    margin: 0;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 25px;
    font-weight: 500;
}

.sinetion-classificacao {
    flex: 0 0 auto;

    padding: 6px 9px;

    border: 1px solid #77776f;

    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.1em;
}


/* =========================================================
   PRESIDÊNCIA DO SUPREMO SINÉTION
   ========================================================= */

.sinetion-presidencia {
    border-top: 5px solid var(--sin-ouro);
}

.sinetion-presidencia-corpo {
    padding: 24px 21px;

    display: flex;
    align-items: center;

    gap: 24px;
}

.sinetion-presidencia-selo {
    flex: 0 0 auto;

    width: 118px;
    height: 118px;

    box-sizing: border-box;

    border: 4px double var(--sin-ouro);

    display: flex;
    align-items: center;
    justify-content: center;

    color: #745e35;

    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;

    letter-spacing: 0.1em;
    text-align: center;

    transform: rotate(-2deg);
}

.sinetion-presidencia-corpo > div:last-child {
    display: flex;
    flex-direction: column;
}

.sinetion-presidencia-corpo > div:last-child > span {
    color: #66665e;

    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.12em;
}

.sinetion-presidencia-corpo strong {
    margin: 5px 0 8px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 26px;
    font-weight: 500;
}

.sinetion-presidencia-corpo p {
    max-width: 690px;

    margin: 0;

    color: #595a53;

    line-height: 1.6;
}


/* =========================================================
   FORMULÁRIO LEGISLATIVO
   ========================================================= */

.sinetion-formulario {
    padding: 24px 21px 27px;

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    gap: 21px;
}

.sinetion-campo {
    display: flex;
    flex-direction: column;

    gap: 7px;
}

.sinetion-campo-largo {
    grid-column: 1 / -1;
}

.sinetion-campo label {
    font-family: "Courier New", monospace;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 0.08em;

    text-transform: uppercase;
}

.sinetion-campo input,
.sinetion-campo select,
.sinetion-campo textarea {
    width: 100%;

    box-sizing: border-box;

    border: 1px solid #73746c;
    border-radius: 0;

    outline: none;

    background: #f6f2e6;
    color: var(--sin-tinta);

    padding: 12px 13px;

    font: inherit;
}

.sinetion-campo input,
.sinetion-campo select {
    min-height: 46px;
}

.sinetion-campo textarea {
    resize: vertical;

    line-height: 1.55;
}

.sinetion-campo input:focus,
.sinetion-campo select:focus,
.sinetion-campo textarea:focus {
    border-color: var(--sin-verde-escuro);

    box-shadow:
        inset 0 0 0 1px var(--sin-verde-escuro);
}

.sinetion-campo-estatico {
    min-height: 46px;

    box-sizing: border-box;

    border: 1px solid #97978e;

    background: #dcd8cc;

    padding: 12px 13px;

    font-family: "Courier New", monospace;

    font-size: 12px;
    font-weight: 700;

    display: flex;
    align-items: center;
}


/* =========================================================
   PRÉVIA DA PROPOSIÇÃO
   ========================================================= */

.sinetion-resumo {
    grid-column: 1 / -1;

    padding: 19px;

    border: 1px dashed #77776f;

    background: #e1ddd1;
}

.sinetion-resumo > span {
    display: block;

    margin-bottom: 8px;

    color: #65665f;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.14em;
}

.sinetion-resumo > strong {
    display: block;

    margin-bottom: 6px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 23px;
    font-weight: 500;
}

.sinetion-resumo p {
    margin: 0;

    line-height: 1.55;
}


/* =========================================================
   BOTÃO PRINCIPAL
   ========================================================= */

.sinetion-botao-principal {
    grid-column: 1 / -1;

    min-height: 51px;

    border: 0;

    background: var(--sin-verde-escuro);
    color: #f5f1e5;

    font-family: "Courier New", monospace;

    font-size: 12px;
    font-weight: 700;

    letter-spacing: 0.1em;

    cursor: pointer;
}

.sinetion-botao-principal:hover:not(:disabled) {
    background: #101a14;
}

.sinetion-botao-principal:disabled {
    opacity: 0.6;

    cursor: wait;
}


/* =========================================================
   MENSAGENS
   ========================================================= */

.pagina-sinetion .terminal-mensagem {
    grid-column: 1 / -1;

    display: none;

    padding: 11px 13px;

    border: 1px solid;

    font-family: "Courier New", monospace;

    font-size: 11px;
    font-weight: 700;
}

.pagina-sinetion .terminal-mensagem:not(:empty) {
    display: block;
}

.pagina-sinetion .terminal-mensagem.sucesso {
    border-color: #536c59;

    background: #d8e0d5;
    color: #233b2b;
}

.pagina-sinetion .terminal-mensagem.erro {
    border-color: #9a4b43;

    background: #ead4cf;
    color: #74271f;
}


/* =========================================================
   FILTROS
   ========================================================= */

.sinetion-filtros {
    padding: 16px 20px;

    border-bottom: 1px solid var(--sin-linha);

    display: flex;
    flex-wrap: wrap;

    gap: 7px;
}

.sinetion-filtro {
    border: 1px solid #7d7d74;

    background: #dedacf;
    color: #3f413c;

    padding: 8px 11px;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.06em;

    cursor: pointer;
}

.sinetion-filtro:hover {
    background: #c9c5ba;
}

.sinetion-filtro.ativo {
    border-color: var(--sin-verde-escuro);

    background: var(--sin-verde-escuro);
    color: #f3efe4;
}


/* =========================================================
   REGISTRO DE PROPOSIÇÕES
   ========================================================= */

.sinetion-registro {
    min-height: 120px;
}

.pagina-sinetion .terminal-estado-lista {
    margin: 0;

    padding: 35px 20px;

    color: #676860;

    text-align: center;

    font-family: "Courier New", monospace;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 0.08em;
}

.sinetion-registro-item {
    min-height: 118px;

    display: grid;

    grid-template-columns:
        185px
        minmax(0, 1fr)
        170px;

    border-bottom:
        1px solid var(--sin-linha-clara);

    cursor: pointer;
}

.sinetion-registro-item:last-child {
    border-bottom: 0;
}

.sinetion-registro-item:hover {
    background: #ddd9cd;
}

.sinetion-registro-item:focus {
    outline: 2px solid var(--sin-verde);

    outline-offset: -3px;
}

.sinetion-registro-numero,
.sinetion-registro-materia,
.sinetion-registro-status {
    padding: 17px 19px;
}

.sinetion-registro-numero {
    border-right:
        1px solid var(--sin-linha-clara);
}

.sinetion-registro-numero span,
.sinetion-registro-materia > span {
    display: block;

    margin-bottom: 6px;

    color: #666860;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.08em;
}

.sinetion-registro-numero strong {
    font-family: "Courier New", monospace;

    font-size: 13px;
}

.sinetion-registro-materia strong {
    display: block;

    margin-bottom: 7px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 20px;
    font-weight: 500;
}

.sinetion-registro-materia p {
    margin: 0;

    color: #55574f;

    font-size: 13px;

    line-height: 1.5;
}

.sinetion-registro-status {
    border-left:
        1px solid var(--sin-linha-clara);

    display: flex;
    flex-direction: column;

    align-items: flex-end;
    justify-content: center;

    gap: 8px;

    text-align: right;
}

.sinetion-registro-status > span {
    padding: 5px 7px;

    border: 1px solid;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;
}

.sinetion-registro-status small {
    color: #6a6b64;

    font-family: "Courier New", monospace;

    font-size: 9px;
}


/* =========================================================
   STATUS
   ========================================================= */

.status-tramitacao {
    border-color: #786d52 !important;

    background: #e1dbc9 !important;
    color: #675937 !important;
}

.status-votacao {
    border-color: #4d6471 !important;

    background: #d2dce0 !important;
    color: #304b59 !important;
}

.status-aprovada {
    border-color: #4c6955 !important;

    background: #d5ded3 !important;
    color: #294431 !important;
}

.status-rejeitada {
    border-color: #9b554f !important;

    background: #ead7d3 !important;
    color: #7a3029 !important;
}

.status-arquivada {
    border-color: #77776f !important;

    background: #dad8d0 !important;
    color: #5c5d57 !important;
}


/* =========================================================
   MODAL
   ========================================================= */

body.modal-aberto {
    overflow: hidden;
}

.sinetion-modal {
    position: fixed;

    inset: 0;

    z-index: 9999;

    overflow-y: auto;

    padding: 35px 18px;
}

.sinetion-modal[hidden] {
    display: none !important;
}

.sinetion-modal-fundo {
    position: fixed;

    inset: 0;

    background: rgba(15, 18, 15, 0.78);

    backdrop-filter: blur(2px);
}

.sinetion-documento {
    position: relative;

    z-index: 2;

    width: min(850px, 100%);

    margin: 0 auto;

    border: 1px solid #4e5049;

    background:
        linear-gradient(
            rgba(255, 255, 255, 0.12),
            rgba(0, 0, 0, 0.015)
        ),
        #eee9dc;

    box-shadow:
        0 25px 70px rgba(0, 0, 0, 0.42);
}


/* =========================================================
   TOPO DO DOCUMENTO
   ========================================================= */

.sinetion-documento-topo {
    min-height: 74px;

    padding: 14px 18px;

    box-sizing: border-box;

    background: var(--sin-verde-escuro);
    color: #f4f0e4;

    display: flex;
    align-items: center;
    justify-content: space-between;
}

.sinetion-documento-topo > div {
    display: flex;
    flex-direction: column;

    gap: 3px;
}

.sinetion-documento-topo span {
    color: #b8c2b9;

    font-family: "Courier New", monospace;

    font-size: 9px;

    letter-spacing: 0.1em;
}

.sinetion-documento-topo strong {
    font-family: Georgia, "Times New Roman", serif;

    font-size: 22px;
    font-weight: 500;
}

.sinetion-documento-topo button {
    width: 38px;
    height: 38px;

    border: 1px solid #718078;

    background: transparent;
    color: #fff;

    font-size: 24px;

    line-height: 1;

    cursor: pointer;
}

.sinetion-documento-topo button:hover {
    background: #f1eee3;

    color: var(--sin-verde-escuro);
}

.sinetion-documento-corpo {
    position: relative;

    padding: 28px;
}


/* =========================================================
   NÚMERO / STATUS
   ========================================================= */

.sinetion-documento-numero {
    margin-bottom: 13px;
}

.sinetion-documento-numero span {
    display: block;

    margin-bottom: 5px;

    color: #686960;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.12em;
}

.sinetion-documento-numero strong {
    font-family: "Courier New", monospace;

    font-size: 20px;

    letter-spacing: 0.05em;
}

.sinetion-documento-status {
    width: max-content;

    margin-bottom: 25px;

    padding: 6px 9px;

    border: 1px solid;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.08em;
}


/* =========================================================
   TÍTULO DA MATÉRIA
   ========================================================= */

.sinetion-documento-titulo {
    margin-bottom: 25px;

    padding: 22px 0;

    border-top: 2px solid #343731;
    border-bottom: 1px solid var(--sin-linha);
}

.sinetion-documento-titulo > span {
    color: #60625b;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.1em;

    text-transform: uppercase;
}

.sinetion-documento-titulo h2 {
    margin: 8px 0 12px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: clamp(25px, 4vw, 36px);
    font-weight: 500;

    line-height: 1.1;
}

.sinetion-documento-titulo p {
    margin: 0;

    color: #4f514b;

    font-size: 14px;

    line-height: 1.65;
}


/* =========================================================
   DADOS DO DOCUMENTO
   ========================================================= */

.sinetion-documento-dados {
    margin: 0 0 25px;

    display: grid;
    grid-template-columns: repeat(2, 1fr);

    border-top: 1px solid var(--sin-linha-clara);
    border-left: 1px solid var(--sin-linha-clara);
}

.sinetion-documento-dados > div {
    min-height: 75px;

    box-sizing: border-box;

    padding: 13px 14px;

    border-right:
        1px solid var(--sin-linha-clara);

    border-bottom:
        1px solid var(--sin-linha-clara);
}

.sinetion-documento-dados dt {
    margin-bottom: 7px;

    color: #6a6b63;

    font-family: "Courier New", monospace;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.1em;
}

.sinetion-documento-dados dd {
    margin: 0;

    font-weight: 600;

    line-height: 1.4;
}


/* =========================================================
   TEXTO INTEGRAL
   ========================================================= */

.sinetion-documento-texto {
    margin-top: 24px;
}

.sinetion-documento-texto > span {
    display: block;

    margin-bottom: 10px;

    color: #64665f;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.12em;
}

.sinetion-documento-texto > div {
    min-height: 120px;

    padding: 22px;

    border: 1px solid var(--sin-linha-clara);

    background: #f4f0e5;

    white-space: pre-wrap;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 15px;

    line-height: 1.75;
}


/* =========================================================
   PLACAR
   ========================================================= */

.sinetion-placar {
    display: grid;

    grid-template-columns: repeat(4, 1fr);

    margin-top: 25px;

    border: 1px solid var(--sin-linha);

    background: #d4d0c4;
}

.sinetion-placar > div {
    min-height: 79px;

    padding: 13px;

    box-sizing: border-box;

    border-right: 1px solid var(--sin-linha);

    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.sinetion-placar > div:last-child {
    border-right: 0;
}

.sinetion-placar span {
    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.08em;
}

.sinetion-placar strong {
    font-family: Georgia, "Times New Roman", serif;

    font-size: 25px;
    font-weight: 500;
}


/* =========================================================
   VOTAÇÃO NOMINAL
   ========================================================= */

.sinetion-votacao-nominal {
    margin-top: 22px;

    border: 1px solid var(--sin-linha);

    background: #e2ded2;
}

.sinetion-votacao-nominal-topo {
    min-height: 67px;

    padding: 13px 16px;

    border-bottom: 1px solid var(--sin-linha);

    background: #cbc7bb;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;
}

.sinetion-votacao-nominal-topo > div {
    display: flex;
    flex-direction: column;
}

.sinetion-votacao-nominal-topo span {
    color: #64665e;

    font-family: "Courier New", monospace;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.1em;
}

.sinetion-votacao-nominal-topo h3 {
    margin: 3px 0 0;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 22px;
    font-weight: 500;
}

.sinetion-votacao-nominal-topo > strong {
    font-family: "Courier New", monospace;

    font-size: 10px;
}

.sinetion-tabela-votos-cabecalho,
.sinetion-tabela-votos-linha {
    display: grid;

    grid-template-columns:
        minmax(0, 2fr)
        minmax(110px, 1fr)
        120px;
}

.sinetion-tabela-votos-cabecalho {
    border-bottom:
        1px solid var(--sin-linha-clara);

    background: #d4d0c5;
}

.sinetion-tabela-votos-cabecalho span {
    padding: 9px 12px;

    font-family: "Courier New", monospace;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.08em;
}

.sinetion-tabela-votos-linha {
    border-bottom:
        1px solid var(--sin-linha-clara);
}

.sinetion-tabela-votos-linha:last-child {
    border-bottom: 0;
}

.sinetion-tabela-votos-linha > * {
    padding: 11px 12px;

    box-sizing: border-box;

    border-right:
        1px solid var(--sin-linha-clara);

    display: flex;
    align-items: center;
}

.sinetion-tabela-votos-linha > *:last-child {
    border-right: 0;
}

.sinetion-tabela-votos-linha > div {
    flex-direction: column;
    align-items: flex-start;

    gap: 3px;
}

.sinetion-tabela-votos-linha strong {
    font-family: Georgia, "Times New Roman", serif;

    font-size: 15px;
    font-weight: 500;
}

.sinetion-tabela-votos-linha small {
    color: #686a62;

    font-family: "Courier New", monospace;

    font-size: 8px;
}

.sinetion-tabela-votos-linha > span {
    font-size: 12px;
}

.sinetion-tabela-votos-linha > b {
    font-family: "Courier New", monospace;

    font-size: 10px;
}

.sinetion-tabela-votos-linha .voto-sim {
    color: #31543b;
}

.sinetion-tabela-votos-linha .voto-nao {
    color: #84352e;
}

.sinetion-tabela-votos-linha .voto-abstencao {
    color: #6d654d;
}

.sinetion-sem-votos {
    margin: 0;

    padding: 25px;

    color: #666860;

    text-align: center;

    font-family: "Courier New", monospace;

    font-size: 10px;
    font-weight: 700;
}


/* =========================================================
   ÁREA DE VOTO DO DEPUTADO
   ========================================================= */

.sinetion-area-voto {
    margin-top: 24px;

    padding: 20px;

    border: 2px solid #596c60;

    background: #d8ded6;
}

.sinetion-area-rotulo {
    display: block;

    color: #526158;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.12em;
}

.sinetion-area-voto h3 {
    margin: 6px 0 6px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 24px;
    font-weight: 500;
}

.sinetion-area-voto > p {
    margin: 0 0 17px;

    color: #555a55;

    line-height: 1.5;
}

.sinetion-votos-botoes {
    display: grid;

    grid-template-columns: repeat(3, 1fr);

    gap: 9px;
}

.sinetion-votos-botoes button {
    min-height: 48px;

    padding: 10px;

    font-family: "Courier New", monospace;

    font-size: 11px;
    font-weight: 700;

    letter-spacing: 0.08em;

    cursor: pointer;
}

.sinetion-votos-botoes .voto-sim {
    border: 1px solid #36543e;

    background: #496c52;
    color: #fff;
}

.sinetion-votos-botoes .voto-sim:hover:not(:disabled) {
    background: #34503d;
}

.sinetion-votos-botoes .voto-nao {
    border: 1px solid #732f29;

    background: var(--sin-vermelho);
    color: #fff;
}

.sinetion-votos-botoes .voto-nao:hover:not(:disabled) {
    background: #6f211d;
}

.sinetion-votos-botoes .voto-abstencao {
    border: 1px solid #625b49;

    background: #82775b;
    color: #fff;
}

.sinetion-votos-botoes .voto-abstencao:hover:not(:disabled) {
    background: #655c46;
}

.sinetion-votos-botoes button:disabled {
    opacity: 0.55;

    cursor: wait;
}

.sinetion-area-voto .terminal-mensagem {
    margin-top: 13px;
}


/* =========================================================
   VOTO JÁ REGISTRADO
   ========================================================= */

.sinetion-voto-registrado {
    margin-top: 22px;

    padding: 16px;

    border: 1px solid #52685a;

    background: #d6dfd4;
}

.sinetion-voto-registrado span {
    display: block;

    margin-bottom: 5px;

    color: #5c685f;

    font-family: "Courier New", monospace;

    font-size: 8px;
    font-weight: 700;

    letter-spacing: 0.1em;
}

.sinetion-voto-registrado strong {
    font-family: "Courier New", monospace;

    font-size: 13px;
}


/* =========================================================
   COMANDOS DA PRESIDÊNCIA
   ========================================================= */

.sinetion-acoes-presidencia {
    margin-top: 24px;

    padding: 20px;

    border: 2px solid var(--sin-ouro);

    background: #ded7c4;
}

.sinetion-acoes-presidencia > span {
    color: #76633f;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.12em;
}

.sinetion-acoes-presidencia > p {
    margin: 7px 0 16px;

    color: #5d584d;

    line-height: 1.5;
}

.sinetion-botao-abrir,
.sinetion-botao-encerrar {
    width: 100%;

    min-height: 48px;

    padding: 10px 15px;

    font-family: "Courier New", monospace;

    font-size: 10px;
    font-weight: 700;

    letter-spacing: 0.08em;

    cursor: pointer;
}

.sinetion-botao-abrir {
    border: 1px solid #3f5948;

    background: var(--sin-verde-escuro);
    color: #fff;
}

.sinetion-botao-abrir:hover:not(:disabled) {
    background: #111b15;
}

.sinetion-botao-encerrar {
    border: 1px solid #6d572f;

    background: #75613b;
    color: #fffbed;
}

.sinetion-botao-encerrar:hover:not(:disabled) {
    background: #554529;
}

.sinetion-botao-abrir:disabled,
.sinetion-botao-encerrar:disabled {
    opacity: 0.55;

    cursor: wait;
}

.sinetion-acoes-presidencia .terminal-mensagem {
    margin-top: 13px;
}


/* =========================================================
   RESULTADO
   ========================================================= */

.sinetion-resultado {
    margin-top: 25px;

    padding: 18px;

    border-top: 2px solid #343731;
    border-bottom: 1px solid var(--sin-linha);

    text-align: center;
}

.sinetion-resultado span {
    display: block;

    margin-bottom: 7px;

    color: #666860;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.12em;
}

.sinetion-resultado strong {
    display: block;

    margin-bottom: 5px;

    font-family: Georgia, "Times New Roman", serif;

    font-size: 27px;
    font-weight: 500;
}

.sinetion-resultado small {
    color: #65675f;

    font-family: "Courier New", monospace;

    font-size: 9px;
}


/* =========================================================
   CARIMBO DO RESULTADO
   ========================================================= */

.sinetion-carimbo {
    width: max-content;

    margin: 29px 0 8px auto;

    padding: 9px 18px 7px;

    border: 4px double;

    font-family: "Courier New", monospace;

    font-size: 23px;
    font-weight: 700;

    letter-spacing: 0.09em;

    opacity: 0.88;
}

.sinetion-carimbo.aprovada {
    border-color: #45624d;

    color: #45624d;

    transform: rotate(-3deg);
}

.sinetion-carimbo.rejeitada {
    border-color: var(--sin-vermelho);

    color: var(--sin-vermelho);

    transform: rotate(3deg);
}


/* =========================================================
   RODAPÉ
   ========================================================= */

.pagina-sinetion .terminal-rodape {
    border-top: 1px solid #6d6e67;

    background: #b9b5aa;
}

.pagina-sinetion .terminal-rodape .container {
    min-height: 61px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 20px;

    color: #50524c;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    letter-spacing: 0.08em;
}


/* =========================================================
   ACESSIBILIDADE
   ========================================================= */

.pagina-sinetion button:focus-visible,
.pagina-sinetion a:focus-visible,
.pagina-sinetion input:focus-visible,
.pagina-sinetion select:focus-visible,
.pagina-sinetion textarea:focus-visible,
.pagina-sinetion [role="button"]:focus-visible {
    outline: 2px solid #171914;

    outline-offset: 3px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .pagina-sinetion .terminal-topo-interno {
        padding-top: 14px;
        padding-bottom: 14px;

        align-items: flex-start;
    }

    .pagina-sinetion .terminal-topo-acoes {
        flex-wrap: wrap;

        justify-content: flex-end;
    }

    .pagina-sinetion .terminal-status-sistema {
        width: 100%;

        text-align: right;
    }

    .pagina-sinetion .terminal-barra-grade {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .pagina-sinetion .terminal-barra-grade > div {
        border-bottom: 1px solid #8d8b82;
    }

    .sinetion-indicadores {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .sinetion-indicadores > div:nth-child(2) {
        border-right: 0;
    }

    .sinetion-indicadores > div:nth-child(-n + 2) {
        border-bottom:
            1px solid var(--sin-linha);
    }

    .sinetion-registro-item {
        grid-template-columns:
            155px
            minmax(0, 1fr);
    }

    .sinetion-registro-status {
        grid-column: 1 / -1;

        border-top:
            1px solid var(--sin-linha-clara);

        border-left: 0;

        flex-direction: row;

        align-items: center;
        justify-content: space-between;

        text-align: left;
    }

    .sinetion-tabela-votos-cabecalho,
    .sinetion-tabela-votos-linha {
        grid-template-columns:
            minmax(0, 1.6fr)
            120px
            100px;
    }
}


/* =========================================================
   CELULAR
   ========================================================= */

@media (max-width: 620px) {

    .pagina-sinetion .terminal-topo-interno {
        flex-direction: column;
    }

    .pagina-sinetion .terminal-topo-acoes {
        width: 100%;

        justify-content: flex-start;
    }

    .pagina-sinetion .terminal-status-sistema {
        width: auto;

        text-align: left;
    }

    .pagina-sinetion .terminal-barra-grade {
        grid-template-columns: 1fr;
    }

    .pagina-sinetion .terminal-barra-grade > div {
        border-right: 1px solid #8d8b82;
    }

    .pagina-sinetion .terminal-principal {
        padding-top: 24px;
    }


    /* INDICADORES */

    .sinetion-indicadores {
        grid-template-columns:
            1fr 1fr;
    }

    .sinetion-indicadores > div {
        min-height: 80px;
    }


    /* CABEÇALHOS */

    .sinetion-bloco-cabecalho {
        align-items: flex-start;

        flex-direction: column;
    }


    /* PRESIDÊNCIA */

    .sinetion-presidencia-corpo {
        align-items: flex-start;

        flex-direction: column;
    }

    .sinetion-presidencia-selo {
        width: 92px;
        height: 92px;
    }


    /* FORMULÁRIO */

    .sinetion-formulario {
        grid-template-columns: 1fr;

        padding: 18px 15px 21px;
    }

    .sinetion-campo-largo,
    .sinetion-resumo,
    .sinetion-botao-principal,
    .pagina-sinetion .terminal-mensagem {
        grid-column: auto;
    }


    /* FILTROS */

    .sinetion-filtros {
        padding: 13px 15px;
    }

    .sinetion-filtro {
        flex: 1 1 auto;
    }


    /* LISTA */

    .sinetion-registro-item {
        display: block;
    }

    .sinetion-registro-numero {
        border-right: 0;

        border-bottom:
            1px solid var(--sin-linha-clara);
    }

    .sinetion-registro-status {
        border-left: 0;
    }


    /* DOCUMENTO */

    .sinetion-documento-corpo {
        padding: 18px 14px;
    }

    .sinetion-documento-dados {
        grid-template-columns: 1fr;
    }

    .sinetion-documento-numero strong {
        font-size: 16px;
    }


    /* PLACAR */

    .sinetion-placar {
        grid-template-columns:
            repeat(2, 1fr);
    }

    .sinetion-placar > div:nth-child(2) {
        border-right: 0;
    }

    .sinetion-placar > div:nth-child(-n + 2) {
        border-bottom:
            1px solid var(--sin-linha);
    }


    /* VOTAÇÃO */

    .sinetion-votos-botoes {
        grid-template-columns: 1fr;
    }


    /* VOTAÇÃO NOMINAL */

    .sinetion-tabela-votos-cabecalho {
        display: none;
    }

    .sinetion-tabela-votos-linha {
        display: grid;

        grid-template-columns: 1fr 110px;
    }

    .sinetion-tabela-votos-linha > div {
        grid-column: 1 / -1;

        border-right: 0;

        border-bottom:
            1px solid var(--sin-linha-clara);
    }


    /* RODAPÉ */

    .pagina-sinetion .terminal-rodape .container {
        padding-top: 15px;
        padding-bottom: 15px;

        align-items: flex-start;

        flex-direction: column;
    }
}

/* ============================================================
   SUPREMO SINÉTION — PÁGINA PÚBLICA
============================================================ */

.pagina-publica-sinetion {
    background: #ffffff;
    color: #171717;
}


/* ============================================================
   HERO
============================================================ */

.sinetion-publico-hero {
    background:
        linear-gradient(
            110deg,
            #004c32 0%,
            #006b45 65%,
            #0b7852 100%
        );
    color: #ffffff;
    padding: 76px 0 82px;
    position: relative;
    overflow: hidden;
}

.sinetion-publico-hero::after {
    content: "";
    position: absolute;
    width: 420px;
    height: 420px;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 50%;
    right: -100px;
    top: -170px;
}

.sinetion-publico-hero .container {
    position: relative;
    z-index: 1;
}

.sinetion-publico-sobretitulo {
    margin: 0 0 15px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    opacity: .82;
}

.sinetion-publico-hero h1 {
    margin: 0;
    max-width: 780px;
    font-size: clamp(42px, 6vw, 72px);
    line-height: .98;
    letter-spacing: -.045em;
    font-weight: 800;
}

.sinetion-publico-introducao {
    max-width: 710px;
    margin: 26px 0 0;
    font-size: 19px;
    line-height: 1.6;
    color: rgba(255,255,255,.88);
}


/* ============================================================
   INSTITUCIONAL
============================================================ */

.sinetion-publico-institucional {
    padding: 76px 0;
    border-bottom: 1px solid #e1e1dc;
}

.sinetion-publico-grade-institucional {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(300px, .7fr);
    gap: 80px;
    align-items: start;
}

.sinetion-publico-etiqueta {
    display: block;
    margin-bottom: 13px;
    color: #006b45;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.sinetion-publico-descricao h2 {
    margin: 0 0 26px;
    font-size: clamp(31px, 4vw, 47px);
    line-height: 1.05;
    letter-spacing: -.035em;
}

.sinetion-publico-descricao p {
    max-width: 760px;
    margin: 0 0 18px;
    color: #444943;
    font-size: 17px;
    line-height: 1.75;
}

.sinetion-publico-presidencia {
    border-top: 5px solid #006b45;
    background: #f3f4f0;
    padding: 28px 30px 30px;
}

.sinetion-publico-presidencia span {
    display: block;
    color: #5d635e;
    font-size: 12px;
    line-height: 1.4;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.sinetion-publico-presidencia strong {
    display: block;
    margin-top: 21px;
    font-size: 25px;
    line-height: 1.15;
}

.sinetion-publico-presidencia small {
    display: block;
    margin-top: 7px;
    color: #666b67;
    font-size: 14px;
}


/* ============================================================
   PLENÁRIO — RESUMO
============================================================ */

.sinetion-publico-resumo {
    background: #f5f5f2;
    padding: 70px 0 74px;
    border-bottom: 1px solid #deded9;
}

.sinetion-publico-titulo-secao {
    display: flex;
    justify-content: space-between;
    gap: 50px;
    align-items: flex-end;
    margin-bottom: 40px;
}

.sinetion-publico-titulo-secao span {
    display: block;
    color: #006b45;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .11em;
    margin-bottom: 8px;
}

.sinetion-publico-titulo-secao h2 {
    margin: 0;
    font-size: 42px;
    line-height: 1;
    letter-spacing: -.035em;
}

.sinetion-publico-titulo-secao p {
    max-width: 460px;
    margin: 0;
    color: #646862;
    font-size: 15px;
    line-height: 1.6;
}

.sinetion-publico-indicadores {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    background: #ffffff;
    border: 1px solid #d9d9d3;
}

.sinetion-publico-indicadores > div {
    padding: 29px 30px 27px;
    border-right: 1px solid #deded9;
}

.sinetion-publico-indicadores > div:last-child {
    border-right: 0;
}

.sinetion-publico-indicadores strong {
    display: block;
    color: #004c32;
    font-size: 36px;
    line-height: 1;
    letter-spacing: -.04em;
}

.sinetion-publico-indicadores span {
    display: block;
    margin-top: 9px;
    color: #656a65;
    font-size: 13px;
    font-weight: 700;
}


/* ============================================================
   PROPOSIÇÕES
============================================================ */

.sinetion-publico-proposicoes {
    padding: 76px 0 100px;
}

.sinetion-publico-cabecalho-lista {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 35px;
    padding-bottom: 22px;
    border-bottom: 2px solid #171917;
}

.sinetion-publico-cabecalho-lista h2 {
    margin: 0;
    font-size: 34px;
    letter-spacing: -.025em;
}

.sinetion-publico-filtros {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.sinetion-publico-filtros button {
    appearance: none;
    border: 1px solid #c9ccc7;
    background: #ffffff;
    color: #3e433e;
    padding: 9px 14px;
    font: inherit;
    font-size: 12px;
    font-weight: 750;
    cursor: pointer;
    transition:
        background .15s ease,
        color .15s ease,
        border-color .15s ease;
}

.sinetion-publico-filtros button:hover {
    border-color: #006b45;
    color: #006b45;
}

.sinetion-publico-filtros button.ativo {
    background: #006b45;
    border-color: #006b45;
    color: #ffffff;
}


/* ============================================================
   MENSAGENS
============================================================ */

.sinetion-publico-mensagem,
.sinetion-publico-vazio {
    padding: 48px 0;
    color: #626762;
    font-size: 15px;
}

.sinetion-publico-mensagem.erro {
    color: #8e302b;
}

.sinetion-publico-vazio {
    border-bottom: 1px solid #deded9;
}

.sinetion-publico-vazio strong {
    display: block;
    color: #252825;
    font-size: 18px;
}

.sinetion-publico-vazio p {
    margin: 7px 0 0;
}


/* ============================================================
   LISTA DE MATÉRIAS
============================================================ */

.sinetion-publico-lista {
    border-top: 0;
}

.sinetion-publico-proposicao {
    padding: 33px 0 31px;
    border-bottom: 1px solid #d8dad6;
}

.sinetion-publico-proposicao-topo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
}

.sinetion-publico-proposicao-identificacao {
    display: flex;
    align-items: center;
    gap: 13px;
}

.sinetion-publico-proposicao-identificacao strong {
    color: #006b45;
    font-size: 14px;
    letter-spacing: .03em;
}

.sinetion-publico-proposicao-identificacao span {
    color: #737873;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .055em;
}

.sinetion-publico-status {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border: 1px solid #c8cbc6;
    color: #5c615c;
    font-size: 10px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.sinetion-publico-status.status-votacao {
    background: #f2eadb;
    border-color: #c9b17b;
    color: #755c28;
}

.sinetion-publico-status.status-aprovada {
    background: #e9f0eb;
    border-color: #a9bcae;
    color: #31543c;
}

.sinetion-publico-status.status-rejeitada {
    background: #f2e8e6;
    border-color: #c8aaa6;
    color: #823c36;
}

.sinetion-publico-status.status-arquivada {
    background: #eeeeeb;
    color: #666a66;
}

.sinetion-publico-proposicao h3 {
    max-width: 930px;
    margin: 18px 0 11px;
    font-size: clamp(21px, 3vw, 28px);
    line-height: 1.2;
    letter-spacing: -.02em;
}

.sinetion-publico-proposicao-ementa {
    max-width: 950px;
    margin: 0;
    color: #555a55;
    font-size: 15px;
    line-height: 1.65;
}

.sinetion-publico-proposicao-rodape {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    margin-top: 23px;
}

.sinetion-publico-proposicao-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 24px;
    color: #767a76;
    font-size: 12px;
}

.sinetion-publico-ver {
    flex: 0 0 auto;
    border: 0;
    border-bottom: 1px solid #006b45;
    background: transparent;
    color: #006b45;
    padding: 4px 0;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

.sinetion-publico-ver:hover {
    color: #004c32;
    border-color: #004c32;
}


/* ============================================================
   MODAL
============================================================ */

body.modal-aberto {
    overflow: hidden;
}

.sinetion-publico-modal[hidden] {
    display: none !important;
}

.sinetion-publico-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: grid;
    place-items: center;
    padding: 32px;
}

.sinetion-publico-modal-fundo {
    position: absolute;
    inset: 0;
    background: rgba(13, 18, 15, .72);
    backdrop-filter: blur(2px);
}

.sinetion-publico-documento {
    position: relative;
    z-index: 1;
    width: min(900px, 100%);
    max-height: calc(100vh - 64px);
    overflow-y: auto;
    background: #fdfdf9;
    box-shadow: 0 24px 80px rgba(0,0,0,.28);
}

.sinetion-publico-documento > header {
    background: #004c32;
    color: #ffffff;
    padding: 26px 38px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 25px;
}

.sinetion-publico-documento > header span {
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    opacity: .8;
}

.sinetion-publico-documento > header strong {
    font-size: 14px;
    letter-spacing: .04em;
}

.sinetion-publico-fechar {
    position: absolute;
    z-index: 5;
    right: 7px;
    top: 73px;
    width: 42px;
    height: 42px;
    border: 0;
    background: transparent;
    color: #4d524d;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.sinetion-publico-documento-corpo {
    padding: 48px 55px 58px;
}

.sinetion-publico-documento-status {
    margin-bottom: 19px;
}

.sinetion-publico-documento-status span {
    display: inline-block;
    color: #006b45;
    font-size: 11px;
    font-weight: 850;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.sinetion-publico-documento h2 {
    max-width: 760px;
    margin: 0;
    font-size: clamp(29px, 5vw, 43px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.sinetion-publico-documento-ementa {
    margin: 24px 0 0;
    padding: 21px 0;
    border-top: 1px solid #d5d8d2;
    border-bottom: 1px solid #d5d8d2;
    color: #555b55;
    font-size: 16px;
    line-height: 1.7;
}

.sinetion-publico-documento-meta {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1fr;
    gap: 20px;
    margin-top: 28px;
}

.sinetion-publico-documento-meta div {
    min-width: 0;
}

.sinetion-publico-documento-meta span {
    display: block;
    color: #7a7f7a;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
}

.sinetion-publico-documento-meta strong {
    display: block;
    margin-top: 6px;
    color: #272a27;
    font-size: 13px;
    line-height: 1.4;
}

.sinetion-publico-texto-integral {
    margin-top: 43px;
    color: #282b28;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 16px;
    line-height: 1.85;
    white-space: pre-wrap;
}


/* ============================================================
   RESULTADO DA VOTAÇÃO
============================================================ */

.sinetion-publico-resultado[hidden] {
    display: none !important;
}

.sinetion-publico-resultado {
    margin-top: 48px;
    padding-top: 28px;
    border-top: 3px solid #004c32;
}

.sinetion-publico-resultado h3 {
    margin: 0 0 19px;
    font-size: 19px;
}

.sinetion-publico-placar {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid #d5d8d2;
}

.sinetion-publico-placar > div {
    padding: 20px;
    text-align: center;
    border-right: 1px solid #d5d8d2;
}

.sinetion-publico-placar > div:last-child {
    border-right: 0;
}

.sinetion-publico-placar strong {
    display: block;
    color: #004c32;
    font-size: 29px;
}

.sinetion-publico-placar span {
    display: block;
    margin-top: 4px;
    color: #6c716c;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}


/* ============================================================
   ACESSIBILIDADE
============================================================ */

.sinetion-publico-filtros button:focus-visible,
.sinetion-publico-ver:focus-visible,
.sinetion-publico-fechar:focus-visible {
    outline: 3px solid rgba(0,107,69,.3);
    outline-offset: 3px;
}


/* ============================================================
   RESPONSIVO
============================================================ */

@media (max-width: 900px) {

    .sinetion-publico-grade-institucional {
        grid-template-columns: 1fr;
        gap: 45px;
    }

    .sinetion-publico-presidencia {
        max-width: 520px;
    }

    .sinetion-publico-indicadores {
        grid-template-columns: repeat(2, 1fr);
    }

    .sinetion-publico-indicadores > div:nth-child(2) {
        border-right: 0;
    }

    .sinetion-publico-indicadores > div:nth-child(-n+2) {
        border-bottom: 1px solid #deded9;
    }

    .sinetion-publico-titulo-secao,
    .sinetion-publico-cabecalho-lista {
        align-items: flex-start;
        flex-direction: column;
    }

    .sinetion-publico-documento-meta {
        grid-template-columns: 1fr 1fr;
    }

}


@media (max-width: 620px) {

    .sinetion-publico-hero {
        padding: 52px 0 58px;
    }

    .sinetion-publico-introducao {
        font-size: 16px;
    }

    .sinetion-publico-institucional,
    .sinetion-publico-proposicoes {
        padding-top: 55px;
        padding-bottom: 65px;
    }

    .sinetion-publico-resumo {
        padding: 52px 0;
    }

    .sinetion-publico-indicadores {
        grid-template-columns: 1fr 1fr;
    }

    .sinetion-publico-indicadores > div {
        padding: 22px 18px;
    }

    .sinetion-publico-indicadores strong {
        font-size: 30px;
    }

    .sinetion-publico-proposicao-topo,
    .sinetion-publico-proposicao-rodape {
        align-items: flex-start;
        flex-direction: column;
    }

    .sinetion-publico-proposicao-identificacao {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .sinetion-publico-modal {
        padding: 10px;
    }

    .sinetion-publico-documento {
        max-height: calc(100vh - 20px);
    }

    .sinetion-publico-documento > header {
        padding: 22px 25px;
    }

    .sinetion-publico-documento-corpo {
        padding: 42px 25px 40px;
    }

    .sinetion-publico-documento-meta {
        grid-template-columns: 1fr;
    }

    .sinetion-publico-fechar {
        top: 68px;
        right: 4px;
    }

    .sinetion-publico-placar > div {
        padding: 16px 8px;
    }

    .sinetion-publico-placar strong {
        font-size: 25px;
    }

}

/* ============================================================
   SUPREMO SINÉTION — ACESSO INSTITUCIONAL
============================================================ */

.sinetion-publico-acesso {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px 20px;
    margin-top: 34px;
}

.sinetion-publico-botao-acesso {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;

    min-width: 230px;
    padding: 14px 18px;

    border: 1px solid rgba(255,255,255,.65);

    background: #ffffff;
    color: #004c32;

    text-decoration: none;

    font-size: 13px;
    font-weight: 800;

    transition:
        background .15s ease,
        color .15s ease,
        border-color .15s ease;
}

.sinetion-publico-botao-acesso:hover {
    background: transparent;
    color: #ffffff;
    border-color: #ffffff;
}

.sinetion-publico-acesso-status {
    color: rgba(255,255,255,.68);
    font-size: 12px;
    font-weight: 650;
}


/* RESPONSIVO */

@media (max-width: 620px) {

    .sinetion-publico-acesso {
        align-items: flex-start;
        flex-direction: column;
    }

    .sinetion-publico-botao-acesso {
        width: 100%;
    }

}

/* ============================================================
   CORTE DA UNIÃO SINÉTICA — PÁGINA PÚBLICA
============================================================ */

.pagina-publica-corte {
    background: #ffffff;
    color: #171917;
}


/* ============================================================
   HERO — PODER JUDICIÁRIO
============================================================ */

.corte-publica-hero {
    position: relative;
    overflow: hidden;

    padding: 82px 0 88px;

    background:
        linear-gradient(
            112deg,
            #10251e 0%,
            #17392d 52%,
            #005f40 100%
        );

    color: #ffffff;
}


/* detalhe arquitetônico */

.corte-publica-hero::before {
    content: "";

    position: absolute;
    top: 0;
    right: 8%;

    width: 1px;
    height: 100%;

    background:
        rgba(255,255,255,.08);
}


.corte-publica-hero::after {
    content: "";

    position: absolute;
    right: -140px;
    bottom: -260px;

    width: 600px;
    height: 600px;

    border:
        1px solid
        rgba(255,255,255,.07);

    border-radius: 50%;
}


.corte-publica-hero .container {
    position: relative;
    z-index: 2;
}


/* ============================================================
   TÍTULO
============================================================ */

.corte-publica-sobretitulo {
    margin: 0 0 16px;

    font-size: 12px;
    font-weight: 800;

    text-transform: uppercase;

    letter-spacing: .16em;

    color:
        rgba(255,255,255,.72);
}


.corte-publica-hero h1 {
    margin: 0;

    max-width: 800px;

    font-size:
        clamp(
            48px,
            7vw,
            82px
        );

    line-height: .96;

    letter-spacing: -.05em;

    font-weight: 800;
}


.corte-publica-introducao {
    max-width: 680px;

    margin: 28px 0 0;

    color:
        rgba(255,255,255,.84);

    font-size: 18px;

    line-height: 1.65;
}


/* ============================================================
   ACESSO DOS MINISTROS
============================================================ */

.corte-publica-acesso {
    display: flex;

    align-items: center;

    flex-wrap: wrap;

    gap: 14px 21px;

    margin-top: 38px;
}


.corte-publica-botao-acesso {
    display: inline-flex;

    align-items: center;

    justify-content: space-between;

    gap: 34px;

    min-width: 235px;

    padding: 14px 18px;

    border:
        1px solid
        rgba(255,255,255,.68);

    background: #ffffff;

    color: #17392d;

    text-decoration: none;

    font-size: 13px;

    font-weight: 800;

    transition:
        background .15s ease,
        color .15s ease,
        border-color .15s ease;
}


.corte-publica-botao-acesso:hover {
    background: transparent;

    color: #ffffff;

    border-color: #ffffff;
}


.corte-publica-acesso-status {
    color:
        rgba(255,255,255,.65);

    font-size: 12px;

    font-weight: 650;
}


/* ============================================================
   SEÇÃO INSTITUCIONAL
============================================================ */

.corte-publica-institucional {
    padding: 82px 0;

    border-bottom:
        1px solid #dedfdc;
}


.corte-publica-grade-institucional {
    display: grid;

    grid-template-columns:
        minmax(0, 1.6fr)
        minmax(290px, .65fr);

    gap: 85px;

    align-items: start;
}


.corte-publica-etiqueta {
    display: block;

    margin-bottom: 13px;

    color: #006b45;

    font-size: 11px;

    font-weight: 850;

    text-transform: uppercase;

    letter-spacing: .13em;
}


.corte-publica-descricao h2 {
    margin: 0 0 27px;

    font-size:
        clamp(
            31px,
            4vw,
            48px
        );

    line-height: 1.05;

    letter-spacing: -.035em;
}


.corte-publica-descricao p {
    max-width: 760px;

    margin: 0 0 18px;

    color: #4d524e;

    font-size: 16px;

    line-height: 1.78;
}


/* ============================================================
   QUADRO DE JURISDIÇÃO
============================================================ */

.corte-publica-jurisdicao {
    position: relative;

    padding: 31px 32px 34px;

    background: #f1f3f0;

    border-top:
        5px solid #17392d;
}


.corte-publica-jurisdicao span {
    display: block;

    color: #707570;

    font-size: 10px;

    font-weight: 850;

    text-transform: uppercase;

    letter-spacing: .1em;
}


.corte-publica-jurisdicao strong {
    display: block;

    margin-top: 8px;

    color: #17251f;

    font-size: 26px;

    line-height: 1.15;

    letter-spacing: -.02em;
}


.corte-publica-jurisdicao p {
    margin: 5px 0 0;

    color: #676c68;

    font-size: 13px;
}


.corte-publica-jurisdicao-linha {
    height: 1px;

    margin: 25px 0;

    background: #d4d7d3;
}


/* ============================================================
   PRESIDÊNCIA DA CORTE
============================================================ */

.corte-publica-presidencia-secao {
    padding: 74px 0 78px;

    background: #f4f5f2;

    border-bottom:
        1px solid #dcdfda;
}


.corte-publica-cabecalho-secao {
    display: flex;

    justify-content: space-between;

    align-items: flex-end;

    gap: 45px;

    margin-bottom: 35px;
}


.corte-publica-cabecalho-secao h2 {
    margin: 0;

    font-size:
        clamp(
            31px,
            4vw,
            44px
        );

    line-height: 1.05;

    letter-spacing: -.035em;
}


.corte-publica-cabecalho-secao > p {
    max-width: 430px;

    margin: 0;

    color: #666b67;

    font-size: 14px;

    line-height: 1.65;
}


/* ============================================================
   PRESIDENTE
============================================================ */

.corte-publica-presidente {
    background: #ffffff;

    border:
        1px solid #d8dbd6;

    border-left:
        6px solid #17392d;
}


.corte-publica-presidente-conteudo {
    display: grid;

    grid-template-columns:
        minmax(0, 1.3fr)
        minmax(340px, .8fr);

    gap: 50px;

    padding: 39px 42px;
}


.corte-publica-presidente-principal {
    align-self: center;
}


.corte-publica-presidente-etiqueta {
    display: block;

    margin-bottom: 12px;

    color: #006b45;

    font-size: 10px;

    font-weight: 850;

    text-transform: uppercase;

    letter-spacing: .12em;
}


.corte-publica-presidente-nome {
    display: block;

    max-width: 600px;

    color: #18231e;

    font-size:
        clamp(
            27px,
            4vw,
            39px
        );

    line-height: 1.08;

    letter-spacing: -.035em;
}


.corte-publica-presidente-cargo {
    margin: 11px 0 0;

    color: #696e69;

    font-size: 14px;
}


.corte-publica-presidente-dados {
    display: grid;

    grid-template-columns:
        1fr 1fr;

    gap: 22px 30px;

    padding-left: 35px;

    border-left:
        1px solid #dadcd8;
}


.corte-publica-presidente-dados div {
    min-width: 0;
}


.corte-publica-presidente-dados span {
    display: block;

    color: #858985;

    font-size: 9px;

    font-weight: 850;

    text-transform: uppercase;

    letter-spacing: .09em;
}


.corte-publica-presidente-dados strong {
    display: block;

    margin-top: 5px;

    color: #333834;

    font-size: 13px;

    line-height: 1.4;
}


/* presidência vaga */

.corte-publica-presidente-vago {
    padding: 37px 42px;
}


.corte-publica-presidente-vago span {
    display: block;

    color: #006b45;

    font-size: 10px;

    font-weight: 850;

    text-transform: uppercase;

    letter-spacing: .1em;
}


.corte-publica-presidente-vago strong {
    display: block;

    margin-top: 10px;

    color: #252a26;

    font-size: 28px;
}


.corte-publica-presidente-vago p {
    max-width: 630px;

    margin: 10px 0 0;

    color: #6a6f6a;

    font-size: 14px;

    line-height: 1.6;
}


/* carregamento */

.corte-publica-carregando {
    padding: 34px 40px;

    color: #686d69;

    font-size: 14px;
}


/* ============================================================
   COMPOSIÇÃO
============================================================ */

.corte-publica-composicao {
    padding: 82px 0 100px;
}


.corte-publica-cabecalho-composicao {
    display: flex;

    justify-content: space-between;

    align-items: flex-end;

    gap: 40px;

    padding-bottom: 24px;

    border-bottom:
        2px solid #17231e;
}


.corte-publica-cabecalho-composicao h2 {
    margin: 0;

    font-size:
        clamp(
            31px,
            4vw,
            43px
        );

    line-height: 1;

    letter-spacing: -.035em;
}


/* contador */

.corte-publica-contador {
    text-align: right;
}


.corte-publica-contador strong {
    display: block;

    color: #17392d;

    font-size: 31px;

    line-height: 1;
}


.corte-publica-contador span {
    display: block;

    margin-top: 5px;

    color: #777c78;

    font-size: 11px;

    font-weight: 700;
}


/* ============================================================
   GRID DOS TRÊS MINISTROS
============================================================ */

.corte-publica-ministros {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    border-left:
        1px solid #d8dad7;
}


/* ============================================================
   CARD DO MINISTRO
============================================================ */

.corte-publica-ministro {
    position: relative;

    min-width: 0;

    padding: 34px 31px 38px;

    border-right:
        1px solid #d8dad7;

    border-bottom:
        1px solid #d8dad7;

    background: #ffffff;
}


.corte-publica-ministro.presidente {
    background:
        linear-gradient(
            180deg,
            #f2f5f2 0%,
            #ffffff 100%
        );

    box-shadow:
        inset 0 4px 0 #17392d;
}


/* assento */

.corte-publica-ministro-assento {
    display: block;

    margin-bottom: 31px;

    color: #b0b4b0;

    font-size: 12px;

    font-weight: 850;

    letter-spacing: .12em;
}


/* cargo */

.corte-publica-ministro-cargo {
    display: block;

    margin-bottom: 9px;

    color: #006b45;

    font-size: 10px;

    font-weight: 850;

    text-transform: uppercase;

    letter-spacing: .09em;
}


/* nome */

.corte-publica-ministro h3 {
    min-height: 66px;

    margin: 0;

    color: #202521;

    font-size:
        clamp(
            22px,
            2.5vw,
            29px
        );

    line-height: 1.12;

    letter-spacing: -.025em;
}


/* divisor */

.corte-publica-ministro-linha {
    width: 38px;

    height: 3px;

    margin: 24px 0;

    background: #17392d;
}


/* dados */

.corte-publica-ministro-dados {
    display: grid;

    gap: 17px;
}


.corte-publica-ministro-dados div {
    min-width: 0;
}


.corte-publica-ministro-dados span {
    display: block;

    color: #8a8e8a;

    font-size: 9px;

    font-weight: 850;

    text-transform: uppercase;

    letter-spacing: .08em;
}


.corte-publica-ministro-dados strong {
    display: block;

    margin-top: 4px;

    color: #474c48;

    font-size: 12px;

    line-height: 1.45;

    word-break: break-word;
}


/* ============================================================
   ESTADOS DE ERRO / VAZIO
============================================================ */

.corte-publica-mensagem {
    padding: 30px 0;

    color: #666b67;

    font-size: 14px;
}


.corte-publica-mensagem.erro {
    color: #873c37;
}


.corte-publica-vazio {
    padding: 50px 0;

    border-bottom:
        1px solid #dedfdd;
}


.corte-publica-vazio strong {
    display: block;

    color: #303531;

    font-size: 19px;
}


.corte-publica-vazio p {
    max-width: 550px;

    margin: 8px 0 0;

    color: #747975;

    font-size: 14px;

    line-height: 1.6;
}


/* ============================================================
   NOTA INSTITUCIONAL
============================================================ */

.corte-publica-nota {
    padding: 0 0 90px;
}


.corte-publica-nota-conteudo {
    display: grid;

    grid-template-columns:
        minmax(180px, .5fr)
        minmax(0, 1.5fr);

    gap: 45px;

    padding: 28px 31px;

    border-top:
        1px solid #cfd2ce;

    border-bottom:
        1px solid #cfd2ce;
}


.corte-publica-nota-conteudo span {
    color: #17392d;

    font-size: 11px;

    font-weight: 850;

    text-transform: uppercase;

    letter-spacing: .1em;
}


.corte-publica-nota-conteudo p {
    max-width: 720px;

    margin: 0;

    color: #666b67;

    font-size: 13px;

    line-height: 1.65;
}


/* ============================================================
   FOCO / ACESSIBILIDADE
============================================================ */

.corte-publica-botao-acesso:focus-visible {
    outline:
        3px solid
        rgba(255,255,255,.4);

    outline-offset: 4px;
}


/* ============================================================
   RESPONSIVIDADE — TABLET
============================================================ */

@media (max-width: 950px) {

    .corte-publica-grade-institucional {
        grid-template-columns: 1fr;

        gap: 45px;
    }


    .corte-publica-jurisdicao {
        max-width: 520px;
    }


    .corte-publica-presidente-conteudo {
        grid-template-columns: 1fr;

        gap: 32px;
    }


    .corte-publica-presidente-dados {
        padding-left: 0;

        padding-top: 27px;

        border-left: 0;

        border-top:
            1px solid #dadcd8;
    }


    .corte-publica-ministros {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}


/* ============================================================
   RESPONSIVIDADE — CELULAR
============================================================ */

@media (max-width: 650px) {

    .corte-publica-hero {
        padding:
            56px 0 62px;
    }


    .corte-publica-hero h1 {
        font-size: 51px;
    }


    .corte-publica-introducao {
        font-size: 16px;
    }


    .corte-publica-acesso {
        align-items: flex-start;

        flex-direction: column;
    }


    .corte-publica-botao-acesso {
        width: 100%;
    }


    .corte-publica-institucional,
    .corte-publica-presidencia-secao,
    .corte-publica-composicao {
        padding-top: 57px;

        padding-bottom: 62px;
    }


    .corte-publica-cabecalho-secao,
    .corte-publica-cabecalho-composicao {
        align-items: flex-start;

        flex-direction: column;

        gap: 25px;
    }


    .corte-publica-contador {
        text-align: left;
    }


    .corte-publica-presidente-conteudo {
        padding:
            31px 25px;
    }


    .corte-publica-presidente-dados {
        grid-template-columns: 1fr;
    }


    .corte-publica-presidente-vago {
        padding:
            31px 25px;
    }


    .corte-publica-ministros {
        grid-template-columns: 1fr;
    }


    .corte-publica-ministro h3 {
        min-height: auto;
    }


    .corte-publica-nota {
        padding-bottom: 60px;
    }


    .corte-publica-nota-conteudo {
        grid-template-columns: 1fr;

        gap: 14px;
    }

}

/* ============================================================
   CORTE — SISTEMA JUDICIAL INTERNO
============================================================ */

.painel-corte {
    margin: 0;
    min-height: 100vh;
    background: #c9c7b9;
    color: #1b211d;
    font-family:
        "Arial Narrow",
        "Roboto Condensed",
        Arial,
        sans-serif;
}


/* ============================================================
   BARRA SUPERIOR
============================================================ */

.corte-sistema-topo {
    height: 68px;

    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 0 25px;

    background: #10251e;
    color: #e9eadf;

    border-bottom: 4px solid #7f1f22;

    box-sizing: border-box;
}


.corte-sistema-identidade {
    display: flex;
    align-items: center;
    gap: 13px;
}


.corte-sistema-identidade img {
    width: 39px;
    height: 39px;

    object-fit: contain;

    filter: grayscale(1) brightness(3);
}


.corte-sistema-identidade div {
    display: flex;
    flex-direction: column;
}


.corte-sistema-identidade span {
    color: #aeb9b1;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: .16em;
}


.corte-sistema-identidade strong {
    margin-top: 2px;

    color: #ffffff;

    font-size: 15px;
    font-weight: 900;

    letter-spacing: .07em;
}


.corte-sistema-topo-direita {
    display: flex;
    align-items: center;
    gap: 20px;
}


#corteSistemaRelogio {
    color: #bec9c0;

    font-family: "Courier New", monospace;

    font-size: 12px;
    font-weight: 700;

    letter-spacing: .08em;
}


.corte-sistema-sair {
    padding: 8px 11px;

    border: 1px solid #62746a;

    color: #e4e8e4;

    text-decoration: none;

    font-size: 9px;
    font-weight: 850;

    letter-spacing: .09em;

    transition:
        background .15s ease,
        border-color .15s ease;
}


.corte-sistema-sair:hover {
    background: #233d33;
    border-color: #93a398;
}


/* ============================================================
   CARREGAMENTO
============================================================ */

.corte-sistema-carregamento {
    min-height: calc(100vh - 68px);

    display: grid;
    place-items: center;

    padding: 30px;

    box-sizing: border-box;

    background:
        repeating-linear-gradient(
            0deg,
            rgba(16,37,30,.025) 0,
            rgba(16,37,30,.025) 1px,
            transparent 1px,
            transparent 4px
        ),
        #c9c7b9;
}


.corte-sistema-carregamento-caixa {
    width: min(460px, 100%);

    padding: 35px 38px;

    box-sizing: border-box;

    background: #d9d7c8;

    border: 1px solid #77796e;
    border-top: 6px solid #17392d;

    box-shadow: 7px 7px 0 rgba(31,37,32,.15);
}


.corte-sistema-carregamento-caixa span {
    display: block;

    color: #596159;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: .14em;
}


.corte-sistema-carregamento-caixa strong {
    display: block;

    margin-top: 14px;

    color: #15271f;

    font-size: 23px;
    font-weight: 900;

    letter-spacing: -.02em;
}


.corte-sistema-carregamento-caixa p {
    margin: 12px 0 0;

    color: #5c615b;

    font-size: 12px;
    line-height: 1.6;
}


/* ============================================================
   ACESSO NEGADO
============================================================ */

.corte-sistema-negado[hidden],
.corte-sistema-carregamento[hidden],
.corte-sistema[hidden] {
    display: none !important;
}


.corte-sistema-negado {
    min-height: calc(100vh - 68px);

    display: grid;
    place-items: center;

    padding: 30px;

    box-sizing: border-box;

    background:
        repeating-linear-gradient(
            -45deg,
            rgba(80,32,31,.025) 0,
            rgba(80,32,31,.025) 8px,
            transparent 8px,
            transparent 16px
        ),
        #c9c7b9;
}


.corte-sistema-negado-caixa {
    width: min(550px, 100%);

    padding: 40px;

    box-sizing: border-box;

    background: #d8d5c5;

    border: 1px solid #696c63;
    border-left: 7px solid #7f2525;

    box-shadow: 8px 8px 0 rgba(42,39,33,.15);
}


.corte-sistema-codigo {
    display: block;

    color: #7f2525;

    font-family: "Courier New", monospace;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .14em;
}


.corte-sistema-negado h1 {
    margin: 17px 0 0;

    color: #282d28;

    font-size: 31px;
    line-height: 1.05;

    letter-spacing: -.035em;
}


.corte-sistema-negado p {
    margin: 17px 0 26px;

    color: #555a54;

    font-size: 13px;
    line-height: 1.7;
}


.corte-sistema-negado a {
    display: inline-block;

    padding: 11px 15px;

    background: #17392d;

    border: 1px solid #0d251c;

    color: #ffffff;

    text-decoration: none;

    font-size: 10px;
    font-weight: 900;

    letter-spacing: .08em;
}


/* ============================================================
   ESTRUTURA PRINCIPAL
============================================================ */

.corte-sistema {
    min-height: calc(100vh - 68px);

    display: grid;

    grid-template-columns:
        275px
        minmax(0, 1fr);

    background: #c9c7b9;
}


/* ============================================================
   BARRA LATERAL
============================================================ */

.corte-sistema-lateral {
    position: relative;

    display: flex;
    flex-direction: column;

    min-height: calc(100vh - 68px);

    background: #26362f;

    color: #e3e5de;

    border-right: 1px solid #0c1d16;
}


/* ============================================================
   SESSÃO
============================================================ */

.corte-sistema-sessao {
    padding: 22px 23px 19px;

    background: #172a22;

    border-bottom: 1px solid #46574e;
}


.corte-sistema-sessao span {
    display: block;

    color: #91a298;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .15em;
}


.corte-sistema-sessao strong {
    display: block;

    margin-top: 5px;

    color: #ffffff;

    font-family: "Courier New", monospace;

    font-size: 17px;
    font-weight: 900;

    letter-spacing: .08em;
}


/* ============================================================
   MAGISTRADO
============================================================ */

.corte-sistema-magistrado {
    padding: 23px;

    border-bottom: 1px solid #536159;
}


.corte-sistema-magistrado > span {
    display: block;

    color: #91a097;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .12em;
}


.corte-sistema-magistrado > strong {
    display: block;

    margin-top: 8px;

    color: #ffffff;

    font-size: 18px;
    line-height: 1.12;

    letter-spacing: -.015em;
}


.corte-sistema-magistrado > small {
    display: block;

    margin-top: 6px;

    color: #aeb9b2;

    font-size: 10px;
    line-height: 1.4;
}


/* ============================================================
   CREDENCIAIS
============================================================ */

.corte-sistema-credenciais {
    margin: 0;
    padding: 17px 23px 20px;

    border-bottom: 1px solid #536159;
}


.corte-sistema-credenciais div {
    margin: 0 0 14px;
}


.corte-sistema-credenciais div:last-child {
    margin-bottom: 0;
}


.corte-sistema-credenciais dt {
    color: #83958a;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .13em;
}


.corte-sistema-credenciais dd {
    margin: 4px 0 0;

    color: #d6ddd8;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 700;

    line-height: 1.4;

    word-break: break-word;
}


/* ============================================================
   MENU
============================================================ */

.corte-sistema-menu {
    padding: 14px 0;
}


.corte-sistema-menu button {
    width: 100%;

    display: grid;

    grid-template-columns:
        35px
        1fr;

    align-items: center;

    gap: 5px;

    padding: 13px 20px;

    border: 0;
    border-left: 4px solid transparent;

    background: transparent;

    color: #c3cbc5;

    text-align: left;

    font: inherit;

    font-size: 10px;
    font-weight: 850;

    letter-spacing: .045em;

    cursor: pointer;

    transition:
        background .12s ease,
        border-color .12s ease,
        color .12s ease;
}


.corte-sistema-menu button span {
    color: #788b80;

    font-family: "Courier New", monospace;

    font-size: 8px;
}


.corte-sistema-menu button:hover:not(:disabled) {
    background: #30483d;

    color: #ffffff;
}


.corte-sistema-menu button.ativo {
    background: #d2d0c2;

    border-left-color: #7f2525;

    color: #19271f;
}


.corte-sistema-menu button.ativo span {
    color: #7f2525;
}


.corte-sistema-menu button:disabled {
    opacity: .35;

    cursor: not-allowed;
}


/* ============================================================
   RODAPÉ LATERAL
============================================================ */

.corte-sistema-lateral-rodape {
    margin-top: auto;

    padding: 20px 23px;

    background: #1a2b24;

    border-top: 1px solid #4b5c52;
}


.corte-sistema-lateral-rodape span {
    display: block;

    color: #7f9186;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .13em;
}


.corte-sistema-lateral-rodape strong {
    display: block;

    margin-top: 4px;

    color: #cbd2cd;

    font-size: 9px;

    letter-spacing: .06em;
}


/* ============================================================
   ÁREA PRINCIPAL
============================================================ */

.corte-sistema-principal {
    min-width: 0;

    padding: 32px 36px 70px;

    box-sizing: border-box;

    background:
        repeating-linear-gradient(
            0deg,
            rgba(29,48,38,.018) 0,
            rgba(29,48,38,.018) 1px,
            transparent 1px,
            transparent 5px
        ),
        #c9c7b9;
}


/* ============================================================
   CABEÇALHO DO PAINEL
============================================================ */

.corte-sistema-cabecalho {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    padding-bottom: 22px;

    border-bottom: 3px double #475148;
}


.corte-sistema-cabecalho > div:first-child > span {
    display: block;

    color: #59635b;

    font-family: "Courier New", monospace;

    font-size: 9px;
    font-weight: 900;

    letter-spacing: .12em;
}


.corte-sistema-cabecalho h1 {
    margin: 7px 0 0;

    color: #17241e;

    font-size: 39px;
    line-height: 1;

    letter-spacing: -.04em;
}


/* ============================================================
   SELO DA CREDENCIAL
============================================================ */

.corte-sistema-selo {
    min-width: 135px;

    padding: 10px 13px;

    box-sizing: border-box;

    border: 2px solid #385447;

    transform: rotate(-1deg);

    text-align: center;
}


.corte-sistema-selo span {
    display: block;

    color: #53675d;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .13em;
}


.corte-sistema-selo strong {
    display: block;

    margin-top: 3px;

    color: #254538;

    font-family: "Courier New", monospace;

    font-size: 14px;

    letter-spacing: .08em;
}


.corte-sistema-selo.presidencia {
    border-color: #7c2928;
}


.corte-sistema-selo.presidencia span,
.corte-sistema-selo.presidencia strong {
    color: #742625;
}


/* ============================================================
   AVISO
============================================================ */

.corte-sistema-aviso {
    display: grid;

    grid-template-columns:
        170px
        minmax(0, 1fr);

    gap: 25px;

    margin-top: 20px;

    padding: 14px 17px;

    background: #bdbbaa;

    border: 1px solid #8e8e81;
    border-left: 5px solid #7d2524;
}


.corte-sistema-aviso span {
    color: #702827;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .11em;
}


.corte-sistema-aviso p {
    margin: 0;

    color: #4b4e49;

    font-size: 11px;
    line-height: 1.55;
}


/* ============================================================
   TELAS
============================================================ */

.corte-sistema-tela[hidden] {
    display: none !important;
}


.corte-sistema-tela {
    margin-top: 34px;
}


/* ============================================================
   TÍTULO DE TELA
============================================================ */

.corte-sistema-titulo {
    display: flex;

    align-items: flex-end;
    justify-content: space-between;

    gap: 30px;

    margin-bottom: 22px;
}


.corte-sistema-titulo > div > span {
    display: block;

    color: #626960;

    font-family: "Courier New", monospace;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .12em;
}


.corte-sistema-titulo h2 {
    margin: 6px 0 0;

    color: #202820;

    font-size: 27px;

    letter-spacing: -.025em;
}


.corte-sistema-status {
    padding: 6px 10px;

    background: #375646;

    color: #ffffff;

    font-family: "Courier New", monospace;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .12em;
}


/* ============================================================
   INDICADORES
============================================================ */

.corte-sistema-indicadores {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    border-top: 1px solid #73776d;
    border-left: 1px solid #73776d;
}


.corte-sistema-indicadores article {
    min-width: 0;

    padding: 22px 21px;

    background: #d4d2c3;

    border-right: 1px solid #73776d;
    border-bottom: 1px solid #73776d;
}


.corte-sistema-indicadores article > span {
    display: block;

    color: #666d65;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .12em;
}


.corte-sistema-indicadores article > strong {
    display: block;

    margin-top: 10px;

    color: #17372a;

    font-family: "Courier New", monospace;

    font-size: 23px;

    line-height: 1;
}


.corte-sistema-indicadores article > small {
    display: block;

    margin-top: 7px;

    color: #6b7069;

    font-size: 9px;
    line-height: 1.4;
}


/* ============================================================
   BLOCOS
============================================================ */

.corte-sistema-bloco {
    margin-top: 27px;

    background: #d5d3c4;

    border: 1px solid #777a70;

    box-shadow: 3px 3px 0 rgba(56,60,53,.09);
}


.corte-sistema-bloco-topo {
    display: flex;

    justify-content: space-between;
    align-items: flex-end;

    gap: 30px;

    padding: 16px 19px;

    background: #b9b8aa;

    border-bottom: 1px solid #777a70;
}


.corte-sistema-bloco-topo div > span {
    display: block;

    color: #5d645d;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .13em;
}


.corte-sistema-bloco-topo h3 {
    margin: 4px 0 0;

    color: #242b25;

    font-size: 16px;
}


.corte-sistema-bloco-topo > span {
    color: #5b625c;

    font-family: "Courier New", monospace;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .09em;
}


/* ============================================================
   COMPOSIÇÃO INTERNA
============================================================ */

.corte-sistema-composicao {
    padding: 0;
}


.corte-sistema-ministro {
    display: grid;

    grid-template-columns:
        45px
        minmax(0, 1fr)
        minmax(120px, .35fr)
        105px;

    align-items: center;

    gap: 17px;

    padding: 17px 19px;

    border-bottom: 1px solid #a4a398;
}


.corte-sistema-ministro:last-child {
    border-bottom: 0;
}


.corte-sistema-ministro.presidente {
    background: #c8c6b7;

    box-shadow:
        inset 5px 0 0 #7c2928;
}


.corte-sistema-ministro-numero {
    color: #72786f;

    font-family: "Courier New", monospace;

    font-size: 13px;
    font-weight: 900;
}


.corte-sistema-ministro-info {
    min-width: 0;
}


.corte-sistema-ministro-info span {
    display: block;

    color: #526158;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .11em;
}


.corte-sistema-ministro.presidente
.corte-sistema-ministro-info span {
    color: #792a29;
}


.corte-sistema-ministro-info strong {
    display: block;

    margin-top: 4px;

    color: #1e2821;

    font-size: 15px;

    line-height: 1.2;
}


.corte-sistema-ministro-info small {
    display: block;

    margin-top: 4px;

    color: #666d66;

    font-size: 9px;
}


.corte-sistema-ministro-ato span {
    display: block;

    color: #747970;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .1em;
}


.corte-sistema-ministro-ato strong {
    display: block;

    margin-top: 4px;

    color: #454d46;

    font-family: "Courier New", monospace;

    font-size: 9px;

    word-break: break-word;
}


.corte-sistema-ministro-status {
    justify-self: end;

    padding: 5px 7px;

    border: 1px solid #52705f;

    color: #365646;

    font-family: "Courier New", monospace;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .07em;
}


.corte-sistema-sem-dados {
    margin: 0;

    padding: 25px;

    color: #666b65;

    font-size: 11px;
}


/* ============================================================
   MÓDULOS
============================================================ */

.corte-sistema-modulos {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));
}


.corte-sistema-modulos > div {
    padding: 20px;

    border-right: 1px solid #9a9b90;
}


.corte-sistema-modulos > div:last-child {
    border-right: 0;
}


.corte-sistema-modulos span {
    display: block;

    color: #676e67;

    font-size: 7px;
    font-weight: 900;

    letter-spacing: .12em;
}


.corte-sistema-modulos strong {
    display: block;

    margin-top: 8px;

    color: #765d2b;

    font-family: "Courier New", monospace;

    font-size: 9px;

    line-height: 1.45;
}


/* ============================================================
   ÁREA DA PRESIDÊNCIA
============================================================ */

.corte-sistema-presidencia-info {
    padding: 26px;

    background: #d3d0bf;

    border: 1px solid #817d6f;
    border-left: 7px solid #7c2928;

    box-shadow: 4px 4px 0 rgba(58,52,44,.1);
}


.corte-sistema-presidencia-info > span {
    display: block;

    color: #782a29;

    font-size: 8px;
    font-weight: 900;

    letter-spacing: .12em;
}


.corte-sistema-presidencia-info > strong {
    display: block;

    margin-top: 10px;

    color: #272a25;

    font-size: 25px;

    letter-spacing: -.025em;
}


.corte-sistema-presidencia-info > p {
    max-width: 680px;

    margin: 10px 0 0;

    color: #5d605a;

    font-size: 11px;
    line-height: 1.6;
}


/* ============================================================
   PENDENTE
============================================================ */

.corte-sistema-pendente {
    padding: 28px;
}


.corte-sistema-pendente strong {
    display: block;

    color: #775d29;

    font-family: "Courier New", monospace;

    font-size: 10px;

    letter-spacing: .08em;
}


.corte-sistema-pendente p {
    max-width: 700px;

    margin: 10px 0 0;

    color: #626760;

    font-size: 11px;

    line-height: 1.65;
}


/* ============================================================
   DETALHES DE INTERFACE
============================================================ */

.corte-sistema button,
.corte-sistema a {
    -webkit-tap-highlight-color: transparent;
}


.corte-sistema button:focus-visible,
.corte-sistema a:focus-visible,
.corte-sistema-sair:focus-visible {
    outline: 2px solid #e0c675;
    outline-offset: 2px;
}


/* ============================================================
   RESPONSIVIDADE — TABLET
============================================================ */

@media (max-width: 1000px) {

    .corte-sistema {
        grid-template-columns:
            235px
            minmax(0, 1fr);
    }


    .corte-sistema-principal {
        padding:
            28px 25px 60px;
    }


    .corte-sistema-ministro {
        grid-template-columns:
            35px
            minmax(0, 1fr)
            90px;
    }


    .corte-sistema-ministro-ato {
        display: none;
    }

}


/* ============================================================
   RESPONSIVIDADE — MOBILE
============================================================ */

@media (max-width: 760px) {

    .corte-sistema-topo {
        height: auto;

        min-height: 64px;

        padding: 12px 15px;
    }


    .corte-sistema-identidade img {
        width: 32px;
        height: 32px;
    }


    .corte-sistema-identidade strong {
        font-size: 12px;
    }


    #corteSistemaRelogio {
        display: none;
    }


    .corte-sistema-sair {
        font-size: 7px;
    }


    .corte-sistema {
        display: block;

        min-height: auto;
    }


    .corte-sistema-lateral {
        min-height: auto;
    }


    .corte-sistema-sessao,
    .corte-sistema-magistrado {
        padding:
            17px 18px;
    }


    .corte-sistema-credenciais {
        display: grid;

        grid-template-columns:
            1fr 1fr;

        gap: 12px;

        padding:
            16px 18px;
    }


    .corte-sistema-credenciais div {
        margin: 0;
    }


    .corte-sistema-menu {
        display: flex;

        overflow-x: auto;

        padding: 0;

        border-top: 1px solid #526259;
    }


    .corte-sistema-menu button {
        flex: 0 0 auto;

        width: auto;

        grid-template-columns:
            auto auto;

        padding:
            13px 16px;

        border-left: 0;

        border-bottom:
            4px solid transparent;
    }


    .corte-sistema-menu button.ativo {
        border-left: 0;

        border-bottom-color:
            #7f2525;
    }


    .corte-sistema-lateral-rodape {
        display: none;
    }


    .corte-sistema-principal {
        padding:
            24px 16px 55px;
    }


    .corte-sistema-cabecalho {
        align-items: flex-start;

        flex-direction: column;
    }


    .corte-sistema-cabecalho h1 {
        font-size: 32px;
    }


    .corte-sistema-aviso {
        grid-template-columns: 1fr;

        gap: 7px;
    }


    .corte-sistema-indicadores {
        grid-template-columns: 1fr;
    }


    .corte-sistema-modulos {
        grid-template-columns: 1fr;
    }


    .corte-sistema-modulos > div {
        border-right: 0;

        border-bottom:
            1px solid #9a9b90;
    }


    .corte-sistema-modulos > div:last-child {
        border-bottom: 0;
    }


    .corte-sistema-ministro {
        grid-template-columns:
            30px
            minmax(0, 1fr);

        gap: 13px;
    }


    .corte-sistema-ministro-status {
        grid-column: 2;

        justify-self: start;
    }


    .corte-sistema-titulo {
        align-items: flex-start;

        flex-direction: column;

        gap: 12px;
    }

}


/* ============================================================
   TELAS MUITO PEQUENAS
============================================================ */

@media (max-width: 430px) {

    .corte-sistema-topo-direita {
        gap: 8px;
    }


    .corte-sistema-identidade span {
        display: none;
    }


    .corte-sistema-credenciais {
        grid-template-columns: 1fr;
    }


    .corte-sistema-principal {
        padding-left: 12px;
        padding-right: 12px;
    }


    .corte-sistema-bloco-topo {
        align-items: flex-start;

        flex-direction: column;

        gap: 8px;
    }

}

/* ============================================================
   CORTE — MÓDULO PROCESSUAL
============================================================ */

.corte-botao-primario,
.corte-botao-secundario {
    border: 0;
    font: inherit;
    cursor: pointer;
}

.corte-botao-primario {
    padding: 11px 15px;
    background: #17392d;
    border: 1px solid #0d261c;
    color: #fff;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;
}

.corte-botao-primario:hover {
    background: #234c3c;
}

.corte-botao-primario:disabled {
    opacity: .55;
    cursor: wait;
}

.corte-botao-secundario {
    padding: 8px 11px;
    background: transparent;
    border: 1px solid #6e756d;
    color: #39453d;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .08em;
}


/* ============================================================
   RESUMO
============================================================ */

.corte-processos-resumo {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-bottom: 26px;
    border-top: 1px solid #777a70;
    border-left: 1px solid #777a70;
}

.corte-processos-resumo > div {
    padding: 17px 18px;
    background: #d1cfc0;
    border-right: 1px solid #777a70;
    border-bottom: 1px solid #777a70;
}

.corte-processos-resumo span {
    display: block;
    color: #697069;
    font-size: 7px;
    font-weight: 900;
    letter-spacing: .11em;
}

.corte-processos-resumo strong {
    display: block;
    margin-top: 7px;
    color: #17392d;
    font-family: "Courier New", monospace;
    font-size: 20px;
}


/* ============================================================
   MENSAGEM
============================================================ */

.corte-processos-mensagem {
    margin-bottom: 20px;
    padding: 12px 15px;
    border: 1px solid #7a8077;
    background: #d5d3c4;
    font-size: 10px;
    font-weight: 700;
}

.corte-processos-mensagem.sucesso {
    border-left: 5px solid #315f48;
    color: #294d3b;
}

.corte-processos-mensagem.erro {
    border-left: 5px solid #7c2928;
    color: #702827;
}


/* ============================================================
   ACERVO
============================================================ */

.corte-processos-lista {
    background: #d5d3c4;
}

.corte-processos-carregando,
.corte-processos-vazio {
    padding: 28px 22px;
    color: #626861;
    font-size: 10px;
}

.corte-processos-vazio strong {
    display: block;
    color: #454b45;
    font-size: 11px;
}

.corte-processos-vazio p {
    margin: 7px 0 0;
}


/* ============================================================
   REGISTRO PROCESSUAL
============================================================ */

.corte-processo-registro {
    position: relative;
    padding: 20px 21px;
    border-bottom: 1px solid #9c9d92;
}

.corte-processo-registro:last-child {
    border-bottom: 0;
}

.corte-processo-registro.minha-relatoria {
    background: #cbc9b9;
    box-shadow: inset 5px 0 0 #7b2928;
}

.corte-processo-registro-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.corte-processo-registro-topo > span {
    color: #566058;
    font-family: "Courier New", monospace;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .06em;
}

.corte-processo-registro h3 {
    max-width: 800px;
    margin: 12px 0 16px;
    color: #1d2720;
    font-size: 18px;
    line-height: 1.25;
}

.corte-processo-registro-meta {
    display: grid;
    grid-template-columns: 1fr 1fr .5fr;
    gap: 20px;
}

.corte-processo-registro-meta span {
    display: block;
    color: #747970;
    font-size: 7px;
    font-weight: 900;
    letter-spacing: .1em;
}

.corte-processo-registro-meta strong {
    display: block;
    margin-top: 4px;
    color: #474e48;
    font-size: 10px;
}

.corte-processo-abrir {
    margin-top: 18px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #214b39;
    font: inherit;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .07em;
    cursor: pointer;
}

.corte-processo-abrir:hover {
    text-decoration: underline;
}


/* ============================================================
   STATUS
============================================================ */

.corte-processo-status {
    padding: 5px 7px;
    border: 1px solid #777d75;
    color: #505851;
    font-family: "Courier New", monospace;
    font-size: 7px;
    letter-spacing: .06em;
}

.corte-processo-status.status-relatoria {
    border-color: #8a6c32;
    color: #735a28;
}

.corte-processo-status.status-pronto_julgamento {
    border-color: #315e48;
    color: #315e48;
}

.corte-processo-status.status-em_julgamento {
    border-color: #365979;
    color: #365979;
}

.corte-processo-status.status-aguardando_proclamacao {
    border-color: #7b2928;
    color: #7b2928;
}

.corte-processo-status.status-decidido {
    background: #294c3b;
    border-color: #294c3b;
    color: #fff;
}


/* ============================================================
   RELATOR
============================================================ */

.corte-processo-relator-alerta {
    margin-top: 15px;
    padding: 8px 10px;
    background: #7b2928;
    color: #fff;
    font-family: "Courier New", monospace;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .08em;
}


/* ============================================================
   MODAL
============================================================ */

.corte-modal[hidden] {
    display: none !important;
}

.corte-modal {
    position: fixed;
    inset: 0;
    z-index: 5000;

    display: grid;
    place-items: center;

    padding: 25px;
    box-sizing: border-box;
}

.corte-modal-fundo {
    position: absolute;
    inset: 0;
    background: rgba(8, 18, 14, .78);
}

.corte-modal-caixa {
    position: relative;
    z-index: 1;

    width: min(720px, 100%);
    max-height: calc(100vh - 50px);
    overflow-y: auto;

    background: #d3d1c1;
    border: 1px solid #5f665f;
    border-top: 6px solid #17392d;

    box-shadow: 12px 12px 0 rgba(0,0,0,.22);
}

.corte-modal-processo {
    width: min(900px, 100%);
}

.corte-modal-cabecalho {
    display: flex;
    justify-content: space-between;
    gap: 25px;

    padding: 20px 22px;

    background: #bcbbae;
    border-bottom: 1px solid #777a70;
}

.corte-modal-cabecalho span {
    color: #626a62;
    font-family: "Courier New", monospace;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .1em;
}

.corte-modal-cabecalho h2 {
    margin: 5px 0 0;
    color: #1f2922;
    font-size: 23px;
}

.corte-modal-fechar {
    width: 34px;
    height: 34px;

    border: 1px solid #74786f;
    background: transparent;

    color: #363d37;
    font-size: 22px;
    cursor: pointer;
}

.corte-modal form {
    padding: 23px;
}


/* ============================================================
   FORMULÁRIO
============================================================ */

.corte-form-campo {
    margin-bottom: 20px;
}

.corte-form-campo label {
    display: block;
    margin-bottom: 7px;

    color: #555e56;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .1em;
}

.corte-form-campo input,
.corte-form-campo textarea,
.corte-form-campo select {
    width: 100%;
    box-sizing: border-box;

    padding: 11px 12px;

    border: 1px solid #777b72;
    border-radius: 0;

    background: #e2e0d3;
    color: #242a25;

    font: inherit;
    font-size: 12px;

    outline: none;
}

.corte-form-campo textarea {
    resize: vertical;
    line-height: 1.6;
}

.corte-form-campo input:focus,
.corte-form-campo textarea:focus,
.corte-form-campo select:focus {
    border-color: #17392d;
    box-shadow: inset 3px 0 0 #17392d;
}

.corte-form-aviso {
    margin: 5px 0 22px;
    padding: 13px 14px;

    background: #c2c0b1;
    border-left: 4px solid #82692f;
}

.corte-form-aviso strong {
    color: #705c2e;
    font-size: 8px;
    letter-spacing: .1em;
}

.corte-form-aviso p {
    margin: 6px 0 0;
    color: #575c56;
    font-size: 10px;
    line-height: 1.55;
}

.corte-form-erro {
    margin-bottom: 17px;
    padding: 10px 12px;

    border-left: 4px solid #7b2928;
    background: #c9b6aa;

    color: #6f2726;
    font-size: 10px;
    font-weight: 700;
}

.corte-form-acoes {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}


/* ============================================================
   AUTOS
============================================================ */

.corte-processo-detalhes {
    padding: 23px;
}

.corte-processo-meta {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));

    border-top: 1px solid #85887f;
    border-left: 1px solid #85887f;
}

.corte-processo-meta > div {
    padding: 13px;

    border-right: 1px solid #85887f;
    border-bottom: 1px solid #85887f;
}

.corte-processo-meta span,
.corte-processo-texto > span,
.corte-processo-parecer > span {
    display: block;

    color: #697069;
    font-size: 7px;
    font-weight: 900;
    letter-spacing: .1em;
}

.corte-processo-meta strong {
    display: block;
    margin-top: 5px;

    color: #343b35;
    font-size: 10px;
    line-height: 1.4;
}

.corte-processo-texto {
    margin-top: 22px;
    padding: 18px;

    background: #dedccd;
    border: 1px solid #99998e;
}

.corte-processo-texto p {
    margin: 10px 0 0;

    color: #414741;
    font-size: 12px;
    line-height: 1.7;

    white-space: pre-wrap;
}


/* ============================================================
   PARECER
============================================================ */

.corte-processo-parecer {
    margin-top: 22px;
    padding: 19px;

    background: #c9c7b7;
    border: 1px solid #888a80;
    border-left: 6px solid #315e48;
}

.corte-processo-parecer > strong {
    display: block;
    margin-top: 9px;

    color: #244c39;
    font-family: "Courier New", monospace;
    font-size: 12px;
}

.corte-processo-parecer p {
    margin: 12px 0 0;

    color: #434943;
    font-size: 11px;
    line-height: 1.7;

    white-space: pre-wrap;
}

.corte-relatoria-form {
    margin-top: 22px;
    padding: 0 !important;

    border: 1px solid #777a70;
}

.corte-relatoria-identificacao {
    padding: 16px 18px;

    background: #792a29;
    color: #fff;
}

.corte-relatoria-identificacao span {
    display: block;

    color: #e0c6c2;
    font-size: 7px;
    font-weight: 900;
    letter-spacing: .12em;
}

.corte-relatoria-identificacao strong {
    display: block;
    margin-top: 5px;

    font-family: "Courier New", monospace;
    font-size: 11px;
    letter-spacing: .06em;
}

.corte-relatoria-form > .corte-form-campo,
.corte-relatoria-form > .corte-form-erro {
    margin-left: 18px;
    margin-right: 18px;
}

.corte-relatoria-form > .corte-form-campo:first-of-type {
    margin-top: 19px;
}

.corte-relatoria-form > .corte-form-acoes {
    padding: 0 18px 18px;
}


/* ============================================================
   MODAL ABERTO
============================================================ */

body.corte-modal-aberto {
    overflow: hidden;
}


/* ============================================================
   RESPONSIVO
============================================================ */

@media (max-width: 800px) {

    .corte-processos-resumo {
        grid-template-columns: 1fr 1fr;
    }

    .corte-processo-registro-meta {
        grid-template-columns: 1fr;
        gap: 11px;
    }

    .corte-processo-meta {
        grid-template-columns: 1fr 1fr;
    }

}


@media (max-width: 520px) {

    .corte-processos-titulo {
        align-items: stretch;
    }

    .corte-processos-titulo
    .corte-botao-primario {
        width: 100%;
    }

    .corte-processos-resumo {
        grid-template-columns: 1fr;
    }

    .corte-processo-meta {
        grid-template-columns: 1fr;
    }

    .corte-form-acoes {
        flex-direction: column-reverse;
    }

    .corte-form-acoes button {
        width: 100%;
    }

    .corte-modal {
        padding: 8px;
    }

    .corte-modal-caixa {
        max-height: calc(100vh - 16px);
    }

}

/* ============================================================
   CORTE — ETAPA 2
   JULGAMENTOS / VOTOS / PROCLAMAÇÃO / DECISÕES
   ADICIONAR AO FINAL DO style.css
============================================================ */


/* ============================================================
   03 — JULGAMENTOS
============================================================ */

.corte-julgamentos-resumo {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: 0 0 24px;
    background: #111;
    border: 1px solid #111;
}

.corte-julgamentos-resumo > div {
    min-height: 92px;
    padding: 18px 20px;
    background: #f2f0e8;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.corte-julgamentos-resumo span {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    color: #555;
}

.corte-julgamentos-resumo strong {
    margin-top: 8px;
    font-size: 27px;
    line-height: 1;
    color: #111;
}

.corte-julgamentos-lista {
    display: grid;
    gap: 14px;
}

.corte-julgamento-card {
    position: relative;
    padding: 20px;
    border: 1px solid #b9b6aa;
    background: #f7f5ed;
    box-shadow: 3px 3px 0 rgba(0, 0, 0, 0.06);
}

.corte-julgamento-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 4px;
    background: #111;
}

.corte-julgamento-card h3 {
    margin: 17px 0;
    font-size: 18px;
    line-height: 1.35;
    color: #111;
}

.corte-julgamento-card .corte-processo-abrir {
    margin-top: 18px;
}


/* ============================================================
   MODAL DE JULGAMENTO
============================================================ */

.corte-modal-julgamento {
    width: min(1040px, calc(100vw - 40px));
    max-height: calc(100vh - 40px);
    overflow-y: auto;
}

.corte-julgamento-conteudo {
    display: grid;
    gap: 20px;
}

.corte-julgamento-meta {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    border: 1px solid #b8b5aa;
    background: #ddd9cc;
    gap: 1px;
}

.corte-julgamento-meta > div {
    padding: 14px 16px;
    background: #f4f2ea;
}

.corte-julgamento-meta span {
    display: block;
    margin-bottom: 6px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
    color: #666;
}

.corte-julgamento-meta strong {
    font-size: 13px;
    line-height: 1.4;
    color: #111;
}


/* ============================================================
   PARECER NO JULGAMENTO
============================================================ */

.corte-julgamento-parecer {
    padding: 20px;
    border: 1px solid #aaa69a;
    border-left: 5px solid #004c32;
    background: #eeece3;
}

.corte-julgamento-parecer > span {
    display: block;
    margin-bottom: 8px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.13em;
    color: #004c32;
}

.corte-julgamento-parecer > strong {
    display: block;
    margin-bottom: 12px;
    font-size: 16px;
    color: #111;
}

.corte-julgamento-parecer > p {
    margin: 0;
    white-space: pre-wrap;
    line-height: 1.65;
    color: #292929;
}


/* ============================================================
   INICIAR JULGAMENTO
============================================================ */

.corte-julgamento-inicio {
    padding: 22px;
    border: 2px solid #111;
    background:
        repeating-linear-gradient(
            -45deg,
            #ece9df,
            #ece9df 8px,
            #e5e1d5 8px,
            #e5e1d5 16px
        );
}

.corte-julgamento-inicio span {
    display: block;
    margin-bottom: 8px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.corte-julgamento-inicio strong {
    display: block;
    margin-bottom: 8px;
    font-size: 18px;
}

.corte-julgamento-inicio p {
    max-width: 720px;
    margin: 0 0 18px;
    line-height: 1.55;
}


/* ============================================================
   COMPOSIÇÃO DO JULGAMENTO
============================================================ */

.corte-julgamento-composicao-titulo {
    margin: 4px 0 10px;
    padding-bottom: 9px;
    border-bottom: 2px solid #111;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.corte-julgamento-composicao-titulo span {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.corte-julgamento-composicao {
    display: grid;
    gap: 10px;
}


/* ============================================================
   CARTÃO DO VOTO DE CADA MINISTRO
============================================================ */

.corte-voto-ministro {
    position: relative;
    padding: 17px 18px;
    border: 1px solid #aaa79c;
    background: #f5f3eb;
}

.corte-voto-ministro.sou-eu {
    border: 2px solid #006b45;
}

.corte-voto-ministro.presidente::after {
    content: "P";
    position: absolute;
    top: 10px;
    right: 10px;
    width: 23px;
    height: 23px;
    display: grid;
    place-items: center;
    border: 1px solid #111;
    background: #111;
    color: #fff;
    font-size: 10px;
    font-weight: 900;
}

.corte-voto-ministro > div:first-child {
    display: flex;
    align-items: center;
    gap: 13px;
    padding-right: 34px;
}

.corte-voto-ministro > div:first-child > span {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border: 1px solid #111;
    font-size: 11px;
    font-weight: 900;
}

.corte-voto-ministro > div:first-child > div {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.corte-voto-ministro > div:first-child small {
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.11em;
    color: #555;
}

.corte-voto-ministro > div:first-child strong {
    font-size: 15px;
    color: #111;
}


/* ============================================================
   STATUS DO VOTO
============================================================ */

.corte-voto-status {
    display: inline-block;
    margin-top: 14px;
    padding: 6px 9px;
    border: 1px solid #777;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.1em;
}

.corte-voto-status.pendente {
    background: #e5e1d5;
    color: #4b4b4b;
}

.corte-voto-status.registrado {
    border-color: #004c32;
    background: #dfe9e2;
    color: #004c32;
}


/* ============================================================
   RESULTADO E FUNDAMENTAÇÃO DO VOTO
============================================================ */

.corte-voto-resultado {
    display: block;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px dashed #8e8b82;
    font-size: 14px;
    color: #111;
}

.corte-voto-fundamentacao-label {
    display: block;
    margin-top: 15px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.11em;
    color: #555;
}

.corte-voto-fundamentacao {
    margin: 7px 0 9px;
    white-space: pre-wrap;
    line-height: 1.6;
    color: #292929;
}

.corte-voto-ministro > small:last-child {
    color: #666;
    font-size: 10px;
}


/* ============================================================
   FORMULÁRIO DE VOTO
============================================================ */

.corte-voto-form {
    margin-top: 4px;
    padding: 22px;
    border: 2px solid #004c32;
    background: #edf1eb;
}

.corte-voto-identificacao {
    margin-bottom: 20px;
    padding-bottom: 13px;
    border-bottom: 1px solid #8ca095;
}

.corte-voto-identificacao span {
    display: block;
    margin-bottom: 5px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.13em;
    color: #006b45;
}

.corte-voto-identificacao strong {
    font-size: 16px;
    color: #111;
}

.corte-voto-form textarea {
    min-height: 160px;
    resize: vertical;
}


/* ============================================================
   PLACAR
============================================================ */

.corte-julgamento-placar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid #111;
    background: #111;
}

.corte-julgamento-placar > div {
    min-height: 90px;
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    background: #ece9df;
}

.corte-julgamento-placar span {
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.09em;
}

.corte-julgamento-placar strong {
    font-size: 27px;
    line-height: 1;
}

.corte-julgamento-placar > small {
    grid-column: 1 / -1;
    padding: 9px 12px;
    background: #111;
    color: #fff;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.13em;
}

.corte-divergencia-aviso {
    grid-column: 1 / -1;
    margin: 0;
    padding: 13px;
    border-top: 1px solid #111;
    background: #f0dede;
    color: #7c1111;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 0.08em;
}


/* ============================================================
   SEM MAIORIA
============================================================ */

.corte-julgamento-sem-maioria {
    padding: 17px 19px;
    border: 2px solid #8a1717;
    background: #f1dddd;
}

.corte-julgamento-sem-maioria strong {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    letter-spacing: 0.08em;
    color: #7c1111;
}

.corte-julgamento-sem-maioria p {
    margin: 0;
    line-height: 1.55;
}


/* ============================================================
   PROCLAMAÇÃO PRESIDENCIAL
============================================================ */

.corte-proclamacao-form {
    padding: 22px;
    border: 3px double #111;
    background: #ece9df;
}

.corte-proclamacao-cabecalho {
    margin-bottom: 18px;
    padding-bottom: 13px;
    border-bottom: 2px solid #111;
}

.corte-proclamacao-cabecalho span {
    display: block;
    margin-bottom: 6px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.15em;
}

.corte-proclamacao-cabecalho strong {
    font-size: 19px;
}

.corte-proclamacao-resultado {
    margin-bottom: 18px;
    padding: 14px;
    border: 1px solid #111;
    background: #111;
    color: #fff;
}

.corte-proclamacao-resultado span {
    display: block;
    margin-bottom: 5px;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: 0.12em;
    opacity: 0.7;
}

.corte-proclamacao-resultado strong {
    font-size: 17px;
}

.corte-proclamacao-form textarea {
    min-height: 190px;
    resize: vertical;
}


/* ============================================================
   DECISÃO FINAL NOS AUTOS
============================================================ */

.corte-julgamento-decisao {
    padding: 24px;
    border: 3px double #111;
    background: #f0eee6;
}

.corte-julgamento-decisao > span {
    display: block;
    margin-bottom: 8px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.14em;
}

.corte-julgamento-decisao > strong {
    display: block;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 2px solid #111;
    font-size: 19px;
}

.corte-julgamento-decisao > p {
    margin: 0 0 18px;
    white-space: pre-wrap;
    line-height: 1.7;
}

.corte-julgamento-decisao > small {
    display: block;
    padding-top: 10px;
    border-top: 1px dashed #777;
    color: #555;
}


/* ============================================================
   04 — DECISÕES
============================================================ */

.corte-decisoes-lista {
    display: grid;
    gap: 14px;
}

.corte-decisao-card {
    position: relative;
    padding: 20px;
    border: 1px solid #aaa79d;
    background: #f4f2ea;
}

.corte-decisao-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    width: 4px;
    background: #004c32;
}

.corte-decisao-card h3 {
    margin: 17px 0;
    font-size: 18px;
}

.corte-decisao-resultado {
    padding: 5px 8px;
    border: 1px solid #004c32;
    background: #dfe9e2;
    color: #004c32;
    font-size: 10px;
    letter-spacing: 0.07em;
}

.corte-decisao-trecho {
    display: -webkit-box;
    margin: 16px 0 0;
    overflow: hidden;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    line-height: 1.55;
    color: #444;
}


/* ============================================================
   PRESIDÊNCIA — PROCLAMAÇÕES
============================================================ */

.corte-presidencia-proclamacoes {
    display: grid;
    gap: 10px;
}

.corte-presidencia-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 15px 17px;
    border: 1px solid #aaa79c;
    background: #f3f1e9;
}

.corte-presidencia-item > span {
    font-size: 10px;
    font-weight: 900;
    letter-spacing: 0.08em;
}

.corte-presidencia-item > strong {
    font-size: 14px;
}


/* ============================================================
   AJUSTES DE FORMULÁRIO
============================================================ */

.corte-voto-form select,
.corte-voto-form textarea,
.corte-proclamacao-form textarea {
    width: 100%;
    box-sizing: border-box;
    padding: 12px 13px;
    border: 1px solid #77736a;
    border-radius: 0;
    outline: none;
    background: #faf9f4;
    color: #111;
    font: inherit;
}

.corte-voto-form select:focus,
.corte-voto-form textarea:focus,
.corte-proclamacao-form textarea:focus {
    border-color: #004c32;
    box-shadow: inset 0 0 0 1px #004c32;
}


/* ============================================================
   SCROLLBAR DO MODAL
============================================================ */

.corte-modal-julgamento::-webkit-scrollbar {
    width: 10px;
}

.corte-modal-julgamento::-webkit-scrollbar-track {
    background: #d8d4c8;
}

.corte-modal-julgamento::-webkit-scrollbar-thumb {
    background: #4d4b45;
    border: 2px solid #d8d4c8;
}


/* ============================================================
   RESPONSIVIDADE
============================================================ */

@media (max-width: 900px) {

    .corte-julgamentos-resumo {
        grid-template-columns: repeat(2, 1fr);
    }

    .corte-julgamento-meta {
        grid-template-columns: 1fr;
    }

    .corte-julgamento-placar {
        grid-template-columns: 1fr;
    }

    .corte-julgamento-placar > small,
    .corte-divergencia-aviso {
        grid-column: 1;
    }

    .corte-presidencia-item {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 600px) {

    .corte-julgamentos-resumo {
        grid-template-columns: 1fr;
    }

    .corte-modal-julgamento {
        width: calc(100vw - 20px);
        max-height: calc(100vh - 20px);
    }

    .corte-voto-ministro,
    .corte-voto-form,
    .corte-proclamacao-form,
    .corte-julgamento-decisao {
        padding: 16px;
    }

}

/* ============================================================
   CORTE — AJUSTE DO MODAL DE JULGAMENTO
============================================================ */

.corte-modal-julgamento {
    width: min(980px, calc(100vw - 64px));
    max-height: calc(100vh - 64px);
    margin: 32px auto;
    border-top: 5px solid #004c32;
    box-shadow: 8px 8px 0 rgba(0, 0, 0, 0.16);
}

.corte-modal-julgamento .corte-modal-cabecalho {
    padding: 22px 26px;
}

.corte-julgamento-conteudo {
    padding: 22px 26px 28px;
    gap: 18px;
}

.corte-julgamento-meta {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.corte-julgamento-parecer {
    margin: 0;
}

@media (max-width: 760px) {

    .corte-modal-julgamento {
        width: calc(100vw - 20px);
        max-height: calc(100vh - 20px);
        margin: 10px auto;
    }

    .corte-julgamento-meta {
        grid-template-columns: 1fr;
    }

}

/* ==========================================================
   KANZLERE — REFINAMENTO VISUAL
   Publicações em grade + área reservada compacta
========================================================== */


/* ==========================================================
   PUBLICAÇÕES — GRADE EDITORIAL
========================================================== */

.kanzlere-editorial-lista-publicacoes {
    width: min(100%, 1180px);
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    gap: 22px;
}


/* ==========================================================
   CARD
========================================================== */

.kanzlere-editorial-publicacao {
    min-width: 0;

    padding: 0;

    display: flex;
    flex-direction: column;

    gap: 0;

    background: #ffffff;

    border: 0;
}


/* Remove a borda do antigo formato em lista */

.kanzlere-editorial-publicacao:last-child {
    border-bottom: 0;
}


/* ==========================================================
   IMAGEM
========================================================== */

.kanzlere-editorial-publicacao-imagem {
    width: 100%;

    display: block;

    overflow: hidden;

    background: #ddddda;
}


.kanzlere-editorial-publicacao-imagem img {
    width: 100%;

    aspect-ratio: 16 / 10;

    object-fit: cover;

    transition:
        transform 0.35s ease;
}


.kanzlere-editorial-publicacao-imagem:hover img {
    transform: scale(1.025);
}


/* ==========================================================
   CONTEÚDO DO CARD
========================================================== */

.kanzlere-editorial-publicacao-conteudo {
    min-height: 280px;

    padding:
        27px 28px
        30px;

    display: flex;
    flex-direction: column;

    align-self: stretch;
}


/* META */

.kanzlere-editorial-publicacao-meta {
    margin-bottom: 16px;

    display: flex;
    flex-wrap: wrap;

    gap: 6px 16px;

    color: #666666;

    font-size: 10px;
    font-weight: 800;

    line-height: 1.4;

    letter-spacing: 0.09em;
    text-transform: uppercase;
}


/* TÍTULO */

.kanzlere-editorial-publicacao h3 {
    margin:
        0 0
        15px;
}


.kanzlere-editorial-publicacao h3 a {
    color: #111111;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            23px,
            2.1vw,
            31px
        );

    font-weight: 400;
    line-height: 1.12;

    letter-spacing: -0.025em;

    text-decoration: none;
}


.kanzlere-editorial-publicacao h3 a:hover {
    color: var(--verde);
}


/* RESUMO */

.kanzlere-editorial-publicacao-conteudo > p {
    max-width: none;

    margin:
        0 0
        24px;

    color: #484848;

    font-size: 14px;
    line-height: 1.6;
}


/* LINK */

.kanzlere-editorial-publicacao-link {
    margin-top: auto;

    padding-top: 4px;

    color: var(--verde);

    font-size: 12px;
    font-weight: 800;

    letter-spacing: 0.02em;

    text-decoration: none;
}


.kanzlere-editorial-publicacao-link:hover {
    text-decoration: underline;
}


/* ==========================================================
   ESTADO VAZIO / CARREGANDO / ERRO
========================================================== */

.kanzlere-editorial-lista-publicacoes > .estado-lista {
    grid-column: 1 / -1;

    width: 100%;

    margin: 0;

    padding:
        32px 0;

    border-top:
        1px solid
        #bdbdb8;

    border-bottom:
        1px solid
        #bdbdb8;
}


/* ==========================================================
   ÁREA RESERVADA — VERSÃO COMPACTA
========================================================== */

.kanzlere-editorial-reservada {
    padding:
        42px 24px;

    color: #ffffff;

    background:
        var(--verde-escuro);
}


.kanzlere-editorial-reservada-conteudo {
    width: min(100%, 1180px);

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    gap: 50px;

    align-items: center;
}


/* RÓTULO */

.kanzlere-editorial-reservada
.kanzlere-editorial-rotulo {
    margin-bottom: 10px;

    color:
        rgba(
            255,
            255,
            255,
            0.68
        );

    font-size: 10px;

    letter-spacing: 0.13em;
}


/* TÍTULO */

.kanzlere-editorial-reservada h2 {
    margin:
        0 0
        10px;

    color: #ffffff;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            27px,
            3vw,
            38px
        );

    font-weight: 400;
    line-height: 1.05;

    letter-spacing: -0.025em;
}


/* TEXTO */

.kanzlere-editorial-reservada
p:not(.kanzlere-editorial-rotulo) {
    max-width: 610px;

    margin: 0;

    color:
        rgba(
            255,
            255,
            255,
            0.78
        );

    font-size: 13px;
    line-height: 1.55;
}


/* BOTÃO */

.kanzlere-editorial-botao {
    min-width: 205px;

    padding:
        13px 19px;

    font-size: 12px;
}


/* ==========================================================
   TABLET
========================================================== */

@media (max-width: 900px) {

    .kanzlere-editorial-lista-publicacoes {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .kanzlere-editorial-publicacao {
        display: flex;

        padding: 0;

        gap: 0;
    }


    .kanzlere-editorial-publicacao-imagem {
        width: 100%;
    }


    .kanzlere-editorial-reservada-conteudo {
        grid-template-columns:
            1fr;

        gap: 24px;
    }


    .kanzlere-editorial-botao {
        width: fit-content;
    }

}


/* ==========================================================
   CELULAR
========================================================== */

@media (max-width: 600px) {

    .kanzlere-editorial-publicacoes {
        padding:
            65px 20px;
    }


    .kanzlere-editorial-lista-publicacoes {
        grid-template-columns:
            1fr;

        gap: 20px;
    }


    .kanzlere-editorial-publicacao {
        padding: 0;
    }


    .kanzlere-editorial-publicacao-conteudo {
        min-height: 0;

        padding:
            24px 22px
            26px;
    }


    .kanzlere-editorial-publicacao h3 a {
        font-size: 27px;
    }


    .kanzlere-editorial-reservada {
        padding:
            36px 20px;
    }


    .kanzlere-editorial-reservada h2 {
        font-size: 30px;
    }


    .kanzlere-editorial-botao {
        width: 100%;
    }

}

/* =========================================================
   PRAESVOLÍ — PÁGINA PÚBLICA EDITORIAL
   ========================================================= */

.praesvoli-editorial {
    background: #ffffff;
    color: #111111;
}


/* =========================================================
   ABERTURA
   ========================================================= */

.praesvoli-editorial-abertura {
    padding: clamp(80px, 10vw, 145px) 24px
             clamp(70px, 9vw, 125px);
    background: #ffffff;
}

.praesvoli-editorial-abertura-conteudo {
    width: min(1180px, 100%);
    margin: 0 auto;
}

.praesvoli-editorial-rotulo {
    margin: 0 0 18px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #006b45;
}

.praesvoli-editorial-abertura h1 {
    max-width: 900px;
    margin: 0;
    font-size: clamp(54px, 7.5vw, 105px);
    line-height: 0.94;
    letter-spacing: -0.055em;
    font-weight: 800;
}

.praesvoli-editorial-introducao {
    max-width: 790px;
    margin: 38px 0 0;
    font-size: clamp(19px, 2vw, 27px);
    line-height: 1.5;
    color: #444444;
}


/* =========================================================
   RETRATO OFICIAL
   ========================================================= */

.praesvoli-editorial-retrato {
    padding: 0 24px clamp(80px, 10vw, 145px);
    background: #ffffff;
}

.praesvoli-editorial-retrato-conteudo {
    width: min(1180px, 100%);
    margin: 0 auto;
}

.praesvoli-editorial-retrato figure {
    margin: 0;
}

.praesvoli-editorial-retrato img {
    display: block;
    width: 100%;
    max-height: 780px;
    object-fit: cover;
    object-position: center 22%;
    background: #eeeeeb;
}

.praesvoli-editorial-retrato figcaption {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #d9d9d5;

    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.praesvoli-editorial-retrato figcaption span {
    color: #707070;
    font-weight: 600;
}


/* =========================================================
   ATALHOS EDITORIAIS
   ========================================================= */

.praesvoli-editorial-atalhos {
    border-top: 1px solid #ddddda;
    border-bottom: 1px solid #ddddda;
    background: #ffffff;
}

.praesvoli-editorial-atalhos-conteudo {
    width: min(1180px, calc(100% - 48px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(4, 1fr);
}

.praesvoli-editorial-atalhos a {
    min-height: 118px;
    padding: 24px 26px;

    display: flex;
    flex-direction: column;
    justify-content: space-between;

    color: #111111;
    text-decoration: none;
    border-right: 1px solid #ddddda;

    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

.praesvoli-editorial-atalhos a:first-child {
    border-left: 1px solid #ddddda;
}

.praesvoli-editorial-atalhos a:hover {
    background: #006b45;
    color: #ffffff;
}

.praesvoli-editorial-atalhos span {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.14em;
    opacity: 0.65;
}

.praesvoli-editorial-atalhos strong {
    font-size: 17px;
    line-height: 1.2;
}


/* =========================================================
   SEÇÕES EDITORIAIS
   ========================================================= */

.praesvoli-editorial-secao {
    padding: clamp(90px, 10vw, 150px) 24px;
    background: #ffffff;
}

.praesvoli-editorial-secao-clara {
    background: #f3f3f0;
}

.praesvoli-editorial-secao-conteudo {
    width: min(1180px, 100%);
    margin: 0 auto;

    display: grid;
    grid-template-columns: 210px minmax(0, 760px);
    gap: clamp(50px, 8vw, 120px);
}

.praesvoli-editorial-indice {
    padding-top: 5px;
}

.praesvoli-editorial-indice span {
    display: block;
    margin-bottom: 14px;

    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.14em;
    color: #006b45;
}

.praesvoli-editorial-indice p {
    margin: 0;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.09em;
    color: #666666;
}

.praesvoli-editorial-texto h2 {
    max-width: 800px;
    margin: 0 0 38px;

    font-size: clamp(42px, 5.2vw, 70px);
    line-height: 1;
    letter-spacing: -0.045em;
}

.praesvoli-editorial-texto > p:not(.praesvoli-editorial-rotulo) {
    max-width: 720px;
    margin: 0 0 24px;

    font-size: 17px;
    line-height: 1.78;
    color: #444444;
}

.praesvoli-editorial-texto
.praesvoli-editorial-destaque {
    margin-bottom: 34px !important;

    font-size: clamp(21px, 2.3vw, 29px) !important;
    line-height: 1.5 !important;
    color: #111111 !important;
    font-weight: 500;
}


/* =========================================================
   FICHA INSTITUCIONAL
   ========================================================= */

.praesvoli-editorial-ficha {
    max-width: 720px;
    margin: 55px 0 0;
    border-top: 1px solid #cfcfcb;
}

.praesvoli-editorial-ficha > div {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 30px;

    padding: 24px 0;
    border-bottom: 1px solid #cfcfcb;
}

.praesvoli-editorial-ficha dt {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #666666;
}

.praesvoli-editorial-ficha dd {
    margin: 0;

    font-size: 16px;
    line-height: 1.6;
    font-weight: 650;
    color: #111111;
}


/* =========================================================
   PUBLICAÇÕES
   ========================================================= */

.praesvoli-editorial-publicacoes {
    padding: clamp(90px, 10vw, 145px) 24px;
    background: #f2f2ef;
}

.praesvoli-editorial-publicacoes-cabecalho {
    width: min(1180px, 100%);
    margin: 0 auto clamp(48px, 6vw, 80px);

    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(260px, 0.65fr);
    gap: clamp(40px, 7vw, 100px);
    align-items: end;
}

.praesvoli-editorial-publicacoes-cabecalho h2 {
    margin: 0;

    font-size: clamp(42px, 5vw, 68px);
    line-height: 1;
    letter-spacing: -0.045em;
}

.praesvoli-editorial-publicacoes-cabecalho > p {
    margin: 0;

    font-size: 15px;
    line-height: 1.7;
    color: #5d5d5d;
}


/* GRID DAS PUBLICAÇÕES */

.praesvoli-editorial-lista-publicacoes {
    width: min(1180px, 100%);
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}


/* CARD */

.praesvoli-editorial-publicacao {
    min-width: 0;

    display: flex;
    flex-direction: column;

    background: #ffffff;
}


/* IMAGEM */

.praesvoli-editorial-publicacao-imagem {
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    background: #ddddda;
}

.praesvoli-editorial-publicacao-imagem img {
    display: block;
    width: 100%;
    height: 100%;

    object-fit: cover;

    transition: transform 0.35s ease;
}

.praesvoli-editorial-publicacao:hover
.praesvoli-editorial-publicacao-imagem img {
    transform: scale(1.025);
}


/* CONTEÚDO DO CARD */

.praesvoli-editorial-publicacao-conteudo {
    min-height: 280px;
    padding: 27px 28px 30px;

    display: flex;
    flex-direction: column;
}

.praesvoli-editorial-publicacao-meta {
    display: flex;
    justify-content: space-between;
    gap: 15px;

    margin-bottom: 22px;

    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: #696969;
}

.praesvoli-editorial-publicacao-meta span {
    color: #006b45;
}

.praesvoli-editorial-publicacao h3 {
    margin: 0 0 16px;

    font-size: clamp(23px, 2vw, 31px);
    line-height: 1.12;
    letter-spacing: -0.025em;
}

.praesvoli-editorial-publicacao h3 a {
    color: #111111;
    text-decoration: none;
}

.praesvoli-editorial-publicacao h3 a:hover {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.praesvoli-editorial-publicacao-conteudo > p {
    margin: 0 0 22px;

    font-size: 14px;
    line-height: 1.65;
    color: #555555;
}

.praesvoli-editorial-publicacao-link {
    margin-top: auto;

    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.08em;

    color: #006b45;
    text-decoration: none;
}

.praesvoli-editorial-publicacao-link:hover {
    text-decoration: underline;
}


/* ESTADOS DE CARREGAMENTO / VAZIO / ERRO */

.praesvoli-editorial-lista-publicacoes
.estado-lista {
    grid-column: 1 / -1;

    margin: 0;
    padding: 28px 0;

    font-size: 15px;
    line-height: 1.6;
    color: #666666;
}

.praesvoli-editorial-lista-publicacoes
.estado-lista.erro {
    color: #8d1c1c;
}


/* =========================================================
   GABINETE — FAIXA RESERVADA COMPACTA
   ========================================================= */

.praesvoli-editorial-reservada {
    padding: 42px 24px;
    background: #004c32;
    color: #ffffff;
}

.praesvoli-editorial-reservada-conteudo {
    width: min(1180px, 100%);
    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 50px;
}

.praesvoli-editorial-reservada
.praesvoli-editorial-rotulo {
    margin-bottom: 8px;
    color: rgba(255, 255, 255, 0.68);
}

.praesvoli-editorial-reservada h2 {
    margin: 0 0 8px;

    font-size: clamp(27px, 3vw, 38px);
    line-height: 1;
    letter-spacing: -0.035em;
}

.praesvoli-editorial-reservada p:not(.praesvoli-editorial-rotulo) {
    max-width: 610px;
    margin: 0;

    font-size: 13px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.76);
}

.praesvoli-editorial-botao {
    min-width: 205px;
    padding: 13px 17px;

    display: inline-flex;
    align-items: center;
    justify-content: center;

    border: 1px solid rgba(255, 255, 255, 0.7);

    color: #ffffff;
    text-decoration: none;

    font-size: 13px;
    font-weight: 800;

    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}

.praesvoli-editorial-botao:hover {
    background: #ffffff;
    color: #004c32;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .praesvoli-editorial-atalhos-conteudo {
        grid-template-columns: repeat(2, 1fr);
    }

    .praesvoli-editorial-atalhos a:nth-child(3) {
        border-left: 1px solid #ddddda;
    }


    .praesvoli-editorial-secao-conteudo {
        grid-template-columns: 130px minmax(0, 1fr);
        gap: 45px;
    }


    .praesvoli-editorial-publicacoes-cabecalho {
        grid-template-columns: 1fr;
        gap: 24px;
    }


    .praesvoli-editorial-lista-publicacoes {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }


    .praesvoli-editorial-reservada-conteudo {
        gap: 30px;
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 650px) {

    .praesvoli-editorial-abertura {
        padding: 65px 20px 60px;
    }

    .praesvoli-editorial-abertura h1 {
        font-size: clamp(48px, 15vw, 70px);
    }

    .praesvoli-editorial-introducao {
        margin-top: 26px;
        font-size: 18px;
    }


    .praesvoli-editorial-retrato {
        padding: 0 20px 65px;
    }

    .praesvoli-editorial-retrato img {
        max-height: none;
        aspect-ratio: 4 / 5;
        object-fit: cover;
    }

    .praesvoli-editorial-retrato figcaption {
        display: block;
    }

    .praesvoli-editorial-retrato figcaption span {
        display: block;
        margin-top: 5px;
    }


    .praesvoli-editorial-atalhos-conteudo {
        width: calc(100% - 40px);
        grid-template-columns: 1fr 1fr;
    }

    .praesvoli-editorial-atalhos a {
        min-height: 96px;
        padding: 18px;
    }


    .praesvoli-editorial-secao {
        padding: 75px 20px;
    }

    .praesvoli-editorial-secao-conteudo {
        grid-template-columns: 1fr;
        gap: 35px;
    }

    .praesvoli-editorial-indice {
        padding-bottom: 20px;
        border-bottom: 1px solid #d4d4d0;
    }

    .praesvoli-editorial-texto h2 {
        margin-bottom: 28px;
    }


    .praesvoli-editorial-ficha > div {
        grid-template-columns: 1fr;
        gap: 8px;
    }


    .praesvoli-editorial-publicacoes {
        padding: 75px 20px;
    }

    .praesvoli-editorial-lista-publicacoes {
        grid-template-columns: 1fr;
    }

    .praesvoli-editorial-publicacao-conteudo {
        min-height: 0;
        padding: 24px;
    }


    .praesvoli-editorial-reservada {
        padding: 36px 20px;
    }

    .praesvoli-editorial-reservada-conteudo {
        display: block;
    }

    .praesvoli-editorial-botao {
        width: 100%;
        min-width: 0;
        margin-top: 24px;
    }

}

/* =========================================================
   PUBLICAÇÃO OFICIAL — PÁGINA INDIVIDUAL
   ========================================================= */

.pagina-publicacao {
    background: #ffffff;
    color: #111111;
}


/* =========================================================
   CARREGAMENTO
   ========================================================= */

.publicacao-carregamento {
    min-height: 55vh;
    padding-top: 120px;
    padding-bottom: 120px;

    display: flex;
    align-items: flex-start;
    justify-content: center;
}

.publicacao-carregamento > p {
    margin: 0;

    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;

    color: #666666;
}


/* =========================================================
   CABEÇALHO DA PUBLICAÇÃO
   ========================================================= */

.publicacao-cabecalho {
    padding:
        clamp(85px, 10vw, 145px)
        24px
        clamp(55px, 7vw, 90px);

    background: #ffffff;
}

.publicacao-cabecalho > .container {
    width: min(980px, 100%);
    margin: 0 auto;

    text-align: center;
}


/* =========================================================
   ORIGEM INSTITUCIONAL
   ========================================================= */

.publicacao-origem {
    margin-bottom: 42px;
}

.publicacao-palacio {
    margin: 0;

    font-size: 13px;
    line-height: 1.3;
    font-weight: 850;

    letter-spacing: 0.16em;
    text-transform: uppercase;

    color: #006b45;
}

.publicacao-autoridade-cargo {
    margin: 8px 0 0;

    font-size: 11px;
    line-height: 1.4;
    font-weight: 700;

    letter-spacing: 0.1em;
    text-transform: uppercase;

    color: #777777;
}


/* =========================================================
   CATEGORIA + DATA
   ========================================================= */

.publicacao-meta {
    margin: 0 auto 25px;

    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;

    gap: 10px 17px;

    font-size: 11px;
    line-height: 1.4;
    font-weight: 800;

    letter-spacing: 0.1em;
    text-transform: uppercase;

    color: #666666;
}

.publicacao-meta span {
    color: #006b45;
}

.publicacao-meta span::after {
    content: "•";

    margin-left: 17px;

    color: #b4b4af;
}

.publicacao-meta time {
    color: #666666;
}


/* =========================================================
   TÍTULO
   ========================================================= */

.publicacao-cabecalho h1 {
    max-width: 940px;

    margin:
        0
        auto;

    font-size:
        clamp(
            43px,
            5.4vw,
            76px
        );

    line-height: 1.02;

    letter-spacing: -0.047em;

    font-weight: 780;

    text-wrap: balance;
}


/* =========================================================
   SUBTÍTULO
   ========================================================= */

.publicacao-subtitulo {
    max-width: 720px;

    margin:
        32px
        auto
        0;

    font-size:
        clamp(
            18px,
            1.8vw,
            23px
        );

    line-height: 1.55;

    color: #555555;

    text-wrap: balance;
}


/* =========================================================
   AUTORIA
   ========================================================= */

.publicacao-autoria {
    margin-top: 37px;

    display: flex;
    align-items: center;
    justify-content: center;

    flex-wrap: wrap;

    gap: 7px;

    font-size: 11px;
    line-height: 1.5;

    color: #777777;
}

.publicacao-autoria span {
    text-transform: uppercase;

    font-size: 9px;
    font-weight: 800;

    letter-spacing: 0.1em;
}

.publicacao-autoria a {
    color: #111111;

    font-weight: 700;

    text-decoration: none;
}

.publicacao-autoria a:hover {
    color: #006b45;

    text-decoration: underline;
    text-underline-offset: 3px;
}


/* =========================================================
   DIVISOR DO CABEÇALHO
   ========================================================= */

.publicacao-cabecalho > .container::after {
    content: "";

    display: block;

    width: 72px;
    height: 1px;

    margin:
        48px
        auto
        0;

    background: #006b45;
}


/* =========================================================
   IMAGEM PRINCIPAL
   ========================================================= */

.publicacao-imagem-principal {
    width: min(1080px, calc(100% - 48px));

    margin:
        0
        auto
        clamp(65px, 8vw, 105px);
}

.publicacao-imagem-principal img {
    display: block;

    width: 100%;
    height: auto;

    max-height: 680px;

    object-fit: cover;

    background: #eeeeeb;
}


/* =========================================================
   CORPO DA PUBLICAÇÃO
   ========================================================= */

.publicacao-corpo {
    padding:
        0
        24px
        clamp(90px, 11vw, 155px);

    background: #ffffff;
}

.publicacao-corpo > .container {
    width: min(700px, 100%);

    margin: 0 auto;
}


/* TEXTO */

.publicacao-corpo p {
    margin:
        0
        0
        27px;

    font-size: 18px;
    line-height: 1.82;

    color: #242424;
}


/* PRIMEIRO PARÁGRAFO */

.publicacao-corpo p:first-child {
    font-size: 19px;

    color: #111111;
}


/* ÚLTIMO PARÁGRAFO */

.publicacao-corpo p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   MARCA DE ENCERRAMENTO
   ========================================================= */

.publicacao-corpo > .container::after {
    content: "◆";

    display: block;

    margin:
        65px
        auto
        0;

    text-align: center;

    font-size: 10px;

    color: #006b45;
}


/* =========================================================
   RETORNO À AUTORIDADE
   ========================================================= */

.publicacao-retorno {
    padding: 42px 24px;

    border-top: 1px solid #ddddda;
    border-bottom: 1px solid #ddddda;

    background: #f4f4f1;
}

.publicacao-retorno > .container {
    width: min(700px, 100%);

    margin: 0 auto;

    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 30px;
}

.publicacao-retorno p {
    margin: 0;

    font-size: 10px;
    line-height: 1.4;

    font-weight: 800;

    letter-spacing: 0.12em;
    text-transform: uppercase;

    color: #777777;
}

.publicacao-retorno a {
    color: #006b45;

    font-size: 12px;
    line-height: 1.4;

    font-weight: 800;

    letter-spacing: 0.04em;

    text-decoration: none;
}

.publicacao-retorno a:hover {
    text-decoration: underline;
    text-underline-offset: 4px;
}


/* =========================================================
   ERRO
   ========================================================= */

.publicacao-erro {
    width: min(720px, 100%);

    padding: 60px 0;

    text-align: center;
}

.publicacao-erro h1 {
    margin: 0 0 20px;

    font-size:
        clamp(
            36px,
            5vw,
            60px
        );

    line-height: 1;

    letter-spacing: -0.04em;
}

.publicacao-erro p {
    max-width: 560px;

    margin:
        0
        auto
        30px;

    font-size: 16px;
    line-height: 1.7;

    color: #555555;
}

.publicacao-erro a {
    display: inline-flex;

    padding: 12px 18px;

    border: 1px solid #006b45;

    color: #006b45;

    font-size: 12px;
    font-weight: 800;

    text-decoration: none;
}

.publicacao-erro a:hover {
    background: #006b45;

    color: #ffffff;
}


/* =========================================================
   PUBLICAÇÃO SEM IMAGEM
   ========================================================= */

/*
   Quando não existe imagem, o corpo sobe
   naturalmente após o cabeçalho. Mantemos
   um pequeno espaço para preservar a
   composição documental.
*/

.publicacao-imagem-principal[hidden] + .publicacao-corpo {
    padding-top: 5px;
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 900px) {

    .publicacao-cabecalho {
        padding-top: 90px;
    }


    .publicacao-cabecalho > .container {
        width: min(820px, 100%);
    }


    .publicacao-imagem-principal {
        width: calc(100% - 48px);
    }


    .publicacao-corpo > .container,
    .publicacao-retorno > .container {
        width: min(660px, 100%);
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 650px) {

    .publicacao-cabecalho {
        padding:
            65px
            20px
            45px;
    }


    .publicacao-origem {
        margin-bottom: 32px;
    }


    .publicacao-palacio {
        font-size: 11px;

        letter-spacing: 0.13em;
    }


    .publicacao-autoridade-cargo {
        font-size: 10px;
    }


    .publicacao-meta {
        margin-bottom: 21px;

        gap: 7px 11px;

        font-size: 9px;
    }


    .publicacao-meta span::after {
        margin-left: 11px;
    }


    .publicacao-cabecalho h1 {
        font-size:
            clamp(
                38px,
                11.5vw,
                58px
            );

        line-height: 1.02;
    }


    .publicacao-subtitulo {
        margin-top: 25px;

        font-size: 17px;
    }


    .publicacao-autoria {
        margin-top: 28px;
    }


    .publicacao-cabecalho > .container::after {
        margin-top: 37px;
    }


    /* IMAGEM */

    .publicacao-imagem-principal {
        width: calc(100% - 40px);

        margin-bottom: 55px;
    }


    .publicacao-imagem-principal img {
        max-height: none;
    }


    /* CORPO */

    .publicacao-corpo {
        padding:
            0
            20px
            80px;
    }


    .publicacao-corpo p,
    .publicacao-corpo p:first-child {
        font-size: 17px;

        line-height: 1.75;
    }


    .publicacao-corpo p {
        margin-bottom: 24px;
    }


    .publicacao-corpo > .container::after {
        margin-top: 50px;
    }


    /* RETORNO */

    .publicacao-retorno {
        padding: 34px 20px;
    }


    .publicacao-retorno > .container {
        display: block;
    }


    .publicacao-retorno a {
        display: inline-block;

        margin-top: 13px;
    }


    /* ERRO */

    .publicacao-carregamento {
        padding:
            80px
            20px;

        min-height: 50vh;
    }

}

/* =========================================
   ÚLTIMAS DECISÕES
========================================= */

.ticker-decisoes {
    width: 100%;
    background: #fff;
    border-top: 1px solid #e1e1e1;
    border-bottom: 1px solid #e1e1e1;
    overflow: hidden;
}

.ticker-decisoes-container {
    display: flex;
    align-items: stretch;
    min-height: 42px;
}

.ticker-decisoes-titulo {
    position: relative;
    z-index: 2;

    display: flex;
    align-items: center;

    flex: 0 0 auto;

    padding: 0 22px 0 max(
        22px,
        calc((100vw - 1560px) / 2)
    );

    background: #fff;

    color: #006b45;

    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    white-space: nowrap;
}

.ticker-decisoes-janela {
    flex: 1;
    min-width: 0;

    display: flex;
    align-items: center;

    overflow: hidden;
}

.ticker-decisoes-faixa {
    display: flex;
    align-items: center;
    flex: 0 0 max-content;

    width: max-content;

    animation:
        ticker-decisoes-movimento
        45s
        linear
        infinite;

    will-change: transform;
}

.ticker-decisoes-janela:hover
.ticker-decisoes-faixa {
    animation-play-state: paused;
}

.ticker-decisao-item {
    display: inline-flex;
    align-items: center;
    gap: 10px;

    padding: 0 18px;

    color: #111;
    text-decoration: none;
    white-space: nowrap;

    font-size: 14px;
}

.ticker-decisao-item:hover
.ticker-decisao-texto {
    text-decoration: underline;
}

.ticker-decisao-etiqueta {
    display: inline-flex;
    align-items: center;

    padding: 4px 7px;

    background: #edf5f1;

    color: #006b45;

    font-size: 11px;
    font-weight: 800;
    letter-spacing: .06em;
}

.ticker-decisao-texto {
    color: #222;
}

.ticker-decisao-separador {
    color: #aaa;
    font-size: 12px;
}

@keyframes ticker-decisoes-movimento {

    from {
        transform:
            translateX(0);
    }

    to {
        transform:
            translateX(-50%);
    }

}


/* =========================================
   ACESSIBILIDADE
========================================= */

@media (
    prefers-reduced-motion: reduce
) {

    .ticker-decisoes-faixa {
        animation: none;
    }

    .ticker-decisoes-janela {
        overflow-x: auto;
    }

}


/* =========================================
   MOBILE
========================================= */

@media (
    max-width: 700px
) {

    .ticker-decisoes-container {
        min-height: 40px;
    }

    .ticker-decisoes-titulo {
        padding-left: 16px;
        padding-right: 12px;

        font-size: 11px;
    }

    .ticker-decisao-item {
        padding: 0 12px;

        font-size: 13px;
    }

    .ticker-decisao-etiqueta {
        font-size: 10px;
    }

}

/* =========================================================
   PAINEL DO PRAESVOLÍ
   FUNÇÕES INSTITUCIONAIS
   ========================================================= */

.praesvoli-funcoes {
    margin: 0 0 34px;
    border-top: 3px solid #111;
    border-bottom: 1px solid #cfcfcf;
    background: #f7f7f4;
}

.praesvoli-funcoes-cabecalho {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;

    padding: 22px 24px 18px;

    border-bottom: 1px solid #d8d8d2;
}

.praesvoli-funcoes-cabecalho h2 {
    margin: 3px 0 0;

    font-size: 24px;
    line-height: 1.15;
    color: #111;
}

.praesvoli-funcoes-status {
    display: inline-flex;
    align-items: center;

    min-height: 30px;

    padding: 6px 10px;

    border: 1px solid #9b9b94;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;

    color: #555;
    background: #ecece7;
}


/* GRID */

.praesvoli-funcoes-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}


/* CARD */

.praesvoli-funcao-card {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;

    gap: 20px;

    min-height: 132px;

    padding: 22px 24px;

    color: #111;
    text-decoration: none;

    border-right: 1px solid #d8d8d2;

    transition:
        background-color .16s ease,
        color .16s ease;
}

.praesvoli-funcao-card:hover {
    background: #006b45;
    color: #fff;
}


/* NUMERAÇÃO */

.praesvoli-funcao-numero {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 48px;
    height: 48px;

    border: 1px solid currentColor;

    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
}


/* CONTEÚDO */

.praesvoli-funcao-conteudo {
    min-width: 0;
}

.praesvoli-funcao-conteudo > span {
    display: block;

    margin-bottom: 5px;

    font-size: 10px;
    font-weight: 800;
    letter-spacing: .12em;

    opacity: .65;
}

.praesvoli-funcao-conteudo h3 {
    margin: 0 0 7px;

    font-size: 18px;
    line-height: 1.2;

    color: inherit;
}

.praesvoli-funcao-conteudo p {
    max-width: 560px;

    margin: 0;

    font-size: 13px;
    line-height: 1.55;

    color: inherit;

    opacity: .76;
}


/* SETA */

.praesvoli-funcao-seta {
    font-size: 24px;
    line-height: 1;

    transition: transform .16s ease;
}

.praesvoli-funcao-card:hover
.praesvoli-funcao-seta {
    transform: translateX(4px);
}


/* RESPONSIVO */

@media (max-width: 760px) {

    .praesvoli-funcoes-cabecalho {
        align-items: flex-start;
        flex-direction: column;
    }

    .praesvoli-funcoes-grid {
        grid-template-columns: 1fr;
    }

    .praesvoli-funcao-card {
        border-right: 0;
        border-bottom: 1px solid #d8d8d2;
    }

}

@media (max-width: 520px) {

    .praesvoli-funcao-card {
        grid-template-columns: auto minmax(0, 1fr);

        gap: 14px;

        padding: 18px;
    }

    .praesvoli-funcao-seta {
        display: none;
    }

    .praesvoli-funcao-numero {
        width: 42px;
        height: 42px;
    }

}

/* =========================================================
   UNIÃO SINÉTICA
   PRAESVOLÍ — INTERAÇÃO COM O LEGISLATIVO
   ========================================================= */


/* =========================================================
   BASE DA PÁGINA
   ========================================================= */

.pagina-legislativo-praesvoli {
    background: #e9e9e4;
    color: #111;
}

.legpra-principal {
    min-height: calc(100vh - 180px);
    padding: 28px 0 46px;
}


/* =========================================================
   CARREGAMENTO / ACESSO
   ========================================================= */

.legpra-carregando {
    padding: 32px;
    border: 1px solid #aaa;
    border-top: 4px solid #111;

    background: #f5f5f1;

    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;

    color: #333;
}

.legpra-acesso-negado {
    max-width: 680px;
    margin: 50px auto;

    padding: 38px;

    border: 1px solid #aaa;
    border-top: 5px solid #a71919;

    background: #f7f7f3;
}

.legpra-acesso-negado h1 {
    margin: 8px 0 12px;
    font-size: 30px;
}

.legpra-acesso-negado p {
    margin: 0 0 25px;
    line-height: 1.6;
    color: #555;
}

.legpra-codigo {
    display: inline-block;

    padding: 5px 8px;

    background: #a71919;
    color: #fff;

    font-size: 10px;
    font-weight: 900;
    letter-spacing: .14em;
}

.legpra-botao-secundario {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 40px;
    padding: 0 18px;

    border: 1px solid #111;

    color: #111;
    background: transparent;

    text-decoration: none;

    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
}


/* =========================================================
   SISTEMA
   ========================================================= */

.legpra-sistema {
    border-top: 5px solid #111;
    background: #f6f6f2;

    box-shadow:
        0 8px 28px rgba(0, 0, 0, .08);
}


/* =========================================================
   IDENTIFICAÇÃO
   ========================================================= */

.legpra-identificacao {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;

    border-left: 1px solid #c8c8c1;
    border-right: 1px solid #c8c8c1;
    border-bottom: 1px solid #c8c8c1;
}

.legpra-identificacao > div:first-child {
    padding: 28px 30px;
}

.legpra-supra {
    display: block;

    margin: 0 0 6px;

    font-size: 10px;
    line-height: 1.3;
    font-weight: 900;
    letter-spacing: .13em;

    color: #006b45;
}

.legpra-identificacao h1 {
    margin: 0;

    font-size: clamp(28px, 3vw, 43px);
    line-height: 1.05;
    letter-spacing: -.035em;

    color: #111;
}

.legpra-descricao {
    max-width: 680px;

    margin: 13px 0 0;

    font-size: 14px;
    line-height: 1.55;

    color: #555;
}

.legpra-identificacao-lateral {
    display: flex;
    flex-direction: column;
    justify-content: center;

    padding: 25px;

    border-left: 1px solid #c8c8c1;

    background: #ededE8;
}

.legpra-identificacao-lateral span {
    margin-bottom: 7px;

    font-size: 9px;
    font-weight: 900;
    letter-spacing: .13em;

    color: #666;
}

.legpra-identificacao-lateral strong {
    font-size: 18px;
    line-height: 1.2;
}

.legpra-identificacao-lateral small {
    margin-top: 5px;
    line-height: 1.4;
    color: #666;
}


/* =========================================================
   BARRA DE ESTADO
   ========================================================= */

.legpra-barra-estado {
    display: grid;
    grid-template-columns: 220px minmax(0, 1fr);

    border-left: 1px solid #c8c8c1;
    border-right: 1px solid #c8c8c1;
    border-bottom: 1px solid #c8c8c1;

    background: #171917;
    color: #fff;
}

.legpra-indicador-sistema {
    display: flex;
    align-items: center;
    gap: 12px;

    padding: 15px 20px;

    border-right: 1px solid #3b3e3b;
}

.legpra-luz {
    width: 9px;
    height: 9px;

    flex: 0 0 auto;

    border-radius: 50%;

    background: #45b67b;

    box-shadow:
        0 0 0 3px rgba(69, 182, 123, .13);
}

.legpra-indicador-sistema small,
.legpra-barra-info small {
    display: block;

    margin-bottom: 3px;

    font-size: 8px;
    font-weight: 800;
    letter-spacing: .12em;

    color: #969c97;
}

.legpra-indicador-sistema strong,
.legpra-barra-info strong {
    display: block;

    font-size: 10px;
    font-weight: 900;
    letter-spacing: .08em;
}

.legpra-barra-info {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.legpra-barra-info > div {
    padding: 15px 18px;
    border-right: 1px solid #3b3e3b;
}

.legpra-barra-info > div:last-child {
    border-right: 0;
}


/* =========================================================
   CONTROLES
   ========================================================= */

.legpra-controles {
    display: flex;
    align-items: stretch;
    justify-content: space-between;

    border-left: 1px solid #c8c8c1;
    border-right: 1px solid #c8c8c1;
    border-bottom: 1px solid #c8c8c1;

    background: #e5e5df;
}

.legpra-abas {
    display: flex;
}

.legpra-aba,
.legpra-atualizar {
    appearance: none;

    border: 0;
    border-right: 1px solid #c8c8c1;

    background: transparent;
    color: #333;

    min-height: 48px;
    padding: 0 18px;

    cursor: pointer;

    font: inherit;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .09em;

    transition:
        background-color .14s ease,
        color .14s ease;
}

.legpra-aba {
    display: flex;
    align-items: center;
    gap: 9px;
}

.legpra-aba span {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 22px;
    height: 22px;

    padding: 0 5px;

    border: 1px solid #aaa;

    font-size: 9px;
}

.legpra-aba:hover,
.legpra-atualizar:hover {
    background: #d9d9d2;
}

.legpra-aba.ativo {
    background: #006b45;
    color: #fff;
}

.legpra-aba.ativo span {
    border-color: rgba(255, 255, 255, .55);
}

.legpra-atualizar {
    border-left: 1px solid #c8c8c1;
    border-right: 0;
}


/* =========================================================
   LAYOUT PRINCIPAL
   ========================================================= */

.legpra-layout {
    display: grid;
    grid-template-columns: 340px minmax(0, 1fr);

    min-height: 680px;

    border-left: 1px solid #c8c8c1;
    border-right: 1px solid #c8c8c1;
    border-bottom: 1px solid #c8c8c1;
}


/* =========================================================
   FILA
   ========================================================= */

.legpra-fila {
    min-width: 0;

    border-right: 1px solid #bdbdb6;

    background: #ecece7;
}

.legpra-fila-cabecalho {
    padding: 17px 18px;

    border-bottom: 1px solid #bdbdb6;

    background: #dadad4;
}

.legpra-fila-cabecalho span {
    display: block;

    margin-bottom: 4px;

    font-size: 8px;
    font-weight: 900;
    letter-spacing: .12em;

    color: #666;
}

.legpra-fila-cabecalho strong {
    display: block;

    font-size: 14px;
    line-height: 1.25;
}

.legpra-lista {
    max-height: 900px;
    overflow-y: auto;
}

.legpra-lista-carregando,
.legpra-lista-vazia {
    padding: 25px 18px;

    font-size: 10px;
    line-height: 1.55;
    font-weight: 800;
    letter-spacing: .07em;

    color: #666;
}

.legpra-item-materia {
    display: block;

    width: 100%;
    padding: 17px 18px;

    border: 0;
    border-bottom: 1px solid #c8c8c1;

    background: transparent;
    color: #111;

    text-align: left;

    cursor: pointer;

    font: inherit;

    transition:
        background-color .14s ease,
        color .14s ease;
}

.legpra-item-materia:hover {
    background: #e1e1da;
}

.legpra-item-materia.ativo {
    background: #fff;
    box-shadow: inset 4px 0 0 #006b45;
}

.legpra-item-topo {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.legpra-item-topo > strong {
    font-size: 11px;
    letter-spacing: .04em;
}

.legpra-item-status {
    flex: 0 0 auto;

    padding: 4px 5px;

    border: 1px solid #aaa;

    font-size: 7px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: .06em;

    color: #555;
}

.legpra-item-materia h3 {
    margin: 11px 0 13px;

    font-size: 14px;
    line-height: 1.35;
}

.legpra-item-materia small {
    display: block;

    font-size: 8px;
    line-height: 1.4;
    font-weight: 700;
    letter-spacing: .05em;

    color: #777;
}


/* =========================================================
   DOCUMENTO
   ========================================================= */

.legpra-documento-area {
    min-width: 0;
    background: #f8f8f5;
}

.legpra-sem-selecao {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;

    min-height: 600px;
    max-width: 620px;

    padding: 60px;
}

.legpra-sem-selecao-marca {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 62px;
    height: 62px;

    margin-bottom: 25px;

    border: 2px solid #111;

    font-size: 15px;
    font-weight: 900;
    letter-spacing: .08em;
}

.legpra-sem-selecao h2 {
    margin: 0 0 12px;

    font-size: 30px;
    letter-spacing: -.025em;
}

.legpra-sem-selecao > p:last-child {
    max-width: 510px;

    margin: 0;

    font-size: 14px;
    line-height: 1.65;

    color: #666;
}

.legpra-materia {
    padding: 0;
}


/* =========================================================
   CABEÇALHO DA MATÉRIA
   ========================================================= */

.legpra-materia-cabecalho {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;

    padding: 22px 28px;

    border-bottom: 1px solid #c8c8c1;

    background: #f0f0eb;
}

.legpra-materia-cabecalho h2 {
    margin: 0;

    font-size: 24px;
    line-height: 1.1;
}

.legpra-situacao {
    padding: 8px 10px;

    border: 1px solid #8d8d87;

    font-size: 9px;
    font-weight: 900;
    letter-spacing: .08em;

    background: #e3e3dd;
}

.legpra-situacao[data-status="aguardando_decisao"] {
    border-color: #b47a15;
    color: #805100;
    background: #f4ead5;
}

.legpra-situacao[data-status="decidida"] {
    border-color: #006b45;
    color: #005237;
    background: #e0eee7;
}


/* =========================================================
   METADADOS
   ========================================================= */

.legpra-metadados {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    border-bottom: 1px solid #c8c8c1;
}

.legpra-metadados > div {
    min-width: 0;

    padding: 14px 18px;

    border-right: 1px solid #d2d2cc;
}

.legpra-metadados > div:last-child {
    border-right: 0;
}

.legpra-metadados span {
    display: block;

    margin-bottom: 4px;

    font-size: 8px;
    font-weight: 900;
    letter-spacing: .1em;

    color: #777;
}

.legpra-metadados strong {
    display: block;

    overflow-wrap: anywhere;

    font-size: 11px;
    line-height: 1.4;
}


/* =========================================================
   INTRODUÇÃO DA MATÉRIA
   ========================================================= */

.legpra-materia-introducao {
    padding: 30px 32px;

    border-bottom: 1px solid #c8c8c1;

    background: #fff;
}

.legpra-materia-introducao h3 {
    max-width: 900px;

    margin: 0 0 14px;

    font-size: clamp(23px, 2.5vw, 34px);
    line-height: 1.12;
    letter-spacing: -.025em;
}

.legpra-ementa {
    max-width: 820px;

    margin: 0;

    font-size: 14px;
    line-height: 1.65;

    color: #555;
}


/* =========================================================
   SEÇÕES
   ========================================================= */

.legpra-texto-secao,
.legpra-vetos-marcados,
.legpra-area-decisao,
.legpra-decisao-registrada {
    padding: 27px 32px;

    border-bottom: 1px solid #c8c8c1;
}

.legpra-secao-cabecalho {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;

    margin-bottom: 17px;
}

.legpra-secao-cabecalho h3 {
    margin: 0;

    font-size: 19px;
    line-height: 1.2;
}

.legpra-documento-selo,
.legpra-contador-vetos {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-height: 29px;
    padding: 0 9px;

    border: 1px solid #999;

    font-size: 8px;
    font-weight: 900;
    letter-spacing: .1em;

    color: #555;
}


/* =========================================================
   AVISO DE SELEÇÃO
   ========================================================= */

.legpra-aviso-selecao {
    margin-bottom: 13px;
    padding: 11px 13px;

    border-left: 3px solid #006b45;

    background: #e7eee9;

    font-size: 11px;
    line-height: 1.5;

    color: #414641;
}

.legpra-aviso-selecao strong {
    font-size: 10px;
    letter-spacing: .04em;
}


/* =========================================================
   TEXTO LEGISLATIVO
   ========================================================= */

.legpra-texto-projeto {
    min-height: 250px;

    padding: 32px clamp(24px, 5vw, 60px);

    border: 1px solid #bcbcb5;

    outline: none;

    background: #fff;

    white-space: pre-wrap;
    overflow-wrap: break-word;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 16px;
    line-height: 1.85;

    color: #171717;

    user-select: text;
}

.legpra-texto-projeto:focus {
    border-color: #777;
}

.legpra-texto-projeto::selection,
.legpra-texto-projeto *::selection {
    background: #cbdcd3;
}


/* =========================================================
   TRECHOS MARCADOS
   ========================================================= */

.legpra-trecho-veto {
    padding: 1px 0;

    background: #f0c8c5;
    color: #65130f;

    text-decoration:
        line-through
        rgba(101, 19, 15, .55);

    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}


/* =========================================================
   BARRA DE SELEÇÃO
   ========================================================= */

.legpra-barra-selecao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;

    padding: 13px 14px;

    border: 1px solid #bcbcb5;
    border-top: 0;

    background: #e8e8e2;
}

.legpra-barra-selecao small {
    display: block;

    margin-bottom: 3px;

    font-size: 8px;
    font-weight: 900;
    letter-spacing: .1em;

    color: #777;
}

.legpra-barra-selecao strong {
    display: block;

    max-width: 580px;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;

    font-size: 11px;
}

.legpra-botao-marcar {
    flex: 0 0 auto;

    min-height: 38px;
    padding: 0 14px;

    border: 1px solid #7c1f1a;

    background: #8d241e;
    color: #fff;

    cursor: pointer;

    font: inherit;
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .07em;
}

.legpra-botao-marcar:hover:not(:disabled) {
    background: #741b16;
}

.legpra-botao-marcar:disabled {
    border-color: #aaa;

    background: #d1d1cb;
    color: #888;

    cursor: not-allowed;
}


/* =========================================================
   LISTA DE VETOS
   ========================================================= */

.legpra-vetos-marcados {
    background: #f1e7e5;
}

.legpra-lista-vetos {
    display: grid;
    gap: 10px;
}

.legpra-veto-item {
    border: 1px solid #c6a9a6;
    background: #fff;
}

.legpra-veto-item-cabecalho {
    display: flex;
    align-items: center;
    justify-content: space-between;

    padding: 9px 12px;

    border-bottom: 1px solid #dec5c2;

    background: #eee0de;
}

.legpra-veto-item-cabecalho strong {
    font-size: 9px;
    letter-spacing: .1em;

    color: #6d1a15;
}

.legpra-veto-item-cabecalho button {
    appearance: none;

    border: 0;
    background: transparent;

    cursor: pointer;

    font: inherit;
    font-size: 8px;
    font-weight: 900;
    letter-spacing: .08em;

    color: #8b2019;
}

.legpra-veto-item blockquote,
.legpra-veto-historico-item blockquote {
    margin: 0;
    padding: 14px 16px;

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size: 13px;
    line-height: 1.65;

    color: #333;
}


/* =========================================================
   ÁREA DE DECISÃO
   ========================================================= */

.legpra-area-decisao {
    background: #eeeeE9;
}

.legpra-campo label {
    display: block;

    margin-bottom: 7px;

    font-size: 10px;
    font-weight: 900;
    letter-spacing: .07em;

    color: #333;
}

.legpra-campo textarea {
    display: block;

    width: 100%;
    min-height: 140px;

    padding: 14px 15px;

    border: 1px solid #aaa;
    border-radius: 0;

    resize: vertical;

    outline: none;

    background: #fff;
    color: #111;

    font: inherit;
    font-size: 13px;
    line-height: 1.6;
}

.legpra-campo textarea:focus {
    border-color: #006b45;

    box-shadow:
        inset 3px 0 0 #006b45;
}

.legpra-campo small {
    display: block;

    margin-top: 6px;

    font-size: 10px;
    line-height: 1.45;

    color: #666;
}


/* =========================================================
   MENSAGENS
   ========================================================= */

.legpra-mensagem {
    margin-top: 13px;
}

.legpra-mensagem:not(:empty) {
    padding: 10px 12px;

    border: 1px solid #aaa;

    font-size: 10px;
    line-height: 1.5;
    font-weight: 800;
    letter-spacing: .03em;

    background: #fff;
}

.legpra-mensagem-sucesso {
    border-color: #7fa391 !important;
    background: #e4eee8 !important;
    color: #174d35;
}

.legpra-mensagem-erro {
    border-color: #bd8985 !important;
    background: #f2e2e0 !important;
    color: #751e18;
}

.legpra-mensagem-processando {
    border-color: #aaa !important;
    background: #e3e3dd !important;
    color: #444;
}


/* =========================================================
   AÇÕES PRESIDENCIAIS
   ========================================================= */

.legpra-acoes-decisao {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    margin-top: 22px;

    border-top: 1px solid #aaa;
    border-left: 1px solid #aaa;
}

.legpra-acao {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr);
    align-items: start;
    gap: 12px;

    min-height: 120px;

    padding: 17px;

    border: 0;
    border-right: 1px solid #aaa;
    border-bottom: 1px solid #aaa;

    text-align: left;

    cursor: pointer;

    font: inherit;

    background: #f7f7f3;
    color: #111;

    transition:
        background-color .14s ease,
        color .14s ease;
}

.legpra-acao > span {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 34px;
    height: 34px;

    border: 1px solid currentColor;

    font-size: 9px;
    font-weight: 900;
}

.legpra-acao strong {
    display: block;

    margin: 3px 0 7px;

    font-size: 10px;
    line-height: 1.3;
    letter-spacing: .05em;
}

.legpra-acao small {
    display: block;

    font-size: 10px;
    line-height: 1.45;

    opacity: .72;
}

.legpra-acao-sancao:hover {
    background: #006b45;
    color: #fff;
}

.legpra-acao-veto-parcial:hover {
    background: #7c4d16;
    color: #fff;
}

.legpra-acao-veto-total:hover {
    background: #841d18;
    color: #fff;
}

.legpra-acao:disabled {
    background: #ddd;
    color: #888;

    cursor: not-allowed;
}


/* =========================================================
   DECISÃO REGISTRADA
   ========================================================= */

.legpra-decisao-registrada {
    background: #e9ece8;
}

.legpra-decisao-carimbo {
    display: inline-flex;
    flex-direction: column;

    margin-bottom: 25px;
    padding: 13px 17px;

    border: 3px double #006b45;

    transform: rotate(-1deg);

    color: #006b45;
    background: rgba(255, 255, 255, .45);
}

.legpra-decisao-carimbo span {
    margin-bottom: 4px;

    font-size: 8px;
    font-weight: 900;
    letter-spacing: .14em;
}

.legpra-decisao-carimbo strong {
    font-size: 19px;
    text-transform: uppercase;
}

.legpra-decisao-dados {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));

    margin-bottom: 20px;

    border-top: 1px solid #bbb;
    border-left: 1px solid #bbb;
}

.legpra-decisao-dados > div {
    padding: 12px;

    border-right: 1px solid #bbb;
    border-bottom: 1px solid #bbb;
}

.legpra-decisao-dados span,
.legpra-fundamentacao-registrada > span {
    display: block;

    margin-bottom: 5px;

    font-size: 8px;
    font-weight: 900;
    letter-spacing: .1em;

    color: #666;
}

.legpra-decisao-dados strong {
    font-size: 11px;
}

.legpra-fundamentacao-registrada {
    padding: 17px;

    border: 1px solid #bbb;

    background: #fff;
}

.legpra-fundamentacao-registrada p {
    margin: 0;

    white-space: pre-wrap;

    font-size: 13px;
    line-height: 1.65;

    color: #333;
}


/* =========================================================
   HISTÓRICO DE VETOS
   ========================================================= */

.legpra-historico-vetos {
    margin-top: 24px;
}

.legpra-historico-vetos > .legpra-supra {
    margin-bottom: 10px;
}

.legpra-veto-historico-item {
    margin-bottom: 10px;

    border: 1px solid #c7aaa7;

    background: #fff;
}

.legpra-veto-historico-item > strong {
    display: block;

    padding: 8px 12px;

    border-bottom: 1px solid #dfc9c7;

    background: #eee0de;

    font-size: 9px;
    letter-spacing: .08em;

    color: #721c17;
}


/* =========================================================
   RODAPÉ DO SISTEMA
   ========================================================= */

.legpra-rodape-sistema {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));

    border-left: 1px solid #c8c8c1;
    border-right: 1px solid #c8c8c1;
    border-bottom: 1px solid #c8c8c1;

    background: #171917;
    color: #aeb3af;
}

.legpra-rodape-sistema div {
    padding: 10px 13px;

    border-right: 1px solid #393c39;

    font-size: 7px;
    font-weight: 800;
    letter-spacing: .1em;
}

.legpra-rodape-sistema div:nth-child(2) {
    text-align: center;
}

.legpra-rodape-sistema div:last-child {
    border-right: 0;
    text-align: right;
}


/* =========================================================
   SCROLLBAR DA FILA
   ========================================================= */

.legpra-lista::-webkit-scrollbar {
    width: 8px;
}

.legpra-lista::-webkit-scrollbar-track {
    background: #deded8;
}

.legpra-lista::-webkit-scrollbar-thumb {
    background: #999;
}


/* =========================================================
   RESPONSIVIDADE
   ========================================================= */

@media (max-width: 1000px) {

    .legpra-identificacao {
        grid-template-columns: 1fr;
    }

    .legpra-identificacao-lateral {
        border-top: 1px solid #c8c8c1;
        border-left: 0;
    }

    .legpra-layout {
        grid-template-columns: 290px minmax(0, 1fr);
    }

    .legpra-acoes-decisao {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 800px) {

    .legpra-barra-estado {
        grid-template-columns: 1fr;
    }

    .legpra-indicador-sistema {
        border-right: 0;
        border-bottom: 1px solid #3b3e3b;
    }

    .legpra-layout {
        grid-template-columns: 1fr;
    }

    .legpra-fila {
        border-right: 0;
        border-bottom: 1px solid #bdbdb6;
    }

    .legpra-lista {
        max-height: 330px;
    }

    .legpra-metadados {
        grid-template-columns: 1fr;
    }

    .legpra-metadados > div {
        border-right: 0;
        border-bottom: 1px solid #d2d2cc;
    }

    .legpra-metadados > div:last-child {
        border-bottom: 0;
    }

}


@media (max-width: 650px) {

    .legpra-principal {
        padding-top: 15px;
    }

    .legpra-identificacao > div:first-child,
    .legpra-identificacao-lateral {
        padding: 20px;
    }

    .legpra-identificacao h1 {
        font-size: 29px;
    }

    .legpra-barra-info {
        grid-template-columns: 1fr;
    }

    .legpra-barra-info > div {
        border-right: 0;
        border-bottom: 1px solid #3b3e3b;
    }

    .legpra-barra-info > div:last-child {
        border-bottom: 0;
    }

    .legpra-controles {
        flex-direction: column;
    }

    .legpra-abas {
        width: 100%;
        overflow-x: auto;
    }

    .legpra-aba {
        flex: 1 0 auto;
    }

    .legpra-atualizar {
        width: 100%;

        border-top: 1px solid #c8c8c1;
        border-left: 0;
    }

    .legpra-materia-cabecalho {
        align-items: flex-start;
        flex-direction: column;

        padding: 19px;
    }

    .legpra-materia-introducao,
    .legpra-texto-secao,
    .legpra-vetos-marcados,
    .legpra-area-decisao,
    .legpra-decisao-registrada {
        padding: 21px 18px;
    }

    .legpra-texto-projeto {
        padding: 23px 18px;

        font-size: 15px;
        line-height: 1.75;
    }

    .legpra-barra-selecao {
        align-items: stretch;
        flex-direction: column;
    }

    .legpra-barra-selecao strong {
        white-space: normal;
    }

    .legpra-botao-marcar {
        width: 100%;
    }

    .legpra-sem-selecao {
        min-height: 420px;
        padding: 35px 22px;
    }

    .legpra-rodape-sistema {
        grid-template-columns: 1fr;
    }

    .legpra-rodape-sistema div,
    .legpra-rodape-sistema div:nth-child(2),
    .legpra-rodape-sistema div:last-child {
        border-right: 0;
        border-bottom: 1px solid #393c39;

        text-align: left;
    }

    .legpra-rodape-sistema div:last-child {
        border-bottom: 0;
    }

}

/* =========================================
   SINÉTION — CARIMBO DE DECISÃO DO PRAESVOLÍ
========================================= */

.sinetion-carimbo-praesvoli-area {
    display: flex;
    justify-content: flex-end;
    margin: 10px 14px 2px 0;
    pointer-events: none;
}

.sinetion-carimbo-praesvoli {
    position: relative;

    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    min-width: 190px;
    padding: 8px 16px 7px;

    border: 3px double currentColor;

    font-family: Arial, Helvetica, sans-serif;
    text-align: center;
    text-transform: uppercase;

    transform: rotate(-2deg);
    opacity: 0.78;
}

.sinetion-carimbo-praesvoli::before {
    content: "";

    position: absolute;
    inset: 3px;

    border: 1px solid currentColor;

    opacity: 0.45;
}

.sinetion-carimbo-praesvoli strong {
    display: block;

    font-size: 12px;
    line-height: 1.1;
    font-weight: 900;
    letter-spacing: 0.12em;
}

.sinetion-carimbo-praesvoli span {
    display: block;

    margin-top: 4px;

    font-size: 9px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: 0.2em;
}

.sinetion-carimbo-praesvoli small {
    display: block;

    margin-top: 4px;

    font-size: 8px;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.12em;
}


/* SANÇÃO */

.sinetion-carimbo-praesvoli.sancao {
    color: #006b45;
}


/* VETO TOTAL */

.sinetion-carimbo-praesvoli.veto {
    color: #9d1824;
}


/* VETO PARCIAL */

.sinetion-carimbo-praesvoli.veto-parcial {
    color: #8a4d10;
}


@media (max-width: 700px) {

    .sinetion-carimbo-praesvoli-area {
        justify-content: flex-start;
        margin: 12px 0 4px;
    }

    .sinetion-carimbo-praesvoli {
        min-width: 165px;
        padding: 7px 12px;
    }

}

/* =========================================
   ARQUIVO LEGISLATIVO CENTRAL
========================================= */

.pagina-legislacao {
    margin: 0;
    background: #e9e6dc;
    color: #171a17;
    font-family: Georgia, "Times New Roman", serif;
}


/* TOPO */

.legislacao-topo {
    display: flex;
    justify-content: space-between;
    align-items: center;

    min-height: 92px;
    padding: 0 5.5%;

    background: #1c3129;
    color: #f5f1df;

    border-bottom: 4px solid #101b17;
}

.legislacao-topo-marca {
    display: flex;
    align-items: center;
    gap: 18px;
}

.legislacao-topo-simbolo {
    width: 52px;
    height: 52px;
    object-fit: contain;
}

.legislacao-topo-marca strong {
    display: block;
    font-size: 17px;
    letter-spacing: 0.08em;
}

.legislacao-topo-marca span {
    display: block;
    margin-top: 8px;

    font-family: "Courier New", monospace;
    font-size: 11px;
    letter-spacing: 0.18em;
}

.legislacao-topo-acoes {
    display: flex;
    align-items: center;
    gap: 14px;
}

.legislacao-topo-status {
    font-family: "Courier New", monospace;
    font-size: 11px;
    letter-spacing: 0.12em;
}

.legislacao-botao-topo {
    display: inline-flex;
    align-items: center;

    padding: 12px 18px;

    border: 1px solid rgba(255, 255, 255, 0.35);

    color: inherit;
    text-decoration: none;

    font-family: "Courier New", monospace;
    font-size: 11px;
    font-weight: 700;
}


/* IDENTIFICAÇÃO */

.legislacao-identificacao {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    padding: 14px 5.5%;

    background: #c8c3b7;

    border-bottom: 1px solid #8e8a80;
}

.legislacao-identificacao > div {
    padding: 10px 18px;

    border-left: 1px solid #99958b;
}

.legislacao-identificacao span {
    display: block;

    margin-bottom: 8px;

    font-family: "Courier New", monospace;
    font-size: 10px;
    letter-spacing: 0.1em;

    color: #615f57;
}

.legislacao-identificacao strong {
    display: block;

    font-family: "Courier New", monospace;
    font-size: 12px;
    letter-spacing: 0.08em;
}


/* CONTEÚDO */

.legislacao-conteudo {
    width: min(1500px, 90%);
    margin: 42px auto 80px;
}

.legislacao-cabecalho {
    padding-bottom: 26px;

    border-bottom: 2px solid #262922;
}

.legislacao-migalha {
    margin-bottom: 10px;

    font-family: "Courier New", monospace;
    font-size: 11px;
    letter-spacing: 0.14em;
}

.legislacao-cabecalho h1 {
    margin: 0;

    font-size: clamp(40px, 5vw, 68px);
    line-height: 1;
    font-weight: 400;
}

.legislacao-cabecalho p {
    margin: 18px 0 0;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 17px;

    color: #4b5049;
}


/* INDICADORES */

.legislacao-indicadores {
    display: grid;
    grid-template-columns:
        repeat(4, minmax(0, 1fr));

    margin-top: 32px;

    border: 1px solid #8c887d;
}

.legislacao-indicador {
    min-height: 105px;
    padding: 20px 24px;

    border-right: 1px solid #8c887d;
}

.legislacao-indicador:last-child {
    border-right: 0;
}

.legislacao-indicador span {
    display: block;

    font-family: "Courier New", monospace;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.legislacao-indicador strong {
    display: block;

    margin-top: 20px;

    font-size: 33px;
    font-weight: 400;
}


/* FILTROS */

.legislacao-filtros {
    display: grid;
    grid-template-columns:
        minmax(0, 2fr)
        minmax(160px, 0.5fr)
        minmax(180px, 0.6fr);

    gap: 18px;

    margin-top: 34px;
}

.legislacao-filtro-campo label {
    display: block;

    margin-bottom: 8px;

    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;
}

.legislacao-filtro-campo input,
.legislacao-filtro-campo select {
    width: 100%;
    box-sizing: border-box;

    min-height: 48px;
    padding: 0 14px;

    background: #f2efe6;

    border: 1px solid #969185;

    color: #1a1d19;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
}

.legislacao-filtro-campo input:focus,
.legislacao-filtro-campo select:focus {
    outline: 2px solid #1c6048;
    outline-offset: 1px;
}


/* ARQUIVO */

.legislacao-arquivo {
    margin-top: 38px;

    border: 1px solid #8c887d;
}

.legislacao-arquivo-cabecalho {
    display: flex;
    justify-content: space-between;
    align-items: center;

    padding: 18px 24px;

    background: #cbc6ba;

    border-top: 5px solid #9b7d42;
    border-bottom: 1px solid #8c887d;
}

.legislacao-arquivo-cabecalho span {
    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.12em;
}

.legislacao-arquivo-cabecalho h2 {
    margin: 8px 0 0;

    font-size: 26px;
    font-weight: 400;
}

.legislacao-arquivo-total {
    color: #5c5a53;
}


/* LISTA */

.legislacao-lista {
    background: #f0ede4;
}

.legislacao-card {
    position: relative;

    padding: 28px 28px 24px;

    border-bottom: 1px solid #b8b3a8;
}

.legislacao-card:last-child {
    border-bottom: 0;
}

.legislacao-card-topo {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.legislacao-card-numero {
    font-family: "Courier New", monospace;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.08em;

    color: #006b45;
}

.legislacao-card-status {
    display: inline-flex;

    padding: 8px 12px;

    border: 1px solid #6d766d;

    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
}

.legislacao-card-status.status-vigente {
    background: #dce6dc;
}

.legislacao-card-status.status-revogada {
    background: #e7d4d4;
}

.legislacao-card-status.status-parcialmente_revogada {
    background: #ebe1cc;
}

.legislacao-card-decisao {
    display: inline-block;

    margin-top: 18px;
    padding: 7px 11px;

    border: 2px double currentColor;

    font-family: "Courier New", monospace;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.1em;

    transform: rotate(-1deg);
}

.legislacao-card-decisao.sancao {
    color: #1e7656;
}

.legislacao-card-decisao.veto {
    color: #9a6535;
}

.legislacao-card h3 {
    margin: 22px 0 10px;

    font-size: 31px;
    line-height: 1.12;
    font-weight: 400;
}

.legislacao-card-ementa {
    max-width: 900px;

    margin: 0;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.55;

    color: #4d504b;
}

.legislacao-card-rodape {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;

    margin-top: 28px;
}

.legislacao-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;

    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;

    color: #696c66;
}

.legislacao-card-ver {
    padding: 8px 0 6px;

    background: transparent;

    border: 0;
    border-bottom: 1px solid #006b45;

    color: #006b45;

    font-size: 14px;
    font-weight: 700;

    cursor: pointer;
}


/* MENSAGENS */

.legislacao-mensagem,
.legislacao-vazio {
    padding: 30px;

    font-family: Arial, Helvetica, sans-serif;
}

.legislacao-mensagem-erro {
    color: #8d2027;
}

.legislacao-vazio strong {
    display: block;

    margin-bottom: 8px;
}


/* =========================================
   MODAL
========================================= */

.legislacao-modal {
    position: fixed;
    inset: 0;

    z-index: 5000;

    overflow-y: auto;
}

.legislacao-modal[hidden] {
    display: none;
}

.legislacao-modal-fundo {
    position: fixed;
    inset: 0;

    background: rgba(10, 16, 13, 0.76);
}

.legislacao-modal-documento {
    position: relative;

    width: min(950px, calc(100% - 40px));

    margin: 50px auto;

    padding: 0 0 50px;

    background: #f3efe5;

    border: 1px solid #77756d;

    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.38);
}

.legislacao-modal-fechar {
    position: absolute;
    top: 15px;
    right: 18px;

    z-index: 2;

    width: 36px;
    height: 36px;

    background: transparent;

    border: 1px solid #aca79c;

    font-size: 24px;
    line-height: 1;

    cursor: pointer;
}

.legislacao-documento-topo {
    padding: 22px 65px 20px 28px;

    background: #1d3129;
    color: #f5f1df;

    border-bottom: 5px solid #9d8045;
}

.legislacao-documento-topo span,
.legislacao-documento-topo strong {
    display: block;
}

.legislacao-documento-topo span {
    font-family: "Courier New", monospace;
    font-size: 10px;
    letter-spacing: 0.14em;
}

.legislacao-documento-topo strong {
    margin-top: 6px;

    font-size: 15px;
    letter-spacing: 0.06em;
}

.legislacao-documento-identificacao {
    display: flex;
    gap: 10px;

    padding: 20px 28px 0;
}

.legislacao-documento-identificacao span {
    padding: 6px 9px;

    border: 1px solid #8a887f;

    font-family: "Courier New", monospace;
    font-size
