@import "variables.css";
@import "modal.css";

/* CSS Reset & Base Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}


body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    line-height: 1.5;
    color: var(--text-primary);
    background-color: var(--bg-primary);
    font-size: var(--text-sm);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    padding: 2rem 1rem;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Container & Layout */
.container {
    display: flex;
    gap: 2rem;
    max-width: 940px;
    width: 100%;
    align-items: flex-start;
}

/* Promo Section */
.promo-section {
    background-color: var(--bg-tertiary);
    padding: 2rem 1.75rem;
    display: flex;
    flex-direction: column;
    position: relative;
    border-radius: var(--radius-xl);
    border: none;
    flex: 1; 
    min-height: 650px;
}

.logo-section {
    margin-bottom: 2rem;
}

.logo {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.logo-icon {
    width: 32px;
    height: 32px;
    background-color: var(--accent-primary);
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.logo-text {
    font-size: var(--text-lg);
    font-weight: var(--font-semibold);
    color: var(--text-primary);
}

.promo-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: 400px;
}

.promo-title {
    font-size: 1.875rem;
    font-weight: var(--font-bold);
    line-height: 1.2;
    margin-bottom: 1.25rem;
    color: var(--text-primary);
}

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

.promo-description {
    font-size: var(--text-base);
    width: 380px;
    color: var(--text-secondary);
    margin-bottom: 1.5rem;
    line-height: 1.6;
}

/* Illustration */
.illustration {
    margin-bottom: 1.5rem;
}

.phone-mockup {
    background: var(--bg-secondary);
    border-radius: 24px;    
    padding: 1rem;
    width: 100%;
    height: fit-content;
    max-width: 340px;
    position: relative;
    overflow: hidden;
}

.screen {
    width: 100%;
    height: fit-content;
    border-radius: 16px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    position: relative;
    }

.gradient-section {
    height: 50%;
    transition: all 0.3s ease;
    }

.gradient-red {
    background: linear-gradient(135deg, #8b2635 0%, #4a1a24 100%);
}

.gradient-orange {
    background: linear-gradient(135deg, #ff6b35 0%, #e55100 100%);
}

.bottom-section {
    height: 50%;
    background: linear-gradient(135deg, #757575 0%, #424242 100%);
}

.progress-dots {
    display: flex;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-sm);
    justify-content: center;
}

.dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: var(--border-primary);
    transition: all var(--transition-base);
}

.dot.active {
    background-color: var(--accent-primary);
    width: 24px;
    border-radius: var(--radius-sm);
}

/* Trust Indicators */
.trust-indicators {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.avatars {
    display: flex;
    gap: -8px;
}

.avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid var(--bg-secondary);
    margin-left: -8px;
}

.avatar:first-child {
    margin-left: 0;
}

.avatar-1 {
    background: linear-gradient(135deg, #ff9a9e 0%, #fecfef 100%);
}

.avatar-2 {
    background: linear-gradient(135deg, #a8edea 0%, #fed6e3 100%);
}

.avatar-3 {
    background: linear-gradient(135deg, #ff9a9e 0%, #fad0c4 100%);
}

.trust-text {
    font-size: var(--text-sm);
    color: var(--text-secondary);
    font-weight: var(--font-medium);
}

/* Login Section */
.login-section {
    margin-top: 80px;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    background-color: var(--bg-tertiary);
    border-radius: var(--radius-xl);
    border: none;
    flex: 1;
    min-height: 450px;
}

.login-header {
    display: flex;
    justify-content: flex-end;
    margin-bottom: var(--spacing-lg);
}

.employee-portal-badge {
    background-color: var(--bg-tertiary);
    color: var(--text-secondary);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--radius-md);
    font-size: var(--text-xs);
    font-weight: var(--font-medium);
}

.login-content {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    max-width: fit-content;
    width: fit-content;
}

.login-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-sm);
}

.welcome-title {
    font-size: 1.5rem;
    font-weight: var(--font-bold);
    margin-bottom: var(--spacing-sm);
    color: var(--text-primary);
    margin: 0;
}

.welcome-subtitle {
    color: var(--text-secondary);
    margin-bottom: 1.25rem;
    line-height: 1.6;
    font-size: 0.9rem;
}

/* Form Styles */
.login-form {
    margin-bottom: 0;
}

.form-group {
    margin-bottom: 1.25rem;
}

.form-group label {
    display: block;
    font-weight: var(--font-medium);
    margin-bottom: var(--spacing-sm);
    color: var(--text-primary);
}

.form-group input {
    width: 100%;
    padding: var(--spacing-sm);
    border: 1px solid var(--border-primary);
    border-radius: var(--radius-md);
    background-color: var(--bg-input);
    color: var(--text-primary);
    font-size: var(--text-sm);
    transition: all var(--transition-base);
}

.form-group input:focus {
    outline: none;
    border-color: var(--accent-primary);
    box-shadow: 0 0 0 3px var(--accent-focus);
}

.form-group input::placeholder {
    color: var(--text-secondary);
}

.password-requirement {
    font-size: var(--text-xs);
    color: var(--text-secondary);
    margin-top: var(--spacing-sm);
}

/* Message Container for Login Errors/Success */
.message-container {
    margin-bottom: var(--spacing-md);
    min-height: 0;
}

.message-container .toast-message {
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    margin: 0 0 var(--spacing-xs) 0;
    border: 1px solid;
    background: var(--bg-secondary);
    color: var(--text-primary);
}

.message-container .toast-message.error {
    color: #fecaca;
    background: rgba(220, 38, 38, 0.15);
    border-color: var(--red-primary);
}

.message-container .toast-message.success {
    color: #bbf7d0;
    background: rgba(22, 163, 74, 0.15);
    border-color: var(--green-primary);
}

.form-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.25rem;
    flex-wrap: wrap;
    gap: 1rem;
}

.forgot-password,
.contact-support {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--text-secondary);
    text-decoration: none;
    font-size: var(--text-sm);
    font-weight: var(--font-medium);
    transition: color var(--transition-base);
}

.forgot-password:hover,
.contact-support:hover {
    color: var(--accent-primary);
}

/* Toggle checkbox style for forgot-password */
/* Reset panel styling for Forgot password */
.reset-panel {
    margin-top: 12px;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
    background: var(--bg-secondary);
    border: 1px solid var(--border-primary);
    padding: var(--spacing-sm);
    border-radius: var(--radius-md);
}
.reset-panel .reset-label { font-weight: var(--font-bold); color: var(--text-primary); }
.reset-panel .reset-email { padding: var(--spacing-xs); border: 1px solid var(--border-primary); border-radius: var(--radius-sm); background: var(--bg-input); color: var(--text-primary); }
.reset-panel .rp-actions { display: flex; gap: var(--spacing-xs); }
.reset-panel .rp-cancel { background: var(--bg-secondary); }

/* Modal styles for reset dialog */
.modal-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(10,10,10,0.5);
    backdrop-filter: blur(4px);
    z-index: 99;
    /* Default: will be controlled by display property in HTML */
}

/* Specific backdrop IDs with explicit control */

/* QR Modal Backdrop */
#qrModalBackdrop[style*="display: none"] {
    display: none !important;
    pointer-events: none !important;
}

#qrModalBackdrop[style*="display: block"] {
    display: block !important;
    pointer-events: auto !important;
}

/* Attendance Action Backdrop */
#attendanceActionBackdrop[style*="display: none"] {
    display: none !important;
    pointer-events: none !important;
}

#attendanceActionBackdrop[style*="display: block"] {
    display: block !important;
    pointer-events: auto !important;
}

/* Generic modal backdrop fallback */
.modal-backdrop[style*="display: none"] {
    pointer-events: none !important;
}

.modal-backdrop[style*="display: block"] {
    pointer-events: auto !important;
}
.reset-modal {
    position: fixed;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 100;
    max-width: 420px;
    width: calc(100% - 48px);
}
.reset-modal .modal-card {
    background: var(--bg-tertiary);
    border: none;
    padding: 18px;
    border-radius: var(--radius-lg);
    box-shadow: 0 0 30px rgba(217, 70, 239, 0.25);
}
.reset-modal h3 { margin: 0 0 var(--spacing-xs) 0; color: var(--text-primary); }
.reset-modal .muted { color: var(--text-secondary); font-size: var(--text-xs); margin-bottom: var(--spacing-xs); }
.reset-modal .reset-email { width: 100%; padding: var(--spacing-xs); border: 1px solid var(--border-primary); border-radius: var(--radius-md); margin-bottom: var(--spacing-xs); background: var(--bg-input); color: var(--text-primary); }
.reset-modal .rp-actions { display: flex; gap: var(--spacing-xs); justify-content: flex-end; }

/* Buttons */
.sign-in-btn {
    width: 100%;
    padding: var(--spacing-sm) var(--spacing-md);
    background-color: var(--accent-primary);
    color: white;
    border: none;
    border-radius: var(--radius-md);
    font-size: var(--text-sm);
    font-weight: var(--font-semibold);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--spacing-xs);
    transition: all var(--transition-base);
}

.sign-in-btn:hover {
    background-color: var(--accent-hover);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(217, 70, 239, 0.3);
}

.sign-in-btn:active {
    transform: translateY(0);
}


/* Security Notice */

/* Footer */
.login-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
    }

/* Removed self-service signup & QR scanning styles per product rule: accounts are created by HR or Super Admin */

/* Responsive Design */
@media (max-width: 1024px) {
    .container {
        flex-direction: column;
        gap: var(--spacing-lg);
    }
    
    .promo-section {
        padding: var(--spacing-lg) var(--spacing-md);
        min-height: auto;
    }
    
    .promo-content {
        max-width: none;
        text-align: center;
    }
    
    .promo-title {
        font-size: var(--text-2xl);
    }
    
    .illustration {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    .phone-mockup {
        max-width: 250px;
    }
    
    .login-section {
        padding: var(--spacing-lg) var(--spacing-md);
        min-height: auto;
    }
}

@media (max-width: 768px) {
    .container {
        flex-direction: column;
        gap: var(--spacing-md);
    }
    
    .promo-section {
        padding: var(--spacing-lg);
        min-height: auto;
    }
    
    .promo-content {
        margin-bottom: var(--spacing-md);
    }
    .login-top { flex-direction: column; align-items: flex-start; gap: var(--spacing-xs); }
    
    .promo-title {
        font-size: var(--text-xl);
        margin-bottom: var(--spacing-md);
    }
    
    .promo-description {
        margin-bottom: var(--spacing-lg);
    }
    
    .illustration {
        margin-bottom: var(--spacing-lg);
    }
    
    .phone-mockup {
        max-width: 200px;
    }
    
    .login-section {
        padding: var(--spacing-lg);
        min-height: auto;
    }
    
    .welcome-title {
        font-size: var(--text-lg);
    }
    
    .form-actions {
        flex-direction: column;
        align-items: stretch;
        gap: var(--spacing-sm);
    }
    
    .form-actions a {
        text-align: center;
        padding: var(--spacing-sm);
    }
    
    .login-footer {
        flex-direction: column;
        text-align: center;
        gap: var(--spacing-sm);
    }
}

@media (max-width: 480px) {
    .promo-section,
    .login-section {
        padding: var(--spacing-md);
    }
    
    .promo-title {
        font-size: var(--text-lg);
    }
    
    .welcome-title {
        font-size: var(--text-base);
    }
    
    .phone-mockup {
        max-width: 180px;
    }
    
    .form-group input,
    .sign-in-btn,
    .qr-scan-btn {
        padding: var(--spacing-xs);
    }
}

/* Animation for page load */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.login-content > * {
    animation: fadeInUp 0.6s ease forwards;
}

.login-content > *:nth-child(1) { animation-delay: 0.1s; }
.login-content > *:nth-child(2) { animation-delay: 0.2s; }
.login-content > *:nth-child(3) { animation-delay: 0.3s; }
.login-content > *:nth-child(4) { animation-delay: 0.4s; }
.login-content > *:nth-child(5) { animation-delay: 0.5s; }
.login-content > *:nth-child(6) { animation-delay: 0.6s; }