/* SuperAdmin login identity; the customer portal keeps its independent theme. */
html[data-portal="customer"] .admin-brand-mark,
html[data-portal="customer"] .admin-login-banner { display: none !important; }

html[data-portal="admin"] {
  color-scheme: dark;
  --admin-bg: #050c18;
  --admin-panel: #0b1727;
  --admin-line: rgba(126, 174, 229, .18);
  --admin-blue: #168bff;
  --admin-cyan: #24bdff;
}

html[data-portal="admin"] body.login-page {
  min-height: 100vh;
  min-height: 100dvh;
  padding: 32px 0;
  color: #f2f7ff;
  background:
    radial-gradient(ellipse at 12% 14%, rgba(0, 112, 255, .2), transparent 38%),
    radial-gradient(ellipse at 90% 86%, rgba(0, 194, 255, .11), transparent 36%),
    var(--admin-bg);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
}

html[data-portal="admin"] body.login-page::before {
  background-image:
    linear-gradient(rgba(87, 158, 232, .035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(87, 158, 232, .035) 1px, transparent 1px);
  background-size: 46px 46px;
}

html[data-portal="admin"] .login-container {
  position: relative;
  width: min(1120px, calc(100% - 48px));
  min-height: 620px;
  grid-template-columns: minmax(0, 1.04fr) minmax(420px, .96fr);
  border: 1px solid rgba(108, 170, 237, .23);
  border-radius: 22px;
  background: rgba(7, 17, 31, .96);
  box-shadow: 0 32px 100px rgba(0, 0, 0, .52), 0 0 56px rgba(0, 108, 255, .11);
  backdrop-filter: blur(18px);
}

html[data-portal="admin"] .brand-side {
  position: relative;
  min-width: 0;
  padding: clamp(38px, 5vw, 62px);
  background:
    radial-gradient(ellipse at 25% 8%, rgba(0, 128, 255, .2), transparent 49%),
    linear-gradient(148deg, rgba(8, 32, 62, .72), rgba(5, 16, 31, .28));
}

html[data-portal="admin"] .brand-side .brand {
  display: flex;
  align-items: center;
  gap: 15px;
  color: #f7fbff;
  font-size: 25px;
  font-weight: 800;
  letter-spacing: -.04em;
  line-height: 1;
}

html[data-portal="admin"] .admin-brand-mark {
  display: block;
  width: 54px;
  height: 54px;
  flex: 0 0 54px;
  border: 1px solid rgba(255, 255, 255, .8);
  border-radius: 14px;
  background: #fff;
  object-fit: contain;
  box-shadow: 0 8px 26px rgba(0, 105, 255, .25);
}

html[data-portal="admin"] .customer-brand-mark,
html[data-portal="admin"] .customer-highlights { display: none !important; }
html[data-portal="admin"] #portalBrandName { display: flex; flex-direction: column; gap: 5px; }
html[data-portal="admin"] #portalBrandName > span {
  color: #49baff;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .25em;
  text-transform: uppercase;
}

html[data-portal="admin"] .brand-side .badge {
  margin-top: 17px;
  padding: 8px 11px;
  border: 1px solid rgba(44, 164, 255, .28);
  border-radius: 999px;
  background: rgba(17, 117, 211, .13);
  color: #a5d9ff;
  font-size: 9px;
  font-weight: 750;
  letter-spacing: .15em;
}

html[data-portal="admin"] .brand-side h1 {
  max-width: 12ch;
  margin-top: 29px;
  color: #f1f7ff;
  font-size: clamp(37px, 4.2vw, 49px);
  font-weight: 760;
  letter-spacing: -.055em;
  line-height: 1.02;
}

html[data-portal="admin"] .brand-side p {
  max-width: 42ch;
  margin-top: 13px;
  color: #a5b9d0;
  font-size: 14px;
  line-height: 1.65;
}

html[data-portal="admin"] .admin-login-banner {
  display: block;
  width: 100%;
  height: clamp(122px, 14vw, 158px);
  margin-top: 21px;
  overflow: hidden;
  border: 1px solid rgba(64, 160, 240, .25);
  border-radius: 13px;
  background: #040d1e;
  box-shadow: 0 12px 30px rgba(0, 0, 0, .23);
}

html[data-portal="admin"] .admin-login-banner img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 46%;
}

html[data-portal="admin"] .status-api {
  gap: 9px;
  margin-top: auto;
  padding-top: 19px;
  color: #a5b8cc;
  font-size: 11px;
}
html[data-portal="admin"] .status-dot { width: 7px; height: 7px; }

html[data-portal="admin"] .login-side {
  min-width: 0;
  padding: clamp(38px, 5vw, 60px);
  border-left: 1px solid rgba(126, 174, 229, .14);
  background: linear-gradient(160deg, rgba(10, 23, 39, .98), rgba(7, 16, 29, .98));
}

html[data-portal="admin"] .login-side h2 {
  margin-bottom: 8px;
  color: #f4f8ff;
  font-size: clamp(25px, 2.6vw, 31px);
  font-weight: 750;
  letter-spacing: -.045em;
}

html[data-portal="admin"] .login-side .subtitle {
  margin-bottom: 27px;
  color: #a0b2c7;
  font-size: 13px;
  line-height: 1.55;
}

html[data-portal="admin"] .login-side .form { display: none; }
html[data-portal="admin"] .login-side .form.active { display: block; }
html[data-portal="admin"] .login-side .field { margin-bottom: 15px; }
html[data-portal="admin"] #loginForm .login-input-field {
  display: flex;
  min-height: 63px;
  align-items: center;
  gap: 13px;
  padding: 10px 15px;
  border: 1px solid rgba(126, 174, 229, .2);
  border-radius: 13px;
  background: linear-gradient(120deg, rgba(14, 32, 53, .96), rgba(9, 23, 40, .96));
  transition: border-color .18s ease, box-shadow .18s ease;
}
html[data-portal="admin"] #loginForm .login-input-field:focus-within {
  border-color: rgba(36, 174, 255, .74);
  box-shadow: 0 0 0 3px rgba(22, 139, 255, .14);
}
html[data-portal="admin"] .field-icon { width: 21px; height: 21px; flex: 0 0 21px; color: #57baff; }
html[data-portal="admin"] .field-copy { display: grid; min-width: 0; flex: 1; gap: 5px; }
html[data-portal="admin"] #loginForm .login-input-field label,
html[data-portal="admin"] #loginMfaField label {
  margin: 0;
  color: #bed0e4;
  font-size: 11px;
  font-weight: 650;
}
html[data-portal="admin"] #loginForm .login-input-field input {
  min-width: 0;
  min-height: 20px;
  padding: 0;
  border: 0 !important;
  border-radius: 0 !important;
  outline: 0;
  background: transparent !important;
  box-shadow: none !important;
  color: #f2f7ff !important;
  font-size: 14px;
}
html[data-portal="admin"] #loginForm .login-input-field input::placeholder { color: #7f95ad; }
html[data-portal="admin"] #loginForm .login-input-field input:focus-visible { outline: 0 !important; }
html[data-portal="admin"] .password-toggle {
  display: grid;
  width: 38px;
  height: 40px;
  flex: 0 0 38px;
  place-items: center;
  border: 0;
  border-radius: 9px;
  background: transparent;
  color: #91abc5;
  cursor: pointer;
}
html[data-portal="admin"] .password-toggle:hover { background: rgba(72, 154, 224, .1); color: #d9efff; }
html[data-portal="admin"] .password-toggle svg { width: 20px; height: 20px; }
html[data-portal="admin"] #loginMfaField {
  display: grid;
  gap: 8px;
  padding: 13px 14px;
  border: 1px solid rgba(126, 174, 229, .15);
  border-radius: 12px;
  background: rgba(13, 28, 46, .62);
}
html[data-portal="admin"] #loginMfaField input {
  min-height: 42px;
  padding: 10px 12px;
  border-color: rgba(126, 174, 229, .2);
  border-radius: 8px;
  background: #081525;
  font-size: 13px;
  letter-spacing: .02em;
}
html[data-portal="admin"] #loginMfaField input::placeholder { color: #7188a1; }
html[data-portal="admin"] .form-options { display: flex; justify-content: flex-end; margin: 2px 0 14px; }
html[data-portal="admin"] .form-options button {
  min-height: 36px;
  color: #70bfff !important;
  font-size: 12px !important;
  font-weight: 650;
  text-decoration: none;
}
html[data-portal="admin"] .form-options button:hover { color: #b7e4ff !important; text-decoration: underline; text-underline-offset: 3px; }
html[data-portal="admin"] .login-side .primary-button {
  min-height: 51px;
  margin-top: 4px;
  border: 1px solid rgba(113, 195, 255, .55);
  border-radius: 11px;
  background: linear-gradient(110deg, #0878ec, #058fde 58%, #04a8dc);
  box-shadow: 0 9px 26px rgba(0, 111, 240, .23), inset 0 1px 0 rgba(255, 255, 255, .16);
  color: #fff;
  font-size: 14px;
  font-weight: 750;
  transition: filter .18s ease, box-shadow .18s ease, transform .18s ease;
}
html[data-portal="admin"] .login-side .primary-button:hover:not(:disabled) {
  transform: translateY(-1px);
  filter: brightness(1.08);
  box-shadow: 0 12px 30px rgba(0, 111, 240, .3), inset 0 1px 0 rgba(255, 255, 255, .2);
}
html[data-portal="admin"] .login-side .primary-button:disabled { opacity: .62; cursor: wait; }
html[data-portal="admin"] .login-side .secondary-button {
  min-height: 46px;
  border-color: var(--admin-line);
  border-radius: 10px;
  background: #101f32;
  color: #c6dbef;
}
html[data-portal="admin"] .login-side .secondary-button:hover { border-color: rgba(36, 174, 255, .38); background: #142943; }
html[data-portal="admin"] .login-side .message { color: #9fb5cc; line-height: 1.5; }
html[data-portal="admin"] .login-side .message.error { color: #ff9aa4; }
html[data-portal="admin"] .login-side .message.success { color: #8ce1b4; }
html[data-portal="admin"] .login-side .security {
  margin-top: 22px;
  padding-top: 15px;
  border-top-color: rgba(126, 174, 229, .15);
  color: #829ab3;
}
html[data-portal="admin"] .customer-register-row,
html[data-portal="admin"] .auth-return-link,
html[data-portal="admin"] #deviceLoginButton { display: none !important; }
html[data-portal="admin"] .login-side :focus-visible { outline: 3px solid rgba(61, 177, 255, .9) !important; outline-offset: 3px; }
html[data-portal="admin"] #loginForm .login-input-field :focus-visible { outline: 0 !important; }

@media (max-width: 800px) {
  html[data-portal="admin"] body.login-page { align-items: flex-start; padding: 22px 0; }
  html[data-portal="admin"] .login-container {
    width: min(560px, calc(100% - 28px));
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
  }
  html[data-portal="admin"] .brand-side {
    display: flex;
    min-height: 0;
    padding: 24px 26px 19px;
  }
  html[data-portal="admin"] .brand-side .brand { gap: 12px; font-size: 22px; }
  html[data-portal="admin"] .admin-brand-mark { width: 46px; height: 46px; flex-basis: 46px; border-radius: 12px; }
  html[data-portal="admin"] .brand-side .badge { margin-top: 13px; padding: 6px 9px; }
  html[data-portal="admin"] .brand-side h1 { max-width: 18ch; margin-top: 17px; font-size: 27px; }
  html[data-portal="admin"] .brand-side p { margin-top: 8px; font-size: 12px; }
  html[data-portal="admin"] .admin-login-banner,
  html[data-portal="admin"] .status-api { display: none; }
  html[data-portal="admin"] .login-side { padding: 27px 26px 30px; border-top: 1px solid var(--admin-line); border-left: 0; }
}

@media (max-width: 420px) {
  html[data-portal="admin"] body.login-page { padding: max(14px, env(safe-area-inset-top)) 0 max(18px, env(safe-area-inset-bottom)); }
  html[data-portal="admin"] .login-container { width: calc(100% - 22px); border-radius: 17px; }
  html[data-portal="admin"] .brand-side { padding: 20px 20px 16px; }
  html[data-portal="admin"] .brand-side h1 { font-size: 24px; }
  html[data-portal="admin"] .brand-side p { font-size: 11px; }
  html[data-portal="admin"] .login-side { padding: 23px 19px 25px; }
  html[data-portal="admin"] .login-side .subtitle { margin-bottom: 21px; }
  html[data-portal="admin"] #loginForm .login-input-field { min-height: 59px; padding-inline: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  html[data-portal="admin"] .login-container *,
  html[data-portal="admin"] .login-container *::before,
  html[data-portal="admin"] .login-container *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
