Files
betterhuman/designs/08-performance.html
2026-05-05 22:28:19 +00:00

387 lines
29 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>BetterHuman — Performance</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: 12px; }
.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; }
/* CYCLE BANNER */
.cycle-banner {
background: linear-gradient(135deg, #4F46E5 0%, #7C3AED 100%);
border-radius: 12px; padding: 20px 24px; margin-bottom: 24px;
display: flex; align-items: center; justify-content: space-between;
}
.cycle-left { color: white; }
.cycle-title { font-family: 'Sora', sans-serif; font-size: 16px; font-weight: 700; margin-bottom: 4px; }
.cycle-sub { font-size: 13px; opacity: 0.8; margin-bottom: 12px; }
.cycle-progress-wrap { display: flex; align-items: center; gap: 12px; }
.cycle-bar { flex: 1; height: 6px; background: rgba(255,255,255,0.25); border-radius: 9999px; max-width: 200px; overflow: hidden; }
.cycle-fill { height: 100%; background: #A5B4FC; border-radius: 9999px; }
.cycle-pct { font-size: 13px; font-weight: 700; color: white; }
.cycle-right { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.cycle-end { font-size: 12px; color: rgba(255,255,255,0.7); }
.cycle-end strong { color: white; }
.btn-white { padding: 8px 16px; background: white; color: #4F46E5; border: none; border-radius: 8px; font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 600; cursor: pointer; }
/* METRICS */
.metrics-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 24px; }
.metric-card { background: #FFFFFF; border-radius: 12px; padding: 20px 24px; box-shadow: 0 1px 3px rgba(0,0,0,0.08); display: flex; justify-content: space-between; align-items: flex-start; }
.metric-label { font-size: 12px; color: #64748B; font-weight: 500; margin-bottom: 6px; }
.metric-value { font-family: 'Sora', sans-serif; font-size: 24px; font-weight: 700; color: #0F172A; }
.metric-sub { font-size: 11px; color: #94A3B8; margin-top: 4px; }
.metric-mini-bar { height: 4px; background: #F1F5F9; border-radius: 9999px; overflow: hidden; margin-top: 10px; width: 80px; }
.mini-fill { height: 100%; border-radius: 9999px; }
.fill-indigo { background: #6366F1; }
.fill-green { background: #10B981; }
.fill-amber { background: #F59E0B; }
/* RATING STARS */
.stars { display: flex; gap: 2px; margin-top: 8px; }
.star { width: 16px; height: 16px; }
.star.filled { color: #F59E0B; }
.star.empty { color: #E2E8F0; }
/* MAIN GRID */
.perf-grid { display: grid; grid-template-columns: 1fr 300px; gap: 20px; }
.card { background: #FFFFFF; border-radius: 12px; padding: 20px 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; justify-content: space-between; align-items: center; }
.card-action { font-size: 12px; color: #6366F1; cursor: pointer; font-weight: 500; }
/* REVIEWS TABLE */
table { width: 100%; border-collapse: collapse; }
thead th { background: #F8FAFC; padding: 10px 14px; text-align: left; font-size: 11px; font-weight: 600; color: #64748B; text-transform: uppercase; letter-spacing: 0.06em; border-bottom: 1px solid #E2E8F0; }
tbody tr { border-bottom: 1px solid #F1F5F9; transition: background 0.12s; }
tbody tr:last-child { border-bottom: none; }
tbody tr:hover { background: #F8FAFC; }
tbody td { padding: 12px 14px; font-size: 13px; color: #374151; vertical-align: middle; }
.emp-cell { display: flex; align-items: center; gap: 10px; }
.emp-avatar { width: 32px; height: 32px; 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, #EF4444, #DC2626); }
.av-5 { background: linear-gradient(135deg, #3B82F6, #2563EB); }
.emp-name { font-size: 13px; font-weight: 600; color: #0F172A; }
.emp-dept { font-size: 11px; color: #94A3B8; }
.badge { padding: 2px 10px; border-radius: 9999px; font-size: 11px; font-weight: 500; }
.badge-amber { background: #FFFBEB; color: #D97706; }
.badge-green { background: #ECFDF5; color: #059669; }
.badge-blue { background: #EFF6FF; color: #2563EB; }
.badge-red { background: #FEF2F2; color: #DC2626; }
.badge-indigo { background: #EEF2FF; color: #6366F1; }
.start-btn { padding: 5px 12px; background: #6366F1; color: white; border: none; border-radius: 6px; font-size: 12px; font-weight: 600; cursor: pointer; }
/* OKRs */
.okr-list { display: flex; flex-direction: column; gap: 16px; }
.okr-item { padding: 14px; background: #F8FAFC; border-radius: 8px; border: 1px solid #E2E8F0; }
.okr-title { font-size: 13px; font-weight: 600; color: #0F172A; margin-bottom: 6px; }
.okr-meta { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.okr-owner { font-size: 11px; color: #94A3B8; }
.okr-pct { font-size: 12px; font-weight: 700; }
.okr-pct.high { color: #10B981; }
.okr-pct.mid { color: #F59E0B; }
.okr-pct.low { color: #EF4444; }
.okr-bar { height: 6px; background: #E2E8F0; border-radius: 9999px; overflow: hidden; }
.okr-fill { height: 100%; border-radius: 9999px; }
.okr-fill.green { background: linear-gradient(90deg, #10B981, #34D399); }
.okr-fill.amber { background: linear-gradient(90deg, #F59E0B, #FCD34D); }
.okr-fill.indigo { background: linear-gradient(90deg, #6366F1, #818CF8); }
/* 1:1 CARD */
.one-on-one {
background: linear-gradient(135deg, #EEF2FF, #F5F3FF);
border: 1px solid #C7D2FE; border-radius: 10px; padding: 16px; margin-top: 0;
}
.o-title { font-size: 12px; font-weight: 600; color: #4F46E5; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 8px; }
.o-meeting { font-size: 14px; font-weight: 700; color: #0F172A; margin-bottom: 4px; }
.o-time { font-size: 12px; color: #6366F1; font-weight: 600; }
.o-agenda { margin-top: 10px; padding-top: 10px; border-top: 1px solid #C7D2FE; font-size: 12px; color: #64748B; }
.o-join { display: flex; margin-top: 12px; }
.o-join button { padding: 7px 14px; background: #6366F1; color: white; border: none; border-radius: 7px; font-size: 12px; font-weight: 600; cursor: pointer; }
</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" 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 active" 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">Performance Management</span>
<span class="page-breadcrumb">Reviews, OKRs, and 1:1s</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>
Start Review Cycle
</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">
<!-- Cycle Banner -->
<div class="cycle-banner">
<div class="cycle-left">
<div class="cycle-title">Q1 2026 Performance Review</div>
<div class="cycle-sub">Annual review cycle — 360° feedback + OKR assessment</div>
<div class="cycle-progress-wrap">
<div class="cycle-bar"><div class="cycle-fill" style="width:68%"></div></div>
<span class="cycle-pct">68% submitted</span>
</div>
</div>
<div class="cycle-right">
<div class="cycle-end">Cycle ends <strong>June 30, 2026</strong></div>
<button class="btn-white">Manage Cycle</button>
</div>
</div>
<!-- Metrics -->
<div class="metrics-row">
<div class="metric-card">
<div>
<div class="metric-label">Reviews Submitted</div>
<div class="metric-value">168/247</div>
<div class="metric-sub">68% completion</div>
<div class="metric-mini-bar"><div class="mini-fill fill-indigo" style="width:68%"></div></div>
</div>
<div style="width:36px;height:36px;background:linear-gradient(135deg,#EEF2FF,#C7D2FE);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#6366F1" 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>
</div>
</div>
<div class="metric-card">
<div>
<div class="metric-label">Self Reviews Done</div>
<div class="metric-value">201/247</div>
<div class="metric-sub">81% completion</div>
<div class="metric-mini-bar"><div class="mini-fill fill-green" style="width:81%"></div></div>
</div>
<div style="width:36px;height:36px;background:linear-gradient(135deg,#ECFDF5,#A7F3D0);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0">
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="#10B981" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
</div>
</div>
<div class="metric-card">
<div>
<div class="metric-label">Avg Team Rating</div>
<div class="metric-value">3.8/5</div>
<div class="metric-sub">+0.3 from last cycle</div>
<div class="stars">
<svg class="star filled" viewBox="0 0 24 24" fill="#F59E0B" stroke="none"><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>
<svg class="star filled" viewBox="0 0 24 24" fill="#F59E0B" stroke="none"><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>
<svg class="star filled" viewBox="0 0 24 24" fill="#F59E0B" stroke="none"><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>
<svg class="star filled" viewBox="0 0 24 24" fill="#F59E0B" stroke="none"><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>
<svg class="star empty" viewBox="0 0 24 24" fill="#E2E8F0" stroke="none"><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>
</div>
</div>
<div style="width:36px;height:36px;background:linear-gradient(135deg,#FFFBEB,#FDE68A);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0">
<svg width="18" height="18" viewBox="0 0 24 24" fill="#F59E0B" stroke="none"><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>
</div>
</div>
</div>
<!-- Perf Grid -->
<div class="perf-grid">
<div style="display:flex;flex-direction:column;gap:16px;">
<!-- My Reviews -->
<div class="card">
<div class="card-title">My Pending Reviews <span class="card-action">View All</span></div>
<table>
<thead>
<tr>
<th>Employee</th>
<th>Review Type</th>
<th>Due Date</th>
<th>Status</th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td><div class="emp-cell"><div class="emp-avatar av-1">PS</div><div><div class="emp-name">Priya Sharma</div><div class="emp-dept">Self Review</div></div></div></td>
<td><span class="badge badge-indigo">Self</span></td>
<td>June 15, 2026</td>
<td><span class="badge badge-amber">Pending</span></td>
<td><button class="start-btn">Start</button></td>
</tr>
<tr>
<td><div class="emp-cell"><div class="emp-avatar av-2">AK</div><div><div class="emp-name">Ananya Krishnan</div><div class="emp-dept">Engineering</div></div></div></td>
<td><span class="badge badge-blue">Manager</span></td>
<td>June 20, 2026</td>
<td><span class="badge badge-amber">Pending</span></td>
<td><button class="start-btn">Start</button></td>
</tr>
<tr>
<td><div class="emp-cell"><div class="emp-avatar av-3">RD</div><div><div class="emp-name">Rohan Das</div><div class="emp-dept">Engineering</div></div></div></td>
<td><span class="badge badge-blue">Manager</span></td>
<td>June 20, 2026</td>
<td><span class="badge badge-green">Submitted</span></td>
<td><button class="start-btn" style="background:#ECFDF5;color:#059669">View</button></td>
</tr>
<tr>
<td><div class="emp-cell"><div class="emp-avatar av-4">MN</div><div><div class="emp-name">Meera Nair</div><div class="emp-dept">Product</div></div></div></td>
<td><span class="badge badge-indigo">Peer</span></td>
<td>June 18, 2026</td>
<td><span class="badge badge-red">Overdue</span></td>
<td><button class="start-btn">Start</button></td>
</tr>
</tbody>
</table>
</div>
<!-- OKRs -->
<div class="card">
<div class="card-title">My OKRs — Q1 2026 <span class="card-action">Edit Goals</span></div>
<div class="okr-list">
<div class="okr-item">
<div class="okr-title">Launch BetterHuman v2.0 Mobile App</div>
<div class="okr-meta">
<span class="okr-owner">Engineering · Owner: Priya Sharma</span>
<span class="okr-pct high">72%</span>
</div>
<div class="okr-bar"><div class="okr-fill green" style="width:72%"></div></div>
</div>
<div class="okr-item">
<div class="okr-title">Achieve Q2 Revenue Target of ₹8.5Cr</div>
<div class="okr-meta">
<span class="okr-owner">Company · Owner: Neha Gupta</span>
<span class="okr-pct mid">45%</span>
</div>
<div class="okr-bar"><div class="okr-fill amber" style="width:45%"></div></div>
</div>
<div class="okr-item">
<div class="okr-title">Reduce Customer Churn from 12% to 8%</div>
<div class="okr-meta">
<span class="okr-owner">Product · Owner: Meera Nair</span>
<span class="okr-pct high">88%</span>
</div>
<div class="okr-bar"><div class="okr-fill green" style="width:88%"></div></div>
</div>
</div>
</div>
</div>
<!-- Right column -->
<div style="display:flex;flex-direction:column;gap:16px;">
<div class="card">
<div class="card-title">Upcoming 1:1</div>
<div class="one-on-one">
<div class="o-title">Scheduled 1:1</div>
<div class="o-meeting">1:1 with Rahul Mehta</div>
<div class="o-time">Tomorrow — Wednesday, May 6 · 3:00 PM</div>
<div class="o-agenda">Agenda: Q1 review progress, career development discussion, team expansion plans.</div>
<div class="o-join"><button>Join Meeting</button></div>
</div>
</div>
<div class="card">
<div class="card-title">Rating Distribution</div>
<div style="display:flex;flex-direction:column;gap:10px;margin-top:4px;">
<div style="display:flex;align-items:center;gap:10px;">
<div style="font-size:11px;color:#64748B;width:80px">Outstanding (5)</div>
<div style="flex:1;height:14px;background:#F1F5F9;border-radius:9999px;overflow:hidden"><div style="height:100%;width:12%;background:#6366F1;border-radius:9999px"></div></div>
<div style="font-size:11px;color:#64748B;width:20px;text-align:right">12%</div>
</div>
<div style="display:flex;align-items:center;gap:10px;">
<div style="font-size:11px;color:#64748B;width:80px">Exceeds (4)</div>
<div style="flex:1;height:14px;background:#F1F5F9;border-radius:9999px;overflow:hidden"><div style="height:100%;width:28%;background:#10B981;border-radius:9999px"></div></div>
<div style="font-size:11px;color:#64748B;width:20px;text-align:right">28%</div>
</div>
<div style="display:flex;align-items:center;gap:10px;">
<div style="font-size:11px;color:#64748B;width:80px">Meets (3)</div>
<div style="flex:1;height:14px;background:#F1F5F9;border-radius:9999px;overflow:hidden"><div style="height:100%;width:45%;background:#F59E0B;border-radius:9999px"></div></div>
<div style="font-size:11px;color:#64748B;width:20px;text-align:right">45%</div>
</div>
<div style="display:flex;align-items:center;gap:10px;">
<div style="font-size:11px;color:#64748B;width:80px">Below (2)</div>
<div style="flex:1;height:14px;background:#F1F5F9;border-radius:9999px;overflow:hidden"><div style="height:100%;width:12%;background:#EF4444;border-radius:9999px"></div></div>
<div style="font-size:11px;color:#64748B;width:20px;text-align:right">12%</div>
</div>
<div style="display:flex;align-items:center;gap:10px;">
<div style="font-size:11px;color:#64748B;width:80px">Needs Impr (1)</div>
<div style="flex:1;height:14px;background:#F1F5F9;border-radius:9999px;overflow:hidden"><div style="height:100%;width:3%;background:#94A3B8;border-radius:9999px"></div></div>
<div style="font-size:11px;color:#64748B;width:20px;text-align:right">3%</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>