 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 body {
     font-family: 'Poppins', sans-serif;
     display: flex;
     align-items: center;
     justify-content: center;
     min-height: 100vh;
     background: white;
     padding: 20px;
 }

 .container {
     width: 100%;
     max-width: 420px;
 }

 .login-box {
     background: rgba(255, 255, 255, 0.95);
     border-radius: 20px;
     box-shadow: 0 15px 50px rgba(0, 0, 0, 0.2);
     padding: 40px;
     backdrop-filter: blur(10px);
 }

 .logo {
     text-align: center;
     margin-bottom: 30px;
 }

 .logo img {
     width: 80px;
     height: auto;
     margin-bottom: 15px;
     filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
 }

 .logo h2 {
     font-size: 24px;
     color: #e904d6;
     font-weight: 700;
     margin-bottom: 5px;
 }

 .logo p {
     font-size: 14px;
     color: black;
     font-weight: 400;
 }

 h2 {
     font-size: 28px;
     color: #333;
     text-align: center;
     margin-bottom: 30px;
     font-weight: 700;
 }

 .input-group {
     position: relative;
     margin-bottom: 25px;
 }

 .input-group i {
     position: absolute;
     left: 15px;
     top: 50%;
     transform: translateY(-50%);
     color: #999;
     font-size: 18px;
     transition: color 0.3s ease;
 }

 .input-group input {
     width: 100%;
     padding: 14px 15px 14px 45px;
     border: 2px solid #e0e0e0;
     border-radius: 10px;
     font-size: 15px;
     transition: all 0.3s ease;
     background: #f8f9fa;
 }

 .input-group input:focus {
     outline: none;
     border-color: #667eea;
     background: white;
     box-shadow: 0 0 0 4px rgba(102, 126, 234, 0.1);
 }

 .input-group input:focus+i {
     color: #667eea;
 }

 .input-group label {
     position: absolute;
     left: 45px;
     top: 50%;
     transform: translateY(-50%);
     color: #999;
     font-size: 15px;
     transition: all 0.3s ease;
     pointer-events: none;
     background: transparent;
     padding: 0 5px;
 }

 .input-group input:focus+i+label,
 .input-group input:valid+i+label {
     top: -10px;
     font-size: 12px;
     color: #667eea;
     background: white;
     left: 40px;
     font-weight: 600;
 }

 .input-error input {
     border-color: #ff6b6b !important;
     background: #fff5f5 !important;
 }

 .input-error i {
     color: #ff6b6b !important;
 }

 .input-error label {
     color: #ff6b6b !important;
 }

 button[type="submit"] {
     width: 100%;
     background: #e904d6;
     color: white;
     padding: 14px 20px;
     border: none;
     border-radius: 10px;
     cursor: pointer;
     font-size: 16px;
     font-weight: 600;
     transition: all 0.3s ease;
     box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
 }

 button[type="submit"]:hover {
     transform: translateY(-2px);
     box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
 }

 button[type="submit"]:active {
     transform: translateY(0);
 }

 .back-link {
     text-align: center;
     margin-top: 20px;
 }

 .back-link a {
     color: #667eea;
     text-decoration: none;
     font-size: 14px;
     font-weight: 600;
     transition: color 0.3s ease;
 }

 .back-link a:hover {
     color: #764ba2;
 }

 .notification {
     position: fixed;
     top: 20px;
     right: 20px;
     background: linear-gradient(135deg, #ff6b6b, #ee5a24);
     color: white;
     padding: 16px 20px;
     border-radius: 12px;
     box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
     display: flex;
     align-items: center;
     gap: 12px;
     font-size: 14px;
     min-width: 320px;
     max-width: 400px;
     animation: slideInRight 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55),
         fadeOut 0.5s ease-in 4.5s forwards;
     z-index: 1000;
 }

 .notification.success {
     background: linear-gradient(135deg, #56ab2f, #a8e063);
 }

 .notification .icon {
     font-size: 24px;
     animation: bounceIn 0.6s ease-out;
 }

 .notification .content {
     flex: 1;
 }

 .notification .title {
     font-weight: 700;
     font-size: 15px;
     margin-bottom: 4px;
 }

 .notification .message {
     font-size: 13px;
     opacity: 0.95;
 }

 .notification .close-btn {
     background: none;
     border: none;
     color: white;
     font-size: 20px;
     cursor: pointer;
     opacity: 0.8;
     transition: all 0.3s ease;
     padding: 0;
     width: 24px;
     height: 24px;
     display: flex;
     align-items: center;
     justify-content: center;
 }

 .notification .close-btn:hover {
     opacity: 1;
     transform: rotate(90deg);
 }

 @keyframes slideInRight {
     from {
         transform: translateX(120%);
         opacity: 0;
     }

     to {
         transform: translateX(0);
         opacity: 1;
     }
 }

 @keyframes fadeOut {
     to {
         opacity: 0;
         transform: translateX(120%);
     }
 }

 @keyframes bounceIn {
     0% {
         transform: scale(0);
     }

     50% {
         transform: scale(1.2);
     }

     100% {
         transform: scale(1);
     }
 }

 @media only screen and (max-width: 768px) {
     body {
         padding: 15px;
     }

     .login-box {
         padding: 30px 25px;
     }

     .logo img {
         width: 70px;
     }

     .logo h2 {
         font-size: 22px;
     }

     h2 {
         font-size: 24px;
         margin-bottom: 25px;
     }

     .input-group input {
         padding: 12px 12px 12px 40px;
         font-size: 14px;
     }

     .input-group i {
         left: 12px;
         font-size: 16px;
     }

     .input-group label {
         left: 40px;
         font-size: 14px;
     }

     button[type="submit"] {
         padding: 12px 20px;
         font-size: 15px;
     }

     .notification {
         min-width: 280px;
         max-width: calc(100vw - 40px);
         right: 20px;
         top: 20px;
         padding: 14px 16px;
     }

     .notification .title {
         font-size: 14px;
     }

     .notification .message {
         font-size: 12px;
     }
 }

 @media only screen and (max-width: 480px) {
     body {
         padding: 10px;
     }

     .login-box {
         padding: 25px 20px;
     }

     .logo img {
         width: 60px;
     }

     .logo h2 {
         font-size: 20px;
     }

     .logo p {
         font-size: 12px;
     }

     h2 {
         font-size: 22px;
         margin-bottom: 20px;
     }

     .input-group {
         margin-bottom: 20px;
     }

     .notification {
         min-width: 260px;
         right: 10px;
         top: 10px;
         padding: 12px 14px;
     }

     .notification .icon {
         font-size: 20px;
     }
 }

 @media only screen and (max-width: 360px) {
     .login-box {
         padding: 20px 15px;
     }

     .notification {
         font-size: 13px;
     }
 }