body {margin: 0; background: var(--bg); color: var(--ink); font-family: inherit;}
.login-page {min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; box-sizing: border-box;}
.login-panel {width: 100%; max-width: 420px; padding: 24px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); box-shadow: var(--shadow);}
.login-panel-wide {max-width: 720px;}
.login-brand {display: flex; align-items: center; gap: 12px; margin-bottom: 24px;}
.login-logo {display: grid; place-items: center; width: 42px; height: 42px; border-radius: 8px; background: #101828;}
.login-logo img {display: block; width: 29px; height: 29px; object-fit: contain;}
.login-brand strong, .login-brand span {display: block;}
.login-brand strong {font-size: 15px;}
.login-brand span {margin-top: 2px; color: var(--muted); font-size: 12px;}
.login-header {margin-bottom: 22px;}
.login-header h1 {margin: 0 0 8px; color: var(--ink); font-size: 26px; line-height: 1.15; letter-spacing: 0;}
.login-header p {margin: 0; color: var(--muted); font-size: 14px; line-height: 1.5;}
.login-message {margin-bottom: 14px; padding: 10px 12px; border: 1px solid #fda29b; border-radius: 7px; background: #fef3f2; color: #b42318; font-size: 13px; line-height: 1.45;}
.login-message[hidden] {display: none;}
.login-success {margin-bottom: 14px; padding: 10px 12px; border: 1px solid #6ce9a6; border-radius: 7px; background: #ecfdf3; color: #027a48; font-size: 13px; line-height: 1.45;}
.login-success[hidden] {display: none;}
.login-help {margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45;}
.reset-actions {display: flex; justify-content: center; gap: 14px; margin-top: 14px; flex-wrap: wrap;}
.reset-actions form {margin: 0; text-align: center;}
.login-link-button {padding: 0; border: 0; background: transparent; color: var(--blue); font: inherit; font-size: 13px; font-weight: 750; cursor: pointer;}
.login-link-button:hover, .login-link-button:focus {text-decoration: underline; outline: 0;}
.login-form {display: grid; gap: 14px;}
.login-field {display: grid; gap: 7px;}
.login-field span {color: #344054; font-size: 13px; font-weight: 750;}
.login-field input, .login-field textarea {width: 100%; border: 1px solid var(--line); border-radius: 7px; background: #ffffff; color: var(--ink); font: inherit; font-size: 14px; box-sizing: border-box;}
.password-control {position: relative;}
.password-control input {padding-right: 44px;}
.password-toggle {position: absolute; top: 50%; right: 6px; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 0; border-radius: 7px; background: transparent; color: #667085; transform: translateY(-50%); cursor: pointer;}
.password-toggle:hover, .password-toggle:focus {background: #f8f9ff; color: var(--blue); outline: 0;}
.password-toggle svg {width: 18px; height: 18px; stroke: currentColor; stroke-width: 1.8; fill: none; stroke-linecap: round; stroke-linejoin: round;}
.password-toggle .icon-eye-off, .password-toggle[aria-pressed="true"] .icon-eye {display: none;}
.password-toggle[aria-pressed="true"] .icon-eye-off {display: block;}
.login-field input {height: 42px; padding: 0 11px;}
.login-field textarea {min-height: 116px; padding: 9px 11px; resize: vertical; line-height: 1.45;}
.login-field input:focus, .login-field textarea:focus {border-color: #c7d0ff; box-shadow: 0 0 0 4px rgb(70 95 255 / 10%); outline: 0;}
.login-code-input {text-align: center; letter-spacing: .18em; font-weight: 800;}
.login-options {display: flex; align-items: center; justify-content: space-between; gap: 12px;}
.login-options--end {justify-content: flex-end;}
.login-check {display: inline-flex; align-items: center; gap: 8px; color: #475467; font-size: 13px; justify-content: center;}
.login-check input {width: 16px; height: 16px; accent-color: var(--blue);}
.mfa-trust-option {display: grid; gap: 4px;}
.mfa-trust-help {margin-left: 24px; color: var(--muted); font-size: 12px; line-height: 1.4; text-align: center; margin: 0;}
.login-options a, .login-support a {color: var(--blue); font-size: 13px; font-weight: 750; text-decoration: none;}
.login-options a:hover, .login-options a:focus, .login-support a:hover, .login-support a:focus {text-decoration: underline;}
.login-button {display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 42px; border: 0; border-radius: 8px; background: var(--blue); color: #ffffff; font: inherit; font-size: 14px; font-weight: 800; cursor: pointer; box-shadow: 0 10px 22px rgb(70 95 255 / 24%);}
.login-button-link {text-decoration: none;}
.login-button:hover, .login-button:focus {background: #3446db; outline: 0;}
.login-button:disabled {background: #98a2b3; cursor: not-allowed; box-shadow: none;}
.login-support {display: flex; justify-content: center; gap: 6px; margin-top: 18px; color: var(--muted); font-size: 13px;}
.mfa-setup {display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; margin-bottom: 18px;}
.mfa-qr-card, .mfa-recovery, .mfa-secret {border: 1px solid var(--line); border-radius: 8px; background: #ffffff;}
.mfa-qr-card {display: grid; gap: 10px; justify-items: center; padding: 14px; text-align: center;}
.mfa-qr {display: grid; place-items: center; width: 180px; aspect-ratio: 1; border: 1px solid var(--line); border-radius: 8px; background: #ffffff; overflow: hidden;}
.mfa-qr-card p, .mfa-recovery p {margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45;}
.mfa-details {display: grid; align-content: start; gap: 14px;}
.mfa-secret {display: grid; gap: 7px; padding: 14px;}
.mfa-secret span {color: var(--muted); font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase;}
.mfa-secret code {color: var(--ink); font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace; font-size: 15px; font-weight: 800; letter-spacing: .08em;}
.mfa-recovery {display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: start; padding: 14px;}
.mfa-recovery h2 {margin: 0 0 5px; font-size: 16px;}
.mfa-recovery ul {display: grid; grid-template-columns: repeat(2, max-content); gap: 7px 10px; margin: 0; padding: 0; list-style: none;}
.mfa-recovery li {padding: 5px 8px; border-radius: 6px; background: var(--soft); color: #344054; font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace; font-size: 12px; font-weight: 800;}
@media (max-width: 520px) {
  .login-panel {padding: 22px;}
  .login-options {align-items: flex-start; flex-direction: column;}
  .mfa-setup, .mfa-recovery {grid-template-columns: 1fr;}
  .mfa-recovery ul {grid-template-columns: repeat(2, minmax(0, 1fr));}
}
