.login-page *{-webkit-tap-highlight-color:transparent;box-sizing:border-box}.login-page{margin:0;padding:0;overscroll-behavior:none;-webkit-font-smoothing:antialiased;font-family:Poppins,Nunito,system-ui,-apple-system,sans-serif;background:linear-gradient(135deg,#eff6ff,#f3e8ff 50%,#eff6ff);min-height:100vh}@keyframes loginFadeIn{0%{opacity:0}to{opacity:1}}@keyframes loginSlideInUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes loginSlideInDown{0%{transform:translateY(-30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes loginScaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes loginFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes loginPulseGlow{0%,to{box-shadow:0 0 20px rgba(59,130,246,.4)}50%{box-shadow:0 0 30px rgba(139,92,246,.6)}}.login-page .fade-in{animation:loginFadeIn .5s ease-out}.login-page .slide-in-up{animation:loginSlideInUp .6s ease-out}.login-page .slide-in-down{animation:loginSlideInDown .6s ease-out}.login-page .scale-in{animation:loginScaleIn .4s ease-out}.login-page .float-animation{animation:loginFloat 3s ease-in-out infinite}.login-page .pulse-glow{animation:loginPulseGlow 2s ease-in-out infinite}.login-page .logo-container{width:96px;height:96px;background:linear-gradient(135deg,#2563eb,#7c3aed);border-radius:24px;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 20px 40px rgba(0,0,0,.15);overflow:hidden}.login-page .logo-container img{width:100%;height:100%;object-fit:cover}.login-page .form-control{font-size:16px;padding:8px 8px 8px 28px;border:2px solid #e5e7eb;border-radius:12px;transition:all .3s ease;background-color:#fff!important}.login-page .form-control:focus{border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59,130,246,.1);outline:none}.login-page .form-label{font-weight:600;font-size:.875rem;color:#374151;margin-bottom:8px}.login-page .password-toggle{position:absolute;right:16px;top:50%;transform:translateY(-50%);background:none;border:none;padding:0;cursor:pointer;color:#9ca3af}.login-page .password-toggle:hover{color:#6b7280}.login-page .btn-primary-custom{background:linear-gradient(135deg,#3b82f6,#8b5cf6 50%,#7c3aed);border:none;padding:16px;font-weight:700;font-size:1.125rem;border-radius:12px;box-shadow:0 4px 12px rgba(59,130,246,.4);transition:all .3s ease;touch-action:manipulation;width:100%;color:#fff}.login-page .btn-primary-custom:active{transform:scale(.98)}.login-page .btn-primary-custom:disabled{opacity:.7;cursor:not-allowed}.login-page .ripple{position:relative;overflow:hidden}.login-page .ripple:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:rgba(255,255,255,.5);transform:translate(-50%,-50%);transition:width .6s,height .6s}.login-page .ripple:active:after{width:300px;height:300px}.login-page .login-card{background:#fff;border-radius:24px;box-shadow:0 20px 40px rgba(0,0,0,.1);padding:24px}.login-page .shape-blob{position:absolute;border-radius:50%;filter:blur(50px);opacity:.25;z-index:0}.login-page .shape-blob-1{width:200px;height:200px;background:linear-gradient(135deg,#3b82f6,#8b5cf6);top:0;right:-60px}.login-page .shape-blob-2{width:180px;height:180px;background:linear-gradient(135deg,#7c3aed,#1d4ed8);bottom:0;left:-50px}.login-page .safe-top{padding-top:max(env(safe-area-inset-top),16px)}.login-page .safe-bottom{padding-bottom:max(env(safe-area-inset-bottom),16px)}.login-page .form-check-input{width:20px;height:20px;border-radius:4px;border:2px solid #d1d5db}.login-page .form-check-input:checked{background-color:#3b82f6;border-color:#3b82f6}.login-page .form-check-label{font-size:.875rem;color:#6b7280;font-weight:500;margin-left:8px}.login-page .link-primary{color:#3b82f6;text-decoration:none;font-weight:600;font-size:.875rem}.login-page .link-primary:hover{color:#2563eb}.login-page .footer-link{color:#6b7280;text-decoration:none;font-size:.875rem;font-weight:500}.login-page .footer-link:hover{color:#3b82f6}.login-page .text-gray-800{color:#1f2937}.login-page .text-gray-600{color:#4b5563}.login-page .text-gray-500{color:#6b7280}.login-page .text-gray-400{color:#9ca3af}.login-page .icon-sm{width:20px;height:20px}.login-page .alert{border-radius:12px;margin-bottom:20px;transition:opacity .5s ease}.login-page .role-card{display:flex;align-items:center;gap:16px;width:100%;padding:18px 20px;background:#f8fafc;border:2px solid #e5e7eb;border-radius:16px;cursor:pointer;transition:all .2s ease;text-align:left}.login-page .role-card:active,.login-page .role-card:hover{border-color:#3b82f6;background:#eff6ff;transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.15)}.login-page .role-card .role-icon{font-size:2rem;flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:12px}.login-page .role-card .chevron{margin-left:auto;flex-shrink:0;color:#d1d5db;font-size:1rem;transition:all .2s ease}.login-page .role-card:hover .chevron{color:#3b82f6;transform:translateX(3px)}.login-page .role-badge{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:700;background:#ede9fe;color:#7c3aed;padding:5px 14px;border-radius:20px}.login-page .change-role-btn{background:none;border:none;font-size:.8rem;font-weight:600;color:#6b7280;cursor:pointer;padding:0;transition:color .2s}.login-page .change-role-btn:hover{color:#3b82f6}.login-page .readonly-dropdown{pointer-events:none;background-color:#e9ecef}