/* EnFavori member sign-in / registration / account recovery.
   One scoped component; header, footer, business auth and legacy pages are untouched. */
.efm-auth{
    --efm-ink:#102a43;
    --efm-muted:#61768a;
    --efm-edge:#ccdce3;
    --efm-accent:#087f77;
    --efm-white:#fff;
    box-sizing:border-box;
    display:grid;
    place-items:center;
    width:100%;
    min-height:550px;
    margin:0;
    padding:clamp(26px,4.5vw,66px) 20px;
    background:
        radial-gradient(circle at 10% 15%,rgba(24,200,187,.11),transparent 35%),
        radial-gradient(circle at 92% 85%,rgba(25,71,108,.07),transparent 36%),
        #edf3f7;
}
.efm-auth *, .efm-auth *::before, .efm-auth *::after{box-sizing:border-box}
.efm-auth__shell{
    display:grid;
    grid-template-columns:minmax(0,.85fr) minmax(0,1fr);
    width:min(980px,100%);
    min-width:0;
    overflow:hidden;
    border:1px solid #cedbe3;
    border-radius:22px;
    background:#fff;
    box-shadow:0 24px 65px -38px rgba(12,37,61,.46);
}
.efm-auth__aside{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    min-width:0;
    overflow:hidden;
    padding:36px clamp(26px,3vw,42px);
    background:
        radial-gradient(circle at 110% 3%,rgba(45,207,193,.23),transparent 49%),
        linear-gradient(151deg,#133b54,#09263e 65%,#0b2239);
    color:#f4fbff;
}
.efm-auth__aside::after{
    content:"";
    position:absolute;
    right:-80px;
    bottom:8px;
    width:250px;
    height:250px;
    border:1px solid rgba(97,216,206,.12);
    border-radius:50%;
    box-shadow:0 0 0 42px rgba(97,216,206,.035),0 0 0 90px rgba(97,216,206,.025);
    pointer-events:none;
}
.efm-auth__brand{
    position:relative;
    z-index:1;
    display:inline-flex;
    align-items:center;
    gap:11px;
    align-self:flex-start;
    color:#fff;
    font-size:20px;
    font-weight:850;
    line-height:1.2;
    letter-spacing:-.02em;
}
.efm-auth__brand-mark{
    display:grid;
    place-items:center;
    width:38px;
    height:38px;
    border:1px solid rgba(69,216,204,.45);
    border-radius:11px;
    background:#0a8a80;
    color:#fff;
    font-size:20px;
}
.efm-auth__aside-body{position:relative;z-index:1;margin:42px 0 38px}
.efm-auth__aside-kicker{
    margin:0 0 14px;
    color:#67e7d6;
    font-size:12px;
    font-weight:850;
    letter-spacing:.085em;
    text-transform:uppercase;
}
.efm-auth__aside h2{
    max-width:360px;
    margin:0 0 14px;
    color:#fff;
    font-size:clamp(25px,2.6vw,34px);
    line-height:1.17;
    font-weight:900;
    letter-spacing:-.03em;
}
.efm-auth__aside-lead{
    max-width:370px;
    margin:0 0 30px;
    color:#c8dce6;
    font-size:14px;
    line-height:1.7;
}
.efm-auth__benefits{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.efm-auth__benefits li{
    display:flex;
    align-items:center;
    gap:11px;
    color:#eff9fa;
    font-size:13px;
    line-height:1.5;
    font-weight:650;
}
.efm-auth__benefits li > span{
    display:grid;
    place-items:center;
    flex:0 0 26px;
    height:26px;
    border-radius:8px;
    background:rgba(42,211,191,.15);
    color:#66e3d5;
    font-size:14px;
    font-weight:900;
}
.efm-auth__motto{position:relative;z-index:1;margin:0;color:#a2bdcc;font-size:12px;font-weight:750}
.efm-auth__main{
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-width:0;
    padding:clamp(30px,3.4vw,48px) clamp(28px,3.5vw,50px);
    color:var(--efm-ink);
    background:var(--efm-white);
}
.efm-auth__kicker{
    margin:0 0 9px;
    color:var(--efm-accent);
    font-size:11px;
    font-weight:850;
    letter-spacing:.085em;
    text-transform:uppercase;
}
.efm-auth__main h1{
    margin:0 0 11px;
    color:var(--efm-ink);
    font-size:clamp(25px,2.3vw,32px);
    line-height:1.2;
    font-weight:900;
    letter-spacing:-.025em;
}
.efm-auth__lead{
    margin:0 0 24px;
    color:var(--efm-muted);
    font-size:14px;
    line-height:1.6;
}
.efm-auth .form{display:grid;gap:16px;min-width:0}
.efm-auth .field{display:grid;gap:7px;margin:0;color:var(--efm-ink);font-size:13px;font-weight:750}
.efm-auth .field > span{display:block;line-height:1.35}
.efm-auth .field small{font-size:12px;font-weight:550;color:var(--efm-muted)}
.efm-auth .field input{
    display:block;
    width:100%;
    min-width:0;
    height:48px;
    padding:10px 14px;
    border:1px solid var(--efm-edge);
    border-radius:11px;
    background:#f9fcfd;
    color:var(--efm-ink);
    font:inherit;
    font-size:15px;
    font-weight:500;
    line-height:1.4;
    box-shadow:none;
    transition:border-color .15s,box-shadow .15s,background .15s;
}
.efm-auth .field input:focus{
    outline:none;
    border-color:var(--efm-accent);
    background:#fff;
    box-shadow:0 0 0 4px rgba(15,159,147,.12);
}
.efm-auth .form__row{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    align-items:center;
    gap:10px 18px;
    margin:1px 0 0;
}
.efm-auth .check{
    display:inline-flex;
    align-items:flex-start;
    gap:9px;
    margin:0;
    color:#54687b;
    font-size:13px;
    font-weight:550;
    line-height:1.5;
    cursor:pointer;
}
.efm-auth .check input{
    flex:0 0 17px;
    width:17px;
    height:17px;
    margin:1px 0 0;
    accent-color:var(--efm-accent);
}
.efm-auth .form__link,
.efm-auth .auth__switch a{
    color:#087f77;
    font-size:13px;
    font-weight:750;
    text-decoration:none;
}
.efm-auth .form__link:hover,
.efm-auth .auth__switch a:hover{text-decoration:underline}
.efm-auth .form > .btn.btn--block{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:48px;
    margin:4px 0 0;
    padding:10px 18px;
    border:1px solid #087f77;
    border-radius:11px;
    background:#087f77;
    color:#fff;
    font:inherit;
    font-size:15px;
    font-weight:800;
    line-height:1.35;
    text-decoration:none;
    cursor:pointer;
}
.efm-auth .form > .btn.btn--block:hover{background:#096d68;border-color:#096d68}
.efm-auth .form > .btn.btn--block:active{transform:translateY(1px)}
.efm-auth .btn-google{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    width:100%;
    min-height:47px;
    margin:0;
    padding:10px 16px;
    border:1px solid var(--efm-edge);
    border-radius:11px;
    background:#fff;
    color:var(--efm-ink);
    font-size:13px;
    font-weight:750;
    line-height:1.4;
    text-decoration:none;
}
.efm-auth .btn-google:hover{border-color:#91bbb4;background:#f6faf9}
.efm-auth .btn-google svg{flex:0 0 20px}
.efm-auth .divider{
    display:flex;
    align-items:center;
    gap:12px;
    margin:17px 0;
    color:#8291a2;
    font-size:12px;
    font-weight:600;
}
.efm-auth .divider::before,.efm-auth .divider::after{
    content:"";
    flex:1;
    height:1px;
    background:var(--efm-edge);
}
.efm-auth .auth__switch{
    margin:23px 0 0;
    padding-top:20px;
    border-top:1px solid #e3ebf0;
    color:#5a6d81;
    font-size:13px;
    line-height:1.5;
    text-align:center;
}
.efm-auth .alert{
    margin:0;
    padding:12px 14px;
    border:1px solid #f3b7ba;
    border-radius:10px;
    background:#fff3f3;
    color:#9b2634;
    font-size:13px;
    line-height:1.5;
}
.efm-auth .notice,
.efm-auth .invite-note{
    margin:0 0 16px;
    padding:12px 14px;
    border:1px solid #a9dcd4;
    border-radius:10px;
    background:#e9f8f4;
    color:#116b61;
    font-size:13px;
    line-height:1.5;
}
.efm-auth :is(a,button,input):focus-visible{
    outline:3px solid #2ad3c1;
    outline-offset:3px;
}
.efm-auth .field input:focus-visible{outline:none}
@media(max-width:800px){
    .efm-auth{min-height:0;padding:24px 16px 40px}
    .efm-auth__shell{grid-template-columns:minmax(0,1fr);max-width:580px;border-radius:18px}
    .efm-auth__aside{padding:22px 26px 20px;min-height:0}
    .efm-auth__aside-body{margin:22px 0 0}
    .efm-auth__aside h2{max-width:none;margin:0;color:#fff;font-size:22px}
    .efm-auth__aside-lead,
    .efm-auth__aside-kicker,
    .efm-auth__benefits,
    .efm-auth__motto{display:none}
    .efm-auth__main{padding:28px 26px 32px}
}
@media(max-width:420px){
    .efm-auth{padding:14px 12px 30px}
    .efm-auth__shell{border-radius:15px}
    .efm-auth__aside{padding:18px 19px}
    .efm-auth__brand{font-size:17px}
    .efm-auth__brand-mark{width:33px;height:33px;font-size:17px}
    .efm-auth__aside-body{margin:14px 0 0}
    .efm-auth__aside h2{font-size:19px}
    .efm-auth__main{padding:23px 19px 27px}
    .efm-auth .form__row{gap:11px}
}
/* Dark-theme readiness is opt-in: do not unexpectedly invert the site's white theme. */
html[data-theme="dark"] .efm-auth,
body.theme-dark .efm-auth,
body.dark .efm-auth{
    background:#0c1d2d;
}
html[data-theme="dark"] .efm-auth__main,
body.theme-dark .efm-auth__main,
body.dark .efm-auth__main{
    --efm-ink:#e9f4fb;
    --efm-muted:#b0c2d2;
    --efm-edge:#38546c;
    --efm-white:#122b42;
}
html[data-theme="dark"] .efm-auth .field input,
body.theme-dark .efm-auth .field input,
body.dark .efm-auth .field input{
    background:#19384e;
    color:#edf9ff;
}
html[data-theme="dark"] .efm-auth .btn-google,
body.theme-dark .efm-auth .btn-google,
body.dark .efm-auth .btn-google{background:#19384e;color:#edf9ff}
html[data-theme="dark"] .efm-auth .check,
html[data-theme="dark"] .efm-auth .auth__switch,
body.theme-dark .efm-auth .check,
body.theme-dark .efm-auth .auth__switch,
body.dark .efm-auth .check,
body.dark .efm-auth .auth__switch{color:#b6c9d7}
