/* Page font and background */
body {
    margin: 0;
    background: #f4f7fb;
    font-family: Arial, sans-serif;
}

/* Main app layout */
.app {
    display: flex;
    min-height: 100vh;
}

/* Left sidebar */
.sidebar {
    width: 240px;
    background: #2f4056;
    padding: 20px;
    color: white;
}

/* Sidebar logo */
.logo {
    margin-bottom: 25px;
    font-weight: bold;
}

/* Sidebar links */
.sidebar a {
    display: block;
    color: #dbe5f1;
    padding: 11px 12px;
    margin-bottom: 6px;
    text-decoration: none;
    border-radius: 6px;
}

/* Sidebar link hover */
.sidebar a:hover {
    background: #405875;
    color: white;
}

/* Main content area */
.main {
    flex: 1;
}

/* Top header */
.topbar {
    height: 70px;
    background: white;
    padding: 12px 25px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #e5e7eb;
}

/* Page content padding */
.content {
    padding: 25px;
}

/* Dashboard cards */
.card-box {
    background: white;
    padding: 22px;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
}

/* Card title */
.card-box h6 {
    color: #6b7280;
    margin-bottom: 10px;
}

/* Card number */
.card-box h3 {
    margin: 0;
    font-weight: bold;
}

/* Login page background */
.login-body {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Login card */
.login-card {
    width: 380px;
    background: white;
    padding: 30px;
    border-radius: 12px;
    border: 1px solid #e5e7eb;
}

/* Mobile responsive sidebar */
@media (max-width: 768px) {
    .app {
        display: block;
    }

    .sidebar {
        width: 100%;
    }

    .topbar {
        height: auto;
        gap: 10px;
    }
}
/* Form labels */
form label {
    font-weight: 600;
    margin-bottom: 5px;
}

/* Form inputs */
form input,
form select,
form textarea {
    width: 100%;
    padding: 9px;
    margin-bottom: 12px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
}

/* Checkbox width fix */
form input[type="checkbox"] {
    width: auto;
}
/* Employee small photo */
.emp-photo {
    width: 42px;
    height: 42px;
    object-fit: cover;
    border-radius: 50%;
}
/* Sidebar section title */
.menu-title {
    display: block;
    color: #8fb0d0;
    font-size: 11px;
    margin: 18px 0 6px;
    text-transform: uppercase;
}

/* Small employee avatar */
.avatar-sm {
    width: 42px;
    height: 42px;
    color: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #0d6efd;
    border-radius: 50%;
    font-weight: bold;
}

/* Employee profile card */
.profile-card {
    background: white;
    padding: 25px;
    text-align: center;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
}

/* Blue employee card */
.blue-card {
    color: white;
    background: linear-gradient(135deg, #26a7df, #2f80ed);
}

/* Employee large photo */
.profile-photo {
    width: 110px;
    height: 110px;
    object-fit: cover;
    margin-bottom: 15px;
    border-radius: 50%;
    border: 4px solid white;
}

/* Employee large avatar */
.profile-avatar {
    width: 110px;
    height: 110px;
    color: white;
    margin: 0 auto 15px;
    display: flex;
    font-size: 42px;
    font-weight: bold;
    align-items: center;
    justify-content: center;
    background: #0d6efd;
    border-radius: 50%;
}

/* Employee info row */
.info-row {
    padding: 8px 0;
    border-bottom: 1px solid #f1f1f1;
}

/* Future onboarding tabs */
.tabs-row {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Tab style */
.tabs-row span {
    padding: 8px 14px;
    background: #f4f7fb;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
}

/* Attendance circle */
.summary-circle {
    width: 160px;
    height: 160px;
    margin: 10px auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 18px solid #00a6b4;
    border-radius: 50%;
    text-align: center;
}

/* Leave cards */
.leave-card {
    color: white;
    padding: 22px 10px;
    text-align: center;
    border-radius: 10px;
}

/* Leave card colors */
.teal { background: #00a6b4; }
.sky { background: #3bc3f3; }
.green { background: #00c875; }
.orange { background: #ff8a5b; }
.purple { background: #a66cff; }
.pink { background: #ff5f7e; }
/* Onboarding tab buttons */
.onboard-tabs {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Onboarding tab links */
.onboard-tabs a {
    color: #111827;
    padding: 9px 18px;
    background: white;
    text-decoration: none;
    border-radius: 6px;
    border: 1px solid #d1d5db;
}

/* Active onboarding tab */
.onboard-tabs a.active {
    color: white;
    background: #0d6efd;
    border-color: #0d6efd;
}
/* Sidebar */
.sidebar {
    width: 270px;
    background: linear-gradient(180deg, #263b55, #17263a);
    padding: 16px;
    color: white;
    overflow-y: auto;
}

/* Sidebar logo */
.sidebar-logo {
    font-size: 26px;
    font-weight: bold;
    margin-bottom: 22px;
}

/* Sidebar direct link */
.side-link {
    color: white;
    display: flex;
    gap: 10px;
    padding: 12px;
    margin-bottom: 8px;
    text-decoration: none;
    border-radius: 10px;
    background: linear-gradient(135deg, #0d6efd, #00a6b4);
    transition: 0.3s;
}

/* Sidebar main button */
.side-menu {
    width: 100%;
    color: white;
    border: none;
    display: flex;
    padding: 12px;
    margin-top: 8px;
    border-radius: 10px;
    align-items: center;
    justify-content: space-between;
    background: rgba(255, 255, 255, 0.08);
    transition: 0.3s;
}

/* Sidebar hover animation */
.side-link:hover,
.side-menu:hover {
    color: white;
    transform: translateX(5px);
    background: linear-gradient(135deg, #00a6b4, #0d6efd);
}

/* Sidebar submenu */
.side-submenu {
    padding: 6px 0 6px 18px;
}

/* Sidebar submenu links */
.side-submenu a {
    color: #dbeafe;
    display: block;
    padding: 8px 12px;
    margin: 4px 0;
    font-size: 14px;
    text-decoration: none;
    border-radius: 8px;
    transition: 0.3s;
}

/* Submenu hover */
.side-submenu a:hover {
    color: white;
    background: rgba(255, 255, 255, 0.14);
    transform: translateX(4px);
}

/* Topbar action buttons */
.top-actions {
    display: flex;
    gap: 8px;
}

/* Dashboard colorful cards */
.dash-card {
    color: white;
    padding: 20px;
    min-height: 145px;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    transition: 0.3s;
}

/* Dashboard card hover */
.dash-card:hover {
    transform: translateY(-5px);
}

/* Dashboard icon */
.dash-card i {
    font-size: 30px;
    opacity: 0.9;
}

/* Dashboard card number */
.dash-card h3 {
    margin: 15px 0 5px;
    font-weight: bold;
}

/* Dashboard card text */
.dash-card p {
    margin: 0;
    font-size: 14px;
}

/* Card colors */
.bg-blue { background: linear-gradient(135deg, #0d6efd, #4dabf7); }
.bg-green { background: linear-gradient(135deg, #00b894, #00cec9); }
.bg-red { background: linear-gradient(135deg, #ff4d6d, #ff758f); }
.bg-orange { background: linear-gradient(135deg, #ff8a00, #ffc107); }
.bg-purple { background: linear-gradient(135deg, #845ef7, #be4bdb); }
.bg-teal { background: linear-gradient(135deg, #00a6b4, #20c997); }

/* Mini dashboard modules */
.mini-module {
    background: white;
    padding: 20px;
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    transition: 0.3s;
}

/* Mini module hover */
.mini-module:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 24px rgba(0, 0, 0, 0.08);
}

/* Mini module icon */
.mini-module i {
    color: #0d6efd;
    font-size: 28px;
}

/* Three dot button */
.action-dot {
    border-radius: 50%;
}

/* Status badge */
.status-badge {
    color: white;
    padding: 4px 9px;
    font-size: 12px;
    border-radius: 20px;
    background: #00b894;
}

/* Mobile sidebar */
@media (max-width: 768px) {
    .sidebar {
        width: 100%;
        max-height: 420px;
    }

    .top-actions {
        margin-top: 10px;
    }
}
/* Password form input style */
#id_old_password,
#id_new_password1,
#id_new_password2 {
    width: 100%;
    padding: 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
}