:root {
    --font-display: "Plus Jakarta Sans", sans-serif;
    --font-body: "Manrope", sans-serif;
    --color-bg: #f6f8ff;
    --color-bg-soft: #f1f5ff;
    --color-surface: #ffffff;
    --color-surface-soft: rgba(255, 255, 255, 0.8);
    --color-surface-mint: #ebf1ff;
    --color-text: #1a2b42;
    --color-text-soft: #6f7e98;
    --color-border: rgba(26, 43, 66, 0.1);
    --color-line: rgba(26, 43, 66, 0.08);
    --color-primary: #578eff;
    --color-primary-deep: #3165df;
    --color-primary-soft: #e3ecff;
    --color-accent: #f3a44f;
    --color-accent-soft: #fff0dc;
    --color-dark: #1f2937;
    --color-dark-soft: #293548;
    --color-risk-low: #5cbb7a;
    --color-risk-medium: #efb048;
    --color-risk-high: #eb6a62;
    --shadow-soft: 0 18px 50px rgba(26, 43, 66, 0.07);
    --shadow-card: 0 14px 28px rgba(26, 43, 66, 0.09);
    --shadow-hover: 0 18px 34px rgba(26, 43, 66, 0.12);
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 12px;
    --container: 1180px;
}

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--color-text);
    font-family: var(--font-body);
    background: var(--color-bg);
}

body.page-loading {
    cursor: progress;
}

a {
    color: inherit;
    text-decoration: none;
}

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

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

main {
    position: relative;
    z-index: 1;
}

.reveal {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}

.reveal-delay-1 {
    transition-delay: 0.08s;
}

.reveal.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.whatsapp-float {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1200;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 64px;
    height: 64px;
    border-radius: 999px;
    background: #25d366;
    color: #ffffff;
    box-shadow: 0 16px 36px rgba(37, 211, 102, 0.34);
    transition: transform 0.2s ease, box-shadow 0.2s ease, filter 0.2s ease;
    animation: whatsapp-float-pulse 2.8s ease-in-out infinite;
}

.whatsapp-float i {
    font-size: 2.3rem;
    line-height: 1;
}

.whatsapp-float:hover {
    transform: translateY(-3px);
    box-shadow: 0 18px 40px rgba(37, 211, 102, 0.42);
    filter: brightness(1.02);
}

.whatsapp-float:focus-visible {
    outline: 3px solid rgba(37, 211, 102, 0.32);
    outline-offset: 3px;
}

@keyframes whatsapp-float-pulse {
    0%,
    100% {
        box-shadow: 0 16px 36px rgba(37, 211, 102, 0.34);
        transform: translateY(0);
    }
    50% {
        box-shadow: 0 20px 46px rgba(37, 211, 102, 0.44);
        transform: translateY(-2px);
    }
}

@media (max-width: 640px) {
    .whatsapp-float {
        right: 16px;
        bottom: 16px;
        width: 58px;
        height: 58px;
    }
}

.page-loading-overlay {
    position: fixed;
    inset: 0;
    z-index: 9998;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(246, 248, 255, 0.58);
    backdrop-filter: blur(5px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.16s ease;
}

.page-loading-overlay.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.page-loading-card {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 18px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 16px 36px rgba(26, 43, 66, 0.16);
    color: var(--color-text);
    font-family: var(--font-display);
    font-size: 0.92rem;
    letter-spacing: -0.02em;
}

.page-loading-spinner {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid rgba(87, 142, 255, 0.18);
    border-top-color: var(--color-primary);
    animation: page-loading-spin 0.7s linear infinite;
}

@keyframes page-loading-spin {
    to {
        transform: rotate(360deg);
    }
}

.elevate,
.elevate-soft {
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}

.elevate:hover,
.elevate-soft:hover {
    transform: translateY(-4px);
}

.elevate:hover {
    box-shadow: var(--shadow-hover);
}

.elevate-soft:hover {
    box-shadow: 0 18px 36px rgba(26, 43, 66, 0.12);
}

:is(
    .botao,
    .topbar-publica,
    .lp-browser,
    .mini-panel,
    .content-panel,
    .metric-card,
    .prep-card,
    .soft-card,
    .module-card,
    .benefit-card,
    .security-visual,
    .security-block,
    .contact-highlight,
    .contact-card,
    .faq-item,
    .cta-panel,
    .card-login,
    .card-resumo,
    .painel,
    .card-empresa
) {
    position: relative;
    overflow: hidden;
}

:is(
    .botao,
    .topbar-publica,
    .lp-browser,
    .mini-panel,
    .content-panel,
    .metric-card,
    .prep-card,
    .soft-card,
    .module-card,
    .benefit-card,
    .security-visual,
    .security-block,
    .contact-highlight,
    .contact-card,
    .faq-item,
    .cta-panel,
    .card-login,
    .card-resumo,
    .painel,
    .card-empresa
)::after {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    background:
        radial-gradient(
            90px circle at var(--mouse-x, 50%) var(--mouse-y, 50%),
            rgba(87, 142, 255, 0.92),
            rgba(87, 142, 255, 0.34) 12%,
            transparent 32%
        );
    opacity: 0;
    transition: opacity 0.22s ease;
    pointer-events: none;
    -webkit-mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask:
        linear-gradient(#fff 0 0) content-box,
        linear-gradient(#fff 0 0);
    mask-composite: exclude;
}

:is(
    .botao,
    .topbar-publica,
    .lp-browser,
    .mini-panel,
    .content-panel,
    .metric-card,
    .prep-card,
    .soft-card,
    .module-card,
    .benefit-card,
    .security-visual,
    .security-block,
    .contact-highlight,
    .contact-card,
    .faq-item,
    .cta-panel,
    .card-login,
    .card-resumo,
    .painel,
    .card-empresa
):hover::after {
    opacity: 1;
}

.marca {
    display: inline-flex;
    align-items: center;
}

.marca-kicker,
.section-kicker,
.landing-kicker,
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--color-primary-deep);
}

.marca strong,
.landing-hero-copy h1,
.section-head h2,
.security-copy h2,
.benefit-card h3,
.prep-card h3,
.soft-card h3,
.module-card h3,
.faq-question span,
.cta-panel h2,
.footer-coluna h3,
.login-intro h1,
.card-login h2,
.topbar-app h1,
.painel-topo h2,
.lp-browser-head h2,
.content-panel strong {
    margin: 0;
    font-family: var(--font-display);
    letter-spacing: -0.04em;
}

.marca strong {
    font-size: clamp(1.12rem, 1.7vw, 1.44rem);
}

.marca-logo {
    display: block;
    width: auto;
    height: 48px;
    max-width: min(360px, 54vw);
    object-fit: contain;
}

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

.navbar-app-contexto {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
        "icon label"
        "icon value";
    column-gap: 10px;
    row-gap: 1px;
    align-items: center;
    min-width: 280px;
    min-height: 44px;
    padding: 8px 14px;
    margin-right: 2px;
    border: 1px solid rgba(87, 142, 255, 0.18);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(243, 247, 255, 0.98) 0%, rgba(231, 239, 255, 0.94) 100%);
    color: inherit;
    text-align: left;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    font: inherit;
}

.navbar-contexto-label {
    grid-area: label;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary-deep);
}

.navbar-app-contexto .bi {
    grid-area: icon;
    font-size: 0.96rem;
    color: var(--color-primary-deep);
}

.navbar-app-contexto strong {
    grid-area: value;
    font-family: var(--font-display);
    font-size: 0.96rem;
    letter-spacing: -0.03em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.menu-usuario {
    position: relative;
}

.navbar-app-actions .navbar-admin-link {
    flex: 0 0 auto;
    width: 53px;
    min-height: 53px;
    height: 53px;
    border-radius: var(--radius-md);
}

.navbar-app-actions .navbar-emulacao-link {
    flex: 0 0 auto;
    width: 53px;
    min-height: 53px;
    height: 53px;
    border-radius: var(--radius-md);
}

.navbar-app-actions .navbar-admin-link .bi {
    font-size: 1.22rem;
}

.navbar-app-actions .navbar-emulacao-link .bi {
    font-size: 1.22rem;
}

.navbar-emulacao-pill-form {
    display: flex;
    align-items: center;
    margin: 0;
}

.navbar-emulacao-pill {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-areas:
        "icon label"
        "icon value";
    column-gap: 10px;
    row-gap: 1px;
    align-items: center;
    min-height: 53px;
    min-width: 240px;
    padding: 8px 14px;
    border: 1px solid rgba(87, 142, 255, 0.18);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(243, 247, 255, 0.98) 0%, rgba(231, 239, 255, 0.94) 100%);
    color: var(--color-primary-deep);
    font-size: 0.84rem;
    font-weight: 700;
    line-height: 1.1;
    text-align: left;
    white-space: normal;
}

.navbar-emulacao-pill .bi {
    grid-area: icon;
    align-self: center;
    font-size: 1rem;
}

.navbar-emulacao-pill-label {
    grid-area: label;
    display: block;
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary-deep);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.navbar-emulacao-pill-value {
    grid-area: value;
    font-family: var(--font-display);
    font-size: 0.96rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    color: var(--color-risk-high);
    white-space: nowrap;
}

.navbar-emulacao-pill:hover {
    border-color: rgba(87, 142, 255, 0.3);
    background: linear-gradient(180deg, rgba(234, 242, 255, 1) 0%, rgba(223, 234, 255, 0.96) 100%);
}

.menu-usuario summary {
    list-style: none;
}

.menu-usuario summary::-webkit-details-marker {
    display: none;
}

.menu-usuario-trigger {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    padding: 8px 14px;
    border: 1px solid rgba(87, 142, 255, 0.18);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(243, 247, 255, 0.98) 0%, rgba(231, 239, 255, 0.94) 100%);
    cursor: pointer;
}

.menu-usuario[open] .menu-usuario-trigger {
    box-shadow: var(--shadow-card);
}

.menu-usuario-copy {
    display: flex;
    flex-direction: column;
    gap: 2px;
    text-align: left;
}

.menu-usuario-label {
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary-deep);
}

.menu-usuario-copy strong {
    font-size: 0.94rem;
    font-family: var(--font-display);
    letter-spacing: -0.03em;
}

.menu-usuario-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 10;
    display: grid;
    min-width: 200px;
    padding: 8px;
    border: 1px solid rgba(87, 142, 255, 0.18);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(247, 250, 255, 0.99) 0%, rgba(235, 242, 255, 0.98) 100%);
    box-shadow: var(--shadow-card);
}

.menu-usuario-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: var(--radius-sm);
    color: var(--color-text);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.menu-usuario-link .bi {
    flex: 0 0 auto;
    font-size: 0.98rem;
    color: var(--color-primary-deep);
}

.menu-usuario-link:hover {
    background: var(--color-primary-soft);
    color: var(--color-primary-deep);
}

.menu-usuario-link:hover .bi {
    color: var(--color-primary-deep);
}

.menu-secao {
    display: grid;
    gap: 6px;
}

.menu-secao + .menu-secao {
    margin-top: 14px;
}

.menu-secao-titulo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 6px 8px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.64);
    border: 1px solid rgba(157, 189, 255, 0.1);
    border-radius: 10px;
    background: linear-gradient(180deg, rgba(157, 189, 255, 0.1) 0%, rgba(157, 189, 255, 0.04) 100%);
}

.menu-secao-titulo-copy {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    justify-content: flex-start;
}

.menu-secao-titulo-simbolo {
    flex: 0 0 auto;
    font-size: 0.82rem;
    color: rgba(208, 225, 255, 0.88);
}

.menu-secao-colapsavel > .menu-secao-titulo {
    cursor: pointer;
    list-style: none;
    transition: border-color 0.22s ease, background-color 0.22s ease, color 0.22s ease;
}

.menu-secao-colapsavel > .menu-secao-titulo::-webkit-details-marker {
    display: none;
}

.menu-secao-colapsavel.ativa > .menu-secao-titulo,
.menu-secao-colapsavel[open] > .menu-secao-titulo {
    color: rgba(255, 255, 255, 0.92);
    border-color: rgba(157, 189, 255, 0.2);
    background: linear-gradient(180deg, rgba(157, 189, 255, 0.16) 0%, rgba(157, 189, 255, 0.07) 100%);
}

.menu-secao-titulo-texto {
    min-width: 0;
}

.menu-secao-icone {
    flex: 0 0 auto;
    font-size: 0.82rem;
    transition: transform 0.22s ease;
}

.menu-secao-colapsavel[open] .menu-secao-icone {
    transform: rotate(180deg);
}

.menu-secao-itens {
    display: grid;
    gap: 6px;
}

.sidebar-oculta .menu-secao-titulo,
.sidebar-oculta .sidebar-rodape p {
    display: none;
}

.painel-topo-coluna {
    align-items: stretch;
}

.painel > .painel-topo + :is(
    form,
    .grade-resumo,
    .grade-resumo-compacta,
    .resultado-insights-grid,
    .resultado-sugestoes-grid,
    .resultado-barras-grid,
    .resultado-hierarquia-lista,
    .empresa-grupos,
    .catalogo-lista,
    .catalogo-meta-grid,
    .catalogo-tags,
    .tabela-wrapper
) {
    margin-top: 16px;
}

.painel > .painel-topo + .tabela-wrapper {
    margin-top: 16px;
}

.painel-orientacao .painel-topo {
    gap: 20px;
}

.orientacao-destaque {
    display: grid;
    gap: 8px;
    align-self: stretch;
    min-width: min(100%, 320px);
    padding: 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(227, 236, 255, 0.6), rgba(255, 255, 255, 0.94));
}

.orientacao-destaque strong,
.bloco-proxima-acao strong,
.card-ciclo-atual strong {
    font-family: var(--font-display);
    font-size: 1.05rem;
    letter-spacing: -0.03em;
}

.grid-conteudo-ux {
    grid-template-columns: 1.25fr 1fr;
}

.bloco-ciclo-explicacao {
    display: grid;
    grid-template-columns: 1.4fr minmax(220px, 320px);
    gap: 16px;
}

.bloco-ciclo-copy,
.bloco-proxima-acao,
.card-ciclo-atual {
    display: grid;
    gap: 10px;
}

.card-ciclo-atual,
.bloco-proxima-acao,
.item-checklist,
.item-vinculo {
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.86);
}

.lista-checklist,
.lista-vinculos {
    display: grid;
    gap: 12px;
}

.item-checklist {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 16px;
    align-items: start;
}

.item-checklist-copy {
    display: grid;
    gap: 6px;
}

.item-checklist-head {
    display: flex;
    align-items: center;
    gap: 10px;
}

.item-checklist-meta {
    font-size: 0.87rem;
    color: var(--color-text-soft);
}

.item-checklist-acoes {
    display: grid;
    justify-items: end;
    align-content: start;
    gap: 12px;
    min-width: 220px;
}

.lista-checklist {
    margin-top: 16px;
}

.badge-estado-concluido {
    background: rgba(92, 187, 122, 0.18);
    color: #2f8d4a;
}

.badge-estado-em_andamento {
    background: rgba(239, 176, 72, 0.18);
    color: #a66f10;
}

.badge-estado-pendente {
    background: rgba(87, 142, 255, 0.16);
    color: var(--color-primary-deep);
}

.lista-exemplos-ciclo {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.item-vinculo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

@media (max-width: 1180px) {
    .navbar-app-inner {
        gap: 12px;
    }

    .navbar-app-contexto {
        max-width: 240px;
    }

    .grid-conteudo-ux,
    .bloco-ciclo-explicacao,
    .item-checklist {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .navbar-app-inner {
        flex-wrap: wrap;
    }

    .navbar-app-actions {
        width: 100%;
        justify-content: flex-end;
        flex-wrap: wrap;
        gap: 8px;
    }

    .menu-usuario-copy strong {
        max-width: 120px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .navbar-app-contexto {
        order: -1;
        width: 100%;
        max-width: none;
        margin-right: 0;
    }

    .navbar-botao-contexto {
        display: inline-flex;
    }
}

.botao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(87, 142, 255, 0.22);
    border-radius: var(--radius-sm);
    font-weight: 800;
    font-size: 0.96rem;
    white-space: nowrap;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease, background-color 0.22s ease;
}

.botao-com-icone {
    gap: 7px;
}

.botao-com-icone .bi {
    font-size: 0.9rem;
    line-height: 1;
}

.botao:hover {
    transform: translateY(1px);
}

.botao-primario {
    color: #ffffff;
    background: linear-gradient(135deg, #578eff 0%, #9ec2ff 100%);
    box-shadow: 0 14px 28px rgba(87, 142, 255, 0.22);
}

.botao-primario:hover {
    box-shadow: 0 18px 34px rgba(87, 142, 255, 0.28);
}

.botao-secundario {
    color: var(--color-primary-deep);
    background: linear-gradient(180deg, rgba(243, 247, 255, 0.98) 0%, rgba(231, 239, 255, 0.94) 100%);
    border-color: rgba(87, 142, 255, 0.18);
    backdrop-filter: blur(10px);
}

.botao-secundario:hover {
    color: #244fb8;
    background: linear-gradient(180deg, rgba(236, 243, 255, 1) 0%, rgba(220, 233, 255, 0.98) 100%);
    border-color: rgba(87, 142, 255, 0.28);
}

.botao-reabrir-ciclo,
.botao-reabrir-ciclo:hover {
    color: #5f6b7d;
    background: linear-gradient(180deg, rgba(244, 246, 249, 0.98) 0%, rgba(233, 237, 243, 0.96) 100%);
    border-color: rgba(95, 107, 125, 0.18);
    box-shadow: none;
}

.botao-reabrir-ciclo:hover {
    color: #475163;
    border-color: rgba(95, 107, 125, 0.26);
}

.botao-perigo {
    color: #c43d36;
    background: linear-gradient(180deg, rgba(255, 244, 243, 0.98) 0%, rgba(255, 232, 229, 0.95) 100%);
    border-color: rgba(221, 95, 86, 0.22);
    backdrop-filter: blur(10px);
}

.botao-perigo:hover {
    color: #a92b24;
    background: linear-gradient(180deg, rgba(255, 238, 236, 1) 0%, rgba(255, 220, 216, 0.98) 100%);
    border-color: rgba(214, 78, 70, 0.34);
}

.botao-bloco {
    width: 100%;
}

.soft-pill,
.badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 30px;
    padding: 0 12px;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.soft-pill {
    color: var(--color-primary-deep);
    background: rgba(87, 142, 255, 0.12);
}

.badge-neutro {
    color: var(--color-text);
    background: rgba(24, 51, 46, 0.08);
}

.badge-baixo {
    color: #2e7444;
    background: rgba(92, 187, 122, 0.14);
}

.badge-medio {
    color: #996100;
    background: rgba(239, 176, 72, 0.16);
}

.badge-alto {
    color: #a43934;
    background: rgba(235, 106, 98, 0.14);
}

.tema-publico {
    min-height: 100vh;
    background:
        radial-gradient(circle at top left, rgba(229, 236, 255, 0.98), transparent 28%),
        radial-gradient(circle at top right, rgba(87, 142, 255, 0.12), transparent 22%),
        linear-gradient(180deg, #fcfdff 0%, #f5f8ff 60%, #eef3ff 100%);
}

.fundo-publico {
    position: fixed;
    inset: 0;
    background-image:
        linear-gradient(rgba(255, 255, 255, 0.32) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.32) 1px, transparent 1px);
    background-size: 34px 34px;
    mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.16), transparent 76%);
    pointer-events: none;
}

.topbar-publica,
.lp-hero,
.landing-metrics,
.landing-section,
.footer-publico-conteudo,
.footer-rodape,
.secao-login {
    width: min(calc(100% - 48px), var(--container));
    margin-inline: auto;
}

.topbar-publica {
    position: sticky;
    top: 14px;
    z-index: 30;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 18px;
    padding: 16px 20px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.74);
    backdrop-filter: blur(14px);
    box-shadow: 0 16px 40px rgba(26, 43, 66, 0.06);
}

.nav-publica {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.nav-publica-mobile-actions {
    display: none;
    align-items: center;
    gap: 10px;
}

.nav-publica a:not(.botao) {
    padding: 10px 12px;
    border-radius: 999px;
    color: var(--color-text-soft);
    transition: background-color 0.2s ease, color 0.2s ease;
}

.nav-publica a:not(.botao):hover {
    color: var(--color-text);
    background: rgba(229, 236, 255, 0.92);
}

.lp-hero {
    display: grid;
    grid-template-columns: minmax(0, 0.86fr) minmax(460px, 1.14fr);
    gap: 24px;
    align-items: start;
    padding: 64px 0 32px;
}

.lp-hero-copy {
    max-width: 540px;
}

.erro-page {
    width: min(calc(100% - 48px), 920px);
    min-height: 100vh;
    margin: 0 auto;
    display: grid;
    place-items: center;
    padding: 48px 0;
}

.erro-card {
    position: relative;
    width: min(100%, 720px);
    padding: 42px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: 26px;
    background:
        radial-gradient(circle at top right, rgba(87, 142, 255, 0.12), transparent 30%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(245, 248, 255, 0.96) 100%);
    box-shadow: 0 30px 80px rgba(26, 43, 66, 0.1);
}

.erro-codigo {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 14px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.84);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary-deep);
}

.erro-card h1 {
    margin-top: 18px;
    margin-bottom: 14px;
    font-size: clamp(1.5rem, 3vw, 2.45rem);
    line-height: 1;
    max-width: 13ch;
}

.erro-card p {
    max-width: 54ch;
    margin-bottom: 0;
    color: var(--color-text-soft);
    line-height: 1.7;
}

.landing-kicker {
    padding: 10px 14px;
    border: 1px solid rgba(49, 101, 223, 0.16);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.82);
}

.lp-hero-copy h1 {
    margin-top: 18px;
    font-size: clamp(1.95rem, 3.7vw, 3.35rem);
    line-height: 0.98;
    max-width: 12ch;
}

.lp-hero-copy p,
.section-head p,
.metric-card span,
.prep-card p,
.soft-card p,
.module-card p,
.security-copy p,
.benefit-card p,
.footer-marca p,
.footer-coluna span,
.footer-coluna a,
.login-intro p,
.texto-explicativo,
.card-resumo p,
.card-empresa p,
.painel p {
    color: var(--color-text-soft);
    line-height: 1.7;
}

.lp-hero-copy p {
    max-width: 48ch;
}

.landing-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-top: 28px;
}

.hero-topics {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 28px 0 0;
    padding: 0;
    list-style: none;
}

.hero-topics li {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.8);
    box-shadow: var(--shadow-soft);
}

.hero-topics li::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary) 0%, #9ec2ff 100%);
    box-shadow: 0 0 0 6px rgba(87, 142, 255, 0.12);
}

.lp-hero-visual {
    min-width: 0;
}

.lp-browser {
    padding: 16px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(255, 255, 255, 0.76) 100%);
    box-shadow: var(--shadow-soft);
    backdrop-filter: blur(14px);
}

.lp-browser-bar {
    display: flex;
    gap: 8px;
    margin-bottom: 14px;
}

.lp-browser-bar span {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: rgba(24, 51, 46, 0.14);
}

.lp-browser-body {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 16px;
    padding: 6px;
    border: 1px solid var(--color-line);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, #ffffff 0%, #f8fbf9 100%);
}

.lp-browser-sidebar {
    display: grid;
    align-content: start;
    gap: 12px;
    padding: 12px 8px;
    border-radius: var(--radius-md);
    background: var(--color-bg-soft);
}

.lp-sidebar-pill {
    height: 42px;
    border-radius: var(--radius-sm);
    background: rgba(24, 51, 46, 0.08);
}

.lp-sidebar-pill.ativo {
    background: linear-gradient(135deg, rgba(87, 142, 255, 0.22), rgba(87, 142, 255, 0.08));
}

.lp-browser-main {
    display: grid;
    gap: 14px;
    padding: 8px 8px 8px 0;
}

.lp-browser-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.lp-browser-head h2 {
    margin-top: 8px;
    font-size: 1.9rem;
    line-height: 1;
}

.lp-browser-mini-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.mini-panel,
.content-panel,
.metric-card,
.prep-card,
.soft-card,
.module-card,
.benefit-card,
.cta-panel,
.card-login,
.card-resumo,
.painel {
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.82) 100%);
    box-shadow: var(--shadow-card);
}

.mini-panel {
    padding: 16px;
}

.mini-panel span {
    display: block;
    color: var(--color-text-soft);
    font-size: 0.9rem;
}

.mini-panel strong {
    display: block;
    margin-top: 10px;
    font-family: var(--font-display);
    font-size: 1.6rem;
    letter-spacing: -0.03em;
}

.lp-browser-content-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.content-panel {
    padding: 18px;
}

.content-panel-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.content-panel-top strong {
    font-size: 1rem;
    line-height: 1.08;
}

.panel-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 28px;
    padding: 0 8px;
    border: 1px solid rgba(24, 51, 46, 0.08);
    border-radius: 999px;
    background: rgba(87, 142, 255, 0.1);
    color: var(--color-text-soft);
    font-size: 0.76rem;
    font-weight: 800;
    line-height: 1;
    white-space: nowrap;
}

.risk-row {
    padding: 14px 0;
    border-top: 1px solid var(--color-line);
}

.risk-row:first-of-type {
    border-top: 0;
    padding-top: 0;
}

.risk-row strong {
    display: block;
    margin-top: 8px;
    font-family: var(--font-display);
    font-size: 1rem;
    letter-spacing: -0.03em;
}

.risk-row p,
.plan-list li {
    color: var(--color-text-soft);
}

.risk-row p {
    margin: 10px 0 0;
}

.plan-list {
    margin: 0;
    padding-left: 18px;
}

.plan-list li + li {
    margin-top: 10px;
}

.landing-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    padding-bottom: 56px;
}

.metric-card {
    padding: 22px;
}

.metric-card strong {
    display: block;
    margin-bottom: 8px;
    font-family: var(--font-display);
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    letter-spacing: -0.03em;
    color: var(--color-primary-deep);
}

.landing-section {
    padding: 36px 0;
}

.landing-section-soft {
    padding: 28px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.62) 0%, rgba(240, 247, 243, 0.78) 100%);
    backdrop-filter: blur(10px);
}

.section-head {
    max-width: 820px;
    margin-bottom: 24px;
}

.section-head-center {
    margin-inline: auto;
    text-align: center;
}

.section-head h2,
.security-copy h2,
.cta-panel h2 {
    margin-top: 10px;
    font-size: clamp(2.05rem, 3.9vw, 3.2rem);
    line-height: 1;
}

.prep-grid,
.cost-grid,
.module-grid,
.benefit-grid {
    display: grid;
    gap: 18px;
}

.prep-grid,
.module-grid,
.benefit-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cost-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.prep-card,
.soft-card,
.module-card,
.benefit-card {
    padding: 22px;
}

.prep-index {
    display: inline-flex;
    margin-bottom: 16px;
    padding: 8px 10px;
    border-radius: var(--radius-sm);
    color: var(--color-primary-deep);
    background: var(--color-primary-soft);
    font-size: 0.82rem;
    font-weight: 800;
}

.pillar-band,
.reason-band {
    display: grid;
    gap: 16px;
    margin-top: 18px;
    padding: 20px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: var(--shadow-soft);
}

.pillar-band {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.reason-band {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pillar-item,
.reason-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

.pillar-item p,
.reason-item p {
    margin: 0;
    color: var(--color-text-soft);
}

.pillar-dot,
.reason-dot {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    margin-top: 6px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary) 0%, #a5c8ff 100%);
}

.security-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
    gap: 20px;
    align-items: stretch;
}

.contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
    gap: 20px;
    align-items: stretch;
}

.security-visual {
    padding: 22px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-lg);
    background: linear-gradient(135deg, rgba(229, 236, 255, 0.9), rgba(255, 255, 255, 0.97));
    box-shadow: var(--shadow-soft);
}

.benefit-list {
    margin: 18px 0 0;
    padding: 0;
    list-style: none;
}

.benefit-list li {
    position: relative;
    padding-left: 22px;
    color: var(--color-text-soft);
}

.benefit-list li + li {
    margin-top: 12px;
}

.benefit-list li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-primary);
}

.security-block {
    padding: 18px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.9);
}

.security-block + .security-block {
    margin-top: 14px;
}

.security-block strong {
    display: block;
    margin-bottom: 8px;
    font-family: var(--font-display);
    letter-spacing: -0.03em;
}

.security-block p {
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.7;
}

.security-block-accent {
    background: linear-gradient(135deg, rgba(255, 240, 220, 0.96), rgba(255, 255, 255, 0.94));
}

.contact-highlight,
.contact-card {
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.84) 100%);
    box-shadow: var(--shadow-card);
}

.contact-highlight {
    padding: 26px;
}

.contact-highlight h2 {
    margin-top: 10px;
    font-family: var(--font-display);
    font-size: clamp(1rem, 2.8vw, 2rem);
    line-height: 1;
    letter-spacing: -0.04em;
}

.contact-highlight p,
.contact-card p {
    color: var(--color-text-soft);
    line-height: 1.7;
}

.contact-grid {
    display: grid;
    gap: 16px;
}

.contact-card {
    padding: 22px;
}

.contact-form-card {
    padding: 24px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.95) 0%, rgba(247, 251, 255, 0.9) 100%);
    box-shadow: var(--shadow-card);
}

.contact-highlight .contact-form-card {
    margin-top: 18px;
    box-shadow: none;
}

.contact-form-card h3,
.contact-form-card p {
    margin: 0;
}

.contact-form-card p {
    margin-top: 6px;
    color: var(--color-text-soft);
}

.contact-form {
    display: grid;
    gap: 12px;
    margin-top: 14px;
}

.contact-form-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.contact-form .campo {
    margin-bottom: 0;
}

.contact-form textarea {
    width: 100%;
    min-height: 112px;
    padding: 12px 16px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(248, 251, 249, 0.96);
    color: var(--color-text);
    resize: vertical;
    font: inherit;
}

.contact-form textarea:focus {
    outline: none;
    border-color: rgba(87, 142, 255, 0.34);
    box-shadow: 0 0 0 4px rgba(87, 142, 255, 0.12);
}

.contact-form-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.contact-form-actions span {
    color: var(--color-text-soft);
    font-size: 0.92rem;
}

.faq-list {
    display: grid;
    gap: 12px;
}

.faq-item {
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.faq-question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 20px 22px;
    border: 0;
    background: transparent;
    color: var(--color-text);
    text-align: left;
    cursor: pointer;
}

.faq-question span:first-child {
    font-size: 1.02rem;
}

.faq-icon {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: inline-grid;
    place-items: center;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    color: var(--color-primary-deep);
    background: rgba(87, 142, 255, 0.14);
    font-size: 0;
    padding: 0;
    text-indent: 0;
    transition: transform 0.2s ease;
}

.faq-icon::before {
    content: "+";
    position: relative;
    top: 1px;
    font-size: 1rem;
    font-weight: 800;
    line-height: 1;
}

.faq-answer {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.28s ease;
}

.faq-answer p {
    min-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0 22px 0;
    color: var(--color-text-soft);
    line-height: 1.7;
}

.faq-item.is-open .faq-answer {
    grid-template-rows: 1fr;
}

.faq-item.is-open .faq-answer p {
    padding-bottom: 22px;
}

.faq-item.is-open .faq-icon {
    transform: rotate(45deg);
}

.landing-cta {
    padding-bottom: 84px;
}

.cta-panel {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 28px 30px;
    background: linear-gradient(135deg, rgba(229, 236, 255, 0.98), rgba(255, 255, 255, 0.96), rgba(255, 240, 220, 0.92));
}

.footer-publico {
    padding: 42px 0 28px;
    color: rgba(248, 251, 250, 0.92);
    background: linear-gradient(180deg, #31405a 0%, #232d3f 100%);
}

.footer-publico-conteudo {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 28px;
}

.footer-marca {
    max-width: 360px;
}

.marca-rodape .marca-kicker {
    color: rgba(158, 194, 255, 0.98);
}

.marca-rodape strong {
    color: #f6fffc;
}

.marca-rodape {
    display: inline-flex;
}

.footer-coluna {
    display: grid;
    gap: 12px;
}

.footer-marca p,
.footer-coluna span,
.footer-coluna a,
.footer-rodape span,
.footer-rodape a {
    color: rgba(248, 251, 250, 0.72);
}

.footer-rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding-top: 22px;
    margin-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    font-size: 0.94rem;
}

.secao-login {
    display: grid;
    grid-template-columns: minmax(340px, 420px) minmax(0, 1fr);
    gap: 32px;
    align-items: center;
    width: min(calc(100% - 48px), var(--container));
    margin: 0 auto;
    padding: 48px 0 84px;
}

.auth-shell {
    display: grid;
    grid-template-columns: minmax(340px, 420px) minmax(0, 1fr);
    gap: 32px;
    align-items: stretch;
    width: min(calc(100% - 48px), var(--container));
    margin: 0 auto;
    padding: 48px 0 84px;
}

.auth-card {
    display: flex;
    min-width: 0;
}

.auth-card > * {
    width: 100%;
}

.topbar-publica-simples {
    justify-content: space-between;
}

.login-back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 42px;
    padding: 0 16px;
    border: 1px solid rgba(88, 130, 255, 0.14);
    border-radius: var(--radius-md);
    background: rgba(244, 248, 255, 0.86);
    color: var(--color-text-soft);
    font-weight: 700;
    transition:
        border-color 0.22s ease,
        background-color 0.22s ease,
        color 0.22s ease,
        transform 0.22s ease;
}

.login-back-link .bi {
    font-size: 1rem;
    line-height: 1;
}

.login-back-link:hover {
    color: var(--color-primary);
    border-color: rgba(88, 130, 255, 0.22);
    background: rgba(236, 242, 255, 0.95);
    transform: translateY(-1px);
}

.card-login {
    display: grid;
    gap: 16px;
    padding: 28px 28px 24px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(88, 130, 255, 0.14);
    box-shadow: 0 26px 70px rgba(23, 49, 116, 0.08);
}

.card-login-copy {
    margin: 0;
    color: var(--color-text-soft);
    font-size: 0.98rem;
}

.auth-form-stack {
    display: grid;
}

.login-side-card {
    display: grid;
    gap: 18px;
    min-height: 100%;
    align-content: center;
    padding: 30px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(239, 245, 255, 0.9));
    border: 1px solid rgba(88, 130, 255, 0.14);
    border-radius: var(--radius-lg);
    box-shadow: 0 22px 54px rgba(19, 49, 111, 0.06);
}

.auth-side-card {
    display: grid;
    gap: 18px;
    min-height: 100%;
    align-content: center;
    padding: 30px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.84), rgba(239, 245, 255, 0.9));
    border: 1px solid rgba(88, 130, 255, 0.14);
    border-radius: var(--radius-lg);
    box-shadow: 0 22px 54px rgba(19, 49, 111, 0.06);
}

.card-login-head,
.login-actions-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.card-login h2 {
    margin: 0;
    font-size: 1.9rem;
}

.card-login-head {
    align-items: flex-start;
}

.card-login-head .eyebrow {
    margin-bottom: 12px;
}

.card-login h2 {
    line-height: 1.02;
}

.campo {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
}

.campo label {
    font-weight: 700;
}

.campo input {
    width: 100%;
    height: 42px;
    padding: 0 14px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(248, 251, 249, 0.96);
    color: var(--color-text);
}

.campo select,
.campo textarea {
    width: 100%;
    min-height: 42px;
    padding: 9px 14px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(248, 251, 249, 0.96);
    color: var(--color-text);
}

.campo-input-readonly {
    display: flex;
    align-items: center;
    width: 100%;
    height: 42px;
    padding: 9px 14px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(241, 246, 255, 0.82);
    color: var(--color-text);
}

.campo textarea {
    min-height: 120px;
    resize: vertical;
}

.campo select {
    height: 42px;
    padding-top: 0;
    padding-bottom: 0;
}

.campo input:focus {
    outline: none;
    border-color: rgba(87, 142, 255, 0.34);
    box-shadow: 0 0 0 4px rgba(87, 142, 255, 0.12);
}

.campo select:focus,
.campo textarea:focus {
    outline: none;
    border-color: rgba(87, 142, 255, 0.34);
    box-shadow: 0 0 0 4px rgba(87, 142, 255, 0.12);
}

.mensagem-erro {
    margin-bottom: 16px;
    padding: 14px 16px;
    color: #a43934;
    background: rgba(235, 106, 98, 0.12);
    border-radius: var(--radius-sm);
}

.mensagem-erro-campo {
    margin: 8px 0 0;
    padding: 0;
    font-size: 0.88rem;
    color: #b4443d;
    background: transparent;
    border-radius: 0;
}

.campo-input-erro {
    border-color: rgba(214, 78, 70, 0.5) !important;
    box-shadow: 0 0 0 3px rgba(214, 78, 70, 0.06);
}

.mensagem-erro-campo ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.mensagem-erro-campo li {
    margin: 0;
}

.login-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-primary);
    font-weight: 700;
}

.login-link .bi {
    font-size: 0.95rem;
    line-height: 1;
}

.login-link:hover {
    color: var(--color-primary-strong);
}

.login-actions-row {
    margin: -2px 0 4px;
    padding-top: 2px;
}

.auth-button-row {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
}

.auth-button-row-wrap {
    justify-content: flex-start;
}

.auth-actions-vertical {
    display: grid;
    gap: 12px;
}

.auth-footnote {
    margin: 0;
    color: var(--color-text-soft);
}

.auth-helptext {
    color: var(--color-text-soft);
    font-size: 0.9rem;
    line-height: 1.5;
}

.auth-manage-card {
    gap: 24px;
}

.auth-email-list {
    display: grid;
    gap: 12px;
    margin-bottom: 18px;
}

.auth-email-item {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px;
    border: 1px solid rgba(88, 130, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.86);
    cursor: pointer;
}

.auth-email-item input {
    margin-top: 3px;
}

.auth-email-copy {
    display: grid;
    gap: 8px;
}

.auth-email-copy strong {
    word-break: break-word;
}

.auth-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.auth-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 0 10px;
    border: 1px solid rgba(88, 130, 255, 0.14);
    border-radius: var(--radius-sm);
    background: rgba(244, 248, 255, 0.9);
    color: var(--color-text-soft);
    font-size: 0.82rem;
    font-weight: 700;
}

.auth-badge-success {
    color: #1c7b52;
    background: rgba(62, 189, 131, 0.12);
    border-color: rgba(62, 189, 131, 0.16);
}

.auth-badge-warning {
    color: #9a6a16;
    background: rgba(255, 196, 77, 0.14);
    border-color: rgba(255, 196, 77, 0.18);
}

.auth-note-card,
.auth-empty-state {
    padding: 18px;
    border: 1px solid rgba(88, 130, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(247, 250, 255, 0.88);
}

.auth-note-card {
    display: grid;
    gap: 16px;
}

.auth-empty-state {
    color: var(--color-text-soft);
}

.login-side-card h1,
.auth-side-card h1 {
    margin: 0;
    max-width: 13ch;
    font-size: clamp(2rem, 3.1vw, 3.35rem);
    line-height: 0.94;
    letter-spacing: -0.05em;
}

.login-side-card p,
.auth-side-card p {
    margin: 0;
    max-width: 52ch;
    color: var(--color-text-soft);
    font-size: 1rem;
    line-height: 1.6;
}

.login-points {
    display: grid;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.login-points li {
    position: relative;
    padding-left: 18px;
    color: var(--color-text-soft);
    line-height: 1.55;
}

.login-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.62em;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--color-primary), #97b6ff);
}

.tema-app {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background:
        radial-gradient(circle at top right, rgba(229, 236, 255, 0.82), transparent 22%),
        linear-gradient(180deg, #f9fbff 0%, #f0f4ff 100%);
}

.navbar-app {
    position: relative;
    z-index: 1;
    width: 100%;
    margin: 0;
    padding: 10px 14px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    background: rgba(255, 255, 255, 0.82);
    backdrop-filter: blur(14px);
    box-shadow: 0 16px 38px rgba(26, 43, 66, 0.08);
}

.navbar-app-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.navbar-app-start {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.navbar-app-brand {
    flex: 0 0 auto;
}

.navbar-app-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.app-shell {
    display: grid;
    grid-template-columns: 252px minmax(0, 1fr);
    gap: 0;
    width: 100%;
    margin: 0;
    flex: 1 1 auto;
    min-height: 0;
}

.sidebar-app {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 16px 12px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-left: 0;
    border-radius: 0;
    background: linear-gradient(180deg, #2d4264 0%, #22324d 100%);
    box-shadow: 0 14px 34px rgba(23, 49, 116, 0.18);
    transition: transform 0.24s ease, opacity 0.24s ease, width 0.24s ease, padding 0.24s ease, border-color 0.24s ease;
    transform-origin: left top;
    min-height: 100%;
}

.sidebar-toggle-wrap {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;
}

.sidebar-user {
    min-width: 0;
    display: grid;
    gap: 1px;
}

.sidebar-user-label {
    font-size: 0.68rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: rgba(237, 244, 255, 0.64);
    font-weight: 700;
}

.sidebar-user-name {
    font-size: 0.86rem;
    color: #ffffff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.menu-app {
    display: grid;
    gap: 6px;
}

.menu-item {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 11px 12px;
    border-radius: var(--radius-sm);
    color: rgba(237, 244, 255, 0.82);
    font-weight: 700;
    font-size: 0.95rem;
    transition: background-color 0.22s ease, transform 0.22s ease, color 0.22s ease;
}

.menu-item .bi {
    font-size: 0.96rem;
    line-height: 1;
}

.menu-item:hover,
.menu-item.ativo {
    color: #ffffff;
    transform: translateX(2px);
}

.menu-item:hover {
    background: rgba(255, 255, 255, 0.08);
}

.menu-item.ativo {
    position: relative;
    background: linear-gradient(180deg, rgba(114, 162, 255, 0.24) 0%, rgba(87, 142, 255, 0.18) 100%);
    border: 1px solid rgba(157, 189, 255, 0.2);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.menu-item.ativo::before {
    content: "";
    position: absolute;
    left: 0;
    top: 8px;
    bottom: 8px;
    width: 3px;
    border-radius: 999px;
    background: linear-gradient(180deg, #9ec2ff 0%, #ffffff 100%);
}

.sidebar-rodape {
    margin-top: auto;
    padding: 12px;
    border-radius: var(--radius-md);
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.1);
}

.sidebar-rodape .badge {
    color: #f4f8ff;
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.18);
}

.sidebar-rodape p {
    font-size: 0.88rem;
    margin-top: 10px;
    margin-bottom: 0;
    color: rgba(243, 247, 255, 0.88);
    line-height: 1.5;
}

.sidebar-rodape-title {
    display: block;
    margin-top: 10px;
    font-family: var(--font-display);
    font-size: 1rem;
    letter-spacing: -0.02em;
    color: #ffffff;
}

.sidebar-rodape-lista {
    margin: 10px 0 0;
    padding: 0 0 0 18px;
    display: grid;
    gap: 6px;
    color: rgba(243, 247, 255, 0.9);
    font-size: 0.84rem;
    line-height: 1.45;
}

.sidebar-rodape-lista li {
    margin: 0;
}

.conteudo-app {
    min-width: 0;
    padding: 16px 20px 24px;
    transition: padding 0.24s ease;
}

.botao-menu-lateral .bi {
    font-size: 0.98rem;
}

.botao-menu-lateral {
    min-width: 40px;
    width: 40px;
    padding: 0;
    flex: 0 0 40px;
}

.tema-app.sidebar-oculta .app-shell {
    grid-template-columns: 82px minmax(0, 1fr);
}

.tema-app.sidebar-oculta .sidebar-app {
    width: 82px;
    padding-left: 10px;
    padding-right: 10px;
    opacity: 1;
    overflow: hidden;
    transform: none;
}

.tema-app.sidebar-oculta .sidebar-toggle-wrap {
    justify-content: center;
}

.tema-app.sidebar-oculta .botao-menu-lateral {
    flex-basis: 46px;
}

.tema-app.sidebar-oculta .botao-menu-text,
.tema-app.sidebar-oculta .menu-item-label,
.tema-app.sidebar-oculta .sidebar-rodape,
.tema-app.sidebar-oculta .sidebar-user,
.tema-app.sidebar-oculta .menu-secao-titulo-texto,
.tema-app.sidebar-oculta .menu-secao-icone,
.tema-app.sidebar-oculta .menu-secao-titulo::before {
    display: none;
}

.tema-app.sidebar-oculta .menu-item {
    justify-content: center;
    padding: 12px;
}

.tema-app.sidebar-oculta .menu-item .bi {
    font-size: 1.14rem;
}

.tema-app.sidebar-oculta .menu-secao + .menu-secao {
    margin-top: 10px;
}

.tema-app.sidebar-oculta .menu-secao-titulo {
    justify-content: center;
    min-height: 30px;
    padding: 0;
    border: 0;
    background: transparent;
}

.tema-app.sidebar-oculta .menu-secao-colapsavel .menu-secao-itens {
    display: grid;
}

.tema-app.sidebar-oculta .menu-secao-titulo-copy {
    justify-content: center;
    gap: 0;
}

.tema-app.sidebar-oculta .menu-secao-titulo-simbolo {
    font-size: 0.96rem;
    color: rgba(219, 233, 255, 0.92);
}

.tema-app.sidebar-oculta .menu-secao.ativa .menu-secao-titulo-simbolo {
    color: #ffffff;
}

.tema-app.sidebar-oculta .menu-item[data-tooltip],
.tema-app.sidebar-oculta .menu-secao-titulo[data-tooltip] {
    position: relative;
}

.tema-app.sidebar-oculta .menu-item[data-tooltip]::after,
.tema-app.sidebar-oculta .menu-secao-titulo[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    left: calc(100% + 12px);
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    pointer-events: none;
    white-space: nowrap;
    padding: 7px 10px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.98);
    color: var(--color-text);
    font-size: 0.84rem;
    font-weight: 700;
    box-shadow: 0 14px 34px rgba(26, 43, 66, 0.16);
    transition: opacity 0.16s ease, transform 0.16s ease;
    z-index: 25;
}

.tema-app.sidebar-oculta .menu-item[data-tooltip]:hover::after,
.tema-app.sidebar-oculta .menu-secao-titulo[data-tooltip]:hover::after {
    opacity: 1;
    transform: translateY(-50%) translateX(2px);
}

.topbar-app {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}

.topbar-app h1 {
    margin-top: 8px;
    font-size: clamp(1.7rem, 2.4vw, 2.45rem);
    line-height: 1;
}

.acoes-topbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.conteudo-principal {
    display: grid;
    gap: 18px;
}

.modal {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(15, 23, 42, 0.58);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
    z-index: 20;
}

.modal.is-open {
    opacity: 1;
    pointer-events: auto;
}

.modal-card {
    width: min(760px, 100%);
    max-height: min(92vh, 760px);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, #f5f8ff 100%);
    border: 1px solid rgba(87, 142, 255, 0.2);
    box-shadow: 0 34px 80px rgba(15, 23, 42, 0.3);
    overflow: hidden;
}

.modal-card-emulacao {
    width: min(480px, 100%);
}

.modal-card-demo-sessoes {
    width: min(720px, 100%);
}

.modal-card-ciclo {
    position: relative;
}

.modal-card-risco {
    position: relative;
}

.modal-card-plano {
    position: relative;
}

.modal-card-ciclo::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 120px;
    background:
        radial-gradient(circle at top left, rgba(87, 142, 255, 0.18), transparent 48%),
        linear-gradient(90deg, rgba(255, 255, 255, 0.84) 0%, rgba(240, 245, 255, 0.38) 100%);
    pointer-events: none;
}

.modal-card-risco::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 120px;
    background:
        radial-gradient(circle at top left, rgba(243, 164, 79, 0.14), transparent 46%),
        linear-gradient(90deg, rgba(255, 255, 255, 0.84) 0%, rgba(240, 245, 255, 0.38) 100%);
    pointer-events: none;
}

.modal-card-plano::before {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 120px;
    background:
        radial-gradient(circle at top left, rgba(92, 187, 122, 0.16), transparent 46%),
        linear-gradient(90deg, rgba(255, 255, 255, 0.84) 0%, rgba(240, 245, 255, 0.38) 100%);
    pointer-events: none;
}

.modal-form {
    position: relative;
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
    max-height: min(92vh, 760px);
}

.modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 28px 28px 18px;
    background: rgba(255, 255, 255, 0.6);
    border-bottom: 1px solid rgba(87, 142, 255, 0.14);
}

.modal-aberta {
    overflow: hidden;
}

.modal-header-copy {
    max-width: 520px;
}

.modal-kicker {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.7);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary-deep);
}

.modal-header h2 {
    margin-top: 14px;
    margin-bottom: 10px;
    font-size: clamp(1.7rem, 2vw, 2.15rem);
    line-height: 1.02;
}

.modal-subtitle {
    max-width: 50ch;
    margin-bottom: 0;
    color: var(--color-text-soft);
    line-height: 1.6;
}

.modal-body {
    padding: 18px 28px 18px;
    overflow-y: auto;
}

.modal-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 28px 22px;
    border-top: 1px solid rgba(87, 142, 255, 0.14);
    background: linear-gradient(180deg, rgba(248, 250, 255, 0.96) 0%, rgba(244, 248, 255, 0.98) 100%);
}

.modal-actions {
    display: flex;
    gap: 10px;
}

.modal-hint {
    color: var(--color-text-soft);
    font-size: 0.92rem;
    line-height: 1.5;
}

.modal-copy {
    margin: 0 0 16px;
    color: var(--color-text-soft);
}

.campo-ajuda {
    display: block;
    margin-top: 8px;
    color: var(--color-text-soft);
    font-size: 0.86rem;
    line-height: 1.45;
}

.campo-erros {
    margin-top: 8px;
    color: var(--color-risk-high);
    font-size: 0.9rem;
}

.campo-erros ul {
    margin: 0;
    padding-left: 18px;
}

.painel-emulacao-ativa {
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: rgba(241, 246, 255, 0.72);
    color: var(--color-text);
}

.painel-emulacao-ativa span {
    color: var(--color-text-soft);
    font-size: 0.88rem;
}

.form-grid {
    display: grid;
    gap: 16px;
    margin-top: 16px;
}

.form-row {
    display: grid;
    gap: 16px;
}

.form-row-single {
    grid-template-columns: minmax(0, 1fr);
}

.form-row-datas {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 220px;
    align-items: end;
}

.form-row-double {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.form-row-triple {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.campo-span-2 {
    grid-column: span 2;
}

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

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

.campo-toggle {
    display: grid;
    align-content: end;
    gap: 10px;
    padding-top: 0;
    min-width: 0;
}

.campo-toggle-inline {
    padding-top: 0;
}

.campo-toggle-label {
    font-size: 0.92rem;
    font-weight: 700;
    color: var(--color-text);
}

.toggle-switch {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 52px;
    padding: 8px 12px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(248, 251, 249, 0.96);
    cursor: pointer;
}

.toggle-switch input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.toggle-slider {
    position: relative;
    width: 52px;
    height: 30px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.36);
    transition: background-color 0.2s ease;
}

.toggle-slider::after {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: #ffffff;
    box-shadow: 0 4px 14px rgba(15, 23, 42, 0.18);
    transition: transform 0.2s ease;
}

.toggle-switch input:checked + .toggle-slider {
    background: linear-gradient(135deg, var(--color-primary), #7ea6ff);
}

.toggle-switch input:checked + .toggle-slider::after {
    transform: translateX(22px);
}

.toggle-text {
    min-width: 74px;
    font-weight: 700;
    color: var(--color-text);
}

.modal-body textarea {
    min-height: 112px;
    resize: vertical;
}

.modal-card-demo-sessoes textarea {
    min-height: 160px;
}

.painel-acoes {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.campo-oculto {
    display: none;
}

.form-actions {
    display: flex;
    justify-content: flex-start;
    gap: 12px;
}

.form-evidencia-inline {
    display: grid;
    gap: 18px;
}

.form-actions-evidencia {
    justify-content: space-between;
    align-items: flex-start;
    flex-wrap: wrap;
    row-gap: 14px;
}

.form-actions-opcoes {
    display: grid;
    gap: 10px;
    flex: 1 1 420px;
    min-width: min(100%, 420px);
}

.arquivo-input-nativo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    cursor: pointer;
}

.upload-dropzone {
    position: relative;
    display: grid;
    gap: 14px;
    min-height: 116px;
    padding: 16px 18px;
    border: 1px dashed rgba(87, 142, 255, 0.28);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(246, 249, 255, 0.92) 0%, rgba(255, 255, 255, 0.98) 100%);
    transition: border-color 180ms ease, background-color 180ms ease, box-shadow 180ms ease;
}

.upload-dropzone.is-dragover,
.upload-dropzone:hover {
    border-color: rgba(87, 142, 255, 0.5);
    background: linear-gradient(180deg, rgba(238, 244, 255, 0.96) 0%, rgba(255, 255, 255, 1) 100%);
    box-shadow: var(--shadow-soft);
}

.upload-dropzone-copy {
    display: flex;
    align-items: center;
    gap: 14px;
}

.upload-dropzone-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: rgba(229, 236, 255, 0.84);
    color: var(--color-primary);
    font-size: 1.25rem;
}

.upload-dropzone-texts {
    display: grid;
    gap: 4px;
}

.upload-dropzone-texts strong {
    color: var(--color-text);
    font-size: 0.98rem;
}

.upload-dropzone-texts span,
.upload-dropzone-file {
    color: var(--color-text-soft);
    font-size: 0.92rem;
    line-height: 1.45;
}

.upload-dropzone-file {
    padding-top: 2px;
    border-top: 1px solid rgba(87, 142, 255, 0.1);
}

.botao-icone {
    width: 44px;
    height: 44px;
    padding: 0;
    border-radius: 14px;
    justify-content: center;
}

.form-inline {
    display: inline-flex;
    gap: 8px;
    align-items: center;
}

.grade-resumo {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.card-resumo {
    display: grid;
    align-content: start;
    gap: 8px;
    padding: 16px 18px;
}

.card-resumo span {
    color: var(--color-text-soft);
    font-size: 0.88rem;
}

.card-resumo strong {
    display: block;
    margin: 4px 0 2px;
    font-family: var(--font-display);
    font-size: clamp(1.14rem, 1.45vw, 1.65rem);
    letter-spacing: -0.03em;
    line-height: 1.06;
}

.card-resumo p {
    margin: 0;
}

.grid-conteudo {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, 0.8fr);
    gap: 20px;
}

.painel {
    padding: 20px;
}

.painel-largo {
    grid-column: 1 / -1;
}

.painel-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

.painel-topo h2 {
    font-size: clamp(1.28rem, 1.6vw, 1.8rem);
    line-height: 1.08;
}

.painel-contexto-compacto {
    padding: 16px 18px;
}

.fluxo-contexto-inline {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(241, 246, 255, 0.76);
    color: var(--color-text-soft);
    font-size: 0.9rem;
    font-weight: 700;
    white-space: nowrap;
}

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

.grade-resumo-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.grade-resumo-compacta .card-resumo {
    padding: 16px 18px;
}

.grade-resumo-compacta .card-resumo strong {
    margin: 8px 0 4px;
    font-size: clamp(1.12rem, 1.4vw, 1.55rem);
}

.card-empresa-compacto {
    padding: 18px 20px;
    align-items: center;
}

.card-empresa-compacto .card-empresa-copy {
    gap: 4px;
}

.card-empresa-compacto .card-empresa-meta {
    font-size: 0.88rem;
}

.texto-acao {
    color: var(--color-primary-deep);
    font-weight: 800;
}

.lista-riscos,
.tokens-demo {
    display: grid;
    gap: 14px;
    margin-top: 18px;
}

.item-risco {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border-radius: var(--radius-sm);
    background: var(--color-bg-soft);
}

.item-risco strong {
    display: block;
    margin-bottom: 6px;
}

.lista-check {
    margin: 16px 0 0;
    padding-left: 18px;
}

.lista-check li + li {
    margin-top: 10px;
}

.token-linha {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 18px;
    border-radius: var(--radius-sm);
    background: var(--color-bg-soft);
}

.token-nome {
    font-weight: 800;
}

.token-amostras {
    display: flex;
    gap: 10px;
}

.amostra {
    width: 48px;
    height: 48px;
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: var(--radius-sm);
}

.cor-primaria {
    background: var(--color-primary);
}

.cor-primaria-escura {
    background: var(--color-primary-deep);
}

.cor-destaque {
    background: var(--color-accent);
}

.cor-baixo {
    background: var(--color-risk-low);
}

.cor-medio {
    background: var(--color-risk-medium);
}

.cor-alto {
    background: var(--color-risk-high);
}

.cor-fundo {
    background: var(--color-bg);
}

.cor-card {
    background: var(--color-surface);
}

.cor-card-escuro {
    background: var(--color-surface-mint);
}

.grid-empresas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-top: 24px;
}

.card-empresa {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding: 22px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, #ffffff 0%, #f7fbf8 100%);
    box-shadow: var(--shadow-card);
}

.card-empresa-copy {
    display: grid;
    gap: 6px;
}

.card-empresa strong {
    display: block;
    margin-bottom: 6px;
    font-family: var(--font-display);
    letter-spacing: -0.03em;
}

.card-empresa span {
    color: var(--color-text-soft);
}

.card-empresa-meta {
    font-size: 0.9rem;
}

.empresa-grupos {
    display: grid;
    gap: 14px;
    margin-top: 20px;
}

.empresa-grupo {
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(250, 252, 255, 0.96) 0%, rgba(243, 248, 255, 0.96) 100%);
    box-shadow: none;
    overflow: hidden;
}

.empresa-grupo-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    cursor: pointer;
    list-style: none;
}

.empresa-grupo-summary::-webkit-details-marker {
    display: none;
}

.empresa-grupo-linha,
.empresa-grupo-principal,
.empresa-grupo-secundario,
.empresa-grupo-acoes,
.empresa-estabelecimento-linha,
.empresa-estabelecimento-principal,
.empresa-estabelecimento-acoes,
.empresa-estabelecimento-item {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.empresa-grupo-linha,
.empresa-estabelecimento-item {
    width: 100%;
    justify-content: space-between;
}

.empresa-grupo-principal,
.empresa-estabelecimento-principal {
    align-items: center;
    flex-wrap: wrap;
    min-width: 0;
}

.empresa-info-destaque,
.empresa-info-texto {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 0 10px;
    border-radius: var(--radius-sm);
    font-size: 0.9rem;
    line-height: 1;
}

.empresa-info-destaque {
    border: 1px solid rgba(87, 142, 255, 0.18);
    background: rgba(233, 241, 255, 0.9);
    color: var(--color-text);
    font-weight: 700;
}

.empresa-info-texto {
    color: var(--color-text-soft);
    background: rgba(255, 255, 255, 0.4);
}

.empresa-grupo-principal strong,
.empresa-estabelecimento-principal strong {
    font-family: var(--font-display);
    font-size: 1rem;
    letter-spacing: -0.02em;
}

.empresa-grupo-secundario,
.empresa-grupo-acoes,
.empresa-estabelecimento-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.empresa-grupo-acoes {
    margin-left: auto;
}

.empresa-grupo-chevron {
    font-size: 0.84rem;
    color: var(--color-text-soft);
    transition: transform 0.22s ease;
}

.empresa-grupo[open] .empresa-grupo-chevron {
    transform: rotate(180deg);
}

.empresa-grupo-body {
    display: grid;
    gap: 10px;
    padding: 0 16px 14px;
    border-top: 1px solid rgba(87, 142, 255, 0.12);
    background: rgba(255, 255, 255, 0.34);
}

.empresa-estabelecimentos {
    display: grid;
    gap: 8px;
}

.empresa-estabelecimentos-lista {
    display: grid;
    gap: 8px;
    margin-top: 8px;
}

.empresa-estabelecimento-item {
    padding: 10px 12px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(235, 242, 252, 0.62);
}

.empresa-estabelecimento-vazio {
    display: grid;
    gap: 10px;
    align-items: flex-start;
    padding: 8px 0 0;
}

.catalogo-lista {
    display: grid;
    gap: 22px;
    margin-top: 20px;
}

.catalogo-instrumento,
.catalogo-versao {
    display: grid;
    gap: 18px;
    padding: 22px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 250, 255, 0.98) 100%);
    box-shadow: var(--shadow-card);
}

.catalogo-versao {
    padding: 20px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(248, 251, 255, 0.98) 100%);
    box-shadow: none;
}

.catalogo-hero {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
}

.catalogo-hero-copy {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.catalogo-kicker {
    margin: 0;
    color: var(--color-primary-deep);
    font-size: 0.92rem;
    font-weight: 800;
}

.catalogo-hero-titulo {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.catalogo-hero-titulo h2 {
    margin: 0;
}

.catalogo-instrumento-topo,
.catalogo-versao-topo,
.catalogo-titulo-linha {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.catalogo-instrumento-copy,
.catalogo-versao-copy {
    display: grid;
    gap: 8px;
    min-width: 0;
}

.catalogo-instrumento h3,
.catalogo-versao h4 {
    margin: 0;
    font-family: var(--font-display);
    letter-spacing: -0.03em;
    line-height: 1.08;
}

.catalogo-instrumento h3 {
    font-size: clamp(1.35rem, 1.8vw, 1.9rem);
}

.catalogo-versao h4 {
    font-size: 1.12rem;
}

.catalogo-subtitulo {
    margin: 0;
    color: var(--color-text-soft);
    font-size: 0.94rem;
}

.catalogo-descricao {
    margin: 0;
    color: var(--color-text);
    line-height: 1.62;
}

.catalogo-acoes {
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.catalogo-meta-grid,
.catalogo-metricas,
.catalogo-secundario-grid,
.catalogo-versoes-lista {
    display: grid;
    gap: 14px;
}

.catalogo-meta-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.catalogo-metricas {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.catalogo-secundario-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.catalogo-meta-card,
.catalogo-metrica,
.catalogo-bloco {
    display: grid;
    gap: 10px;
    padding: 16px 18px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.86);
}

.catalogo-meta-card strong,
.catalogo-metrica strong {
    line-height: 1.45;
}

.catalogo-meta-card-largo {
    min-width: 0;
    grid-column: 1 / -1;
}

.catalogo-meta-label {
    color: var(--color-text-soft);
    font-size: 0.79rem;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.catalogo-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.painel .painel-topo + .catalogo-tags,
.painel .painel-topo + .catalogo-lista,
.painel .painel-topo + .catalogo-meta-grid {
    margin-top: 16px;
}

.catalogo-faixas-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.catalogo-faixa-card {
    display: grid;
    gap: 8px;
    min-height: 112px;
    padding: 18px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-sm);
    background: rgba(241, 246, 255, 0.92);
}

.catalogo-faixa-card strong,
.catalogo-faixa-card p {
    margin: 0;
}

.catalogo-faixa-card strong {
    font-size: 1.02rem;
}

.catalogo-faixa-card p {
    color: var(--color-text);
}

.catalogo-tag {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-sm);
    background: rgba(241, 246, 255, 0.92);
    color: var(--color-text);
    font-size: 0.9rem;
    line-height: 1.35;
}

.catalogo-versoes-lista {
    padding-top: 2px;
}

.catalogo-lista-detalhe {
    margin-top: 16px;
}

.catalogo-pergunta-card {
    gap: 16px;
}

.catalogo-ajuda {
    margin: -4px 0 0;
}

.tabela-wrapper {
    margin-top: 18px;
    overflow-x: auto;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.9);
}

.tabela-carteira {
    width: 100%;
    min-width: 980px;
    border-collapse: collapse;
}

.tabela-carteira th,
.tabela-carteira td {
    padding: 14px 16px;
    border-bottom: 1px solid rgba(26, 43, 66, 0.08);
    vertical-align: top;
    text-align: left;
}

.tabela-carteira thead th {
    font-size: 0.8rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    background: rgba(241, 245, 255, 0.8);
}

.tabela-carteira tbody tr:last-child td {
    border-bottom: 0;
}

.tabela-subtexto {
    display: block;
    margin-top: 4px;
    color: var(--color-text-soft);
    font-size: 0.88rem;
}

.tabela-linha-principal td {
    padding-bottom: 8px;
    border-bottom: 0;
}

.tabela-linha-meta td {
    padding-top: 0;
    padding-bottom: 14px;
}

.tabela-meta-registro {
    display: block;
    font-size: 0.76rem;
    font-style: italic;
    letter-spacing: 0.01em;
    color: var(--color-text-soft);
}

.tabela-link-publico {
    display: grid;
    gap: 6px;
    margin-top: 4px;
    max-width: 100%;
    color: var(--color-text-soft);
    font-size: 0.84rem;
}

.link-publico-acoes {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(87, 142, 255, 0.12);
}

.link-publico-acoes .tabela-subtexto {
    margin-top: 0;
    font-size: 0.8rem;
}

.link-publico-acoes-linha {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
}

.painel-monitoramento-link {
    display: grid;
    gap: 8px;
    margin-bottom: 16px;
    padding: 14px 16px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(246, 249, 255, 0.72);
}

.painel-monitoramento-link .link-publico-acoes-linha a {
    max-width: min(100%, 720px);
}

.barra-filtros-monitoramento {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: 12px;
    margin-bottom: 16px;
    padding: 12px 14px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(246, 249, 255, 0.72);
}

.barra-filtros-monitoramento .campo {
    min-width: 0;
    margin: 0;
}

.barra-filtros-monitoramento .campo .campo-input {
    width: 100%;
}

.campo-input-grande {
    min-height: 46px;
}

.barra-filtros-monitoramento-acoes {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.barra-filtros-monitoramento-acoes .botao {
    min-width: 170px;
    min-height: 46px;
}

.chips-lista {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.chips-lista-compacta {
    gap: 6px;
}

.chip-contexto {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 8px 12px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(250, 252, 255, 0.98) 0%, rgba(241, 246, 255, 0.92) 100%);
    color: var(--color-text);
    box-shadow: 0 8px 20px rgba(52, 83, 155, 0.04);
}

.chip-contexto strong {
    font-size: 0.92rem;
    font-weight: 700;
}

.chip-contexto-compacto {
    padding: 8px 10px;
    min-height: 38px;
    border-radius: 11px;
}

.painel-topo-vinculos {
    flex-wrap: wrap;
    gap: 16px;
    align-items: flex-end;
}

.painel-topo-copy-vinculos {
    min-width: 0;
}

.painel-topo-copy-vinculos .texto-explicativo {
    max-width: 900px;
    margin-bottom: 0;
}

.painel-ajuda-perfis {
    display: grid;
    gap: 12px;
    margin-top: 16px;
    margin-bottom: 12px;
    padding: 0;
    border: 0;
    background: transparent;
}

.painel-ajuda-perfis[open] {
    padding: 14px 16px 16px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(246, 249, 255, 0.72);
}

.painel-ajuda-perfis-resumo {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    list-style: none;
    cursor: pointer;
}

.painel-ajuda-perfis-resumo::-webkit-details-marker {
    display: none;
}

.painel-ajuda-perfis-topo h3 {
    margin: 4px 0 0;
    font-family: var(--font-display);
    font-size: 1rem;
    letter-spacing: -0.03em;
}

.painel-ajuda-perfis-toggle {
    align-self: center;
    white-space: nowrap;
}

.painel-ajuda-perfis-conteudo {
    margin-top: 2px;
}

.grid-perfis-vinculos {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.cartao-perfil-vinculo {
    display: grid;
    gap: 6px;
    padding: 12px 12px 13px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.92);
}

.badge-perfil {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    padding: 6px 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.badge-perfil i {
    font-size: 0.86rem;
}

.badge-perfil-admin {
    color: #2c5d92;
    background: #e9f1ff;
}

.badge-perfil-rh {
    color: #2f6d58;
    background: #e8f7ef;
}

.badge-perfil-gestor {
    color: #7d4d14;
    background: #fff1de;
}

.badge-perfil-auditoria {
    color: #48506b;
    background: #eef1f7;
}

.cartao-perfil-vinculo strong {
    font-family: var(--font-display);
    font-size: 0.92rem;
    letter-spacing: -0.02em;
}

.cartao-perfil-vinculo p,
.campo-ajuda-perfil {
    margin: 0;
    color: var(--color-text-soft);
    font-size: 0.86rem;
    line-height: 1.45;
}

.campo-ajuda-perfil {
    margin-top: 8px;
    max-width: 760px;
}

@media (max-width: 1100px) {
    .grid-perfis-vinculos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .grid-perfis-vinculos {
        grid-template-columns: 1fr;
    }
}

.barra-vinculos-consultoria {
    display: flex;
    justify-content: flex-end;
    margin-top: 10px;
    margin-bottom: 8px;
}

.campo-busca-vinculos {
    width: min(100%, 420px);
    margin: 0;
}

.tabela-bootstrap-consultoria {
    margin-bottom: 0 !important;
}

.campo-busca-vinculos .campo-input {
    width: 100%;
    min-height: 46px;
    border-radius: var(--radius-md);
    border-color: rgba(87, 142, 255, 0.18);
    box-shadow: none;
}

.campo-busca-vinculos .campo-input:focus {
    border-color: rgba(87, 142, 255, 0.36);
    box-shadow: 0 0 0 4px rgba(87, 142, 255, 0.08);
}

.bootstrap-table .fixed-table-container {
    overflow: hidden;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: var(--shadow-soft);
}

.bootstrap-table .fixed-table-container .table {
    margin-bottom: 0 !important;
}

.bootstrap-table .fixed-table-container .table > :not(caption) > * > * {
    padding: 16px 14px;
}

.bootstrap-table .fixed-table-container .table thead th {
    font-size: 0.76rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--color-text-soft);
    background: rgba(242, 246, 255, 0.98);
}

.bootstrap-table .fixed-table-container .table tbody tr:last-child td {
    border-bottom: 0;
}

.bootstrap-table .coluna-acoes-compacta {
    width: 1%;
    white-space: nowrap;
}

.bootstrap-table .coluna-acoes-compacta .acoes-aplicacao {
    flex-wrap: nowrap;
    gap: 8px;
}

.bootstrap-table .coluna-acoes-compacta .botao {
    min-height: 42px;
    padding-inline: 12px;
}

.caixa-opcoes-multiplas {
    max-height: 280px;
    overflow: auto;
    padding: 12px 14px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: rgba(250, 252, 255, 0.92);
}

.caixa-opcoes-multiplas ul {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.caixa-opcoes-multiplas li label {
    display: inline-flex;
    align-items: flex-start;
    gap: 10px;
    line-height: 1.4;
}

.caixa-opcoes-multiplas input {
    width: auto;
    height: auto;
    flex: 0 0 auto;
    margin-top: 2px;
}

.botao-limpar-filtro {
    color: var(--color-text-soft);
    background: linear-gradient(180deg, rgba(250, 252, 255, 0.98) 0%, rgba(240, 245, 255, 0.9) 100%);
}

.botao-limpar-filtro:hover {
    color: var(--color-text);
}

.tabela-link-publico a {
    display: inline-block;
    max-width: 280px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--color-primary);
    text-decoration: none;
}

.tabela-link-publico a:hover {
    text-decoration: underline;
}

.acao-link-copiar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(240, 246, 255, 0.94);
    color: var(--color-primary);
    cursor: pointer;
    transition: border-color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.acao-link-copiar:hover {
    border-color: rgba(87, 142, 255, 0.28);
    background: rgba(232, 241, 255, 0.98);
    transform: translateY(-1px);
}

.acao-link-copiar.is-copied {
    border-color: rgba(31, 156, 97, 0.22);
    background: rgba(239, 251, 245, 0.98);
    color: #1f9c61;
}

.toast-stack {
    position: fixed;
    right: 16px;
    bottom: 16px;
    z-index: 1100;
    display: grid;
    gap: 10px;
    width: min(360px, calc(100vw - 24px));
}

.toast {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 12px;
    align-items: start;
    padding: 14px 14px 14px 16px;
    border: 1px solid rgba(87, 142, 255, 0.18);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 18px 40px rgba(26, 43, 66, 0.16);
    backdrop-filter: blur(10px);
    overflow: hidden;
    transition: opacity 0.22s ease, transform 0.22s ease;
}

.toast.is-closing {
    opacity: 0;
    transform: translateY(-6px);
}

.toast-copy {
    font-size: 0.94rem;
    line-height: 1.45;
    color: var(--color-text);
}

.toast-progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--color-primary) 0%, #9dbdff 100%);
    transform-origin: left center;
}

.toast-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--color-text-soft);
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
}

.toast-close:hover {
    background: rgba(26, 43, 66, 0.06);
    color: var(--color-text);
}

.toast-success {
    border-color: rgba(62, 189, 131, 0.22);
    background: rgba(243, 255, 247, 0.97);
}

.toast-error,
.toast-danger {
    border-color: rgba(235, 106, 98, 0.24);
    background: rgba(255, 241, 240, 0.98);
}

.toast-warning {
    border-color: rgba(239, 176, 72, 0.24);
    background: rgba(255, 248, 236, 0.98);
}

.toast-info,
.toast-debug {
    border-color: rgba(87, 142, 255, 0.2);
    background: rgba(240, 246, 255, 0.98);
}

.swal-popup-app {
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-lg);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 24px 56px rgba(26, 43, 66, 0.18);
}

.swal-title-app {
    font-family: var(--font-display);
    letter-spacing: -0.03em;
    color: var(--color-text);
}

.swal-text-app {
    color: var(--color-text-soft);
    line-height: 1.55;
}

.swal-actions-app {
    gap: 10px;
}

@media (max-width: 720px) {
    .toast-stack {
        right: 10px;
        left: 10px;
        bottom: 10px;
        width: auto;
    }

    .resultado-insights-grid,
    .resultado-sugestoes-grid,
    .resultado-barras-grid {
        grid-template-columns: 1fr;
    }

    .resultado-sugestao-head,
    .resultado-barra-head,
    .resultado-barra-meta,
    .resultado-barra-rodape {
        display: grid;
        justify-content: initial;
    }
}

.tabela-carteira th.coluna-acoes,
.tabela-carteira td.coluna-acoes {
    width: 1%;
}

.coluna-acoes {
    min-width: 420px;
}

.coluna-acoes-curta {
    min-width: 300px;
}

.acoes-aplicacao {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    max-width: 100%;
}

.acoes-aplicacao-leitura .botao-leitura {
    color: #627084;
    background: linear-gradient(180deg, rgba(243, 245, 249, 0.98) 0%, rgba(233, 238, 244, 0.96) 100%);
    border-color: rgba(98, 112, 132, 0.18);
    box-shadow: none;
}

.acoes-aplicacao-leitura .botao-leitura:hover {
    color: #4f5c6e;
    background: linear-gradient(180deg, rgba(238, 241, 245, 1) 0%, rgba(225, 231, 238, 0.98) 100%);
    border-color: rgba(98, 112, 132, 0.28);
    box-shadow: none;
}

.acoes-aplicacao-planos .botao {
    min-width: 112px;
}

.campo-checkbox-inline {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--color-text-soft);
    font-size: 0.95rem;
}

.campo-checkbox-inline input {
    width: 18px;
    height: 18px;
    margin: 0;
}

.evidencia-preview {
    display: grid;
    gap: 12px;
    padding: 14px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(246, 249, 255, 0.92) 0%, rgba(255, 255, 255, 0.98) 100%);
}

.evidencia-preview-placeholder {
    margin: 0;
    color: var(--color-text-soft);
}

.evidencia-preview-imagem,
.evidencia-preview-pdf,
.evidencia-preview-texto {
    width: 100%;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-md);
    background: #fff;
}

.evidencia-preview-imagem {
    max-height: 320px;
    object-fit: contain;
}

.evidencia-preview-pdf {
    min-height: 360px;
}

.evidencia-preview-texto {
    min-height: 220px;
    margin: 0;
    padding: 14px;
    overflow: auto;
    white-space: pre-wrap;
    word-break: break-word;
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--color-text);
}

.evidencia-preview-acoes {
    display: flex;
    justify-content: flex-end;
}

.tabela-monitoramento th,
.tabela-monitoramento td {
    vertical-align: top;
}

.tabela-monitoramento th.coluna-acoes,
.tabela-monitoramento td.coluna-acoes {
    width: 1%;
}

.tabela-monitoramento .coluna-acoes {
    min-width: 168px;
    white-space: nowrap;
}

.tabela-link-acao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    margin-left: 6px;
    color: var(--color-primary);
    font-size: 0.82rem;
    vertical-align: middle;
    transition: color 160ms ease, transform 160ms ease;
}

.tabela-link-acao:hover {
    color: var(--color-primary-deep);
    transform: translateY(-1px);
}

.coluna-acoes .botao {
    min-height: 40px;
}

.coluna-acoes .tabela-link-publico,
.coluna-acoes .link-publico-acoes {
    width: fit-content;
    max-width: 100%;
}

.painel-resultado-hero {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(240, 246, 255, 0.96) 100%);
}

.resultado-hero-copy {
    display: grid;
    gap: 10px;
}

.resultado-hero-copy h2 {
    margin: 0;
}

.resultado-hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.grade-resumo-resultado {
    align-items: stretch;
}

.card-resumo-icone {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    grid-template-areas:
        "icon label"
        "icon value"
        "text text";
    align-items: start;
    column-gap: 14px;
    min-height: 0;
}

.card-resumo-icone-badge {
    grid-area: icon;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 10px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    background: rgba(240, 246, 255, 0.96);
    color: var(--color-primary-deep);
    font-size: 1.2rem;
}

.card-resumo-icone-badge .bi {
    font-size: 1.95rem;
    line-height: 1;
}

.card-resumo-icone > span:not(.card-resumo-icone-badge) {
    grid-area: label;
    justify-self: end;
    text-align: right;
}

.card-resumo-icone > strong {
    grid-area: value;
    margin: 2px 0 0;
    font-size: clamp(1.4rem, 1.9vw, 2.1rem);
    justify-self: end;
    text-align: right;
}

.card-resumo-icone > p {
    grid-area: text;
    max-width: none;
    justify-self: start;
    text-align: left;
    margin-top: 2px;
}

.card-consultoria-empresas .card-resumo-icone-badge {
    background: rgba(235, 243, 255, 0.96);
    color: var(--color-primary);
}

.card-consultoria-onboarding .card-resumo-icone-badge {
    background: rgba(255, 247, 232, 0.96);
    color: var(--color-accent);
}

.card-consultoria-ciclo .card-resumo-icone-badge {
    background: rgba(240, 246, 255, 0.96);
    color: var(--color-primary-deep);
}

.card-consultoria-pendencias .card-resumo-icone-badge {
    background: rgba(255, 240, 238, 0.96);
    color: var(--color-risk-high);
}

.card-resumo-score .card-resumo-icone-badge {
    background: rgba(235, 243, 255, 0.96);
}

.card-resumo-risco .card-resumo-icone-badge {
    background: rgba(255, 240, 238, 0.96);
    color: var(--color-risk-high);
}

.card-resumo-recorte .card-resumo-icone-badge {
    background: rgba(255, 247, 232, 0.96);
    color: var(--color-accent);
}

.card-resumo-riscos .card-resumo-icone-badge {
    background: rgba(237, 249, 243, 0.96);
    color: var(--color-risk-low);
}

.card-aplicacoes-ciclo .card-resumo-icone-badge {
    background: rgba(240, 246, 255, 0.96);
    color: var(--color-primary-deep);
}

.card-aplicacoes-total .card-resumo-icone-badge {
    background: rgba(235, 243, 255, 0.96);
}

.card-aplicacoes-andamento .card-resumo-icone-badge {
    background: rgba(255, 247, 232, 0.96);
    color: var(--color-accent);
}

.card-aplicacoes-finalizadas .card-resumo-icone-badge {
    background: rgba(237, 249, 243, 0.96);
    color: var(--color-risk-low);
}

.card-monitoramento-instrumento .card-resumo-icone-badge {
    background: rgba(235, 243, 255, 0.96);
}

.card-monitoramento-sessoes .card-resumo-icone-badge {
    background: rgba(237, 249, 243, 0.96);
    color: var(--color-risk-low);
}

.card-monitoramento-progresso .card-resumo-icone-badge {
    background: rgba(255, 247, 232, 0.96);
    color: var(--color-accent);
}

.card-monitoramento-link .card-resumo-icone-badge {
    background: rgba(240, 246, 255, 0.96);
    color: var(--color-primary-deep);
}

.grade-resumo-ciclos {
    align-items: stretch;
}

.grade-resumo-consultoria {
    align-items: stretch;
}

.lista-ciclos {
    display: grid;
    gap: 14px;
}

.card-ciclo-item {
    display: grid;
    gap: 16px;
    padding: 18px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 249, 255, 0.96) 100%);
    box-shadow: 0 10px 28px rgba(26, 43, 66, 0.06);
}

.card-ciclo-item.card-ciclo-ativo {
    border-color: rgba(92, 187, 122, 0.18);
    background: linear-gradient(180deg, rgba(247, 252, 248, 0.98) 0%, rgba(240, 249, 243, 0.94) 100%);
}

.card-ciclo-item.card-ciclo-encerrado {
    border-color: rgba(235, 106, 98, 0.18);
    background: linear-gradient(180deg, rgba(255, 247, 246, 0.98) 0%, rgba(255, 240, 238, 0.94) 100%);
}

.card-ciclo-item.card-ciclo-rascunho {
    border-color: rgba(120, 137, 160, 0.14);
    background: linear-gradient(180deg, rgba(247, 249, 252, 0.98) 0%, rgba(242, 245, 249, 0.94) 100%);
}

.card-ciclo-topo {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
}

.card-ciclo-icone {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 14px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    background: rgba(240, 246, 255, 0.96);
    color: var(--color-primary-deep);
    font-size: 1.2rem;
}

.card-ciclo-item.card-ciclo-ativo .card-ciclo-icone {
    background: rgba(233, 248, 238, 0.96);
    color: #2e7444;
    border-color: rgba(92, 187, 122, 0.18);
}

.card-ciclo-item.card-ciclo-encerrado .card-ciclo-icone {
    background: rgba(255, 240, 238, 0.96);
    color: #a43934;
    border-color: rgba(235, 106, 98, 0.18);
}

.card-ciclo-item.card-ciclo-rascunho .card-ciclo-icone {
    background: rgba(244, 246, 249, 0.96);
    color: #5f6b7d;
    border-color: rgba(120, 137, 160, 0.18);
}

.card-ciclo-icone .bi {
    font-size: 1.25rem;
    line-height: 1;
}

.card-ciclo-copy {
    display: grid;
    gap: 6px;
}

.card-ciclo-copy strong {
    font-family: var(--font-display);
    font-size: 1.14rem;
    letter-spacing: -0.03em;
}

.card-ciclo-copy p {
    margin: 0;
    color: var(--color-text-soft);
}

.card-ciclo-meta-card {
    display: grid;
    gap: 4px;
    min-width: 150px;
    padding: 12px 14px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.9);
}

.card-ciclo-meta-card span,
.card-ciclo-meta article span {
    color: var(--color-text-soft);
    font-size: 0.76rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.card-ciclo-meta-card strong,
.card-ciclo-meta article strong {
    font-size: 0.97rem;
}

.card-ciclo-meta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.card-ciclo-meta article {
    display: grid;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.9);
}

.card-ciclo-meta strong {
    font-family: var(--font-display);
}

.acoes-ciclo {
    justify-content: flex-start;
}

@media print {
    .card-ciclo-item {
        break-inside: avoid;
        box-shadow: none;
    }

    .card-ciclo-item .acoes-ciclo,
    .painel .painel-topo .painel-acoes,
    .modal,
    .sidebar-app,
    .navbar-app {
        display: none !important;
    }

    .card-ciclo-item,
    .card-resumo-icone,
    .orientacao-destaque {
        background: #ffffff !important;
    }
}

.resultado-insights-grid,
.resultado-sugestoes-grid,
.resultado-barras-grid,
.resultado-mini-grid {
    display: grid;
    gap: 16px;
}

.resultado-insights-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.resultado-insight-card,
.resultado-sugestao-card,
.resultado-barra-card {
    padding: 16px 18px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(248, 251, 255, 0.84);
}

.resultado-insight-card h3,
.resultado-sugestao-card strong {
    margin: 0;
    font-family: var(--font-display);
    letter-spacing: -0.03em;
}

.resultado-insight-card p,
.resultado-sugestao-card p {
    margin: 8px 0 0;
    color: var(--color-text-soft);
    line-height: 1.6;
}

.resultado-sugestoes-grid {
    grid-template-columns: 1fr;
}

.resultado-sugestao-card {
    display: grid;
    gap: 14px;
}

.resultado-sugestao-card-registrado {
    gap: 10px;
}

.resultado-sugestao-head,
.resultado-barra-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.resultado-barra-meta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.resultado-barra-meta .botao {
    min-height: 38px;
}

.resultado-barras-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.resultado-mini-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.resultado-barra-card {
    display: grid;
    gap: 12px;
}

.resultado-mini-card {
    display: grid;
    gap: 10px;
    padding: 14px 15px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.94);
}

.resultado-mini-card-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.resultado-mini-track {
    height: 8px;
}

.resultado-barra-track {
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(87, 142, 255, 0.1);
}

.resultado-barra-fill {
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(87, 142, 255, 0.88) 0%, rgba(49, 101, 223, 0.96) 100%);
}

.resultado-barra-fill.badge-baixo {
    background: linear-gradient(90deg, rgba(92, 187, 122, 0.84) 0%, rgba(77, 164, 105, 0.96) 100%);
}

.resultado-barra-fill.badge-medio {
    background: linear-gradient(90deg, rgba(239, 176, 72, 0.84) 0%, rgba(221, 150, 24, 0.96) 100%);
}

.resultado-barra-fill.badge-alto {
    background: linear-gradient(90deg, rgba(235, 106, 98, 0.84) 0%, rgba(214, 78, 70, 0.96) 100%);
}

.resultado-barra-rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: var(--color-text-soft);
    font-size: 0.88rem;
}

.resultado-barra-ajuda {
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.55;
}

.resultado-hierarquia-lista,
.resultado-subhierarquia-lista {
    display: grid;
    gap: 14px;
}

.resultado-hierarquia-card,
.resultado-subhierarquia-card {
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: rgba(248, 251, 255, 0.84);
    overflow: hidden;
}

.resultado-hierarquia-summary,
.resultado-subhierarquia-summary {
    list-style: none;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    padding: 16px 18px;
    cursor: pointer;
}

.resultado-hierarquia-summary::-webkit-details-marker,
.resultado-subhierarquia-summary::-webkit-details-marker {
    display: none;
}

.resultado-hierarquia-summary-copy,
.resultado-hierarquia-summary-copy > div {
    display: grid;
    gap: 3px;
}

.resultado-hierarquia-summary-copy strong,
.resultado-subhierarquia-summary strong {
    font-family: var(--font-display);
    letter-spacing: -0.03em;
}

.resultado-hierarquia-summary-meta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
    color: var(--color-text-soft);
}

.resultado-hierarquia-score {
    font-size: 0.92rem;
    font-weight: 600;
    color: var(--color-text-main);
}

.resultado-hierarquia-summary .bi,
.resultado-subhierarquia-summary .bi {
    font-size: 0.95rem;
    transition: transform 180ms ease;
}

.resultado-hierarquia-card[open] > .resultado-hierarquia-summary .bi,
.resultado-subhierarquia-card[open] > .resultado-subhierarquia-summary .bi {
    transform: rotate(180deg);
}

.resultado-hierarquia-corpo,
.resultado-subhierarquia-corpo {
    display: grid;
    gap: 18px;
    padding: 0 18px 18px;
}

.resultado-hierarquia-topo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
}

.resultado-hierarquia-track {
    height: 10px;
    overflow: hidden;
    border-radius: 999px;
    background: rgba(87, 142, 255, 0.1);
}

.resultado-hierarquia-bloco {
    display: grid;
    gap: 12px;
}

.resultado-hierarquia-bloco-topo {
    display: grid;
    gap: 4px;
}

.resultado-hierarquia-bloco-topo h3 {
    margin: 0;
    font-size: 1.02rem;
    letter-spacing: -0.02em;
}

@media (max-width: 1200px) {
    .resultado-barras-grid,
    .resultado-mini-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .resultado-hierarquia-summary,
    .resultado-subhierarquia-summary,
    .resultado-hierarquia-topo {
        grid-template-columns: 1fr;
        display: grid;
    }

    .resultado-hierarquia-summary-meta,
    .resultado-hierarquia-acoes {
        justify-content: flex-start;
    }
}

.painel-coleta {
    display: grid;
    gap: 24px;
}

.hero-coleta-publica {
    width: min(1080px, calc(100% - 32px));
    margin: 24px auto 14px;
    padding: 22px 24px;
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(240px, 0.6fr);
    gap: 14px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-lg);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(242, 246, 255, 0.96) 100%);
    box-shadow: var(--shadow-soft);
}

.hero-coleta-publica h1 {
    margin: 8px 0 6px;
    font-size: clamp(1.8rem, 3.6vw, 2.7rem);
    line-height: 1.02;
    letter-spacing: -0.05em;
}

.hero-coleta-publica p {
    margin: 0;
    max-width: 62ch;
    color: var(--color-text-soft);
}

.hero-panel {
    display: grid;
    align-content: center;
    gap: 8px;
    padding: 16px 18px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: rgba(245, 249, 255, 0.92);
}

.hero-panel strong {
    font-size: 1rem;
    line-height: 1.2;
}

.painel-coleta-publica {
    width: min(1080px, calc(100% - 32px));
    margin: 0 auto 32px;
}

.painel-coleta-publica-wizard {
    padding: 14px;
}

.coleta-publica-shell {
    display: grid;
    grid-template-columns: minmax(240px, 0.72fr) minmax(0, 1.45fr);
    gap: 14px;
}

.coleta-publica-sidebar {
    display: grid;
    align-content: start;
    gap: 14px;
    padding: 18px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(244, 248, 255, 0.86) 0%, rgba(235, 242, 255, 0.8) 100%);
}

.coleta-publica-sidebar h2 {
    margin: 0;
    font-size: 1.8rem;
    line-height: 1.02;
    letter-spacing: -0.04em;
}

.coleta-resumo-linha {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.coleta-resumo-item {
    display: grid;
    gap: 4px;
    padding: 12px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.62);
}

.coleta-resumo-item:last-child {
    grid-column: 1 / -1;
}

.coleta-resumo-item span {
    color: var(--color-text-soft);
    font-size: 0.76rem;
}

.coleta-resumo-item strong {
    font-size: 1.35rem;
    line-height: 1;
    letter-spacing: -0.04em;
}

.coleta-resumo-item small {
    color: var(--color-text-soft);
    font-size: 0.78rem;
    line-height: 1.4;
}

.barra-progresso-publica {
    margin-top: -2px;
}

.coleta-stepper {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.coleta-stepper li {
    position: relative;
    padding: 10px 12px 10px 38px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.52);
    color: var(--color-text-soft);
    font-weight: 500;
    font-size: 0.94rem;
}

.coleta-stepper li::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 14px;
    width: 16px;
    height: 16px;
    border-radius: 999px;
    border: 2px solid rgba(87, 142, 255, 0.24);
    transform: translateY(-50%);
    background: rgba(255, 255, 255, 0.94);
}

.coleta-stepper li.ativo {
    border-color: rgba(87, 142, 255, 0.28);
    color: var(--color-text);
    background: rgba(255, 255, 255, 0.96);
}

.coleta-stepper li.ativo::before {
    border-color: var(--color-primary);
    background: rgba(87, 142, 255, 0.16);
}

.coleta-stepper li.concluido::before {
    border-color: #1f9c61;
    background: rgba(31, 156, 97, 0.18);
}

.coleta-publica-conteudo {
    min-width: 0;
}

.painel-wizard {
    display: grid;
    gap: 16px;
    padding: 20px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 250, 255, 0.96) 100%);
    box-shadow: var(--shadow-soft);
}

.painel-wizard-topo {
    display: grid;
    gap: 8px;
}

.painel-wizard-topo h3 {
    margin: 0;
    font-size: clamp(1.3rem, 2.4vw, 1.9rem);
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.wizard-copy {
    display: grid;
    gap: 12px;
}

.wizard-copy p {
    margin: 0;
    color: var(--color-text-soft);
    line-height: 1.65;
}

.wizard-form {
    display: grid;
    gap: 18px;
}

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

.wizard-consentimento {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(241, 246, 255, 0.88);
}

.wizard-consentimento input {
    margin-top: 4px;
    accent-color: var(--color-primary);
}

.wizard-acoes {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 12px;
    flex-wrap: wrap;
}

.wizard-acoes-pergunta {
    align-items: center;
    justify-content: space-between;
}

.wizard-acoes-direita {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.card-pergunta-wizard {
    padding: 0;
    border: none;
    box-shadow: none;
    background: transparent;
}

.card-pergunta-wizard .card-pergunta-body h3 {
    margin-bottom: 12px;
}

.wizard-dados-finais {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.wizard-dados-finais div {
    display: grid;
    gap: 6px;
    padding: 14px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(245, 249, 255, 0.72);
}

.wizard-dados-finais span {
    color: var(--color-text-soft);
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.wizard-dados-finais strong {
    font-size: 1rem;
}

.painel-topo-coleta {
    align-items: start;
}

.coleta-resumo-mobile {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.coleta-resumo-card {
    padding: 18px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(241, 245, 255, 0.96) 100%);
    box-shadow: var(--shadow-soft);
}

.coleta-resumo-card span,
.pergunta-meta,
.pergunta-codigo {
    color: var(--color-text-soft);
    font-size: 0.84rem;
}

.coleta-resumo-card strong {
    display: block;
    margin-top: 6px;
    font-size: 1.5rem;
    font-family: var(--font-display);
    letter-spacing: -0.04em;
}

.coleta-resumo-card p {
    margin: 8px 0 0;
}

.barra-progresso {
    height: 10px;
    margin-top: 12px;
    border-radius: 999px;
    background: rgba(87, 142, 255, 0.12);
    overflow: hidden;
}

.barra-progresso span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(135deg, #578eff 0%, #9ec2ff 100%);
}

.form-coleta-mobile {
    display: grid;
    gap: 18px;
}

.card-pergunta-mobile {
    padding: 20px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.98) 0%, rgba(247, 250, 255, 0.96) 100%);
    box-shadow: var(--shadow-soft);
}

.card-pergunta-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.card-pergunta-body h3 {
    margin: 0 0 10px;
    font-size: clamp(1rem, 1.5vw, 1.16rem);
    line-height: 1.35;
}

.card-pergunta-mobile textarea {
    width: 100%;
    min-height: 112px;
    padding: 14px 16px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.96);
    resize: vertical;
}

.grid-contexto-coleta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.campo-contexto-coleta {
    display: grid;
    gap: 8px;
}

.campo-contexto-coleta span {
    font-size: 0.92rem;
    font-weight: 700;
}

.campo-contexto-coleta input {
    width: 100%;
    min-height: 48px;
    padding: 0 14px;
    border: 1px solid rgba(87, 142, 255, 0.16);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.96);
}

.lista-opcoes-mobile {
    display: grid;
    gap: 12px;
    margin-top: 12px;
}

.opcao-mobile,
.opcao-nsa {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(87, 142, 255, 0.12);
    border-radius: var(--radius-sm);
    background: rgba(255, 255, 255, 0.88);
    transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}

.opcao-mobile:hover,
.opcao-nsa:hover {
    transform: translateY(-1px);
    border-color: rgba(87, 142, 255, 0.24);
    box-shadow: 0 12px 28px rgba(26, 43, 66, 0.08);
}

.opcao-mobile input,
.opcao-nsa input {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    accent-color: var(--color-primary);
}

.opcao-mobile span,
.opcao-nsa span {
    line-height: 1.5;
}

.opcao-nsa {
    margin-top: 12px;
    padding-block: 12px;
    background: rgba(227, 236, 255, 0.56);
}

.pergunta-meta {
    display: inline-flex;
    margin-top: 12px;
}

.rodape-coleta-mobile {
    position: sticky;
    bottom: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 20px;
    border: 1px solid rgba(87, 142, 255, 0.14);
    border-radius: var(--radius-md);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(14px);
    box-shadow: 0 18px 44px rgba(26, 43, 66, 0.12);
}

.rodape-coleta-copy strong {
    display: block;
    margin-bottom: 4px;
    font-family: var(--font-display);
}

.rodape-coleta-copy p {
    margin: 0;
}

.rodape-coleta-acoes {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

@media (max-width: 1120px) {
    .hero-coleta-publica {
        grid-template-columns: 1fr;
    }

    .coleta-publica-shell,
    .wizard-grid,
    .wizard-dados-finais {
        grid-template-columns: 1fr;
    }

    .coleta-resumo-linha {
        grid-template-columns: 1fr;
    }

    .coleta-resumo-item:last-child {
        grid-column: auto;
    }

    .lp-hero,
    .security-layout,
    .contact-layout,
    .grid-conteudo,
    .auth-shell,
    .secao-login {
        grid-template-columns: 1fr;
    }

    .prep-grid,
    .module-grid,
    .benefit-grid,
    .landing-metrics,
    .grade-resumo,
    .grid-empresas,
    .cost-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .pillar-band,
    .reason-band {
        grid-template-columns: 1fr;
    }

    .footer-publico-conteudo,
    .footer-rodape,
    .cta-panel,
    .navbar-app-inner,
    .sidebar-rodape,
    .topbar-app {
        flex-direction: column;
        align-items: stretch;
    }

    .tema-app.sidebar-oculta .app-shell {
        grid-template-columns: 82px minmax(0, 1fr);
    }

    .coleta-resumo-mobile {
        grid-template-columns: 1fr;
    }

    .grid-contexto-coleta {
        grid-template-columns: 1fr;
    }

    .catalogo-meta-grid,
    .catalogo-metricas,
    .catalogo-secundario-grid,
    .catalogo-faixas-grid {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 900px) {
    .app-shell {
        grid-template-columns: 1fr;
    }

    .sidebar-app {
        width: 100%;
    }

    .rodape-coleta-mobile {
        position: static;
        align-items: stretch;
        flex-direction: column;
    }

    .rodape-coleta-acoes {
        width: 100%;
        justify-content: stretch;
    }

    .rodape-coleta-acoes .botao {
        width: 100%;
    }

    .catalogo-hero,
    .catalogo-instrumento-topo,
    .catalogo-versao-topo,
    .catalogo-titulo-linha {
        flex-direction: column;
    }

    .catalogo-acoes {
        justify-content: flex-start;
    }

    .wizard-acoes,
    .wizard-acoes-direita {
        flex-direction: column;
        align-items: stretch;
    }

    .wizard-acoes .botao,
    .wizard-acoes-direita .botao {
        width: 100%;
    }

    .empresa-grupo-summary,
    .empresa-grupo-linha,
    .empresa-grupo-principal,
    .empresa-grupo-secundario,
    .empresa-grupo-acoes,
    .empresa-estabelecimento-principal,
    .empresa-estabelecimento-item {
        flex-direction: column;
    }
}

@media (max-width: 780px) {
    .topbar-publica,
    .lp-hero,
    .landing-metrics,
    .landing-section,
    .footer-publico-conteudo,
    .footer-rodape,
    .auth-shell,
    .secao-login {
        width: min(calc(100% - 28px), var(--container));
    }

    .topbar-publica {
        top: 10px;
        padding: 12px 14px;
        flex-direction: row;
        align-items: center;
        flex-wrap: wrap;
        gap: 12px;
    }

    .navbar-app {
        top: 0;
        padding: 12px 14px;
    }

    .navbar-app,
    .app-shell {
        width: 100%;
    }

    .marca-logo {
        height: 38px;
        max-width: min(230px, 52vw);
    }

    .landing-actions,
    .acoes-topbar,
    .navbar-app-actions {
        width: 100%;
    }

    .nav-publica-mobile-actions {
        display: flex;
        margin-left: auto;
        flex: 0 0 auto;
    }

    .nav-publica-toggle {
        min-width: 92px;
        padding-inline: 14px;
    }

    .nav-publica-toggle .bi {
        font-size: 1.02rem;
    }

    .nav-publica {
        order: 3;
        display: none;
        align-items: center;
        flex-wrap: wrap;
        gap: 8px;
        width: 100%;
        padding: 10px 0 2px;
    }

    .topbar-publica.menu-publico-aberto .nav-publica,
    .nav-publica.is-open {
        display: flex;
    }

    .nav-publica a:not(.botao) {
        flex: 1 1 calc(50% - 4px);
        padding: 9px 10px;
        font-size: 0.92rem;
        text-align: center;
    }

    .nav-publica .botao {
        flex: 1 1 100%;
        width: 100%;
        min-height: 40px;
        padding-inline: 14px;
    }

    .nav-publica-login-desktop {
        display: none;
    }

    .navbar-app-menu {
        width: 100%;
    }

    .sidebar-app {
        padding: 16px 14px;
    }

    .conteudo-app {
        padding: 14px 14px 22px;
    }

    .tema-app.sidebar-oculta .conteudo-app {
        padding-left: 14px;
        padding-right: 14px;
    }

    .lp-hero-copy h1,
    .login-side-card h1,
    .auth-side-card h1 {
        max-width: none;
        font-size: 1.9rem;
    }

    .hero-topics,
    .landing-metrics,
    .prep-grid,
    .cost-grid,
    .module-grid,
    .benefit-grid,
    .grade-resumo,
    .grid-empresas,
    .lp-browser-mini-grid,
    .lp-browser-content-grid {
        grid-template-columns: 1fr;
    }

    .lp-browser-body {
        grid-template-columns: 1fr;
    }

    .lp-browser-sidebar {
        grid-auto-flow: column;
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .contact-form-grid {
        grid-template-columns: 1fr;
    }

    .login-side-card,
    .auth-side-card,
    .card-login {
        padding: 20px;
    }

    .card-login-head,
    .login-actions-row,
    .topbar-publica-simples {
        flex-direction: column;
        align-items: flex-start;
    }

    .auth-button-row {
        width: 100%;
        flex-direction: column;
        align-items: stretch;
    }

    .conteudo-app {
        padding: 18px;
    }

    .painel-topo,
    .item-risco,
    .token-linha,
    .card-empresa,
    .footer-publico-conteudo,
    .footer-rodape {
        flex-direction: column;
        align-items: flex-start;
    }

    .token-amostras {
        flex-wrap: wrap;
    }

    .contact-form-actions {
        flex-direction: column;
        align-items: flex-start;
    }

    .modal {
        padding: 14px;
    }

    .modal-card {
        width: 100%;
        max-height: 94vh;
    }

    .modal-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .modal-actions {
        width: 100%;
        flex-direction: column;
    }

    .form-row-datas {
        grid-template-columns: 1fr;
    }

    .form-row-double,
    .form-row-triple {
        grid-template-columns: 1fr;
    }

    .campo-span-2 {
        grid-column: auto;
    }
}
