body{font-family:'Inter', sans-serif;background-color:#f7fafc;color:#4a5568;margin:0;padding:0}.member-row{contain:layout style paint;will-change:transform;transform:translateZ(0)}.card{contain:layout style;will-change:transform}.btn{contain:layout style;will-change:transform}.member-row:hover{transform:translateY(-1px) translateZ(0);transition:transform 0.2s cubic-bezier(0.4, 0, 0.2, 1)}.btn:hover{transform:translateY(-2px) translateZ(0);transition:all 0.2s cubic-bezier(0.4, 0, 0.2, 1)}.table-responsive{contain:layout style;will-change:scroll-position}input, select, textarea{contain:layout style;will-change:transform}.loading-spinner{contain:layout style;will-change:transform}.modal-overlay{contain:layout style;will-change:opacity}.modal-content{contain:layout style;will-change:transform}.file-upload-area{contain:layout style;will-change:transform}#pagination-controls{contain:layout style}.success-feedback, .error-feedback{contain:layout style;will-change:transform}.rotary-blue-dark{background-color:#003b8a}.rotary-blue-dark-text{color:#003b8a}.rotary-blue-light{background-color:#eaf2ff}.rotary-blue-light-text{color:#004aad}.btn{padding:0.625rem 1.25rem;border-radius:0.5rem;font-weight:600;transition:all 0.2s ease-in-out;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;cursor:pointer;text-decoration:none}.btn-primary{background-color:#004aad;color:white}.btn-primary:hover{background-color:#003b8a;transform:translateY(-2px);box-shadow:0 4px 12px rgba(0, 74, 173, 0.2)}.btn-danger{background-color:#e53e3e;color:white}.btn-danger:hover{background-color:#c53030}.btn-secondary{background-color:#edf2f7;color:#4a5568;border-color:#e2e8f0}.btn-secondary:hover{background-color:#e2e8f0}.btn-sm{padding:0.375rem 0.75rem;font-size:0.875rem;border-radius:0.375rem}.card{background-color:white;border-radius:0.75rem;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);border:1px solid #e2e8f0}input[type="text"], input[type="date"], input[type="number"], select{background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:0.5rem;padding:0.625rem 0.875rem;transition:border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;width:100%;box-sizing:border-box}input[type="text"]:focus, input[type="date"]:focus, input[type="number"]:focus, select:focus{outline:none;border-color:#0079ff;box-shadow:0 0 0 3px rgba(0, 121, 255, 0.15);background-color:white}.custom-dropdown{position:relative;width:100%}.custom-dropdown-trigger{position:relative;cursor:pointer;user-select:none;background:linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);border:2px solid #dbeafe;transition:all 0.3s cubic-bezier(0.4, 0, 0.2, 1);text-align:center}.custom-dropdown-trigger:hover{border-color:#93c5fd;background:linear-gradient(135deg, #f8fafc 0%, #eff6ff 100%);transform:translateY(-1px);box-shadow:0 4px 12px rgba(59, 130, 246, 0.15)}.custom-dropdown-trigger:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1);transform:translateY(-1px)}.custom-dropdown-trigger.active{border-color:#3b82f6;background:linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.custom-dropdown-trigger.active .dropdown-arrow{transform:rotate(180deg)}.dropdown-arrow{transition:transform 0.2s ease}.custom-dropdown-menu{background:white;border:2px solid #dbeafe;border-radius:0.75rem;box-shadow:0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);backdrop-filter:blur(10px);border-top:none;border-top-left-radius:0;border-top-right-radius:0;margin-top:-2px}.custom-dropdown-menu.open{opacity:1;visibility:visible;transform:scale(1) translateY(0)}.custom-dropdown-menu::-webkit-scrollbar{width:6px}.custom-dropdown-menu::-webkit-scrollbar-track{background:#f1f5f9;border-radius:3px}.custom-dropdown-menu::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.custom-dropdown-menu::-webkit-scrollbar-thumb:hover{background:#94a3b8}.dropdown-option{padding:0.875rem 1.25rem;cursor:pointer;transition:all 0.15s ease;border-bottom:1px solid #f1f5f9;font-weight:500;color:#374151;position:relative;overflow:hidden}.dropdown-option:last-child{border-bottom:none}.dropdown-option:hover{background:linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);color:#1e40af;transform:translateX(4px);padding-left:1.5rem}.dropdown-option.selected{background:linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);color:#1e40af;font-weight:700;position:relative}.dropdown-option.selected::before{content:'✓';position:absolute;right:1rem;color:#1e40af;font-weight:bold}.dropdown-option:active{transform:scale(0.98);background:linear-gradient(135deg, #dbeafe 0%, #93c5fd 100%)}@keyframes dropdownSlideIn{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-option{animation:dropdownSlideIn 0.2s ease forwards}.dropdown-option:nth-child(1){animation-delay:0.05s}.dropdown-option:nth-child(2){animation-delay:0.1s}.dropdown-option:nth-child(3){animation-delay:0.15s}.dropdown-option:nth-child(4){animation-delay:0.2s}.dropdown-option:nth-child(5){animation-delay:0.25s}.dropdown-option:nth-child(6){animation-delay:0.3s}.dropdown-option:nth-child(7){animation-delay:0.35s}.dropdown-option:nth-child(8){animation-delay:0.4s}.dropdown-option:nth-child(9){animation-delay:0.45s}.dropdown-option:nth-child(10){animation-delay:0.5s}@media (max-width:768px){.custom-dropdown-menu{max-height:200px}.dropdown-option{padding:1rem 1.25rem;font-size:0.875rem}}.table-header{background-color:#f7fafc}.form-input-sm, .form-select-sm{padding:0.25rem 0.5rem;font-size:0.875rem}.edit-mode-input{width:100% !important;min-width:120px;padding:0.5rem 0.75rem !important;font-size:0.875rem;border:2px solid #e2e8f0;border-radius:0.375rem;background-color:white;transition:all 0.2s ease-in-out;box-sizing:border-box;margin:0;display:block}.edit-mode-input:focus{outline:none;border-color:#004aad;box-shadow:0 0 0 3px rgba(0, 74, 173, 0.1);background-color:#f8fafc}.edit-mode-select{width:100% !important;min-width:140px;padding:0.5rem 0.75rem !important;font-size:0.875rem;border:2px solid #e2e8f0;border-radius:0.375rem;background-color:white;transition:all 0.2s ease-in-out;box-sizing:border-box;cursor:pointer;margin:0;display:block}.edit-mode-select:focus{outline:none;border-color:#004aad;box-shadow:0 0 0 3px rgba(0, 74, 173, 0.1);background-color:#f8fafc}.editing td{background-color:#f8fafc !important;border-color:#e2e8f0;padding:1rem 1.5rem !important;vertical-align:middle;position:static;display:table-cell}.editing td:focus-within{background-color:#f0f9ff !important}.editing td input, .editing td select{max-width:100%;box-sizing:border-box;position:static}.editing{background-color:#f8fafc !important;border-left:3px solid #004aad}.file-upload-area{border:2px dashed #d1d5db;border-radius:0.5rem;transition:all 0.2s ease-in-out}.file-upload-area:hover{border-color:#004aad;background-color:#f8fafc}.file-upload-area.dragover{border-color:#004aad;background-color:#eaf2ff;transform:scale(1.02)}.upload-preview{max-height:200px;overflow-y:auto;transition:all 0.3s ease-in-out}.upload-area-container{transition:all 0.3s ease-in-out}.upload-area-container.hidden{opacity:0;transform:translateY(-10px);pointer-events:none}.upload-preview.hidden{opacity:0;transform:translateY(10px);pointer-events:none}.success-animation{animation:successPulse 1.5s ease-in-out}@keyframes successPulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:0.8}100%{transform:scale(1);opacity:1}}.success-icon{animation:successBounce 0.6s ease-in-out}@keyframes successBounce{0%, 20%, 53%, 80%, 100%{transform:translate3d(0,0,0)}40%, 43%{transform:translate3d(0, -8px, 0)}70%{transform:translate3d(0, -4px, 0)}90%{transform:translate3d(0, -2px, 0)}}.member-row{transition:all 0.2s ease-in-out}.member-row:hover{background-color:#f8fafc;transform:translateY(-1px);box-shadow:0 2px 8px rgba(0, 0, 0, 0.1)}.animate-pulse{animation:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}@keyframes pulse{0%, 100%{opacity:1}50%{opacity:.5}}.loading-spinner{animation:spin 1s linear infinite}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.fade-in{animation:fadeIn 0.3s ease-in-out}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.slide-up{animation:slideUp 0.3s ease-out}@keyframes slideUp{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.form-group{position:relative;transition:all 0.2s ease-in-out}.error-message{color:#e53e3e;font-size:0.875rem;margin-top:0.25rem;display:none}.input-error{border-color:#e53e3e !important;box-shadow:0 0 0 3px rgba(229, 62, 62, 0.1) !important}.input-success{border-color:#38a169 !important;box-shadow:0 0 0 3px rgba(56, 161, 105, 0.1) !important;background-color:#f0fff4 !important}.form-group:has(.input-success){transform:translateY(-1px)}.form-group:has(.input-error){animation:shake 0.5s ease-in-out}@keyframes shake{0%, 100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.btn:focus, input:focus, select:focus{outline:2px solid #004aad;outline-offset:2px}.loading-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255, 255, 255, 0.95);display:flex;align-items:center;justify-content:center;z-index:9999;opacity:0;visibility:hidden;transition:all 0.3s ease}.loading-overlay.active{opacity:1;visibility:visible}.loading-content{text-align:center;background:white;padding:2rem;border-radius:1rem;box-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);max-width:400px;width:90%}.loading-progress{width:100%;height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden;margin:1rem 0}.loading-progress-bar{height:100%;background:linear-gradient(90deg, #3b82f6, #1d4ed8);border-radius:4px;transition:width 0.3s ease;width:0%}.loading-steps{display:flex;justify-content:space-between;margin-top:1rem;font-size:0.75rem;color:#6b7280}.loading-step{display:flex;flex-direction:column;align-items:center;flex:1}.loading-step.active{color:#3b82f6;font-weight:600}.loading-step.completed{color:#10b981}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0, 0, 0, 0.5);display:flex;align-items:center;justify-content:center;z-index:10000;opacity:0;visibility:hidden;transition:opacity 0.2s ease;padding:1.5rem}.modal-overlay.active{opacity:1;visibility:visible}.modal-content{background:white;border-radius:12px;box-shadow:0 10px 25px rgba(0, 0, 0, 0.15);max-width:600px;width:100%;max-height:calc(100vh - 3rem);overflow-y:auto;transform:translateY(20px);transition:transform 0.2s ease;margin:auto;position:relative;-webkit-overflow-scrolling:touch;display:block}.modal-overlay.active .modal-content{transform:translateY(0)}.modal-header{background:#2563eb;color:white;padding:1.5rem;border-radius:12px 12px 0 0;display:flex;justify-content:space-between;align-items:center}.modal-title{font-size:1.25rem;font-weight:600;margin:0;display:flex;align-items:center;gap:0.75rem}.modal-title-icon{width:1.5rem;height:1.5rem;background:rgba(255, 255, 255, 0.2);border-radius:4px;display:flex;align-items:center;justify-content:center}.modal-close-btn{background:rgba(255, 255, 255, 0.2);border:none;border-radius:50%;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color 0.2s ease}.modal-close-btn:hover{background:rgba(255, 255, 255, 0.3)}.modal-body{padding:1.5rem;color:#374151;line-height:1.6;overflow-y:auto;max-height:none}.modal-body p{margin:0 0 1rem 0;color:#6b7280}.modal-body h4{font-size:1.1rem;font-weight:600;color:#1f2937;margin:1.5rem 0 0.75rem 0;display:flex;align-items:center;gap:0.5rem}.modal-body h4:first-child{margin-top:0}.step-number{width:1.5rem;height:1.5rem;background:#2563eb;color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:0.75rem;flex-shrink:0}.modal-body ul{list-style:none;padding:0;margin:0 0 1rem 0}.modal-body li{margin-bottom:0.5rem;padding-left:1.25rem;position:relative;color:#4b5563}.modal-body li::before{content:'•';position:absolute;left:0;top:0;color:#2563eb;font-weight:bold;font-size:1.2rem}.modal-body strong{color:#1f2937;font-weight:600}.modal-tips{background:#f0f9ff;border:1px solid #0ea5e9;border-radius:8px;padding:1rem;margin-top:1.5rem}.modal-tips h4{color:#0369a1;margin:0 0 0.75rem 0;font-size:1rem;display:flex;align-items:center;gap:0.5rem}.modal-tips ul{margin:0}.modal-tips li{color:#0369a1;font-size:0.9rem}.modal-footer{padding:1rem 1.5rem 1.5rem 1.5rem;background:#f9fafb;border-top:1px solid #e5e7eb;border-radius:0 0 12px 12px;text-align:center}.modal-btn{background:#2563eb;color:white;border:none;border-radius:8px;padding:0.75rem 1.5rem;font-weight:600;font-size:0.95rem;cursor:pointer;transition:background-color 0.2s ease;display:inline-flex;align-items:center;gap:0.5rem}.modal-btn:hover{background:#1d4ed8}.success-feedback{background:linear-gradient(135deg, #f0fff4 0%, #e6fffa 100%);border:1px solid #68d391;border-radius:0.5rem;padding:1rem;margin:1rem 0;display:flex;align-items:center;gap:0.75rem}.error-feedback{background:linear-gradient(135deg, #fed7d7 0%, #feb2b2 100%);border:1px solid #fc8181;border-radius:0.5rem;padding:1rem;margin:1rem 0;display:flex;align-items:center;gap:0.75rem}@media (max-width:640px){.container{padding:1rem}.card{padding:1rem}.btn{padding:0.75rem 1rem;font-size:0.875rem}.modal-overlay{padding:1.5rem 0.5rem}.modal-content{max-height:calc(100vh - 7rem);width:calc(100% - 1rem);border-radius:8px}.modal-header{padding:1rem;border-radius:8px 8px 0 0}.modal-body{padding:1rem}.modal-footer{padding:1rem;border-radius:0 0 8px 8px}.modal-btn{width:100%;justify-content:center}}@media (max-width:768px){.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive table{min-width:600px}.modal-overlay{padding:1.5rem 0.75rem}.modal-content{max-height:calc(100vh - 7rem);width:calc(100% - 1.5rem)}}.btn:disabled{opacity:0.6;cursor:not-allowed;transform:none !important}.btn:disabled:hover{transform:none !important;box-shadow:none !important}body.modal-open{overflow:hidden;position:fixed;width:100%}#login-container{position:fixed;top:1rem;right:1rem;z-index:50;transition:all 0.3s ease}#login-button{background:linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);border:1px solid #e2e8f0;border-radius:0.5rem;padding:0.75rem 1rem;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);cursor:pointer;transition:all 0.2s ease-in-out;display:flex;align-items:center;gap:0.5rem;font-weight:500;color:#374151;text-decoration:none;min-width:140px;justify-content:center}#login-button:hover{background:linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);border-color:#cbd5e1;transform:translateY(-1px);box-shadow:0 6px 12px -1px rgba(0, 0, 0, 0.15), 0 4px 6px -1px rgba(0, 0, 0, 0.1);color:#1f2937}#login-button:active{transform:translateY(0);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.1)}#user-info{background:linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);border:1px solid #e2e8f0;border-radius:0.5rem;padding:0.75rem 1rem;box-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);display:flex;align-items:center;gap:0.5rem;font-weight:500;color:#374151;min-width:140px;justify-content:center}#user-avatar{width:1.5rem;height:1.5rem;border-radius:50%;object-fit:cover;border:1px solid #e2e8f0}#user-name{font-size:0.875rem;font-weight:500;color:#374151;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#logout-button{background:none;border:none;color:#dc2626;font-size:0.75rem;font-weight:500;cursor:pointer;padding:0.25rem 0.5rem;border-radius:0.25rem;transition:all 0.2s ease-in-out;margin-left:auto}#logout-button:hover{background-color:#fef2f2;color:#b91c1c}@media (max-width:640px){#login-container{top:0.5rem;right:0.5rem}#login-button, #user-info{padding:0.5rem 0.75rem;min-width:120px;font-size:0.75rem}#user-name{max-width:80px;font-size:0.75rem}#logout-button{font-size:0.625rem;padding:0.125rem 0.375rem}}#login-button.loading{opacity:0.7;cursor:not-allowed;pointer-events:none}#login-button.loading::after{content:'';width:1rem;height:1rem;border:2px solid #e2e8f0;border-top:2px solid #3b82f6;border-radius:50%;animation:spin 1s linear infinite;margin-left:0.5rem}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}