body{

    margin:0;

    background:#f5f7fb;

    font-family:Segoe UI,sans-serif;

}

.dashboard-container{

    display:flex;

}

.sidebar{
    position:fixed;
    top:0;
    left:0;
    width:275px;
    height:100vh;
    background:#0d2b66;
    display:flex;
    flex-direction:column;
    overflow:hidden;
}

/* ---------- Header ---------- */

.sidebar-header{
    flex-shrink:0;
    padding:24px 20px 18px;
    text-align:center;
}

.logo{
    width:180px;
    display:block;
    margin:0 auto 14px;
}

.logo-section h5{
    color:#fff;
    font-size:16px;
    font-weight:600;
    margin:0;
    letter-spacing:.3px;
}

.sidebar hr{
    border:0;
    border-top:1px solid rgba(255,255,255,.12);
    margin:20px 0;
}

/* ---------- Menu ---------- */

.sidebar-menu{
    flex:1;
    overflow-y:auto;
    overflow-x:hidden;
    padding:0 18px;

    /* Hide scrollbar */
    scrollbar-width:none;      /* Firefox */
    -ms-overflow-style:none;   /* IE/Edge */
}

.sidebar-menu::-webkit-scrollbar{
    width:0;
    display:none;
}
.menu{
    list-style:none;
    margin:0;
    padding:0;
}

.menu li{
    margin-bottom:6px;
}

.menu a{
    display:flex;
    align-items:center;

    padding:12px 18px;

    color:#fff;
    text-decoration:none;

    border-radius:10px;

    font-size:15px;
    font-weight:500;

    transition:.2s ease;
}

.menu a:hover,
.menu a.active{
    background:#2554b8;
}

/* ---------- Footer ---------- */

.sidebar-footer{
    flex-shrink:0;
    padding:18px;
    border-top:1px solid rgba(255,255,255,.12);
}

.user-box{
    padding:0 18px 14px;
    color:#fff;
}

.user-box .name{
    font-weight:600;
    font-size:15px;
}

.user-box .role{
    font-size:13px;
    opacity:.75;
}

.logout{
    display:flex;
    align-items:center;

    padding:12px 18px;

    color:#fff;
    text-decoration:none;

    border-radius:10px;

    transition:.2s;
}

.logout:hover{
    background:#2554b8;
}

/* ---------- Content ---------- */

.content{
    margin-left:275px;
    width:calc(100% - 275px);
    padding:40px;
}
.sidebar{
    overflow:hidden;
}

.menu a{
    display:flex;
    align-items:center;
    gap:14px;              /* space between icon and text */

    padding:12px 18px;

    color:#fff;
    text-decoration:none;

    border-radius:10px;

    font-size:15px;
    font-weight:500;
}

.menu a i{
    width:22px;            /* fixed width */
    min-width:22px;
    text-align:center;

    font-size:18px;

    color:#dbeafe;
}

.logout{
    display:flex;
    align-items:center;
    gap:14px;
}

.logout i{
    width:22px;
    min-width:22px;
    text-align:center;
    font-size:18px;
}
.employee-link{

    color:inherit;

    text-decoration:none;

    font-weight:500;

}

.employee-link:hover{

    color:#0d6efd;

    text-decoration:underline;

}

.card-body .border-bottom:last-child{

    border-bottom:none !important;

}
/* Table Header */
.table thead th{

    background:#F8FAFC;

    color:#475569;

    font-size:14px;

    font-weight:600;

    text-transform:none;

    letter-spacing:0;

    padding:14px 16px;

    border-bottom:2px solid #E5E7EB;

}

/* Table Body */
.table tbody td{
    font-size:14px;
    font-weight:400;
}

#page-loader{

    position:fixed;

    top:0;

    left:270px;      /* sidebar width */

    right:0;

    bottom:0;

    background:rgba(255,255,255,.35);

    backdrop-filter:blur(2px);

    display:none;

    justify-content:center;

    align-items:center;

    z-index:99999;

}
.loader-content{

    text-align:center;

}

.loader-logo{

    width:90px;

    margin-bottom:20px;

}

.loader-spinner{

    width:48px;

    height:48px;

    margin:auto;

    border:4px solid #E5E7EB;

    border-top:4px solid #2563EB;

    border-radius:50%;

    animation:spin .8s linear infinite;

}

.loader-content p{

    margin-top:18px;

    color:#64748B;

    font-size:15px;

    font-weight:500;

}

@keyframes spin{

    to{

        transform:rotate(360deg);

    }

}
/* Enterprise Toast */

.swal2-popup.swal2-toast{

    width:390px !important;

    border-radius:18px !important;

    background:#fff !important;

    border:none !important;

    padding:18px 20px !important;

    box-shadow:0 15px 35px rgba(15,23,42,.12) !important;

}

.swal2-toast .swal2-icon{

    margin-right:16px !important;

    flex-shrink:0;

}


.swal2-toast .swal2-title{

    font-size:17px !important;

    font-weight:700 !important;

    color:#1E293B !important;

    margin:0 0 4px 0 !important;

}

.swal2-toast .swal2-html-container{

    font-size:14px !important;

    color:#64748B !important;

    line-height:1.5 !important;

    margin:0 !important;

}

.swal2-toast .swal2-close{

    color:#94A3B8 !important;

    font-size:16px !important;

}

.swal2-toast .swal2-close:hover{

    color:#334155 !important;

}

.swal2-timer-progress-bar{

    height:3px !important;

    background:#2563EB !important;

}
#page-loader{

    display:flex;

    justify-content:center;

    align-items:center;

    min-height:calc(100vh - 40px);

    background:#fff;

}

.content-wrapper{

    flex:1;

}

#page-content{

    display:none;

}
/* ================= Notification ================= */

.notification-wrapper{

    position:relative;

    display:flex;

    align-items:center;

}

.notification-btn{

    width:44px;
    height:44px;

    display:flex;
    align-items:center;
    justify-content:center;

    border:none;
    outline:none;

    border-radius:50%;

    background:#F8FAFC;

    color:#475569;

    font-size:18px;

    cursor:pointer;

    transition:all .25s ease;

    position:relative;

    padding:0;

}

.notification-btn:hover{

    background:#E0ECFF;

    color:#2563EB;

}

.notification-badge{

    position:absolute;

    top:-4px;

    right:-2px;

    width:20px;

    height:20px;

    border-radius:50%;

    background:#EF4444;

    color:#fff;

    font-size:11px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:600;

    border:2px solid white;

}

.notification-dropdown{

    position:absolute;
    right:0;
    top:58px;

    width:390px;

    background:#FFFFFF;

    border:1px solid #E2E8F0;

    border-radius:20px;

    box-shadow:
        0 20px 50px rgba(15,23,42,.12);

    overflow:hidden;

    display:none;

    z-index:9999;

}

.notification-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    padding:18px 22px;

    background:#F8FAFC;

    border-bottom:1px solid #E2E8F0;

}

.notification-header h6{

    margin:0;

    font-size:16px;

    font-weight:600;

    color:#1E293B;

}

/* .notification-header h6{

    font-size:16px;

    font-weight:600;

    color:#1E293B;

} */

.notification-item{

    display:flex;

    gap:16px;

    padding:18px 20px;

    border-bottom:1px solid #F1F5F9;

    transition:.2s;

}

.notification-item:last-child{

    border-bottom:none;

}

.notification-item:hover{

    background:#F8FAFC;

}

.notification-icon{

    width:46px;

    height:46px;

    border-radius:14px;

    background:#EFF6FF;

    color:#2563EB;

    display:flex;

    align-items:center;

    justify-content:center;

    flex-shrink:0;

    font-size:20px;

}
.notification-item strong{

    display:block;

    font-size:15px;

    font-weight:600;

    color:#1E293B;

    margin-bottom:4px;

}

.notification-item .small{

    font-size:13px;

    color:#64748B !important;

    line-height:1.5;

}

.notification-item small{

    display:block;

    margin-top:6px;

    color:#94A3B8 !important;

    font-size:12px;

}

.notification-item:hover{

    background:#F8FAFC;

}
#markAllReadBtn{

    border:none;

    background:#EEF4FF;

    color:#2563EB;

    padding:6px 12px;

    border-radius:8px;

    font-size:12px;

    font-weight:600;

    transition:.2s;

}

#markAllReadBtn:hover{

    background:#DBEAFE;

}

#clearAllBtn{

    border:none;

    background:#FEF2F2;

    color:#DC2626;

    padding:6px 12px;

    border-radius:8px;

    font-size:12px;

    font-weight:600;

    transition:.2s;

}

#clearAllBtn:hover{

    background:#FEE2E2;

}
.attendance-banner{

    display:flex;
    align-items:center;
    gap:18px;

    /* Change */
    background:#FCFCFC;
    border:1px solid #F3E5AB;
    border-left:4px solid #E8B44B;
    border-radius:12px;

    padding:12px 18px;

    margin-bottom:25px;

    /* Softer shadow */
    box-shadow:0 2px 6px rgba(15,23,42,.05);
}

.attendance-banner-icon{

    width:40px;
    height:40px;

    border-radius:50%;

    /* Change */
    background:#FFF6DB;

    display:flex;
    justify-content:center;
    align-items:center;

    /* Change */
    color:#C07A00;

    font-size:18px;
}

.attendance-banner-content{

    flex:1;
}

.attendance-banner-title{

    font-weight:700;

    font-size:17px;

    /* Change */
    color:#7A4E00;
}

.attendance-banner-text{

    margin-top:4px;

    /* Slightly darker for readability */
    color:#64748B;

    font-size:14px;
}

.attendance-banner-btn{

    /* Muted amber instead of bright orange */
    background:#D6A73B;

    color:white;

    padding:8px 16px;
    font-size:14px;
    font-weight:500;

    border-radius:8px;

    text-decoration:none;

    transition:.2s;
}

.attendance-banner-btn:hover{

    background:#BE8D22;

    color:white;
}
.notification-footer{

    border-top:1px solid #E5E7EB;

    padding:12px;

    text-align:center;

}

.see-all-link{

    text-decoration:none;

    font-weight:600;

    color:#2563EB;

}

.see-all-link:hover{

    color:#1D4ED8;

}
.notification-card{

    display:flex;

    gap:18px;

    align-items:flex-start;

    background:#fff;

    border:1px solid #E5E7EB;

    border-radius:16px;

    padding:20px;

    margin-bottom:18px;

    transition:.25s;

    box-shadow:0 4px 15px rgba(0,0,0,.05);

}

.notification-card:hover{

    transform:translateY(-2px);

    box-shadow:0 10px 25px rgba(0,0,0,.08);

}

.notification-icon{

    width:50px;

    height:50px;

    border-radius:14px;

    background:#E8F1FF;

    color:#2563EB;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:22px;

    flex-shrink:0;

}

.notification-content{

    flex:1;

}

.notification-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:8px;

}

.notification-title{

    margin:0;

    font-size:17px;

    font-weight:600;

}

.notification-time{

    color:#6B7280;

    font-size:13px;

    white-space:nowrap;

}

.notification-message{

    color:#4B5563;

    margin:0;

    line-height:1.6;

}
.back-link{

    text-decoration:none;

    color:#475569;

    font-weight:500;

    transition:.2s;

}

.back-link:hover{

    color:#032258;

}

.notification-card{

    background:#fff;

    border:1px solid #E5E7EB;

    border-radius:14px;

    padding:18px 22px;

    margin-bottom:16px;

    transition:.25s;

    box-shadow:0 2px 10px rgba(0,0,0,.05);

}

.notification-card:hover{

    transform:translateY(-2px);

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    border-color:#D7E3FF;

}

.notification-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:12px;

}

.notification-title{

    display:flex;

    align-items:center;

    gap:10px;

    font-size:17px;

    font-weight:600;

    color:#111827;

}

.notification-icon{

    width:36px;

    height:36px;

    border-radius:10px;

    background:#EEF4FF;

    color:#2563EB;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:16px;

}

.notification-time{

    font-size:13px;

    color:#6B7280;

    white-space:nowrap;

}

.notification-message{

    color:#4B5563;

    line-height:1.6;

    font-size:15px;

    padding-left:46px;

}

.empty-state{

    background:#fff;

    border-radius:14px;

    padding:60px;

    text-align:center;

    border:1px solid #E5E7EB;

}

.empty-state i{

    color:#94A3B8;

}
.back-link{

    text-decoration:none;

    color:#475569;

    font-weight:500;

}

.back-link:hover{

    color:#032258;

}

.notification-list-page{

    background:#fff;

    border-radius:14px;

    overflow:hidden;

    border:1px solid #E5E7EB;

    box-shadow:0 3px 10px rgba(0,0,0,.05);

}

.notification-row{

    display:flex;

    align-items:flex-start;

    gap:16px;

    padding:16px 22px;

    border-bottom:1px solid #EEF2F7;

    transition:.2s;

}

.notification-row:last-child{

    border-bottom:none;

}

.notification-row:hover{

    background:#F8FAFC;

}

.notification-row-icon{

    width:38px;

    height:38px;

    border-radius:10px;

    background:#EEF4FF;

    color:#2563EB;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:16px;

    flex-shrink:0;

}

.notification-row-content{

    flex:1;

}

.notification-row-header{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:4px;

}

.notification-row-title{

    margin:0;

    font-size:15px;

    font-weight:600;

    color:#111827;

}

.notification-row-time{

    font-size:12px;

    color:#6B7280;

    white-space:nowrap;

}

.notification-row-message{

    font-size:14px;

    color:#4B5563;

    line-height:1.5;

}
.pagination .page-link{

    width:36px;

    height:36px;

    display:flex;

    align-items:center;

    justify-content:center;

    margin:0 3px;

    border-radius:10px;

    border:1px solid #E5E7EB;

    color:#475569;

}

.pagination .page-link:hover{

    background:#F8FAFC;

}

.pagination .page-item.active .page-link{

    background:#2563EB;

    border-color:#2563EB;

    color:#fff;

}

.pagination .page-item.disabled .page-link{

    color:#CBD5E1;

    background:#fff;

}

.pagination{

    margin-bottom:0;

}