*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:#f5f7fa;color:#1a1a2e;line-height:1.6}.container{max-width:1200px;margin:0 auto;padding:20px}.card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #00000014;margin-bottom:20px}.btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 20px;border-radius:8px;font-weight:500;font-size:14px;cursor:pointer;border:none;transition:all .2s ease}.btn-primary{background:#4f46e5;color:#fff}.btn-primary:hover{background:#4338ca}.btn-secondary{background:#e5e7eb;color:#374151}.btn-secondary:hover{background:#d1d5db}.btn-success{background:#10b981;color:#fff}.btn-success:hover{background:#059669}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover{background:#dc2626}.btn-sm{padding:6px 12px;font-size:13px}.input{width:100%;padding:12px 16px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;transition:border-color .2s ease}.input:focus{outline:none;border-color:#4f46e5;box-shadow:0 0 0 3px #4f46e51a}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;font-size:14px;color:#374151}.badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500}.badge-pending{background:#fef3c7;color:#92400e}.badge-requested{background:#dbeafe;color:#1e40af}.badge-completed{background:#d1fae5;color:#065f46}.badge-rejected{background:#fee2e2;color:#991b1b}.badge-admin{background:#ede9fe;color:#5b21b6}.badge-employee{background:#e0e7ff;color:#3730a3}h1,h2,h3{color:#1a1a2e}h1{font-size:28px;font-weight:700}h2{font-size:22px;font-weight:600}h3{font-size:18px;font-weight:600}.text-muted{color:#6b7280}.text-sm{font-size:14px}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mt-4{margin-top:16px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;justify-content:center;align-items:center}.gap-2{gap:8px}.gap-3{gap:12px}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 768px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e5e7eb}.table th{background:#f9fafb;font-weight:600;font-size:13px;color:#6b7280;text-transform:uppercase}.table tr:hover{background:#f9fafb}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.alert-error{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.alert-success{background:#d1fae5;color:#065f46;border:1px solid #a7f3d0}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.stat-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014}.stat-card h3{font-size:14px;color:#6b7280;font-weight:500;margin-bottom:8px}.stat-card .value{font-size:32px;font-weight:700;color:#1a1a2e}.stat-card.pending .value{color:#f59e0b}.stat-card.requested .value{color:#3b82f6}.stat-card.completed .value{color:#10b981}.stat-card.total .value{color:#6366f1}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background:#fff;border-radius:12px;padding:24px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#6b7280}.tabs{display:flex;border-bottom:1px solid #e5e7eb;margin-bottom:20px}.tab{padding:12px 20px;border:none;background:none;font-size:14px;font-weight:500;color:#6b7280;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}.tab.active{color:#4f46e5;border-bottom-color:#4f46e5}.tab:hover{color:#4f46e5}
