/* ==========================================================================
   NEXUS EDGE — SITE PÚBLICO FE V3
   Landing page, autenticação e adaptação ao contêiner autenticado.
   ========================================================================== */

body:has(.fe-site-page),
body:has(.fe-site-auth-page) {
    background: var(--fe-page-bg, #edf1f5) !important;
    color: var(--fe-text, #263244);
}

body:has(.fe-site-page)>main,
body:has(.fe-site-auth-page)>main,
body:has(.fe-site-page) .main-content,
body:has(.fe-site-auth-page) .main-content,
body:has(.fe-site-page) .content-wrapper,
body:has(.fe-site-auth-page) .content-wrapper {
    background: var(--fe-page-bg, #edf1f5) !important;
}

body:has(.fe-site-page) .navbar,
body:has(.fe-site-auth-page) .navbar,
body:has(.fe-site-page) .site-header,
body:has(.fe-site-auth-page) .site-header,
body:has(.fe-site-page) header.public-header,
body:has(.fe-site-auth-page) header.public-header {
    border-bottom-color: var(--fe-border-soft,
            rgba(103, 119, 142, .14)) !important;
    background: color-mix(in srgb,
            var(--fe-page-bg, #edf1f5) 94%,
            white) !important;
    color: var(--fe-text, #263244) !important;
}

body:has(.fe-site-page) .navbar a,
body:has(.fe-site-auth-page) .navbar a,
body:has(.fe-site-page) .site-header a,
body:has(.fe-site-auth-page) .site-header a {
    color: var(--fe-text, #263244) !important;
}

.fe-site-page {
    display: grid;
    gap: clamp(1.25rem, 2vw, 2rem);
    width: 100%;
    max-width: 1480px;
    margin: 0 auto;
    padding: clamp(1rem, 2vw, 2rem);
}

body:has(.fe-sidebar) .fe-site-page,
body:has(.sidebar) .fe-site-page,
body:has(.site-sidebar) .fe-site-page {
    max-width: none;
    margin: 0;
    padding: 0;
}

.fe-site-landing-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(380px, .92fr);
    gap: clamp(2rem, 4vw, 5rem);
    align-items: center;
    min-height: clamp(560px, 72vh, 760px);
    padding: clamp(2rem, 5vw, 5rem);
    overflow: hidden;
    border-radius: var(--fe-radius-xl, 28px);
    background:
        radial-gradient(circle at 82% 18%,
            color-mix(in srgb,
                var(--fe-accent, #5f82d9) 18%,
                transparent),
            transparent 36%),
        linear-gradient(145deg,
            color-mix(in srgb,
                var(--fe-surface, #eef2f6) 96%,
                white),
            var(--fe-page-bg, #edf1f5));
    box-shadow:
        16px 16px 36px rgba(142, 157, 179, .2),
        -16px -16px 36px rgba(255, 255, 255, .84);
}

.fe-site-landing-hero__content,
.fe-site-landing-hero__visual {
    min-width: 0;
}

.fe-site-badge {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    width: fit-content;
    padding: .5rem .8rem;
    border-radius: 999px;
    background: color-mix(in srgb,
            var(--fe-accent, #5f82d9) 10%,
            transparent);
    color: var(--fe-accent-strong, #4164b0);
    font-size: .78rem;
    font-weight: 600;
}

.fe-site-landing-hero h1 {
    max-width: 760px;
    margin: 1.35rem 0 1rem;
    color: var(--fe-text, #263244);
    font-size: clamp(2.5rem, 5vw, 5.2rem);
    font-weight: 500;
    letter-spacing: -.055em;
    line-height: .98;
}

.fe-site-landing-hero h1 span {
    display: block;
    color: var(--fe-accent-strong, #4164b0);
}

.fe-site-landing-hero__content>p {
    max-width: 680px;
    margin: 0;
    color: var(--fe-text-muted, #687386);
    font-size: clamp(1rem, 1.25vw, 1.18rem);
    line-height: 1.75;
}

.fe-site-landing-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .8rem;
    margin-top: 2rem;
}

.fe-site-trust-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 1.5rem;
    margin-top: 2.4rem;
    color: var(--fe-text-muted, #687386);
    font-size: .84rem;
}

.fe-site-trust-strip>span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
}

.fe-site-trust-strip .material-symbols-outlined {
    color: var(--fe-accent-strong, #4164b0);
    font-size: 1.1rem;
}

.fe-site-product-card {
    padding: clamp(1.2rem, 2vw, 2rem);
    border: 1px solid var(--fe-border-soft,
            rgba(103, 119, 142, .12));
    border-radius: var(--fe-radius-xl, 28px);
    background: color-mix(in srgb,
            var(--fe-surface, #eef2f6) 94%,
            white);
    box-shadow:
        14px 14px 30px rgba(142, 157, 179, .22),
        -14px -14px 30px rgba(255, 255, 255, .9);
}

.fe-site-product-card__brand {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.fe-site-product-card__brand img {
    width: 267px;
    height: 64px;
    object-fit: contain;
    border-radius: 14px;
}

.fe-site-product-card__brand strong,
.fe-site-product-card__brand span {
    display: block;
}

.fe-site-product-card__brand strong {
    font-size: 1.25rem;
    font-weight: 600;
}

.fe-site-product-card__brand span {
    color: var(--fe-text-muted, #687386);
    font-size: .78rem;
}

.fe-site-product-card__status {
    display: flex;
    flex-wrap: wrap;
    gap: .6rem;
    margin: 1.35rem 0;
}

.fe-site-product-card__metrics {
    display: grid;
    gap: .75rem;
}

.fe-site-product-card__metrics article {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .9rem 1rem;
    border-radius: var(--fe-radius-md, 14px);
    background: var(--fe-surface-subtle, rgba(120, 130, 145, .06));
}

.fe-site-product-card__metrics span {
    color: var(--fe-text-muted, #687386);
    font-size: .78rem;
}

.fe-site-product-card__metrics strong {
    text-align: right;
    font-size: .85rem;
    font-weight: 600;
}

.fe-site-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.fe-site-metrics article {
    display: flex;
    align-items: flex-start;
    gap: .9rem;
    padding: 1.25rem;
    border-radius: var(--fe-radius-lg, 18px);
    background: var(--fe-surface, #eef2f6);
    box-shadow:
        7px 7px 16px rgba(142, 157, 179, .16),
        -7px -7px 16px rgba(255, 255, 255, .72);
}

.fe-site-metrics .material-symbols-outlined {
    color: var(--fe-accent-strong, #4164b0);
}

.fe-site-metrics strong,
.fe-site-metrics span {
    display: block;
}

.fe-site-metrics strong {
    margin-bottom: .25rem;
    font-size: .92rem;
    font-weight: 600;
}

.fe-site-metrics article div span {
    color: var(--fe-text-muted, #687386);
    font-size: .78rem;
    line-height: 1.5;
}

.fe-site-section {
    padding: clamp(1.5rem, 3vw, 3rem);
    border-radius: var(--fe-radius-xl, 28px);
    background: var(--fe-surface, #eef2f6);
    box-shadow:
        10px 10px 24px rgba(142, 157, 179, .17),
        -10px -10px 24px rgba(255, 255, 255, .76);
}

.fe-site-section__header {
    display: flex;
    justify-content: space-between;
    gap: 2rem;
    margin-bottom: 1.5rem;
}

.fe-site-section__header span {
    color: var(--fe-accent-strong, #4164b0);
    font-size: .75rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.fe-site-section__header h2 {
    max-width: 760px;
    margin: .35rem 0;
    font-size: clamp(1.6rem, 2.6vw, 2.7rem);
    font-weight: 500;
    letter-spacing: -.035em;
}

.fe-site-section__header p {
    max-width: 720px;
    margin: 0;
    color: var(--fe-text-muted, #687386);
}

.fe-site-process {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
}

.fe-site-process article {
    min-width: 0;
    padding: 1.25rem;
    border-radius: var(--fe-radius-lg, 18px);
    background: var(--fe-surface-subtle, rgba(120, 130, 145, .06));
}

.fe-site-process article>span {
    display: inline-grid;
    place-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 1rem;
    border-radius: 50%;
    background: color-mix(in srgb,
            var(--fe-accent, #5f82d9) 12%,
            transparent);
    color: var(--fe-accent-strong, #4164b0);
    font-size: .72rem;
    font-weight: 600;
}

.fe-site-process strong {
    font-size: 1rem;
    font-weight: 600;
}

.fe-site-process p {
    margin: .45rem 0 0;
    color: var(--fe-text-muted, #687386);
    font-size: .82rem;
    line-height: 1.6;
}

.fe-site-plan-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit,
            minmax(min(100%, 290px), 1fr));
    gap: 1rem;
}

.fe-site-plan {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 1rem;
    padding: 1.5rem;
    border: 1px solid var(--fe-border-soft,
            rgba(103, 119, 142, .12));
    border-radius: var(--fe-radius-xl, 24px);
    background: color-mix(in srgb,
            var(--fe-surface, #eef2f6) 96%,
            white);
}

.fe-site-plan.is-featured {
    transform: translateY(-8px);
    border-color: color-mix(in srgb,
            var(--fe-accent, #5f82d9) 45%,
            transparent);
    box-shadow:
        12px 12px 26px rgba(142, 157, 179, .2),
        -12px -12px 26px rgba(255, 255, 255, .82);
}

.fe-site-plan__featured {
    position: absolute;
    top: 1rem;
    right: 1rem;
    padding: .35rem .65rem;
    border-radius: 999px;
    background: var(--fe-accent-strong, #4164b0);
    color: white;
    font-size: .68rem;
    font-weight: 600;
}

.fe-site-plan__number {
    color: var(--fe-text-muted, #687386);
    font-size: .74rem;
}

.fe-site-plan h3 {
    margin: 0;
    font-size: 1.35rem;
    font-weight: 600;
}

.fe-site-plan__price {
    display: flex;
    align-items: baseline;
    gap: .4rem;
}

.fe-site-plan__price strong {
    color: var(--fe-accent-strong, #4164b0);
    font-size: clamp(1.55rem, 3vw, 2.25rem);
    font-weight: 650;
}

.fe-site-plan__price small,
.fe-site-plan > p {
    color: var(--fe-text-muted, #687386);
    font-size: .78rem;
    line-height: 1.55;
}

.fe-site-plan__features {
    display: grid;
    gap: .65rem;
    flex: 1 1 auto;
}

.fe-site-plan__features>span {
    display: flex;
    align-items: flex-start;
    gap: .5rem;
    color: var(--fe-text-muted, #687386);
    font-size: .8rem;
    line-height: 1.45;
}

.fe-site-plan__features .material-symbols-outlined {
    color: var(--fe-success, #3b8265);
    font-size: 1rem;
}

.fe-site-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(1.5rem, 3vw, 3rem);
    border-radius: var(--fe-radius-xl, 28px);
    background:
        linear-gradient(135deg,
            color-mix(in srgb,
                var(--fe-accent, #5f82d9) 14%,
                var(--fe-surface, #eef2f6)),
            var(--fe-surface, #eef2f6));
}

.fe-site-cta span {
    color: var(--fe-accent-strong, #4164b0);
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
}

.fe-site-cta h2 {
    margin: .35rem 0;
    font-size: clamp(1.5rem, 2.3vw, 2.4rem);
    font-weight: 500;
}

.fe-site-cta p {
    margin: 0;
    color: var(--fe-text-muted, #687386);
}

.fe-site-cta__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .75rem;
    flex: 0 0 auto;
}

/* Authentication --------------------------------------------------------- */

.fe-site-auth-page {
    display: grid;
    place-items: center;
    min-height: calc(100vh - 78px);
    padding: clamp(1rem, 3vw, 3rem);
    background:
        radial-gradient(circle at 18% 16%,
            color-mix(in srgb,
                var(--fe-accent, #5f82d9) 12%,
                transparent),
            transparent 34%),
        var(--fe-page-bg, #edf1f5);
}

.fe-site-auth-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
    width: min(100%, 1080px);
    min-height: 650px;
    overflow: hidden;
    border-radius: 30px;
    background: var(--fe-surface, #eef2f6);
    box-shadow:
        9px 9px 42px rgba(142, 157, 179, .22),
        -9px -9px 42px rgba(255, 255, 255, .86);
}

.fe-site-auth-page--branded {
    min-height: 100vh;
    background: radial-gradient(circle at 50% 10%, color-mix(in srgb, var(--nx-brand-primary, #0066ff) 16%, transparent), transparent 38%), var(--fe-page-bg, #edf1f5);
}

.fe-site-auth-page--branded.fe-site-auth-page--has-background {
    background-color: var(--fe-page-bg, #edf1f5);
    background-image:
        linear-gradient(rgba(237, 241, 245, .48), rgba(237, 241, 245, .62)),
        var(--nx-login-background-image);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
}

.fe-site-auth-shell--branded {
    display: flex;
    width: min(92vw, 480px);
    min-height: 0;
    flex-direction: column;
    padding-top: 2rem;
}

.fe-site-auth-compact--branded {
    width: min(100%, 540px);
}

.fe-site-auth-compact--branded .fe-site-auth-branded-logo img {
    max-height: 150px;
    max-width: min(100%, 320px);
}

.fe-site-auth-branded-logo {
    display: grid;
    justify-items: center;
    gap: .8rem;
    padding: 1.5rem 2rem 0;
    text-align: center;
}

.fe-site-auth-branded-logo img { width: min(260px, 80%); max-height: 112px; object-fit: contain; }
.fe-site-auth-branded-logo strong { font-size: 1.15rem; }
.fe-site-auth-shell--branded .fe-site-auth-form { padding-top: 1.5rem; }

.fe-site-auth-aside {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: space-between;
    padding: clamp(2rem, 4vw, 4rem);
    background:
        linear-gradient(150deg,
            color-mix(in srgb,
                var(--fe-accent, #5f82d9) 16%,
                var(--fe-surface, #eef2f6)),
            var(--fe-surface, #eef2f6));
}

.fe-site-auth-aside__brand {
    display: flex;
    align-items: center;
    gap: .85rem;
}

.fe-site-auth-aside__brand img {
    width: 80px;
    height: 80px;
    object-fit: contain;
    border-radius: 15px;
}

.fe-site-auth-aside__brand strong,
.fe-site-auth-aside__brand span {
    display: block;
}

.fe-site-auth-aside__brand strong {
    font-weight: 600;
}

.fe-site-auth-aside__brand span {
    color: var(--fe-text-muted, #687386);
    font-size: .74rem;
}

.fe-site-auth-aside__content h1 {
    margin: 1.25rem 0 1rem;
    font-size: clamp(2rem, 3.8vw, 3.8rem);
    font-weight: 500;
    letter-spacing: -.05em;
    line-height: 1.03;
}

.fe-site-auth-aside__content h1 span {
    display: block;
    color: var(--fe-accent-strong, #4164b0);
}

.fe-site-auth-aside__content p {
    max-width: 520px;
    margin: 0;
    color: var(--fe-text-muted, #687386);
    line-height: 1.75;
}

.fe-site-auth-aside__features {
    display: grid;
    gap: .75rem;
}

.fe-site-auth-aside__features>span {
    display: flex;
    align-items: center;
    gap: .65rem;
    color: var(--fe-text-muted, #687386);
    font-size: .82rem;
}

.fe-site-auth-aside__features .material-symbols-outlined {
    color: var(--fe-accent-strong, #4164b0);
}

.fe-site-auth-form {
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: center;
    padding: clamp(2rem, 4vw, 4rem);
    background: color-mix(in srgb,
            var(--fe-surface, #eef2f6) 96%,
            white);
}

.fe-site-auth-form__header>span {
    color: var(--fe-accent-strong, #4164b0);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.fe-site-auth-form__header h2 {
    margin: .4rem 0;
    font-size: clamp(1.8rem, 2.5vw, 2.6rem);
    font-weight: 500;
}

.fe-site-auth-form__header p {
    margin: 0 0 1.8rem;
    color: var(--fe-text-muted, #687386);
}

.fe-site-auth-form__options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.fe-site-auth-form__options .mb-3 {
    margin-bottom: 0 !important;
}

.fe-site-auth-form__submit {
    width: 100%;
    min-height: 48px;
    margin-top: .5rem;
    justify-content: center;
}

.fe-site-auth-form__links {
    display: flex;
    justify-content: center;
    gap: .6rem;
    margin-top: 1.4rem;
    color: var(--fe-text-muted, #687386);
    font-size: .8rem;
}

.fe-site-auth-form__footer {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--fe-border-soft,
            rgba(103, 119, 142, .12));
    color: var(--fe-text-muted, #687386);
    font-size: .72rem;
    text-align: center;
}

@media (max-width: 1100px) {

    .fe-site-metrics,
    .fe-site-process {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .fe-site-auth-shell {
        grid-template-columns: 1fr;
        width: min(100%, 680px);
    }

    .fe-site-auth-aside {
        min-height: 420px;
    }
}

@media (max-width: 900px) {
    .fe-site-landing-hero {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .fe-site-landing-hero__visual {
        order: -1;
    }

    .fe-site-cta {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 680px) {
    .fe-site-page {
        padding: .875rem;
    }

    .fe-site-landing-hero {
        padding: 1.25rem;
    }

    .fe-site-metrics,
    .fe-site-process {
        grid-template-columns: 1fr;
    }

    .fe-site-auth-page {
        padding: .75rem;
    }

    .fe-site-auth-shell {
        min-height: 0;
        border-radius: 22px;
    }

    .fe-site-auth-aside {
        min-height: 340px;
        padding: 1.5rem;
    }

    .fe-site-auth-form {
        padding: 1.5rem;
    }

    .fe-site-auth-form__options {
        align-items: flex-start;
        flex-direction: column;
    }

    .fe-site-auth-form__links {
        flex-wrap: wrap;
    }
}


/* About ------------------------------------------------------------------ */

.fe-site-about-hero {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, .35fr);
    gap: clamp(2rem, 4vw, 5rem);
    align-items: center;
    padding: clamp(2rem, 5vw, 5rem);
    border-radius: var(--fe-radius-xl, 28px);
    background:
        radial-gradient(circle at 82% 30%,
            color-mix(in srgb, var(--fe-accent, #5f82d9) 18%, transparent),
            transparent 38%),
        var(--fe-surface, #eef2f6);
    box-shadow:
        14px 14px 32px rgba(142, 157, 179, .2),
        -14px -14px 32px rgba(255, 255, 255, .82);
}

.fe-site-about-hero h1 {
    margin: 1.25rem 0 1rem;
    font-size: clamp(2.3rem, 4.5vw, 4.6rem);
    font-weight: 500;
    letter-spacing: -.05em;
    line-height: 1.02;
}

.fe-site-about-hero h1 span {
    display: block;
    color: var(--fe-accent-strong, #4164b0);
}

.fe-site-about-hero p {
    max-width: 760px;
    color: var(--fe-text-muted, #687386);
    font-size: 1.05rem;
    line-height: 1.75;
}

.fe-site-about-hero__visual {
    display: grid;
    place-content: center;
    aspect-ratio: 1;
    border-radius: 50%;
    background:
        radial-gradient(circle, var(--fe-surface, #eef2f6) 58%, transparent 60%),
        conic-gradient(var(--fe-accent, #5f82d9) 0 62%,
            rgba(120, 130, 145, .12) 62%);
}

.fe-site-about-hero__visual .material-symbols-outlined {
    color: var(--fe-accent-strong, #4164b0);
    font-size: clamp(4rem, 8vw, 8rem);
}

.fe-site-values {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.fe-site-values article {
    padding: 1.5rem;
    border-radius: var(--fe-radius-lg, 18px);
    background: var(--fe-surface, #eef2f6);
    box-shadow:
        7px 7px 16px rgba(142, 157, 179, .16),
        -7px -7px 16px rgba(255, 255, 255, .72);
}

.fe-site-values .material-symbols-outlined {
    color: var(--fe-accent-strong, #4164b0);
    margin-bottom: .9rem;
}

.fe-site-values strong {
    display: block;
    font-weight: 600;
}

.fe-site-values p {
    margin: .45rem 0 0;
    color: var(--fe-text-muted, #687386);
    line-height: 1.65;
}

/* Contact ---------------------------------------------------------------- */

.fe-site-contact-shell,
.fe-site-signup-shell {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(480px, 1.1fr);
    width: min(100%, 1220px);
    margin: 0 auto;
    overflow: hidden;
    border-radius: 30px;
    background: var(--fe-surface, #eef2f6);
    box-shadow:
        16px 16px 36px rgba(142, 157, 179, .2),
        -16px -16px 36px rgba(255, 255, 255, .82);
}

.fe-site-contact-aside,
.fe-site-signup-aside {
    padding: clamp(2rem, 4vw, 4rem);
    background:
        linear-gradient(150deg,
            color-mix(in srgb,
                var(--fe-accent, #5f82d9) 15%,
                var(--fe-surface, #eef2f6)),
            var(--fe-surface, #eef2f6));
}

.fe-site-contact-aside h1,
.fe-site-signup-aside h1 {
    margin: 1.3rem 0 1rem;
    font-size: clamp(2rem, 3.8vw, 3.8rem);
    font-weight: 500;
    letter-spacing: -.05em;
    line-height: 1.03;
}

.fe-site-contact-aside h1 span,
.fe-site-signup-aside h1 span {
    display: block;
    color: var(--fe-accent-strong, #4164b0);
}

.fe-site-contact-aside>p,
.fe-site-signup-aside>p {
    color: var(--fe-text-muted, #687386);
    line-height: 1.75;
}

.fe-site-contact-aside__items {
    display: grid;
    gap: .85rem;
    margin-top: 2rem;
}

.fe-site-contact-aside__items>div {
    display: flex;
    gap: .8rem;
    padding: .9rem;
    border-radius: var(--fe-radius-md, 14px);
    background: rgba(255, 255, 255, .28);
}

.fe-site-contact-aside__items .material-symbols-outlined {
    color: var(--fe-accent-strong, #4164b0);
}

.fe-site-contact-aside__items strong,
.fe-site-contact-aside__items p {
    display: block;
    margin: 0;
}

.fe-site-contact-aside__items p {
    color: var(--fe-text-muted, #687386);
    font-size: .8rem;
}

.fe-site-contact-form,
.fe-site-signup-form {
    padding: clamp(2rem, 4vw, 4rem);
    background: color-mix(in srgb,
            var(--fe-surface, #eef2f6) 96%,
            white);
}

.fe-site-captcha {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 1rem;
    align-items: center;
}

.fe-site-captcha img {
    border-radius: 12px;
}

/* Signup ----------------------------------------------------------------- */

.fe-site-signup-plan {
    margin-top: 2rem;
    padding: 1.2rem;
    border-radius: var(--fe-radius-lg, 18px);
    background: rgba(255, 255, 255, .28);
}

.fe-site-signup-plan>span,
.fe-site-signup-plan>strong {
    display: block;
}

.fe-site-signup-plan>span {
    color: var(--fe-text-muted, #687386);
    font-size: .74rem;
    text-transform: uppercase;
}

.fe-site-signup-plan>strong {
    margin: .3rem 0 .8rem;
    font-size: 1.45rem;
    font-weight: 600;
}

.fe-site-signup-plan [data-plan-highlights] {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem;
}

/* Auxiliary auth --------------------------------------------------------- */

.fe-site-auth-compact,
.fe-site-error {
    width: min(100%, 560px);
    padding: clamp(2rem, 4vw, 3.5rem);
    border-radius: 28px;
    background: var(--fe-surface, #eef2f6);
    box-shadow:
        16px 16px 36px rgba(142, 157, 179, .2),
        -16px -16px 36px rgba(255, 255, 255, .82);
}

.fe-site-auth-compact__icon,
.fe-site-error__icon {
    display: grid;
    place-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 1.2rem;
    border-radius: 18px;
    background: color-mix(in srgb,
            var(--fe-accent, #5f82d9) 12%,
            transparent);
}

.fe-site-auth-compact__icon .material-symbols-outlined,
.fe-site-error__icon .material-symbols-outlined {
    color: var(--fe-accent-strong, #4164b0);
    font-size: 1.7rem;
}

/* Account status --------------------------------------------------------- */

.fe-site-status-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: clamp(1.5rem, 3vw, 3rem);
    border-radius: 26px;
    background: var(--fe-surface, #eef2f6);
    border: 1px solid var(--fe-border, rgba(103, 119, 142, .14));
    box-shadow: var(--fe-shadow-raised);
}

.fe-site-status-hero h1 {
    margin: .7rem 0 .35rem;
    font-size: clamp(1.8rem, 3vw, 3rem);
    font-weight: 500;
    overflow-wrap: anywhere;
}

.fe-site-status-hero p {
    margin: 0;
    color: var(--fe-text-muted, #687386);
}

.fe-site-status-hero.is-approved {
    border-inline-start: 4px solid var(--fe-success, #3b8265);
}

.fe-site-status-hero.is-review {
    border-inline-start: 4px solid var(--fe-warning, #a77d2c);
}

.fe-site-status-hero.is-blocked {
    border-inline-start: 4px solid var(--fe-danger, #b64d59);
}

.fe-site-status-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
}

.fe-site-status-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(430px, .75fr);
    align-items: stretch;
    gap: 1rem;
}

.fe-site-status-summary {
    min-width: 0;
}

.fe-site-status-summary .fe-site-section__header h2 {
    font-size: clamp(1.55rem, 2.1vw, 2.15rem);
    line-height: 1.12;
}

.fe-site-status-summary .fe-list__item {
    align-items: center;
    gap: 1rem;
}

.fe-site-status-summary .fe-list__item > strong {
    min-width: 0;
    overflow-wrap: anywhere;
    text-align: end;
}

.fe-site-status-summary__limits {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: .55rem;
    margin-top: 1rem;
}

.fe-site-status-summary__limits .fe-chip {
    min-width: 0;
    justify-content: center;
    white-space: normal;
    text-align: center;
}

.fe-site-status-decision {
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
    padding: 1.25rem;
    border: 1px solid color-mix(in srgb, var(--fe-danger) 45%, var(--fe-border));
    border-radius: var(--fe-radius-lg, 22px);
    background: color-mix(in srgb, var(--fe-danger-soft) 68%, var(--fe-surface));
    box-shadow: var(--fe-shadow-soft);
}

.fe-site-status-decision > .material-symbols-outlined {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border-radius: 50%;
    background: var(--fe-danger-soft);
    color: var(--fe-danger);
}

.fe-site-status-decision span,
.fe-site-status-decision small {
    color: var(--fe-text-muted);
}

.fe-site-status-decision h2 {
    margin: .2rem 0 .65rem;
    font-size: 1.35rem;
}

.fe-site-status-decision p {
    margin: 0 0 .7rem;
    line-height: 1.65;
}

.fe-site-status-explanation {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: start;
    gap: 1rem;
    padding: 1.1rem 1.25rem;
    border: 1px solid color-mix(in srgb, var(--fe-warning) 50%, var(--fe-border));
    border-radius: var(--fe-radius-lg, 22px);
    background: color-mix(in srgb, var(--fe-warning-soft) 70%, var(--fe-surface));
    box-shadow: var(--fe-shadow-soft);
}

.fe-site-status-explanation > .material-symbols-outlined {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 50%;
    background: var(--fe-warning-soft);
    color: var(--fe-warning);
}

.fe-site-status-explanation strong {
    color: var(--fe-text);
}

.fe-site-status-explanation p {
    max-width: 980px;
    margin: .35rem 0 0;
    color: var(--fe-text-muted);
    line-height: 1.55;
}

.fe-site-status-steps {
    display: grid;
    gap: .85rem;
}

.fe-site-status-steps>div {
    display: flex;
    gap: 1rem;
    padding: 1rem;
    border-radius: var(--fe-radius-md, 14px);
    background: var(--fe-surface-subtle, rgba(120, 130, 145, .06));
}

.fe-site-status-steps>div>span {
    display: grid;
    place-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: rgba(120, 130, 145, .12);
    font-size: .75rem;
    font-weight: 600;
}

.fe-site-status-steps>div.is-complete>span {
    background: color-mix(in srgb,
            var(--fe-success, #3b8265) 18%,
            transparent);
    color: var(--fe-success, #3b8265);
}

.fe-site-status-steps>div.is-current>span {
    background: color-mix(in srgb,
            var(--fe-warning, #a77d2c) 18%,
            transparent);
    color: var(--fe-warning, #a77d2c);
}

.fe-site-status-steps strong {
    display: block;
    font-weight: 600;
}

.fe-site-status-steps p {
    margin: .3rem 0 0;
    color: var(--fe-text-muted, #687386);
}

/* Authenticated account status follows the operational Light/Dark tokens. */
body.fe-app:has(.fe-site-page),
body.fe-app:has(.fe-site-page) > main,
body.fe-app:has(.fe-site-auth-page),
body.fe-app:has(.fe-site-auth-page) > main,
body.fe-app:has(.fe-site-auth-page) .main-content,
body.fe-app:has(.fe-site-auth-page) .content-wrapper {
    background: var(--fe-page) !important;
    color: var(--fe-text);
}

body.fe-app .fe-site-auth-page {
    background:
        radial-gradient(circle at 18% 16%,
            color-mix(in srgb, var(--fe-primary) 10%, transparent),
            transparent 34%),
        var(--fe-page);
}

body.fe-app .fe-site-status-hero,
body.fe-app .fe-site-section {
    border: 1px solid var(--fe-border);
    background: var(--fe-surface);
    box-shadow: var(--fe-shadow-raised);
    color: var(--fe-text);
}

body.fe-app .fe-site-section__header span,
body.fe-app .fe-site-badge {
    color: var(--fe-primary);
}

body.fe-app .fe-site-status-steps > div {
    border: 1px solid var(--fe-border);
    background: var(--fe-surface-raised);
}

/* Error ------------------------------------------------------------------ */

.fe-site-error {
    text-align: center;
}

.fe-site-error__icon {
    margin-inline: auto;
}

.fe-site-error h1 {
    margin: 1rem 0;
    font-size: clamp(2rem, 4vw, 3.5rem);
    font-weight: 500;
}

.fe-site-error>p {
    color: var(--fe-text-muted, #687386);
    line-height: 1.7;
}

.fe-site-error__message {
    padding: 1rem;
    border-radius: 14px;
    background: var(--fe-surface-subtle, rgba(120, 130, 145, .06));
    color: var(--fe-text, #263244) !important;
}

.fe-site-error .fe-form-actions {
    justify-content: center;
}

body.fe-app .fe-site-error {
    border: 1px solid var(--fe-border);
    background: var(--fe-surface);
    box-shadow: var(--fe-shadow-raised);
    color: var(--fe-text);
}

@media (max-width: 980px) {

    .fe-site-about-hero,
    .fe-site-contact-shell,
    .fe-site-signup-shell,
    .fe-site-status-layout {
        grid-template-columns: 1fr;
    }

    .fe-site-about-hero__visual {
        max-width: 260px;
        justify-self: center;
        width: 100%;
    }

    .fe-site-values {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 680px) {

    .fe-site-contact-aside,
    .fe-site-contact-form,
    .fe-site-signup-aside,
    .fe-site-signup-form {
        padding: 1.5rem;
    }

    .fe-site-captcha {
        grid-template-columns: 1fr;
    }

    .fe-site-status-hero {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* ==========================================================================
   PUBLIC SHELL — LIGHT THEME LOCK
   Visitantes e autenticação permanecem claros independentemente de
   localStorage, preferência do sistema ou sessão anterior.
   ========================================================================== */

html[data-fe-theme-lock="light"] {
    color-scheme: light;

    --fe-page-bg: #edf1f5;
    --fe-surface: #eef2f6;
    --fe-surface-raised: #f4f7fa;
    --fe-surface-subtle: #e7ecf2;
    --fe-text: #263244;
    --fe-text-strong: #172033;
    --fe-text-muted: #687386;
    --fe-border-soft: rgba(103, 119, 142, .14);
    --fe-shadow-dark: rgba(142, 157, 179, .2);
    --fe-shadow-light: rgba(255, 255, 255, .82);

    background: var(--fe-page-bg) !important;
}

html[data-fe-theme-lock="light"],
html[data-fe-theme-lock="light"] body,
body.fe-public-app,
body.fe-public-shell,
body.fe-theme-light-locked {
    min-height: 100%;
    background: var(--fe-page-bg) !important;
    background-color: var(--fe-page-bg) !important;
    color: var(--fe-text) !important;
}

html[data-fe-theme-lock="light"] body::before,
html[data-fe-theme-lock="light"] body::after {
    background: none !important;
    content: none !important;
}

.fe-public-app {
    --bs-body-bg: var(--fe-page-bg);
    --bs-body-color: var(--fe-text);

    overflow-x: hidden;
}

.fe-public-header {
    position: sticky;
    z-index: 80;
    top: 0;
    width: 100%;
    border-bottom: 1px solid var(--fe-border-soft);
    background:
        color-mix(in srgb,
            var(--fe-page-bg) 92%,
            white);
    box-shadow: 0 8px 28px rgba(91, 105, 126, .08);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.fe-public-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    width: min(100%, 1540px);
    min-height: 76px;
    margin: 0 auto;
    padding: .75rem clamp(1rem, 2.5vw, 2.5rem);
}

.fe-public-header__brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    min-width: 0;
    color: var(--fe-text-strong);
    text-decoration: none;
}

.fe-public-header__brand img {
    display: block;
    width: 42px;
    height: 42px;
    flex: 0 0 auto;
    object-fit: contain;
    border-radius: 12px;
}

.fe-public-header__brand span {
    overflow: hidden;
    font-size: .95rem;
    font-weight: 600;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fe-public-header__nav {
    display: flex;
    align-items: center;
    gap: .25rem;
}

.fe-public-header__nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: .6rem .85rem;
    border-radius: 999px;
    color: var(--fe-text-muted);
    font-size: .82rem;
    font-weight: 500;
    text-decoration: none;
    transition:
        color .18s ease,
        background .18s ease,
        box-shadow .18s ease;
}

.fe-public-header__nav a:hover,
.fe-public-header__nav a.is-active {
    background: var(--fe-surface);
    color: var(--fe-accent-strong, #4164b0);
    box-shadow:
        4px 4px 10px rgba(142, 157, 179, .14),
        -4px -4px 10px rgba(255, 255, 255, .68);
}

.fe-public-header__nav .fe-public-header__action {
    margin-left: .35rem;
    background: var(--fe-surface);
    color: var(--fe-accent-strong, #4164b0);
    box-shadow:
        4px 4px 10px rgba(142, 157, 179, .15),
        -4px -4px 10px rgba(255, 255, 255, .72);
}

.fe-public-header__menu-button {
    display: none;
    align-items: center;
    gap: .4rem;
    min-height: 42px;
    padding: .55rem .8rem;
    border: 0;
    border-radius: 999px;
    background: var(--fe-surface);
    color: var(--fe-text);
    box-shadow:
        4px 4px 10px rgba(142, 157, 179, .15),
        -4px -4px 10px rgba(255, 255, 255, .72);
}

.fe-public-main {
    display: block;
    width: 100%;
    min-height: calc(100vh - 76px);
    background: var(--fe-page-bg);
}

.fe-public-content,
.fe-public-content__view {
    width: 100%;
    min-width: 0;
}

.fe-public-footer {
    width: 100%;
    border-top: 1px solid var(--fe-border-soft);
    background: color-mix(in srgb,
            var(--fe-page-bg) 95%,
            white);
    color: var(--fe-text-muted);
}

.fe-public-footer__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem 2rem;
    width: min(100%, 1540px);
    min-height: 62px;
    margin: 0 auto;
    padding: .8rem clamp(1rem, 2.5vw, 2.5rem);
    font-size: .72rem;
}

html[data-fe-theme-lock="light"] [data-fe-theme-toggle] {
    display: none !important;
}

html[data-fe-theme-lock="light"] .fe-site-page,
html[data-fe-theme-lock="light"] .fe-site-auth-page,
html[data-fe-theme-lock="light"] .fe-site-section,
html[data-fe-theme-lock="light"] .fe-site-auth-shell,
html[data-fe-theme-lock="light"] .fe-site-auth-compact,
html[data-fe-theme-lock="light"] .fe-site-error {
    color-scheme: light;
}

@media (max-width: 820px) {
    .fe-public-header__inner {
        min-height: 68px;
    }

    .fe-public-header__menu-button {
        display: inline-flex;
    }

    .fe-public-header__nav {
        position: absolute;
        top: calc(100% + .5rem);
        right: 1rem;
        left: 1rem;
        display: none;
        align-items: stretch;
        flex-direction: column;
        gap: .35rem;
        padding: .8rem;
        border: 1px solid var(--fe-border-soft);
        border-radius: 20px;
        background: var(--fe-surface-raised);
        box-shadow:
            10px 10px 24px rgba(142, 157, 179, .19),
            -10px -10px 24px rgba(255, 255, 255, .76);
    }

    .fe-public-header__nav.is-open {
        display: flex;
    }

    .fe-public-header__nav a {
        justify-content: flex-start;
        width: 100%;
    }

    .fe-public-header__nav .fe-public-header__action {
        margin-left: 0;
    }

    .fe-public-main {
        min-height: calc(100vh - 68px);
    }

    .fe-public-footer__inner {
        align-items: flex-start;
        flex-direction: column;
        gap: .25rem;
    }
}
