:root {
    --fz-auth-ink: #142033;
    --fz-auth-muted: #64748b;
    --fz-auth-line: #dfe5ed;
    --fz-auth-surface: #ffffff;
    --fz-auth-bg: #eef2f6;
    --fz-auth-accent: #dc2626;
    --fz-auth-accent-dark: #b91c1c;
    --fz-auth-accent-soft: #fef2f2;
}

body.fz-auth-provider {
    --fz-auth-accent: #059669;
    --fz-auth-accent-dark: #047857;
    --fz-auth-accent-soft: #ecfdf5;
}

body.fz-auth-page {
    background: var(--fz-auth-bg);
    color: var(--fz-auth-ink);
}

body.fz-auth-page .fi-simple-layout {
    position: relative;
    min-height: 100dvh;
    overflow: hidden;
    padding: clamp(1rem, 3vw, 2.5rem);
    padding-top: max(clamp(1rem, 3vw, 2.5rem), env(safe-area-inset-top));
    padding-bottom: max(clamp(1rem, 3vw, 2.5rem), env(safe-area-inset-bottom));
    background:
        radial-gradient(circle at 8% 8%, color-mix(in srgb, var(--fz-auth-accent) 11%, transparent), transparent 30rem),
        linear-gradient(145deg, #f8fafc 0%, #edf2f7 52%, #e8edf3 100%);
}

body.fz-auth-page .fi-simple-main-ctn {
    position: relative;
    z-index: 1;
    width: 100%;
}

body.fz-auth-page .fi-simple-main {
    width: min(100%, 72rem) !important;
    max-width: 72rem !important;
    margin: auto !important;
    overflow: hidden;
    padding: 0 !important;
    border: 1px solid rgba(148, 163, 184, .28);
    border-radius: 1.75rem !important;
    background: rgba(255, 255, 255, .97) !important;
    box-shadow: 0 2rem 6rem -2.25rem rgba(15, 23, 42, .4), 0 .75rem 2rem -1.4rem rgba(15, 23, 42, .18) !important;
    ring: 0 !important;
}

body.fz-auth-register .fi-simple-main {
    width: min(100%, 78rem) !important;
    max-width: 78rem !important;
}

body.fz-auth-page .fi-simple-page {
    display: grid;
    min-height: min(46rem, calc(100dvh - 5rem));
    grid-template-columns: minmax(20rem, .9fr) minmax(26rem, 1.1fr);
}

/* The language hook is a full-width row, not a third two-column cell. */
body.fz-auth-page .fi-simple-page > .fz-portal-language {
    grid-column: 1 / -1;
    min-width: 0;
    background: var(--fz-auth-surface);
}

body.fz-auth-page .fi-simple-page > section {
    min-width: 0;
}

body.fz-auth-page .fi-simple-page > section {
    align-content: center;
    gap: 1.65rem;
    padding: clamp(2.5rem, 5vw, 4.75rem);
    background: var(--fz-auth-surface);
}

body.fz-auth-register .fi-simple-page > section {
    align-content: start;
    overflow-y: auto;
    padding: clamp(2.25rem, 4vw, 3.75rem);
}

.fz-auth-intro {
    position: relative;
    display: flex;
    min-width: 0;
    flex-direction: column;
    justify-content: space-between;
    overflow: hidden;
    padding: clamp(2rem, 4vw, 3.25rem);
    color: #fff;
    background:
        radial-gradient(circle at 86% 12%, rgba(248, 113, 113, .2), transparent 18rem),
        linear-gradient(150deg, #172033 0%, #101827 58%, #0b1320 100%);
}

body.fz-auth-provider .fz-auth-intro {
    background:
        radial-gradient(circle at 86% 12%, rgba(52, 211, 153, .2), transparent 18rem),
        linear-gradient(150deg, #102a28 0%, #0d201f 58%, #091817 100%);
}

.fz-auth-intro-grid {
    position: absolute;
    inset: 0;
    opacity: .11;
    background-image: linear-gradient(rgba(255,255,255,.18) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.18) 1px, transparent 1px);
    background-size: 36px 36px;
    mask-image: linear-gradient(to bottom, black, transparent 82%);
}

.fz-auth-orbit {
    position: absolute;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 999px;
}

.fz-auth-orbit--one { width: 22rem; height: 22rem; right: -12rem; top: 9rem; }
.fz-auth-orbit--two { width: 12rem; height: 12rem; right: -6rem; top: 14rem; }

.fz-auth-intro-content,
.fz-auth-intro-footer {
    position: relative;
    z-index: 1;
}

.fz-auth-brand {
    display: inline-flex;
    width: fit-content;
    align-items: center;
    gap: .85rem;
    color: #fff;
    text-decoration: none;
}

.fz-auth-brand-mark {
    display: grid;
    width: 2.8rem;
    height: 2.8rem;
    place-items: center;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: .9rem;
    background: rgba(255,255,255,.08);
    box-shadow: inset 0 1px rgba(255,255,255,.12);
}

.fz-auth-brand-mark img { width: 1.85rem; height: 1.85rem; }
.fz-auth-brand > span:last-child { display: grid; gap: .12rem; }
.fz-auth-brand strong { font-size: 1rem; font-weight: 750; letter-spacing: -.015em; }
.fz-auth-brand small { color: #aeb9ca; font-size: .72rem; font-weight: 550; letter-spacing: .04em; }

.fz-auth-intro-copy { margin-top: clamp(3.25rem, 8vh, 6rem); }
.fz-auth-kicker {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    color: #cbd5e1;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.fz-auth-status-dot {
    width: .48rem;
    height: .48rem;
    border-radius: 999px;
    background: #4ade80;
    box-shadow: 0 0 0 .24rem rgba(74,222,128,.13), 0 0 1rem rgba(74,222,128,.45);
}

.fz-auth-intro h2 {
    max-width: 10ch;
    margin: 1rem 0 .85rem;
    color: #fff;
    font-size: clamp(2rem, 3.3vw, 3.15rem);
    font-weight: 760;
    line-height: 1.02;
    letter-spacing: -.05em;
}

.fz-auth-intro-copy > p {
    max-width: 33rem;
    color: #aeb9ca;
    font-size: .96rem;
    line-height: 1.7;
}

.fz-auth-feature-list {
    display: grid;
    gap: .75rem;
    margin-top: clamp(2.25rem, 6vh, 4rem);
}

.fz-auth-feature-list li {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
    padding: .82rem .9rem;
    border: 1px solid rgba(255,255,255,.08);
    border-radius: .95rem;
    background: rgba(255,255,255,.045);
    backdrop-filter: blur(10px);
}

.fz-auth-feature-check {
    display: grid;
    width: 1.75rem;
    height: 1.75rem;
    flex: 0 0 auto;
    place-items: center;
    border-radius: .58rem;
    color: #fecaca;
    background: rgba(239,68,68,.14);
}

body.fz-auth-provider .fz-auth-feature-check { color: #a7f3d0; background: rgba(16,185,129,.14); }
.fz-auth-feature-check svg { width: 1.05rem; height: 1.05rem; }
.fz-auth-feature-list li > span:last-child { display: grid; gap: .2rem; }
.fz-auth-feature-list strong { color: #f8fafc; font-size: .82rem; font-weight: 680; }
.fz-auth-feature-list small { color: #93a3b8; font-size: .72rem; line-height: 1.45; }

.fz-auth-assurance {
    display: flex;
    align-items: center;
    gap: .75rem;
    margin-top: 1rem;
    padding: .78rem .9rem;
    border-radius: .9rem;
    color: #cbd5e1;
    background: rgba(0,0,0,.15);
}

.fz-auth-assurance svg { width: 1.3rem; height: 1.3rem; flex: 0 0 auto; color: #94a3b8; }
.fz-auth-assurance span { display: grid; gap: .1rem; }
.fz-auth-assurance strong { font-size: .75rem; }
.fz-auth-assurance small { color: #8190a5; font-size: .68rem; }

.fz-auth-intro-footer {
    display: flex;
    align-items: center;
    gap: .65rem;
    margin-top: 2rem;
    color: #66768c;
    font-size: .74rem;
}

.fz-auth-intro-footer a { color: #aeb9ca; text-decoration: none; transition: color .18s ease; }
.fz-auth-intro-footer a:hover { color: #fff; }

body.fz-auth-page .fi-simple-header { gap: .8rem; }
body.fz-auth-page .fi-simple-header::before {
    display: inline-flex;
    align-items: center;
    min-height: 1.65rem;
    padding: .32rem .62rem;
    border: 1px solid color-mix(in srgb, var(--fz-auth-accent) 20%, #d7dee8);
    border-radius: 999px;
    color: var(--fz-auth-accent-dark);
    background: var(--fz-auth-accent-soft);
    content: 'Secure account access';
    font-size: .65rem;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}
body.fz-auth-register .fi-simple-header::before { content: 'Create your account'; }
body.fz-auth-password-request .fi-simple-header::before,
body.fz-auth-password-reset .fi-simple-header::before { content: 'Account recovery'; }
body.fz-auth-page .fi-simple-header .fi-logo { height: auto !important; max-height: 2.65rem; color: var(--fz-auth-ink); font-size: .9rem; font-weight: 750; }
body.fz-auth-page .fi-simple-header-heading { color: var(--fz-auth-ink); font-size: clamp(1.75rem, 3vw, 2.25rem); font-weight: 760; line-height: 1.1; letter-spacing: -.04em; }
body.fz-auth-page .fi-simple-header-subheading { max-width: 31rem; color: var(--fz-auth-muted); font-size: .88rem; line-height: 1.55; }
body.fz-auth-page .fi-simple-header-subheading .fi-link { color: var(--fz-auth-accent-dark); font-weight: 700; }
.fz-auth-subheading-copy,
.fz-auth-subheading-action { display: block; }
.fz-auth-subheading-action { margin-top: .3rem; color: #7c8b9d; font-size: .8rem; }

body.fz-auth-page .fi-fo-field-wrp { gap: .55rem; }
body.fz-auth-page .fi-fo-field-wrp-label span { color: #334155; font-size: .82rem; font-weight: 650; }
body.fz-auth-page .fi-input-wrp {
    min-height: 3.1rem;
    border-radius: .8rem;
    background: #f8fafc;
    box-shadow: inset 0 0 0 1px var(--fz-auth-line) !important;
    transition: background .18s ease, box-shadow .18s ease, transform .18s ease;
}

body.fz-auth-page .fi-input-wrp:hover { background: #fff; box-shadow: inset 0 0 0 1px #c7d0dc !important; }
body.fz-auth-page .fi-input-wrp:focus-within {
    background: #fff;
    box-shadow: inset 0 0 0 2px var(--fz-auth-accent), 0 0 0 .25rem color-mix(in srgb, var(--fz-auth-accent) 12%, transparent) !important;
}

body.fz-auth-page .fi-input { min-height: 3.1rem; color: var(--fz-auth-ink); font-size: .9rem; }
body.fz-auth-page .fi-input::placeholder { color: #94a3b8; }
body.fz-auth-page .fi-input:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 4rem #fff inset;
    -webkit-text-fill-color: var(--fz-auth-ink);
}
body.fz-auth-page .fi-input-wrp-prefix { color: #94a3b8; }
body.fz-auth-page .fi-input-wrp:focus-within .fi-input-wrp-prefix { color: var(--fz-auth-accent); }
body.fz-auth-page .fi-fo-field-wrp-helper-text { color: #7c8b9d; font-size: .72rem; line-height: 1.45; }
body.fz-auth-page .fi-fo-field-wrp-error-message { font-size: .72rem; font-weight: 600; }

body.fz-auth-page .fi-checkbox-input { border-color: #cbd5e1; border-radius: .32rem; color: var(--fz-auth-accent); }
body.fz-auth-page .fi-fo-checkbox-label { color: #526075; font-size: .78rem; }
body.fz-auth-page .fi-link { color: var(--fz-auth-accent-dark); font-weight: 650; text-underline-offset: .2rem; }

body.fz-auth-page .fi-form-actions { margin-top: .25rem; }
body.fz-auth-page .fi-btn-color-primary {
    min-height: 3.15rem;
    border-radius: .82rem;
    color: #fff;
    background: linear-gradient(135deg, var(--fz-auth-accent), var(--fz-auth-accent-dark));
    box-shadow: 0 .7rem 1.5rem -.8rem color-mix(in srgb, var(--fz-auth-accent) 70%, transparent) !important;
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

body.fz-auth-page .fi-btn-color-primary:hover { filter: brightness(1.04); transform: translateY(-1px); box-shadow: 0 1rem 1.8rem -.9rem color-mix(in srgb, var(--fz-auth-accent) 82%, transparent) !important; }
body.fz-auth-page .fi-btn-color-primary:active { transform: translateY(0); }
body.fz-auth-page .fi-btn-color-primary:focus-visible { outline: 3px solid color-mix(in srgb, var(--fz-auth-accent) 25%, transparent); outline-offset: 3px; }

body.fz-auth-register .fi-fo-component-ctn { gap: 1.15rem; }
body.fz-auth-register .fi-fo-component-ctn > .grid { gap: 1.05rem; }

body.fz-auth-provider .fi-fo-wizard-header {
    border: 1px solid #dce9e4;
    border-radius: 1rem;
    background: #f6fbf9;
    box-shadow: none;
}

body.fz-auth-provider .fi-fo-wizard-header-step-icon-ctn { color: var(--fz-auth-accent); }
body.fz-auth-provider .fi-fo-wizard-header-step-label { font-size: .78rem; font-weight: 650; }
body.fz-auth-provider .fi-fo-wizard-header-step-description { white-space: normal; font-size: .7rem; line-height: 1.35; }
body.fz-auth-provider .fi-fo-wizard-actions { margin-top: 1.25rem; }

body.fz-auth-page .fi-notification { border-radius: .9rem; }


/* Shared authentication composition: quiet surfaces and a single clear action. */
body.fz-auth-page { --fz-auth-ink: #20272c; --fz-auth-muted: #626d75; --fz-auth-line: #dce0e2; --fz-auth-bg: #f4f5f3; }
body.fz-auth-provider { --fz-auth-accent: #08745e; --fz-auth-accent-dark: #065c4b; }
body.fz-auth-page .fi-simple-layout { background: #f4f5f3; padding: clamp(16px, 4vw, 64px); }
body.fz-auth-page .fi-simple-main,
body.fz-auth-register .fi-simple-main { width: min(100%, 1120px) !important; max-width: 1120px !important; border: 1px solid #e0e3df; border-radius: 20px !important; background: #fff !important; box-shadow: 0 16px 56px -32px #26352c44 !important; }
body.fz-auth-page .fi-simple-page { min-height: 0; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 0; }
body.fz-auth-page .fi-simple-page > .fz-portal-language { display: flex; justify-content: flex-end; gap: 6px; padding: 14px 24px; border-bottom: 1px solid #eceeeb; }
body.fz-auth-page .fz-portal-language a { padding: 7px 11px; border-radius: 6px; color: #626d75; font-size: 12px; text-decoration: none; }
body.fz-auth-page .fz-portal-language a[aria-current] { color: #20272c; background: #f0f2ef; font-weight: 650; }
body.fz-auth-page .fi-simple-page > section:not(.fz-portal-support) { padding: clamp(28px, 4vw, 56px); align-content: center; gap: 28px; overflow: visible; }
body.fz-auth-page .fz-auth-intro { min-height: 560px; padding: clamp(28px, 4vw, 48px); background: #192724; color: #fff; }
body.fz-auth-provider .fz-auth-intro { background: #172a2d; }
.fz-auth-intro-grid, .fz-auth-orbit, .fz-customer-signal { display: none; }
.fz-auth-intro-content { display: flex; flex: 1; flex-direction: column; }
.fz-auth-brand { gap: 12px; }
.fz-auth-brand-mark { background: #fff; border: 0; border-radius: 10px; width: 42px; height: 42px; box-shadow: none; }
.fz-auth-brand strong { font-size: 17px; letter-spacing: -.03em; }
.fz-auth-brand small { color: #bbc8c3; font-size: 11px; letter-spacing: .01em; }
.fz-customer-login-showcase, .fz-provider-login-showcase, .fz-auth-intro-copy { margin: auto 0; padding: 64px 0 40px; }
.fz-auth-intro h2 { max-width: 11ch; margin: 16px 0; font-size: clamp(34px, 3.4vw, 48px); line-height: 1.13; font-weight: 600; letter-spacing: -.045em; text-wrap: balance; }
.fz-customer-login-statement p, .fz-provider-login-showcase p, .fz-auth-intro-copy > p { color: #bbc8c3; max-width: 30ch; font-size: 15px; line-height: 1.7; }
.fz-provider-login-label, .fz-auth-kicker { font-size: 11px; color: #c4d2cb; letter-spacing: .1em; text-transform: uppercase; }
.fz-provider-login-label i, .fz-auth-status-dot { display: none; }
.fz-auth-feature-list { gap: 18px; margin: 0 0 32px; padding: 0; }
.fz-auth-feature-list li { padding: 0; border: 0; border-radius: 0; background: none; backdrop-filter: none; }
.fz-auth-feature-check { background: #ffffff0d; color: #cbd9d2; border-radius: 50%; }
.fz-auth-feature-list small { color: #bbc8c3; }
.fz-auth-assurance { display: none; }
.fz-auth-intro-footer { position: static; flex-wrap: wrap; gap: 12px; padding-top: 24px; border-top: 1px solid #ffffff20; margin-top: 20px; font-size: 12px; }
.fz-auth-intro-footer a { color: #c4d2cb; }
body.fz-auth-page .fi-simple-header { align-items: flex-start; text-align: left; gap: 12px; }
body.fz-auth-page .fi-simple-header::before { content: none; }
body.fz-auth-page .fi-simple-header .fi-logo { display: none; }
body.fz-auth-page .fi-simple-header-heading { font-size: 30px; line-height: 1.2; letter-spacing: -.04em; font-weight: 650; }
body.fz-auth-page .fi-simple-header-subheading { font-size: 14px; line-height: 1.65; }
.fz-auth-subheading-action { margin-top: 10px; color: #626d75; font-size: 13px; }
body.fz-auth-page .fi-input-wrp { border-radius: 8px; background: #fff; min-height: 48px; }
body.fz-auth-page .fi-input { min-height: 48px; font-size: 16px; }
body.fz-auth-page .fi-input::placeholder { color: #79848c; }
body.fz-auth-page .fi-fo-field-wrp-helper-text { color: #626d75; font-size: 12px; }
body.fz-auth-page .fi-fo-checkbox-label { font-size: 13px; line-height: 1.6; }
body.fz-auth-page .fi-checkbox-input { flex-shrink: 0; margin-top: 2px; }
body.fz-auth-page .fi-btn-color-primary { border-radius: 8px; min-height: 48px; background: var(--fz-auth-accent-dark); box-shadow: none !important; font-weight: 650; }
body.fz-auth-page .fi-btn-color-primary:hover { transform: none; box-shadow: none !important; filter: brightness(.92); }
body.fz-auth-page a:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 3px; }
body.fz-auth-page .fi-input-wrp:has(input[aria-invalid="true"]) { box-shadow: inset 0 0 0 1px #dc2626 !important; }
.fz-customer-login-help { display: grid; grid-template-columns: 24px minmax(0, 1fr); column-gap: 12px; row-gap: 8px; border-top: 1px solid #e7eae6; padding-top: 24px; }
.fz-customer-login-help-icon { color: #a33a32; }
.fz-customer-login-help-icon svg { width: 22px; height: 22px; }
.fz-customer-login-help-copy { display: grid; gap: 5px; }
.fz-customer-login-help-copy strong { color: #343c41; font-size: 13px; font-weight: 650; }
.fz-customer-login-help-copy small { color: #626d75; font-size: 12px; line-height: 1.6; }
.fz-customer-login-help a { grid-column: 2; display: flex; gap: 8px; align-items: center; color: var(--fz-auth-accent-dark); font-size: 13px; font-weight: 600; width: fit-content; }
.fz-customer-login-help a svg { width: 16px; height: 16px; }
body.fz-auth-page .fi-simple-page > .fz-portal-support { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 20px; padding: 20px 24px; border-top: 1px solid #e7eae6; background: #fafbf9; color: #626d75; font-size: 11px; line-height: 1.6; }
body.fz-auth-page .fi-simple-page > .fz-portal-support > * { margin: 0; overflow-wrap: anywhere; }
body.fz-auth-page .fz-portal-support a { text-decoration-color: #b9c1bc; text-underline-offset: 3px; }
body.fz-auth-provider .fi-fo-wizard-header { border-radius: 8px; }
@media (max-width: 900px) {
    body.fz-auth-page .fi-simple-main { max-width: 600px !important; }
    body.fz-auth-page .fi-simple-page { grid-template-columns: minmax(0, 1fr); }
    body.fz-auth-page .fz-auth-intro { min-height: 0; padding: 24px 32px; }
    .fz-auth-intro-content { gap: 0; }
    .fz-customer-login-showcase, .fz-provider-login-showcase, .fz-auth-intro-copy { margin: 0; padding: 22px 0 0; }
    .fz-auth-intro h2 { max-width: none; font-size: 28px; margin: 0; }
    .fz-customer-login-statement p, .fz-provider-login-showcase p, .fz-auth-intro-copy > p { display: none; }
    .fz-provider-login-label, .fz-auth-kicker, .fz-auth-feature-list, .fz-auth-intro-footer { display: none; }
    body.fz-auth-page .fi-simple-page > section:not(.fz-portal-support) { padding: 32px; }
}
@media (max-width: 480px) {
    body.fz-auth-page .fi-simple-layout { padding: 0; background: #fff; }
    body.fz-auth-page .fi-simple-main { border: 0; border-radius: 0 !important; box-shadow: none !important; }
    body.fz-auth-page .fi-simple-page > .fz-portal-language { padding: max(8px, env(safe-area-inset-top)) 16px 8px; }
    body.fz-auth-page .fz-auth-intro { padding: 22px 24px; }
    .fz-auth-brand strong { font-size: 16px; }
    .fz-auth-brand small { font-size: 10px; }
    .fz-auth-intro h2 { font-size: 25px; }
    body.fz-auth-page .fi-simple-page > section:not(.fz-portal-support) { padding: 28px 24px; gap: 24px; }
    body.fz-auth-page .fi-simple-header-heading { font-size: 27px; }
    body.fz-auth-page .fi-simple-page > .fz-portal-support { justify-content: flex-start; padding: 20px 24px max(24px, env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: reduce) {
    body.fz-auth-page *, body.fz-auth-page *::before, body.fz-auth-page *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Auth pages have no workspace sidebar; keep its global hook out of the shell. */
body.fz-auth-page .fz-portal-mobile-navigation-trigger { display: none !important; }
body.fz-auth-page .fi-simple-header-subheading { text-align: left; }
body.fz-auth-page .fi-simple-header-heading { text-align: left; }
body.fz-auth-provider .fi-fo-wizard { box-shadow: none; }
body.fz-auth-provider .fi-fo-wizard-header-step-label { color: #285c50; }
/* Auth detail pass: predictable reading order, compact wizard, clear errors. */
body.fz-auth-page .fi-simple-page > section:not(.fz-portal-support) { max-width: 100%; }
body.fz-auth-register .fi-simple-page > section:not(.fz-portal-support) { align-content: start; }
body.fz-auth-page .fi-simple-header-heading { text-wrap: balance; }
body.fz-auth-page .fi-fo-field-wrp-error-message { font-size: 13px; line-height: 1.5; }
body.fz-auth-page .fi-fo-wizard-header-step-button { padding: 16px; gap: 12px; }
body.fz-auth-page .fi-fo-wizard-header-step-label { white-space: normal; }
body.fz-auth-page .fi-fo-wizard > div { padding-inline: 20px; }
body.fz-auth-page .fi-btn:disabled { cursor: not-allowed; }
body.fz-auth-page .fi-input-wrp:has(input[aria-invalid="true"]):focus-within { outline: 2px solid #b91c1c; outline-offset: 2px; }
body.fz-auth-page .fz-portal-language a { min-height: 40px; display: inline-flex; align-items: center; }

/* Customer sign-in: one quiet column, with account entry as the focal point. */
body.fz-auth-page {
    --fz-auth-ink: #202124;
    --fz-auth-muted: #6e7177;
    --fz-auth-accent: #26282c;
    --fz-auth-accent-dark: #202124;
}
body.fz-auth-page .fi-simple-layout {
    background: #fafafa;
    padding: 32px 24px;
}
body.fz-auth-page .fi-simple-main {
    width: 100% !important;
    max-width: 460px !important;
    background: transparent !important;
    border: 0;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: visible;
}
body.fz-auth-page .fi-simple-page {
    display: flex;
    flex-direction: column;
    gap: 0;
}
body.fz-auth-page .fi-simple-page > .fz-portal-language {
    justify-content: center;
    border: 0;
    background: transparent;
    padding: 0 0 28px;
    gap: 6px;
}
body.fz-auth-page .fz-portal-language a {
    font-size: 12px;
    padding: 8px 12px;
}
body.fz-auth-page .fz-portal-language a[aria-current] {
    background: #ededee;
}
body.fz-auth-page .fz-auth-intro {
    min-height: 0;
    padding: 0 0 26px;
    background: transparent;
    overflow: visible;
}
body.fz-auth-page .fz-auth-intro-content { align-items: center; }
body.fz-auth-page .fz-auth-brand { color: #202124; gap: 10px; }
body.fz-auth-page .fz-auth-brand-mark { width: 32px; height: 36px; border-radius: 0; background: transparent; }
body.fz-auth-page .fz-auth-brand-mark img { width: 32px; height: 32px; }
body.fz-auth-page .fz-auth-brand strong { font-size: 18px; font-weight: 650; }
body.fz-auth-page .fz-auth-brand small,
body.fz-auth-page .fz-customer-login-showcase,
body.fz-auth-page .fz-auth-intro-footer { display: none; }
body.fz-auth-page .fi-simple-page > section:not(.fz-portal-support) {
    padding: 32px;
    gap: 24px;
    border: 1px solid #e6e6e8;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 4px 20px #20212404;
}
body.fz-auth-page .fi-simple-header { gap: 8px; align-items: center; }
body.fz-auth-page .fi-simple-header-heading { font-size: 30px; font-weight: 600; letter-spacing: -.045em; text-align: center; }
body.fz-auth-page .fi-simple-header-subheading { font-size: 14px; text-align: center; }
body.fz-auth-page .fi-fo-field-wrp-label span { font-size: 12px; font-weight: 550; color: #45474d; }
body.fz-auth-page .fi-fo-component-ctn { gap: 20px; }
body.fz-auth-page .fi-input-wrp { border-radius: 8px; background: #fff; min-height: 46px; }
body.fz-auth-page .fi-input { min-height: 46px; }
body.fz-auth-page .fi-input-wrp:focus-within { box-shadow: inset 0 0 0 1px #6b6e75, 0 0 0 3px #2021240a !important; }
body.fz-auth-page .fi-input-wrp:has([aria-invalid="true"]) { box-shadow: inset 0 0 0 1px #b91c1c !important; }
body.fz-auth-page .fi-input-wrp-prefix { display: none; }
body.fz-auth-page .fi-link { font-size: 12px; font-weight: 550; color: #45474d; }
body.fz-auth-page .fi-fo-checkbox-label { font-size: 12px; line-height: 1.6; color: #565960; }
body.fz-auth-page .fi-btn-color-primary { min-height: 48px; background: #202124; color: #fff; font-size: 14px; }
body.fz-auth-provider .fi-btn-color-primary { background: #0b6b57; }
body.fz-auth-customer .fi-btn-color-primary { background: #9f2722; }
body.fz-auth-page .fi-btn-color-primary:disabled { opacity: .65; }
body.fz-auth-page .fi-btn-color-primary svg { display: none; }
.fz-login-create { margin: 0; text-align: center; color: #6e7177; font-size: 13px; line-height: 1.6; }
.fz-login-create a { color: #202124; font-weight: 600; margin-left: 3px; text-underline-offset: 3px; }
.fz-login-create a:hover { text-decoration: underline; }
body.fz-auth-page .fz-customer-login-help { grid-template-columns: 1fr auto; align-items: center; gap: 10px; padding-top: 20px; border-color: #eee; }
body.fz-auth-page .fz-customer-login-help-icon,
body.fz-auth-page .fz-customer-login-help-copy small { display: none; }
body.fz-auth-page .fz-customer-login-help-copy strong { font-size: 12px; font-weight: 500; color: #6e7177; }
body.fz-auth-page .fz-customer-login-help a { grid-column: auto; font-size: 12px; color: #b3261e; font-weight: 600; }
.fz-login-footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 24px; padding: 24px 0 0; }
.fz-login-footer a { color: #75777d; font-size: 12px; padding: 8px 0; text-decoration: none; }
.fz-login-footer a:hover { color: #202124; }
@media (max-width: 480px) {
    body.fz-auth-page .fi-simple-layout { padding: max(16px, env(safe-area-inset-top)) 24px max(20px, env(safe-area-inset-bottom)); background: #fff; }
    body.fz-auth-page .fi-simple-main-ctn { justify-content: flex-start; }
    body.fz-auth-page .fi-simple-page > .fz-portal-language { padding-bottom: 24px; }
    body.fz-auth-page .fz-auth-intro { padding-bottom: 28px; }
    body.fz-auth-page .fi-simple-page > section:not(.fz-portal-support) { padding: 0; border: 0; border-radius: 0; box-shadow: none; }
    body.fz-auth-page .fi-simple-header-heading { font-size: 28px; }
    body.fz-auth-page .fz-customer-login-help { grid-template-columns: 1fr; justify-items: center; gap: 6px; }
}
body.fz-auth-page .fi-link span { color: #565960; font-weight: 500; }
body.fz-auth-page .fi-fo-field-wrp-label span,
body.fz-auth-page .fi-fo-checkbox-label span { font-weight: 500; }
/* Accessible native radio controls presented as a segmented selector. */
body.fz-auth-page .fz-login-method { display: flex; width: 100%; padding: 4px; border-radius: 10px; background: #f0f1f2; box-shadow: none; gap: 4px; }
body.fz-auth-page .fz-login-method .fi-btn { flex: 1; min-height: 40px; border: 0; border-radius: 7px !important; box-shadow: none !important; background: transparent !important; color: #666b73 !important; }
body.fz-auth-page .fz-login-method input:checked + .fi-btn { background: #fff !important; color: #202124 !important; box-shadow: 0 1px 4px #20212415 !important; }
body.fz-auth-page .fz-login-method input:focus-visible + .fi-btn { outline: 2px solid #656970; outline-offset: 2px; }

/* Registration gets room for paired fields, without an empty marketing column. */
body.fz-auth-page.fz-auth-register .fi-simple-main { max-width: 680px !important; }
body.fz-auth-page .fz-provider-login-showcase,
body.fz-auth-page .fz-auth-intro-copy,
body.fz-auth-page .fz-auth-feature-list,
body.fz-auth-page .fz-auth-assurance { display: none; }
body.fz-auth-page .fz-auth-intro { color: #202124; }
body.fz-auth-page .fi-fo-wizard { border: 0; box-shadow: none; }
body.fz-auth-page .fi-fo-wizard-header { background: #f7f8f8; border-color: #e6e6e8; margin-bottom: 24px; }
body.fz-auth-page .fi-fo-wizard > div { padding: 0; }
body.fz-auth-page .fi-fo-wizard-header-step-label { color: #34383e; }
body.fz-auth-page .fi-fo-wizard-header-step-icon-ctn { color: #34383e; }
body.fz-auth-page .fi-fo-wizard-header-step-description { color: #717780; }
body.fz-auth-page .fi-fo-field-wrp-helper-text { line-height: 1.6; }
@media (max-width: 640px) {
 body.fz-auth-register .fi-simple-header-heading { font-size: 26px; }
 body.fz-auth-page .fi-fo-wizard-header-step-button { padding: 12px; }
}
body.fz-auth-page .fi-fo-wizard > .flex.items-center.justify-between { margin-top: 24px; }
