    .rscan-login-page {
      min-height: 100vh;
      background:
        linear-gradient(135deg, rgba(0, 196, 187, .15), rgba(255, 255, 255, 0) 38%),
        linear-gradient(180deg, #f8fbfd 0%, #e7f2f7 100%) !important;
      font-family: var(--exzy-font, "Kanit", "Prompt", sans-serif) !important;
    }

    .rscan-login-shell {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 100vh;
      width: 100%;
      padding: 32px 18px;
    }

    .rscan-login-page.login-page .rscan-login-box {
      width: min(470px, calc(100vw - 32px));
      margin: 0;
    }

    .rscan-login-card {
      position: relative;
      overflow: hidden;
      border: 1px solid #d9e6ef !important;
      border-radius: 18px !important;
      background: rgba(255, 255, 255, .96) !important;
      box-shadow: 0 26px 70px rgba(0, 64, 129, .14) !important;
    }

    .rscan-login-card::before {
      content: "";
      position: absolute;
      top: 0;
      right: 0;
      left: 0;
      height: 4px;
      background: linear-gradient(90deg, #00c4bb 0%, #004081 100%);
    }

    .rscan-login-card-header {
      border-bottom: 1px solid #e4edf4 !important;
      background: #ffffff !important;
      padding: 20px 30px 14px !important;
    }

    .rscan-login-brand {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 100%;
      margin: 0;
      line-height: 1;
      text-decoration: none !important;
    }

    .rscan-login-brand-logo {
      display: block;
      width: 108px;
      height: 108px;
      max-width: min(34vw, 118px);
      object-fit: contain;
      filter: drop-shadow(0 10px 22px rgba(0, 64, 129, .14));
    }

    .rscan-login-brand-title {
      display: block;
      margin-top: 10px;
      margin-bottom: 2px;
      font-size: 1.65rem;
      font-weight: 800;
      letter-spacing: 0.02em;
      line-height: 1.25;
      text-align: center;
      background: linear-gradient(90deg, #00c4bb 0%, #008ca8 48%, #004081 100%) !important;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      -webkit-text-fill-color: transparent !important;
      color: #004081 !important;
      font-family: var(--exzy-font, "Kanit", "Prompt", sans-serif);
      user-select: none;
    }

    .rscan-login-brand-plus {
      display: inline-block;
      background-image: linear-gradient(90deg, #ffdc45 0%, #ff8a00 50%, #ef4444 100%) !important;
      background-repeat: no-repeat;
      background-size: 100% 100%;
      -webkit-background-clip: text !important;
      background-clip: text !important;
      color: transparent !important;
      font-size: 1.32em;
      line-height: .78;
      margin-left: 2px;
      vertical-align: -0.08em;
      -webkit-text-fill-color: transparent !important;
    }

    .rscan-login-card-body {
      padding: 0 34px 30px !important;
    }

    .rscan-login-subtitle {
      margin: 0 -34px 24px;
      padding: 11px 24px;
      border-bottom: 1px solid #edf3f8;
      color: #5f708a;
      font-size: .95rem;
      font-weight: 700;
      letter-spacing: 0;
      background: #fbfdff;
    }

    .rscan-login-form {
      width: 100%;
      max-width: 390px;
      margin: 0 auto;
    }

    .rscan-login-field {
      align-items: stretch;
      border-radius: 14px;
      box-shadow: 0 8px 18px rgba(8, 26, 56, .06);
    }

    .rscan-login-field .form-control {
      height: 54px;
      border-color: #d9e6ef !important;
      border-right: 0;
      border-radius: 14px 0 0 14px !important;
      background: #f8fbff !important;
      color: #172b45;
      font-size: 1rem;
      font-weight: 600;
      padding: 0 16px;
      box-shadow: none !important;
    }

    .rscan-login-field .form-control::placeholder {
      color: #96a8bd;
      font-weight: 600;
    }

    .rscan-login-field .input-group-append {
      margin-left: 0;
    }

    .rscan-login-field .input-group-text {
      width: 56px;
      justify-content: center;
      border-color: #d9e6ef !important;
      border-left: 0;
      border-radius: 0 14px 14px 0 !important;
      background: #f1f7fb !important;
      color: #004081;
      font-size: 1.05rem;
    }

    .rscan-login-field:focus-within .form-control,
    .rscan-login-field:focus-within .input-group-text {
      border-color: #00c4bb !important;
    }

    .rscan-login-field:focus-within {
      box-shadow: 0 0 0 .18rem rgba(0, 196, 187, .14);
    }

    .rscan-login-field .invalid-feedback {
      flex-basis: 100%;
      margin: 6px 4px 0;
      font-weight: 600;
    }

    .rscan-login-options {
      margin: 3px 0 0;
      color: #405572;
      font-weight: 700;
    }

    .rscan-login-options label {
      margin-bottom: 0;
    }

    .rscan-login-actions {
      margin: 24px 0 0 !important;
      padding: 0;
    }

    .rscan-login-submit {
      height: 50px;
      border: 0;
      border-radius: 14px !important;
      font-size: 15px;
      font-weight: 900;
      box-shadow: 0 12px 24px rgba(0, 91, 137, .22);
    }

    .rscan-login-submit:disabled {
      cursor: wait;
      opacity: .78;
    }

    @media (max-width: 575.98px) {
      .rscan-login-shell {
        padding: 24px 14px;
      }

      .rscan-login-card-body {
        padding: 0 22px 24px !important;
      }

      .rscan-login-subtitle {
        margin-right: -22px;
        margin-left: -22px;
      }
    }

    .month-loading-overlay {
      align-items: center;
      background: rgba(2, 6, 23, .72);
      backdrop-filter: blur(4px);
      display: none;
      justify-content: center;
      inset: 0;
      pointer-events: none;
      position: fixed;
      z-index: 5000;
    }

    .month-loading-overlay.is-active {
      display: flex;
      pointer-events: auto;
    }

    .month-loading-overlay[aria-hidden="true"] {
      display: none !important;
      pointer-events: none !important;
    }

    .month-loading-card {
      background: linear-gradient(180deg, rgba(15, 23, 42, .96), rgba(8, 13, 32, .96));
      border: 1px solid rgba(0, 196, 187, .22);
      border-radius: var(--exzy-radius-lg);
      box-shadow: 0 24px 70px rgba(0, 0, 0, .35);
      color: #e0f2fe;
      padding: 28px 24px;
      text-align: center;
      width: min(430px, calc(100vw - 32px));
      transition: var(--exzy-transition);
    }

    .month-loading-spinner {
      animation: monthLoadingSpin .85s linear infinite;
      border: 6px solid rgba(148, 163, 184, .28);
      border-radius: 50%;
      border-right-color: var(--exzy-primary-cyan);
      border-top-color: var(--exzy-primary-cyan);
      height: 66px;
      margin: 0 auto 16px;
      width: 66px;
    }

    .month-loading-title {
      font-size: 18px;
      font-weight: 800;
      margin: 0 0 6px;
    }

    .month-loading-text {
      color: #9fb0c7;
      font-size: 13px;
      line-height: 1.55;
      margin: 0;
    }

    .month-loading-progress {
      margin-top: 16px;
    }

    .month-loading-progress-head {
      align-items: center;
      color: #dbeafe;
      display: flex;
      font-size: 12px;
      font-weight: 700;
      justify-content: space-between;
      margin-bottom: 7px;
    }

    .month-loading-progress-track {
      background: rgba(148, 163, 184, .24);
      border-radius: 999px;
      box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08);
      height: 10px;
      overflow: hidden;
    }

    .month-loading-progress-bar {
      background: var(--exzy-primary-gradient);
      border-radius: inherit;
      box-shadow: 0 0 18px rgba(0, 196, 187, .34);
      height: 100%;
      transition: width .35s ease;
      width: 8%;
    }

    @keyframes monthLoadingSpin {
      to {
        transform: rotate(360deg);
      }
    }
