@media screen and (max-width:1440px){
    .form-wrap.form-builder{
        min-width: 1100px !important;
    }
}
@media screen and (max-width:1024px){
    .form-wrap.form-builder{
        min-width: 830px !important;
    }
}
@media screen and (max-width:768px){
    /* .reload-position{
        position: relative;
        right: -315px;
    } */
    .form-check.form-switch {
        width: 100% !important;
    }
    .grid-tab-2{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .largemr-17 {
        margin-right: auto;
    }
    .form-wrap.form-builder .cb-wrap{
        inset: 0px auto auto 0px !important;
    }
    .form-wrap.form-builder .frmb-control li::before {
        font-size: 20px !important;
    }
    .form-wrap.form-builder {
        min-width: 580px !important;
    }
    .mob-scroll{
        overflow: scroll !important;
    }
}
@media screen and (max-width:425px){
    .small-margin{
        margin-right: 24px;
    }
    /* .reload-position {
        position: relative;
        right: -115px;
    } */
    .grid-mob-1{
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .mrgn-0{
        margin-top: 0 !important;
    }
    .mini-scrn-drpdwn{
        transform: translate3d(-132px, 139px, 0px) !important;
    }
    .form-wrap.form-builder .cb-wrap{
        inset: 0px auto auto 0px !important;
    }
    .form-wrap.form-builder .frmb-control li::before {
        font-size: 20px !important;
    }
    .form-wrap.form-builder {
        min-width: 370px !important;
    }
    .mini-scrn-drpdwn.show > .dropdown-content{
        width: 350px !important;
    }
    .notif-scroll{
        min-width: 300px !important;
    }
    .mob-scroll{
        overflow: scroll !important;
    }
    .login .login__input-phone {
        min-width: 255px !important;
    }
}
@media screen and (max-width:375px){
    /* .reload-position {
        position: relative;
        right: -90px;
    } */
    .mini-screen{
        display: flex;
        flex-wrap: wrap;
        height: 60px;
    }
    .mini-scrn-lang{
        margin-right: 0rem !important;
        margin-left: auto;
    }
    .mini-scrn-drpdwn{
        transform: translate3d(-83px, 180px, 0px) !important;
    }
    /* .mini-scrn-drpdwn-ac{
        transform: translate3d(-30px, 190px, 0px) !important;
    } */
    .mini-scrn-drpdwn.show > .dropdown-content{
        width: 350px !important;
    }
    .dropdown-item {
        width: 310px;
    }
    .form-wrap.form-builder {
        min-width: 320px !important;
    }
    .notif-scroll{
        min-width: 300px !important;
    }
    .login .login__input-phone {
        min-width: 200px !important;
    }

}
@media screen and (max-width:320px){
    /* .reload-position {
        position: relative;
        right: -40px;
    } */
    .mini-screen{
        display: flex;
        flex-wrap: wrap;
        height: 95px;
    }
    /* .mini-scrn-lang{
        margin-right: 30px !important;
        margin-left: 0rem;
    } */
    .mini-scrn-drpdwn{
        transform: translate3d(-28px, 180px, 0px) !important;
    }
    .mini-scrn-drpdwn.show > .dropdown-content{
        width: 295px !important;
    }
    .dropdown-item {
        width: 258px;
    }
    .notif-scroll{
        min-width: 265px !important;
    }
    /* .mytoggle{
        position: absolute !important;
        top: 0px !important;
        left: -206px !important;
    } */
}
.form-check.form-switch {
    width: 68%;
}
.bg_img{
    height: 300px;
    width: 500px;
}
.uploadprofileimg{
    width: 150px;
    height: 150px
}
.logosize_new {
    height: 100px;
    width: 100px;
}
.logo_size-giftp {
    height: 90px;
    width: 150px;
    float: right !important;
}

.invalid-div{
    color: #DC2C2B;

}
.mini-scrn-drpdwn.show > .dropdown-content{
    width: 400px;
}
.form-wrap.form-builder{
    min-width: 1010px !important;
}
.form-control:disabled, .form-control[readonly]{
    background-color: #fff !important;
}

/* Country flag */
.iti{
    width: 100%;
}
.btn-signup-web {
    display: inline-flex;
    cursor: pointer;
    align-items: center;
    font-size: 15px;
    font-weight: 500;
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    transition-property: color, background-color, border-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 200ms;
}

/* signup design */
.signup{
    position: relative;
    /* overflow: hidden; */
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity));
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    /* padding-left: 2rem;
    padding-right: 2rem; */
}
@media (max-width: calc(1280px - 1px)) {
    .signup{
        --tw-bg-opacity: 1;
        background-color: rgb(var(--color-primary) / var(--tw-bg-opacity));
    }
  }
/* .signup:before {
        content: "";
        position: absolute;
        top: 0px;
        bottom: 0px;
        left: 0px;
        margin-top: -28%;
        margin-bottom: -15%;
        margin-left: -13%;
        width: 50%;
        --tw-rotate: -4deg;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
        border-radius: 100%;
        background-color: rgb(var(--color-primary) / 0.0);
    } */

@media (max-width: calc(1280px - 1px)) {
        .signup:before{
            display: none;
        }
    }
/* .signup:after {
        content: "";
        position: absolute;
        top: 0px;
        bottom: 0px;
        left: 0px;
        margin-top: -20%;
        margin-bottom: -12%;
        margin-left: -13%;
        width: 50%;
        --tw-rotate: -4deg;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
        border-radius: 100%;
        --tw-bg-opacity: 1;
        background-color: #EEEEEE;
        background-image: url(../images/signupbg.jpg);
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover;
    } */
@media (max-width: calc(1280px - 1px)) {
    .signup:after{
        display: none;
    }
    } 
    
    .signup .signup {
        min-width: 300px;
    }
    .iti--allow-dropdown input, .iti--allow-dropdown input[type=text], .iti--allow-dropdown input[type=tel], .iti--separate-dial-code input, .iti--separate-dial-code input[type=text], .iti--separate-dial-code input[type=tel]{
        padding-right: 80px !important;
    }
    .left-divider{
        margin: 8px;
        width: 100%;
        height: 1px;
        background-color: #e5e5e5;
    }
    .right-divider{
        margin: 8px;
        width: 100%;
        height: 1px;
        background-color: #e5e5e5;
    }

/* ==========================================================================
   Tenant login page redesign
   ========================================================================== */

/* ── RESET: Override app.css .login conflicts ──
   app.css sets overflow:hidden + padding:2rem on body.login,
   which kills scrolling and creates the white gaps on top/left. */
body.login {
    background: #fff;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 0 !important;
    margin: 0;
}
/* Suppress the old decorative circles from app.css that can overflow */
body.login::before,
body.login::after { display: none !important; }

/* ── Overall wrapper ── */
.sn-login-wrapper { display: flex; min-height: 100vh; padding: 0; margin: 0; }
/* grid needs min-height so panels stretch full viewport and the
   absolutely-positioned custom image has a real height to fill */
.sn-login-grid   { display: flex; width: 100%; min-height: 100vh; }

/* ── Left brand panel ── */
.sn-panel-left {
    flex: 0 0 45%;
    background: var(--color-primary, #e85e93);
    position: relative;
    overflow: hidden;
    padding: 2.5rem 3rem;
    flex-direction: column;
    min-height: 100vh;
}
/* Full-bleed custom image mode — entire left side replaced by uploaded image */
.sn-panel-left--custom { padding: 0 !important; background: none !important; }
.sn-panel-left--custom::before,
.sn-panel-left--custom::after { display: none !important; }
.sn-panel-custom-img {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    object-position: center;
    z-index: 1;
    display: block;
}

.sn-panel-left::before {
    content: "";
    position: absolute;
    bottom: -120px; right: -120px;
    width: 420px; height: 420px;
    background: rgba(255,255,255,.08);
    border-radius: 50%;
}
.sn-panel-left::after {
    content: "";
    position: absolute;
    top: -80px; left: -80px;
    width: 280px; height: 280px;
    background: rgba(255,255,255,.06);
    border-radius: 50%;
}
.sn-panel-logo img { height: 52px; width: auto; }
.sn-panel-body { position: relative; z-index: 1; }
.sn-login-illustration {
    width: 62%;
    max-height: 320px;
    object-fit: contain;
    display: block;
    margin-bottom: 2.5rem;
}
.sn-panel-headline {
    font-size: 2.1rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.25;
    margin-bottom: .9rem;
}
.sn-panel-sub {
    font-size: 1rem;
    color: rgba(255,255,255,.75);
    line-height: 1.6;
}

/* ── Right form panel ── */
.sn-panel-right {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    padding: 3rem 2rem;
    background: linear-gradient(160deg, #fff 60%, #fdf4f8 100%);
    position: relative;
    overflow: hidden;
    min-height: 100vh;
}
.sn-panel-right::before {
    content: "";
    position: absolute;
    top: -160px; right: -160px;
    width: 420px; height: 420px;
    background: radial-gradient(circle, rgba(232,94,147,.10), transparent 70%);
    border-radius: 50%;
}
.sn-panel-right::after {
    content: "";
    position: absolute;
    bottom: -120px; left: -80px;
    width: 340px; height: 340px;
    background: radial-gradient(circle, rgba(63,28,81,.06), transparent 70%);
    border-radius: 50%;
}
/* ── Single prominent logo above the card ── */
.sn-right-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 420px;
    position: relative;
    z-index: 1;
}
.sn-brand-logo {
    margin-bottom: 1.75rem;
    text-align: center;
    width: 100%;
}
.sn-brand-logo img {
    height: auto;
    width: 300px;
    max-width: 90%;
    display: inline-block;
    filter: drop-shadow(0 4px 12px rgba(63,28,81,.12));
}

/* ── Login card ── */
.sn-login-card {
    background: #fff;
    border-radius: 20px;
    padding: 2.75rem 2.5rem;
    width: 100%;
    box-shadow: 0 24px 60px rgba(63,28,81,.12), 0 4px 16px rgba(63,28,81,.06);
    border: 1px solid rgba(63,28,81,.06);
    position: relative;
    z-index: 1;
}
.sn-card-heading {
    font-size: 1.75rem;
    font-weight: 800;
    color: #1a1032;
    margin-bottom: .4rem;
    line-height: 1.2;
}
.sn-card-sub {
    font-size: .95rem;
    color: #6b7280;
    margin-bottom: 1.75rem;
}

/* ── Fields ── */
.sn-fields { display: flex; flex-direction: column; gap: .9rem; margin-bottom: 1rem; }
.sn-input-group { position: relative; }
.sn-input-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #9ca3af;
    font-size: 14px;
    pointer-events: none;
    z-index: 50;
}
.sn-input {
    width: 100%;
    border: 1.5px solid #e5e7eb !important;
    border-radius: 10px !important;
    padding: .85rem 1rem .85rem 2.75rem !important;
    font-size: 1rem !important;
    color: #111827;
    background: #fafafa !important;
    transition: border-color .15s, box-shadow .15s, background .15s !important;
    outline: none !important;
    height: auto !important;
}
.sn-input:focus {
    border-color: var(--color-primary, #e85e93) !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(232,94,147,.15) !important;
}
.sn-input-with-icon { padding-left: 2.75rem !important; }

/* ── Remember me ── */
.sn-remember {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .875rem;
    color: #6b7280;
    margin-bottom: 1.5rem;
}

/* ── Sign in button ── */
.sn-signin-btn {
    display: block;
    width: 100%;
    padding: .9rem 1.5rem;
    border-radius: 10px;
    border: none;
    cursor: pointer;
    font-size: .95rem;
    font-weight: 700;
    letter-spacing: .03em;
    color: #fff;
    background: linear-gradient(135deg, var(--color-primary, #e85e93) 0%, #c2487a 100%);
    box-shadow: 0 10px 28px rgba(232,94,147,.38);
    transition: transform .15s, box-shadow .15s, opacity .15s;
}
.sn-signin-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 32px rgba(232,94,147,.48);
    opacity: .95;
}
.sn-signin-btn:active { transform: translateY(0); }

/* ── Terms ── */
.sn-card-terms { text-align: center; margin-top: 1.5rem; margin-bottom: 0; }
.sn-terms-link {
    color: #9ca3af;
    font-size: .8rem;
    text-decoration: none;
    transition: color .15s;
}
.sn-terms-link:hover { color: var(--color-primary, #e85e93); }

/* ── Error banner ── */
.sn-error-banner {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
    border-radius: 8px;
    padding: .65rem 1rem;
    font-size: .875rem;
    margin-bottom: 1rem;
}

/* ── Mobile / tablet (old two-panel layout) ── */
@media (max-width: 1279px) {
    body.login { background-color: #fff !important; }
    .sn-login-wrapper { align-items: flex-start; }
    .sn-panel-right {
        min-height: 100vh;
        background: linear-gradient(160deg,#fff 60%,#fdf4f8 100%);
        padding: 2rem 1rem;
        overflow-y: auto;
    }
    .sn-login-card { max-width: 100%; }
}

/* ══════════════════════════════════════════════════════════════
   LOGIN V2 — Centered single-column, mesh background, salon tools
   ══════════════════════════════════════════════════════════════ */

/* ── Page shell ── */
.sn2-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: hidden;
    background-color: #edeaf5;
    /* Subtle geometric mesh using overlapping diagonal grids */
    background-image:
        linear-gradient(rgba(185,178,210,0.38) 1px, transparent 1px),
        linear-gradient(90deg, rgba(185,178,210,0.38) 1px, transparent 1px),
        linear-gradient(45deg, rgba(185,178,210,0.18) 1px, transparent 1px),
        linear-gradient(-45deg, rgba(185,178,210,0.18) 1px, transparent 1px);
    background-size: 52px 52px, 52px 52px, 73px 73px, 73px 73px;
}

/* ── Decorative salon tool icons ── */
.sn2-tool {
    position: absolute;
    color: #bdb6d0;
    pointer-events: none;
    user-select: none;
}
/* Bottom-left: large scissors */
.sn2-tool-1 { font-size: 6.5rem; bottom: 50px; left: 50px; transform: rotate(-30deg); }
/* Bottom-left: comb */
.sn2-tool-2 { font-size: 3.8rem; bottom: 60px; left: 185px; transform: rotate(15deg); }
/* Top-left: scissors */
.sn2-tool-3 { font-size: 3.8rem; top: 50px; left: 80px; transform: rotate(50deg); }
/* Top-right: scissors */
.sn2-tool-4 { font-size: 3.2rem; top: 30px; right: 110px; transform: rotate(-22deg); }
/* Right-upper: comb */
.sn2-tool-5 { font-size: 2.8rem; top: 110px; right: 55px; transform: rotate(-8deg); }
/* Right-middle: scissors */
.sn2-tool-6 { font-size: 4.8rem; top: 52%; right: 45px; transform: translateY(-50%) rotate(62deg); }

/* ── Centered content column ── */
.sn2-center {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    max-width: 390px;
    padding: 2rem 1.25rem;
    position: relative;
    z-index: 1;
}

/* ── Logo ── */
.sn2-logo-wrap { text-align: center; margin-bottom: 1.2rem; }
.sn2-logo-img  { height: 62px; width: auto; display: block; margin: 0 auto; }
.sn2-tagline   {
    margin: 0.25rem 0 0;
    font-size: 0.76rem;
    color: #9992b0;
    font-style: italic;
    letter-spacing: 0.05em;
}

/* ── Card ── */
.sn2-card {
    width: 100%;
    background: rgba(255,255,255,0.94);
    border: 1.5px solid rgba(155,105,175,0.28);
    border-radius: 14px;
    padding: 1.75rem 1.75rem 1.5rem;
    box-shadow: 0 6px 30px rgba(70,30,90,0.10), 0 1px 6px rgba(70,30,90,0.06);
    backdrop-filter: blur(4px);
}

/* ── Form fields ── */
.sn2-field {
    position: relative;
    margin-bottom: 1rem;
}
.sn2-field-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #b0a8c8;
    font-size: 13px;
    pointer-events: none;
    z-index: 1;
}
.sn2-input {
    width: 100%;
    border: 1px solid #ddd9ea;
    border-radius: 8px;
    padding: 0.72rem 2.4rem;
    font-size: 1rem;
    color: #333;
    background: #fff;
    outline: none;
    box-sizing: border-box;
    transition: border-color .15s, box-shadow .15s;
}
.sn2-input::placeholder { color: #c0b8d5; }
.sn2-input:focus {
    border-color: var(--color-primary, #a060a0);
    box-shadow: 0 0 0 3px rgba(155,80,155,0.13);
}
.sn2-input--error { border-color: #ef4444 !important; }

/* Password eye toggle */
.sn2-eye-btn {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: #c0b8d5;
    padding: 4px;
    line-height: 1;
    font-size: 13px;
    transition: color .15s;
}
.sn2-eye-btn:hover { color: #806898; }

/* ── Login button ── */
.sn2-login-btn {
    display: block;
    width: 100%;
    padding: 0.78rem 1rem;
    border: none;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--color-primary, #b060a0) 0%, #5e2878 100%);
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    margin-top: 0.25rem;
    transition: opacity .15s, transform .1s;
    letter-spacing: 0.02em;
}
.sn2-login-btn:hover  { opacity: .92; transform: translateY(-1px); }
.sn2-login-btn:active { transform: translateY(0); }

/* ── Forgot password ── */
.sn2-forgot-row { text-align: right; margin: 0.65rem 0 0; }
.sn2-forgot-link {
    font-size: 0.78rem;
    color: #b0a8c8;
    text-decoration: none;
    transition: color .15s;
}
.sn2-forgot-link:hover { color: var(--color-primary, #a060a0); }

/* ── Error banner ── */
.sn2-error-banner {
    background: #fef2f2;
    border: 1px solid #fecaca;
    color: #dc2626;
    border-radius: 8px;
    padding: .6rem .9rem;
    font-size: .82rem;
    margin-bottom: 1rem;
}

/* ── Language switcher ── */
.sn2-lang {
    display: flex;
    margin-top: 1.25rem;
    background: rgba(255,255,255,0.85);
    border: 1px solid #ddd9ea;
    border-radius: 20px;
    padding: 3px;
    gap: 2px;
}
.sn2-lang-btn {
    padding: 0.32rem 1.1rem;
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 0.85rem;
    color: #7a728a;
    border-radius: 16px;
    transition: background .15s, color .15s;
    font-family: inherit;
}
.sn2-lang-btn--active {
    background: var(--color-primary, #a060a0);
    color: #fff;
}

/* ── Bottom corners ── */
.sn2-corner-left {
    position: fixed;
    bottom: 1rem;
    left: 1.25rem;
    display: flex;
    gap: 0.5rem;
    z-index: 10;
}
.sn2-corner-right {
    position: fixed;
    bottom: 1rem;
    right: 1.25rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    z-index: 10;
}
.sn2-copyright { font-size: 0.7rem; color: #b0a8c8; white-space: nowrap; }
.sn2-icon-btn {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    border: 1px solid #ddd9ea;
    background: rgba(255,255,255,0.9);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #9990b0;
    font-size: 12px;
    box-shadow: 0 2px 8px rgba(70,30,90,0.09);
    transition: transform .1s, box-shadow .1s;
    padding: 0;
}
.sn2-icon-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(70,30,90,0.15);
}

/* ── Mobile ── */
@media (max-width: 600px) {
    .sn2-tool-2, .sn2-tool-3, .sn2-tool-5 { display: none; }
    .sn2-tool-1 { font-size: 5rem; bottom: 25px; left: 25px; }
    .sn2-tool-4 { font-size: 2.5rem; top: 20px; right: 60px; }
    .sn2-tool-6 { font-size: 3.5rem; right: 15px; }
    .sn2-center { padding: 1.5rem 1rem; max-width: 100%; }
    .sn2-card   { padding: 1.5rem 1.25rem; border-radius: 12px; }
    .sn2-copyright { display: none; }
}

/* ══════════════════════════════════════════════════════════════
   LOGIN V3 — Full-screen background + glassmorphism card (right)
   Matches design: salon interior bg + frosted card on right side
   ══════════════════════════════════════════════════════════════ */

/* ── Page shell ── */
.sn3-page {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
    /* Fallback gradient when no background image is uploaded */
    background: linear-gradient(135deg, #d0c0e0 0%, #a888c8 30%, #c0a8d8 60%, #ede0f4 100%);
    display: flex;
    align-items: stretch;
}

/* Background image URL is set via inline style; size/position via this class so media queries work */
.sn3-page--has-bg {
    background-size: cover;
    background-position: left center;   /* desktop: show SALONI logo on left */
    background-repeat: no-repeat;
}
@media (max-width: 768px) {
    .sn3-page--has-bg {
        background-position: right center; /* mobile: show salon interior on right */
    }
}

/* ── Card wrapper — pushes card to the right, vertically centered ── */
.sn3-card-wrap {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: 100%;
    min-height: 100vh;
    /* clamp: min 40px breathing room, scales to 8% of width, capped at 120px.
       This pulls the card away from the right edge proportionally on all screen sizes. */
    padding: 2rem clamp(40px, 8%, 120px) 2rem 2rem;
    box-sizing: border-box;
}

/* ── Glassmorphism card ── */
.sn3-card {
    width: min(400px, 92vw);
    background: rgba(255, 255, 255, 0.65);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-radius: 20px;
    border: 1px solid rgba(255, 255, 255, 0.55);
    box-shadow:
        0 24px 60px rgba(40, 10, 70, 0.22),
        0 4px 16px rgba(40, 10, 70, 0.10),
        inset 0 1px 0 rgba(255,255,255,0.7);
    padding: 2.25rem 2rem;
}
/* Fallback: solid white for browsers without backdrop-filter */
@supports not (backdrop-filter: blur(1px)) {
    .sn3-card { background: rgba(255,255,255,0.92); }
}

/* ── Logo ── */
.sn3-logo {
    text-align: center;
    margin-bottom: 0.75rem;
}
.sn3-logo img {
    height: 40px;
    width: auto;
    display: inline-block;
}

/* ── Headings ── */
.sn3-heading {
    font-size: 1.6rem;
    font-weight: 800;
    color: #1a1032;
    margin: 0 0 0.3rem;
    line-height: 1.2;
}
.sn3-sub {
    font-size: 0.88rem;
    color: #6b7280;
    margin: 0 0 1.4rem;
}

/* ── Fields ── */
.sn3-field {
    position: relative;
    margin-bottom: 1rem;
}
.sn3-icon {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: #b0a8c0;
    font-size: 13px;
    pointer-events: none;
    z-index: 1;
}
.sn3-input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid rgba(200, 192, 220, 0.7);
    border-radius: 9px;
    padding: 0.72rem 2.5rem 0.72rem 2.4rem;
    font-size: 1rem;
    color: #2d2040;
    background: rgba(255,255,255,0.75);
    outline: none;
    transition: border-color .15s, box-shadow .15s, background .15s;
}
.sn3-input::placeholder { color: #c0b8d5; }
.sn3-input:focus {
    border-color: var(--color-primary, #a060a8);
    background: rgba(255,255,255,0.92);
    box-shadow: 0 0 0 3px rgba(155,80,168,0.14);
}
.sn3-input--err { border-color: #ef4444 !important; }

/* Password eye toggle */
.sn3-eye {
    position: absolute;
    right: 11px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: #c0b8d5;
    padding: 4px;
    font-size: 13px;
    line-height: 1;
    transition: color .15s;
}
.sn3-eye:hover { color: #7050a0; }

/* ── Remember me + Forgot Password row ── */
.sn3-remember-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
}
.sn3-check-label {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    font-size: 0.83rem;
    color: #6b7280;
    cursor: pointer;
    user-select: none;
}
.sn3-checkbox {
    width: 15px;
    height: 15px;
    accent-color: var(--color-primary, #a060a8);
    cursor: pointer;
    flex-shrink: 0;
}
.sn3-forgot {
    font-size: 0.83rem;
    color: #9080b0;
    text-decoration: none;
    transition: color .15s;
}
.sn3-forgot:hover { color: var(--color-primary, #a060a8); }

/* ── Sign In button ── */
.sn3-signin-btn {
    display: block;
    width: 100%;
    padding: 0.8rem 1rem;
    border: none;
    border-radius: 9px;
    background: linear-gradient(to right, var(--color-primary, #c060a0) 0%, #6030a0 100%);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition: opacity .15s, transform .1s, box-shadow .15s;
    box-shadow: 0 8px 24px rgba(160,60,140,0.35);
}
.sn3-signin-btn:hover  { opacity: .92; transform: translateY(-1px); box-shadow: 0 12px 30px rgba(160,60,140,0.42); }
.sn3-signin-btn:active { transform: translateY(0); }

/* ── Error banner ── */
.sn3-error-banner {
    background: rgba(254,242,242,0.85);
    border: 1px solid #fecaca;
    color: #dc2626;
    border-radius: 8px;
    padding: .6rem .9rem;
    font-size: .82rem;
    margin-bottom: 1rem;
}

/* ── Footer links ── */
.sn3-footer {
    text-align: center;
    margin: 1.2rem 0 0;
    font-size: 0.75rem;
}
.sn3-footer a {
    color: #9080a8;
    text-decoration: none;
    transition: color .15s;
}
.sn3-footer a:hover { color: var(--color-primary, #a060a8); }
.sn3-footer span { color: #b0a8c0; margin: 0 0.3rem; }

/* ── Mobile: center card, full width ── */
@media (max-width: 768px) {
    .sn3-card-wrap {
        justify-content: center;
        padding: 1.5rem 1rem;
        align-items: center;
    }
    .sn3-card {
        width: min(400px, 96vw);
        padding: 1.75rem 1.25rem;
    }
}


