282 lines
19 KiB
HTML
282 lines
19 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Settings — HR Portal</title>
|
||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@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: #FAFAFA; color: #111827; display: flex; min-height: 100vh; }
|
||
.sidebar { width: 240px; min-height: 100vh; background: #FFFFFF; border-right: 1px solid #E5E7EB; display: flex; flex-direction: column; position: fixed; top: 0; left: 0; bottom: 0; z-index: 50; }
|
||
.sidebar-logo { padding: 20px 20px 16px; display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 700; color: #111827; border-bottom: 1px solid #F3F4F6; }
|
||
.logo-icon { width: 32px; height: 32px; background: #4F46E5; border-radius: 8px; display: flex; align-items: center; justify-content: center; }
|
||
.logo-icon svg { width: 16px; height: 16px; }
|
||
.sidebar-nav { flex: 1; padding: 12px 0; overflow-y: auto; }
|
||
.nav-item { display: flex; align-items: center; gap: 10px; padding: 9px 16px; margin: 1px 8px; border-radius: 6px; font-size: 14px; font-weight: 500; color: #6B7280; text-decoration: none; cursor: pointer; }
|
||
.nav-item:hover { background: #F9FAFB; color: #111827; }
|
||
.nav-item.active { background: #EEF2FF; color: #4F46E5; font-weight: 600; }
|
||
.nav-item svg { width: 18px; height: 18px; flex-shrink: 0; }
|
||
.nav-badge { margin-left: auto; background: #F59E0B; color: #FFF; font-size: 11px; font-weight: 600; padding: 1px 7px; border-radius: 10px; }
|
||
.sidebar-footer { padding: 16px; border-top: 1px solid #F3F4F6; }
|
||
.user-row { display: flex; align-items: center; gap: 10px; padding: 8px; }
|
||
.user-avatar { width: 34px; height: 34px; border-radius: 50%; background: #4F46E5; color: #FFF; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; }
|
||
.user-name { font-size: 13px; font-weight: 600; color: #111827; }
|
||
.user-role { font-size: 11px; color: #9CA3AF; }
|
||
.logout-btn { width: 100%; margin-top: 8px; padding: 7px; border: 1.5px solid #E5E7EB; border-radius: 6px; background: transparent; color: #6B7280; font-size: 13px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 6px; }
|
||
.main-wrapper { margin-left: 240px; flex: 1; display: flex; flex-direction: column; }
|
||
.topnav { height: 64px; background: #FFFFFF; border-bottom: 1px solid #E5E7EB; display: flex; align-items: center; gap: 16px; padding: 0 28px; position: sticky; top: 0; z-index: 40; }
|
||
.breadcrumb { display: flex; align-items: center; gap: 8px; font-size: 14px; }
|
||
.breadcrumb a { color: #9CA3AF; text-decoration: none; }
|
||
.breadcrumb svg { width: 14px; height: 14px; color: #D1D5DB; }
|
||
.breadcrumb span { color: #111827; font-weight: 500; }
|
||
.topnav-actions { margin-left: auto; display: flex; gap: 8px; align-items: center; }
|
||
.icon-btn { width: 36px; height: 36px; border-radius: 8px; border: 1.5px solid #E5E7EB; background: #FFFFFF; display: flex; align-items: center; justify-content: center; cursor: pointer; position: relative; }
|
||
.icon-btn svg { width: 18px; height: 18px; color: #6B7280; }
|
||
.notif-badge { position: absolute; top: -4px; right: -4px; background: #EF4444; color: #FFF; font-size: 10px; font-weight: 700; width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; border: 2px solid #FFFFFF; }
|
||
.topnav-avatar { width: 36px; height: 36px; border-radius: 50%; background: #4F46E5; color: #FFF; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 600; cursor: pointer; }
|
||
.content { padding: 0; }
|
||
|
||
/* SETTINGS LAYOUT */
|
||
.settings-layout { display: flex; min-height: calc(100vh - 64px); }
|
||
.settings-subnav { width: 220px; background: #FFFFFF; border-right: 1px solid #E5E7EB; padding: 20px 0; flex-shrink: 0; }
|
||
.subnav-title { font-size: 11px; font-weight: 600; color: #9CA3AF; text-transform: uppercase; letter-spacing: 0.5px; padding: 0 16px 8px; }
|
||
.subnav-item { display: flex; align-items: center; gap: 8px; padding: 9px 16px; font-size: 14px; font-weight: 500; color: #6B7280; cursor: pointer; transition: all 0.15s; }
|
||
.subnav-item:hover { background: #F9FAFB; color: #111827; }
|
||
.subnav-item.active { background: #EEF2FF; color: #4F46E5; font-weight: 600; }
|
||
.subnav-item svg { width: 16px; height: 16px; flex-shrink: 0; }
|
||
.settings-content { flex: 1; padding: 28px; max-width: 700px; }
|
||
|
||
.settings-section { margin-bottom: 28px; }
|
||
.section-header { margin-bottom: 20px; }
|
||
.section-title { font-size: 16px; font-weight: 600; color: #111827; margin-bottom: 4px; }
|
||
.section-sub { font-size: 13px; color: #9CA3AF; }
|
||
|
||
.card { background: #FFFFFF; border-radius: 10px; border: 1px solid #E5E7EB; box-shadow: 0 1px 3px rgba(0,0,0,0.06); overflow: hidden; margin-bottom: 16px; }
|
||
.card-header-row { padding: 16px 20px; border-bottom: 1px solid #F3F4F6; }
|
||
.card-title { font-size: 14px; font-weight: 600; color: #111827; }
|
||
.card-sub { font-size: 12px; color: #9CA3AF; margin-top: 2px; }
|
||
.card-body { padding: 20px; }
|
||
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
|
||
.form-group { }
|
||
.form-label { display: block; font-size: 13px; font-weight: 500; color: #374151; margin-bottom: 6px; }
|
||
.form-input, .form-select { width: 100%; padding: 9px 13px; border: 1.5px solid #E5E7EB; border-radius: 6px; font-size: 14px; font-family: 'Inter', sans-serif; color: #111827; background: #FFFFFF; outline: none; transition: border-color 0.15s; appearance: none; }
|
||
.form-input:focus, .form-select:focus { border-color: #4F46E5; box-shadow: 0 0 0 3px rgba(79,70,229,0.08); }
|
||
.col-span-2 { grid-column: 1 / -1; }
|
||
|
||
/* LOGO UPLOAD */
|
||
.logo-upload { border: 2px dashed #E5E7EB; border-radius: 8px; padding: 24px; text-align: center; cursor: pointer; transition: all 0.15s; }
|
||
.logo-upload:hover { border-color: #4F46E5; background: #FAFAFA; }
|
||
.logo-preview { width: 64px; height: 64px; background: #4F46E5; border-radius: 10px; display: flex; align-items: center; justify-content: center; margin: 0 auto 12px; color: #FFF; font-size: 20px; font-weight: 700; }
|
||
.logo-upload-hint { font-size: 13px; color: #6B7280; margin-bottom: 4px; }
|
||
.logo-upload-sub { font-size: 12px; color: #9CA3AF; }
|
||
.btn-upload { display: inline-flex; padding: 6px 14px; border: 1.5px solid #E5E7EB; border-radius: 6px; background: #FFFFFF; color: #374151; font-size: 13px; cursor: pointer; margin-top: 8px; }
|
||
|
||
/* WORK HOURS */
|
||
.work-days { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
|
||
.day-toggle { display: flex; align-items: center; gap: 6px; padding: 6px 12px; border: 1.5px solid #E5E7EB; border-radius: 6px; cursor: pointer; font-size: 13px; font-weight: 500; color: #374151; transition: all 0.15s; }
|
||
.day-toggle input[type="checkbox"] { accent-color: #4F46E5; }
|
||
.day-toggle.active { border-color: #4F46E5; background: #EEF2FF; color: #4F46E5; }
|
||
|
||
/* SAVE BUTTON */
|
||
.btn-save { padding: 10px 24px; background: #4F46E5; color: #FFF; border: none; border-radius: 6px; font-size: 14px; font-weight: 600; cursor: pointer; transition: background 0.15s; }
|
||
.btn-save:hover { background: #4338CA; }
|
||
.btn-cancel { padding: 10px 18px; border: 1.5px solid #E5E7EB; border-radius: 6px; background: #FFFFFF; color: #374151; font-size: 14px; cursor: pointer; margin-right: 8px; }
|
||
|
||
.page-header { font-size: 22px; font-weight: 700; padding: 28px 28px 0; margin-bottom: 0; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<aside class="sidebar">
|
||
<div class="sidebar-logo"><div class="logo-icon"><svg viewBox="0 0 24 24" fill="none" stroke="#FFFFFF" stroke-width="2"><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>HR Portal</div>
|
||
<nav class="sidebar-nav">
|
||
<a href="04-admin-dashboard.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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 href="05-employee-directory.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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 href="08-department-management.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>Departments</a>
|
||
<a href="09-leave-requests.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>Leave Management<span class="nav-badge">7</span></a>
|
||
<a href="11-attendance.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>Attendance</a>
|
||
<a href="12-payroll-dashboard.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="5" width="20" height="14" rx="2"/><line x1="2" y1="10" x2="22" y2="10"/></svg>Payroll</a>
|
||
<a href="13-recruitment.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="7" width="20" height="14" rx="2" ry="2"/><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/></svg>Recruitment</a>
|
||
<a href="14-expense-claims.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>Expense Claims</a>
|
||
<a href="15-performance-reviews.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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>Performance</a>
|
||
<a href="16-reports.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21.21 15.89A10 10 0 1 1 8 2.83"/><path d="M22 12A10 10 0 0 0 12 2v10z"/></svg>Reports</a>
|
||
<a href="20-org-chart.html" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="9" y="1" width="6" height="5" rx="1"/><rect x="1" y="14" width="6" height="5" rx="1"/><rect x="17" y="14" width="6" height="5" rx="1"/><path d="M4 14v-4a1 1 0 0 1 1-1h14a1 1 0 0 1 1 1v4"/><line x1="12" y1="6" x2="12" y2="9"/></svg>Org Chart</a>
|
||
<a href="#" class="nav-item"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>Announcements</a>
|
||
<a href="17-settings.html" class="nav-item active"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/><path d="M19.07 4.93l-1.41 1.41M4.93 4.93l1.41 1.41M12 2v2M12 20v2M2 12h2M20 12h2M17.66 17.66l-1.41-1.41M6.34 17.66l1.41-1.41"/></svg>Settings</a>
|
||
</nav>
|
||
<div class="sidebar-footer">
|
||
<div class="user-row"><div class="user-avatar">SC</div><div><div class="user-name">Sarah Chen</div><div class="user-role">HR Administrator</div></div></div>
|
||
<button class="logout-btn">Sign Out</button>
|
||
</div>
|
||
</aside>
|
||
|
||
<div class="main-wrapper">
|
||
<header class="topnav">
|
||
<div class="breadcrumb">
|
||
<a href="04-admin-dashboard.html">Home</a>
|
||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="9 18 15 12 9 6"/></svg>
|
||
<span>Settings</span>
|
||
</div>
|
||
<div class="topnav-actions">
|
||
<div class="icon-btn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 17H2a3 3 0 0 0 3-3V9a7 7 0 0 1 14 0v5a3 3 0 0 0 3 3zm-8.27 4a2 2 0 0 1-3.46 0"/></svg><span class="notif-badge">3</span></div>
|
||
<div class="topnav-avatar">SC</div>
|
||
</div>
|
||
</header>
|
||
|
||
<div class="content">
|
||
<div class="page-header">Settings</div>
|
||
<div class="settings-layout">
|
||
<!-- SETTINGS SUB-NAV -->
|
||
<div class="settings-subnav">
|
||
<div class="subnav-title">General</div>
|
||
<div class="subnav-item active">
|
||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
|
||
Company Profile
|
||
</div>
|
||
<div class="subnav-item">
|
||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><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 Settings
|
||
</div>
|
||
<div class="subnav-item">
|
||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/></svg>
|
||
Work Hours
|
||
</div>
|
||
<div class="subnav-title" style="margin-top:16px;">System</div>
|
||
<div class="subnav-item">
|
||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M22 17H2a3 3 0 0 0 3-3V9a7 7 0 0 1 14 0v5a3 3 0 0 0 3 3zm-8.27 4a2 2 0 0 1-3.46 0"/></svg>
|
||
Notifications
|
||
</div>
|
||
<div class="subnav-item">
|
||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>
|
||
Integrations
|
||
</div>
|
||
</div>
|
||
|
||
<!-- SETTINGS CONTENT -->
|
||
<div class="settings-content">
|
||
<div class="settings-section">
|
||
<div class="section-header">
|
||
<div class="section-title">Company Profile</div>
|
||
<div class="section-sub">Update your company information and branding</div>
|
||
</div>
|
||
|
||
<!-- LOGO UPLOAD -->
|
||
<div class="card">
|
||
<div class="card-header-row">
|
||
<div class="card-title">Company Logo</div>
|
||
<div class="card-sub">Appears on payslips, emails, and the employee portal</div>
|
||
</div>
|
||
<div class="card-body">
|
||
<div class="logo-upload">
|
||
<div class="logo-preview">TF</div>
|
||
<div class="logo-upload-hint">Drag and drop your logo here, or click to browse</div>
|
||
<div class="logo-upload-sub">PNG, JPG, or SVG. Max 2MB. Recommended: 200×200px</div>
|
||
<button class="btn-upload">Upload Logo</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- COMPANY INFO -->
|
||
<div class="card">
|
||
<div class="card-header-row">
|
||
<div class="card-title">Company Information</div>
|
||
</div>
|
||
<div class="card-body">
|
||
<div class="form-grid">
|
||
<div class="form-group col-span-2">
|
||
<label class="form-label">Company Name</label>
|
||
<input class="form-input" type="text" value="TechFlow Inc.">
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="form-label">Industry</label>
|
||
<select class="form-select">
|
||
<option selected>Technology</option>
|
||
<option>Finance</option>
|
||
<option>Healthcare</option>
|
||
<option>Manufacturing</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="form-label">Company Size</label>
|
||
<select class="form-select">
|
||
<option>1–10</option>
|
||
<option>11–50</option>
|
||
<option selected>51–200</option>
|
||
<option>201–500</option>
|
||
<option>500+</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="form-label">Country</label>
|
||
<select class="form-select">
|
||
<option selected>United States</option>
|
||
<option>United Kingdom</option>
|
||
<option>India</option>
|
||
<option>Canada</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="form-label">Timezone</label>
|
||
<select class="form-select">
|
||
<option selected>PST (UTC-8)</option>
|
||
<option>EST (UTC-5)</option>
|
||
<option>IST (UTC+5:30)</option>
|
||
<option>GMT (UTC+0)</option>
|
||
</select>
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="form-label">Phone</label>
|
||
<input class="form-input" type="tel" value="+1 (415) 555-0100">
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="form-label">Website</label>
|
||
<input class="form-input" type="url" value="https://techflow.com">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- WORK HOURS -->
|
||
<div class="card">
|
||
<div class="card-header-row">
|
||
<div class="card-title">Default Work Hours</div>
|
||
<div class="card-sub">Standard working days and hours for attendance tracking</div>
|
||
</div>
|
||
<div class="card-body">
|
||
<div style="font-size:13px;font-weight:500;color:#374151;margin-bottom:10px;">Working Days</div>
|
||
<div class="work-days">
|
||
<label class="day-toggle active"><input type="checkbox" checked> Mon</label>
|
||
<label class="day-toggle active"><input type="checkbox" checked> Tue</label>
|
||
<label class="day-toggle active"><input type="checkbox" checked> Wed</label>
|
||
<label class="day-toggle active"><input type="checkbox" checked> Thu</label>
|
||
<label class="day-toggle active"><input type="checkbox" checked> Fri</label>
|
||
<label class="day-toggle"><input type="checkbox"> Sat</label>
|
||
<label class="day-toggle"><input type="checkbox"> Sun</label>
|
||
</div>
|
||
<div class="form-grid">
|
||
<div class="form-group">
|
||
<label class="form-label">Work Start Time</label>
|
||
<input class="form-input" type="time" value="09:00">
|
||
</div>
|
||
<div class="form-group">
|
||
<label class="form-label">Work End Time</label>
|
||
<input class="form-input" type="time" value="18:00">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div style="display:flex;justify-content:flex-end;margin-top:8px;">
|
||
<button class="btn-cancel">Discard Changes</button>
|
||
<button class="btn-save">Save Settings</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</body>
|
||
</html>
|