.login-page {
  min-height: 100dvh;
  display: grid;
  grid-template-columns: minmax(360px, 44%) 1fr;
  background: var(--color-bg);
}

.login-brand {
  position: relative;
  min-height: 100dvh;
  overflow: hidden;
  isolation: isolate;
  background: #101010;
  color: #fff;
  border-inline-end: 1px solid rgba(255, 255, 255, 0.06);
}

.login-brand::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  opacity: .18;
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 52px 52px;
  mask-image: linear-gradient(to bottom, black, transparent 86%);
}

.login-brand::after {
  content: "";
  position: absolute;
  width: 430px;
  height: 430px;
  inset-inline-start: -180px;
  bottom: -210px;
  border: 1px solid rgba(242, 112, 28, .16);
  border-radius: 50%;
  box-shadow: 0 0 0 80px rgba(242,112,28,.025), 0 0 0 160px rgba(242,112,28,.018);
  z-index: -1;
}

.login-brand__glow {
  position: absolute;
  border-radius: 50%;
  filter: blur(2px);
  background: var(--color-primary);
  opacity: .12;
  z-index: -1;
}

.login-brand__glow--one { width: 360px; height: 360px; top: -160px; right: -120px; }
.login-brand__glow--two { width: 250px; height: 250px; bottom: 8%; left: -120px; opacity: .07; }

.login-brand__content {
  min-height: 100%;
  padding: clamp(32px, 5vw, 72px);
  display: flex;
  flex-direction: column;
}

.login-logo {
  width: fit-content;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: #fff;
  font-size: 1.9rem;
  font-weight: 900;
}

.login-logo__mark {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: #fff;
  background: linear-gradient(145deg, var(--color-primary), #d6520b);
  box-shadow: 0 12px 28px rgba(242, 112, 28, .24);
}

.login-brand__message { margin-block: auto; max-width: 560px; }
.login-brand__eyebrow { color: var(--color-primary); font-size: .85rem; font-weight: 700; letter-spacing: .04em; }
.login-brand__message h1 { margin-top: 18px; font-size: clamp(2.5rem, 4.7vw, 4.7rem); line-height: 1.15; letter-spacing: -.04em; }
.login-brand__message h1 em { color: var(--color-primary); font-style: normal; }
.login-brand__message p { max-width: 490px; margin-top: 24px; color: #a8a8a8; font-size: 1.05rem; line-height: 1.9; }
.login-brand__status { display: flex; align-items: center; gap: 9px; color: #8f8f8f; font-size: .8rem; }
.login-brand__status i { width: 8px; height: 8px; border-radius: 50%; background: var(--color-success); box-shadow: 0 0 0 5px rgba(34,197,94,.1); }

.login-panel {
  min-width: 0;
  min-height: 100dvh;
  padding: 28px clamp(24px, 6vw, 96px) 20px;
  display: flex;
  flex-direction: column;
  background: var(--color-bg);
}

.login-panel__top { min-height: 42px; display: flex; justify-content: flex-end; align-items: center; }
.login-logo--mobile { display: none; color: var(--color-text); font-size: 1.35rem; }
.login-logo--mobile .login-logo__mark { width: 38px; height: 38px; border-radius: 11px; }
.login-card { width: min(100%, 470px); margin: auto; padding-block: 40px; }
.login-card__heading { display: flex; align-items: center; gap: 16px; margin-bottom: 34px; }
.login-card__icon { width: 54px; height: 54px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 16px; color: var(--color-primary); background: color-mix(in srgb, var(--color-primary) 12%, transparent); border: 1px solid color-mix(in srgb, var(--color-primary) 20%, transparent); }
.login-card__icon svg { width: 25px; }
.login-card__heading h2 { font-size: clamp(1.65rem, 3vw, 2.05rem); }
.login-card__heading p { margin-top: 5px; color: var(--color-text-muted); }

.login-alert { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 20px; padding: 12px 14px; color: var(--color-danger); background: var(--color-danger-bg); border: 1px solid color-mix(in srgb, var(--color-danger) 22%, transparent); border-radius: var(--radius-md); font-size: var(--fs-sm); }
.login-alert[hidden] { display: none; }
.login-alert svg { width: 19px; flex: 0 0 auto; margin-top: 1px; }
.login-field { margin-bottom: 20px; }
.login-field label { color: var(--color-text); font-weight: 700; }
.login-input { position: relative; }
.login-input > svg { position: absolute; z-index: 1; inset-inline-start: 15px; top: 50%; width: 19px; transform: translateY(-50%); color: var(--color-text-faint); pointer-events: none; }
.login-input .input { width: 100%; height: 52px; padding-inline-start: 47px; background: var(--color-surface); transition: border-color var(--transition-fast), box-shadow var(--transition-fast); }
.login-input .input:focus { box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-primary) 13%, transparent); }
.login-input:focus-within > svg { color: var(--color-primary); }
.login-input .input[aria-invalid="true"] { border-color: var(--color-danger); }
.login-field__error { color: var(--color-danger); font-size: var(--fs-xs); }
.login-field__error[hidden] { display: none; }
.login-password-toggle { position: absolute; inset-inline-end: 10px; top: 50%; width: 36px; height: 36px; padding: 9px; transform: translateY(-50%); border-radius: var(--radius-sm); color: var(--color-text-muted); }
.login-password-toggle:hover { color: var(--color-primary); background: var(--color-surface-hover); }
.login-password-toggle .eye-closed { display: none; }
.login-password-toggle[aria-pressed="true"] .eye-open { display: none; }
.login-password-toggle[aria-pressed="true"] .eye-closed { display: block; }
.login-input:has(.login-password-toggle) .input { padding-inline-end: 52px; }

.login-options { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 4px 0 26px; font-size: var(--fs-sm); }
.login-remember { display: inline-flex; align-items: center; gap: 9px; color: var(--color-text-muted); cursor: pointer; }
.login-remember input { position: absolute; opacity: 0; pointer-events: none; }
.login-remember > span { width: 19px; height: 19px; display: grid; place-items: center; border: 1px solid var(--color-border); border-radius: 5px; background: var(--color-surface); }
.login-remember svg { width: 13px; opacity: 0; }
.login-remember input:checked + span { color: white; border-color: var(--color-primary); background: var(--color-primary); }
.login-remember input:checked + span svg { opacity: 1; }
.login-remember input:focus-visible + span { outline: 2px solid var(--color-primary); outline-offset: 2px; }
.login-forgot, .login-help button { color: var(--color-primary); font-weight: 700; }
.login-forgot:hover, .login-help button:hover { text-decoration: underline; }
.login-submit { position: relative; width: 100%; height: 52px; font-size: var(--fs-base); box-shadow: 0 12px 28px rgba(242,112,28,.18); }
.login-submit > svg { width: 19px; transform: rotate(180deg); }
.login-submit__spinner { display: none; width: 19px; height: 19px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; animation: login-spin .65s linear infinite; }
.login-submit.is-loading .login-submit__spinner { display: block; }
.login-submit.is-loading > svg { display: none; }
.login-help { margin-top: 28px; color: var(--color-text-muted); text-align: center; font-size: var(--fs-sm); }
.login-footer { color: var(--color-text-faint); text-align: center; font-size: var(--fs-xs); }

@keyframes login-spin { to { transform: rotate(360deg); } }

@media (max-width: 920px) {
  .login-page { grid-template-columns: minmax(310px, 40%) 1fr; }
  .login-brand__content { padding: 38px; }
  .login-brand__message h1 { font-size: clamp(2.2rem, 5vw, 3.4rem); }
}

@media (max-width: 720px) {
  .login-page { display: block; }
  .login-brand { display: none; }
  .login-panel { padding: 20px; }
  .login-panel__top { justify-content: space-between; }
  .login-logo--mobile { display: inline-flex; }
  .login-card { padding-block: 44px 28px; }
}

@media (max-width: 420px) {
  .login-card__icon { display: none; }
  .login-options { align-items: flex-start; flex-direction: column; }
  .login-footer { padding-top: 16px; }
}
