/* ===== Employee Login — Minimalist & Mobile-First ===== */

.emp-login-page *,.emp-login-page *::before,.emp-login-page *::after{box-sizing:border-box;margin:0;/*padding:0;*/}

/* Push Challenge Panel */
.emp-push-challenge {
    text-align: center;
    padding: 20px 0;
}

.emp-push-challenge[hidden] {
    display: none !important;
}

.emp-push-header {
    margin-bottom: 24px;
}

.emp-push-icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 16px;
    border-radius: 50%;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 24px;
}

.emp-push-header h3 {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 8px;
    color: #1a1a2e;
}

.emp-push-header p {
    font-size: 14px;
    color: #64748b;
}


.emp-number-label {
    font-size: 14px;
    color: #64748b;
    margin-bottom: 12px;
}

.emp-number-display {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 8px;
}

.emp-number-value {
    font-size: 48px;
    font-weight: 700;
    color: #667eea;
    letter-spacing: 8px;
    font-family: 'Courier New', monospace;
}

.emp-number-hint {
    font-size: 12px;
    color: #94a3b8;
}

.emp-otp-fallback {
    margin: 24px 0;
}

.emp-otp-label {
    font-size: 14px;
    color: #64748b;
    margin-bottom: 16px;
}

.emp-otp-inputs {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-bottom: 16px;
}

.emp-otp-digit {
    width: 45px;
    height: 50px;
    font-size: 24px;
    font-weight: 600;
    text-align: center;
    border: 2px solid #e2e8f0;
    border-radius: 8px;
    background: #fff;
    color: #1a1a2e;
    transition: all 0.2s;
}

.emp-otp-digit:focus {
    outline: none;
    border-color: #667eea;
    box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
}

.emp-otp-submit {
    width: 100%;
    margin-top: 12px;
}

.emp-push-meta {
    display: flex;
    justify-content: space-around;
    border-radius: 8px;
}

.emp-push-meta-item {
    text-align: center;
}

.emp-meta-label {
    display: block;
    font-size: 12px;
    color: #94a3b8;
    margin-bottom: 4px;
}

.emp-meta-value {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: #1a1a2e;
}


.emp-login-page{
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Helvetica Neue',Arial,sans-serif;
    min-height:100vh;min-height:100dvh;
    background:#f8f9fb;
    color:#1a1a2e;
    -webkit-font-smoothing:antialiased;
}

.alert-dismissible{box-shadow:0 .5rem 1rem rgba(0,0,0,0.15);border:none;color:#fff;padding:15px;min-width:200px;max-width:400px;}
.alert-dismissible .close{color:#fff;opacity:.8;text-shadow:none;background:transparent;border:none;}
.alert-dismissible .close:hover{opacity:1;}
.alert-success{background-color:#28a745;}
.alert-danger{background-color:#dc3545;}
.alert-warning{background-color:#ffc107;color:#212529;}
.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f;}


/* Shell — centres card vertically, adds safe-area padding on mobile */
.emp-login-shell{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    min-height:100vh;min-height:100dvh;
    padding:24px 16px;
    padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
}

/* Network pill */
.emp-net{
    display:inline-flex;align-items:center;gap:6px;
    padding:6px 14px;border-radius:20px;
    font-size:12px;font-weight:500;color:#64748b;
    background:#fff;border:1px solid #e2e8f0;
    margin-bottom:20px;
    transition:all .3s;
}
.emp-net-dot{width:7px;height:7px;border-radius:50%;background:#94a3b8;transition:background .3s;}
.emp-net.online .emp-net-dot{background:#22c55e;}
.emp-net.offline{background:#fef3c7;border-color:#fbbf24;color:#92400e;}
.emp-net.offline .emp-net-dot{background:#f59e0b;}

/* Card */
.emp-login-card{
    width:100%;max-width:400px;
    background:#fff;
    border-radius:16px;
    box-shadow:0 1px 3px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.04);
    padding:32px 28px;
}

body.ams-page .emp-login-card{
    max-width:800px;
    width:100%;
}

/* Header */
.emp-login-hd{text-align:center;margin-bottom:28px;}
.emp-login-logo{
    width:48px;height:48px;border-radius:12px;
    background:linear-gradient(135deg,#1e3c72,#2a5298);
    color:#fff;font-size:22px;
    display:inline-flex;align-items:center;justify-content:center;
    margin-bottom:16px;
}
.emp-login-hd h1{font-size:20px;font-weight:700;letter-spacing:-.3px;margin-bottom:4px;}
.emp-login-hd p{font-size:13px;color:#94a3b8;font-weight:400;}

/* Tabs */
.emp-tabs{display:flex;gap:6px;margin-bottom:24px;background:#f1f5f9;border-radius:10px;padding:4px;}
.emp-tab{
    flex:1;padding:8px 0;
    font-size:13px;font-weight:500;
    border:none;background:transparent;color:#64748b;
    border-radius:8px;cursor:pointer;
    transition:all .2s;
    display:flex;align-items:center;justify-content:center;gap:6px;
}
.emp-tab.active{background:#fff;color:#1e3c72;box-shadow:0 1px 3px rgba(0,0,0,.08);}
.emp-tab:hover:not(.active){color:#334155;}
.emp-tab i{font-size:13px;}

/* Fields */
.emp-field{margin-bottom:16px;}
.emp-field label{display:block;font-size:13px;font-weight:600;color:#334155;margin-bottom:6px;}
.emp-field input{
    width:100%;padding:10px 12px;
    font-size:14px;color:#1a1a2e;
    border:1.5px solid #e2e8f0;border-radius:8px;
    background:#f8fafc;
    transition:border-color .15s,box-shadow .15s;
    outline:none;
}
.emp-field input::placeholder{color:#b0b8c4;}
.emp-field input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);background:#fff;}

/* Password wrapper */
.emp-pw-wrap{position:relative;}
.emp-pw-wrap input{padding-right:42px;}
.emp-pw-toggle{
    position:absolute;right:1px;top:1px;bottom:1px;width:40px;
    border:none;background:transparent;color:#94a3b8;
    cursor:pointer;border-radius:0 8px 8px 0;
    display:flex;align-items:center;justify-content:center;
    transition:color .15s;
}
.emp-pw-toggle:hover{color:#475569;}

/* Fingerprint panel */
.emp-fp{text-align:center;padding:24px 0;}
.emp-fp-icon{font-size:48px;color:#cbd5e1;margin-bottom:12px;transition:color .3s;}
.emp-fp p{font-size:13px;color:#94a3b8;}

/* Remember checkbox */
.emp-remember{
    display:flex;align-items:center;gap:8px;
    font-size:13px;color:#64748b;cursor:pointer;
    margin-bottom:20px;
}
.emp-remember input{width:16px;height:16px;accent-color:#1e3c72;cursor:pointer;}

/* Submit */
.emp-submit{
    width:100%;padding:11px 0;
    font-size:14px;font-weight:600;
    color:#fff;background:#1e3c72;
    border:none;border-radius:10px;
    cursor:pointer;
    transition:background .2s,transform .1s;
}
.emp-submit:hover{background:#16305e;}
.emp-submit:active{transform:scale(.98);}
.emp-submit:disabled{opacity:.55;cursor:not-allowed;transform:none;}

/* Forgot password link */
.emp-forgot-link{text-align:center;margin-top:14px;}
.emp-forgot-link a{font-size:13px;color:#64748b;text-decoration:none;transition:color .15s;}
.emp-forgot-link a:hover{color:#1e3c72;}
.emp-forgot-link i{margin-right:4px;font-size:11px;}

/* Feedback message */
.emp-feedback{
    min-height:20px;margin:12px 0 4px;
    font-size:13px;line-height:1.4;
    border-radius:8px;padding:0;
    transition:all .2s;
}
.emp-feedback:empty{display:none;}
.emp-feedback.success{color:#065f46;background:#ecfdf5;padding:10px 12px;}
.emp-feedback.error{color:#991b1b;background:#fef2f2;padding:10px 12px;}
.emp-feedback.warning{color:#92400e;background:#fffbeb;padding:10px 12px;border:1px solid #fde68a;}

/* Social section — hidden when offline */
.emp-social{display:none;margin-top:24px;}
.emp-social.online{display:block;}
.emp-divider{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.emp-divider::before,.emp-divider::after{content:'';flex:1;border-top:1px solid #e2e8f0;}
.emp-divider span{font-size:12px;color:#94a3b8;white-space:nowrap;}
.emp-social-row{display:flex;justify-content:center;gap:12px;}

.emp-btn-social{
    position:relative;
    width:44px;height:44px;
    display:flex;align-items:center;justify-content:center;
    border:1.5px solid #e2e8f0;border-radius:50%;
    background:#fff;cursor:pointer;
    transition:border-color .2s,box-shadow .2s,transform .1s;
    font-size:16px;color:#64748b;
}
.emp-btn-social:hover{border-color:#cbd5e1;box-shadow:0 2px 8px rgba(0,0,0,.08);transform:scale(1.05);}
.emp-btn-social:active{transform:scale(.97);}
.emp-btn-social[title]:hover::after{
    content:attr(title);
    position:absolute;bottom:-30px;left:50%;transform:translateX(-50%);
    padding:4px 10px;border-radius:6px;
    background:#1a1a2e;color:#fff;
    font-size:11px;font-weight:500;white-space:nowrap;
    pointer-events:none;
    opacity:0;animation:empTip .15s ease forwards;
}
@keyframes empTip{to{opacity:1;}}
.emp-google-native{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;overflow:hidden;}
.emp-btn-fb{color:#1877f2;font-size:18px;border-color:#e2e8f0;}
.emp-btn-fb:hover{border-color:#1877f2;}

/* Footer */
.emp-login-ft{margin-top:24px;text-align:center;}
.emp-login-ft a{font-size:13px;color:#94a3b8;text-decoration:none;transition:color .15s;}
.emp-login-ft a:hover{color:#1e3c72;}

/* ===== Mobile tweaks ===== */
@media(max-width:480px){
    .emp-login-shell{padding:16px 12px;justify-content:flex-start;padding-top:48px;}
    .emp-login-card{padding:24px 20px;border-radius:14px;}
    .emp-login-hd h1{font-size:18px;}
    .emp-field input{padding:12px;font-size:16px;} /* 16px prevents iOS zoom */
    .emp-submit{padding:13px 0;font-size:15px;}
    .emp-tab{font-size:12px;padding:7px 0;}
}
@media(max-width:360px){
    .emp-login-card{padding:20px 16px;}
    .emp-login-logo{width:40px;height:40px;font-size:18px;}
}

/* ===== Employee Registration ===== */
.emp-register-shell{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    min-height:100vh;min-height:100dvh;
    padding:24px 16px;
    padding:max(24px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
}
.emp-register-card{
    width:100%;max-width:560px;
    background:#fff;border-radius:16px;
    box-shadow:0 1px 3px rgba(0,0,0,.06),0 8px 24px rgba(0,0,0,.04);
    padding:32px 28px;
}

/* Logo image inside login/registration header */
.emp-login-logo img, .emp-register-card .emp-login-logo img{max-height:30px;object-fit:contain;}

/* Step Indicators */
.emp-steps{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:28px;}
.emp-step{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:8px;transition:all .2s;}
.emp-step-num{width:28px;height:28px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.emp-step-label{font-size:12px;font-weight:600;color:#94a3b8;transition:color .2s;}
.emp-step.active .emp-step-num{background:#1e3c72;color:#fff;}
.emp-step.active .emp-step-label{color:#1e3c72;}
.emp-step.completed .emp-step-num{background:#22c55e;color:#fff;}
.emp-step.completed .emp-step-label{color:#22c55e;}
.emp-step-line{width:24px;height:2px;background:#e2e8f0;flex-shrink:0;}

/* Section Titles */
.emp-reg-section-title{font-size:14px;font-weight:700;color:#334155;margin-bottom:16px;display:flex;align-items:center;gap:8px;}
.emp-reg-section-title i{color:#64748b;font-size:13px;}
.emp-reg-section-title-spaced{margin-top:20px;}

/* Field Rows */
.emp-field-row{display:flex;gap:12px;margin-bottom:0;}
.emp-field-row .emp-field{flex:1;}
.emp-field select{
    width:100%;padding:10px 12px;font-size:14px;color:#1a1a2e;
    border:1.5px solid #e2e8f0;border-radius:8px;background:#f8fafc;
    transition:border-color .15s,box-shadow .15s;outline:none;
    appearance:none;-webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2394a3b8' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right 12px center;
    cursor:pointer;
}
.emp-field select:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);background-color:#fff;}
.emp-field-help{display:block;font-size:11px;color:#94a3b8;margin-top:4px;}
.emp-field-readonly{background:#f1f5f9!important;color:#64748b!important;cursor:not-allowed;}
.emp-field-error{border-color:#dc3545!important;box-shadow:0 0 0 3px rgba(220,53,69,.1)!important;}

/* Existing Employee Toggle */
.emp-toggle-wrap{margin-bottom:16px;padding:12px 14px;background:#f8fafc;border-radius:10px;border:1px solid #e2e8f0;}
.emp-toggle-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;color:#475569;font-weight:500;}
.emp-toggle-label input[type="checkbox"]{display:none;}
.emp-toggle-slider{width:38px;height:22px;background:#cbd5e1;border-radius:11px;position:relative;transition:background .2s;flex-shrink:0;}
.emp-toggle-slider::after{content:'';position:absolute;top:3px;left:3px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 2px rgba(0,0,0,.1);}
.emp-toggle-label input:checked + .emp-toggle-slider{background:#1e3c72;}
.emp-toggle-label input:checked + .emp-toggle-slider::after{transform:translateX(16px);}

/* Button Row */
.emp-reg-btn-row{display:flex;gap:12px;}
.emp-reg-btn-row .emp-submit{flex:1;}
.emp-submit-outline{background:#fff!important;color:#1e3c72!important;border:1.5px solid #1e3c72!important;}
.emp-submit-outline:hover{background:#f0f4ff!important;}

/* Button icon spacing */
.emp-submit .fa-arrow-right{margin-left:6px;}
.emp-submit .fa-arrow-left,
.emp-submit .fa-sign-in-alt,
.emp-submit .fa-user-plus{margin-right:6px;}

/* Password Strength */
.emp-pw-strength{height:6px;background:#e2e8f0;border-radius:3px;margin-top:6px;overflow:hidden;position:relative;}
.emp-pw-bar{height:100%;border-radius:3px;transition:width .3s,background .3s;}
.emp-pw-bar.emp-pw-score-1{width:20%;background:#dc3545;}
.emp-pw-bar.emp-pw-score-2{width:40%;background:#ffc107;}
.emp-pw-bar.emp-pw-score-3{width:60%;background:#28a745;}
.emp-pw-bar.emp-pw-score-4{width:80%;background:#198754;}
.emp-pw-bar.emp-pw-score-5{width:100%;background:#0d6efd;}
.emp-pw-strength small{position:absolute;right:0;top:-16px;font-size:11px;font-weight:600;}
.emp-pw-score-1-text{color:#dc3545;}
.emp-pw-score-2-text{color:#ffc107;}
.emp-pw-score-3-text{color:#28a745;}
.emp-pw-score-4-text{color:#198754;}
.emp-pw-score-5-text{color:#0d6efd;}

/* Field help error state */
.emp-field-help-error{color:#dc3545!important;}

/* OTP Section */
.emp-otp-section{text-align:center;padding:16px 0;}
.emp-otp-icon{font-size:48px;color:#3b82f6;margin-bottom:16px;}
.emp-otp-section h3{font-size:18px;font-weight:700;color:#1a1a2e;margin-bottom:8px;}
.emp-otp-desc{font-size:13px;color:#64748b;margin-bottom:24px;line-height:1.6;}
.emp-otp-inputs{display:flex;justify-content:center;gap:8px;margin-bottom:20px;}
.emp-otp-digit{width:44px;height:52px;text-align:center;font-size:20px;font-weight:700;color:#1a1a2e;border:1.5px solid #e2e8f0;border-radius:10px;background:#f8fafc;outline:none;transition:border-color .15s,box-shadow .15s;}
.emp-otp-digit:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.15);background:#fff;}
.emp-otp-resend{margin-top:16px;font-size:13px;color:#94a3b8;}
.emp-otp-skip{margin-top:20px;padding-top:16px;border-top:1px solid #f1f5f9;}
.emp-otp-skip a{font-size:13px;color:#64748b;text-decoration:none;}
.emp-otp-skip a:hover{color:#1e3c72;}
.emp-otp-skip small{display:block;font-size:11px;color:#cbd5e1;margin-top:4px;}
.emp-link-btn{background:none;border:none;color:#1e3c72;font-size:13px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:4px;}
.emp-link-btn:hover{background:#f0f4ff;}

/* Success Section */
.emp-success-section{text-align:center;padding:16px 0;}
.emp-success-icon{font-size:56px;color:#22c55e;margin-bottom:16px;}
.emp-success-section h3{font-size:18px;font-weight:700;color:#1a1a2e;margin-bottom:8px;}
.emp-success-desc{font-size:13px;color:#64748b;margin-bottom:20px;line-height:1.6;}
.emp-success-info{text-align:left;background:#f8fafc;border-radius:10px;padding:16px;margin-bottom:16px;}
.emp-success-detail{display:flex;align-items:center;gap:8px;padding:8px 0;font-size:13px;color:#475569;border-bottom:1px solid #f1f5f9;}
.emp-success-detail:last-child{border-bottom:none;}
.emp-success-detail i{color:#94a3b8;width:16px;text-align:center;}
.emp-success-login-link{display:inline-block;text-align:center;text-decoration:none;margin-top:16px;}

/* Login — Register CTA */
.emp-register-divider{margin-top:20px;}
.emp-register-cta{display:block;text-align:center;text-decoration:none;background:#f1f5f9;color:#1e3c72;border:1.5px solid #e2e8f0;}
.emp-register-cta:hover{background:#e2e8f0;color:#16305e;}

.emp-passwordless-block{
    margin-top:24px;
    padding-top:24px;
    border-top:1px dashed #e2e8f0;
}
.emp-passwordless-divider span{text-transform:none;color:#475569;font-weight:600;}
.emp-passwordless-hint{font-size:13px;color:#64748b;margin:0 0 16px;line-height:1.6;}
.emp-passwordless-form{display:flex;flex-direction:column;gap:12px;}
.emp-passwordless-remember{margin-bottom:0;}
.emp-passwordless-submit{display:flex;align-items:center;justify-content:center;gap:8px;}
.emp-passwordless-submit .spinner-border{
    width:1rem;height:1rem;border:2px solid rgba(255,255,255,.6);border-right-color:transparent;border-radius:50%;
    animation:empSpin .8s linear infinite;
}
.emp-passwordless-feedback{margin-top:8px;min-height:20px;}
@keyframes empSpin{to{transform:rotate(360deg);}}

/* Footer separator */
.emp-login-ft-sep{margin:0 8px;color:#cbd5e1;}
/* Login — utility spacing classes */
.emp-mt-16{margin-top:16px;}
.emp-mb-20{margin-bottom:20px;}

/* Hidden by default (JS toggles) */
.emp-hidden{display:none;}

/* Email Verification Result */
.emp-verify-result{text-align:center;padding:24px 16px;}
.emp-verify-icon{font-size:48px;margin-bottom:12px;}
.emp-verify-result h3{font-size:18px;font-weight:700;margin-bottom:8px;}
.emp-verify-result p{font-size:14px;color:#64748b;margin:0;}
.emp-verify-success .emp-verify-icon{color:#22c55e;}
.emp-verify-success h3{color:#16a34a;}
.emp-verify-error .emp-verify-icon{color:#ef4444;}
.emp-verify-error h3{color:#dc2626;}

/* Registration Mobile */
@media(max-width:560px){
    .emp-register-card{padding:24px 20px;}
    .emp-field-row{flex-direction:column;gap:0;}
    .emp-steps{flex-wrap:wrap;gap:4px;}
    .emp-step-label{display:none;}
    .emp-step-line{width:16px;}
    .emp-otp-digit{width:38px;height:46px;font-size:18px;}
    .emp-reg-btn-row{flex-direction:column;}
}

/* Office Selection Page */
.office-select-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#f5f7fb;}
.office-select-card{background:#fff;border-radius:12px;box-shadow:0 8px 28px rgba(15,23,42,.08);padding:36px 32px;width:100%;max-width:480px;}
.office-select-card h3{text-align:center;margin-bottom:6px;}
.office-select-card .subtitle{text-align:center;color:#6b7280;font-size:13px;margin-bottom:24px;}
.office-btn{display:flex;align-items:center;gap:14px;width:100%;padding:16px 18px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;transition:all .15s;margin-bottom:10px;text-align:left;}
.office-btn:hover{border-color:#3b82f6;background:#eff6ff;box-shadow:0 2px 8px rgba(59,130,246,.12);}
.office-btn .icon{width:42px;height:42px;border-radius:8px;background:#eff6ff;display:flex;align-items:center;justify-content:center;color:#2563eb;font-size:18px;flex-shrink:0;}
.office-btn .info{flex:1;}
.office-btn .info .name{font-weight:600;font-size:14px;color:#111827;}
.office-btn .info .loc{font-size:12px;color:#6b7280;margin-top:2px;}
.office-btn .info .empid{font-size:11px;color:#9ca3af;margin-top:2px;}
.office-btn .arrow{color:#9ca3af;font-size:14px;}

/* Dashboard & Profile — Shared Shell */
.dashboard-container,.profile-container{background:#f0f2f5;min-height:100vh;padding:20px;overflow-x:hidden;}
.network-indicator{position:fixed;bottom:20px;right:20px;background:white;border-radius:25px;padding:8px 18px;box-shadow:0 2px 12px rgba(0,0,0,.08);z-index:1000;font-size:.85rem;}
.network-indicator.offline{background:#fff3cd;border-color:#fbbf24;}

/* Navbar */
.navbar-employee{background:white;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:14px 28px;margin-bottom:24px;}
.navbar-employee-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.navbar-employee .navbar-brand{color:#1e3c72;font-weight:700;text-decoration:none;font-size:1.05rem;letter-spacing:-.3px;}
.navbar-employee-toggle{display:none;border:none;background:transparent;color:#1e3c72;font-size:1.3rem;padding:6px 10px;border-radius:8px;cursor:pointer;transition:background .2s;}
.navbar-employee-toggle:hover{background:#f0f4ff;}
.navbar-employee-links{display:flex;align-items:center;gap:6px;}
.navbar-employee-links .nav-link{color:#64748b;text-decoration:none;padding:7px 14px;border-radius:8px;transition:all .2s;font-size:.9rem;font-weight:500;white-space:nowrap;}
.navbar-employee-links .nav-link:hover{background:#f1f5f9;color:#1e3c72;}
.navbar-employee-links .nav-link.active{background:#1e3c72;color:white;}

/* Profile page — shared avatar & info (used by profile page) */
.profile-card{background:white;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:30px;margin-bottom:24px;}
.profile-avatar{width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-size:3rem;font-weight:bold;overflow:hidden;}
.employee-avatar{width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 15px;font-size:2rem;font-weight:bold;overflow:hidden;}
.employee-avatar.avatar-initials,.profile-avatar.avatar-initials{background:linear-gradient(135deg,#1e3c72,#2a5298);color:white;}
.employee-avatar img,.profile-avatar img{width:100%;height:100%;object-fit:cover;}
.sidebar{background:white;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:20px;height:fit-content;position:sticky;top:20px;}
.employee-info{text-align:center;padding-bottom:20px;border-bottom:1px solid #e5e7eb;margin-bottom:20px;}
.info-item{padding:14px 0;border-bottom:1px solid #f3f4f6;}
.info-item:last-child{border-bottom:none;}
.info-label{font-weight:600;color:#6b7280;font-size:.8rem;text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px;}
.info-value{color:#111827;font-size:1rem;}
.status-badge{display:inline-block;padding:4px 14px;border-radius:20px;font-size:.8rem;font-weight:600;}
.status-active{background:#d1fae5;color:#065f46;}

/* ===== Dashboard — Header Card ===== */
.dash-main{width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden;}
.dash-header{display:flex;align-items:center;justify-content:space-between;background:white;border-radius:14px;padding:28px 32px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:28px;}
.dash-header-left{display:flex;align-items:center;gap:20px;min-width:0;}
.dash-avatar{width:64px;height:64px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;overflow:hidden;flex-shrink:0;}
.dash-avatar.avatar-initials{background:linear-gradient(135deg,#1e3c72,#2a5298);color:white;}
.dash-avatar img{width:100%;height:100%;object-fit:cover;}
.dash-greeting h1{font-size:1.35rem;font-weight:700;color:#111827;margin:0 0 6px;letter-spacing:-.3px;}
.dash-meta{display:flex;flex-wrap:wrap;gap:8px;}
.dash-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;font-size:.75rem;font-weight:500;background:#f1f5f9;color:#475569;}
.dash-chip i{font-size:.65rem;opacity:.7;}
.dash-header-right{text-align:right;flex-shrink:0;}
.dash-date-day{font-size:.95rem;font-weight:600;color:#1e3c72;}
.dash-date-full{font-size:.8rem;color:#94a3b8;}

/* ===== Dashboard — Section Labels ===== */
.dash-section-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:#94a3b8;margin-bottom:12px;}

/* ===== Dashboard — Quick Actions ===== */
.dash-quick-actions{display:flex;gap:12px;margin-bottom:28px;flex-wrap:wrap;}
.dash-action-btn{display:flex;align-items:center;gap:10px;padding:12px 18px;background:white;border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.06);text-decoration:none;color:#334155;font-size:.9rem;font-weight:500;transition:all .2s;border:1px solid transparent;}
.dash-action-btn:hover{box-shadow:0 4px 16px rgba(0,0,0,.1);border-color:#e2e8f0;color:#1e3c72;transform:translateY(-1px);}
.dash-action-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}

/* ===== Dashboard — System Cards Grid ===== */
.dash-systems-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));gap:14px;margin-bottom:28px;}
.dash-system-card{display:flex;align-items:center;gap:16px;padding:18px 22px;background:white;border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.06);text-decoration:none;color:inherit;transition:all .2s;border:1.5px solid transparent;min-width:0;max-width:100%;}
.dash-system-card:hover{border-color:#1e3c72;box-shadow:0 4px 16px rgba(30,60,114,.12);transform:translateY(-2px);}
.dash-system-icon{width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#eef2ff,#e0e7ff);color:#4338ca;display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0;}
.dash-system-info{flex:1;min-width:0;}
.dash-system-name{font-size:.95rem;font-weight:600;color:#111827;margin-bottom:2px;}
.dash-system-desc{font-size:.8rem;color:#6b7280;line-height:1.4;}
.dash-system-arrow{color:#cbd5e1;font-size:.8rem;transition:color .2s,transform .2s;}
.dash-system-card:hover .dash-system-arrow{color:#1e3c72;transform:translateX(3px);}

/* ===== Dashboard — Empty State ===== */
.dash-empty-state{background:white;border-radius:12px;padding:48px 24px;text-align:center;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:28px;}
.dash-empty-state i{font-size:2.2rem;color:#cbd5e1;margin-bottom:12px;display:block;}
.dash-empty-state p{color:#94a3b8;font-size:.9rem;margin:0;}
.dash-empty-sm{padding:28px 20px;}
.dash-empty-sm i{font-size:1.5rem;margin-bottom:8px;}

/* ===== Dashboard — Activity Feed ===== */
.dash-activity-list{background:white;border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.06);overflow:hidden;}
.dash-activity-item{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;border-bottom:1px solid #f3f4f6;transition:background .15s;}
.dash-activity-item:last-child{border-bottom:none;}
.dash-activity-item:hover{background:#f9fafb;}
.dash-activity-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0;}
.dash-activity-dot.bg-primary{background:#4f46e5;}
.dash-activity-dot.bg-success{background:#059669;}
.dash-activity-dot.bg-warning{background:#d97706;}
.dash-activity-dot.bg-danger{background:#dc2626;}
.dash-activity-dot.bg-info{background:#0891b2;}
.dash-activity-text{font-size:.9rem;color:#334155;font-weight:500;}
.dash-activity-time{font-size:.75rem;color:#94a3b8;margin-top:2px;}

/* ===== Profile — Layout ===== */
.prof-main{width:100%;max-width:100%;box-sizing:border-box;overflow-x:hidden;}
.prof-header{display:flex;align-items:center;justify-content:space-between;background:white;border-radius:14px;padding:28px 32px;box-shadow:0 1px 4px rgba(0,0,0,.06);margin-bottom:24px;gap:20px;}
.prof-header-left{display:flex;align-items:center;gap:22px;min-width:0;}
.prof-avatar.profile-avatar{width:88px;height:88px;border-radius:20px;margin:0;font-size:2rem;}
.prof-identity h1{font-size:1.35rem;font-weight:700;color:#111827;margin:0 0 8px;letter-spacing:-.3px;}
.prof-meta{display:flex;flex-wrap:wrap;gap:8px;}
.prof-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;font-size:.75rem;font-weight:500;background:#f1f5f9;color:#475569;}
.prof-chip i{font-size:.65rem;opacity:.7;}
.prof-chip-active{background:#d1fae5;color:#065f46;}
.prof-chip-active i{font-size:.45rem;opacity:1;}
.prof-header-actions{display:flex;gap:10px;flex-shrink:0;}

/* ===== Profile — Buttons ===== */
.prof-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:10px;font-size:.85rem;font-weight:600;border:none;cursor:pointer;transition:all .2s;white-space:nowrap;}
.prof-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;}
.prof-btn-primary{background:#1e3c72;color:#fff;}
.prof-btn-primary:hover{background:#16305e;transform:translateY(-1px);}
.prof-btn-light{background:#f1f5f9;color:#334155;border:1px solid #e2e8f0;}
.prof-btn-light:hover{background:#e2e8f0;transform:translateY(-1px);}
.prof-btn-outline{background:transparent;color:#475569;border:1.5px solid #e2e8f0;}
.prof-btn-outline:hover{border-color:#1e3c72;color:#1e3c72;background:#f8fafc;}

/* ===== Profile — Cards Grid ===== */
.prof-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(380px,100%),1fr));gap:20px;margin-bottom:24px;}
.prof-card{background:white;border-radius:14px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:24px 28px;}
.prof-card-title{font-size:.95rem;font-weight:700;color:#111827;margin-bottom:20px;display:flex;align-items:center;gap:10px;}
.prof-card-title i{color:#6366f1;font-size:.9rem;}

/* ===== Profile — Fields ===== */
.prof-fields{display:flex;flex-direction:column;}
.prof-field{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #f3f4f6;}
.prof-field:last-child{border-bottom:none;}
.prof-field-label{font-size:.8rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.4px;flex-shrink:0;}
.prof-field-value{font-size:.9rem;color:#111827;font-weight:500;text-align:right;}

/* ===== Profile — Badges ===== */
.prof-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:6px;font-size:.75rem;font-weight:600;}
.prof-badge i{font-size:.65rem;}
.prof-badge-success{background:#d1fae5;color:#065f46;}
.prof-badge-warn{background:#fff3cd;color:#856404;}
.prof-badge-danger{background:#fee2e2;color:#991b1b;}

/* ===== Profile — Card Actions ===== */
.prof-card-actions{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #f3f4f6;flex-wrap:wrap;}

/* ===== Responsive — Dashboard & Profile ===== */
@media(max-width:768px){
    .dashboard-container,.profile-container{padding:10px;}
    .navbar-employee{padding:12px 16px;border-radius:12px;margin-bottom:16px;}
    .navbar-employee-toggle{display:block;}
    .navbar-employee-links{display:none;flex-direction:column;width:100%;gap:4px;padding-top:12px;border-top:1px solid #e9ecef;margin-top:8px;}
    .navbar-employee-links.open{display:flex;}
    .navbar-employee-links .nav-link{width:100%;padding:10px 14px;}
    .dash-header{flex-direction:column;align-items:flex-start;gap:16px;padding:20px;}
    .dash-header-right{text-align:left;}
    .dash-greeting h1{font-size:1.15rem;}
    .dash-avatar{width:52px;height:52px;border-radius:14px;font-size:1.25rem;}
    .dash-systems-grid{grid-template-columns:repeat(2,1fr);}
    .dash-quick-actions{flex-direction:column;}
    .dash-action-btn{width:100%;}
    .sidebar{position:static;margin-bottom:16px;}
    .profile-card{padding:20px;}
    .network-indicator{top:auto;bottom:14px;right:14px;padding:6px 12px;font-size:.8rem;}
    .profile-avatar{width:90px;height:90px;font-size:2.2rem;}
    .employee-avatar{width:60px;height:60px;font-size:1.5rem;}
    .prof-header{flex-direction:column;align-items:flex-start;padding:20px;}
    .prof-avatar.profile-avatar{width:72px;height:72px;border-radius:16px;font-size:1.75rem;}
    .prof-identity h1{font-size:1.15rem;}
    .prof-header-actions{width:100%;}
    .prof-header-actions .prof-btn{flex:1;justify-content:center;}
    .prof-grid{grid-template-columns:1fr;}
    .prof-card{padding:20px 22px;}
}
@media(max-width:480px){
    .dashboard-container,.profile-container{padding:6px;}
    .navbar-employee{padding:10px 12px;border-radius:10px;margin-bottom:12px;}
    .navbar-employee .navbar-brand{font-size:.95rem;}
    .dash-header{padding:16px;border-radius:12px;}
    .dash-greeting h1{font-size:1.05rem;}
    .dash-chip{font-size:.7rem;padding:2px 8px;}
    .dash-systems-grid{grid-template-columns:1fr;}
    .dash-system-card{padding:14px 16px;}
    .profile-card{padding:16px;border-radius:12px;}
    .info-item{padding:10px 0;}
    .info-value{font-size:.95rem;}
    .prof-header{padding:16px;border-radius:12px;}
    .prof-avatar.profile-avatar{width:60px;height:60px;border-radius:14px;font-size:1.5rem;}
    .prof-identity h1{font-size:1.05rem;}
    .prof-chip{font-size:.7rem;padding:2px 8px;}
    .prof-card{padding:16px 18px;border-radius:12px;}
    .prof-field{flex-direction:column;align-items:flex-start;gap:4px;}
    .prof-field-value{text-align:left;}
    .prof-card-actions{flex-direction:column;}
    .prof-card-actions .prof-btn{width:100%;justify-content:center;}
}

/* Quick Login Modal */
.ql-modal-overlay{position:fixed;inset:0;z-index:99999;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease;}
.ql-modal-overlay.ql-visible{opacity:1;}
.ql-modal{background:#1e293b;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.5);width:90%;max-width:400px;padding:0;position:relative;transform:translateY(30px) scale(.95);transition:transform .3s ease;overflow:hidden;}
.ql-modal-overlay.ql-visible .ql-modal{transform:translateY(0) scale(1);}
.ql-modal-close{position:absolute;top:12px;right:14px;background:none;border:none;color:#94a3b8;font-size:22px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .15s;z-index:1;}
.ql-modal-close:hover{background:rgba(255,255,255,.1);color:#fff;}
.ql-modal-header{text-align:center;padding:28px 24px 16px;}
.ql-modal-icon{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;margin:0 auto 14px;}
.ql-modal-header h2{font-size:1.25rem;font-weight:700;color:#f1f5f9;margin:0 0 4px;}
.ql-modal-header p{font-size:.85rem;color:#94a3b8;margin:0;}
.ql-modal-body{padding:0 20px 20px;}

.quick-login-item{display:flex;align-items:center;width:100%;padding:12px 14px;margin-bottom:8px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,.04);cursor:pointer;transition:all .2s ease;text-align:left;font-family:inherit;font-size:inherit;color:#e0e0e0;}
.quick-login-item:hover{background:rgba(255,255,255,.1);border-color:rgba(59,130,246,.5);box-shadow:0 2px 8px rgba(59,130,246,.15);transform:translateX(2px);}
.quick-login-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,#1976d2,#42a5f5);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;flex-shrink:0;margin-right:12px;}
.quick-login-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1;}
.quick-login-info strong{font-size:14px;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.quick-login-info small{font-size:12px;color:#94a3b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.quick-login-time{color:#64748b!important;font-size:11px!important;}
.quick-login-arrow{color:#475569;font-size:12px;margin-left:8px;transition:color .2s,transform .2s;}
.quick-login-item:hover .quick-login-arrow{color:#3b82f6;transform:translateX(2px);}
.quick-login-other{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px;margin-top:4px;border:1px dashed rgba(255,255,255,.15);border-radius:10px;background:transparent;color:#60a5fa;font-size:13px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s;}
.quick-login-other:hover{background:rgba(255,255,255,.05);border-color:rgba(59,130,246,.4);}

/* ==========================================================
   EMPLOYEE PUSH APPROVAL — ACTIVE CHALLENGE STATE
   ========================================================== */

.emp-push-challenge{text-align:center;padding:8px 0 4px;}
.emp-push-challenge[hidden]{display:none!important;}
.emp-push-header{margin-bottom:20px;}
.emp-push-header h3{margin:0 0 6px;color:#1e3c72;font-size:21px;font-weight:700;}
.emp-push-header p{margin:0;color:#64748b;font-size:14px;}
.emp-number-match{margin:10px 0;padding:10px;background:#f8fafc;border:1px solid #dbe3ef;border-radius:14px;}
.emp-number-label{margin:0 0 10px;color:#64748b;font-size:13px;}
.emp-number-display{display:flex;justify-content:center;align-items:center;}
.emp-number-value{display:inline-block;min-width:110px;padding:4px 12px;color:#1e3c72;font-family:"Courier New",monospace;font-size:52px;font-weight:800;line-height:1.1;letter-spacing:10px;text-align:center;}
.emp-number-hint{display:block;margin-top:8px;color:#94a3b8;font-size:11px;}
.emp-push-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.emp-push-meta-item{padding:12px 10px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;}
.emp-meta-label{display:block;margin-bottom:4px;color:#94a3b8;font-size:11px;text-transform:uppercase;letter-spacing:.04em;}
.emp-meta-value{display:block;color:#334155;font-size:14px;font-weight:600;}
.emp-push-actions{display:flex;flex-direction:row;align-items:center;justify-content:center;gap:12px;margin-top:16px;flex-wrap:nowrap;}
.emp-push-actions .emp-link-btn{flex:0 0 auto;white-space:nowrap;background:none;border:none;color:#64748b;font-size:13px;font-weight:600;cursor:pointer;padding:6px 8px;border-radius:4px;}
.emp-push-actions .emp-link-btn:hover{color:#1e3c72;background:#f0f4ff;}
.emp-push-actions .emp-cancel-btn{color:#ef4444;}
.emp-push-actions .emp-cancel-btn:hover{color:#dc2626;}

@media(max-width:560px){.emp-number-value{font-size:44px;letter-spacing:8px;}.emp-push-meta{grid-template-columns:1fr;}.emp-push-actions{gap:12px;}}
