:root{--primary-color:#6366f1;--primary-dark:#4f46e5;--gradient-start:#6366f1;--gradient-end:#8b5cf6}*{box-sizing:border-box;margin:0;padding:0}body{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;justify-content:center;min-height:100vh;padding:20px}.login-container{animation:fadeInUp .6s ease-out;max-width:450px;width:100%}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-card{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;overflow:hidden}.login-form-section{padding:50px 40px}.login-form-section h3{color:#1a1a1a;font-size:28px;font-weight:700;margin-bottom:10px}.text-muted{color:#6c757d!important;font-size:14px;line-height:1.6}.input-group-custom{margin-bottom:20px;position:relative}.input-icon{color:#9ca3af;font-size:18px;left:18px;position:absolute;top:50%;transform:translateY(-50%);z-index:2}.form-control{background-color:#f9fafb;border:2px solid #e5e7eb;border-radius:12px;font-size:15px;height:55px;padding:12px 20px 12px 50px;transition:all .3s ease}.form-control:focus{background-color:#fff;border-color:var(--primary-color);box-shadow:0 0 0 4px #6366f11a;outline:none}.form-control::placeholder{color:#9ca3af}.btn-login{background:linear-gradient(135deg,var(--gradient-start) 0,var(--gradient-end) 100%);border:none;border-radius:12px;color:#fff;font-size:16px;font-weight:600;height:55px;margin-top:10px;overflow:hidden;position:relative;transition:all .3s ease}.btn-login:hover{box-shadow:0 10px 25px #6366f166;transform:translateY(-2px)}.btn-login:active{transform:translateY(0)}.signup-link{padding-top:15px;text-align:center}.signup-link a{align-items:center;color:var(--primary-color);display:inline-flex;font-size:14px;font-weight:600;gap:5px;text-decoration:none;transition:all .3s ease}.signup-link a:hover{color:var(--primary-dark);gap:8px}.signup-link a:before{content:"←";font-size:18px}#alertContainer .alert,.alert{animation:slideDown .4s ease-out;border:none;border-radius:12px;margin-bottom:20px;padding:15px 20px}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.alert-success{background-color:#d1fae5;color:#065f46}.alert-danger{background-color:#fee2e2;color:#991b1b}.icon-wrapper{align-items:center;background:linear-gradient(135deg,var(--gradient-start) 0,var(--gradient-end) 100%);border-radius:20px;box-shadow:0 10px 30px #6366f14d;display:flex;height:80px;justify-content:center;margin:0 auto 25px;width:80px}.icon-wrapper i{color:#fff;font-size:36px}@media (max-width:576px){.login-form-section{padding:40px 30px}.login-form-section h3{font-size:24px}}.notification-container{max-width:400px;position:fixed;right:20px;top:20px;z-index:9999}.notification{align-items:start;animation:slideInRight .5s ease-out,fadeOut .5s ease-in 4.5s;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:16px;box-shadow:0 10px 40px #667eea66;color:#fff;display:flex;gap:15px;overflow:hidden;padding:20px;position:relative}.notification.error{background:linear-gradient(135deg,#f093fb,#f5576c);box-shadow:0 10px 40px #f5576c66}.notification:before{animation:progressBar 5s linear;background:#fffc;bottom:0;content:"";height:4px;left:0;position:absolute;width:100%}.notification-icon{align-items:center;animation:bounce .6s ease-out;background:#fff3;border-radius:12px;display:flex;flex-shrink:0;font-size:24px;height:48px;justify-content:center;width:48px}.notification-content{flex:1}.notification-title{font-size:16px;font-weight:600;margin-bottom:4px}.notification-message{font-size:14px;line-height:1.5;opacity:.95}.notification-close{align-items:center;background:none;border:none;color:#fff;cursor:pointer;display:flex;font-size:20px;height:24px;justify-content:center;opacity:.7;padding:0;transition:opacity .3s;width:24px}.notification-close:hover{opacity:1}@keyframes slideInRight{0%{opacity:0;transform:translate(400px)}to{opacity:1;transform:translate(0)}}@keyframes fadeOut{0%{opacity:1}to{opacity:0;transform:translate(400px)}}@keyframes bounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes progressBar{0%{width:100%}to{width:0}}@keyframes scaleIn{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes checkmarkStroke{to{stroke-dashoffset:0}}@media (max-width:576px){.notification-container{left:10px;max-width:none;right:10px}}
