/* Admin login preview, isolated from the current production /login page. */

.admin-login-preview-page {
    margin: 0;
    min-height: 100vh;
    background: #0c182d;
}

.admin-login-body {
    --admin-login-blue: #63b3ff;
    --admin-login-blue-strong: #3b97f4;
    --admin-login-surface: rgba(10, 25, 45, 0.76);
    --admin-login-border: rgba(129, 174, 217, 0.34);
    --admin-login-text: #eef7ff;
    --admin-login-muted: rgba(191, 212, 232, 0.74);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 84px 20px 32px;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(140deg, #223c67 0%, #152945 50%, #0c182d 100%);
}

.admin-login-bg {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    -webkit-mask-image: radial-gradient(ellipse at center, #000 0%, #000 42%, transparent 78%);
    mask-image: radial-gradient(ellipse at center, #000 0%, #000 42%, transparent 78%);
}

.admin-login-bg::before,
.admin-login-bg::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.admin-login-bg::before {
    display: none;
}

.admin-login-bg::after {
    display: none;
}

.admin-login-lines {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 1092px;
    height: max(150vw, 150vh);
    transform: translate(-50%, -50%) rotate(var(--admin-login-line-angle, 0deg));
    transform-origin: center;
}

.admin-login-body[data-login-variant="diagonal-drift"] .admin-login-lines {
    --admin-login-line-angle: -45deg;
}

.admin-login-body[data-login-variant="horizontal-scan"] .admin-login-lines {
    --admin-login-line-angle: 90deg;
}

.admin-login-body[data-login-variant="tilted-pulse"] .admin-login-lines {
    --admin-login-line-angle: 22deg;
}

.admin-login-line {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--x);
    width: 1px;
    opacity: var(--line-opacity, 1);
    background: linear-gradient(
        to bottom,
        rgba(219, 233, 255, 0) 0%,
        rgba(219, 233, 255, 0.22) 13%,
        rgba(219, 233, 255, 0.11) 50%,
        rgba(219, 233, 255, 0.2) 88%,
        rgba(219, 233, 255, 0) 100%
    );
}

.admin-login-dot {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    transform: translate(-50%, -50%);
    opacity: 0.24;
    background: rgba(232, 246, 255, 0.76);
    box-shadow:
        0 0 0 3px rgba(127, 200, 255, 0.08),
        0 0 12px rgba(189, 230, 255, 0.3);
    transition: opacity 500ms linear;
}

.admin-login-body[data-login-variant="tilted-pulse"] .admin-login-dot {
    width: 4px;
    height: 4px;
    box-shadow:
        0 0 0 4px rgba(127, 200, 255, 0.06),
        0 0 18px rgba(189, 230, 255, 0.34);
}

.admin-login-container {
    position: relative;
    z-index: 3;
    display: grid;
    justify-items: center;
    width: min(100%, 405px);
    transform: translateY(-36px);
}

.admin-login-logo {
    margin-bottom: 28px;
    text-align: center;
    text-shadow: 0 6px 24px rgba(8, 18, 36, 0.55);
}

.admin-login-logo-small {
    margin: 0 0 6px;
    color: rgba(202, 220, 237, 0.78);
    font-family: "JetBrains Mono", monospace;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.34em;
}

.admin-login-logo h1 {
    margin: 0;
    color: var(--admin-login-blue);
    font-size: clamp(28px, 4vw, 41px);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 0.96;
    text-shadow: 0 6px 24px rgba(8, 18, 36, 0.55);
}

.admin-login-card {
    box-sizing: border-box;
    width: min(325px, 100%);
    padding: 31px 28px 26px;
    border: 1px solid var(--admin-login-border);
    border-radius: 24px;
    background: var(--admin-login-surface);
    box-shadow:
        0 24px 54px rgba(2, 8, 16, 0.52),
        inset 0 1px 0 rgba(204, 229, 255, 0.09);
    backdrop-filter: blur(12px);
    text-align: center;
}

.admin-login-error {
    margin-bottom: 18px;
    text-align: left;
}

.admin-login-card-copy {
    margin-bottom: 22px;
}

.admin-login-card h2 {
    margin: 0;
    color: var(--admin-login-text);
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.admin-login-support-note {
    color: var(--admin-login-muted);
    font-size: 13px;
    line-height: 1.5;
}

.admin-login-support-note {
    margin: 17px auto 13.8px;
    max-width: 350px;
}

.admin-google-signin {
    min-height: 46px;
    border-radius: 14px;
    font-size: 14px;
    font-weight: 650;
    transition:
        box-shadow 160ms ease,
        transform 160ms ease,
        background 160ms ease;
}

.admin-google-signin:hover {
    transform: translateY(-1px);
    box-shadow:
        0 8px 20px rgba(0, 0, 0, 0.24),
        0 0 0 3px rgba(99, 179, 255, 0.14);
}

.admin-login-version {
    margin-top: 28px;
    text-align: center;
    font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.18em;
    line-height: 1.2;
    text-transform: uppercase;
    color: rgba(171, 193, 217, 0.88);
    opacity: 0.7;
}

.login-preview-switcher {
    position: fixed;
    top: 18px;
    left: 50%;
    z-index: 4;
    display: inline-flex;
    gap: 6px;
    padding: 6px;
    border: 1px solid rgba(141, 178, 216, 0.26);
    border-radius: 999px;
    background: rgba(7, 19, 34, 0.54);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);
    backdrop-filter: blur(12px);
    transform: translateX(-50%);
}

.login-preview-switcher-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 32px;
    padding: 0 13px;
    border-radius: 999px;
    color: rgba(219, 234, 247, 0.74);
    font-size: 12px;
    font-weight: 650;
    text-decoration: none;
    transition:
        background 150ms ease,
        color 150ms ease,
        box-shadow 150ms ease;
}

.login-preview-switcher-link:hover,
.login-preview-switcher-link.is-active {
    background: rgba(87, 164, 238, 0.18);
    color: #f2f8ff;
    box-shadow: inset 0 0 0 1px rgba(129, 192, 255, 0.18);
}

@media (max-width: 640px) {
    .admin-login-body {
        padding: 86px 16px 26px;
    }

    .admin-login-lines {
        width: 1092px;
    }

    .admin-login-container {
        transform: translateY(-18px);
    }

    .admin-login-card {
        padding: 28px 22px 24px;
        border-radius: 21px;
        backdrop-filter: blur(9px);
    }

    .login-preview-switcher {
        left: 14px;
        right: 14px;
        justify-content: center;
        transform: none;
    }

    .login-preview-switcher-link {
        flex: 1;
        padding: 0 8px;
        font-size: 11px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .admin-login-dot {
        top: 50%;
        opacity: 0.22;
        transition: none !important;
    }

    .admin-google-signin,
    .login-preview-switcher-link {
        transition: none !important;
    }
}
