/* ===========================================================================
   SERVIÇOS URBANOS — camada visual unificada para páginas de emissão
   Escopo intencional: somente elementos descendentes de .su-emissao.
   ========================================================================== */

.su-emissao {
    --su-bg: #f4f7fb;
    --su-surface: #ffffff;
    --su-surface-soft: #f1f4f8;
    --su-surface-blue: #eef5ff;
    --su-text: #0b1b2b;
    --su-muted: #5f6875;
    --su-primary: #0a5bb8;
    --su-primary-dark: #084a96;
    --su-primary-light: #3d8cd6;
    --su-accent: #0a5bb8;
    --su-on-primary: #ffffff;
    --su-border: rgba(11, 27, 43, 0.12);
    --su-border-strong: rgba(10, 91, 184, 0.28);
    --su-danger: #b42318;
    --su-success: #157347;
    --su-page-glow-a: rgba(10, 91, 184, 0.16);
    --su-page-glow-b: rgba(61, 140, 214, 0.12);
    --su-hero-bg: linear-gradient(180deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.78));
    --su-hero-decoration: rgba(61, 140, 214, 0.18);
    --su-primary-faint: rgba(10, 91, 184, 0.07);
    --su-primary-soft-border: rgba(10, 91, 184, 0.16);
    --su-placeholder: #626b76;
    --su-input-hover-border: rgba(10, 91, 184, 0.25);
    --su-input-focus-border: rgba(10, 91, 184, 0.5);
    --su-tab-rail: #d7e1ec;
    --su-tab-bg: #f0f4f8;
    --su-tab-text: #3f5368;
    --su-tab-hover-bg: #e5edf6;
    --su-danger-bg: #fff3f2;
    --su-danger-border: rgba(180, 35, 24, 0.18);
    --su-success-bg: #effaf4;
    --su-success-border: rgba(21, 115, 71, 0.18);
    --su-drop-bg: linear-gradient(180deg, rgba(238, 245, 255, 0.88), rgba(241, 244, 248, 0.72));
    --su-drop-border: rgba(10, 91, 184, 0.45);
    --su-file-bg: rgba(255, 255, 255, 0.82);
    --su-autocomplete-hover: rgba(10, 91, 184, 0.1);
    --su-autocomplete-selected: #e3f2fd;
    --su-autocomplete-separator: rgba(11, 27, 43, 0.1);
    --su-radius-xl: 26px;
    --su-radius-lg: 20px;
    --su-radius-md: 14px;
    --su-action-icon-size: 80px;
    --su-action-icon-half: 40px;
    --su-action-clearance: 96px;
    --su-shadow-sm: 0 12px 32px rgba(11, 27, 43, 0.09);
    --su-shadow-lg: 0 24px 64px rgba(11, 27, 43, 0.14);
    --su-shadow-control: 0 8px 18px rgba(11, 27, 43, 0.08);
    --su-shadow-icon: 0 5px 12px rgba(0, 0, 0, 0.22);
    --su-focus: 0 0 0 4px rgba(10, 91, 184, 0.18);
    --su-kicker: "SERVIÇOS URBANOS";

    box-sizing: border-box;
    color-scheme: light;
    width: 100%;
    min-height: calc(100vh - 91px);
    margin: 0;
    padding: clamp(28px, 4vw, 52px) clamp(16px, 4vw, 44px) 64px;
    overflow: hidden;
    position: relative;
    isolation: isolate;
    color: var(--su-text);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
    background:
        radial-gradient(900px 440px at 0% -8%, var(--su-page-glow-a), transparent 64%),
        radial-gradient(760px 380px at 100% 14%, var(--su-page-glow-b), transparent 62%),
        var(--su-bg);
}

@media (prefers-color-scheme: dark) {
    .su-emissao {
        --su-bg: #0b0f14;
        --su-surface: #111820;
        --su-surface-soft: #18222e;
        --su-surface-blue: #12283f;
        --su-text: #edf3fa;
        --su-muted: #a7b2bf;
        --su-primary: #0e65b7;
        --su-primary-dark: #084a88;
        --su-primary-light: #6bb5ff;
        --su-accent: #6bb5ff;
        --su-border: rgba(255, 255, 255, 0.11);
        --su-border-strong: rgba(107, 181, 255, 0.4);
        --su-danger: #ff938b;
        --su-success: #70d6a1;
        --su-page-glow-a: rgba(14, 101, 183, 0.28);
        --su-page-glow-b: rgba(107, 181, 255, 0.12);
        --su-hero-bg: linear-gradient(180deg, rgba(17, 24, 32, 0.97), rgba(17, 24, 32, 0.86));
        --su-hero-decoration: rgba(107, 181, 255, 0.14);
        --su-primary-faint: rgba(107, 181, 255, 0.1);
        --su-primary-soft-border: rgba(107, 181, 255, 0.24);
        --su-placeholder: #7f8c9b;
        --su-input-hover-border: rgba(107, 181, 255, 0.42);
        --su-input-focus-border: rgba(107, 181, 255, 0.68);
        --su-tab-rail: #2a3949;
        --su-tab-bg: #18222e;
        --su-tab-text: #c4d0dc;
        --su-tab-hover-bg: #203044;
        --su-danger-bg: #32191a;
        --su-danger-border: rgba(255, 147, 139, 0.28);
        --su-success-bg: #12291f;
        --su-success-border: rgba(112, 214, 161, 0.26);
        --su-drop-bg: linear-gradient(180deg, #162332, #111b26);
        --su-drop-border: rgba(107, 181, 255, 0.48);
        --su-file-bg: rgba(8, 14, 21, 0.72);
        --su-autocomplete-hover: rgba(107, 181, 255, 0.12);
        --su-autocomplete-selected: #173654;
        --su-autocomplete-separator: rgba(255, 255, 255, 0.1);
        --su-shadow-sm: 0 14px 50px rgba(0, 0, 0, 0.42);
        --su-shadow-lg: 0 24px 80px rgba(0, 0, 0, 0.55);
        --su-shadow-control: 0 8px 22px rgba(0, 0, 0, 0.34);
        --su-shadow-icon: 0 6px 16px rgba(0, 0, 0, 0.48);
        --su-focus: 0 0 0 4px rgba(107, 181, 255, 0.2);

        color-scheme: dark;
    }
}

/* Compatibilidade restrita aos tokens históricos da Certidão de Endereço Cidadão. */
.su-emissao--cec {
    --bg: var(--su-bg);
    --surface: var(--su-surface);
    --surface2: var(--su-surface-soft);
    --text: var(--su-text);
    --muted: var(--su-muted);
    --primary: var(--su-accent);
    --primary2: var(--su-primary-dark);
    --border: var(--su-border);
    --shadow1: var(--su-shadow-sm);
    --shadow2: var(--su-shadow-lg);
    --focus: var(--su-focus);
}

/* Estados do fluxo renderizados fora da raiz da página (modais e alertas). */
@media (prefers-color-scheme: dark) {
    body:has(.su-emissao) {
        color-scheme: dark;
    }

    body:has(.su-emissao) :is(.modal, .modal-avaliacao, .fundo_aviso_fjp) {
        background-color: rgba(0, 0, 0, 0.76);
    }

    body:has(.su-emissao) :is(
        .modal-content,
        .modal-content-avaliacao,
        .avaliacaoInfoContent,
        .swal2-popup,
        .aviso_fjp_cabeçalho,
        .aviso_fjp_bottom
    ) {
        color: #edf3fa;
        border-color: rgba(255, 255, 255, 0.11);
        background-color: #111820;
    }

    body:has(.su-emissao) :is(.modal-body, .modal-body p, .swal2-title, .swal2-html-container) {
        color: #edf3fa;
    }

    body:has(.su-emissao) :is(.modal-footer, .swal2-footer) {
        border-color: rgba(255, 255, 255, 0.11);
    }

    body:has(.su-emissao) :is(.close-modal, .close-format-modal, .close-modal-avaliacao) {
        color: #a7b2bf;
    }

    body:has(.su-emissao) #form-avaliacao {
        color: #edf3fa;
        border-color: rgba(255, 255, 255, 0.11);
        background-color: #111820 !important;
    }

    body:has(.su-emissao) #form-avaliacao :is(
        .nota-avaliacao,
        .guia-label,
        .label-centralizado,
        .turnstile-loading
    ) {
        color: #c4d0dc !important;
    }

    body:has(.su-emissao) #comentarioNota {
        color: #edf3fa;
        border-color: rgba(107, 181, 255, 0.4);
        background-color: #18222e;
    }

    body:has(.su-emissao) #comentarioNota::placeholder {
        color: #7f8c9b;
    }

    body:has(.su-emissao) .aviso_fjp_cabeçalho h5,
    body:has(.su-emissao) .aviso_fjp_bottom p {
        color: #ff938b;
    }

    body:has(.su-emissao) .aviso_fjp_texto {
        color: #ffffff;
        background-color: #7c2529;
    }

    body:has(.su-emissao) .aviso_fjp_texto a {
        color: #ffffff;
        text-decoration: underline;
    }

    body:has(.su-emissao) .aviso_fjp_bottom a {
        color: #6bb5ff;
        text-decoration: underline;
    }
}

body:has(.su-emissao) .modal-content-avaliacao {
    width: min(600px, calc(100vw - 24px));
    min-width: 0 !important;
    box-sizing: border-box;
}

body:has(.su-emissao) #form-avaliacao,
body:has(.su-emissao) #comentarioNota {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

body:has(.su-emissao) #form-avaliacao .form-group {
    width: 100%;
    display: block;
    flex-wrap: wrap !important;
}

body:has(.su-emissao) #form-avaliacao .rating-options {
    width: 100%;
}

@media (max-width: 680px) {
    body:has(.su-emissao) #form-avaliacao {
        padding: 24px 14px !important;
    }

    body:has(.su-emissao) .rating-options {
        display: grid;
        grid-template-columns: repeat(6, minmax(0, 1fr));
        gap: 4px;
    }

    body:has(.su-emissao) .rating-box {
        width: 100%;
        min-width: 0;
        height: 36px;
    }

    body:has(.su-emissao) .aviso_fjp {
        width: calc(100vw - 24px);
    }

    body:has(.su-emissao) .aviso_fjp_cabeçalho {
        padding: 12px 36px;
    }

    body:has(.su-emissao) .aviso_fjp_texto {
        padding: 20px 16px;
    }
}

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

.su-emissao > * {
    position: relative;
    z-index: 1;
}

.su-emissao--ibe { --su-kicker: "INFORMAÇÕES BÁSICAS"; }
.su-emissao--ibp { --su-kicker: "PARCELAMENTO DO SOLO"; }
.su-emissao--eoi { --su-kicker: "ENDEREÇAMENTO URBANO"; }
.su-emissao--ceep { --su-kicker: "ESPAÇO PÚBLICO"; }
.su-emissao--cec { --su-kicker: "ENDEREÇO CIDADÃO"; }
.su-emissao--cpm { --su-kicker: "LIMITES MUNICIPAIS"; }
.su-emissao--czu { --su-kicker: "REGULARIZAÇÃO URBANA"; }
.su-emissao--croqui { --su-kicker: "CROQUI E LOCALIZAÇÃO"; }
.su-emissao--plantas { --su-kicker: "PLANTAS APROVADAS"; }

/* Hero / apresentação ----------------------------------------------------- */

.su-emissao .DivTextoAviso,
.su-emissao .cec-hero {
    width: min(980px, 100%);
    max-width: 980px;
    margin: 0 auto clamp(18px, 2.5vw, 24px);
    padding: clamp(18px, 2.4vw, 24px) clamp(18px, 3vw, 28px);
    overflow: hidden;
    position: relative;
    text-align: center;
    color: var(--su-text);
    border: 1px solid var(--su-border);
    border-radius: var(--su-radius-xl);
    background: var(--su-hero-bg);
    box-shadow: var(--su-shadow-sm);
    backdrop-filter: blur(10px);
}

.su-emissao .DivTextoAviso::after,
.su-emissao .cec-hero::after {
    content: "";
    width: 180px;
    height: 180px;
    position: absolute;
    right: -86px;
    bottom: -112px;
    pointer-events: none;
    border-radius: 50%;
    background: radial-gradient(circle, var(--su-hero-decoration), transparent 70%);
}

.su-emissao .DivTextoAviso::before,
.su-emissao .cec-hero::before {
    content: var(--su-kicker);
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    padding: 5px 9px;
    color: var(--su-accent);
    border: 1px solid var(--su-primary-soft-border);
    border-radius: 999px;
    background: var(--su-primary-faint);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.1em;
    line-height: 1;
}

.su-emissao .DivTextoAviso h4,
.su-emissao .cec-title {
    max-width: 860px;
    margin: 0 auto 8px;
    color: var(--su-accent);
    font-size: clamp(19px, 1.75vw, 23px);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.18;
    text-transform: uppercase;
}

.su-emissao .DivTextoAviso p,
.su-emissao .cec-lead {
    max-width: 850px;
    margin: 0 auto;
    color: var(--su-muted);
    font-size: clamp(14px, 1.15vw, 15.5px);
    line-height: 1.52;
    text-align: center;
}

.su-emissao .DivTextoAviso .atencao {
    color: var(--su-text);
    font-weight: 750;
}

.su-emissao .DivTextoAviso > a,
.su-emissao .cec-cta {
    min-height: 40px;
    margin-top: 14px;
    padding: 9px 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: var(--su-on-primary);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 14px;
    background: linear-gradient(180deg, var(--su-primary), var(--su-primary-dark));
    box-shadow: 0 14px 34px rgba(10, 91, 184, 0.22);
    font-size: 13px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.su-emissao .DivTextoAviso > a::after,
.su-emissao .cec-cta::after {
    content: "↗";
    font-size: 15px;
}

.su-emissao .cec-cta .dot {
    display: none;
}

.su-emissao .DivTextoAviso > a:hover,
.su-emissao .cec-cta:hover {
    opacity: 1;
    filter: brightness(1.04);
    transform: translateY(-2px);
    box-shadow: 0 18px 42px rgba(10, 91, 184, 0.28);
}

/* Card principal --------------------------------------------------------- */

.su-emissao .containerInfoContent,
.su-emissao .cec-shell,
.su-emissao .cec-card {
    width: min(980px, 100%);
    max-width: 980px;
    margin-right: auto;
    margin-left: auto;
}

.su-emissao .containerInfoContent,
.su-emissao .cec-card {
    min-height: 0;
    margin-block-end: var(--su-action-clearance);
    overflow: visible;
    position: relative;
    color: var(--su-text);
    border: 1px solid var(--su-border);
    border-radius: var(--su-radius-xl);
    background: var(--su-surface);
    box-shadow: var(--su-shadow-lg);
    text-align: initial;
}

.su-emissao .cec-shell {
    display: grid;
    gap: 0;
}

.su-emissao .cec-hero {
    width: 100%;
}

.su-emissao .cec-card-head,
.su-emissao .tabs,
.su-emissao .form_section_header {
    margin: 0;
    color: var(--su-on-primary);
    border: 0;
    background: linear-gradient(135deg, var(--su-primary), var(--su-primary-dark));
}

.su-emissao .cec-card-head {
    min-height: 64px;
    padding: 14px clamp(18px, 4vw, 30px);
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    border-radius: calc(var(--su-radius-xl) - 1px) calc(var(--su-radius-xl) - 1px) 0 0;
}

.su-emissao .cec-card-head .badge {
    width: 38px;
    height: 38px;
    padding: 8px;
    display: grid;
    place-items: center;
    color: transparent;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 13px;
    background: rgba(255, 255, 255, 0.14) url("../img/i-5.2f31df4ec125.webp") center / 22px no-repeat;
}

.su-emissao .cec-card-head h3 {
    margin: 0;
    color: var(--su-on-primary);
    font-size: clamp(15px, 1.5vw, 17px);
    font-weight: 750;
    letter-spacing: 0;
}

.su-emissao .tabs {
    min-height: 58px;
    padding: 0;
    display: flex;
    align-items: stretch;
    justify-content: stretch;
    gap: 1px;
    overflow: hidden;
    border-radius: calc(var(--su-radius-xl) - 1px) calc(var(--su-radius-xl) - 1px) 0 0;
}

.su-emissao .tab {
    min-width: 0;
    min-height: 58px;
    padding: 13px 18px;
    display: flex;
    flex: 1 1 0;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.8);
    border: 0;
    border-radius: 0;
    background: rgba(0, 0, 0, 0.16);
    font-size: 14px;
    font-weight: 720;
    line-height: 1.25;
    text-align: center;
    cursor: default;
    transition: background-color 160ms ease, color 160ms ease;
}

.su-emissao .tab.active {
    color: var(--su-on-primary);
    background: transparent;
    box-shadow: none;
}

.su-emissao .tab:not(.active):hover {
    color: var(--su-on-primary);
    background: rgba(255, 255, 255, 0.02);
}

/* Apenas Edificações possui abas realmente selecionáveis. */
.su-emissao--ibe .tabs {
    min-height: 58px;
    padding: 0;
    gap: 1px;
    border-bottom: 1px solid var(--su-border);
    background: var(--su-tab-rail);
}

.su-emissao--ibe .tab {
    min-height: 58px;
    color: var(--su-tab-text);
    border: 0;
    border-radius: 0;
    background: var(--su-tab-bg);
    box-shadow: none;
    cursor: pointer;
}

.su-emissao--ibe .tab.active {
    color: var(--su-on-primary);
    border: 0;
    background: linear-gradient(135deg, var(--su-primary), var(--su-primary-dark));
    box-shadow: none;
}

.su-emissao--ibe .tab:not(.active):hover {
    color: var(--su-accent);
    background: var(--su-tab-hover-bg);
}

/* Formulários e campos --------------------------------------------------- */

.su-emissao form,
.su-emissao #form-cec {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: clamp(24px, 4vw, 38px) clamp(20px, 6vw, 64px) clamp(28px, 4vw, 42px);
    display: flex;
    flex-direction: column;
    align-items: stretch;
    position: relative;
    color: var(--su-text);
    border: 0;
    border-radius: 0;
    background: var(--su-surface);
}

.su-emissao .containerInfoContent > form,
.su-emissao .cec-card-body,
.su-emissao #form-cec {
    border-radius: 0 0 calc(var(--su-radius-xl) - 1px) calc(var(--su-radius-xl) - 1px);
}

.su-emissao form h4 {
    margin: 0 0 14px;
    color: var(--su-accent);
    font-size: 16px;
    font-weight: 750;
    line-height: 1.3;
    text-align: center;
}

.su-emissao .form-group,
.su-emissao .form-group2 {
    width: 100%;
    min-width: 0;
    margin: 0 0 18px;
    padding: 0;
    align-items: stretch;
    text-align: left;
}

.su-emissao .form-group2 {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.su-emissao .form-group2 > div {
    width: 100%;
    min-width: 0;
}

.su-emissao label,
.su-emissao .form-group label,
.su-emissao .form-group2 label,
.su-emissao #form_section_2 label {
    margin: 0 0 7px;
    padding: 0;
    display: inline-block;
    color: var(--su-accent);
    font-size: 14px;
    font-weight: 720;
    letter-spacing: 0.01em;
    line-height: 1.35;
    text-align: left;
}

.su-emissao :where(
    input[type="text"],
    input[type="number"],
    input[type="email"],
    input[type="tel"],
    input:not([type]),
    select,
    textarea
),
.su-emissao #form_section_2 input,
.su-emissao #inscricaoImob {
    width: 100% !important;
    max-width: 100%;
    min-width: 0;
    min-height: 48px;
    margin: 0;
    padding: 11px 13px;
    color: var(--su-text);
    border: 1px solid var(--su-border);
    border-radius: var(--su-radius-md) !important;
    outline: none;
    background-color: var(--su-surface-soft);
    font: inherit;
    font-size: 15px;
    line-height: 1.35;
    transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease, transform 160ms ease;
}

.su-emissao select {
    padding-right: 40px;
    cursor: pointer;
}

.su-emissao select option {
    color: var(--su-text);
    background: var(--su-surface);
}

.su-emissao :where(input, select, textarea)::placeholder {
    color: var(--su-placeholder);
    opacity: 1;
}

.su-emissao--cec input::placeholder,
.su-emissao--cec textarea::placeholder {
    color: var(--su-placeholder);
    opacity: 1;
}

.su-emissao :where(input, select, textarea):hover {
    border-color: var(--su-input-hover-border);
}

.su-emissao :where(input, select, textarea):focus {
    color: var(--su-text);
    border-color: var(--su-input-focus-border);
    outline: none;
    background-color: var(--su-surface);
    box-shadow: var(--su-focus);
    transform: translateY(-1px);
}

.su-emissao :where(input, select, textarea):disabled {
    cursor: not-allowed;
    opacity: 0.7;
}

.su-emissao small,
.su-emissao .field-help,
.su-emissao #unidade-ajuda {
    margin-top: 6px;
    color: var(--su-muted);
    font-size: 13px;
    line-height: 1.4;
}

.su-emissao .field-error,
.su-emissao .form-errors,
.su-emissao .aviso_kml,
.su-emissao .error-message {
    color: var(--su-danger);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
}

.su-emissao .form-errors,
.su-emissao #message-container > .error-message,
.su-emissao #message-container > .success-message {
    width: 100%;
    margin: 0 0 18px;
    padding: 12px 14px;
    border-radius: var(--su-radius-md);
}

.su-emissao #message-container > .error-message {
    color: var(--su-danger);
    border: 1px solid var(--su-danger-border);
    background: var(--su-danger-bg);
}

.su-emissao #message-container > .success-message {
    color: var(--su-success);
    border: 1px solid var(--su-success-border);
    background: var(--su-success-bg);
}

.su-emissao .cf-turnstile {
    width: fit-content;
    max-width: 100%;
    margin: 12px auto 2px;
    padding: 0;
    display: flex;
    justify-content: center;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

/* Ações e vetores -------------------------------------------------------- */

.su-emissao :is(.submit-button, .form_btn, .cec-submit) {
    width: min(420px, 100%);
    min-height: 64px;
    margin: 24px auto 0;
    padding: 8px 20px 8px 9px;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 13px;
    position: relative !important;
    inset: auto !important;
    color: var(--su-on-primary);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 19px;
    outline: none;
    background: linear-gradient(135deg, var(--su-primary), var(--su-primary-dark));
    box-shadow: 0 18px 46px rgba(10, 91, 184, 0.24);
    cursor: pointer;
    opacity: 1;
    transform: none;
    transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease, opacity 160ms ease;
}

.su-emissao :is(.submit-button, .form_btn, .cec-submit):hover:not(:disabled):not(.blocked) {
    opacity: 1;
    filter: brightness(1.04);
    transform: translateY(-2px);
    box-shadow: 0 22px 54px rgba(10, 91, 184, 0.3);
}

.su-emissao :is(.submit-button, .form_btn, .cec-submit):active:not(:disabled):not(.blocked) {
    transform: translateY(0);
}

.su-emissao :is(.submit-button, .form_btn, .cec-submit):focus-visible,
.su-emissao #submitFrom:focus-visible,
.su-emissao .tab:focus-visible,
.su-emissao a:focus-visible {
    outline: none;
    box-shadow: var(--su-focus), 0 18px 46px rgba(10, 91, 184, 0.24);
}

.su-emissao :is(.submit-button, .form_btn, .cec-submit) > img,
.su-emissao :is(.submit-button, .form_btn) .divIconEnviar,
.su-emissao .cec-submit .left {
    width: 48px;
    height: 48px;
    margin: 0;
    padding: 10px;
    flex: 0 0 48px;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 15px;
    background: rgba(255, 255, 255, 0.14);
    box-shadow: none;
}

.su-emissao :is(.submit-button, .form_btn) .divIconEnviar {
    padding: 9px;
}

.su-emissao :is(.submit-button, .form_btn) .divIconEnviar img,
.su-emissao .cec-submit .emissao-action-icon {
    width: 28px;
    height: 28px;
    margin: 0;
    padding: 0;
    display: block;
    object-fit: contain;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.su-emissao :is(.submit-button, .form_btn, .cec-submit) > span,
.su-emissao .cec-submit-text,
.su-emissao .cec-submit-loading {
    color: var(--su-on-primary);
    font-size: 14px;
    font-weight: 780;
    letter-spacing: 0.035em;
    line-height: 1.25;
    text-transform: uppercase;
}

.su-emissao :is(.submit-button, .form_btn, .cec-submit).blocked,
.su-emissao :is(.submit-button, .form_btn, .cec-submit):disabled,
.su-emissao :is(.submit-button, .form_btn, .cec-submit)[aria-busy="true"] {
    pointer-events: none;
    cursor: not-allowed;
    opacity: 0.48;
    filter: saturate(0.75);
}

.su-emissao .spinner {
    width: 20px;
    height: 20px;
    margin: 0;
    flex: 0 0 20px;
    border: 2px solid rgba(255, 255, 255, 0.38);
    border-top-color: var(--su-on-primary);
}

.su-emissao .submit-button .spinner {
    display: none;
}

.su-emissao #placeholder_bt_enviar {
    display: none !important;
    height: 0;
}

/* Botão clássico: o centro do ícone coincide com a borda inferior do card. */
.su-emissao button.submit-button,
.su-emissao button.cec-submit,
.su-emissao--plantas button#submitFrom.submit-button {
    width: max-content;
    max-width: calc(100% - 24px);
    height: auto;
    min-height: 0;
    margin: 0 auto;
    padding: 0 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 0;
    position: absolute !important;
    z-index: 4;
    top: calc(100% - var(--su-action-icon-half)) !important;
    right: 0 !important;
    bottom: auto !important;
    left: 0 !important;
    color: var(--su-primary-light);
    border: 0;
    border-radius: 0;
    outline: none;
    background: transparent;
    box-shadow: none;
    cursor: pointer;
    filter: none;
    transform: none;
    transition: opacity 160ms ease;
}

.su-emissao button.submit-button .divIconEnviar,
.su-emissao button.cec-submit .left {
    width: var(--su-action-icon-size);
    height: var(--su-action-icon-size);
    margin: 0 0 10px;
    padding: 0;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 0;
    border-radius: 50%;
    background: var(--su-primary);
    box-shadow: var(--su-shadow-icon);
}

.su-emissao button.submit-button > img {
    width: var(--su-action-icon-size);
    height: var(--su-action-icon-size);
    margin: 0 0 10px;
    padding: 5px;
    flex: 0 0 80px;
    display: block;
    object-fit: contain;
    border: 0;
    border-radius: 50%;
    background: var(--su-primary);
    box-shadow: var(--su-shadow-icon);
}

.su-emissao button.submit-button .divIconEnviar img,
.su-emissao button.cec-submit .emissao-action-icon {
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 5px;
    display: block;
    object-fit: contain;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.su-emissao button.submit-button > span,
.su-emissao button.cec-submit > span {
    max-width: 100%;
    color: var(--su-primary-light);
    font-size: 20px;
    font-weight: 700;
    letter-spacing: normal;
    line-height: 1.25;
    overflow-wrap: anywhere;
    text-align: center;
    text-transform: uppercase;
}

.su-emissao button.submit-button:hover:not(:disabled):not(.blocked),
.su-emissao button.cec-submit:hover:not(:disabled):not(.blocked),
.su-emissao--plantas button#submitFrom.submit-button:hover:not(:disabled) {
    opacity: 0.75;
    filter: none;
    transform: none;
    box-shadow: none;
}

.su-emissao button.submit-button:active:not(:disabled):not(.blocked),
.su-emissao button.cec-submit:active:not(:disabled):not(.blocked),
.su-emissao--plantas button#submitFrom.submit-button:active:not(:disabled) {
    opacity: 1;
    transform: none;
}

.su-emissao button.submit-button:focus-visible,
.su-emissao button.cec-submit:focus-visible,
.su-emissao--plantas button#submitFrom.submit-button:focus-visible {
    outline: 3px solid rgba(10, 91, 184, 0.3);
    outline-offset: 5px;
    box-shadow: none;
}

.su-emissao button.cec-submit .cec-spinner {
    border-color: var(--su-border-strong);
    border-top-color: var(--su-accent);
}

/* Uploads --------------------------------------------------------------- */

.su-emissao .dropzone,
.su-emissao #dropzone {
    width: 100%;
    min-height: 112px;
    padding: 22px;
    display: grid;
    place-items: center;
    align-content: center;
    gap: 9px;
    position: relative;
    color: var(--su-muted);
    border: 1.5px dashed var(--su-drop-border);
    border-radius: var(--su-radius-lg);
    background: var(--su-drop-bg);
    cursor: pointer;
    transition: border-color 160ms ease, background-color 160ms ease, transform 160ms ease, box-shadow 160ms ease;
}

.su-emissao .dropzone:hover,
.su-emissao .dropzone.hover,
.su-emissao #dropzone:hover {
    color: var(--su-text);
    border-color: var(--su-accent);
    background: var(--su-surface-blue);
    box-shadow: var(--su-focus);
    transform: translateY(-1px);
}

.su-emissao .dropzone p,
.su-emissao .dropzone .informative_text {
    max-width: 620px;
    margin: 0;
    color: inherit;
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.su-emissao .fileName {
    width: 100%;
    margin: 0;
    padding: 10px 42px 10px 12px;
    color: var(--su-accent);
    border-radius: 12px;
    background: var(--su-file-bg);
    font-size: 14px;
    text-align: left;
}

.su-emissao .fileName:empty {
    display: none;
}

.su-emissao .fileName .bi {
    right: 12px;
    top: 50%;
    color: var(--su-danger);
    transform: translateY(-50%);
}

/* Plantas / busca / resultados ------------------------------------------ */

.su-emissao--plantas.container {
    max-width: none !important;
    border-radius: 0;
}

.su-emissao--plantas > .informacaoBasicaContent {
    width: min(980px, 100%);
    min-height: 0;
    margin: 0 auto;
    padding: 0;
    display: block;
    background: transparent;
}

.su-emissao--plantas .containerInfoContent {
    width: 100%;
}

.su-emissao--plantas #consultaForm {
    min-height: 0;
}

.su-emissao--plantas .form-inline,
.su-emissao--plantas #consultaForm .small-width {
    width: 100%;
    max-width: none;
    margin: 0;
}

.su-emissao--plantas #consultaForm .small-width {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
    justify-content: flex-start;
}

.su-emissao--plantas #consultaForm input[type="text"],
.su-emissao--plantas #tipo-consulta {
    width: 100% !important;
    max-width: 100%;
    min-height: 48px;
    padding: 11px 40px 11px 13px;
    color: var(--su-text);
    border: 1px solid var(--su-border);
    border-radius: var(--su-radius-md) !important;
    background-color: var(--su-surface-soft);
    font: inherit;
    font-size: 15px;
}

.su-emissao--plantas #consultaForm input[type="text"] {
    padding-right: 13px;
}

.su-emissao--plantas #tipo-consulta option {
    color: var(--su-text);
    background: var(--su-surface);
}

.su-emissao--plantas .form-buttons {
    min-height: 0;
    margin: 0;
}

.su-emissao--plantas .info {
    margin: 18px 0 0;
    color: var(--su-muted);
    font-size: 13px;
    line-height: 1.45;
}

.su-emissao--plantas #result {
    width: 100%;
    margin: 20px auto 0;
}

.su-emissao--plantas .plant-container {
    margin: 12px 0;
    padding: 18px;
    overflow: hidden;
    color: var(--su-text);
    border: 1px solid var(--su-border);
    border-radius: var(--su-radius-lg);
    background: var(--su-surface);
    box-shadow: var(--su-shadow-sm);
}

.su-emissao--plantas .plant-title {
    margin: 0 0 10px;
    color: var(--su-accent);
    font-size: 15px;
    font-weight: 750;
}

.su-emissao--plantas .plant-dropdown {
    margin: 0;
    gap: 8px;
}

.su-emissao--plantas .plant-dropdown a {
    margin: 0;
    padding: 11px 13px;
    color: var(--su-accent);
    border: 1px solid var(--su-border);
    border-radius: 12px;
    background: var(--su-surface-soft);
    text-decoration: none;
}

.su-emissao--plantas .plant-dropdown a:hover {
    color: var(--su-on-primary);
    border-color: var(--su-primary);
    background: var(--su-primary);
}

.su-emissao--plantas .autocomplete-dropdown {
    color: var(--su-text);
    border: 1px solid var(--su-border);
    border-radius: 14px;
    background: var(--su-surface);
    box-shadow: var(--su-shadow-lg);
}

.su-emissao--plantas .autocomplete-item {
    color: var(--su-text);
    border-bottom-color: var(--su-autocomplete-separator);
}

.su-emissao--plantas .autocomplete-item:hover {
    background: var(--su-autocomplete-hover);
}

.su-emissao--plantas .autocomplete-item.selected {
    background: var(--su-autocomplete-selected);
}

.su-emissao--plantas .autocomplete-loading {
    border-color: var(--su-border-strong);
    border-top-color: var(--su-accent);
}

/* CEC / autocomplete ----------------------------------------------------- */

.su-emissao--cec .cec-card-body {
    background: var(--su-surface);
}

.su-emissao--cec .cec-ac-panel {
    color: var(--su-text);
    border-color: var(--su-border);
    background: var(--su-surface);
}

.su-emissao--cec .cec-ac-item,
.su-emissao--cec .cec-ac-empty {
    color: var(--su-text);
}

.su-emissao--cec .cec-ac-item:hover,
.su-emissao--cec .cec-ac-item[aria-selected="true"] {
    background: var(--su-autocomplete-hover);
}

.su-emissao--cec .cec-submit {
    display: flex;
}

.su-emissao--cec .cec-submit-loading {
    align-items: center;
    justify-content: center;
    gap: 9px;
}

/* Wizard CZU ------------------------------------------------------------ */

.su-emissao--czu .containerInfoContent {
    min-height: 500px;
    padding-top: 24px;
    overflow: visible;
}

.su-emissao--czu #step_indicator {
    margin: 0;
    padding: 0 clamp(24px, 6vw, 68px) 18px;
}

.su-emissao--czu .steps {
    width: 42px;
    height: 42px;
    padding: 0;
    display: grid;
    place-items: center;
    color: var(--su-muted);
    border: 1px solid var(--su-border-strong);
    background: var(--su-surface);
    box-shadow: var(--su-shadow-control);
}

.su-emissao--czu .step_active {
    color: var(--su-on-primary);
    border-color: var(--su-primary);
    background: var(--su-primary);
    box-shadow: 0 8px 20px rgba(10, 91, 184, 0.22);
}

.su-emissao--czu #step_line {
    margin: 0 clamp(44px, 8vw, 88px);
    bottom: 40px;
    border-color: var(--su-border-strong);
}

.su-emissao--czu #form-czu {
    min-height: 0;
    padding: 0;
    overflow: visible;
    background: transparent;
}

.su-emissao--czu .form_section {
    width: 100%;
}

.su-emissao--czu .form_section_header {
    min-height: 58px;
    padding: 16px 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    font-size: 15px;
    font-weight: 750;
}

.su-emissao--czu .form_section_header .seta_prev {
    width: 44px;
    height: 44px;
    left: 8px;
    bottom: 7px;
    display: grid;
    place-items: center;
    border-radius: 13px;
    font-size: 28px;
    transition: background-color 160ms ease;
}

.su-emissao--czu .form_section_header .seta_prev:hover {
    background: rgba(255, 255, 255, 0.14);
}

.su-emissao--czu .form_section_body {
    width: 100%;
    min-height: 0;
    padding: clamp(24px, 4vw, 38px) clamp(20px, 6vw, 64px) clamp(28px, 4vw, 42px);
    align-items: stretch;
    border-radius: 0 0 var(--su-radius-xl) var(--su-radius-xl);
    background: var(--su-surface);
}

.su-emissao--czu #form_section_2 {
    align-items: stretch;
}

.su-emissao--czu #form_section_2 input {
    margin-bottom: 16px;
}

.su-emissao--czu #form_section_3 {
    padding: clamp(22px, 4vw, 34px) clamp(18px, 4vw, 42px) clamp(28px, 4vw, 42px);
}

.su-emissao--czu #form_section_3 p {
    margin: 0 0 20px;
    padding: clamp(18px, 3vw, 26px);
    color: var(--su-muted);
    border: 1px solid var(--su-border);
    border-radius: var(--su-radius-lg);
    background: var(--su-surface-soft);
    font-size: 14px;
    line-height: 1.58;
    text-align: left;
}

.su-emissao--czu #declaracao {
    padding: 14px;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    border: 1px solid var(--su-border);
    border-radius: var(--su-radius-md);
    background: var(--su-surface-blue);
}

.su-emissao--czu #declaracao #ciente {
    width: 18px;
    height: 18px;
    min-height: 18px;
    margin: 2px 0 0;
    flex: 0 0 18px;
    accent-color: var(--su-primary);
}

.su-emissao--czu #declaracao label {
    margin: 0;
    color: var(--su-text);
    line-height: 1.45;
}

/* Responsividade -------------------------------------------------------- */

@media (max-width: 760px) {
    .su-emissao {
        min-height: auto;
        padding: 22px 14px 44px;
    }

    .su-emissao .DivTextoAviso,
    .su-emissao .cec-hero {
        padding: 18px 16px;
        border-radius: 21px;
    }

    .su-emissao .containerInfoContent,
    .su-emissao .cec-card {
        border-radius: 21px;
    }

    .su-emissao .tabs {
        min-height: 0;
        flex-wrap: wrap;
    }

    .su-emissao .tab {
        min-width: min(240px, 100%);
        min-height: 52px;
        padding: 11px 13px;
    }

    .su-emissao form,
    .su-emissao #form-cec {
        padding: 24px 18px 28px;
    }

    .su-emissao .form-group2 {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }

    .su-emissao :is(.submit-button, .form_btn, .cec-submit) {
        min-height: 60px;
        margin-top: 20px;
    }

    .su-emissao--czu .containerInfoContent {
        padding-top: 18px;
    }

    .su-emissao--czu .form_section_header {
        min-height: 54px;
        padding: 14px 46px;
    }

    .su-emissao--czu .form_section_body {
        padding: 24px 18px 28px;
    }
}

@media (max-width: 420px) {
    .su-emissao {
        padding-right: 10px;
        padding-left: 10px;
    }

    .su-emissao .DivTextoAviso,
    .su-emissao .cec-hero {
        padding: 17px 14px;
    }

    .su-emissao .DivTextoAviso::before,
    .su-emissao .cec-hero::before {
        font-size: 10px;
    }

    .su-emissao .DivTextoAviso h4,
    .su-emissao .cec-title {
        font-size: 19px;
    }

    .su-emissao .DivTextoAviso p,
    .su-emissao .cec-lead {
        font-size: 14px;
        line-height: 1.5;
    }

    .su-emissao form,
    .su-emissao #form-cec {
        padding-right: 14px;
        padding-left: 14px;
    }

    .su-emissao .cf-turnstile {
        width: 100%;
        padding-right: 0;
        padding-left: 0;
        border: 0;
        background: transparent;
    }

    .su-emissao .cf-turnstile > iframe {
        max-width: 100%;
    }

    .su-emissao :is(.submit-button, .form_btn, .cec-submit) {
        width: 100%;
        padding-right: 13px;
        gap: 10px;
    }

    .su-emissao :is(.submit-button, .form_btn, .cec-submit) > span,
    .su-emissao .cec-submit-text,
    .su-emissao .cec-submit-loading {
        font-size: 12px;
    }

    .su-emissao--czu #step_indicator {
        padding-right: 18px;
        padding-left: 18px;
    }

    .su-emissao--czu #step_line {
        margin-right: 36px;
        margin-left: 36px;
    }
}

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