:root{--primary: #2563eb;--primary-dark: #1d4ed8;--primary-light: #dbeafe;--success: #16a34a;--success-light: #dcfce7;--warning: #d97706;--warning-light: #fef3c7;--danger: #dc2626;--danger-light: #fee2e2;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--sidebar-width: 250px;--sidebar-collapsed: 60px;--topbar-height: 56px;--radius: 8px;--shadow: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.5;color:var(--gray-900);background-color:var(--gray-50)}*{box-sizing:border-box;margin:0;padding:0}body{margin:0;min-height:100vh}#root{min-height:100vh}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--gray-900);color:#fff;display:flex;flex-direction:column;transition:width .2s;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-header{display:flex;align-items:center;gap:10px;padding:16px;border-bottom:1px solid var(--gray-700)}.app-title{font-weight:700;font-size:16px;flex:1}.sidebar-toggle{background:none;border:none;color:var(--gray-400);cursor:pointer;padding:4px}.sidebar-toggle:hover{color:#fff}.sidebar-nav{flex:1;overflow-y:auto;padding:8px}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 12px;color:var(--gray-300);text-decoration:none;border-radius:var(--radius);font-size:14px;transition:all .15s}.nav-item:hover{background:var(--gray-700);color:#fff}.nav-item.active{background:var(--primary);color:#fff}.sidebar-footer{padding:8px;border-top:1px solid var(--gray-700)}.main-content{flex:1;margin-left:var(--sidebar-width);transition:margin-left .2s}.sidebar.collapsed~.main-content{margin-left:var(--sidebar-collapsed)}.top-bar{height:var(--topbar-height);background:#fff;border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:50}.top-bar-right{display:flex;align-items:center;gap:12px}.profile-menu-wrapper{position:relative}.profile-button{display:flex;align-items:center;gap:8px;background:none;border:1px solid var(--gray-200);border-radius:var(--radius);padding:6px 12px;cursor:pointer;color:var(--gray-700)}.profile-button:hover{background:var(--gray-50)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.avatar.lg{width:64px;height:64px;font-size:20px}.profile-name{font-size:14px;font-weight:500}.profile-dropdown{position:absolute;top:100%;right:0;margin-top:4px;background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow-md);min-width:180px;padding:4px;z-index:200}.dropdown-item{display:flex;align-items:center;gap:8px;padding:8px 12px;color:var(--gray-700);text-decoration:none;border-radius:4px;font-size:14px;cursor:pointer;background:none;border:none;width:100%;text-align:left}.dropdown-item:hover{background:var(--gray-100)}.dropdown-item.logout{color:var(--danger)}.page-content{padding:24px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-header h1{font-size:24px;font-weight:700;color:var(--gray-900)}.card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)}.stat-card .stat-label{font-size:13px;color:var(--gray-500);margin-bottom:4px}.stat-card .stat-value{font-size:28px;font-weight:700;color:var(--gray-900)}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{text-align:left;padding:12px 16px;background:var(--gray-50);border-bottom:2px solid var(--gray-200);font-weight:600;color:var(--gray-600);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.data-table td{padding:12px 16px;border-bottom:1px solid var(--gray-100);color:var(--gray-700)}.data-table tr:hover td{background:var(--gray-50)}.data-table tr{cursor:pointer}.employee-cell{display:flex;align-items:center;gap:12px}.employee-cell .avatar{width:36px;height:36px;font-size:12px}.employee-cell .name{font-weight:600;color:var(--gray-900)}.employee-cell .title{font-size:12px;color:var(--gray-500)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:14px;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all .15s;text-decoration:none}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-dark)}.btn-secondary{background:#fff;color:var(--gray-700);border-color:var(--gray-300)}.btn-secondary:hover{background:var(--gray-50)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-sm{padding:4px 10px;font-size:12px}.btn-icon{padding:6px;border-radius:6px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--gray-700);margin-bottom:4px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;color:var(--gray-900);background:#fff;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.tabs{display:flex;gap:0;border-bottom:2px solid var(--gray-200);margin-bottom:20px}.tab{padding:10px 20px;font-size:14px;font-weight:500;color:var(--gray-500);cursor:pointer;border:none;background:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .15s}.tab:hover{color:var(--gray-700)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:500}.badge-success{background:var(--success-light);color:var(--success)}.badge-warning{background:var(--warning-light);color:var(--warning)}.badge-danger{background:var(--danger-light);color:var(--danger)}.badge-primary{background:var(--primary-light);color:var(--primary)}.badge-gray{background:var(--gray-100);color:var(--gray-600)}.progress-bar{height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden}.progress-bar .progress-fill{height:100%;background:var(--primary);border-radius:4px;transition:width .3s}.progress-bar .progress-fill.success{background:var(--success)}.progress-bar .progress-fill.warning{background:var(--warning)}.progress-bar .progress-fill.danger{background:var(--danger)}.filter-bar{display:flex;gap:12px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.search-input{flex:1;min-width:240px;padding:8px 12px 8px 36px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%239ca3af' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") 10px center no-repeat}.search-input:focus{outline:none;border-color:var(--primary)}.filter-select{padding:8px 12px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;background:#fff;color:var(--gray-700)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:12px;box-shadow:0 20px 60px #0000004d;max-width:600px;width:90%;max-height:85vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--gray-200)}.modal-header h2{font-size:18px;font-weight:600}.modal-body{padding:20px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--gray-200)}.pagination{display:flex;align-items:center;justify-content:center;gap:4px;margin-top:20px}.pagination button{padding:6px 12px;border:1px solid var(--gray-300);background:#fff;border-radius:6px;font-size:13px;cursor:pointer;color:var(--gray-700)}.pagination button:hover{background:var(--gray-50)}.pagination button.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pagination button:disabled{opacity:.5;cursor:not-allowed}.org-chart-container{position:relative;width:100%;height:calc(100vh - 160px);overflow:auto;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius)}.org-chart-controls{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:4px;z-index:10}.org-node{display:inline-flex;flex-direction:column;align-items:center;gap:4px;background:#fff;border:2px solid var(--gray-200);border-radius:12px;padding:12px 16px;min-width:180px;box-shadow:var(--shadow);cursor:pointer;transition:all .15s}.org-node:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.org-node .node-name{font-weight:600;font-size:14px}.org-node .node-title{font-size:12px;color:var(--gray-500)}.org-node .node-dept{font-size:11px;color:var(--gray-400)}.timeline-container{overflow-x:auto}.timeline-grid{display:grid;min-width:100%;font-size:12px}.timeline-header{display:flex;background:var(--gray-100);border-bottom:2px solid var(--gray-200);position:sticky;top:0;z-index:5}.timeline-row{display:flex;border-bottom:1px solid var(--gray-100);min-height:36px}.timeline-name{width:160px;min-width:160px;padding:8px 12px;font-weight:500;background:#fff;border-right:1px solid var(--gray-200);position:sticky;left:0;z-index:3;display:flex;align-items:center}.timeline-cell{flex:1;min-width:30px;border-right:1px solid var(--gray-100);position:relative}.timeline-cell.weekend{background:var(--gray-50)}.timeline-cell.holiday{background:#fef3c7}.time-off-block{position:absolute;inset:4px 1px;border-radius:4px;font-size:10px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:500}.time-off-block.vacation{background:var(--primary)}.time-off-block.sick{background:var(--danger)}.time-off-block.holiday-block{background:var(--warning)}.time-off-block.pending{background:var(--primary);opacity:.5;border:2px dashed var(--primary)}.review-layout{display:grid;grid-template-columns:240px 1fr 260px;gap:20px;min-height:calc(100vh - 160px)}.review-sidebar{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:16px;overflow-y:auto}.review-main{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:24px;overflow-y:auto}.review-summary{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:16px}.review-employee-item{display:flex;align-items:center;gap:8px;padding:8px;border-radius:6px;cursor:pointer;font-size:13px}.review-employee-item:hover{background:var(--gray-50)}.review-employee-item.active{background:var(--primary-light);color:var(--primary)}.rating-group{display:flex;gap:8px;margin:8px 0}.rating-option{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 12px;border:2px solid var(--gray-200);border-radius:8px;cursor:pointer;font-size:12px;text-align:center;transition:all .15s;flex:1}.rating-option:hover{border-color:var(--primary)}.rating-option.selected{border-color:var(--primary);background:var(--primary-light)}.rating-option .rating-score{font-size:20px;font-weight:700}.score-summary-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--gray-100);font-size:13px}.score-value{font-weight:700;font-size:16px}.overall-score{text-align:center;padding:16px;border-top:2px solid var(--gray-200);margin-top:8px}.overall-score .score-value{font-size:32px;color:var(--primary)}.faq-container{display:grid;grid-template-columns:240px 1fr;gap:20px}.faq-categories{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:12px}.faq-category-item{padding:8px 12px;border-radius:6px;cursor:pointer;font-size:14px;color:var(--gray-700)}.faq-category-item:hover{background:var(--gray-50)}.faq-category-item.active{background:var(--primary-light);color:var(--primary);font-weight:500}.faq-item{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}.faq-question{padding:12px 16px;font-weight:500;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.faq-question:hover{background:var(--gray-50)}.faq-answer{padding:0 16px 16px;color:var(--gray-600);font-size:14px;line-height:1.6}.toggle{position:relative;display:inline-block;width:44px;height:24px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--gray-300);border-radius:24px;transition:.2s}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:.2s}.toggle input:checked+.toggle-slider{background:var(--primary)}.toggle input:checked+.toggle-slider:before{transform:translate(20px)}.course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.course-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);transition:box-shadow .15s}.course-card:hover{box-shadow:var(--shadow-md)}.course-card h3{font-size:16px;margin-bottom:8px}.course-card .meta{font-size:12px;color:var(--gray-500);display:flex;gap:12px;margin-bottom:12px}.login-page{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%)}.login-card{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:400px;box-shadow:0 20px 60px #0000004d}.login-card h1{text-align:center;margin-bottom:8px;font-size:24px}.login-card p{text-align:center;color:var(--gray-500);margin-bottom:24px;font-size:14px}.login-card .btn-primary{width:100%;justify-content:center;padding:10px;font-size:15px}.empty-state{text-align:center;padding:60px 20px;color:var(--gray-400)}.empty-state h3{font-size:18px;color:var(--gray-600);margin-bottom:8px}.empty-state p{font-size:14px}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-4{gap:16px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mt-4{margin-top:16px}.text-sm{font-size:14px}.text-xs{font-size:12px}.text-gray{color:var(--gray-500)}.font-bold{font-weight:700}.w-full{width:100%}.page-subtitle{font-size:14px;color:var(--gray-500);margin-top:4px}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.summary-card{background:#fff;border:1px solid var(--gray-200);border-left:4px solid var(--gray-300);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);cursor:pointer;transition:all .15s}.summary-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.summary-card--blue{border-left-color:var(--primary)}.summary-card--amber{border-left-color:var(--warning)}.summary-card--green{border-left-color:var(--success)}.summary-card--purple{border-left-color:#7c3aed}.summary-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.summary-card-label{font-size:13px;color:var(--gray-500);font-weight:500}.summary-card-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center}.summary-card-icon--blue{background:var(--primary-light);color:var(--primary)}.summary-card-icon--amber{background:var(--warning-light);color:var(--warning)}.summary-card-icon--green{background:var(--success-light);color:var(--success)}.summary-card-icon--purple{background:#ede9fe;color:#7c3aed}.summary-card-value{font-size:32px;font-weight:700;color:var(--gray-900);margin-bottom:12px;line-height:1}.summary-card-footer{display:flex;align-items:center;gap:4px;font-size:13px;color:var(--primary);font-weight:500}.dashboard-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:20px}.dashboard-section{background:#fff;border:1px solid var(--gray-200);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.section-title{font-size:16px;font-weight:600;color:var(--gray-900);display:flex;align-items:center;gap:8px}.btn-ghost{background:none;border:none;color:var(--primary);font-weight:500;cursor:pointer;padding:4px 10px;border-radius:var(--radius);font-size:12px}.btn-ghost:hover{background:var(--primary-light)}.activity-feed{display:flex;flex-direction:column}.activity-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--gray-100)}.activity-item:last-child{border-bottom:none}.activity-icon{width:32px;height:32px;min-width:32px;border-radius:50%;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center}.activity-content{flex:1;min-width:0}.activity-description{font-size:14px;color:var(--gray-700);margin-bottom:2px;line-height:1.4}.activity-time{font-size:12px;color:var(--gray-400)}.quick-links{display:flex;flex-direction:column;gap:4px}.quick-link-item{display:flex;align-items:center;gap:12px;padding:12px;border:none;background:none;border-radius:var(--radius);cursor:pointer;width:100%;text-align:left;transition:background .15s;font-size:14px;color:var(--gray-700)}.quick-link-item:hover{background:var(--gray-50)}.quick-link-icon{width:36px;height:36px;border-radius:8px;background:var(--gray-100);display:flex;align-items:center;justify-content:center;color:var(--gray-600)}.quick-link-label{flex:1;font-weight:500}.quick-link-arrow{color:var(--gray-400)}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton{background:var(--gray-200);border-radius:4px;animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-text{display:inline-block;height:16px;width:60%;border-radius:4px}.skeleton-circle{width:32px;height:32px;border-radius:50%}@media(max-width:1024px){.summary-cards{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media(max-width:640px){.summary-cards{grid-template-columns:1fr}}
