 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 body {
     font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
     background: linear-gradient(135deg, #e3f2fd 0%, #f3e5f5 100%);
     min-height: 100vh;
 }

 .login-wrapper {
     width: 100%;
     min-height: 100vh;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 20px;
     background: linear-gradient(135deg, #e3f2fd 0%, #f3e5f5 100%);
     position: relative;
 }

 .login-wrapper::before {
     content: '';
     position: absolute;
     width: 300px;
     height: 300px;
     background: rgba(24, 95, 179, 0.05);
     border-radius: 50%;
     top: 10%;
     right: 10%;
     animation: float 8s ease-in-out infinite;
 }

 .login-wrapper::after {
     content: '';
     position: absolute;
     width: 250px;
     height: 250px;
     background: rgba(156, 39, 176, 0.05);
     border-radius: 50%;
     bottom: 10%;
     left: 10%;
     animation: float 10s ease-in-out infinite reverse;
 }

 @keyframes float {

     0%,
     100% {
         transform: translateY(0px);
     }

     50% {
         transform: translateY(-20px);
     }
 }

 .login-container {
     background: #ffffff;
     border-radius: 16px;
     box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
     overflow: hidden;
     width: 100%;
     max-width: 420px;
     position: relative;
     z-index: 1;
     animation: slideIn 0.4s ease-out;
 }

 @keyframes slideIn {
     from {
         opacity: 0;
         transform: translateY(20px);
     }

     to {
         opacity: 1;
         transform: translateY(0);
     }
 }

 .login-header {
     padding: 40px 40px 30px;
     text-align: center;
     background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
     color: white;
 }

 .logo-container {
     width: 80px;
     height: 80px;
     background: rgba(255, 255, 255, 0.95);
     border-radius: 16px;
     margin: 0 auto 20px;
     display: flex;
     align-items: center;
     justify-content: center;
     box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
 }

 .logo-container img {
     max-width: 100px;
     max-height: 90px;
 }

 .login-header h3 {
     margin: 0 0 8px;
     font-size: 26px;
     font-weight: 600;
     color: #ffffff;
     text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
 }

 .login-header p {
     margin: 0;
     font-size: 14px;
     color: rgba(255, 255, 255, 0.9);
 }

 .login-body {
     padding: 40px;
 }

 .form-group {
     margin-bottom: 24px;
 }

 .form-group label {
     display: block;
     margin-bottom: 8px;
     color: #333;
     font-size: 14px !important;
     font-weight: 500 !important;
 }

 span.required {
     color: #dc3545;
 }

 .form-control {
     width: 100%;
     padding: 13px 16px;
     border: 2px solid #e8eef3;
     border-radius: 10px;
     font-size: 15px;
     transition: all 0.3s ease;
     background: #f8fafb;
 }

 .form-control:focus {
     outline: none;
     border-color: #185fb3;
     background: #fff;
     box-shadow: 0 0 0 4px rgba(24, 95, 179, 0.08);
     transform: translateY(-1px);
 }

 .form-control::placeholder {
     color: #999;
 }

 .login-btn {
     width: 100%;
     padding: 14px;
     background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
     color: white !important;
     border: none;
     border-radius: 10px;
     font-size: 15px;
     font-weight: 600;
     cursor: pointer;
     transition: all 0.3s ease;
     margin-top: 8px;
     box-shadow: 0 4px 12px rgba(24, 95, 179, 0.3);
     position: relative;
     overflow: hidden;
 }

 .login-btn::before {
     content: '';
     position: absolute;
     top: 0;
     left: -100%;
     width: 100%;
     height: 100%;
     background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
     transition: left 0.5s;
 }

 .login-btn:hover {
     background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
     transform: translateY(-2px);
     box-shadow: 0 6px 20px rgba(24, 95, 179, 0.4);
 }

 .login-btn:hover::before {
     left: 100%;
 }

 .login-btn:active {
     transform: translateY(0);
 }

 .text-center {
     text-align: center;
 }

 .card {
     border: none;
     box-shadow: none;
 }

 .card-body {
     padding: 0;
 }

 @media (max-width: 767px) {
     .login-container {
         margin: 20px;
     }

     .login-header {
         padding: 30px 30px 24px;
     }

     .login-body {
         padding: 30px;
     }
 }

 /* Hide default Yii form layout classes */
 .col-lg-3,
 .col-lg-8,
 .col-lg-1 {
     width: 100%;
     padding: 0;
 }

 .form-horizontal .form-group {
     margin-right: 0;
     margin-left: 0;
 }

 .control-label {
     padding: 0;
     text-align: left;
 }