    body {
      height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(135deg, #0d1117, #0a2342, #001f3f);
      background-size: 400% 400%;
      animation: gradientMove 15s ease infinite;
      color: #fff;
      font-family: 'Segoe UI', sans-serif;
    }

    @keyframes gradientMove {
      0% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }

    .login-card {
      width: 90%;
      max-width: 420px;
      background: rgba(255, 255, 255, 0.05);
      border: 1px solid rgba(255, 255, 255, 0.15);
      border-radius: 20px;
      backdrop-filter: blur(10px);
      padding: 3rem 2.5rem;
      text-align: center;
      box-shadow: 0 0 30px rgba(0,0,0,0.3);
      animation: fadeIn 1.5s ease;
      position: relative;
    }

    @keyframes fadeIn {
      from { opacity: 0; transform: translateY(20px); }
      to { opacity: 1; transform: translateY(0); }
    }

    .login-icon {
      font-size: 3.5rem;
      color: #00d4ff;
      margin-bottom: 1rem;
      animation: float 3s ease-in-out infinite;
    }

    @keyframes float {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-5px); }
    }

    h1 {
      font-size: 1.8rem;
      font-weight: 600;
      margin-bottom: 1.2rem;
    }

    input {
      background: rgba(255, 255, 255, 0.08) !important;
      border: 1px solid rgba(255, 255, 255, 0.15);
      color: #fff !important;
    }

    input:focus {
      border-color: #00d4ff;
      box-shadow: 0 0 0 0.2rem rgba(0,212,255,0.25);
    }

    .btn-custom {
      background: #00d4ff;
      border: none;
      color: #001f3f;
      font-weight: 600;
      padding: 0.75rem 2rem;
      border-radius: 50px;
      transition: all 0.3s ease;
      width: 100%;
    }

    .btn-custom:hover {
      background: #00a6c2;
      transform: scale(1.05);
      color: #fff;
    }

    a {
      color: #00d4ff;
      text-decoration: none;
    }

    a:hover {
      text-decoration: underline;
    }

    /* Spinner overlay */
    .overlay {
      display: none;
      position: absolute;
      top: 0; left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.6);
      border-radius: 20px;
      align-items: center;
      justify-content: center;
      flex-direction: column;
    }

    .overlay.active {
      display: flex;
      animation: fadeInOverlay 0.5s ease;
    }

    @keyframes fadeInOverlay {
      from { opacity: 0; }
      to { opacity: 1; }
    }

    .error-msg {
      display: none;
      background: rgba(255, 0, 0, 0.15);
      border: 1px solid rgba(255, 0, 0, 0.25);
      color: #ff7777;
      border-radius: 10px;
      padding: 0.75rem;
      font-size: 0.9rem;
      margin-top: 1rem;
      animation: fadeInError 0.5s ease;
    }

    .error-msg.active {
      display: block;
    }

    @keyframes fadeInError {
      from { opacity: 0; transform: translateY(-5px); }
      to { opacity: 1; transform: translateY(0); }
    }

    footer {
      position: fixed;
      bottom: 15px;
      text-align: center;
      width: 100%;
      font-size: 0.85rem;
      color: #6c757d;
    }