/* Custom CSS for Lekhapal Authentication Pages */

/* Import FontAwesome for icons */
@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css');

/* Fix icon visibility and styling */
.fas, .fa, .ti {
    display: inline-block !important;
    font-family: "Font Awesome 5 Free", "Tabler Icons" !important;
    font-weight: 900 !important;
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    -webkit-font-smoothing: antialiased !important;
    -moz-osx-font-smoothing: grayscale !important;
}

/* Modern gradient backgrounds */
.bg-gradient-primary {
    background: linear-gradient(135deg, #22b0fc 0%, #0f53fa 100%) !important;
}

.bg-gradient-success {
    background: linear-gradient(135deg, #28a745 0%, #20c997 100%) !important;
}

.bg-gradient-warning {
    background: linear-gradient(135deg, #ffc107 0%, #fd7e14 100%) !important;
}

.bg-gradient-info {
    background: linear-gradient(135deg, #17a2b8 0%, #6f42c1 100%) !important;
}

/* Enhanced auth page styling */
.auth-wrapper {
    min-height: 100vh !important;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
    position: relative !important;
    overflow: hidden !important;
}

.auth-wrapper::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="grain" width="100" height="100" patternUnits="userSpaceOnUse"><circle cx="25" cy="25" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="75" cy="75" r="1" fill="rgba(255,255,255,0.1)"/><circle cx="50" cy="10" r="0.5" fill="rgba(255,255,255,0.1)"/><circle cx="10" cy="60" r="0.5" fill="rgba(255,255,255,0.1)"/><circle cx="90" cy="40" r="0.5" fill="rgba(255,255,255,0.1)"/></pattern></defs><rect width="100" height="100" fill="url(%23grain)"/></svg>') !important;
    opacity: 0.3 !important;
}

.auth-card {
    background: rgba(255, 255, 255, 0.95) !important;
    backdrop-filter: blur(10px) !important;
    border: none !important;
    border-radius: 20px !important;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1) !important;
    overflow: hidden !important;
    position: relative !important;
}

.auth-card::before {
    content: "" !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 4px !important;
    background: linear-gradient(90deg, #22b0fc, #0f53fa, #28a745) !important;
}

/* Logo styling */
.auth-logo {
    text-align: center !important;
    margin-bottom: 2rem !important;
}

.auth-logo img {
    max-width: 200px !important;
    height: auto !important;
    filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1)) !important;
}

/* Form styling */
.auth-form {
    padding: 2rem !important;
}

.auth-title {
    font-size: 2rem !important;
    font-weight: 700 !important;
    color: #1d293f !important;
    margin-bottom: 0.5rem !important;
    text-align: center !important;
}

.auth-subtitle {
    font-size: 1rem !important;
    color: #6c757d !important;
    text-align: center !important;
    margin-bottom: 2rem !important;
}

/* Input group styling */
.form-group {
    margin-bottom: 1.5rem !important;
}

.form-label {
    font-weight: 600 !important;
    color: #1d293f !important;
    margin-bottom: 0.5rem !important;
    font-size: 0.9rem !important;
}

.form-control {
    border: 2px solid #e9ecef !important;
    border-radius: 10px !important;
    padding: 0.75rem 1rem !important;
    font-size: 1rem !important;
    transition: all 0.3s ease !important;
    background: #ffffff !important;
}

.form-control:focus {
    border-color: #22b0fc !important;
    box-shadow: 0 0 0 0.2rem rgba(34, 176, 252, 0.25) !important;
    outline: none !important;
}

.form-control::placeholder {
    color: #adb5bd !important;
}

/* Input group with icons */
.input-group {
    position: relative !important;
}

.input-group-text {
    background: #f8f9fa !important;
    border: 2px solid #e9ecef !important;
    border-right: none !important;
    border-radius: 10px 0 0 10px !important;
    color: #6c757d !important;
    cursor: pointer !important;
    transition: all 0.3s ease !important;
}

.input-group .form-control {
    border-left: none !important;
    border-radius: 0 10px 10px 0 !important;
}

.input-group:focus-within .input-group-text {
    border-color: #22b0fc !important;
    background: #e3f2fd !important;
    color: #22b0fc !important;
}

/* Domain input styling */
.domain-input-group {
    border-radius: 10px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important;
}

.domain-input-group .form-control {
    border: none !important;
    border-radius: 0 !important;
}

.domain-input-group .input-group-text {
    background: #22b0fc !important;
    color: white !important;
    border: none !important;
    font-weight: 600 !important;
}

/* Button styling */
.btn-auth-primary {
    background: linear-gradient(135deg, #22b0fc 0%, #0f53fa 100%) !important;
    border: none !important;
    color: #ffffff !important;
    padding: 0.75rem 2rem !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 4px 15px rgba(34, 176, 252, 0.3) !important;
    width: 100% !important;
}

.btn-auth-primary:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 25px rgba(34, 176, 252, 0.4) !important;
    color: #ffffff !important;
}

.btn-auth-outline {
    background: transparent !important;
    border: 2px solid #22b0fc !important;
    color: #22b0fc !important;
    padding: 0.75rem 2rem !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    transition: all 0.3s ease !important;
    width: 100% !important;
}

.btn-auth-outline:hover {
    background: #22b0fc !important;
    color: #ffffff !important;
    transform: translateY(-2px) !important;
}

/* Checkbox styling */
.form-check-input {
    width: 1.2rem !important;
    height: 1.2rem !important;
    border: 2px solid #e9ecef !important;
    border-radius: 4px !important;
    margin-right: 0.5rem !important;
}

.form-check-input:checked {
    background-color: #22b0fc !important;
    border-color: #22b0fc !important;
}

.form-check-label {
    color: #6c757d !important;
    font-size: 0.9rem !important;
}

/* Link styling */
.auth-link {
    color: #22b0fc !important;
    text-decoration: none !important;
    font-weight: 600 !important;
    transition: all 0.3s ease !important;
}

.auth-link:hover {
    color: #0f53fa !important;
    text-decoration: underline !important;
}

/* Divider styling */
.auth-divider {
    text-align: center !important;
    margin: 2rem 0 !important;
    position: relative !important;
}

.auth-divider::before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 0 !important;
    right: 0 !important;
    height: 1px !important;
    background: #e9ecef !important;
}

.auth-divider span {
    background: rgba(255, 255, 255, 0.95) !important;
    padding: 0 1rem !important;
    color: #6c757d !important;
    font-size: 0.9rem !important;
}

/* Error styling */
.invalid-feedback {
    color: #dc3545 !important;
    font-size: 0.875rem !important;
    margin-top: 0.25rem !important;
}

.form-control.is-invalid {
    border-color: #dc3545 !important;
}

.form-control.is-invalid:focus {
    border-color: #dc3545 !important;
    box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25) !important;
}

/* Success styling */
.form-control.is-valid {
    border-color: #28a745 !important;
}

.form-control.is-valid:focus {
    border-color: #28a745 !important;
    box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25) !important;
}

/* Animation classes */
.fade-in {
    animation: fadeIn 0.6s ease-out !important;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .auth-card {
        margin: 1rem !important;
        border-radius: 15px !important;
    }
    
    .auth-form {
        padding: 1.5rem !important;
    }
    
    .auth-title {
        font-size: 1.5rem !important;
    }
    
    .auth-logo img {
        max-width: 150px !important;
    }
}

/* Loading animation */
.auth-loading {
    display: inline-block !important;
    width: 20px !important;
    height: 20px !important;
    border: 3px solid rgba(255, 255, 255, 0.3) !important;
    border-radius: 50% !important;
    border-top-color: #ffffff !important;
    animation: spin 1s ease-in-out infinite !important;
}

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

/* Password strength indicator */
.password-strength {
    height: 4px !important;
    border-radius: 2px !important;
    margin-top: 0.5rem !important;
    transition: all 0.3s ease !important;
}

.password-strength.weak {
    background: #dc3545 !important;
    width: 25% !important;
}

.password-strength.fair {
    background: #ffc107 !important;
    width: 50% !important;
}

.password-strength.good {
    background: #17a2b8 !important;
    width: 75% !important;
}

.password-strength.strong {
    background: #28a745 !important;
    width: 100% !important;
}

/* Floating labels */
.floating-label {
    position: relative !important;
}

.floating-label .form-control {
    padding-top: 1.5rem !important;
    padding-bottom: 0.5rem !important;
}

.floating-label .form-label {
    position: absolute !important;
    top: 0.75rem !important;
    left: 1rem !important;
    transition: all 0.3s ease !important;
    pointer-events: none !important;
    color: #6c757d !important;
}

.floating-label .form-control:focus + .form-label,
.floating-label .form-control:not(:placeholder-shown) + .form-label {
    top: 0.25rem !important;
    font-size: 0.75rem !important;
    color: #22b0fc !important;
} 