.efs-shell {
    --efs-navy: #070d1a;
    --efs-navy-2: #0c1730;
    --efs-blue: #1e4ed8;
    --efs-blue-bright: #3b82f6;
    --efs-text: #e8eefc;
    min-height: 100vh;
    display: flex;
    background: var(--efs-navy);
}

.efs-brand {
    position: relative;
    display: none;
    flex-direction: column;
    justify-content: space-between;
    width: 46%;
    padding: 2.5rem 3rem;
    overflow: hidden;
    color: var(--efs-text);
}

@media (min-width: 960px) {
    .efs-brand {
        display: flex;
    }
}

.efs-brand__glow {
    position: absolute;
    inset: -20% -10% auto auto;
    width: 28rem;
    height: 28rem;
    background: radial-gradient(circle, rgba(30, 78, 216, 0.45), transparent 68%);
    pointer-events: none;
}

.efs-brand__grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(115deg, transparent 40%, rgba(255, 255, 255, 0.04) 40.5%, transparent 41%),
        linear-gradient(115deg, transparent 55%, rgba(255, 255, 255, 0.03) 55.5%, transparent 56%),
        linear-gradient(115deg, transparent 70%, rgba(255, 255, 255, 0.025) 70.5%, transparent 71%);
    pointer-events: none;
}

.efs-brand__top,
.efs-brand__copy,
.efs-brand__foot {
    position: relative;
    z-index: 1;
}

.efs-brand__top {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.efs-brand__mark {
    width: 3rem;
    height: 3rem;
    border-radius: 999px;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.25);
}

.efs-brand__name {
    margin: 0;
    font-size: 1.15rem;
    font-weight: 800;
    letter-spacing: 0.08em;
}

.efs-brand__product {
    margin: 0.1rem 0 0;
    font-size: 0.82rem;
    color: #93c5fd;
}

.efs-brand__eyebrow {
    margin: 0 0 0.75rem;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #93c5fd;
}

.efs-brand__headline {
    margin: 0 0 1rem;
    max-width: 22ch;
    font-size: clamp(1.7rem, 3vw, 2.35rem);
    line-height: 1.2;
    font-weight: 750;
}

.efs-brand__lede {
    margin: 0;
    max-width: 36ch;
    color: #b6c4e0;
    font-size: 0.98rem;
    line-height: 1.6;
}

.efs-brand__foot {
    display: flex;
    gap: 0.45rem;
    font-size: 0.8rem;
    color: #8ea0c4;
}

.efs-brand__foot a {
    color: #dbeafe;
    text-decoration: none;
}

.efs-brand__foot a:hover {
    text-decoration: underline;
}

.efs-form {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background:
        radial-gradient(circle at top right, rgba(30, 78, 216, 0.08), transparent 36%),
        #f4f7fb;
    color-scheme: light;
    color: #0f172a;
}

.efs-form .fi-simple-layout {
    min-height: auto;
    width: 100%;
    background: transparent;
}

.efs-form .fi-simple-main-ctn {
    flex-grow: 0;
}

.efs-form .fi-simple-main {
    width: 100%;
    max-width: 26rem;
    margin: 0;
    padding: 2rem 1.75rem;
    border-radius: 1.25rem;
    background: #fff;
    box-shadow: 0 18px 50px rgba(7, 13, 26, 0.1);
    --tw-ring-shadow: 0 0 #0000;
    --tw-ring-offset-shadow: 0 0 #0000;
}

@media (min-width: 640px) {
    .efs-form .fi-simple-main {
        padding: 2.4rem 2.2rem;
    }
}

.efs-form .fi-simple-header-heading {
    font-size: 1.55rem;
    color: #0b1530 !important;
}

.efs-form .fi-simple-header-subheading {
    color: #64748b !important;
}

/* Panel is dark-mode by default; auth card is white — force readable ink. */
.efs-form .fi-simple-main {
    color: #0f172a !important;
}

html.dark .efs-form .fi-simple-header-heading,
.dark .efs-form .fi-simple-header-heading {
    color: #0b1530 !important;
}

html.dark .efs-form .fi-simple-header-subheading,
.dark .efs-form .fi-simple-header-subheading {
    color: #64748b !important;
}

html.dark .efs-form .fi-fo-field-wrp-label,
html.dark .efs-form .fi-fo-field-wrp-label span,
html.dark .efs-form label.fi-fo-field-wrp-label,
.dark .efs-form .fi-fo-field-wrp-label,
.dark .efs-form .fi-fo-field-wrp-label span,
.efs-form .fi-fo-field-wrp-label span,
.efs-form .fi-fo-field-wrp-label,
.efs-form label.fi-fo-field-wrp-label {
    color: #0f172a !important;
    font-weight: 600;
}

html.dark .efs-form .fi-checkbox-input + span,
html.dark .efs-form .fi-fo-checkbox label,
.dark .efs-form .fi-checkbox-input + span,
.dark .efs-form .fi-fo-checkbox label,
.efs-form .fi-checkbox-input + span,
.efs-form .fi-fo-checkbox label,
.efs-form .fi-fo-checkbox .fi-checkbox-label,
.efs-form label:has(input[type="checkbox"]) {
    color: #334155 !important;
}

.efs-form input[type="email"],
.efs-form input[type="password"],
.efs-form input[type="text"],
.efs-form input:not([type="checkbox"]):not([type="hidden"]),
html.dark .efs-form input:not([type="checkbox"]):not([type="hidden"]),
.dark .efs-form input:not([type="checkbox"]):not([type="hidden"]) {
    color: #0f172a !important;
}

.efs-form input::placeholder {
    color: #94a3b8 !important;
}

.efs-brand-logo {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    height: 100%;
}

.efs-brand-logo__mark {
    width: 2.2rem;
    height: 2.2rem;
    border-radius: 999px;
    display: block;
}

.efs-brand-logo__text {
    font-size: 1.05rem;
    font-weight: 800;
    letter-spacing: 0.06em;
    color: #0b1530;
    line-height: 1;
}

.efs-form .fi-btn-primary,
.efs-form button[type="submit"] {
    --tw-ring-color: rgb(30 78 216 / 0.3);
}

.efs-forgot-link {
    color: #1e4ed8 !important;
    text-decoration: underline;
    text-underline-offset: 3px;
    white-space: nowrap;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
}

.efs-forgot-link:hover {
    color: #163db0 !important;
}

/* Remember me (left) + Forgot password (right) */
.efs-remember-row {
    align-items: center !important;
    margin-top: 0.15rem;
}

.efs-remember-row .efs-remember-check {
    margin-bottom: 0 !important;
}

.efs-forgot-wrap {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    min-height: 1.5rem;
    padding-top: 0.1rem;
}

.efs-remember-row .fi-fo-placeholder {
    margin: 0 !important;
}

body:has(.efs-shell) {
    background: var(--efs-navy, #070d1a);
}
