/* =====================================================================
 * Perspicaz FlexForm v1.1.2 - página pública independente do tema Perfex
 * Este arquivo é carregado SOMENTE nos formulários públicos/compartilhados.
 * Objetivo: impedir que OrangeDark/dark mode/tema do CRM altere o formulário.
 * ===================================================================== */

html.flexform-public-document,
html.flexform-public-document body,
body.flexform-public-body {
    min-height: 100%;
    margin: 0 !important;
    background: #f4f7fb !important;
    color: #172033 !important;
    color-scheme: light !important;
}

body.flexform-public-body {
    overflow-x: hidden;
}

/* Neutraliza backgrounds/overlays que alguns temas aplicam ao body. */
body.flexform-public-body::before,
body.flexform-public-body::after {
    display: none !important;
    content: none !important;
}

.flexform-public-shell {
    width: 100%;
    min-height: 100vh;
    box-sizing: border-box;
    background:
        radial-gradient(circle at 12% 8%, rgba(249, 115, 22, .055), transparent 30%),
        #f4f7fb !important;
    color: #172033 !important;
}

.flexform-public-shell,
.flexform-public-shell * {
    box-sizing: border-box;
}

/* Cabeçalho/logotipo */
.flexform-public-shell .flexform-navigation {
    min-height: 84px;
    margin: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid #e7edf5 !important;
    border-radius: 0 !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: 0 1px 0 rgba(15, 23, 42, .02) !important;
}

.flexform-public-shell .flexform-navigation .container {
    width: min(1180px, calc(100% - 48px)) !important;
    max-width: 1180px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

.flexform-public-shell .flexform-navigation .navbar-header {
    float: none !important;
    min-height: 84px;
    display: flex !important;
    align-items: center !important;
}

.flexform-public-shell .flexform-navigation .navbar-brand.logo {
    float: none !important;
    display: inline-flex !important;
    align-items: center !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: normal !important;
}

.flexform-public-shell .flexform-navigation .navbar-brand.logo img,
.flexform-public-shell .flexform-navigation img.logo,
.flexform-public-shell .flexform-navigation .logo img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    max-width: 210px !important;
    max-height: 46px !important;
    object-fit: contain !important;
}

.flexform-public-shell .flexform-navigation .navbar-toggle {
    display: none !important;
}

/* Área central - remove qualquer limitação de largura herdada do tema. */
.flexform-public-main {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 46px 24px 72px !important;
    background: transparent !important;
}

.flexform-public-main > form,
.flexform-public-main .flexform-client-form,
.flexform-public-main .flexform-sp-client-form {
    display: block !important;
    width: 100% !important;
    max-width: 960px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
}

/* Formulário passo a passo */
.flexform-public-main .flexform-client-block-container {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 960px !important;
    min-width: 0 !important;
    min-height: 535px !important;
    height: auto !important;
    margin: 0 auto !important;
    padding: clamp(42px, 5.5vw, 76px) clamp(32px, 7vw, 92px) !important;
    overflow: visible !important;
    border: 1px solid #e5eaf1 !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    color: #172033 !important;
    box-shadow: 0 18px 55px rgba(15, 23, 42, .09) !important;
}

.flexform-public-main .flexform-client-block-container > * {
    max-width: 100%;
}

/* Formulário em página única */
.flexform-public-main .flexform-single-page-layout {
    width: 100% !important;
    max-width: 960px !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    padding: 28px !important;
    border: 1px solid #e5eaf1 !important;
    border-radius: 18px !important;
    background: #ffffff !important;
    color: #172033 !important;
    box-shadow: 0 18px 55px rgba(15, 23, 42, .09) !important;
}

.flexform-public-main .flexform-single-page-each-block {
    color: #172033 !important;
}

.flexform-public-main .flexform-single-page-each-block.fsp-padding {
    margin: 14px 0 !important;
    padding: 24px 26px !important;
    border: 1px solid #eef2f7 !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
}

.flexform-public-main .fsp-hr {
    margin: 24px 0 !important;
    border: 0 !important;
    border-top: 1px solid #e7edf5 !important;
}

/* Tipografia - prioridade sobre cores do tema escuro do Perfex. */
.flexform-public-shell .flexform-title-preview,
.flexform-public-shell .preview-statement-title .flexform-title-preview,
.flexform-public-shell h1,
.flexform-public-shell h2,
.flexform-public-shell h3,
.flexform-public-shell h4,
.flexform-public-shell h5,
.flexform-public-shell h6,
.flexform-public-shell label {
    color: #111827 !important;
}

.flexform-public-shell .flexform-title-preview {
    margin-top: 0 !important;
    margin-bottom: 12px !important;
    font-size: clamp(24px, 2.2vw, 31px) !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: -.02em !important;
}

.flexform-public-shell .flexform-desc-preview {
    margin-bottom: 22px !important;
    color: #64748b !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
}

.flexform-public-shell .flexform-desc-preview a {
    color: #ea580c !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.flexform-public-shell .ff-statement-wrapper,
.flexform-public-shell .preview-statement-title {
    width: 100% !important;
    max-width: 100% !important;
}

.flexform-public-shell .ff-statement-image {
    width: auto !important;
    max-width: min(100%, 560px) !important;
    margin-bottom: 30px !important;
}

.flexform-public-shell .ff-statement-image img {
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 300px !important;
    object-fit: contain !important;
}

/* Campos sempre claros, mesmo com color-scheme/dark mode do navegador/tema. */
.flexform-public-shell input:not([type="radio"]):not([type="checkbox"]),
.flexform-public-shell textarea,
.flexform-public-shell select,
.flexform-public-shell .form-control,
.flexform-public-shell .bootstrap-select > .dropdown-toggle,
.flexform-public-shell .select2-selection {
    background: #ffffff !important;
    color: #172033 !important;
    border-color: #cbd5e1 !important;
    color-scheme: light !important;
}

.flexform-public-shell input::placeholder,
.flexform-public-shell textarea::placeholder {
    color: #94a3b8 !important;
    opacity: 1 !important;
}

.flexform-public-shell .form-control:focus,
.flexform-public-shell input:focus,
.flexform-public-shell textarea:focus,
.flexform-public-shell select:focus {
    border-color: #fb923c !important;
    box-shadow: 0 0 0 3px rgba(249,115,22,.12) !important;
    outline: none !important;
}

.flexform-public-shell .dropdown-menu,
.flexform-public-shell .select2-dropdown,
.flexform-public-shell .bootstrap-select .dropdown-menu {
    background: #ffffff !important;
    color: #172033 !important;
    border-color: #e2e8f0 !important;
}

.flexform-public-shell .dropdown-menu > li > a,
.flexform-public-shell .bootstrap-select .dropdown-menu li a {
    background: #ffffff !important;
    color: #172033 !important;
}

.flexform-public-shell .dropdown-menu > li > a:hover,
.flexform-public-shell .bootstrap-select .dropdown-menu li a:hover {
    background: #f8fafc !important;
    color: #0f172a !important;
}

.flexform-public-shell #dropzoneDragArea,
.flexform-public-shell .dropzoneDragArea {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    color: #475569 !important;
}

.flexform-public-shell .ff-options-boxes .ff-option-box {
    background: #ffffff !important;
    color: #172033 !important;
    border-color: #cbd5e1 !important;
}

.flexform-public-shell .ff-options-boxes .ff-option-box label {
    color: #172033 !important;
}

/* A barra de progresso continua respeitando o módulo, mas sem herdar o tema. */
.flexform-public-shell .flexform-progress-bar {
    z-index: 1050;
}

.flexform-public-shell .flexform-footer-actions {
    z-index: 1050;
}

/* Mensagens externas do módulo também permanecem legíveis. */
body.flexform-public-body .alert,
body.flexform-public-body .panel,
body.flexform-public-body .panel-body {
    color: #172033 !important;
    color-scheme: light !important;
}



/* Centralização do cabeçalho e da imagem/capa do formulário. */
.flexform-public-shell .flexform-navigation .navbar-header {
    justify-content: center !important;
}

.flexform-public-shell .ff-statement-image {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.flexform-public-shell .ff-statement-image img {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

/* Força alertas/popup flutuante para tema claro, sem herdar o dark mode do Perfex. */
body.flexform-public-body .float-alert,
body.flexform-public-body .alert,
body.flexform-public-body .alert.alert-danger,
body.flexform-public-body .alert.alert-warning,
body.flexform-public-body .alert.alert-info,
body.flexform-public-body .alert.alert-success {
    background: #ffffff !important;
    color: #172033 !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .14) !important;
}

body.flexform-public-body .float-alert.alert-danger,
body.flexform-public-body .alert.alert-danger {
    background: #fef2f2 !important;
    color: #991b1b !important;
    border-color: #fecaca !important;
}

body.flexform-public-body .float-alert.alert-warning,
body.flexform-public-body .alert.alert-warning {
    background: #fffbeb !important;
    color: #92400e !important;
    border-color: #fde68a !important;
}

body.flexform-public-body .float-alert.alert-info,
body.flexform-public-body .alert.alert-info {
    background: #eff6ff !important;
    color: #1d4ed8 !important;
    border-color: #bfdbfe !important;
}

body.flexform-public-body .float-alert.alert-success,
body.flexform-public-body .alert.alert-success {
    background: #f0fdf4 !important;
    color: #166534 !important;
    border-color: #bbf7d0 !important;
}

body.flexform-public-body .float-alert .close,
body.flexform-public-body .alert .close,
body.flexform-public-body .float-alert button.close,
body.flexform-public-body .alert button.close,
body.flexform-public-body .float-alert a,
body.flexform-public-body .alert a {
    color: inherit !important;
    opacity: 1 !important;
}

@media (max-width: 991px) {
    .flexform-public-main {
        padding: 30px 18px 54px !important;
    }

    .flexform-public-main .flexform-client-block-container {
        min-height: 500px !important;
        padding: 46px 44px !important;
    }
}

@media (max-width: 767px) {
    .flexform-public-shell .flexform-navigation {
        min-height: 70px;
    }

    .flexform-public-shell .flexform-navigation .container {
        width: calc(100% - 32px) !important;
    }

    .flexform-public-shell .flexform-navigation .navbar-header {
        min-height: 70px;
    }

    .flexform-public-shell .flexform-navigation .navbar-brand.logo img,
    .flexform-public-shell .flexform-navigation img.logo,
    .flexform-public-shell .flexform-navigation .logo img {
        max-width: 170px !important;
        max-height: 38px !important;
    }

    .flexform-public-main {
        padding: 18px 12px 36px !important;
    }

    .flexform-public-main .flexform-client-block-container {
        display: block !important;
        min-height: 0 !important;
        padding: 30px 22px !important;
        border-radius: 13px !important;
        box-shadow: 0 10px 30px rgba(15, 23, 42, .075) !important;
    }

    .flexform-public-main .flexform-single-page-layout {
        padding: 10px !important;
        border-radius: 13px !important;
        box-shadow: 0 10px 30px rgba(15, 23, 42, .075) !important;
    }

    .flexform-public-main .flexform-single-page-each-block.fsp-padding {
        margin: 10px 0 !important;
        padding: 20px 16px !important;
    }

    .flexform-public-shell .flexform-title-preview {
        font-size: 22px !important;
    }

    .flexform-public-shell .flexform-desc-preview {
        font-size: 14px !important;
    }

    .flexform-public-shell .ff-statement-image {
        margin-bottom: 22px !important;
    }

    .flexform-public-shell .flexform-footer-actions {
        right: 16px !important;
        bottom: 16px !important;
    }
}
