deploy: hr-portal-designs
This commit is contained in:
@@ -0,0 +1,389 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>HR Portal — Admin Dashboard</title>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet" />
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
body { font-family: 'Inter', sans-serif; background: #F8FAFC; color: #0F172A; display: flex; min-height: 100vh; }
|
||||
|
||||
.sidebar { width: 240px; min-height: 100vh; background: #1E293B; display: flex; flex-direction: column; flex-shrink: 0; position: fixed; top: 0; left: 0; bottom: 0; }
|
||||
.sidebar-logo { padding: 20px 20px 16px; border-bottom: 1px solid rgba(255,255,255,0.08); display: flex; align-items: center; gap: 10px; }
|
||||
.sidebar-logo-icon { width: 36px; height: 36px; background: #4F46E5; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
|
||||
.sidebar-logo-text { font-size: 15px; font-weight: 700; color: #fff; }
|
||||
.sidebar-logo-sub { font-size: 11px; color: #94A3B8; margin-top: 1px; }
|
||||
.sidebar-nav { padding: 16px 0; flex: 1; }
|
||||
.nav-section-label { font-size: 10px; font-weight: 600; color: #475569; text-transform: uppercase; letter-spacing: 0.8px; padding: 12px 20px 6px; }
|
||||
.nav-item { display: flex; align-items: center; gap: 10px; padding: 10px 20px; font-size: 14px; font-weight: 500; color: #94A3B8; cursor: pointer; border-left: 3px solid transparent; transition: all 0.15s; text-decoration: none; }
|
||||
.nav-item:hover { color: #fff; background: rgba(255,255,255,0.05); }
|
||||
.nav-item.active { color: #818CF8; background: rgba(79,70,229,0.15); border-left-color: #4F46E5; font-weight: 600; }
|
||||
.nav-item svg { width: 18px; height: 18px; flex-shrink: 0; }
|
||||
.nav-badge { margin-left: auto; background: #EF4444; color: #fff; font-size: 10px; font-weight: 700; padding: 2px 7px; border-radius: 999px; }
|
||||
.sidebar-footer { padding: 16px 20px; border-top: 1px solid rgba(255,255,255,0.08); }
|
||||
.sidebar-user { display: flex; align-items: center; gap: 10px; }
|
||||
.avatar-sm { width: 34px; height: 34px; border-radius: 50%; background: #7C3AED; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: #fff; flex-shrink: 0; }
|
||||
.sidebar-user-name { font-size: 13px; font-weight: 600; color: #E2E8F0; }
|
||||
.sidebar-user-role { font-size: 11px; color: #64748B; }
|
||||
|
||||
.main { margin-left: 240px; flex: 1; display: flex; flex-direction: column; }
|
||||
.topbar { height: 64px; background: #fff; border-bottom: 1px solid #E2E8F0; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; position: sticky; top: 0; z-index: 10; }
|
||||
.topbar-left { display: flex; align-items: center; gap: 12px; }
|
||||
.topbar-title { font-size: 16px; font-weight: 600; color: #0F172A; }
|
||||
.role-badge { background: #7C3AED; color: #fff; font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 999px; letter-spacing: 0.3px; }
|
||||
.topbar-right { display: flex; align-items: center; gap: 16px; }
|
||||
.icon-btn { width: 38px; height: 38px; border-radius: 8px; background: #F1F5F9; border: none; cursor: pointer; display: flex; align-items: center; justify-content: center; position: relative; }
|
||||
.icon-btn svg { width: 18px; height: 18px; color: #64748B; }
|
||||
.notif-dot { position: absolute; top: 8px; right: 8px; width: 8px; height: 8px; background: #EF4444; border-radius: 50%; border: 2px solid #fff; }
|
||||
.topbar-user { display: flex; align-items: center; gap: 10px; }
|
||||
.avatar { width: 38px; height: 38px; border-radius: 50%; background: #7C3AED; display: flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; color: #fff; flex-shrink: 0; }
|
||||
.topbar-user-name { font-size: 14px; font-weight: 600; color: #0F172A; }
|
||||
.topbar-user-id { font-size: 12px; color: #64748B; }
|
||||
|
||||
.content { padding: 28px; flex: 1; }
|
||||
.page-title { font-size: 20px; font-weight: 700; color: #0F172A; margin-bottom: 4px; }
|
||||
.page-subtitle { font-size: 13px; color: #64748B; margin-bottom: 24px; }
|
||||
|
||||
.cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 28px; }
|
||||
.card { background: #fff; border-radius: 12px; padding: 20px 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.07); border: 1px solid #F1F5F9; }
|
||||
.card-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
|
||||
.card-label { font-size: 12px; font-weight: 600; color: #64748B; text-transform: uppercase; letter-spacing: 0.5px; }
|
||||
.card-icon { width: 36px; height: 36px; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
|
||||
.card-icon.indigo { background: #EEF2FF; } .card-icon.indigo svg { color: #4F46E5; }
|
||||
.card-icon.red { background: #FEF2F2; } .card-icon.red svg { color: #EF4444; }
|
||||
.card-icon.green { background: #ECFDF5; } .card-icon.green svg { color: #10B981; }
|
||||
.card-icon.amber { background: #FFFBEB; } .card-icon.amber svg { color: #F59E0B; }
|
||||
.card-icon svg { width: 18px; height: 18px; }
|
||||
.card-value { font-size: 30px; font-weight: 700; color: #0F172A; line-height: 1; }
|
||||
.card-meta { font-size: 12px; color: #64748B; margin-top: 6px; }
|
||||
.card-trend { display: flex; align-items: center; gap: 4px; font-size: 12px; font-weight: 600; margin-top: 6px; }
|
||||
.trend-up { color: #10B981; } .trend-down { color: #EF4444; }
|
||||
|
||||
.section-title { font-size: 15px; font-weight: 700; color: #0F172A; margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; }
|
||||
.view-all { font-size: 12px; font-weight: 500; color: #4F46E5; cursor: pointer; text-decoration: none; }
|
||||
|
||||
.two-cols { display: grid; grid-template-columns: 1fr 320px; gap: 20px; }
|
||||
|
||||
/* TABLE */
|
||||
.table-card { background: #fff; border-radius: 12px; box-shadow: 0 1px 3px rgba(0,0,0,0.07); border: 1px solid #F1F5F9; overflow: hidden; margin-bottom: 20px; }
|
||||
table { width: 100%; border-collapse: collapse; }
|
||||
thead th { background: #F8FAFC; padding: 12px 16px; text-align: left; font-size: 11px; font-weight: 700; color: #64748B; text-transform: uppercase; letter-spacing: 0.5px; border-bottom: 1px solid #E2E8F0; }
|
||||
tbody td { padding: 14px 16px; font-size: 13px; color: #374151; border-bottom: 1px solid #F1F5F9; vertical-align: middle; }
|
||||
tbody tr:last-child td { border-bottom: none; }
|
||||
tbody tr:hover { background: #FAFBFC; }
|
||||
.emp-name { font-weight: 600; color: #0F172A; }
|
||||
.emp-id { font-size: 11px; color: #94A3B8; margin-top: 1px; }
|
||||
.badge { display: inline-flex; align-items: center; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 600; }
|
||||
.badge-indigo { background: #EEF2FF; color: #4F46E5; }
|
||||
.badge-amber { background: #FFFBEB; color: #D97706; }
|
||||
.badge-green { background: #ECFDF5; color: #059669; }
|
||||
.badge-red { background: #FEF2F2; color: #DC2626; }
|
||||
.btn-sm { padding: 5px 12px; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; border: none; font-family: 'Inter', sans-serif; }
|
||||
.btn-approve { background: #ECFDF5; color: #059669; }
|
||||
.btn-approve:hover { background: #D1FAE5; }
|
||||
.btn-reject { background: #FEF2F2; color: #DC2626; margin-left: 4px; }
|
||||
.btn-reject:hover { background: #FEE2E2; }
|
||||
|
||||
/* PAYROLL CARD */
|
||||
.payroll-card { background: #fff; border-radius: 12px; padding: 20px 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.07); border: 1px solid #F1F5F9; }
|
||||
.payroll-month { font-size: 18px; font-weight: 700; color: #0F172A; margin-bottom: 4px; }
|
||||
.payroll-status { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
|
||||
.status-dot { width: 8px; height: 8px; border-radius: 50%; }
|
||||
.payroll-stats { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
|
||||
.payroll-stat { display: flex; justify-content: space-between; align-items: center; }
|
||||
.payroll-stat-label { font-size: 12px; color: #64748B; }
|
||||
.payroll-stat-val { font-size: 13px; font-weight: 600; color: #0F172A; }
|
||||
.btn-primary { background: #4F46E5; color: #fff; border: none; border-radius: 8px; padding: 10px 18px; font-size: 13px; font-weight: 600; cursor: pointer; font-family: 'Inter', sans-serif; width: 100%; }
|
||||
.btn-primary:hover { background: #4338CA; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<aside class="sidebar">
|
||||
<div class="sidebar-logo">
|
||||
<div class="sidebar-logo-icon">
|
||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round">
|
||||
<path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/>
|
||||
<path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/>
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<div class="sidebar-logo-text">TechCorp HR</div>
|
||||
<div class="sidebar-logo-sub">Admin Portal</div>
|
||||
</div>
|
||||
</div>
|
||||
<nav class="sidebar-nav">
|
||||
<div class="nav-section-label">Administration</div>
|
||||
<a class="nav-item active" href="#">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/></svg>
|
||||
Dashboard
|
||||
</a>
|
||||
<a class="nav-item" href="#">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
|
||||
Employees
|
||||
</a>
|
||||
<a class="nav-item" href="#">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="18" rx="2" ry="2"/><line x1="16" y1="2" x2="16" y2="6"/><line x1="8" y1="2" x2="8" y2="6"/><line x1="3" y1="10" x2="21" y2="10"/></svg>
|
||||
Attendance
|
||||
</a>
|
||||
<a class="nav-item" href="#">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M9 11l3 3L22 4"/><path d="M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11"/></svg>
|
||||
Leave Approvals
|
||||
<span class="nav-badge">12</span>
|
||||
</a>
|
||||
<a class="nav-item" href="#">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
|
||||
Payroll
|
||||
</a>
|
||||
<a class="nav-item" href="#">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>
|
||||
Reimbursements
|
||||
<span class="nav-badge">8</span>
|
||||
</a>
|
||||
<a class="nav-item" href="#">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></svg>
|
||||
Announcements
|
||||
</a>
|
||||
<a class="nav-item" href="#">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="20" x2="18" y2="10"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="6" y1="20" x2="6" y2="14"/></svg>
|
||||
Reports
|
||||
</a>
|
||||
</nav>
|
||||
<div class="sidebar-footer">
|
||||
<div class="sidebar-user">
|
||||
<div class="avatar-sm">PK</div>
|
||||
<div>
|
||||
<div class="sidebar-user-name">Priya Kapoor</div>
|
||||
<div class="sidebar-user-role">HR Admin · EMP-00012</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<div class="main">
|
||||
<header class="topbar">
|
||||
<div class="topbar-left">
|
||||
<div class="topbar-title">Admin Dashboard</div>
|
||||
<span class="role-badge">HR ADMIN</span>
|
||||
</div>
|
||||
<div class="topbar-right">
|
||||
<button class="icon-btn">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/><path d="M13.73 21a2 2 0 0 1-3.46 0"/></svg>
|
||||
<span class="notif-dot"></span>
|
||||
</button>
|
||||
<div class="topbar-user">
|
||||
<div>
|
||||
<div class="topbar-user-name">Priya Kapoor</div>
|
||||
<div class="topbar-user-id">HR Admin</div>
|
||||
</div>
|
||||
<div class="avatar">PK</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="content">
|
||||
<div class="page-title">Admin Dashboard</div>
|
||||
<div class="page-subtitle">Monday, 4 May 2026 — Overview of all HR operations</div>
|
||||
|
||||
<div class="cards-grid">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-label">Total Employees</div>
|
||||
<div class="card-icon indigo">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M23 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-value">247</div>
|
||||
<div class="card-trend trend-up">↑ 3 <span style="color:#64748B;font-weight:400;">new this month</span></div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-label">Pending Leave Approvals</div>
|
||||
<div class="card-icon red">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-value">12</div>
|
||||
<div class="card-meta">5 urgent — older than 48 hrs</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-label">Today's Attendance Rate</div>
|
||||
<div class="card-icon green">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-value">94<span style="font-size:16px;color:#64748B;">%</span></div>
|
||||
<div class="card-meta">232 / 247 employees present</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<div class="card-label">Pending Reimbursements</div>
|
||||
<div class="card-icon amber">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="1" x2="12" y2="23"/><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"/></svg>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-value">8</div>
|
||||
<div class="card-meta">Total value: ₹32,400</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="two-cols">
|
||||
<!-- PENDING APPROVALS TABLE -->
|
||||
<div>
|
||||
<div class="section-title">
|
||||
Pending Approvals
|
||||
<a href="#" class="view-all">View all →</a>
|
||||
</div>
|
||||
<div class="table-card">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Employee</th>
|
||||
<th>Type</th>
|
||||
<th>Details</th>
|
||||
<th>Requested On</th>
|
||||
<th>Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="emp-name">Arjun Mehta</div>
|
||||
<div class="emp-id">EMP-00183 · Engineering</div>
|
||||
</td>
|
||||
<td><span class="badge badge-indigo">Casual Leave</span></td>
|
||||
<td>May 7–9 (3 days)</td>
|
||||
<td>May 2, 2026</td>
|
||||
<td>
|
||||
<button class="btn-sm btn-approve">Approve</button>
|
||||
<button class="btn-sm btn-reject">Reject</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="emp-name">Sunita Rao</div>
|
||||
<div class="emp-id">EMP-00091 · Finance</div>
|
||||
</td>
|
||||
<td><span class="badge badge-amber">Reimbursement</span></td>
|
||||
<td>Travel claim — ₹3,200</td>
|
||||
<td>May 1, 2026</td>
|
||||
<td>
|
||||
<button class="btn-sm btn-approve">Approve</button>
|
||||
<button class="btn-sm btn-reject">Reject</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="emp-name">Vikram Nair</div>
|
||||
<div class="emp-id">EMP-00147 · Sales</div>
|
||||
</td>
|
||||
<td><span class="badge badge-indigo">Sick Leave</span></td>
|
||||
<td>May 5–6 (2 days)</td>
|
||||
<td>May 3, 2026</td>
|
||||
<td>
|
||||
<button class="btn-sm btn-approve">Approve</button>
|
||||
<button class="btn-sm btn-reject">Reject</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="emp-name">Meera Iyer</div>
|
||||
<div class="emp-id">EMP-00229 · HR</div>
|
||||
</td>
|
||||
<td><span class="badge badge-amber">Reimbursement</span></td>
|
||||
<td>Medical claim — ₹1,800</td>
|
||||
<td>Apr 30, 2026</td>
|
||||
<td>
|
||||
<button class="btn-sm btn-approve">Approve</button>
|
||||
<button class="btn-sm btn-reject">Reject</button>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<div class="emp-name">Deepak Joshi</div>
|
||||
<div class="emp-id">EMP-00064 · Operations</div>
|
||||
</td>
|
||||
<td><span class="badge badge-indigo">Earned Leave</span></td>
|
||||
<td>May 12–16 (5 days)</td>
|
||||
<td>Apr 28, 2026</td>
|
||||
<td>
|
||||
<button class="btn-sm btn-approve">Approve</button>
|
||||
<button class="btn-sm btn-reject">Reject</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- PAYROLL MINI CARD -->
|
||||
<div>
|
||||
<div class="section-title">Payroll Status</div>
|
||||
<div class="payroll-card">
|
||||
<div class="payroll-month">May 2026</div>
|
||||
<div class="payroll-status">
|
||||
<div class="status-dot" style="background:#F59E0B;"></div>
|
||||
<span style="font-size:13px;font-weight:600;color:#D97706;">Not Generated</span>
|
||||
</div>
|
||||
<div class="payroll-stats">
|
||||
<div class="payroll-stat">
|
||||
<span class="payroll-stat-label">Eligible Employees</span>
|
||||
<span class="payroll-stat-val">247</span>
|
||||
</div>
|
||||
<div class="payroll-stat">
|
||||
<span class="payroll-stat-label">Processing Period</span>
|
||||
<span class="payroll-stat-val">May 1–31, 2026</span>
|
||||
</div>
|
||||
<div class="payroll-stat">
|
||||
<span class="payroll-stat-label">Pay Date</span>
|
||||
<span class="payroll-stat-val">May 31, 2026</span>
|
||||
</div>
|
||||
<div class="payroll-stat">
|
||||
<span class="payroll-stat-label">Estimated Total</span>
|
||||
<span class="payroll-stat-val">~₹1,24,35,000</span>
|
||||
</div>
|
||||
</div>
|
||||
<div style="height:1px;background:#F1F5F9;margin-bottom:16px;"></div>
|
||||
<button class="btn-primary">Generate Payroll</button>
|
||||
<div style="margin-top:8px;text-align:center;font-size:11px;color:#94A3B8;">Attendance data locks on May 28</div>
|
||||
</div>
|
||||
|
||||
<div style="margin-top:20px;">
|
||||
<div class="section-title">Dept. Headcount</div>
|
||||
<div class="card" style="padding:16px 20px;">
|
||||
<div style="display:flex;flex-direction:column;gap:10px;">
|
||||
<div style="display:flex;justify-content:space-between;align-items:center;">
|
||||
<span style="font-size:13px;color:#374151;">Engineering</span>
|
||||
<span style="font-size:13px;font-weight:600;color:#0F172A;">89</span>
|
||||
</div>
|
||||
<div style="height:4px;background:#F1F5F9;border-radius:999px;"><div style="width:36%;height:100%;background:#4F46E5;border-radius:999px;"></div></div>
|
||||
<div style="display:flex;justify-content:space-between;align-items:center;">
|
||||
<span style="font-size:13px;color:#374151;">Sales</span>
|
||||
<span style="font-size:13px;font-weight:600;color:#0F172A;">62</span>
|
||||
</div>
|
||||
<div style="height:4px;background:#F1F5F9;border-radius:999px;"><div style="width:25%;height:100%;background:#10B981;border-radius:999px;"></div></div>
|
||||
<div style="display:flex;justify-content:space-between;align-items:center;">
|
||||
<span style="font-size:13px;color:#374151;">Finance</span>
|
||||
<span style="font-size:13px;font-weight:600;color:#0F172A;">38</span>
|
||||
</div>
|
||||
<div style="height:4px;background:#F1F5F9;border-radius:999px;"><div style="width:15%;height:100%;background:#F59E0B;border-radius:999px;"></div></div>
|
||||
<div style="display:flex;justify-content:space-between;align-items:center;">
|
||||
<span style="font-size:13px;color:#374151;">Operations</span>
|
||||
<span style="font-size:13px;font-weight:600;color:#0F172A;">41</span>
|
||||
</div>
|
||||
<div style="height:4px;background:#F1F5F9;border-radius:999px;"><div style="width:17%;height:100%;background:#3B82F6;border-radius:999px;"></div></div>
|
||||
<div style="display:flex;justify-content:space-between;align-items:center;">
|
||||
<span style="font-size:13px;color:#374151;">HR</span>
|
||||
<span style="font-size:13px;font-weight:600;color:#0F172A;">17</span>
|
||||
</div>
|
||||
<div style="height:4px;background:#F1F5F9;border-radius:999px;"><div style="width:7%;height:100%;background:#8B5CF6;border-radius:999px;"></div></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user