/* =========================================
   SlingPress Pro Theme - Login Page
   Custom WordPress Login Page Styling
   Matches the SlingPress Pro design system
   ========================================= */

/* =========================================
   CSS Variables (uses SlingPress scheme)
   ========================================= */
:root {
    --sp-login-bg-primary: var(--sp-bg-primary, #0f172a);
    --sp-login-bg-secondary: var(--sp-bg-secondary, #1e293b);
    --sp-login-bg-tertiary: var(--sp-bg-tertiary, #334155);
    --sp-login-bg-card: var(--sp-bg-card-solid, #1e293b);
    --sp-login-border: var(--sp-border, rgba(255, 255, 255, 0.1));
    --sp-login-text-primary: var(--sp-text-primary, #f8fafc);
    --sp-login-text-secondary: var(--sp-text-secondary, #94a3b8);
    --sp-login-text-muted: var(--sp-text-muted, #64748b);
    --sp-login-primary: var(--sp-primary, #8b5cf6);
    --sp-login-primary-dark: var(--sp-primary-dark, #7c3aed);
    --sp-login-primary-light: var(--sp-primary-light, #a78bfa);
    --sp-login-primary-rgb: var(--sp-primary-rgb, 139, 92, 246);
    --sp-login-primary-gradient: var(--sp-primary-gradient, linear-gradient(135deg, #8b5cf6 0%, #6366f1 100%));
    --sp-login-success: var(--sp-success, #22c55e);
    --sp-login-error: var(--sp-error, #ef4444);
    --sp-login-radius-sm: 6px;
    --sp-login-radius-md: 8px;
    --sp-login-radius-lg: 12px;
    --sp-login-radius-xl: 20px;
}

/* =========================================
   Reset & Base Styles
   ========================================= */
html,
body.login {
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden !important;
}

body.login {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
    background: var(--sp-login-bg-primary) !important;
    color: var(--sp-login-text-primary) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: 100vh !important;
    background-image:
        radial-gradient(ellipse at 20% 20%, rgba(var(--sp-login-primary-rgb), 0.08) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 80%, rgba(var(--sp-login-primary-rgb), 0.05) 0%, transparent 50%) !important;
}

/* =========================================
   AMBIENCE EFFECTS - Edge Glow (Vignette)
   ========================================= */
body.login::after {
    content: '';
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    pointer-events: none !important;
    z-index: 2147483647 !important;
    box-shadow:
        inset 0 0 50px 20px rgba(var(--sp-login-primary-rgb), 0.35),
        inset 0 0 100px 40px rgba(var(--sp-login-primary-rgb), 0.15),
        inset 0 0 180px 60px rgba(var(--sp-login-primary-rgb), 0.06);
    transition: box-shadow 0.4s ease;
}

/* =========================================
   Login Container - CRITICAL FIX
   ========================================= */
#login {
    width: 100% !important;
    max-width: 420px !important;
    padding: 20px !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

/* =========================================
   Logo Section - FIXED
   ========================================= */
.login h1 {
    width: 100% !important;
    text-align: center !important;
    margin: 0 0 12px 0 !important;
    padding: 0 !important;
}

.login h1 a {
    width: 64px !important;
    height: 64px !important;
    background: var(--sp-login-primary-gradient) !important;
    background-image: var(--sp-login-primary-gradient) !important;
    background-size: cover !important;
    background-position: center !important;
    border-radius: 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-shadow: 0 8px 32px rgba(var(--sp-login-primary-rgb), 0.3) !important;
    text-indent: -9999px !important;
    overflow: hidden !important;
    position: relative !important;
    font-size: 0 !important;
    color: transparent !important;
}

/* Logo SP text via pseudo element */
.login h1 a::before {
    content: 'SP' !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 28px !important;
    font-weight: 700 !important;
    color: white !important;
    text-indent: 0 !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    display: block !important;
}

/* Hide any default WordPress logo image */
.login h1 a img {
    display: none !important;
}

/* =========================================
   Brand Name & Subtitle (added via PHP)
   ========================================= */
#sp-login-brand {
    text-align: center !important;
    margin-bottom: 32px !important;
}

#sp-login-brand .sp-brand-name {
    font-size: 24px !important;
    font-weight: 700 !important;
    color: var(--sp-login-text-primary) !important;
    margin-bottom: 4px !important;
}

#sp-login-brand .sp-brand-subtitle {
    font-size: 14px !important;
    color: var(--sp-login-text-muted) !important;
}

/* =========================================
   Login Form Card
   ========================================= */
#loginform,
#registerform,
#lostpasswordform {
    width: 100% !important;
    max-width: 100% !important;
    background: var(--sp-login-bg-card) !important;
    border: 1px solid var(--sp-login-border) !important;
    border-radius: var(--sp-login-radius-xl) !important;
    padding: 32px !important;
    /* Combined shadow: base shadow + card glow effect */
    box-shadow:
        0 8px 40px rgba(0, 0, 0, 0.3),
        0 0 20px rgba(var(--sp-login-primary-rgb), 0.25),
        0 0 40px rgba(var(--sp-login-primary-rgb), 0.1) !important;
    margin: 0 auto 20px auto !important;
    box-sizing: border-box !important;
    transition: box-shadow 0.3s ease !important;
}

#loginform:hover,
#registerform:hover,
#lostpasswordform:hover {
    box-shadow:
        0 8px 40px rgba(0, 0, 0, 0.35),
        0 0 30px rgba(var(--sp-login-primary-rgb), 0.35),
        0 0 60px rgba(var(--sp-login-primary-rgb), 0.15) !important;
}

/* Form Title */
#loginform::before {
    content: 'Welcome back' !important;
    display: block !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    text-align: center !important;
    color: var(--sp-login-text-primary) !important;
    margin-bottom: 24px !important;
}

#registerform::before {
    content: 'Create Account' !important;
    display: block !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    text-align: center !important;
    color: var(--sp-login-text-primary) !important;
    margin-bottom: 24px !important;
}

#lostpasswordform::before {
    content: 'Reset Password' !important;
    display: block !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    text-align: center !important;
    color: var(--sp-login-text-primary) !important;
    margin-bottom: 24px !important;
}

/* =========================================
   Form Labels
   ========================================= */
.login label {
    display: block !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    color: var(--sp-login-text-secondary) !important;
    margin-bottom: 8px !important;
}

/* =========================================
   Form Input Wrappers
   ========================================= */
.login .input,
.login input[type="text"],
.login input[type="password"],
.login input[type="email"] {
    width: 100% !important;
    padding: 14px 14px 14px 44px !important;
    background: var(--sp-login-bg-secondary) !important;
    border: 1px solid var(--sp-login-border) !important;
    border-radius: var(--sp-login-radius-md) !important;
    color: var(--sp-login-text-primary) !important;
    font-size: 14px !important;
    font-family: inherit !important;
    transition: all 0.2s ease !important;
    box-shadow: none !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
}

.login .input:focus,
.login input[type="text"]:focus,
.login input[type="password"]:focus,
.login input[type="email"]:focus {
    outline: none !important;
    border-color: var(--sp-login-primary) !important;
    box-shadow: 0 0 0 3px rgba(var(--sp-login-primary-rgb), 0.2) !important;
}

.login input::placeholder {
    color: var(--sp-login-text-muted) !important;
}

/* Input Icons */
#user_login,
#user_email {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: 14px center !important;
    background-size: 18px !important;
    background-color: var(--sp-login-bg-secondary) !important;
}

#user_pass {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: 14px center !important;
    background-size: 18px !important;
    background-color: var(--sp-login-bg-secondary) !important;
}

/* Password Field Container */
.login .user-pass-wrap {
    margin-bottom: 16px !important;
}

.login .wp-pwd {
    position: relative !important;
}

.login .wp-pwd .button.wp-hide-pw {
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    background: transparent !important;
    border: none !important;
    color: var(--sp-login-text-muted) !important;
    padding: 6px !important;
    margin: 0 !important;
    height: auto !important;
    min-height: auto !important;
    box-shadow: none !important;
    cursor: pointer !important;
}

.login .wp-pwd .button.wp-hide-pw:hover {
    color: var(--sp-login-text-primary) !important;
    background: transparent !important;
}

.login .wp-pwd .button.wp-hide-pw .dashicons {
    font-size: 20px !important;
    width: 20px !important;
    height: 20px !important;
}

/* =========================================
   Remember Me & Submit Row
   ========================================= */
.login .forgetmenot {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    float: none !important;
    margin-bottom: 0 !important;
}

.login .forgetmenot input[type="checkbox"] {
    width: 20px !important;
    height: 20px !important;
    background: var(--sp-login-bg-secondary) !important;
    border: 1px solid var(--sp-login-border) !important;
    border-radius: 5px !important;
    margin: 0 !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
    flex-shrink: 0 !important;
}

.login .forgetmenot input[type="checkbox"]:checked {
    background: var(--sp-login-primary) !important;
    border-color: var(--sp-login-primary) !important;
}

.login .forgetmenot input[type="checkbox"]:checked::after {
    content: '✓' !important;
    color: white !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.login .forgetmenot label {
    margin: 0 !important;
    font-size: 13px !important;
    color: var(--sp-login-text-secondary) !important;
    display: inline !important;
}

/* Submit Container */
.login .submit,
.login p.submit {
    margin-top: 20px !important;
    clear: both !important;
}

/* =========================================
   Submit Button
   ========================================= */
.login #wp-submit,
.login input[type="submit"] {
    width: 100% !important;
    padding: 14px 20px !important;
    background: var(--sp-login-primary-gradient) !important;
    border: none !important;
    border-radius: var(--sp-login-radius-md) !important;
    color: white !important;
    font-family: inherit !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
    text-shadow: none !important;
    box-shadow: none !important;
    height: auto !important;
    line-height: 1.4 !important;
    float: none !important;
}

.login #wp-submit:hover,
.login input[type="submit"]:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 24px rgba(var(--sp-login-primary-rgb), 0.4) !important;
}

.login #wp-submit:active,
.login input[type="submit"]:active {
    transform: translateY(0) !important;
}

/* =========================================
   Navigation Links - CENTERED
   ========================================= */
#nav,
#backtoblog {
    width: 100% !important;
    text-align: center !important;
    padding: 0 !important;
    margin: 0 0 12px 0 !important;
    float: none !important;
    clear: both !important;
}

#nav a,
#backtoblog a {
    color: var(--sp-login-primary) !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    transition: color 0.2s ease !important;
}

#nav a:hover,
#backtoblog a:hover {
    color: var(--sp-login-primary-light) !important;
    text-decoration: underline !important;
}

/* =========================================
   Error & Success Messages
   ========================================= */
.login .message,
.login #login_error,
.login .success {
    width: 100% !important;
    max-width: 100% !important;
    border-radius: var(--sp-login-radius-md) !important;
    padding: 12px 16px !important;
    margin: 0 0 20px 0 !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
    border-left: none !important;
    box-shadow: none !important;
}

.login .message {
    background: rgba(var(--sp-login-primary-rgb), 0.1) !important;
    border: 1px solid rgba(var(--sp-login-primary-rgb), 0.2) !important;
    color: var(--sp-login-primary) !important;
}

.login #login_error {
    background: rgba(239, 68, 68, 0.1) !important;
    border: 1px solid rgba(239, 68, 68, 0.2) !important;
    color: var(--sp-login-error) !important;
}

.login .success {
    background: rgba(34, 197, 94, 0.1) !important;
    border: 1px solid rgba(34, 197, 94, 0.2) !important;
    color: var(--sp-login-success) !important;
}

/* =========================================
   Privacy Policy Link
   ========================================= */
.login .privacy-policy-page-link {
    width: 100% !important;
    text-align: center !important;
    margin: 16px 0 !important;
}

.login .privacy-policy-page-link a {
    color: var(--sp-login-text-muted) !important;
    font-size: 12px !important;
    text-decoration: none !important;
}

.login .privacy-policy-page-link a:hover {
    color: var(--sp-login-primary) !important;
}

/* =========================================
   Custom Footer - CENTERED
   ========================================= */
#sp-login-footer {
    width: 100% !important;
    max-width: 420px !important;
    text-align: center !important;
    margin: 20px auto 0 auto !important;
    padding: 0 20px !important;
    box-sizing: border-box !important;
}

#sp-login-branding {
    width: 100% !important;
    text-align: center !important;
    margin: 16px auto 0 auto !important;
}

/* =========================================
   Language Selector
   ========================================= */
.language-switcher,
#language-switcher {
    position: fixed !important;
    top: 20px !important;
    right: 20px !important;
    z-index: 100 !important;
}

.language-switcher select,
#language-switcher select {
    padding: 8px 12px !important;
    background: var(--sp-login-bg-secondary) !important;
    border: 1px solid var(--sp-login-border) !important;
    border-radius: var(--sp-login-radius-sm) !important;
    color: var(--sp-login-text-secondary) !important;
    font-size: 12px !important;
    cursor: pointer !important;
}

.language-switcher button,
#language-switcher button {
    display: none !important;
}

/* =========================================
   Social Login Section (if added)
   ========================================= */
.sp-social-login {
    margin-top: 24px !important;
    padding-top: 24px !important;
    border-top: 1px solid var(--sp-login-border) !important;
}

.sp-social-divider {
    display: flex !important;
    align-items: center !important;
    margin: 24px 0 !important;
}

.sp-social-divider::before,
.sp-social-divider::after {
    content: '' !important;
    flex: 1 !important;
    height: 1px !important;
    background: var(--sp-login-border) !important;
}

.sp-social-divider span {
    padding: 0 16px !important;
    color: var(--sp-login-text-muted) !important;
    font-size: 12px !important;
    text-transform: uppercase !important;
}

.sp-social-buttons {
    display: flex !important;
    gap: 12px !important;
    justify-content: center !important;
}

.sp-social-btn {
    flex: 1 !important;
    max-width: 80px !important;
    padding: 12px !important;
    background: var(--sp-login-bg-secondary) !important;
    border: 1px solid var(--sp-login-border) !important;
    border-radius: var(--sp-login-radius-md) !important;
    color: var(--sp-login-text-primary) !important;
    font-size: 18px !important;
    cursor: pointer !important;
    transition: all 0.2s !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.sp-social-btn:hover {
    background: var(--sp-login-bg-tertiary) !important;
    transform: translateY(-2px) !important;
}

/* Register Link */
.sp-register-link {
    text-align: center !important;
    margin-top: 20px !important;
    font-size: 14px !important;
    color: var(--sp-login-text-secondary) !important;
}

.sp-register-link a {
    color: var(--sp-login-primary) !important;
    text-decoration: none !important;
    font-weight: 500 !important;
}

.sp-register-link a:hover {
    text-decoration: underline !important;
}

/* =========================================
   Loading State
   ========================================= */
.login #wp-submit.loading {
    pointer-events: none !important;
    opacity: 0.8 !important;
}

/* =========================================
   Animations
   ========================================= */
@keyframes sp-shake {

    0%,
    100% {
        transform: translateX(0);
    }

    10%,
    30%,
    50%,
    70%,
    90% {
        transform: translateX(-5px);
    }

    20%,
    40%,
    60%,
    80% {
        transform: translateX(5px);
    }
}

.login #login_error.shake {
    animation: sp-shake 0.6s ease !important;
}

@keyframes sp-spin {
    to {
        transform: rotate(360deg);
    }
}

/* =========================================
   RESPONSIVE DESIGN - MOBILE FIX
   ========================================= */
@media screen and (max-width: 768px) {
    body.login {
        padding: 20px 16px !important;
    }

    #login {
        max-width: 100% !important;
        padding: 0 !important;
    }

    #loginform,
    #registerform,
    #lostpasswordform {
        padding: 24px 20px !important;
        border-radius: var(--sp-login-radius-lg) !important;
    }

    .login h1 a {
        width: 56px !important;
        height: 56px !important;
    }

    .login h1 a::before {
        font-size: 24px !important;
    }

    .language-switcher,
    #language-switcher {
        top: 10px !important;
        right: 10px !important;
    }

    .language-switcher select,
    #language-switcher select {
        padding: 6px 10px !important;
        font-size: 11px !important;
    }

    #sp-login-footer {
        padding: 0 16px !important;
    }
}

@media screen and (max-width: 480px) {
    .login h1 a {
        width: 48px !important;
        height: 48px !important;
        border-radius: 12px !important;
    }

    .login h1 a::before {
        font-size: 20px !important;
    }

    #loginform,
    #registerform,
    #lostpasswordform {
        padding: 20px 16px !important;
    }

    #loginform::before,
    #registerform::before,
    #lostpasswordform::before {
        font-size: 18px !important;
        margin-bottom: 20px !important;
    }

    .login .input,
    .login input[type="text"],
    .login input[type="password"],
    .login input[type="email"] {
        padding: 12px 12px 12px 40px !important;
        font-size: 16px !important;
        /* Prevents zoom on iOS */
    }

    .login #wp-submit,
    .login input[type="submit"] {
        padding: 12px 16px !important;
        font-size: 14px !important;
    }

    #nav a,
    #backtoblog a {
        font-size: 13px !important;
    }
}

/* =========================================
   Hide WordPress Default Elements We Override
   ========================================= */
/* Hide any inline logo text that might appear */
.login h1 a span,
.login h1 a .custom-logo {
    display: none !important;
}

/* =========================================
   Print Styles
   ========================================= */
@media print {
    body.login {
        background: white !important;
    }

    #loginform {
        box-shadow: none !important;
        border: 1px solid #ddd !important;
    }
}