/* ═══════════════════════════════════════════════════════

   NM-AUTH — Client Portal login / registration

   Matches UI-Design/signin_customer.png

═══════════════════════════════════════════════════════ */



/* Modal overrides */

.nm-auth-modal-wrap .modal-dialog.nm-auth-dialog {

  width: min(980px, 94vw);

  max-width: 980px;

  margin: 24px auto;

}

.nm-auth-modal-wrap .modal-content.nm-auth-modal-content {

  background: transparent;

  border: none;

  box-shadow: none;

  position: relative;

}

.nm-auth-modal-wrap .modal-backdrop.in,

.nm-auth-modal-wrap.show ~ .modal-backdrop {

  background: rgba(2, 6, 14, .88);

}



/* Shell */

.nm-auth-shell {

  background: var(--bg-1);

  border: 1px solid rgba(26, 110, 255, .18);

  border-radius: 16px;

  overflow: hidden;

  box-shadow:

    0 32px 90px rgba(0, 0, 0, .65),

    0 0 0 1px rgba(255, 255, 255, .04) inset,

    0 0 60px rgba(26, 110, 255, .1);

}

.nm-auth-layout {

  display: grid;

  grid-template-columns: 42% 58%;

  min-height: 560px;

}



/* ── Brand panel ───────────────────────────────────── */

.nm-auth-brand {

  position: relative;

  background:

    radial-gradient(ellipse at 15% 20%, rgba(26, 110, 255, .18) 0%, transparent 50%),

    radial-gradient(ellipse at 85% 80%, rgba(61, 139, 255, .1) 0%, transparent 45%),

    linear-gradient(165deg, #071222 0%, #050a14 50%, #0a1830 100%);

  border-right: 1px solid var(--b-sub);

  padding: 26px 28px 18px;

  display: flex;

  flex-direction: column;

  overflow: hidden;

}

.nm-auth-brand::before {

  content: '';

  position: absolute;

  inset: 0;

  background-image:

    radial-gradient(1px 1px at 20% 30%, rgba(255,255,255,.35) 0%, transparent 100%),

    radial-gradient(1px 1px at 60% 15%, rgba(255,255,255,.25) 0%, transparent 100%),

    radial-gradient(1px 1px at 80% 55%, rgba(255,255,255,.2) 0%, transparent 100%),

    radial-gradient(1px 1px at 35% 70%, rgba(255,255,255,.15) 0%, transparent 100%),

    radial-gradient(1px 1px at 90% 85%, rgba(255,255,255,.2) 0%, transparent 100%);

  pointer-events: none;

  opacity: .6;

}

.nm-auth-brand-logo {

  position: relative;

  z-index: 1;

  display: inline-block;

  margin-bottom: 24px;

}

.nm-auth-brand-logo img {

  height: 44px;

  width: auto;

  filter: brightness(1.05);

}

.nm-auth-brand-content {

  position: relative;

  z-index: 1;

  flex: 1;

}

.nm-auth-brand-h2 {

  font-family: var(--fd);

  font-size: clamp(21px, 2.2vw, 27px);

  font-weight: 800;

  color: var(--t1);

  line-height: 1.25;

  margin-bottom: 10px;

}

.nm-auth-acc {

  background: linear-gradient(90deg, #1a6eff 0%, #4da6ff 50%, #7b61ff 100%);

  -webkit-background-clip: text;

  -webkit-text-fill-color: transparent;

  background-clip: text;

}

.nm-auth-brand-desc {

  font-size: 13px;

  color: var(--t2);

  line-height: 1.6;

  margin-bottom: 22px;

  max-width: 310px;

}

.nm-auth-features {

  list-style: none;

  padding: 0;

  margin: 0;

  display: flex;

  flex-direction: column;

  gap: 14px;

}

.nm-auth-features li {

  display: flex;

  align-items: flex-start;

  gap: 12px;

}

.nm-auth-feature-ico {

  width: 38px;

  height: 38px;

  flex-shrink: 0;

  background: rgba(26, 110, 255, .1);

  border: 1px solid rgba(26, 110, 255, .28);

  border-radius: 9px;

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 15px;

  color: var(--blue-l);

}

.nm-auth-feature-title {

  font-size: 12.5px;

  font-weight: 700;

  color: var(--t1);

  margin-bottom: 2px;

}

.nm-auth-feature-desc {

  font-size: 11px;

  color: var(--t3);

  line-height: 1.45;

}



.nm-auth-brand-visual {

  position: relative;

  z-index: 1;

  margin-top: auto;

  padding-top: 8px;

  display: flex;

  align-items: flex-end;

  justify-content: center;

  min-height: 160px;

}

.nm-auth-lock-art {

  width: min(280px, 100%);

  height: auto;

  object-fit: contain;

  filter: drop-shadow(0 0 24px rgba(26, 110, 255, .35));

  margin: 0 auto;

}



/* ── Form panel ────────────────────────────────────── */

.nm-auth-panel {

  position: relative;

  background: #060c16;

  padding: 28px 34px 20px;

  display: flex;

  flex-direction: column;

}

.nm-auth-close {

  position: absolute;

  top: 14px;

  right: 14px;

  z-index: 5;

  width: 34px;

  height: 34px;

  border-radius: 8px;

  background: rgba(255, 255, 255, .05);

  border: 1px solid rgba(255, 255, 255, .1);

  color: var(--t2);

  font-size: 15px;

  display: flex;

  align-items: center;

  justify-content: center;

  transition: var(--ease);

}

.nm-auth-close:hover {

  color: #fff;

  border-color: rgba(26, 110, 255, .4);

  background: rgba(26, 110, 255, .12);

}

.nm-auth-panel-head {

  text-align: center;

  margin-bottom: 20px;

  padding-top: 4px;

}

.nm-auth-avatar {

  width: 50px;

  height: 50px;

  margin: 0 auto 12px;

  border-radius: 50%;

  background: rgba(26, 110, 255, .12);

  border: 2px solid rgba(26, 110, 255, .4);

  display: flex;

  align-items: center;

  justify-content: center;

  font-size: 20px;

  color: var(--blue-l);

  box-shadow: 0 0 20px rgba(26, 110, 255, .18);

}

.nm-auth-panel-title {

  font-family: var(--fd);

  font-size: 21px;

  font-weight: 800;

  color: var(--t1);

  margin-bottom: 5px;

}

.nm-auth-panel-title[hidden],

.nm-auth-panel-sub[hidden] {

  display: none !important;

}

.nm-auth-panel-sub {

  font-size: 12.5px;

  color: var(--t2);

}



.nm-auth-panel .nm-alert-stack {
  margin-bottom: 14px;
}

.nm-auth-panel .register_error {

  margin-bottom: 14px;

}



/* tabs */

.nm-auth-tabs {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 8px;

  margin-bottom: 20px;

}

.nm-auth-tab {

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 7px;

  padding: 10px 12px;

  border-radius: 9px;

  background: rgba(255, 255, 255, .03);

  border: 1px solid rgba(255, 255, 255, .08);

  color: var(--t3);

  font-size: 12.5px;

  font-weight: 600;

  transition: var(--ease);

}

.nm-auth-tab i {

  font-size: 13px;

}

.nm-auth-tab:hover {

  border-color: rgba(26, 110, 255, .25);

  color: var(--t2);

}

.nm-auth-tab.is-active {

  background: rgba(26, 110, 255, .08);

  border-color: rgba(26, 110, 255, .55);

  color: var(--blue-l);

  box-shadow: 0 0 16px rgba(26, 110, 255, .15), inset 0 0 0 1px rgba(26, 110, 255, .1);

}



.nm-auth-form-panel[hidden] {

  display: none !important;

}

.nm-auth-form-panel.is-active {

  display: block;

}



.nm-auth-form-row {

  display: grid;

  grid-template-columns: 1fr 1fr;

  gap: 12px;

}

.nm-auth-field {

  position: relative;

  margin-bottom: 12px;

}

.nm-auth-form-row .nm-auth-field {

  margin-bottom: 12px;

}

.nm-auth-field-ico {

  position: absolute;

  left: 14px;

  top: 50%;

  transform: translateY(-50%);

  font-size: 14px;

  color: var(--blue-l);

  opacity: .8;

  pointer-events: none;

  z-index: 1;

}

.nm-auth-input {

  width: 100%;

  background: rgba(255, 255, 255, .03) !important;

  border: 1px solid rgba(255, 255, 255, .1) !important;

  border-radius: 9px !important;

  padding: 12px 44px 12px 42px !important;

  font-family: var(--ff) !important;

  font-size: 13px !important;

  color: var(--t1) !important;

  outline: none;

  transition: var(--ease);

  box-shadow: none !important;

  height: auto !important;

}

.nm-auth-input::placeholder {

  color: var(--t3) !important;

}

.nm-auth-input:focus {

  border-color: rgba(26, 110, 255, .45) !important;

  box-shadow: 0 0 0 3px rgba(26, 110, 255, .1) !important;

}

.nm-auth-pw-toggle {

  position: absolute;

  right: 10px;

  top: 50%;

  transform: translateY(-50%);

  width: 28px;

  height: 28px;

  border-radius: 6px;

  display: flex;

  align-items: center;

  justify-content: center;

  color: var(--t3);

  font-size: 13px;

  transition: var(--ease);

  z-index: 1;

}

.nm-auth-pw-toggle:hover {

  color: var(--blue-l);

  background: rgba(26, 110, 255, .1);

}



.nm-auth-captcha {

  margin-bottom: 12px;

  transform-origin: left top;

  transform: scale(.92);

}



.nm-auth-options {

  display: flex;

  align-items: center;

  justify-content: space-between;

  gap: 12px;

  margin-bottom: 16px;

  flex-wrap: wrap;

}

.nm-auth-remember {

  display: inline-flex;

  align-items: center;

  gap: 7px;

  font-size: 12px;

  color: var(--t2);

  cursor: pointer;

  margin: 0;

}

.nm-auth-remember input {

  width: 14px;

  height: 14px;

  accent-color: var(--blue);

  border-radius: 3px;

}

.nm-auth-forgot {

  font-size: 12px;

  font-weight: 600;

  color: var(--blue-l);

}

.nm-auth-forgot:hover {

  color: var(--blue);

  text-decoration: underline;

}



.nm-auth-submit {

  width: 100%;

  display: inline-flex;

  align-items: center;

  justify-content: center;

  gap: 9px;

  padding: 13px 20px;

  background: var(--blue);

  color: #fff;

  border: none;

  border-radius: 9px;

  font-family: var(--ff);

  font-size: 14px;

  font-weight: 600;

  cursor: pointer;

  transition: var(--ease);

  box-shadow: 0 6px 22px rgba(26, 110, 255, .35);

}

.nm-auth-submit i {

  font-size: 14px;

}

.nm-auth-submit:hover {

  background: var(--blue-l);

  transform: translateY(-1px);

  box-shadow: 0 10px 28px rgba(26, 110, 255, .4);

}



.nm-auth-privacy {

  margin-top: auto;

  padding-top: 16px;

  font-size: 11px;

  color: var(--t3);

  text-align: center;

  line-height: 1.5;

  display: flex;

  align-items: flex-start;

  justify-content: center;

  gap: 7px;

}

.nm-auth-privacy i {

  color: var(--blue);

  font-size: 12px;

  margin-top: 1px;

  flex-shrink: 0;

}



/* trust footer */

.nm-auth-trust {

  display: flex;

  flex-wrap: wrap;

  align-items: center;

  justify-content: center;

  gap: 0;

  padding: 12px 20px;

  background: #040810;

  border-top: 1px solid var(--b-sub);

}

.nm-auth-trust-item {

  display: inline-flex;

  align-items: center;

  gap: 6px;

  font-size: 10.5px;

  color: var(--t3);

  white-space: nowrap;

  padding: 4px 22px;

  position: relative;

}

.nm-auth-trust-item + .nm-auth-trust-item::before {

  content: '';

  position: absolute;

  left: 0;

  top: 50%;

  transform: translateY(-50%);

  width: 1px;

  height: 14px;

  background: rgba(255, 255, 255, .1);

}

.nm-auth-trust-item i {

  font-size: 11px;

  color: var(--blue-l);

}



/* Full page variant */

.nm-auth--page {

  min-height: calc(100vh - 80px);

  padding: 100px 20px 48px;

  display: flex;

  align-items: center;

  justify-content: center;

  background: var(--bg-0);

}

.nm-auth--page .nm-auth-shell {

  width: min(980px, 100%);

}

.nm-auth--login-only .nm-auth-panel-head {

  margin-bottom: 24px;

}

.nm-auth--login-only .nm-auth-panels {

  margin-top: 0;

}



/* Responsive */

@media (max-width: 860px) {

  .nm-auth-layout {

    grid-template-columns: 1fr;

    min-height: 0;

  }

  .nm-auth-brand {

    border-right: none;

    border-bottom: 1px solid var(--b-sub);

    padding-bottom: 16px;

  }

  .nm-auth-brand-visual {

    min-height: 120px;

  }

  .nm-auth-lock-art {

    width: min(220px, 70%);

  }

  .nm-auth-trust {

    flex-direction: column;

    align-items: flex-start;

    gap: 8px;

    padding: 14px 18px;

  }

  .nm-auth-trust-item {

    padding: 2px 0;

  }

  .nm-auth-trust-item + .nm-auth-trust-item::before {

    display: none;

  }

}



@media (max-width: 520px) {

  .nm-auth-modal-wrap .modal-dialog.nm-auth-dialog {

    margin: 10px auto;

    width: calc(100vw - 12px);

  }

  .nm-auth-panel {

    padding: 22px 16px 16px;

  }

  .nm-auth-brand {

    padding: 20px 16px 14px;

  }

  .nm-auth-form-row {

    grid-template-columns: 1fr;

  }

  .nm-auth-options {

    flex-direction: column;

    align-items: flex-start;

  }

}

