:root{--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-primary-light:#eff6ff;--color-bg-body:#f8fafc;--color-bg-card:#fff;--color-bg-input:#f8fafc;--color-text-main:#0f172a;--color-text-secondary:#64748b;--color-text-tertiary:#94a3b8;--color-border:#e2e8f0;--color-border-focus:#3b82f6;--color-error:#ef4444;--color-error-bg:#fef2f2;--color-success:#10b981;--color-success-bg:#ecfdf5;--shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-input:0 1px 2px 0 rgba(0,0,0,.05);--shadow-focus:0 0 0 4px rgba(59,130,246,.15);--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-6:1.5rem;--space-8:2rem;--space-12:3rem}body,html{padding:0;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;color:var(--color-text-main);background-color:var(--color-bg-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}a{color:var(--color-primary);transition:color .2s ease}a:hover{color:var(--color-primary-hover)}.text-center{text-align:center}.w-full{width:100%}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.card{background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);overflow:hidden}.input-group{margin-bottom:var(--space-4)}.input-label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--space-2)}.input-field,.input-label{color:var(--color-text-main)}.input-field{width:100%;padding:var(--space-3) var(--space-4);font-size:1rem;line-height:1.5;background-color:var(--color-bg-input);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all .2s ease;box-shadow:var(--shadow-input)}.input-field:focus{outline:none;border-color:var(--color-border-focus);background-color:#fff;box-shadow:var(--shadow-focus)}.input-field::placeholder{color:var(--color-text-tertiary)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-3) var(--space-6);font-size:.95rem;font-weight:600;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .2s ease;line-height:1.4}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:0 1px 2px 0 rgba(0,0,0,.1)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.7;cursor:not-allowed}.btn-secondary{background-color:#fff;color:var(--color-text-main);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.btn-secondary:hover{background-color:var(--color-bg-body);border-color:var(--color-text-tertiary)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{color:var(--color-text-main);background-color:var(--color-bg-body)}.content-container{padding:var(--space-6)}.header{margin-bottom:var(--space-8)}.header h1{font-size:2rem;margin:0 0 var(--space-2) 0;letter-spacing:-.025em}.header .description{color:var(--color-text-secondary);font-size:1.125rem}.section-header{margin:var(--space-8) 0 var(--space-4) 0}.section-header h2{color:var(--color-text-main)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:var(--space-4);gap:var(--space-4);margin-bottom:var(--space-8)}.stat-card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-6);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.stat-icon{font-size:2rem;color:var(--color-primary);margin-right:var(--space-4)}.stat-value{font-size:1.875rem;color:var(--color-text-main);line-height:1.2}.stat-label{color:var(--color-text-secondary)}.table-container{background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);margin-bottom:var(--space-8)}.data-table th{background-color:var(--color-bg-body);color:var(--color-text-secondary);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.data-table td,.data-table th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.data-table td{color:var(--color-text-main)}.data-table tr:hover{background-color:var(--color-bg-body)}.status-badge{padding:2px 10px;border-radius:9999px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.025em}.status-badge.pending{background-color:#fff7ed;color:#c2410c;border:1px solid #ffedd5}.status-badge.approved{background-color:#f0fdf4;color:#15803d;border:1px solid #dcfce7}.status-badge.rejected{background-color:#fef2f2;border:1px solid #fee2e2}.modal-overlay{inset:0;background-color:rgba(15,23,42,.4);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50}.modal-container{background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);border:1px solid var(--color-border)}.modal-header{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border)}@media (max-width:640px){.header h1{font-size:1.75rem}.stats-grid{grid-template-columns:1fr}.content-container{padding:var(--space-4)}}a{color:inherit;text-decoration:none}*{box-sizing:border-box}.request-card{background:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:20px;margin-bottom:20px;border:1px solid #e5e7eb}.request-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.request-header h2{margin:0;font-size:1.25rem;font-weight:600}.status-badge{padding:4px 12px;border-radius:16px;font-size:.875rem;font-weight:500}.status-badge.pending{background-color:#fef3c7;color:#92400e}.status-badge.approved{background-color:#d1fae5;color:#065f46}.status-badge.rejected{background-color:#fee2e2;color:#b91c1c}.request-details{margin-bottom:20px}.detail-item{display:flex;margin-bottom:8px}.detail-item .label{font-weight:500;width:100px;color:#6b7280}.request-actions{display:flex;gap:12px;margin-top:16px}.approve-button,.reject-button{padding:8px 16px;border-radius:6px;font-weight:500;cursor:pointer;transition:all .2s ease;border:none}.approve-button{background-color:#10b981;color:#fff}.approve-button:hover{background-color:#059669}.reject-button{background-color:#ef4444;color:#fff}.reject-button:hover{background-color:#dc2626}.approve-button:disabled,.reject-button:disabled{opacity:.5;cursor:not-allowed}.content-container{max-width:1200px;margin:0 auto;padding:20px}.header{margin-bottom:24px}.header h1{margin:0 0 8px;font-size:1.875rem;font-weight:700}.header .description{color:#6b7280;font-size:1rem;margin:0}.section-header{margin:32px 0 16px}.section-header h2{font-size:1.5rem;font-weight:600;margin:0}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 0}.loading-spinner{width:40px;height:40px;border-radius:50%;border:3px solid rgba(37,99,235,.1);border-top-color:#2563eb;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{to{transform:rotate(1turn)}}.error-message{padding:16px;background-color:#fee2e2;border-radius:8px;color:#b91c1c;margin-bottom:24px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem;margin-bottom:2rem}.stat-card{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:1.25rem;display:flex;align-items:center;transition:transform .2s,box-shadow .2s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px rgba(0,0,0,.1)}.stat-icon{font-size:1.75rem;color:#2563eb;margin-right:1rem;display:flex;align-items:center}.stat-content{flex:1 1}.stat-value{font-size:2rem;font-weight:700;color:#111827;line-height:1;margin-bottom:.5rem}.stat-label{font-size:.875rem;color:#6b7280;font-weight:500}.admin-actions-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1.5rem;gap:1.5rem;margin-bottom:2rem}.action-card{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,.1);padding:1.5rem;display:flex;text-decoration:none;color:inherit;transition:transform .2s,box-shadow .2s}.action-card:hover{transform:translateY(-2px);box-shadow:0 4px 6px rgba(0,0,0,.1);background-color:#f9fafb}.action-icon{font-size:1.5rem;color:#2563eb;background-color:#eff6ff;width:3rem;height:3rem;border-radius:8px;display:flex;align-items:center;justify-content:center;margin-right:1rem}.action-content{flex:1 1}.action-content h3{font-size:1.125rem;font-weight:600;margin:0 0 .5rem;color:#111827}.action-content p{font-size:.875rem;color:#6b7280;margin:0 0 .75rem}.action-badge{display:inline-block;background-color:#fef3c7;color:#92400e;font-size:.75rem;font-weight:500;padding:.25rem .5rem;border-radius:9999px}.table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);border:1px solid #e5e7eb;overflow:hidden;margin-bottom:32px}.data-table{width:100%;border-collapse:collapse}.data-table th{background-color:#f9fafb;text-align:left;font-weight:600;color:#374151}.data-table td,.data-table th{padding:12px 16px;border-bottom:1px solid #e5e7eb}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover{background-color:#f9fafb}.table-actions{display:flex;gap:8px}.table-actions button{background:none;border:none;cursor:pointer;color:#6b7280;transition:color .2s;padding:4px}.edit-button,.table-actions button:hover{color:#2563eb}.delete-button{color:#ef4444}.form-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px rgba(0,0,0,.1);padding:24px;border:1px solid #e5e7eb;max-width:600px;margin:0 auto}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:8px;font-weight:500;color:#374151}.form-input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .2s}.form-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.form-select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;background-color:#fff;transition:border-color .2s}.form-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.form-button{padding:10px 16px;background-color:#2563eb;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s}.form-button:hover{background-color:#1d4ed8}.form-button.secondary{background-color:#f3f4f6;color:#374151}.form-button.secondary:hover{background-color:#e5e7eb}@media (max-width:1024px){.stats-grid{grid-template-columns:repeat(2,1fr);gap:1rem}.admin-actions-grid{grid-template-columns:1fr;gap:1rem}}@media (max-width:768px){.content-container{padding:1rem}.header{margin-bottom:1.5rem}.header h1{font-size:1.5rem}.header .description{font-size:.875rem}.section-header{margin-bottom:1rem}.section-header h2{font-size:1.25rem}.stats-grid{grid-template-columns:repeat(2,1fr);gap:.75rem;margin-bottom:1.5rem}.stat-card{padding:1rem}.stat-icon{font-size:1.5rem;margin-right:.75rem}.stat-value{font-size:1.5rem;margin-bottom:.25rem}.stat-label{font-size:.75rem}.admin-actions-grid{gap:.75rem;margin-bottom:1.5rem}.action-card{padding:1rem}.action-icon{font-size:1.25rem;width:2.5rem;height:2.5rem;margin-right:.75rem}.action-content h3{font-size:1rem;margin-bottom:.25rem}.action-content p{font-size:.75rem;margin-bottom:.5rem}.action-badge{font-size:.7rem;padding:.2rem .4rem}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr;gap:.75rem}.action-card,.stat-card{padding:.875rem}.action-icon{width:2.25rem;height:2.25rem;font-size:1.125rem}.content-container{padding:.75rem}.header h1{font-size:1.375rem}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:1000}.modal-container{background-color:#fff;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,.1);width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600}.close-button{background:none;border:none;font-size:1.25rem;color:#6b7280;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px}.close-button:hover{color:#111827}.edit-form{padding:20px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.icon-left{margin-right:8px}.success-message{padding:16px;background-color:#d1fae5;border-radius:8px;color:#065f46;margin-bottom:24px}.form-help{font-size:.875rem;color:#6b7280;margin-top:4px;margin-bottom:0}.login-form-container{width:100%;max-width:480px;margin:0 auto;padding:2rem;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px rgba(0,0,0,.1)}.login-form-container h1{text-align:center;margin-bottom:.5rem;font-size:2rem;font-weight:700;color:#111827}.login-form-container .subtitle{text-align:center;margin-bottom:2rem;font-size:1rem;color:#6b7280}.login-form{display:flex;flex-direction:column;gap:1.5rem}.login-form .form-group{display:flex;flex-direction:column;gap:.5rem}.login-form label{font-weight:500;font-size:.875rem;color:#374151}.login-form input{padding:.75rem 1rem;border:1px solid #e5e7eb;border-radius:6px;font-size:1rem;transition:border-color .2s ease}.login-form input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px rgba(59,130,246,.1)}.login-button{margin-top:1rem;padding:.75rem 1rem;background-color:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s ease}.login-button:hover:not(:disabled){background-color:#2563eb}.login-button:disabled{opacity:.6;cursor:not-allowed}.request-link{margin-top:1.5rem;text-align:center;font-size:.875rem}.request-link p{margin-bottom:.5rem;color:#6b7280}.request-link a{color:#3b82f6;text-decoration:none;font-weight:500}.request-link a:hover{text-decoration:underline}.debug-info{margin-top:2rem;padding:1rem;background-color:#f3f4f6;border-radius:6px}.debug-info h3{margin-top:0;margin-bottom:.5rem;font-size:1rem;font-weight:600}.debug-info pre{background-color:#e5e7eb;padding:.75rem;border-radius:4px;overflow-x:auto;font-size:.75rem;line-height:1.4}