/*
 * SmartPOS Embossed Login V1
 * Scoped to .smart-login-body.
 */

.smart-login-body {
    --login-bg: #e8edf4;
    --login-surface: #e9eef5;
    --login-surface-soft: #edf2f8;
    --login-text: #172033;
    --login-muted: #778399;
    --login-blue: #4296e8;
    --login-blue-soft: rgba(67, 151, 233, .24);
    --login-purple-soft: rgba(151, 118, 238, .18);
    --login-green: #179b80;
    --login-danger: #c73e49;
    min-height: 100vh;
    overflow-x: hidden;
    background:
        radial-gradient(
            circle at 18% 14%,
            rgba(255,255,255,.94),
            transparent 27%
        ),
        radial-gradient(
            circle at 84% 82%,
            rgba(145,119,239,.14),
            transparent 25%
        ),
        radial-gradient(
            circle at 78% 16%,
            rgba(62,159,239,.12),
            transparent 25%
        ),
        linear-gradient(
            145deg,
            #f0f4f9 0%,
            #e7edf4 48%,
            #e3e9f1 100%
        );
}

.smart-login-body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    opacity: .33;
    background-image:
        linear-gradient(
            rgba(255,255,255,.22) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(255,255,255,.18) 1px,
            transparent 1px
        );
    background-size: 48px 48px;
    mask-image:
        radial-gradient(
            circle at center,
            #000,
            transparent 74%
        );
}

.embossed-auth {
    position: relative;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 42px 24px;
    display: grid;
    place-items: center;
    isolation: isolate;
}

.auth-orb {
    position: fixed;
    z-index: -1;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(2px);
}

.auth-orb-one {
    width: 390px;
    height: 390px;
    top: -190px;
    right: -90px;
    background:
        radial-gradient(
            circle,
            rgba(83,167,238,.17),
            transparent 68%
        );
}

.auth-orb-two {
    width: 460px;
    height: 460px;
    left: -180px;
    bottom: -250px;
    background:
        radial-gradient(
            circle,
            rgba(153,124,239,.15),
            transparent 68%
        );
}

.embossed-stage {
    width: min(430px, 100%);
}

.embossed-brand {
    margin: 0 auto 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
}

.embossed-brand-mark {
    width: 43px;
    height: 43px;
    display: grid;
    place-items: center;
    border-radius: 14px;
    color: #25334a;
    background: var(--login-surface);
    font-size: 18px;
    font-weight: 850;
    letter-spacing: -.04em;
    box-shadow:
        -7px -7px 15px rgba(255,255,255,.92),
        7px 7px 15px rgba(145,157,174,.28),
        inset 1px 1px 0 rgba(255,255,255,.85);
}

.embossed-brand-copy strong,
.embossed-brand-copy span {
    display: block;
}

.embossed-brand-copy strong {
    color: #1b2638;
    font-size: 17px;
    letter-spacing: -.025em;
}

.embossed-brand-copy span {
    margin-top: 2px;
    color: #8995a8;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.embossed-card {
    position: relative;
    width: 100%;
    min-height: 540px;
    padding: 74px 38px 34px;
    border: 1px solid rgba(255,255,255,.58);
    border-radius: 31px;
    background:
        linear-gradient(
            145deg,
            rgba(239,244,250,.96),
            rgba(226,233,242,.96)
        );
    box-shadow:
        -18px -18px 42px rgba(255,255,255,.94),
        20px 22px 46px rgba(132,145,164,.30),
        inset 1px 1px 0 rgba(255,255,255,.92),
        inset -1px -1px 0 rgba(156,170,189,.10);
}

.embossed-card::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    background:
        radial-gradient(
            circle at 9% 4%,
            rgba(65,162,239,.15),
            transparent 25%
        ),
        radial-gradient(
            circle at 92% 96%,
            rgba(150,117,237,.13),
            transparent 27%
        );
}

.login-emblem,
.success-emblem {
    position: absolute;
    z-index: 2;
    top: -42px;
    left: 50%;
    width: 84px;
    height: 84px;
    transform: translateX(-50%);
    display: grid;
    place-items: center;
    border-radius: 50%;
    background:
        linear-gradient(
            145deg,
            #f4f7fb,
            #dce4ed
        );
    box-shadow:
        -10px -10px 22px rgba(255,255,255,.95),
        10px 12px 24px rgba(127,141,160,.34),
        inset 1px 1px 1px rgba(255,255,255,.95);
}

.login-emblem::before,
.success-emblem::before {
    content: "";
    position: absolute;
    inset: 10px;
    border-radius: inherit;
    box-shadow:
        inset 5px 5px 10px rgba(139,152,169,.17),
        inset -5px -5px 10px rgba(255,255,255,.88);
}

.login-emblem span {
    position: relative;
    color: #26364d;
    font-size: 27px;
    font-weight: 900;
}

.embossed-heading {
    position: relative;
    z-index: 1;
    text-align: center;
}

.login-kicker {
    display: inline-block;
    color: #8290a4;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .18em;
}

.embossed-heading h1,
.success-copy h1 {
    margin: 9px 0 7px;
    color: var(--login-text);
    font-size: 30px;
    line-height: 1.12;
    letter-spacing: -.045em;
}

.embossed-heading p,
.success-copy p {
    max-width: 310px;
    margin: 0 auto;
    color: var(--login-muted);
    font-size: 12px;
    line-height: 1.6;
}

.embossed-error {
    position: relative;
    z-index: 1;
    margin-top: 22px;
    padding: 12px 14px;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid rgba(199,62,73,.10);
    border-radius: 14px;
    color: #a82d39;
    background: rgba(245,231,234,.72);
    box-shadow:
        inset 3px 3px 7px rgba(175,142,147,.13),
        inset -3px -3px 7px rgba(255,255,255,.70);
    font-size: 11px;
    line-height: 1.45;
}

.embossed-error > span {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    color: #fff;
    background: #c84b56;
    font-size: 11px;
    font-weight: 850;
}

.embossed-form {
    position: relative;
    z-index: 1;
    margin-top: 29px;
    display: grid;
    gap: 18px;
}

.embossed-field {
    display: block;
}

.field-label {
    display: block;
    margin: 0 0 8px 4px;
    color: #59677b;
    font-size: 11px;
    font-weight: 750;
}

.embossed-input-wrap {
    position: relative;
}

.embossed-input-wrap input {
    width: 100%;
    height: 55px;
    padding: 0 72px 0 48px;
    border: 1px solid rgba(255,255,255,.48);
    border-radius: 15px;
    outline: none;
    color: #263247;
    background: #e7edf4;
    box-shadow:
        inset 5px 5px 10px rgba(139,153,172,.18),
        inset -5px -5px 11px rgba(255,255,255,.86),
        1px 1px 0 rgba(255,255,255,.65);
    transition:
        box-shadow .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.embossed-input-wrap input::placeholder {
    color: #a1abba;
}

.embossed-input-wrap input:focus {
    border-color: rgba(71,153,225,.32);
    box-shadow:
        inset 5px 5px 10px rgba(133,148,168,.18),
        inset -5px -5px 11px rgba(255,255,255,.88),
        0 0 0 4px rgba(65,151,230,.08),
        0 9px 24px rgba(72,134,196,.07);
}

.input-symbol {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 17px;
    width: 19px;
    height: 19px;
    transform: translateY(-50%);
    color: #7e8da1;
    pointer-events: none;
}

.input-symbol svg {
    width: 100%;
    height: 100%;
}

.embossed-password-toggle {
    position: absolute;
    z-index: 3;
    top: 50%;
    right: 11px;
    transform: translateY(-50%);
    min-width: 51px;
    height: 34px;
    padding: 0 9px;
    border: 0;
    border-radius: 10px;
    color: #65748a;
    background: #e7edf4;
    box-shadow:
        -3px -3px 7px rgba(255,255,255,.78),
        3px 3px 7px rgba(139,152,170,.20);
    cursor: pointer;
    font-size: 10px;
    font-weight: 800;
}

.embossed-password-toggle:active {
    box-shadow:
        inset 3px 3px 6px rgba(137,151,169,.19),
        inset -3px -3px 6px rgba(255,255,255,.76);
}

.embossed-submit {
    position: relative;
    min-height: 56px;
    margin-top: 4px;
    padding: 0 19px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.56);
    border-radius: 15px;
    color: #263247;
    background:
        linear-gradient(
            145deg,
            #edf2f7,
            #dce4ed
        );
    box-shadow:
        -7px -7px 15px rgba(255,255,255,.90),
        7px 8px 17px rgba(132,146,164,.29),
        inset 1px 1px 0 rgba(255,255,255,.82);
    cursor: pointer;
    font-size: 12px;
    font-weight: 850;
    letter-spacing: .035em;
    transition:
        transform .16s ease,
        box-shadow .16s ease;
}

.embossed-submit::before {
    content: "";
    position: absolute;
    width: 120px;
    height: 120px;
    left: -90px;
    top: -55px;
    border-radius: 50%;
    background: rgba(57,158,235,.10);
    filter: blur(2px);
}

.embossed-submit:hover {
    transform: translateY(-1px);
    box-shadow:
        -8px -8px 17px rgba(255,255,255,.94),
        9px 10px 20px rgba(128,143,162,.31);
}

.embossed-submit:active {
    transform: translateY(1px);
    box-shadow:
        inset 5px 5px 10px rgba(134,148,166,.20),
        inset -5px -5px 10px rgba(255,255,255,.78);
}

.submit-label,
.submit-arrow {
    position: relative;
    z-index: 1;
}

.submit-arrow {
    font-size: 16px;
}

.submit-loader {
    position: relative;
    z-index: 1;
    width: 16px;
    height: 16px;
    display: none;
    border: 2px solid rgba(67,82,105,.20);
    border-top-color: #435269;
    border-radius: 50%;
    animation: smartLoginSpin .7s linear infinite;
}

.embossed-submit.is-loading {
    pointer-events: none;
}

.embossed-submit.is-loading .submit-arrow {
    display: none;
}

.embossed-submit.is-loading .submit-loader {
    display: block;
}

.embossed-security {
    position: relative;
    z-index: 1;
    margin-top: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #8a96a8;
    font-size: 10px;
}

.embossed-security b {
    margin: 0 3px;
    font-weight: 400;
}

.secure-indicator {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #24b58a;
    box-shadow: 0 0 0 4px rgba(36,181,138,.09);
}

.embossed-footer {
    margin-top: 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    color: #8c98aa;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .04em;
}

.embossed-footer i {
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: #9ba6b5;
}

/* SUCCESS */

.embossed-card.is-success {
    min-height: 435px;
    padding-top: 83px;
    display: grid;
    align-items: center;
}

.success-emblem {
    animation:
        successFloat .65s cubic-bezier(.2,.8,.2,1) both;
}

.success-emblem span {
    position: relative;
    z-index: 2;
    color: var(--login-green);
    font-size: 36px;
    font-weight: 900;
    transform: rotate(-4deg);
}

.success-emblem::after {
    content: "";
    position: absolute;
    inset: -8px;
    border-radius: inherit;
    border: 1px solid rgba(24,157,128,.16);
    animation: successHalo 1.4s ease-out infinite;
}

.login-success {
    position: relative;
    z-index: 1;
    text-align: center;
}

.success-copy h1 {
    color: #168b74;
}

.success-copy p {
    max-width: 300px;
}

.success-progress {
    width: min(270px, 86%);
    height: 5px;
    margin: 32px auto 0;
    overflow: hidden;
    border-radius: 999px;
    background: #dbe3ec;
    box-shadow:
        inset 2px 2px 4px rgba(129,143,161,.17),
        inset -2px -2px 4px rgba(255,255,255,.74);
}

.success-progress span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background:
        linear-gradient(
            90deg,
            #25aa8d,
            #4a9fdf
        );
    animation: successProgress 1.25s ease forwards;
}

.success-status {
    margin-top: 17px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: #8793a5;
    font-size: 10px;
}

.success-status > span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #20ad87;
    box-shadow: 0 0 0 4px rgba(32,173,135,.08);
}

.continue-link {
    margin-top: 24px;
    display: inline-flex;
    min-height: 42px;
    padding: 0 18px;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #263247;
    background: #e6ecf3;
    box-shadow:
        -5px -5px 11px rgba(255,255,255,.82),
        5px 5px 11px rgba(133,147,165,.24);
    font-size: 11px;
    font-weight: 800;
}

@keyframes smartLoginSpin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes successFloat {
    from {
        opacity: 0;
        transform:
            translateX(-50%)
            translateY(14px)
            scale(.78);
    }

    to {
        opacity: 1;
        transform:
            translateX(-50%)
            translateY(0)
            scale(1);
    }
}

@keyframes successHalo {
    0% {
        opacity: .6;
        transform: scale(.86);
    }

    100% {
        opacity: 0;
        transform: scale(1.32);
    }
}

@keyframes successProgress {
    to {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .embossed-auth {
        padding: 30px 17px;
    }

    .embossed-stage {
        width: min(390px, 100%);
    }

    .embossed-brand {
        margin-bottom: 22px;
    }

    .embossed-card {
        min-height: 510px;
        padding:
            69px
            23px
            28px;
        border-radius: 26px;
    }

    .embossed-heading h1,
    .success-copy h1 {
        font-size: 27px;
    }

    .embossed-card.is-success {
        min-height: 405px;
    }
}

@media (max-height: 720px) and (min-width: 641px) {
    .embossed-auth {
        padding-top: 26px;
        padding-bottom: 26px;
    }

    .embossed-brand {
        margin-bottom: 18px;
    }

    .embossed-card {
        min-height: 500px;
        padding-top: 65px;
    }

    .embossed-form {
        margin-top: 22px;
        gap: 14px;
    }

    .embossed-security {
        margin-top: 19px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .smart-login-body *,
    .smart-login-body *::before,
    .smart-login-body *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}
