:root {
    font-family: "Segoe UI", Arial, sans-serif;
    color: #202938;
    background: #f5f7fb;
    font-synthesis: none;
    --vinho-950: #0d2147;
    --vinho-900: #142952;
    --vinho-800: #18305f;
    --vinho-700: #1d376d;
    --vinho-100: #eaf0fa;
    --dourado: #c62828;
    --dourado-claro: #f1b4b4;
    --texto: #202938;
    --texto-suave: #657086;
    --borda: #d9e0eb;
    --fundo: #f5f7fb;
    --branco: #ffffff;
}

* {
    box-sizing: border-box;
}

html {
    min-width: 320px;
    scroll-behavior: smooth;
}

body {
    min-height: 100vh;
    margin: 0;
    background: radial-gradient( circle at 95% 15%, rgba(29, 55, 109, 0.07), transparent 24rem ), var(--fundo);
}

button,
input,
select {
    font: inherit;
}

button,
select {
    cursor: pointer;
}

    button:disabled,
    input:disabled,
    select:disabled {
        cursor: not-allowed;
        opacity: 0.68;
    }

h1,
h2,
h3,
p {
    margin-top: 0;
}

    h1:focus {
        outline: none;
    }

.hero-calculadora {
    overflow: hidden;
    color: #fff;
    background: radial-gradient( circle at 84% 35%, rgba(255, 255, 255, 0.10), transparent 18rem ), linear-gradient( 125deg, #142952 0%, #1d376d 62%, #294b88 100% );
}

.hero-conteudo {
    width: min(1180px, calc(100% - 40px));
    min-height: 310px;
    margin: 0 auto;
    padding: 58px 0 65px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 70px;
}

.hero-texto {
    max-width: 760px;
}

.hero-etiqueta {
    display: inline-flex;
    padding: 8px 13px;
    color: #ffffff;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border: 1px solid rgba(224, 201, 142, 0.38);
    border-color: rgba(255, 255, 255, 0.32);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.09);
}

.hero-texto h1 {
    max-width: 720px;
    margin: 21px 0 16px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.2rem, 5vw, 3.55rem);
    line-height: 1.04;
    letter-spacing: -0.035em;
}

.hero-texto p {
    max-width: 680px;
    margin-bottom: 0;
    color: rgba(255, 255, 255, 0.79);
    font-size: 1.04rem;
    line-height: 1.65;
}

.hero-resumo {
    min-width: 210px;
    padding: 27px;
    display: flex;
    flex-direction: column;
    border: 1px solid rgba(224, 201, 142, 0.32);
    border-color: rgba(255, 255, 255, 0.28);
    border-radius: 16px;
    background: rgba(10, 30, 67, 0.30);
    box-shadow: inset 0 1px rgba(255, 255, 255, 0.06);
    backdrop-filter: blur(8px);
}

    .hero-resumo span {
        color: rgba(255, 255, 255, 0.82);
        font-size: 0.75rem;
        font-weight: 800;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .hero-resumo strong {
        margin: 9px 0 5px;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 1.8rem;
    }

    .hero-resumo small {
        color: rgba(255, 255, 255, 0.70);
    }

.area-calculadora {
    position: relative;
    width: min(1180px, calc(100% - 40px));
    min-height: 450px;
    margin: -31px auto 0;
}

.painel-pesquisa {
    padding: 29px;
    background: #fff;
    border: 1px solid rgba(112, 87, 92, 0.14);
    border-radius: 16px;
    box-shadow: 0 18px 50px rgba(61, 15, 28, 0.12);
}

.painel-titulo {
    display: flex;
    align-items: center;
    gap: 15px;
    margin-bottom: 25px;
}

.numero-etapa {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    color: #fff;
    font-weight: 800;
    border-radius: 50%;
    background: var(--vinho-700);
    box-shadow: 0 7px 18px rgba(123, 23, 48, 0.22);
}

.painel-titulo h2 {
    margin-bottom: 4px;
    font-size: 1.18rem;
}

.painel-titulo p {
    margin-bottom: 0;
    color: var(--texto-suave);
    font-size: 0.88rem;
}

.campos-pesquisa {
    display: grid;
    grid-template-columns: minmax(280px, 0.85fr) minmax(360px, 1.35fr);
    gap: 18px;
}

.campo label {
    display: block;
    margin-bottom: 8px;
    color: #4f464b;
    font-size: 0.79rem;
    font-weight: 800;
}

.campo select,
.campo input {
    width: 100%;
    min-height: 50px;
    color: var(--texto);
    background: #fbfaf9;
    border: 1px solid #d9d0ce;
    border-radius: 9px;
    outline: none;
    transition: 160ms ease;
}

.campo select {
    padding: 0 42px 0 14px;
}

.campo input {
    padding: 0 14px 0 44px;
}

    .campo select:focus,
    .campo input:focus {
        background: #fff;
        border-color: var(--vinho-700);
        box-shadow: 0 0 0 4px rgba(123, 23, 48, 0.09);
    }

.entrada-com-icone {
    position: relative;
}

    .entrada-com-icone > span {
        position: absolute;
        top: 50%;
        left: 16px;
        z-index: 1;
        color: var(--vinho-700);
        font-size: 1.45rem;
        transform: translateY(-54%);
    }

.estado-pagina,
.estado-inicial {
    min-height: 280px;
    margin-top: 26px;
    padding: 45px 25px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: rgba(255, 255, 255, 0.72);
    border: 1px dashed #d7ccca;
    border-radius: 16px;
}

    .estado-pagina strong,
    .estado-inicial h2 {
        margin: 15px 0 7px;
        font-family: Georgia, "Times New Roman", serif;
        font-size: 1.35rem;
    }

    .estado-pagina small,
    .estado-inicial p {
        max-width: 500px;
        margin-bottom: 0;
        color: var(--texto-suave);
        line-height: 1.6;
    }

.estado-icone {
    width: 64px;
    height: 64px;
    display: grid;
    place-items: center;
    color: var(--vinho-700);
    font-family: Georgia, serif;
    font-size: 2rem;
    border: 1px solid #dcc9ce;
    border-radius: 50%;
    background: var(--vinho-100);
}

.spinner {
    width: 35px;
    height: 35px;
    border: 4px solid #eadde0;
    border-top-color: var(--vinho-700);
    border-radius: 50%;
    animation: girar 0.75s linear infinite;
}

@keyframes girar {
    to {
        transform: rotate(360deg);
    }
}

.resultado-cabecalho {
    margin: 31px 2px 18px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

    .resultado-cabecalho div {
        display: flex;
        align-items: baseline;
        gap: 9px;
    }

    .resultado-cabecalho span {
        color: var(--texto-suave);
        font-size: 0.84rem;
    }

    .resultado-cabecalho strong {
        color: var(--vinho-700);
        font-size: 1.35rem;
    }

    .resultado-cabecalho p {
        margin-bottom: 0;
        color: #4d4449;
        font-size: 0.9rem;
        font-weight: 700;
    }

.lista-grupos {
    display: flex;
    flex-direction: column;
    gap: 27px;
}

.grupo-titulo {
    margin-bottom: 14px;
    display: flex;
    align-items: center;
    gap: 10px;
}

    .grupo-titulo span {
        width: 5px;
        height: 26px;
        border-radius: 4px;
        background: var(--dourado);
    }

    .grupo-titulo h2 {
        margin-bottom: 0;
        color: var(--vinho-900);
        font-family: Georgia, "Times New Roman", serif;
        font-size: 1.2rem;
    }

.grade-servicos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 17px;
}

.cartao-servico {
    padding: 23px;
    display: flex;
    flex-direction: column;
    background: #fff;
    border: 1px solid var(--borda);
    border-top: 3px solid transparent;
    border-radius: 13px;
    box-shadow: 0 7px 24px rgba(55, 34, 40, 0.055);
    transition: 180ms ease;
}

    .cartao-servico:hover {
        border-top-color: var(--dourado);
        box-shadow: 0 13px 34px rgba(61, 15, 28, 0.11);
        transform: translateY(-2px);
    }

.cartao-topo {
    min-height: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.codigo-servico {
    padding: 5px 8px;
    color: var(--vinho-700);
    font-size: 0.72rem;
    font-weight: 800;
    border-radius: 5px;
    background: var(--vinho-100);
}

.situacao-servico {
    margin-left: auto;
    color: #80777b;
    font-size: 0.69rem;
    font-weight: 700;
    text-transform: uppercase;
}

.cartao-servico h3 {
    margin: 17px 0 20px;
    color: #352d31;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.08rem;
    line-height: 1.45;
}

.dados-financeiros {
    padding: 15px 0;
    display: flex;
    flex-wrap: wrap;
    gap: 27px;
    border-top: 1px solid #eee8e6;
    border-bottom: 1px solid #eee8e6;
}

.dado-financeiro {
    display: flex;
    flex-direction: column;
}

    .dado-financeiro small {
        margin-bottom: 4px;
        color: var(--texto-suave);
        font-size: 0.73rem;
    }

    .dado-financeiro strong {
        color: var(--vinho-700);
        font-size: 1.1rem;
    }

.informacao-servico,
.observacao-servico {
    margin-top: 15px;
}

    .informacao-servico span,
    .observacao-servico strong {
        color: #62575d;
        font-size: 0.74rem;
        font-weight: 800;
        text-transform: uppercase;
    }

    .informacao-servico p,
    .observacao-servico p {
        margin: 5px 0 0;
        color: var(--texto-suave);
        font-size: 0.84rem;
        line-height: 1.55;
    }

.observacao-servico {
    padding: 12px;
    background: #faf6ed;
    border-left: 3px solid var(--dourado);
    border-radius: 5px;
}

.botao-selecionar {
    width: 100%;
    min-height: 43px;
    margin-top: auto;
    padding: 0 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: var(--vinho-700);
    font-weight: 800;
    background: #fff;
    border: 1px solid #cdbdc1;
    border-radius: 8px;
    transition: 160ms ease;
}

.cartao-servico .botao-selecionar {
    margin-top: 20px;
}

.botao-selecionar:hover {
    color: #fff;
    background: var(--vinho-700);
    border-color: var(--vinho-700);
}

.botao-selecionar span {
    font-size: 1.15rem;
}

.selecao-flutuante {
    position: sticky;
    right: 20px;
    bottom: 18px;
    z-index: 30;
    width: min(760px, calc(100% - 40px));
    min-height: 76px;
    margin: 20px auto;
    padding: 14px 17px 14px 21px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    color: #fff;
    background: linear-gradient(135deg, #4b0818, #76162e);
    border: 1px solid rgba(224, 201, 142, 0.55);
    border-radius: 12px;
    box-shadow: 0 15px 42px rgba(53, 7, 19, 0.32);
}

    .selecao-flutuante div {
        min-width: 0;
        display: flex;
        flex-direction: column;
    }

    .selecao-flutuante small {
        margin-bottom: 4px;
        color: var(--dourado-claro);
        font-size: 0.72rem;
        font-weight: 800;
        text-transform: uppercase;
    }

    .selecao-flutuante strong {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .selecao-flutuante button {
        flex: 0 0 auto;
        padding: 9px 15px;
        color: #fff;
        font-weight: 700;
        background: transparent;
        border: 1px solid rgba(255, 255, 255, 0.45);
        border-radius: 7px;
    }

.mensagem {
    margin: 30px 0;
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 7px;
    border-radius: 10px;
}

.mensagem-erro {
    color: #8f1d24;
    background: #fff0f1;
    border-color: #efb7bc;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid #26b050;
}

.invalid {
    outline: 1px solid #e50000;
}

.validation-message {
    color: #e50000;
}

.blazor-error-boundary {
    padding: 1rem;
    color: #fff;
    background: #8a1d34;
}

@media (max-width: 860px) {
    .hero-conteudo {
        gap: 35px;
    }

    .hero-resumo {
        display: none;
    }

    .campos-pesquisa {
        grid-template-columns: 1fr;
    }

    .grade-servicos {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .hero-conteudo,
    .area-calculadora {
        width: min(100% - 28px, 1180px);
    }

    .hero-conteudo {
        min-height: 275px;
        padding: 40px 0 58px;
    }

    .hero-texto h1 {
        font-size: 2.15rem;
    }

    .hero-texto p {
        font-size: 0.94rem;
    }

    .painel-pesquisa {
        padding: 20px;
    }

    .painel-titulo {
        align-items: flex-start;
    }

    .resultado-cabecalho {
        align-items: flex-start;
        flex-direction: column;
        gap: 5px;
    }

    .cartao-servico {
        padding: 19px;
    }

    .selecao-flutuante {
        width: calc(100% - 28px);
    }
}

/* Propostas */
.envio-proposta { margin-top: 22px; }
.envio-proposta .acoes-calculo-salvo { align-items: end; margin-top: 0; }
.link-botao { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.pagina-proposta { width: min(1050px, calc(100% - 40px)); margin: 20px auto 70px; }
.formulario-proposta { display: grid; gap: 16px; margin-top: 16px; }
.resumo-validacao { padding: 14px 18px; color: #941f38; background: #fff1f3; border: 1px solid #e8b9c3; border-radius: 9px; }
.resumo-validacao:empty { display: none; }
.cartao-formulario-proposta { background: #fff; border: 1px solid var(--borda); border-radius: 12px; overflow: hidden; }
.cartao-formulario-proposta > header { padding: 17px 20px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: #f8fafc; border-bottom: 1px solid var(--borda); }
.cartao-formulario-proposta > header > div { display: flex; align-items: center; gap: 11px; }
.cartao-formulario-proposta > header span { width: 30px; height: 30px; display: grid; place-items: center; color: #fff; background: #183469; border-radius: 50%; font-size: .72rem; font-weight: 800; }
.cartao-formulario-proposta > header h2 { margin: 0; color: #142952; font-size: 1.05rem; }
.cartao-formulario-proposta > header small { color: #6c7a91; }
.grade-formulario-proposta { padding: 20px; display: grid; gap: 16px; }
.duas-colunas { grid-template-columns: repeat(2,minmax(0,1fr)); }
.coluna-inteira { grid-column: 1 / -1; }
.campo-formulario { min-width: 0; display: flex; flex-direction: column; gap: 7px; }
.campo-formulario label { color: #40506a; font-size: .78rem; font-weight: 800; }
.campo-formulario input,.campo-formulario textarea,.campo-formulario select { width: 100%; padding: 11px 12px; color: #29354a; background: #fff; border: 1px solid #cfd6e0; border-radius: 8px; font: inherit; }
.campo-formulario textarea { resize: vertical; line-height: 1.45; }
.campo-formulario input:focus,.campo-formulario textarea:focus,.campo-formulario select:focus { outline: 3px solid rgba(24,52,105,.1); border-color: #183469; }
.lista-clausulas-proposta { padding: 9px 20px 20px; display: grid; }
.clausula-proposta { padding: 13px 3px; display: flex; align-items: flex-start; gap: 12px; border-bottom: 1px dotted #d3d9e2; cursor: pointer; }
.clausula-proposta:last-child { border-bottom: 0; }
.clausula-proposta input { margin-top: 4px; accent-color: #183469; }
.clausula-proposta > span { display: flex; flex-direction: column; gap: 5px; }
.clausula-proposta strong { color: #2a3850; font-size: .88rem; }
.clausula-proposta strong em { margin-left: 7px; padding: 3px 6px; color: #17336a; background: #e8eef8; border-radius: 4px; font-size: .62rem; font-style: normal; text-transform: uppercase; }
.clausula-proposta small { color: #65738a; line-height: 1.45; }
.clausula-marcada { background: linear-gradient(90deg,rgba(232,238,248,.55),transparent 65%); }
.cabecalho-proposta-salva { padding: 24px 26px; display: flex; align-items: center; justify-content: space-between; color: #fff; background: linear-gradient(135deg,#142952,#1d376d); border-radius: 14px; }
.cabecalho-proposta-salva span { color: #d9c183; font-size: .74rem; font-weight: 800; text-transform: uppercase; }
.cabecalho-proposta-salva h1 { margin: 5px 0 3px; font: 700 1.7rem Georgia,"Times New Roman",serif; }
.cabecalho-proposta-salva p { margin: 0; color: rgba(255,255,255,.72); }
.cabecalho-proposta-salva .status-proposta { color: #17336a; background: #fff; }
.aviso-documento { margin: 14px 0; padding: 12px 15px; color: #604f23; background: #fff8e6; border: 1px solid #ead9a7; border-radius: 8px; font-size: .82rem; }
.folha-proposta { padding: clamp(28px,5vw,60px); color: #242424; background: #fff; border: 1px solid #d9dde5; border-radius: 5px; box-shadow: 0 12px 35px rgba(20,41,82,.08); }
.folha-proposta > header { padding-bottom: 22px; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; border-bottom: 3px solid #183469; }
.folha-proposta > header h2 { margin: 0 0 5px; color: #142952; font: 700 1.35rem Georgia,"Times New Roman",serif; }
.folha-proposta > header p { margin: 0; color: #5f6877; }
.folha-proposta > header > span { color: #183469; font-size: .76rem; font-weight: 900; letter-spacing: .1em; }
.identidade-profissional { display: flex; align-items: center; gap: 16px; }
.identidade-profissional img { width: 105px; height: 62px; object-fit: contain; }
.identificacao-proposta { margin: 25px 0; padding: 18px; display: grid; grid-template-columns: 1fr 1fr; gap: 24px; background: #f4f6fa; border-radius: 8px; }
.identificacao-proposta div { display: flex; flex-direction: column; gap: 4px; }
.identificacao-proposta small { color: #758198; text-transform: uppercase; }
.identificacao-proposta strong { color: #142952; font-size: 1.05rem; }
.folha-proposta section > h3 { margin: 28px 0 8px; color: #142952; font: 700 1rem Georgia,"Times New Roman",serif; }
.folha-proposta section p { margin: 0; line-height: 1.65; }
.clausula-documento { margin: 0 0 18px; break-inside: avoid; }
.clausula-documento h4 { margin: 0 0 4px; color: #263954; font-size: .88rem; }
.clausula-documento p { color: #444; font-size: .84rem; text-align: justify; }
.folha-proposta > footer { margin-top: 42px; text-align: center; }
.assinatura-proposta { width: min(330px,100%); margin: 70px auto 0; display: flex; flex-direction: column; }
.assinatura-proposta > span { border-top: 1px solid #555; }
.assinatura-proposta strong { margin-top: 7px; }
.assinatura-proposta small { color: #687386; }
@media (max-width: 680px) { .duas-colunas,.identificacao-proposta { grid-template-columns: 1fr; } .coluna-inteira { grid-column: auto; } .cartao-formulario-proposta > header,.folha-proposta > header,.cabecalho-proposta-salva { align-items: flex-start; flex-direction: column; } }

.pagina-dados-profissionais { width: min(1000px,calc(100% - 40px)); margin: 28px auto 70px; }
.cartao-logomarca { margin-top: 18px; }
.conteudo-logomarca { padding: 24px; display: grid; grid-template-columns: minmax(220px,.7fr) minmax(320px,1.3fr); gap: 28px; }
.previa-logomarca { min-height: 210px; padding: 22px; display: grid; place-items: center; text-align: center; background: #f7f9fc; border: 1px dashed #b9c4d5; border-radius: 12px; }
.previa-logomarca img { max-width: 100%; max-height: 170px; object-fit: contain; }
.previa-logomarca div,.controles-logomarca { display: flex; flex-direction: column; gap: 10px; }
.previa-logomarca span,.controles-logomarca > span,.controles-logomarca > small { color: var(--texto-suave); }
.controles-logomarca input[type=file] { margin-top: 8px; padding: 12px; border: 1px solid var(--borda); border-radius: 8px; }
@media (max-width: 700px) { .conteudo-logomarca { grid-template-columns: 1fr; } }

.painel-calculo-local { margin-top: 0; }
.servico-em-calculo span { color: var(--texto-suave); font-size: .78rem; }
.bloco-calculo { margin: 20px 0; }
.bloco-calculo h3 { margin: 0 0 12px; color: var(--vinho-900); font-family: Georgia, "Times New Roman", serif; }
.modalidades { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.modalidade { min-height: 82px; padding: 14px; display: flex; flex-direction: column; gap: 5px; text-align: left; color: #493d42; background: #fff; border: 1px solid #d9cecb; border-radius: 10px; }
.modalidade small { color: var(--texto-suave); line-height: 1.35; }
.modalidade-ativa { color: var(--vinho-700); background: var(--vinho-100); border: 2px solid var(--vinho-700); }
.modalidade:disabled { cursor: not-allowed; opacity: .42; }
.nota-modalidades { margin: 10px 2px 0; color: var(--texto-suave); font-size: .78rem; line-height: 1.45; }
.configuracao-exito, .parcelamento { margin: 20px 0; padding: 18px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; background: #faf8f6; border: 1px solid var(--borda); border-radius: 11px; }
.configuracao-exito .campo small { display: block; margin-top: 6px; color: var(--texto-suave); }
.faixa-percentual { width: 100%; padding: 0 !important; accent-color: var(--vinho-700); }
.grade-criterios-compacta { margin-top: 20px; }
.criterio-select { padding: 14px; background: #fdfcfb; border: 1px solid var(--borda); border-radius: 10px; }
.criterio-select select { min-height: 42px; padding: 0 10px; }
.memoria-detalhada { margin-top: 22px; padding-top: 18px; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; border-top: 1px solid rgba(255,255,255,.18); }
.memoria-detalhada div { display: flex; justify-content: space-between; gap: 12px; }
.memoria-detalhada span { color: rgba(255,255,255,.7); }
.alerta-calculo { margin-top: 16px; padding: 12px 14px; color: #4c3212; background: #fff1cd; border-radius: 7px; }
.alerta-info { color: #203f64; background: #e7f2ff; }
.parcelamento { align-items: end; }
.parcelamento p { grid-column: 1 / -1; margin: 0; color: var(--vinho-700); font-weight: 700; }
.acoes-calculo { margin-top: 20px; display: flex; justify-content: flex-end; }
.botao-salvar { min-width: 190px; min-height: 46px; padding: 0 22px; color: #fff; font-weight: 800; background: var(--vinho-700); border: 0; border-radius: 8px; }
.botao-salvar:disabled { opacity: .5; cursor: not-allowed; }
.mensagem-sucesso { color: #245c37; background: #e8f7ed; border: 1px solid #a9d8b8; }
.identificacao-calculo { margin-top: 20px; padding: 18px; background: #fff; border: 1px solid var(--borda); border-radius: 11px; }
.identificacao-titulo h3 { margin-bottom: 4px; font-size: 1rem; }
.identificacao-titulo p { margin-bottom: 16px; color: var(--texto-suave); font-size: .84rem; }
.grade-identificacao { display: grid; grid-template-columns: 1.35fr .65fr; gap: 18px; }
.grade-identificacao .campo input { padding-left: 14px; }
.pagina-calculo-salvo { width: min(1050px, calc(100% - 40px)); margin: 38px auto 70px; }
.cabecalho-calculo-salvo { padding: 28px; display: flex; align-items: center; justify-content: space-between; gap: 25px; color: #fff; background: linear-gradient(135deg, #142952, #1d376d); border-radius: 15px; }
.cabecalho-calculo-salvo span { font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.cabecalho-calculo-salvo h1 { margin: 6px 0; font-family: Georgia, "Times New Roman", serif; font-size: 1.8rem; }
.cabecalho-calculo-salvo p { margin: 0; color: rgba(255,255,255,.72); }
.cabecalho-calculo-salvo > strong { white-space: nowrap; font-family: Georgia, "Times New Roman", serif; font-size: 2rem; }
.resumo-calculo-salvo, .valores-calculo-salvo { margin-top: 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.resumo-calculo-salvo div, .valores-calculo-salvo div, .cartao-detalhe-calculo, .criterios-salvos { padding: 17px; background: #fff; border: 1px solid var(--borda); border-radius: 10px; }
.resumo-calculo-salvo span, .valores-calculo-salvo span, .cartao-detalhe-calculo small, .criterios-salvos span { display: block; margin-bottom: 5px; color: var(--texto-suave); font-size: .75rem; }
.cartao-detalhe-calculo { margin-top: 18px; }
.cartao-detalhe-calculo h2 { margin: 5px 0; font-size: 1.05rem; }
.cartao-detalhe-calculo > span { color: var(--vinho-700); font-size: .78rem; font-weight: 800; }
.criterios-salvos { margin-top: 18px; }
.criterios-salvos h2 { font-size: 1rem; }
.criterios-salvos div { padding: 10px 0; display: flex; justify-content: space-between; gap: 18px; border-top: 1px solid var(--borda); }
.criterios-salvos div span { margin: 0; }
.criterios-salvos div strong { font-size: .84rem; text-align: right; }
.acoes-calculo-salvo { margin-top: 20px; display: flex; justify-content: flex-end; gap: 12px; }

.abas-painel { width: min(1180px, calc(100% - 40px)); margin: 24px auto 0; display: flex; gap: 6px; padding: 6px; background: #fff; border: 1px solid var(--borda); border-radius: 12px; box-shadow: 0 5px 18px rgba(20,41,82,.05); }
.aba-painel { border: 0; background: transparent; color: #50617e; padding: 11px 20px; border-radius: 8px; font: inherit; font-weight: 800; text-decoration: none; cursor: pointer; }
.aba-painel:hover { color: #142952; background: #f1f4f9; }
.aba-painel-ativa { color: #fff; background: #183469; }
.aba-painel-ativa:hover { color: #fff; background: #183469; }
.pagina-painel { width: min(1180px, calc(100% - 40px)); margin: 20px auto 70px; }
.cabecalho-painel { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px 26px; color: #fff; background: linear-gradient(135deg,#142952,#1d376d); border-radius: 14px; }
.cabecalho-painel span { font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.cabecalho-painel h1 { margin: 5px 0 4px; font-family: Georgia,"Times New Roman",serif; }
.cabecalho-painel p { margin: 0; color: rgba(255,255,255,.75); }
.barra-historico { margin: 16px 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.barra-historico .entrada-com-icone { width: min(560px,100%); }
.barra-historico > strong { color: #596a84; font-size: .86rem; }
.lista-historico { display: grid; gap: 10px; }
.item-historico { display: grid; grid-template-columns: 82px minmax(180px,1.1fr) minmax(240px,1.8fr) 150px auto; align-items: center; gap: 18px; padding: 16px 18px; background: #fff; border: 1px solid var(--borda); border-radius: 11px; }
.item-historico:hover { border-color: #a9b8d2; box-shadow: 0 6px 18px rgba(20,41,82,.06); }
.numero-historico span,.servico-historico span,.valor-historico span { display: block; color: #71809a; font-size: .72rem; }
.numero-historico strong { color: #17336a; }
.cliente-historico h2 { margin: 0 0 3px; font-size: 1rem; color: #142952; }
.cliente-historico p,.servico-historico p { margin: 0; color: #64728a; font-size: .8rem; }
.servico-historico p { overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.valor-historico { text-align: right; }
.valor-historico strong { display: block; color: #142952; font-size: 1rem; }
.acoes-historico { display: flex; gap: 6px; }
.acoes-historico button { white-space: nowrap; border: 1px solid #183469; color: #183469; background: #fff; border-radius: 7px; padding: 8px 10px; font-weight: 800; cursor: pointer; }
.acoes-historico .acao-editar { color: #fff; background: #183469; }
.status-proposta { justify-self: start; padding: 6px 10px; border-radius: 20px; color: #17336a; background: #eaf0fa; font-size: .76rem; font-weight: 800; }
@media (max-width: 900px) { .item-historico { grid-template-columns: 70px 1fr 140px; } .servico-historico { grid-column: 2 / -1; } .acoes-historico { grid-column: 2 / -1; } }
@media (max-width: 620px) { .abas-painel { overflow-x: auto; } .aba-painel { white-space: nowrap; } .cabecalho-painel,.barra-historico { align-items: stretch; flex-direction: column; } .item-historico { grid-template-columns: 1fr; } .servico-historico,.acoes-historico { grid-column: auto; } .valor-historico { text-align: left; } }
.botao-secundario { min-height: 46px; padding: 0 22px; color: var(--vinho-700); font-weight: 800; background: #fff; border: 1px solid var(--vinho-700); border-radius: 8px; }

@media (max-width: 760px) {
    .modalidades, .configuracao-exito, .parcelamento, .memoria-detalhada, .grade-identificacao, .resumo-calculo-salvo, .valores-calculo-salvo { grid-template-columns: 1fr; }
}

.painel-moderacao {
    margin: 36px 0 55px;
    padding: 30px;
    background: #fff;
    border: 1px solid rgba(112, 87, 92, 0.14);
    border-radius: 16px;
    box-shadow: 0 18px 50px rgba(61, 15, 28, 0.1);
}

.servico-em-calculo {
    margin-bottom: 28px;
    padding: 17px 19px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: var(--vinho-100);
    border-left: 4px solid var(--vinho-700);
    border-radius: 8px;
}

    .servico-em-calculo div {
        min-width: 0;
        display: flex;
        flex-direction: column;
        gap: 4px;
    }

    .servico-em-calculo small {
        color: var(--vinho-700);
        font-size: 0.72rem;
        font-weight: 800;
        text-transform: uppercase;
    }

    .servico-em-calculo strong {
        color: #3d3036;
    }

    .servico-em-calculo button {
        flex: 0 0 auto;
        padding: 9px 14px;
        color: var(--vinho-700);
        font-weight: 800;
        background: #fff;
        border: 1px solid #ccb9be;
        border-radius: 7px;
    }

.estado-criterios {
    min-height: 180px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.grade-criterios {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

.cartao-criterio {
    padding: 20px;
    border: 1px solid var(--borda);
    border-radius: 12px;
    background: #fdfcfb;
}

    .cartao-criterio header {
        min-height: 49px;
        margin-bottom: 17px;
        display: flex;
        align-items: flex-start;
        gap: 12px;
    }

        .cartao-criterio header > span {
            flex: 0 0 auto;
            width: 34px;
            height: 34px;
            display: grid;
            place-items: center;
            color: #fff;
            font-size: 0.75rem;
            font-weight: 800;
            border-radius: 50%;
            background: var(--vinho-700);
        }

    .cartao-criterio h3 {
        margin: 1px 0 3px;
        color: var(--vinho-900);
        font-family: Georgia, "Times New Roman", serif;
        font-size: 1rem;
    }

    .cartao-criterio header small {
        color: var(--texto-suave);
    }

.opcoes-criterio {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.opcao-criterio {
    position: relative;
    padding: 12px;
    display: flex;
    align-items: flex-start;
    gap: 11px;
    cursor: pointer;
    background: #fff;
    border: 1px solid #ded5d3;
    border-radius: 8px;
    transition: 150ms ease;
}

    .opcao-criterio:hover {
        border-color: #b99ca4;
    }

    .opcao-criterio input {
        position: absolute;
        opacity: 0;
        pointer-events: none;
    }

.marcador-opcao {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin-top: 1px;
    border: 2px solid #b8aaae;
    border-radius: 50%;
}

.opcao-selecionada {
    background: var(--vinho-100);
    border-color: var(--vinho-700);
}

    .opcao-selecionada .marcador-opcao {
        border: 5px solid var(--vinho-700);
        background: #fff;
    }

.texto-opcao {
    min-width: 0;
    display: flex;
    flex-direction: column;
}

    .texto-opcao strong {
        color: #463b40;
        font-size: 0.87rem;
    }

    .texto-opcao small {
        margin-top: 3px;
        color: var(--texto-suave);
    }

    .texto-opcao em {
        margin-top: 5px;
        color: var(--vinho-700);
        font-size: 0.7rem;
        font-style: normal;
        font-weight: 800;
        text-transform: uppercase;
    }

.base-calculo {
    margin-top: 26px;
    padding: 25px;
    background: #faf8f6;
    border: 1px solid var(--borda);
    border-radius: 12px;
}

.painel-titulo-menor {
    margin-bottom: 20px;
}

.aviso-base {
    margin-bottom: 18px;
    padding: 13px 15px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: #625044;
    background: #faf3e3;
    border-left: 3px solid var(--dourado);
    border-radius: 6px;
}

.campo-valor-base {
    max-width: 430px;
}

.entrada-moeda {
    position: relative;
}

    .entrada-moeda > span {
        position: absolute;
        top: 50%;
        left: 15px;
        color: var(--vinho-700);
        font-weight: 800;
        transform: translateY(-50%);
    }

    .entrada-moeda input {
        padding-left: 48px;
    }

.erro-campo {
    display: block;
    margin-top: 6px;
    color: #a51635;
}

.resultado-calculo {
    margin-top: 28px;
    padding: 28px;
    color: #fff;
    background: radial-gradient(circle at 90% 15%, rgba(224, 201, 142, 0.18), transparent 16rem), linear-gradient(135deg, #420713, #78172f);
    border: 1px solid rgba(224, 201, 142, 0.4);
    border-radius: 14px;
}

.resultado-titulo span {
    color: var(--dourado-claro);
    font-size: 0.72rem;
    font-weight: 800;
    text-transform: uppercase;
}

.resultado-titulo h2 {
    margin: 5px 0 22px;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
}

.resultado-principal {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 20px;
}

    .resultado-principal > strong {
        font-family: Georgia, "Times New Roman", serif;
        font-size: clamp(1.8rem, 5vw, 2.8rem);
    }

    .resultado-principal small {
        color: #e4d3a8;
        font-weight: 700;
    }

.memoria-calculo {
    margin-top: 23px;
    padding-top: 20px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 15px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
}

    .memoria-calculo div {
        display: flex;
        flex-direction: column;
        gap: 5px;
    }

    .memoria-calculo span {
        color: rgba(255, 255, 255, 0.68);
        font-size: 0.75rem;
    }

.resultado-final {
    color: #fff;
    background: radial-gradient( circle at 90% 15%, rgba(255, 255, 255, 0.12), transparent 16rem ), linear-gradient(135deg, #142952, #1d376d);
    border: 1px solid rgba(255, 255, 255, 0.24);
}

.nota-calculo {
    margin: 22px 0 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 0.78rem;
    line-height: 1.5;
}

.logo-oab {
    width: auto;
    height: 82px;
    flex-shrink: 0;
    object-fit: contain;
}

@media (max-width: 860px) {
    .grade-criterios {
        grid-template-columns: 1fr;
    }

    .memoria-calculo {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .painel-moderacao {
        padding: 20px;
    }

    .servico-em-calculo,
    .resultado-principal {
        align-items: flex-start;
        flex-direction: column;
    }

    .resultado-calculo {
        padding: 22px;
    }
}
.mensagem-alerta {
    border-color: #e4b95f;
    background: #fff8e8;
    color: #664d16;
}
