Files
2026-05-05 22:28:19 +00:00

337 lines
24 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BetterHuman — Leave Management</title>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Sora:wght@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; display: flex; min-height: 100vh; font-size: 14px; color: #0F172A; }
.sidebar { width: 240px; background: #0F172A; min-height: 100vh; display: flex; flex-direction: column; position: fixed; top: 0; left: 0; bottom: 0; z-index: 10; overflow-y: auto; }
.sidebar-logo { padding: 20px 20px 16px; display: flex; align-items: center; gap: 10px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.logo-icon { width: 36px; height: 36px; background: linear-gradient(135deg, #6366F1 0%, #8B5CF6 100%); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.logo-icon svg { width: 20px; height: 20px; }
.logo-name { font-family: 'Sora', sans-serif; font-size: 16px; font-weight: 700; color: #FFFFFF; }
.logo-company { font-size: 11px; color: #475569; font-weight: 500; }
.sidebar-search { padding: 12px 16px; border-bottom: 1px solid rgba(255,255,255,0.06); }
.sidebar-search input { width: 100%; padding: 7px 10px 7px 32px; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.08); border-radius: 6px; color: #94A3B8; font-size: 12px; font-family: 'Inter', sans-serif; outline: none; }
.search-wrap { position: relative; }
.search-wrap svg { position: absolute; left: 8px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; color: #475569; }
.sidebar-nav { padding: 8px 0; flex: 1; }
.nav-section-label { font-size: 10px; font-weight: 600; letter-spacing: 0.08em; color: #334155; padding: 16px 20px 6px; text-transform: uppercase; }
.nav-item { display: flex; align-items: center; gap: 10px; padding: 8px 16px; margin: 1px 8px; border-radius: 7px; color: #64748B; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.15s; text-decoration: none; }
.nav-item:hover { background: #1E293B; color: #CBD5E1; }
.nav-item.active { background: #6366F1; color: #FFFFFF; }
.nav-item svg { width: 16px; height: 16px; flex-shrink: 0; }
.nav-badge { margin-left: auto; background: #EF4444; color: white; font-size: 10px; font-weight: 700; padding: 1px 6px; border-radius: 9999px; }
.sidebar-footer { padding: 12px 16px; border-top: 1px solid rgba(255,255,255,0.06); display: flex; align-items: center; gap: 10px; }
.avatar-sm { width: 32px; height: 32px; border-radius: 50%; background: linear-gradient(135deg, #6366F1, #8B5CF6); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; color: white; flex-shrink: 0; }
.footer-name { font-size: 12px; font-weight: 600; color: #CBD5E1; }
.footer-role { font-size: 11px; color: #475569; }
.main { margin-left: 240px; flex: 1; display: flex; flex-direction: column; }
.topbar { height: 64px; background: #FFFFFF; border-bottom: 1px solid #E2E8F0; display: flex; align-items: center; justify-content: space-between; padding: 0 32px; position: sticky; top: 0; z-index: 5; }
.topbar-left { display: flex; flex-direction: column; }
.page-title { font-family: 'Sora', sans-serif; font-size: 18px; font-weight: 700; color: #0F172A; }
.page-breadcrumb { font-size: 12px; color: #94A3B8; }
.topbar-right { display: flex; align-items: center; gap: 16px; }
.icon-btn { width: 36px; height: 36px; border-radius: 8px; border: 1.5px solid #E2E8F0; background: #FFFFFF; display: flex; align-items: center; justify-content: center; cursor: pointer; position: relative; }
.icon-btn svg { width: 18px; height: 18px; color: #64748B; }
.notif-dot { position: absolute; top: 6px; right: 6px; width: 8px; height: 8px; background: #EF4444; border-radius: 50%; border: 2px solid #FFFFFF; }
.topbar-avatar { width: 36px; height: 36px; border-radius: 50%; background: linear-gradient(135deg, #6366F1, #8B5CF6); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: white; }
.content { padding: 32px; flex: 1; }
.btn-primary { display: flex; align-items: center; gap: 8px; padding: 9px 18px; background: #6366F1; color: #FFFFFF; border: none; border-radius: 8px; font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; cursor: pointer; }
.btn-primary svg { width: 15px; height: 15px; }
/* LEAVE BALANCE CARDS */
.balance-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.section-title { font-family: 'Sora', sans-serif; font-size: 15px; font-weight: 700; color: #0F172A; }
.balance-cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 28px; }
.balance-card {
background: #FFFFFF; border-radius: 12px; padding: 18px 20px;
box-shadow: 0 1px 3px rgba(0,0,0,0.08); border-top: 3px solid transparent;
display: flex; flex-direction: column; gap: 10px;
}
.bc-indigo { border-top-color: #6366F1; }
.bc-green { border-top-color: #10B981; }
.bc-amber { border-top-color: #F59E0B; }
.bc-red { border-top-color: #EF4444; }
.bal-type { font-size: 11px; font-weight: 600; color: #64748B; text-transform: uppercase; letter-spacing: 0.05em; }
.bal-days { font-family: 'Sora', sans-serif; font-size: 26px; font-weight: 700; color: #0F172A; }
.bal-days span { font-family: 'Inter', sans-serif; font-size: 12px; color: #94A3B8; font-weight: 400; }
.bal-bar { height: 4px; background: #F1F5F9; border-radius: 9999px; overflow: hidden; }
.bal-fill { height: 100%; border-radius: 9999px; }
.fill-indigo { background: #6366F1; }
.fill-green { background: #10B981; }
.fill-amber { background: #F59E0B; }
.fill-red { background: #EF4444; }
.bal-sub { font-size: 11px; color: #94A3B8; }
/* MAIN GRID */
.leave-grid { display: grid; grid-template-columns: 1fr 320px; gap: 24px; }
/* CALENDAR */
.card { background: #FFFFFF; border-radius: 12px; padding: 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); }
.card-title { font-family: 'Sora', sans-serif; font-size: 15px; font-weight: 700; color: #0F172A; margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; }
.cal-nav { display: flex; align-items: center; gap: 12px; }
.cal-nav-btn { width: 28px; height: 28px; border: 1.5px solid #E2E8F0; border-radius: 6px; background: #FFFFFF; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.cal-nav-btn svg { width: 14px; height: 14px; color: #64748B; }
.cal-month { font-family: 'Sora', sans-serif; font-size: 14px; font-weight: 700; color: #0F172A; }
.calendar { width: 100%; }
.cal-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; margin-bottom: 8px; }
.cal-weekday { text-align: center; font-size: 11px; font-weight: 600; color: #94A3B8; padding: 6px 0; text-transform: uppercase; }
.cal-days { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.cal-day {
height: 48px; border-radius: 8px; display: flex; flex-direction: column;
align-items: center; justify-content: center; cursor: pointer;
font-size: 13px; color: #374151; position: relative;
transition: background 0.12s;
}
.cal-day:hover { background: #F8FAFC; }
.cal-day.other-month { color: #CBD5E1; }
.cal-day.today { background: #EEF2FF; color: #6366F1; font-weight: 700; }
.cal-day.today::after { content: ''; position: absolute; bottom: 6px; left: 50%; transform: translateX(-50%); width: 4px; height: 4px; border-radius: 50%; background: #6366F1; }
.cal-day.leave-approved { background: #ECFDF5; color: #059669; font-weight: 600; }
.cal-day.leave-pending { background: #FFFBEB; color: #D97706; font-weight: 600; }
.cal-day.holiday { background: #FEF2F2; color: #DC2626; font-weight: 600; }
/* LEGEND */
.cal-legend { display: flex; gap: 16px; margin-top: 16px; flex-wrap: wrap; }
.legend-item { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #64748B; }
.legend-dot { width: 10px; height: 10px; border-radius: 3px; }
/* TEAM ON LEAVE */
.team-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-top: 0; }
.team-card { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: #F8FAFC; border-radius: 8px; border: 1px solid #E2E8F0; }
.t-avatar { width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: white; flex-shrink: 0; }
.av-1 { background: linear-gradient(135deg, #6366F1, #8B5CF6); }
.av-2 { background: linear-gradient(135deg, #10B981, #059669); }
.av-3 { background: linear-gradient(135deg, #F59E0B, #D97706); }
.av-4 { background: linear-gradient(135deg, #3B82F6, #2563EB); }
.t-name { font-size: 12px; font-weight: 600; color: #0F172A; }
.t-dates { font-size: 11px; color: #94A3B8; }
/* LEAVE HISTORY */
.badge { padding: 2px 10px; border-radius: 9999px; font-size: 11px; font-weight: 500; }
.badge-green { background: #ECFDF5; color: #059669; }
.badge-amber { background: #FFFBEB; color: #D97706; }
.badge-red { background: #FEF2F2; color: #DC2626; }
.badge-blue { background: #EFF6FF; color: #2563EB; }
table { width: 100%; border-collapse: collapse; }
thead th { background: #F8FAFC; padding: 10px 12px; text-align: left; font-size: 11px; font-weight: 600; color: #64748B; text-transform: uppercase; letter-spacing: 0.05em; border-bottom: 1px solid #E2E8F0; }
tbody tr { border-bottom: 1px solid #F1F5F9; }
tbody tr:last-child { border-bottom: none; }
tbody td { padding: 11px 12px; font-size: 12px; color: #374151; }
</style>
</head>
<body>
<aside class="sidebar">
<div class="sidebar-logo">
<div class="logo-icon"><svg viewBox="0 0 24 24" fill="none" stroke="white" 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="logo-name">BetterHuman</div><div class="logo-company">TechCorp India Pvt. Ltd.</div></div>
</div>
<div class="sidebar-search"><div class="search-wrap"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg><input type="text" placeholder="Search people, docs..."></div></div>
<nav class="sidebar-nav">
<div class="nav-section-label">Main</div>
<a class="nav-item" href="02-dashboard.html"><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="03-people.html"><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>People</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"><polyline points="22 12 18 12 15 21 9 3 6 12 2 12"/></svg>Org Chart</a>
<div class="nav-section-label">Workforce</div>
<a class="nav-item" href="07-recruitment.html"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="7" width="20" height="14" rx="2"/><path d="M16 7V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v2"/></svg>Recruitment</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="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"/><rect x="8" y="2" width="8" height="4" rx="1" ry="1"/></svg>Onboarding</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"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>Attendance</a>
<a class="nav-item active" href="05-leave.html"><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"/><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>Leave<span class="nav-badge">5</span></a>
<a class="nav-item" href="06-payroll.html"><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>
<div class="nav-section-label">Talent</div>
<a class="nav-item" href="08-performance.html"><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"/><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>Performance</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="M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z"/><path d="M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z"/></svg>Learning</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="M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z"/></svg>Benefits</a>
<div class="nav-section-label">Culture</div>
<a class="nav-item" href="#"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"/></svg>Engagement</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"><circle cx="12" cy="8" r="6"/><path d="M15.477 12.89L17 22l-5-3-5 3 1.523-9.11"/></svg>Recognition</a>
<div class="nav-section-label">Insights</div>
<a class="nav-item" href="09-analytics.html"><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>Analytics</a>
<div class="nav-section-label">Admin</div>
<a class="nav-item" href="10-settings.html"><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="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>Settings</a>
</nav>
<div class="sidebar-footer"><div class="avatar-sm">PS</div><div><div class="footer-name">Priya Sharma</div><div class="footer-role">HR Admin</div></div></div>
</aside>
<div class="main">
<header class="topbar">
<div class="topbar-left">
<span class="page-title">Leave Management</span>
<span class="page-breadcrumb">Your leave balance and requests</span>
</div>
<div class="topbar-right">
<button class="btn-primary">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
Request Leave
</button>
<div 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><div class="notif-dot"></div></div>
<div class="topbar-avatar">PS</div>
</div>
</header>
<div class="content">
<!-- Leave Balance -->
<div class="balance-header">
<span class="section-title">My Leave Balance · 2026</span>
</div>
<div class="balance-cards">
<div class="balance-card bc-indigo">
<div class="bal-type">Annual Leave</div>
<div class="bal-days">18 <span>/ 24 days</span></div>
<div class="bal-bar"><div class="bal-fill fill-indigo" style="width:75%"></div></div>
<div class="bal-sub">6 days used · 0 pending</div>
</div>
<div class="balance-card bc-green">
<div class="bal-type">Sick Leave</div>
<div class="bal-days">6 <span>/ 12 days</span></div>
<div class="bal-bar"><div class="bal-fill fill-green" style="width:50%"></div></div>
<div class="bal-sub">6 days used · 0 pending</div>
</div>
<div class="balance-card bc-amber">
<div class="bal-type">Compensatory Off</div>
<div class="bal-days">2 <span>/ 5 days</span></div>
<div class="bal-bar"><div class="bal-fill fill-amber" style="width:40%"></div></div>
<div class="bal-sub">3 days used · 1 pending</div>
</div>
<div class="balance-card bc-red">
<div class="bal-type">Emergency Leave</div>
<div class="bal-days">3 <span>/ 3 days</span></div>
<div class="bal-bar"><div class="bal-fill fill-red" style="width:100%"></div></div>
<div class="bal-sub">0 days used · 0 pending</div>
</div>
</div>
<!-- Main Grid -->
<div class="leave-grid">
<!-- Left: Calendar + Team -->
<div style="display:flex;flex-direction:column;gap:16px;">
<!-- Calendar -->
<div class="card">
<div class="card-title">
<span>May 2026</span>
<div class="cal-nav">
<div class="cal-nav-btn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg></div>
<span class="cal-month">May 2026</span>
<div class="cal-nav-btn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="9 18 15 12 9 6"/></svg></div>
</div>
</div>
<div class="calendar">
<div class="cal-weekdays">
<div class="cal-weekday">Sun</div><div class="cal-weekday">Mon</div><div class="cal-weekday">Tue</div>
<div class="cal-weekday">Wed</div><div class="cal-weekday">Thu</div><div class="cal-weekday">Fri</div><div class="cal-weekday">Sat</div>
</div>
<div class="cal-days">
<!-- Row 1 -->
<div class="cal-day other-month">27</div><div class="cal-day other-month">28</div><div class="cal-day other-month">29</div>
<div class="cal-day other-month">30</div><div class="cal-day">1</div><div class="cal-day">2</div><div class="cal-day">3</div>
<!-- Row 2 -->
<div class="cal-day">4</div><div class="cal-day today">5</div><div class="cal-day">6</div>
<div class="cal-day">7</div><div class="cal-day leave-approved">8</div><div class="cal-day leave-approved">9</div><div class="cal-day">10</div>
<!-- Row 3 -->
<div class="cal-day">11</div><div class="cal-day leave-approved">12</div><div class="cal-day leave-approved">13</div>
<div class="cal-day leave-approved">14</div><div class="cal-day leave-approved">15</div><div class="cal-day leave-approved">16</div><div class="cal-day">17</div>
<!-- Row 4 -->
<div class="cal-day">18</div><div class="cal-day">19</div><div class="cal-day leave-pending">20</div>
<div class="cal-day leave-pending">21</div><div class="cal-day">22</div><div class="cal-day">23</div><div class="cal-day">24</div>
<!-- Row 5 -->
<div class="cal-day holiday">25</div><div class="cal-day">26</div><div class="cal-day">27</div>
<div class="cal-day">28</div><div class="cal-day">29</div><div class="cal-day">30</div><div class="cal-day">31</div>
</div>
</div>
<div class="cal-legend">
<div class="legend-item"><div class="legend-dot" style="background:#EEF2FF;border:2px solid #6366F1"></div>Today</div>
<div class="legend-item"><div class="legend-dot" style="background:#ECFDF5"></div>Approved Leave</div>
<div class="legend-item"><div class="legend-dot" style="background:#FFFBEB"></div>Pending</div>
<div class="legend-item"><div class="legend-dot" style="background:#FEF2F2"></div>Public Holiday</div>
</div>
</div>
<!-- Team on Leave -->
<div class="card">
<div class="card-title">Team on Leave Today</div>
<div class="team-grid">
<div class="team-card">
<div class="t-avatar av-2">AK</div>
<div><div class="t-name">Ananya Krishnan</div><div class="t-dates">Annual · May 812</div></div>
</div>
<div class="team-card">
<div class="t-avatar av-3">NB</div>
<div><div class="t-name">Nikhil Bhat</div><div class="t-dates">Sick · May 5</div></div>
</div>
<div class="team-card">
<div class="t-avatar av-4">SR</div>
<div><div class="t-name">Sanya Reddy</div><div class="t-dates">Annual · May 57</div></div>
</div>
<div class="team-card">
<div class="t-avatar av-1">KP</div>
<div><div class="t-name">Karan Patel</div><div class="t-dates">Comp Off · May 5</div></div>
</div>
</div>
</div>
</div>
<!-- Right: Leave History -->
<div>
<div class="card">
<div class="card-title">My Leave History</div>
<table>
<thead>
<tr>
<th>Period</th>
<th>Type</th>
<th>Days</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td>Apr 1819</td>
<td>Sick</td>
<td style="text-align:center">2</td>
<td><span class="badge badge-green">Approved</span></td>
</tr>
<tr>
<td>Mar 22</td>
<td>Annual</td>
<td style="text-align:center">1</td>
<td><span class="badge badge-green">Approved</span></td>
</tr>
<tr>
<td>May 2021</td>
<td>Annual</td>
<td style="text-align:center">2</td>
<td><span class="badge badge-amber">Pending</span></td>
</tr>
<tr>
<td>Feb 14</td>
<td>Annual</td>
<td style="text-align:center">1</td>
<td><span class="badge badge-green">Approved</span></td>
</tr>
<tr>
<td>Jan 26</td>
<td>Comp Off</td>
<td style="text-align:center">1</td>
<td><span class="badge badge-green">Approved</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</body>
</html>