:root{--primary-50: #eef2ff;--primary-100: #e0e7ff;--primary-200: #c7d2fe;--primary-300: #a5b4fc;--primary-400: #818cf8;--primary-500: #6366f1;--primary-600: #4f46e5;--primary-700: #4338ca;--primary-800: #3730a3;--primary-900: #312e81;--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;--gray-950: #0a0c10;--success-400: #4ade80;--success-500: #22c55e;--success-600: #16a34a;--warning-400: #facc15;--warning-500: #eab308;--warning-600: #ca8a04;--error-400: #f87171;--error-500: #ef4444;--error-600: #dc2626;--info-400: #38bdf8;--info-500: #0ea5e9;--info-600: #0284c7;--vacation-color: #8b5cf6;--absence-color: #f59e0b;--late-color: #ec4899;--trip-color: #06b6d4;--bg-primary: #0f1117;--bg-secondary: #161922;--bg-tertiary: #1e222c;--bg-elevated: #252a36;--bg-overlay: rgba(0, 0, 0, .7);--glass-bg: rgba(30, 34, 44, .8);--glass-border: rgba(255, 255, 255, .08);--glass-blur: blur(12px);--text-primary: #f9fafb;--text-secondary: #9ca3af;--text-tertiary: #6b7280;--text-inverse: #111827;--border-color: rgba(255, 255, 255, .08);--border-color-hover: rgba(255, 255, 255, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .5), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 8px 10px -6px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--spacing-1: .25rem;--spacing-2: .5rem;--spacing-3: .75rem;--spacing-4: 1rem;--spacing-5: 1.25rem;--spacing-6: 1.5rem;--spacing-8: 2rem;--spacing-10: 2.5rem;--spacing-12: 3rem;--spacing-16: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--sidebar-width: 260px;--sidebar-collapsed: 80px;--header-height: 72px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background:var(--bg-primary);height:100vh;overflow:hidden}.app-container{display:flex;height:100vh;overflow:hidden}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;height:100%;flex-shrink:0;z-index:100;transition:transform var(--transition-slow)}.sidebar-header{padding:var(--spacing-6);border-bottom:1px solid var(--border-color)}.logo{display:flex;align-items:center;gap:var(--spacing-3)}.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,var(--primary-500),var(--primary-700));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-glow)}.logo-icon svg{width:22px;height:22px;color:#fff}.logo-text{font-size:var(--font-size-xl);font-weight:700;background:linear-gradient(135deg,var(--primary-300),var(--primary-500));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-menu{flex:1;padding:var(--spacing-4);display:flex;flex-direction:column;gap:var(--spacing-2);overflow-y:auto}.nav-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-lg);transition:all var(--transition-base);position:relative}.nav-item svg{width:20px;height:20px;flex-shrink:0}.nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-item.active{background:linear-gradient(135deg,#6366f133,#6366f11a);color:var(--primary-400);font-weight:500}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--primary-500);border-radius:var(--radius-full)}.badge{margin-left:auto;background:var(--error-500);color:#fff;font-size:var(--font-size-xs);font-weight:600;padding:2px 8px;border-radius:var(--radius-full);min-width:22px;text-align:center}.badge:empty{display:none}.sidebar-footer{padding:var(--spacing-4);border-top:1px solid var(--border-color)}.user-info{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--spacing-3)}.user-avatar{width:40px;height:40px;background:linear-gradient(135deg,var(--primary-400),var(--primary-600));border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--font-size-sm)}.user-details{display:flex;flex-direction:column}.user-name{font-weight:500;font-size:var(--font-size-sm)}.user-role{font-size:var(--font-size-xs);color:var(--text-tertiary)}.role-switcher{display:flex;flex-direction:column;gap:var(--spacing-2)}.role-switcher label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.role-switcher select{width:100%;padding:var(--spacing-2) var(--spacing-3);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:border-color var(--transition-base)}.role-switcher select:hover{border-color:var(--border-color-hover)}.role-switcher select:focus{outline:none;border-color:var(--primary-500)}.main-content{flex:1;height:100vh;display:flex;flex-direction:column;overflow:hidden;position:relative;width:100%}.header{height:var(--header-height);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 var(--spacing-6);gap:var(--spacing-4);flex-shrink:0;z-index:50;width:100%}.menu-toggle{display:none;background:none;border:none;color:var(--text-primary);cursor:pointer;padding:var(--spacing-2);border-radius:var(--radius-md);transition:background var(--transition-base)}.menu-toggle:hover{background:var(--bg-tertiary)}.menu-toggle svg{width:24px;height:24px}.header-title{flex:1}.header-title h1{font-size:var(--font-size-xl);font-weight:600;margin-bottom:var(--spacing-1)}.header-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary)}.header-actions{display:flex;align-items:center;gap:var(--spacing-3)}.view{display:none;padding:var(--spacing-6);flex:1;overflow-y:auto;width:100%;margin:0 auto;padding-bottom:var(--spacing-16);animation:fadeIn var(--transition-base)}.view.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-6)}.stat-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-5);display:flex;align-items:center;gap:var(--spacing-4);transition:all var(--transition-base)}.stat-card:hover{transform:translateY(-2px);border-color:var(--border-color-hover);box-shadow:var(--shadow-lg)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center}.stat-icon svg{width:24px;height:24px}.stat-pending .stat-icon{background:#fbbf2426;color:var(--warning-400)}.stat-approved .stat-icon{background:#22c55e26;color:var(--success-400)}.stat-rejected .stat-icon{background:#ef444426;color:var(--error-400)}.stat-balance .stat-icon{background:#6366f126;color:var(--primary-400)}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:var(--font-size-2xl);font-weight:700}.stat-label{font-size:var(--font-size-sm);color:var(--text-tertiary)}.content-grid{display:grid;grid-template-columns:2fr 1fr;gap:var(--spacing-6)}.card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-xl);overflow:hidden}.card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4) var(--spacing-5);border-bottom:1px solid var(--border-color)}.card-header h3{font-size:var(--font-size-base);font-weight:600}.view-all{font-size:var(--font-size-sm);color:var(--primary-400);text-decoration:none;transition:color var(--transition-base)}.view-all:hover{color:var(--primary-300)}.card-body{padding:var(--spacing-5)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-8);text-align:center}.empty-state svg{width:64px;height:64px;color:var(--text-tertiary);margin-bottom:var(--spacing-4);opacity:.5}.empty-state p{color:var(--text-tertiary);margin-bottom:var(--spacing-4)}.action-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-3)}.action-btn{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2);padding:var(--spacing-4);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);color:var(--text-primary)}.action-btn:hover{background:var(--bg-elevated);border-color:var(--border-color-hover);transform:translateY(-2px)}.action-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.action-icon svg{width:22px;height:22px}.action-icon.vacation{background:#8b5cf626;color:var(--vacation-color)}.action-icon.absence{background:#f59e0b26;color:var(--absence-color)}.action-icon.late{background:#ec489926;color:var(--late-color)}.action-icon.business-trip{background:#06b6d426;color:var(--trip-color)}.action-btn span{font-size:var(--font-size-sm);font-weight:500}.filters-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-4);margin-bottom:var(--spacing-4);flex-wrap:wrap}.filter-group{display:flex;gap:var(--spacing-3);flex-wrap:wrap}.filter-group select{padding:var(--spacing-2) var(--spacing-4);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;min-width:160px;transition:border-color var(--transition-base)}.filter-group select:hover{border-color:var(--border-color-hover)}.filter-group select:focus{outline:none;border-color:var(--primary-500)}.search-box{position:relative;display:flex;align-items:center}.search-box svg{position:absolute;left:var(--spacing-3);width:18px;height:18px;color:var(--text-tertiary)}.search-box input{padding:var(--spacing-2) var(--spacing-4) var(--spacing-2) var(--spacing-10);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);width:280px;transition:border-color var(--transition-base)}.search-box input::placeholder{color:var(--text-tertiary)}.search-box input:focus{outline:none;border-color:var(--primary-500)}.request-list-container{display:flex;flex-direction:column;gap:var(--spacing-3)}@media(max-width:1024px){.content-grid{grid-template-columns:1fr}}@media(max-width:768px){.sidebar{position:absolute;transform:translate(-100%);height:100%;box-shadow:var(--shadow-xl)}.sidebar.open{transform:translate(0)}.main-content{width:100%}.menu-toggle{display:block}.search-box input{width:200px}}@media(max-width:480px){.header{padding:0 var(--spacing-4)}.view{padding:var(--spacing-4)}.stats-grid{grid-template-columns:1fr}.search-box{display:none}.action-buttons{grid-template-columns:1fr}}.profile-container{width:100%}.profile-header{display:flex;align-items:center;gap:var(--spacing-6);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-6);margin-bottom:var(--spacing-6)}.profile-picture-section{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-3)}.profile-picture-wrapper{width:120px;height:120px;border-radius:var(--radius-full);overflow:hidden;border:3px solid var(--primary-500);box-shadow:var(--shadow-lg),var(--shadow-glow)}.profile-picture-wrapper img{width:100%;height:100%;object-fit:cover}.profile-header-info h2{font-size:var(--font-size-3xl);font-weight:700;margin-bottom:var(--spacing-1)}.profile-position-text{font-size:var(--font-size-lg);color:var(--primary-400);font-weight:500;margin-bottom:var(--spacing-1)}.profile-dept-text{color:var(--text-tertiary)}.profile-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:var(--spacing-6)}.profile-section{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-6);height:100%}.profile-section-title{display:flex;align-items:center;gap:var(--spacing-2);font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-5);padding-bottom:var(--spacing-3);border-bottom:1px solid var(--border-color)}.profile-fields-list{display:flex;flex-direction:column;gap:var(--spacing-4)}.profile-field{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-2);border-bottom:1px solid rgba(255,255,255,.03)}.profile-field:last-child{border-bottom:none}.profile-field-label{color:var(--text-tertiary);font-size:var(--font-size-sm)}.profile-field-value{font-weight:500;color:var(--text-primary);text-align:right}.profile-field-value.warning{color:var(--warning-400)}@media(max-width:768px){.profile-header{flex-direction:column;text-align:center}.profile-details-grid{grid-template-columns:1fr}}.auth-wrapper{display:flex;justify-content:center;align-items:center;width:100vw;height:100vh;background:var(--bg-primary)}.auth-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-8);width:100%;max-width:440px;box-shadow:var(--shadow-xl);animation:fadeIn var(--transition-base)}.auth-header{margin-bottom:var(--spacing-6)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-2);padding:var(--spacing-2) var(--spacing-4);font-size:var(--font-size-sm);font-weight:500;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-base);white-space:nowrap}.btn svg{width:18px;height:18px}.btn-primary{background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:#fff;box-shadow:var(--shadow-md),0 0 20px #6366f133}.btn-primary:hover{background:linear-gradient(135deg,var(--primary-400),var(--primary-500));transform:translateY(-1px);box-shadow:var(--shadow-lg),var(--shadow-glow)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-elevated);border-color:var(--border-color-hover)}.btn-outline{background:transparent;color:var(--primary-400);border:1px solid var(--primary-500)}.btn-outline:hover{background:#6366f11a}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:linear-gradient(135deg,var(--error-500),var(--error-600));color:#fff}.btn-danger:hover{background:linear-gradient(135deg,var(--error-400),var(--error-500))}.btn-success{background:linear-gradient(135deg,var(--success-500),var(--success-600));color:#fff}.btn-success:hover{background:linear-gradient(135deg,var(--success-400),var(--success-500))}.btn-sm{padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs)}.btn-lg{padding:var(--spacing-3) var(--spacing-6);font-size:var(--font-size-base)}.modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:var(--spacing-4)}.modal.active{display:flex;animation:modalFadeIn var(--transition-base)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{position:relative;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-xl);width:100%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:modalSlideIn var(--transition-slow)}.modal-sm .modal-content,.modal-sm.modal-content{max-width:480px}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-4) var(--spacing-5);border-bottom:1px solid var(--border-color)}.modal-header h2{font-size:var(--font-size-lg);font-weight:600}.modal-close{background:none;border:none;color:var(--text-tertiary);font-size:var(--font-size-2xl);cursor:pointer;padding:var(--spacing-1);line-height:1;transition:color var(--transition-base)}.modal-close:hover{color:var(--text-primary)}.modal-body{padding:var(--spacing-5);overflow-y:auto;flex:1}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-3);padding:var(--spacing-4) var(--spacing-5);border-top:1px solid var(--border-color)}.request-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4);margin-top:var(--spacing-4)}.request-type-btn{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--spacing-5);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);color:var(--text-primary)}.request-type-btn:hover{background:var(--bg-elevated);border-color:var(--primary-500);transform:translateY(-2px)}.type-icon{width:56px;height:56px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-3)}.type-icon svg{width:28px;height:28px}.type-icon.vacation{background:#8b5cf626;color:var(--vacation-color)}.type-icon.absence{background:#f59e0b26;color:var(--absence-color)}.type-icon.late{background:#ec489926;color:var(--late-color)}.type-icon.business-trip{background:#06b6d426;color:var(--trip-color)}.type-name{font-weight:600;margin-bottom:var(--spacing-1)}.type-desc{font-size:var(--font-size-xs);color:var(--text-tertiary)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4)}.form-group{display:flex;flex-direction:column;gap:var(--spacing-2)}.form-group.full-width{grid-column:span 2}.form-group.hidden{display:none}.form-group label{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary)}.required{color:var(--error-400)}.form-group input[type=text],.form-group input[type=date],.form-group input[type=time],.form-group input[type=number],.form-group input[type=email],.form-group select,.form-group textarea{padding:var(--spacing-3);background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);font-family:inherit;transition:all var(--transition-base)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #6366f126}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{opacity:.6;cursor:not-allowed}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-tertiary)}.form-group textarea{resize:vertical;min-height:80px}.checkbox-group,.radio-group{display:flex;flex-wrap:wrap;gap:var(--spacing-4)}.checkbox-label,.radio-label{display:flex;align-items:center;gap:var(--spacing-2);cursor:pointer;font-size:var(--font-size-sm);color:var(--text-primary)}.checkbox-label input,.radio-label input{display:none}.checkbox-custom,.radio-custom{width:20px;height:20px;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all var(--transition-base)}.radio-custom{border-radius:var(--radius-full)}.checkbox-label input:checked+.checkbox-custom,.radio-label input:checked+.radio-custom{background:var(--primary-500);border-color:var(--primary-500)}.checkbox-custom:after{content:"✓";color:#fff;font-size:12px;opacity:0;transition:opacity var(--transition-fast)}.checkbox-label input:checked+.checkbox-custom:after{opacity:1}.radio-custom:after{content:"";width:8px;height:8px;background:#fff;border-radius:var(--radius-full);opacity:0;transition:opacity var(--transition-fast)}.radio-label input:checked+.radio-custom:after{opacity:1}.file-upload{position:relative}.file-upload input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.file-upload-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-2);padding:var(--spacing-5);background:var(--bg-tertiary);border:2px dashed var(--border-color);border-radius:var(--radius-lg);text-align:center;transition:all var(--transition-base)}.file-upload:hover .file-upload-content{border-color:var(--primary-500);background:#6366f10d}.file-upload-content svg{width:32px;height:32px;color:var(--text-tertiary)}.file-upload-content span{font-size:var(--font-size-sm);color:var(--text-tertiary)}.file-name{color:var(--primary-400)!important;font-weight:500}.request-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-4);transition:all var(--transition-base);cursor:pointer}.request-card:hover{border-color:var(--border-color-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.request-card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-3)}.request-card-type{display:flex;align-items:center;gap:var(--spacing-2)}.request-type-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.request-type-icon svg{width:18px;height:18px}.request-type-icon.vacation{background:#8b5cf626;color:var(--vacation-color)}.request-type-icon.absence{background:#f59e0b26;color:var(--absence-color)}.request-type-icon.late{background:#ec489926;color:var(--late-color)}.request-type-icon.business-trip{background:#06b6d426;color:var(--trip-color)}.request-type-info h4{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-1)}.request-type-info span{font-size:var(--font-size-xs);color:var(--text-tertiary)}.status-badge{display:inline-flex;align-items:center;gap:var(--spacing-1);padding:var(--spacing-1) var(--spacing-3);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full)}.status-badge.draft{background:#6b728026;color:var(--gray-400)}.status-badge.pending-dept,.status-badge.pending-gm{background:#fbbf2426;color:var(--warning-400)}.status-badge.approved{background:#22c55e26;color:var(--success-400)}.status-badge.rejected{background:#ef444426;color:var(--error-400)}.request-card-body{display:flex;flex-wrap:wrap;gap:var(--spacing-4);font-size:var(--font-size-sm);color:var(--text-secondary)}.request-card-body .detail{display:flex;align-items:center;gap:var(--spacing-1)}.request-card-body .detail svg{width:14px;height:14px;color:var(--text-tertiary)}.request-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:var(--spacing-3);padding-top:var(--spacing-3);border-top:1px solid var(--border-color)}.request-card-footer .employee-info{display:flex;align-items:center;gap:var(--spacing-2)}.employee-avatar{width:28px;height:28px;background:var(--primary-600);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:600}.employee-name{font-size:var(--font-size-sm);color:var(--text-secondary)}.request-card-actions{display:flex;gap:var(--spacing-2)}.request-details{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-4);margin-bottom:var(--spacing-5)}.detail-item{display:flex;flex-direction:column;gap:var(--spacing-1)}.detail-item.full-width{grid-column:span 2}.detail-label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:var(--font-size-sm);color:var(--text-primary)}.detail-value.highlight{color:var(--primary-400);font-weight:500}.workflow-timeline{background:var(--bg-tertiary);border-radius:var(--radius-lg);padding:var(--spacing-4)}.timeline-title{font-size:var(--font-size-sm);font-weight:600;margin-bottom:var(--spacing-4);color:var(--text-secondary)}.timeline-steps{display:flex;flex-direction:column;gap:var(--spacing-3)}.timeline-step{display:flex;align-items:flex-start;gap:var(--spacing-3);position:relative}.timeline-step:not(:last-child):after{content:"";position:absolute;left:14px;top:32px;width:2px;height:calc(100% + 12px);background:var(--border-color)}.timeline-step.completed:not(:last-child):after{background:var(--success-500)}.timeline-step.current:not(:last-child):after{background:linear-gradient(to bottom,var(--warning-500) 50%,var(--border-color) 50%)}.step-icon{width:30px;height:30px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border:2px solid var(--border-color);flex-shrink:0;z-index:1}.step-icon svg{width:14px;height:14px;color:var(--text-tertiary)}.timeline-step.completed .step-icon{background:var(--success-500);border-color:var(--success-500)}.timeline-step.completed .step-icon svg{color:#fff}.timeline-step.current .step-icon{background:var(--warning-500);border-color:var(--warning-500)}.timeline-step.current .step-icon svg{color:#fff}.timeline-step.rejected .step-icon{background:var(--error-500);border-color:var(--error-500)}.timeline-step.rejected .step-icon svg{color:#fff}.step-content{flex:1}.step-title{font-size:var(--font-size-sm);font-weight:500;margin-bottom:var(--spacing-1)}.step-meta{font-size:var(--font-size-xs);color:var(--text-tertiary)}.step-comment{margin-top:var(--spacing-2);padding:var(--spacing-2) var(--spacing-3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--text-secondary);font-style:italic}.toast-container{position:fixed;bottom:var(--spacing-6);right:var(--spacing-6);z-index:2000;display:flex;flex-direction:column;gap:var(--spacing-3)}.toast{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3) var(--spacing-4);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);min-width:300px;animation:toastSlideIn var(--transition-slow)}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast.hiding{animation:toastSlideOut var(--transition-slow) forwards}@keyframes toastSlideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.toast-icon svg{width:20px;height:20px}.toast.success .toast-icon{color:var(--success-400)}.toast.error .toast-icon{color:var(--error-400)}.toast.warning .toast-icon{color:var(--warning-400)}.toast.info .toast-icon{color:var(--info-400)}.toast-message{flex:1;font-size:var(--font-size-sm)}.toast-close{background:none;border:none;color:var(--text-tertiary);cursor:pointer;padding:var(--spacing-1);transition:color var(--transition-base)}.toast-close:hover{color:var(--text-primary)}#nav-pending-approvals,#nav-all-requests{display:none}body.role-dept-manager #nav-pending-approvals,body.role-general-manager #nav-pending-approvals,body.role-general-manager #nav-all-requests{display:flex}.request-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.request-list-item{display:flex;align-items:center;gap:var(--spacing-3);padding:var(--spacing-3);background:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base)}.request-list-item:hover{background:var(--bg-elevated)}@media(max-width:600px){.form-grid{grid-template-columns:1fr}.form-group.full-width{grid-column:span 1}.request-type-grid,.request-details{grid-template-columns:1fr}.detail-item.full-width{grid-column:span 1}}.role-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;text-transform:capitalize}.role-badge.role-employee{background:#6b728026;color:var(--gray-400);border:1px solid rgba(107,114,128,.2)}.role-badge.role-dept-manager{background:#06b6d426;color:var(--trip-color);border:1px solid rgba(6,182,212,.2)}.role-badge.role-general-manager{background:#8b5cf626;color:var(--vacation-color);border:1px solid rgba(139,92,246,.2)}.role-badge.role-hr{background:#ec489926;color:var(--late-color);border:1px solid rgba(236,72,153,.2)}.role-badge.role-finance{background:#f59e0b26;color:var(--absence-color);border:1px solid rgba(245,158,11,.2)}.role-badge.role-admin{background:#ef444426;color:var(--error-400);border:1px solid rgba(239,68,68,.2)}.role-select-input{padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-xs);cursor:pointer}.profile-container{max-width:1000px;margin:0 auto;animation:fadeIn var(--transition-base)}.profile-header{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-xl);padding:var(--spacing-6);margin-bottom:var(--spacing-6);display:flex;gap:var(--spacing-6);align-items:flex-start}.profile-picture-section{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-3);min-width:150px}.profile-picture-wrapper{position:relative;width:120px;height:120px}.profile-avatar-large{width:120px;height:120px;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:var(--font-size-3xl);font-weight:600;color:#fff;box-shadow:var(--shadow-lg),0 0 20px #6366f14d}.profile-picture-wrapper img{width:120px;height:120px;border-radius:var(--radius-full);object-fit:cover;box-shadow:var(--shadow-lg);border:3px solid var(--primary-500)}.profile-header-info{flex:1}.profile-header-info h2{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-1);color:var(--text-primary)}.profile-header-info .profile-position-text{font-size:var(--font-size-lg);color:var(--primary-400);font-weight:500;margin-bottom:var(--spacing-2)}.profile-header-info .profile-dept-text{color:var(--text-tertiary);font-size:var(--font-size-sm)}.profile-details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-6)}.profile-section{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-5)}.profile-section-title{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-4);color:var(--text-primary);display:flex;align-items:center;gap:var(--spacing-2);padding-bottom:var(--spacing-2);border-bottom:1px solid var(--border-color)}.profile-section-title svg{width:20px;height:20px;color:var(--primary-400)}.profile-fields-list{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-4)}.profile-field{display:flex;flex-direction:column;gap:var(--spacing-1)}.profile-field.full-width{grid-column:span 2}.profile-field-label{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.profile-field-value{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:500}.profile-field-value.empty{color:var(--text-tertiary);font-style:italic;font-weight:400}.profile-picture-upload-preview{display:flex;align-items:center;gap:var(--spacing-4);padding:var(--spacing-4);background:var(--bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--spacing-4)}.upload-preview-circle{width:80px;height:80px;border-radius:var(--radius-full);background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid var(--border-color)}.upload-preview-circle img{width:100%;height:100%;object-fit:cover}.form-section{margin-bottom:var(--spacing-6)}.form-section-title{font-size:var(--font-size-sm);font-weight:600;color:var(--primary-400);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--spacing-4);padding-bottom:var(--spacing-2);border-bottom:1px solid var(--border-color)}.modal-lg{max-width:800px!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(max-width:768px){.profile-header{flex-direction:column;align-items:center;text-align:center}.profile-fields-list{grid-template-columns:1fr}.profile-field.full-width{grid-column:span 1}}.availability-list{display:flex;flex-direction:column;gap:var(--spacing-3)}.availability-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3);background:var(--bg-tertiary);border-radius:var(--radius-md);border-left:4px solid transparent;transition:transform var(--transition-base)}.availability-item:hover{transform:translate(4px);background:var(--bg-elevated)}.availability-item.available{border-left-color:var(--success-500)}.availability-item.on-leave{border-left-color:var(--warning-500)}.availability-info{display:flex;flex-direction:column;gap:2px}.employee-name{font-weight:600;color:var(--text-primary)}.employee-dept{font-size:var(--font-size-xs);color:var(--text-tertiary)}.availability-status{text-align:right}.status-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:500}.status-badge.status-available{background:#10b9811a;color:var(--success-400)}.status-badge.status-on-leave{background:#f59e0b1a;color:var(--warning-400)}.return-date{font-size:var(--font-size-xs);color:var(--text-secondary);margin-top:4px}.availability-legend{display:flex;gap:var(--spacing-4)}.legend-item{display:flex;align-items:center;gap:var(--spacing-1);font-size:var(--font-size-xs);color:var(--text-secondary)}.status-indicator{width:8px;height:8px;border-radius:50%}.status-indicator.status-available{background:var(--success-500)}.status-indicator.status-on-leave{background:var(--warning-500)}.analytics-container{width:100%}.analytics-header{margin-bottom:var(--spacing-6)}.analytics-header h2{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--spacing-2)}.analytics-header p{color:var(--text-secondary)}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:var(--spacing-5);margin-bottom:var(--spacing-6)}.chart-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-5);height:350px;box-shadow:var(--shadow-md);transition:all var(--transition-base)}.chart-card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.chart-card canvas{max-height:100%}.team-availability-section{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-5);box-shadow:var(--shadow-md)}.team-availability-section h3{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--spacing-4);color:var(--text-primary)}.availability-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-4);margin-bottom:var(--spacing-5)}.availability-stat{background:var(--bg-tertiary);padding:var(--spacing-4);border-radius:var(--radius-md);text-align:center}.stat-value{font-size:var(--font-size-3xl);font-weight:700;color:var(--primary-400);margin-bottom:var(--spacing-1)}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.on-leave-list h4{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--spacing-3);color:var(--text-primary)}.availability-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-3);background:var(--bg-tertiary);border-radius:var(--radius-md);margin-bottom:var(--spacing-2)}.emp-info{flex:1}.emp-name{font-weight:500;color:var(--text-primary);margin-bottom:var(--spacing-1)}.emp-dept{font-size:var(--font-size-xs);color:var(--text-tertiary)}.leave-info{display:flex;flex-direction:column;align-items:flex-end;gap:var(--spacing-1)}.leave-badge{background:var(--warning-500);color:#fff;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:500;text-transform:capitalize}.return-date{font-size:var(--font-size-xs);color:var(--text-tertiary)}.no-data{text-align:center;color:var(--text-tertiary);padding:var(--spacing-6);font-style:italic}@media(max-width:768px){.analytics-grid{grid-template-columns:1fr}.chart-card{height:300px}.availability-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-2)}.leave-info{align-items:flex-start}}
