:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:#f8fafc;min-height:100vh;color:#333}.app{display:flex;min-height:100vh;width:100vw;background:#f8fafc}.sidebar{width:280px;min-width:80px;max-width:320px;flex-shrink:0;background:linear-gradient(180deg,#1e293b,#334155);color:#fff;display:flex;flex-direction:column;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 20px #0000001a;position:relative;z-index:1000}.sidebar.collapsed{width:80px}.sidebar-header{padding:24px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1)}.logo{display:flex;align-items:center;gap:12px}.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;color:#fff;box-shadow:0 4px 12px #3b82f64d}.logo-text{font-size:20px;font-weight:700;background:linear-gradient(135deg,#60a5fa,#3b82f6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.collapse-btn{background:#ffffff1a;border:none;color:#fff;width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease}.collapse-btn:hover{background:#fff3;transform:scale(1.05)}.sidebar-nav{flex:1;padding:20px 0;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 20px;margin:0 12px;border-radius:12px;background:transparent;border:none;color:#ffffffb3;cursor:pointer;transition:all .2s ease;font-size:14px;font-weight:500}.nav-item:hover{background:#ffffff1a;color:#fff;transform:translate(4px)}.nav-item.active{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;box-shadow:0 4px 12px #3b82f64d}.nav-item svg{flex-shrink:0}.sidebar-footer{padding:20px;border-top:1px solid rgba(255,255,255,.1)}.user-profile{display:flex;align-items:center;gap:12px}.user-avatar{width:40px;height:40px;background:#ffffff1a;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff}.user-info{flex:1;min-width:0}.user-name{font-size:14px;font-weight:600;color:#fff;margin-bottom:2px}.user-role{font-size:12px;color:#fff9}.main-content{flex:1;width:100%;min-width:0;display:flex;flex-direction:column;background:#f8fafc}.top-header{background:#fff;padding:20px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000000d}.header-left{display:flex;align-items:center;gap:16px}.page-title{font-size:28px;font-weight:700;color:#1e293b;margin:0}.header-right{display:flex;align-items:center;gap:16px}.notification-btn{position:relative;background:#f1f5f9;border:none;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;transition:all .2s ease}.notification-btn:hover{background:#e2e8f0;color:#475569;transform:scale(1.05)}.notification-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:10px;font-weight:600;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}.user-menu{display:flex;align-items:center;gap:12px;padding:8px 16px;background:#f8fafc;border-radius:12px;cursor:pointer;transition:all .2s ease}.user-menu:hover{background:#f1f5f9}.user-avatar-small{width:32px;height:32px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}.user-name-small{font-size:14px;font-weight:600;color:#475569}.content-area{flex:1;width:100%;min-width:0;box-sizing:border-box;padding:32px;margin:0;overflow-y:auto}@media (max-width: 1024px){.sidebar{position:fixed;left:0;top:0;height:100vh;transform:translate(-100%);z-index:1000}.sidebar.open{transform:translate(0)}.main-content{margin-left:0}}@media (max-width: 768px){.top-header{padding:16px 20px}.page-title{font-size:24px}.content-area{padding:20px}.user-name-small{display:none}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.fade-in{animation:fadeIn .3s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-in{animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(-20px);opacity:0}to{transform:translate(0);opacity:1}}.glass-effect{background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.shadow-sm{box-shadow:0 1px 2px #0000000d}.shadow-md{box-shadow:0 4px 6px #00000012}.shadow-lg{box-shadow:0 10px 15px #0000001a}.rounded-lg{border-radius:12px}.rounded-xl{border-radius:16px}.employee-management{width:100%;padding:32px}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;padding:24px 0;border-bottom:1px solid #e2e8f0}.header-content{flex:1}.page-title{font-size:28px;font-weight:700;color:#1e293b;margin-bottom:8px}.page-subtitle{font-size:16px;color:#64748b;margin:0}.header-actions{display:flex;gap:12px}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:32px}.stat-item{background:#fff;padding:24px;border-radius:12px;text-align:center;box-shadow:0 2px 8px #0000000f;border:1px solid #f1f5f9;transition:all .2s ease}.stat-item:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.stat-number{font-size:32px;font-weight:700;color:#3b82f6;margin-bottom:8px}.stat-label{font-size:14px;color:#64748b;font-weight:500}.filters-section{display:flex;align-items:center;gap:20px;margin-bottom:24px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;border:1px solid #f1f5f9}.search-box{position:relative;flex:1;max-width:400px}.search-box svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af}.search-input{width:100%;padding:12px 12px 12px 40px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;transition:all .2s ease}.search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.filters{display:flex;gap:16px}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-label{font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px}.filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;min-width:140px;transition:all .2s ease}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;border:1px solid #f1f5f9;overflow:hidden}.table-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #f1f5f9;background:#f8fafc}.table-title{font-size:18px;font-weight:600;color:#1e293b}.table-actions{display:flex;gap:12px}.table-wrapper{overflow-x:auto}.employees-table{width:100%;border-collapse:collapse}.employees-table th{background:#f8fafc;padding:16px 20px;text-align:left;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e2e8f0}.employees-table td{padding:16px 20px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.table-row{transition:all .2s ease}.table-row:hover{background:#f8fafc}.employee-cell{min-width:250px}.employee-info{display:flex;align-items:center;gap:12px}.employee-avatar{width:40px;height:40px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:14px}.employee-details{flex:1;min-width:0}.employee-name{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:2px}.employee-email{font-size:12px;color:#6b7280}.department-badge,.status-badge{padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.position-cell{font-size:14px;color:#374151;font-weight:500}.date-cell{font-size:14px;color:#6b7280}.actions-cell{width:120px}.action-buttons{display:flex;gap:8px}.action-btn{width:32px;height:32px;border:none;background:#f3f4f6;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#6b7280;cursor:pointer;transition:all .2s ease}.action-btn:hover{background:#e5e7eb;color:#374151;transform:scale(1.05)}.empty-state{text-align:center;padding:60px 20px;color:#6b7280}.empty-icon{font-size:48px;margin-bottom:16px}.empty-state h3{font-size:18px;font-weight:600;color:#374151;margin-bottom:8px}.empty-state p{font-size:14px;color:#9ca3af}.pagination{display:flex;align-items:center;justify-content:space-between;margin-top:24px;padding:20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000000f;border:1px solid #f1f5f9}.pagination-info{font-size:14px;color:#6b7280}.pagination-controls{display:flex;gap:8px}.pagination-btn{padding:8px 12px;border:1px solid #d1d5db;background:#fff;border-radius:6px;font-size:14px;color:#374151;cursor:pointer;transition:all .2s ease;min-width:40px}.pagination-btn:hover:not(:disabled){background:#f3f4f6;border-color:#9ca3af}.pagination-btn.active{background:#3b82f6;border-color:#3b82f6;color:#fff}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.bg-green-100{background:#dcfce7}.text-green-800{color:#166534}.bg-orange-100{background:#fed7aa}.text-orange-800{color:#9a3412}.bg-red-100{background:#fee2e2}.text-red-800{color:#991b1b}.bg-blue-100{background:#dbeafe}.text-blue-800{color:#1e40af}.bg-purple-100{background:#f3e8ff}.text-purple-800{color:#6b21a8}.bg-pink-100{background:#fce7f3}.text-pink-800{color:#be185d}.bg-yellow-100{background:#fef3c7}.text-yellow-800{color:#92400e}.bg-gray-100{background:#f3f4f6}.text-gray-800{color:#1f2937}@media (max-width: 1024px){.filters-section{flex-direction:column;align-items:stretch;gap:16px}.search-box{max-width:none}.filters{justify-content:space-between}}@media (max-width: 768px){.page-header{flex-direction:column;align-items:flex-start;gap:16px}.stats-row{grid-template-columns:repeat(2,1fr)}.filters{flex-direction:column}.table-wrapper{font-size:12px}.employees-table th,.employees-table td{padding:12px 16px}.employee-cell{min-width:200px}.pagination{flex-direction:column;gap:16px;text-align:center}}.attendance-tracking{width:100%;padding:32px}.stat-subtitle{font-size:12px;color:#9ca3af;margin:0}.date-picker{position:relative;display:flex;align-items:center;gap:8px;padding:12px 16px;background:#fff;border:1px solid #d1d5db;border-radius:8px;min-width:200px}.date-picker svg{color:#6b7280}.date-input{border:none;background:transparent;font-size:14px;color:#374151;outline:none;cursor:pointer}.attendance-table{width:100%;border-collapse:collapse}.attendance-table th{background:#f8fafc;padding:16px 20px;text-align:left;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e2e8f0}.attendance-table td{padding:16px 20px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.time-cell{min-width:120px}.time-info{display:flex;align-items:center;gap:8px;font-size:14px;color:#374151;font-weight:500}.time-info svg{color:#6b7280;width:16px;height:16px}.hours-cell{min-width:100px}.hours-badge{background:#f0f9ff;color:#0369a1;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600}.quick-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-top:32px}.action-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px #00000014;border:1px solid #f1f5f9;transition:all .3s ease;display:flex;align-items:center;gap:20px}.action-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0000001f}.action-icon{width:60px;height:60px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:16px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.action-content{flex:1}.action-content h3{font-size:18px;font-weight:600;color:#1e293b;margin-bottom:8px}.action-content p{font-size:14px;color:#64748b;margin-bottom:16px;line-height:1.5}@media (max-width: 768px){.quick-actions{grid-template-columns:1fr}.action-card{flex-direction:column;text-align:center}.time-info{flex-direction:column;gap:4px}.attendance-table th,.attendance-table td{padding:12px 16px}}.leave-management{width:100%;padding:32px}.employee-reason{font-size:11px;color:#9ca3af;margin-top:2px}.leave-table{width:100%;border-collapse:collapse}.leave-table th{background:#f8fafc;padding:16px 20px;text-align:left;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e2e8f0}.leave-table td{padding:16px 20px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.date-cell{font-size:14px;color:#374151;font-weight:500}.days-cell{min-width:100px}.days-badge{background:#f0f9ff;color:#0369a1;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600}.type-badge{padding:4px 8px;border-radius:6px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.action-btn.approve{background:#dcfce7;color:#166534}.action-btn.approve:hover{background:#bbf7d0;color:#15803d}.action-btn.reject{background:#fee2e2;color:#991b1b}.action-btn.reject:hover{background:#fecaca;color:#dc2626}@media (max-width: 768px){.leave-table th,.leave-table td{padding:12px 16px}.employee-reason{display:none}}.recruitment{width:100%;padding:32px}.position-cell{min-width:250px}.position-info{display:flex;flex-direction:column;gap:4px}.position-title{font-size:14px;font-weight:600;color:#1e293b}.position-salary{font-size:12px;color:#6b7280}.location-cell{font-size:14px;color:#374151;font-weight:500}.type-cell{font-size:14px;color:#6b7280}.applications-cell{min-width:100px}.applications-badge{background:#f0f9ff;color:#0369a1;padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600}.candidates-section{margin-top:32px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.section-title{font-size:20px;font-weight:600;color:#1e293b;margin:0}.candidates-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.candidate-card{background:#fff;border-radius:16px;padding:20px;box-shadow:0 4px 20px #00000014;border:1px solid #f1f5f9;transition:all .3s ease}.candidate-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0000001f}.candidate-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.candidate-avatar{width:48px;height:48px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:16px}.candidate-rating{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:600;color:#f59e0b}.candidate-info{margin-bottom:16px}.candidate-name{font-size:16px;font-weight:600;color:#1e293b;margin-bottom:4px}.candidate-position{font-size:14px;color:#374151;margin-bottom:4px}.candidate-experience{font-size:12px;color:#6b7280}.candidate-footer{display:flex;align-items:center;justify-content:space-between}.applied-date{font-size:12px;color:#9ca3af}.jobs-table{width:100%;border-collapse:collapse}.jobs-table th{background:#f8fafc;padding:16px 20px;text-align:left;font-size:12px;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid #e2e8f0}.jobs-table td{padding:16px 20px;border-bottom:1px solid #f1f5f9;vertical-align:middle}@media (max-width: 768px){.candidates-grid{grid-template-columns:1fr}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.jobs-table th,.jobs-table td{padding:12px 16px}.position-cell{min-width:200px}}.collapse-btn svg{color:#fff!important;stroke:#fff!important;fill:none!important;width:20px;height:20px;display:inline-block}.collapse-btn:hover svg{color:#60a5fa!important;stroke:#60a5fa!important}.dashboard,.employee-management,.attendance-tracking,.leave-management,.recruitment{width:100%;max-width:none!important;margin:0!important;padding:0!important;box-sizing:border-box}.main-content,.content-area{width:100%;min-width:0}.content-area{padding:32px}.dashboard{max-width:1400px;margin:0 auto}.welcome-section{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:20px;padding:32px;margin-bottom:32px;display:flex;align-items:center;justify-content:space-between;color:#fff;box-shadow:0 20px 40px #667eea33}.welcome-content{flex:1}.welcome-title{font-size:32px;font-weight:700;margin-bottom:8px;background:linear-gradient(135deg,#fff,#f0f4ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-subtitle{font-size:16px;opacity:.9;font-weight:400}.welcome-actions{display:flex;gap:12px}.btn-primary{background:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;padding:12px 24px;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.btn-primary:hover{background:#ffffff4d;transform:translateY(-2px);box-shadow:0 8px 20px #0000001a}.btn-secondary{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff;padding:12px 24px;border-radius:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover{background:#ffffff1a;transform:translateY(-2px)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-bottom:32px}.stat-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px #00000014;transition:all .3s ease;border:1px solid #f1f5f9;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--stat-color) 0%,var(--stat-color-light) 100%)}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 40px #0000001f}.stat-card.stat-blue{--stat-color: #3b82f6;--stat-color-light: #60a5fa}.stat-card.stat-green{--stat-color: #10b981;--stat-color-light: #34d399}.stat-card.stat-orange{--stat-color: #f59e0b;--stat-color-light: #fbbf24}.stat-card.stat-purple{--stat-color: #8b5cf6;--stat-color-light: #a78bfa}.stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--stat-color) 0%,var(--stat-color-light) 100%);box-shadow:0 4px 12px #0000001a}.stat-trend{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:600;padding:6px 12px;border-radius:20px}.stat-trend-up{color:#10b981;background:#d1fae5}.stat-trend-down{color:#ef4444;background:#fee2e2}.stat-content{text-align:left}.stat-title{font-size:14px;color:#64748b;font-weight:500;margin-bottom:8px}.stat-value{font-size:32px;font-weight:700;color:#1e293b;margin:0}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.dashboard-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 4px 20px #00000014;border:1px solid #f1f5f9;transition:all .3s ease}.dashboard-card:hover{transform:translateY(-2px);box-shadow:0 8px 30px #0000001f}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.card-title{font-size:18px;font-weight:600;color:#1e293b;margin:0}.btn-text{background:none;border:none;color:#3b82f6;font-weight:500;cursor:pointer;padding:8px 12px;border-radius:8px;transition:all .2s ease}.btn-text:hover{background:#f0f9ff;color:#1d4ed8}.activity-card{grid-column:1 / -1}.activity-list{display:flex;flex-direction:column;gap:16px}.activity-item{display:flex;align-items:flex-start;gap:16px;padding:16px;border-radius:12px;transition:all .2s ease}.activity-item:hover{background:#f8fafc}.activity-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.activity-content{flex:1}.activity-message{font-size:14px;color:#374151;margin-bottom:4px;font-weight:500}.activity-time{font-size:12px;color:#9ca3af}.quick-stats{display:flex;flex-direction:column;gap:20px}.quick-stat{display:flex;flex-direction:column;gap:8px}.quick-stat-label{font-size:14px;font-weight:500;color:#374151}.quick-stat-bar{height:8px;background:#f1f5f9;border-radius:4px;overflow:hidden}.quick-stat-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa);border-radius:4px;transition:width .3s ease}.quick-stat-value{font-size:12px;color:#6b7280;font-weight:500}.events-list{display:flex;flex-direction:column;gap:16px}.event-item{display:flex;align-items:center;gap:16px;padding:16px;border-radius:12px;transition:all .2s ease;border:1px solid #f1f5f9}.event-item:hover{background:#f8fafc;border-color:#e2e8f0;transform:translate(4px)}.event-date{text-align:center;min-width:60px}.event-day{font-size:20px;font-weight:700;color:#3b82f6;line-height:1}.event-month{font-size:12px;color:#6b7280;font-weight:500;text-transform:uppercase}.event-content{flex:1}.event-title{font-size:14px;font-weight:600;color:#1e293b;margin-bottom:4px}.event-time{font-size:12px;color:#6b7280;margin-bottom:2px}.event-location{font-size:12px;color:#9ca3af}.chart-card{grid-column:1 / -1}.chart-legend{display:flex;gap:16px}.legend-item{display:flex;align-items:center;gap:8px;font-size:12px;color:#6b7280}.legend-color{width:12px;height:12px;border-radius:2px}.legend-present{background:#3b82f6}.legend-absent{background:#ef4444}.chart-container{height:300px;display:flex;align-items:center;justify-content:center}.chart-placeholder{text-align:center;color:#9ca3af}.chart-placeholder svg{width:48px;height:48px;margin-bottom:16px;opacity:.5}.chart-placeholder p{font-size:16px;margin-bottom:8px;color:#6b7280}.chart-placeholder small{font-size:12px;color:#9ca3af}.text-green-600{color:#059669}.bg-green-50{background:#ecfdf5}.text-orange-600{color:#ea580c}.bg-orange-50{background:#fff7ed}.text-blue-600{color:#2563eb}.bg-blue-50{background:#eff6ff}.text-gray-600{color:#4b5563}.bg-gray-50{background:#f9fafb}@media (max-width: 1200px){.dashboard-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}@media (max-width: 768px){.welcome-section{flex-direction:column;gap:20px;text-align:center}.welcome-title{font-size:24px}.stats-grid{grid-template-columns:1fr}.dashboard-grid{gap:16px}.dashboard-card{padding:20px}.stat-value{font-size:28px}}.fade-in{animation:fadeIn .6s ease-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.loading{opacity:.6;pointer-events:none}.loading:after{content:"";position:absolute;top:50%;left:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border:2px solid #f3f4f6;border-top:2px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
