    * { box-sizing: border-box; }

    body.login-page {
      font-family: 'Inter', sans-serif;
      margin: 0;
      min-height: 100vh;
      display: flex;
      align-items: center;
      justify-content: center;
      background: linear-gradient(135deg, #0198a9 0%, #017a87 50%, #015f6a 100%);
      background-attachment: fixed;
    }

    /* floating shapes */
    body.login-page::before,
    body.login-page::after {
      content: '';
      position: fixed;
      border-radius: 50%;
      opacity: .07;
      pointer-events: none;
    }
    body.login-page::before {
      width: 500px; height: 500px;
      background: #fff;
      top: -120px; right: -100px;
    }
    body.login-page::after {
      width: 350px; height: 350px;
      background: #fff;
      bottom: -80px; left: -60px;
    }

    /* loader overlay */
    #loader {
      position: fixed !important;
      inset: 0;
      background: rgba(0,0,0,.45);
      backdrop-filter: blur(4px);
      z-index: 9999;
    }

    /* card */
    .login-box {
      width: 100%;
      max-width: 420px;
      padding: 20px;
      z-index: 1;
    }

    .login-box .card {
      border: none;
      border-radius: 16px;
      box-shadow: 0 20px 60px rgba(0,0,0,.2), 0 1px 3px rgba(0,0,0,.08);
      overflow: hidden;
      animation: slideUp .5s ease-out;
    }

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

    .login-card-body {
      padding: 40px 35px 30px !important;
    }

    /* logo area */
    .login-logo-area {
      text-align: center;
      margin-bottom: 8px;
    }

    .login-logo-area .brand-logo {
      max-width: 200px;
      height: auto;
      margin-bottom: 12px;
      background: linear-gradient(135deg, #0198a9, #017a87);
      padding: 16px 24px;
      border-radius: 14px;
      box-shadow: 0 4px 15px rgba(1,152,169,.35);
    }

    .login-logo-area p {
      font-size: 14px;
      color: #6b7280;
      margin: 0;
    }

    /* form groups */
    .form-group-modern {
      position: relative;
      margin-bottom: 20px;
    }

    .form-group-modern .form-icon {
      position: absolute;
      left: 14px;
      top: 50%;
      transform: translateY(-50%);
      color: #9ca3af;
      font-size: 15px;
      transition: color .2s;
      z-index: 2;
    }

    .form-group-modern .form-control {
      height: 48px;
      padding: 0 16px 0 42px;
      border: 2px solid #e5e7eb;
      border-radius: 10px;
      font-size: 14px;
      font-family: 'Inter', sans-serif;
      color: #1a1a2e;
      background: #f9fafb;
      transition: all .25s ease;
    }

    .form-group-modern .form-control::placeholder {
      color: #9ca3af;
    }

    .form-group-modern .form-control:focus {
      border-color: #0198a9;
      background: #fff;
      box-shadow: 0 0 0 4px rgba(1,152,169,.1);
      outline: none;
    }

    .form-group-modern .form-control:focus ~ .form-icon {
      color: #0198a9;
    }

    /* toggle password */
    .toggle-password {
      position: absolute;
      right: 14px;
      top: 50%;
      transform: translateY(-50%);
      background: none;
      border: none;
      color: #9ca3af;
      cursor: pointer;
      padding: 4px;
      font-size: 15px;
      z-index: 2;
      transition: color .2s;
    }

    .toggle-password:hover {
      color: #0198a9;
    }

    /* submit button */
    .btn-login {
      width: 100%;
      height: 48px;
      background: linear-gradient(135deg, #0198a9, #017a87);
      border: none;
      border-radius: 10px;
      color: #fff;
      font-size: 15px;
      font-weight: 600;
      font-family: 'Inter', sans-serif;
      cursor: pointer;
      transition: all .25s ease;
      position: relative;
      overflow: hidden;
      letter-spacing: .2px;
    }

    .btn-login:hover {
      transform: translateY(-1px);
      box-shadow: 0 6px 20px rgba(1,152,169,.4);
    }

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

    .btn-login i {
      margin-left: 8px;
      transition: transform .2s;
    }

    .btn-login:hover i {
      transform: translateX(3px);
    }

    /* divider */
    .login-divider {
      display: flex;
      align-items: center;
      margin: 24px 0 20px;
    }

    .login-divider::before,
    .login-divider::after {
      content: '';
      flex: 1;
      height: 1px;
      background: #e5e7eb;
    }

    .login-divider span {
      padding: 0 12px;
      font-size: 12px;
      color: #9ca3af;
      text-transform: uppercase;
      letter-spacing: .5px;
    }

    /* bottom links */
    .login-links {
      display: flex;
      justify-content: space-between;
      gap: 10px;
    }

    .login-links a {
      font-size: 13px;
      color: #0198a9;
      text-decoration: none;
      font-weight: 500;
      transition: color .2s;
    }

    .login-links a:hover {
      color: #017a87;
    }

    /* bottom branding */
    .login-footer {
      text-align: center;
      margin-top: 24px;
    }

    .login-footer span {
      font-size: 12px;
      color: rgba(255,255,255,.6);
      letter-spacing: .3px;
    }

    /* toast notification */
    .login-toast {
      position: fixed;
      top: 24px;
      right: 24px;
      padding: 14px 20px;
      border-radius: 10px;
      font-size: 14px;
      font-family: 'Inter', sans-serif;
      color: #fff;
      z-index: 10000;
      transform: translateX(120%);
      transition: transform .35s ease;
      max-width: 380px;
      box-shadow: 0 8px 24px rgba(0,0,0,.15);
    }

    .login-toast.show {
      transform: translateX(0);
    }

    .login-toast.toast-error   { background: #ef4444; }
    .login-toast.toast-warning { background: #f59e0b; }
    .login-toast.toast-success { background: #10b981; }

    /* responsive */
    @media (max-width: 480px) {
      .login-box { padding: 16px; }
      .login-card-body { padding: 30px 24px 24px !important; }
      .login-links { flex-direction: column; align-items: center; gap: 8px; }
    }
