/* --- Universal Authentication Page CSS --- */
:root {
    --primary-color: #2563eb; /* default fallback, overridden dynamically in php */
    --accent: #2563eb; /* default fallback, overridden dynamically in php */
    --primary-gradient-end: #00c6ff;
    
    /* Default Night Mode Theme for login */
    --bg-color: #0b0f19;
    --text-color: #f3f4f6;
    --card-bg: rgba(17, 24, 39, 0.65);
    --card-border: rgba(255, 255, 255, 0.08);
    --card-shadow: 0 20px 40px rgba(0, 0, 0, 0.35), 0 0 50px rgba(37, 99, 235, 0.05);
    --input-bg: rgba(31, 41, 55, 0.6);
    --input-border: rgba(255, 255, 255, 0.12);
    --input-text: #ffffff;
    --text-muted: #9ca3af;
    --link-color: #9ca3af;
}

/* Light Mode Overrides (Universal & Whitelabel) */
body.whitelabel-light, body.light-mode {
    --bg-color: #f3f4f6;
    --text-color: #111827;
    --card-bg: rgba(255, 255, 255, 0.75);
    --card-border: rgba(0, 0, 0, 0.06);
    --card-shadow: 0 15px 35px rgba(0, 0, 0, 0.04), 0 0 40px rgba(37, 99, 235, 0.02);
    --input-bg: rgba(255, 255, 255, 0.85);
    --input-border: rgba(0, 0, 0, 0.1);
    --input-text: #111827;
    --text-muted: #6b7280;
    --link-color: #4b5563;
    --primary-gradient-end: #00c6ff;
}

/* Dark Mode toggled on Whitelabel Subdomains */
body.dark-mode {
    --bg-color: #0b0f19;
    --text-color: #f3f4f6;
    --card-bg: rgba(17, 24, 39, 0.65);
    --card-border: rgba(255, 255, 255, 0.08);
    --card-shadow: 0 20px 40px rgba(0, 0, 0, 0.35), 0 0 50px rgba(37, 99, 235, 0.05);
    --input-bg: rgba(31, 41, 55, 0.6);
    --input-border: rgba(255, 255, 255, 0.12);
    --input-text: #ffffff;
    --text-muted: #9ca3af;
    --link-color: #9ca3af;
    --primary-gradient-end: #00c6ff;
}

/* 1. Global Setup & Body Layout */
html {
    height: 100%;
    background-color: var(--bg-color);
    transition: background 0.2s;
}
html:has(body.light-mode), html:has(body.whitelabel-light) {
    background-color: #f3f4f6 !important;
}

body {
    background-image: 
        linear-gradient(rgba(255, 255, 255, 0.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.02) 1px, transparent 1px),
        linear-gradient(135deg, #0b0f19 0%, #111827 50%, #070a13 100%) !important;
    background-size: 50px 50px, 50px 50px, 100% 100% !important;
    color: var(--text-color) !important;
    font-family: 'Segoe UI', sans-serif;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    margin: 0;
    transition: background 0.2s, color 0.2s;
}
body.light-mode, body.whitelabel-light {
    background-image: 
        linear-gradient(rgba(0, 0, 0, 0.015) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0, 0, 0, 0.015) 1px, transparent 1px),
        linear-gradient(135deg, #f3f4f6 0%, #f9fafb 50%, #e5e7eb 100%) !important;
    background-size: 50px 50px, 50px 50px, 100% 100% !important;
}

/* 2. Glow Blob background effect */
body::before {
    content: '';
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, color-mix(in srgb, var(--primary-color) 40%, transparent) 0%, transparent 70%);
    filter: blur(80px);
    z-index: -1;
    pointer-events: none;
    animation: pulseGlow 6s infinite alternate ease-in-out;
}

/* Secondary floating glow blob for background depth */
body::after {
    content: '';
    position: fixed;
    bottom: -10%;
    right: -10%;
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, color-mix(in srgb, var(--primary-gradient-end, #00c6ff) 25%, transparent) 0%, transparent 70%);
    filter: blur(80px);
    z-index: -1;
    pointer-events: none;
    animation: pulseGlowSecondary 8s infinite alternate ease-in-out;
}

/* Enable soft pastel glow blobs in Light Mode */
body.whitelabel-light::before, body.light-mode::before {
    display: block !important;
    background: radial-gradient(circle, color-mix(in srgb, var(--primary-color) 12%, transparent) 0%, transparent 70%) !important;
    filter: blur(100px) !important;
}
body.whitelabel-light::after, body.light-mode::after {
    display: block !important;
    background: radial-gradient(circle, color-mix(in srgb, var(--primary-gradient-end, #00c6ff) 10%, transparent) 0%, transparent 70%) !important;
    filter: blur(100px) !important;
}
body.dark-mode::before, body.dark-mode::after {
    display: block !important;
}

@keyframes pulseGlow {
    0% { opacity: 0.3; transform: translate(-50%, -50%) scale(0.9); }
    100% { opacity: 0.6; transform: translate(-50%, -50%) scale(1.1); }
}

@keyframes pulseGlowSecondary {
    0% { opacity: 0.25; transform: scale(0.95); }
    100% { opacity: 0.55; transform: scale(1.05) translate(-20px, -20px); }
}

/* 3. Signup Screen Layout overrides (enables scrollbar) */
body.signup-body {
    display: block !important;
    height: auto !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    min-height: 100vh;
    padding: 50px 20px 100px 20px !important;
    overflow-x: hidden;
    overflow-y: auto !important;
}

/* 4. Glass Cards */
.login-card, .signup-card, .verify-card {
    background: var(--card-bg) !important;
    border: 1px solid var(--card-border) !important;
    box-shadow: var(--card-shadow) !important;
    color: var(--text-color) !important;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    padding: 45px 40px;
    border-radius: 20px;
    width: 100%;
    max-width: 400px;
    z-index: 10;
    position: relative;
    text-align: center;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.login-card:hover, .signup-card:hover, .verify-card:hover {
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.45), 0 0 60px rgba(37, 99, 235, 0.12) !important;
    border-color: rgba(37, 99, 235, 0.22) !important;
    transform: translateY(-2px);
}
body.light-mode .login-card:hover, body.light-mode .signup-card:hover, body.light-mode .verify-card:hover {
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.08), 0 0 45px rgba(37, 99, 235, 0.06) !important;
    border-color: rgba(37, 99, 235, 0.15) !important;
}
.login-card::after, .signup-card::after, .verify-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary-color), var(--primary-gradient-end, #00c6ff));
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
}

.signup-card {
    max-width: 600px;
    margin: 0px auto 50px auto;
    border-radius: 24px;
    padding: 45px;
}

.verify-card {
    max-width: 480px;
    width: 90%;
    padding: 45px 40px;
}

.card-header-box {
    text-align: center;
    margin-bottom: 25px;
}
.card-header-box h2 {
    font-weight: 700;
}

/* 5. Inputs & Labels */
.form-control {
    background: var(--input-bg) !important;
    border: 1px solid var(--input-border) !important;
    color: var(--input-text) !important;
    padding: 12px 16px;
    border-radius: 10px;
    transition: all 0.3s ease;
    font-size: 0.95rem;
}

.signup-card .form-control {
    padding: 14px 18px;
    border-radius: 12px;
}

.form-control:hover {
    border-color: rgba(37, 99, 235, 0.35) !important;
}

.form-control:focus {
    background: var(--input-bg) !important;
    color: var(--input-text) !important;
    border-color: var(--primary-color) !important;
    box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.15) !important;
}

.form-label {
    color: var(--text-color) !important;
    opacity: 0.8;
    font-weight: 500;
    font-size: 0.85rem;
    margin-bottom: 8px;
}

.text-muted {
    color: var(--text-muted) !important;
}

/* Checkbox and Terms */
.form-check {
    position: relative;
    z-index: 20;
}
.form-check-input {
    cursor: pointer !important;
    width: 1.2em;
    height: 1.2em;
    background-color: rgba(255,255,255,0.1) !important;
    border: 1px solid var(--input-border) !important;
}
.form-check-input:checked {
    background-color: var(--accent) !important;
    border-color: var(--accent) !important;
}
.form-check-label {
    cursor: pointer;
    color: var(--text-color) !important;
    opacity: 0.8;
    user-select: none;
}

/* 6. Action Buttons */
.btn-login, .btn-custom {
    background: linear-gradient(135deg, var(--primary-color), var(--primary-gradient-end, #00c6ff)) !important;
    border: none;
    padding: 14px;
    width: 100%;
    font-weight: bold;
    border-radius: 12px;
    color: white !important;
    margin-top: 25px;
    transition: all 0.3s ease;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.2);
}

.btn-custom {
    padding: 16px;
    border-radius: 12px;
    letter-spacing: 1.5px;
    margin-top: 15px;
}

.btn-login:hover, .btn-custom:hover {
    transform: translateY(-2px) scale(1.015);
    box-shadow: 0 8px 25px rgba(37, 99, 235, 0.45);
    color: white !important;
}

/* 7. Footer Links & Anchors */
a {
    text-decoration: none !important;
}

.footer-links a {
    color: var(--link-color) !important;
    text-decoration: none !important;
    font-size: 0.85rem;
    transition: 0.3s;
}

.footer-links a:hover {
    color: var(--primary-color) !important;
}

/* 8. Password Strength Meter */
.strength-meter {
    height: 5px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.1);
    margin-top: 10px;
    overflow: hidden;
}
.strength-bar {
    height: 100%;
    width: 0%;
    transition: 0.4s;
}
.weak { background: #ff4d4d; width: 33%; }
.medium { background: #ffd933; width: 66%; }
.strong { background: #2be055; width: 100%; }

/* 9. Honeypot Field */
.honey {
    display: none !important;
}

/* 10. Intl-Tel-Input support */
.iti {
    width: 100%;
    display: block;
    color: #fff;
}
.iti__country-list {
    background-color: var(--card-bg) !important;
    color: var(--text-color) !important;
    border: 1px solid var(--card-border) !important;
    border-radius: 12px;
    white-space: normal;
    width: max-content;
    max-width: 300px;
}
.iti__country-list .iti__country.iti__highlight,
.iti__country-list .iti__country:hover {
    background-color: rgba(37, 99, 235, 0.4);
}
.iti__divider {
    border-bottom: 1px solid var(--card-border);
}
.iti__selected-flag {
    padding-left: 18px;
    border-radius: 12px 0 0 12px;
}
.iti__flag {
    box-shadow: 0px 0px 3px rgba(0,0,0,0.5);
}
.iti__selected-dial-code {
    color: var(--text-color) !important;
    font-weight: 500;
}
.iti-mobile .iti__country-list {
    background-color: var(--card-bg) !important;
    color: var(--text-color) !important;
}
.iti__country-name, .iti__dial-code {
    color: var(--text-color) !important;
}

/* 11. Verification Specific Styles */
.icon {
    font-size: 60px;
    margin-bottom: 20px;
}
.success-icon {
    color: #2ecc71;
    text-shadow: 0 0 20px rgba(46, 204, 113, 0.4);
}
.error-icon {
    color: #2563eb;
    text-shadow: 0 0 20px rgba(37, 99, 235, 0.4);
}

/* 12. Theme Toggle Button for Whitelabel */
.login-theme-toggle {
    position: fixed;
    top: 20px;
    right: 20px;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: var(--card-bg);
    border: 1px solid var(--card-border);
    color: var(--primary-color);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
    transition: 0.3s;
    z-index: 1000;
}
.login-theme-toggle:hover {
    transform: rotate(15deg);
    box-shadow: 0 6px 15px rgba(0,0,0,0.1);
}

/* Chrome Autofill Autofix */
input:-webkit-autofill,
input:-webkit-autofill:hover, 
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-box-shadow: 0 0 0 30px rgba(0, 0, 0, 0.6) inset !important;
    -webkit-text-fill-color: #ffffff !important;
    transition: background-color 5000s ease-in-out 0s;
}

/* Mobile responsive adjustments */
@media (max-width: 768px) {
    body {
        padding: 20px 10px;
        height: auto;
        align-items: flex-start;
    }
    .login-card, .signup-card, .verify-card {
        padding: 30px 20px;
    }
    .iti__country-list {
        max-width: 250px;
    }
}

/* Logo Light Mode Contrast (Invert white logo to dark) */
body.whitelabel-light .card-header-box img,
body.whitelabel-light .login-card img,
body.whitelabel-light .signup-card img,
body.whitelabel-light .verify-card img,
body.light-mode .card-header-box img,
body.light-mode .login-card img,
body.light-mode .signup-card img,
body.light-mode .verify-card img {
    filter: invert(1) !important;
}