.login-page { min-height: 100vh; background: var(--paper); }

.login-layout { min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(420px, 0.92fr); }

.login-brief { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; padding: clamp(32px, 6vw, 92px); overflow: hidden; color: #f7f6f1; background: var(--navy-deep); }
.login-brief::after { content: ""; position: absolute; width: 46vw; height: 46vw; right: -17vw; bottom: -22vw; border: 1px solid rgba(141, 183, 255, 0.22); border-radius: 50%; box-shadow: 0 0 0 28px rgba(141, 183, 255, 0.04), 0 0 0 58px rgba(141, 183, 255, 0.025); pointer-events: none; }

.brand-lockup { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; color: #a9c8f7; font-size: 12px; font-weight: 800; letter-spacing: 0.15em; }
.brand-pulse, .status-dot { width: 10px; height: 10px; border-radius: 50%; background: #6ed6a1; box-shadow: 0 0 0 5px rgba(110, 214, 161, 0.12); }
.brief-copy { position: relative; z-index: 1; max-width: 640px; margin: auto 0; }
.section-label { margin: 0 0 18px; color: var(--cobalt); font-size: 12px; font-weight: 800; letter-spacing: 0.08em; text-transform: uppercase; }
.login-brief .section-label { color: #84b1ec; }
.brief-copy h1 { max-width: 12ch; margin: 0; font-size: clamp(36px, 4.4vw, 68px); line-height: 1.08; letter-spacing: -0.035em; }
.brief-copy h1 em { color: #9bc0f4; font-style: normal; }
.brief-description { max-width: 48ch; margin: 28px 0 0; color: #b9c5cf; font-size: 16px; line-height: 1.8; }
.brief-footer { position: relative; z-index: 1; display: flex; align-items: center; gap: 12px; color: #9eabb5; font-size: 13px; }

.login-panel { display: flex; flex-direction: column; justify-content: center; width: min(100%, 560px); min-height: 100vh; padding: clamp(32px, 7vw, 104px); background: var(--paper-bright); }
.panel-heading h2 { margin: 0; font-size: clamp(30px, 3vw, 42px); line-height: 1.15; letter-spacing: -0.03em; }
.panel-heading p:last-child { margin: 14px 0 0; color: var(--muted); line-height: 1.7; }

#login-form { margin-top: 42px; }
.field-group + .field-group { margin-top: 24px; }
.field-group label { display: block; margin-bottom: 9px; font-size: 14px; font-weight: 700; }
.field-heading { display: flex; align-items: center; justify-content: space-between; }
.field-group input { width: 100%; min-height: 52px; border: 1px solid var(--line); border-radius: 8px; padding: 0 15px; color: var(--ink); background: #fff; transition: border-color 180ms ease, box-shadow 180ms ease; }
.field-group input:hover { border-color: #aeb8ba; }
.field-group input:focus { border-color: var(--cobalt); box-shadow: 0 0 0 4px rgba(35, 103, 209, 0.12); outline: 0; }
.password-wrap { position: relative; }
.password-wrap input { padding-right: 70px; }
.password-toggle { position: absolute; top: 50%; right: 8px; min-height: 36px; transform: translateY(-50%); border: 0; border-radius: 6px; padding: 0 9px; color: var(--cobalt-dark); background: transparent; font-size: 12px; font-weight: 700; }
.password-toggle:hover { background: #eaf0fb; }
.button-submit { position: relative; width: 100%; margin-top: 32px; }
.button-spinner { display: none; width: 16px; height: 16px; margin-left: 8px; border: 2px solid rgba(255,255,255,0.45); border-top-color: #fff; border-radius: 50%; vertical-align: -3px; animation: spin 700ms linear infinite; }
.is-submitting .button-spinner { display: inline-block; }
.form-alert { margin-top: 24px; border: 1px solid #eab4b4; border-radius: 8px; padding: 13px 15px; color: #842e2e; background: #fff2f1; font-size: 14px; line-height: 1.55; }
.security-note { display: flex; align-items: center; gap: 9px; margin: 26px 0 0; color: var(--muted); font-size: 12px; line-height: 1.6; }
.security-note span { color: #3d9a6c; font-size: 10px; }

@keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 820px) {
  .login-layout { grid-template-columns: 1fr; }
  .login-brief { min-height: auto; padding: 32px 24px 40px; }
  .brief-copy { margin: 88px 0 0; }
  .brief-copy h1 { font-size: clamp(34px, 10vw, 54px); }
  .brief-description { margin-top: 20px; }
  .brief-footer { margin-top: 70px; }
  .login-panel { width: 100%; min-height: auto; padding: 48px 24px 64px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; }
}
