/* Shared by the sign-in page and the forgot / set password pages. */
:root { --lg-blue: #2563EB; --lg-blue-dark: #1D4ED8; --lg-ink: #0F172A; --lg-muted: #64748B; --lg-border: #E2E8F0; }
* { box-sizing: border-box; }
body.lg-page {
  margin: 0; min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 24px 16px;
  font-family: Inter, Geist, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  color: var(--lg-ink); -webkit-font-smoothing: antialiased;
}
.lg-card {
  position: relative; z-index: 1; width: 100%; max-width: 440px; padding: 40px 40px 44px; border-radius: 24px;
  background: rgba(255, 255, 255, 0.84); -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
  border: 1px solid rgba(255, 255, 255, 0.75); box-shadow: 0 28px 70px -24px rgba(76, 50, 200, 0.45), 0 2px 6px rgba(15, 23, 42, 0.05);
}
.lg-logo { display: block; width: 170px; height: auto; margin: 0 auto 22px; }
.lg-card h1.lg-sub { margin: 0 0 28px; text-align: center; font-size: 15px; font-weight: 400; letter-spacing: 0; line-height: 1.4; color: #64648a; }
.lg-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.lg-notice, .lg-error { font-size: 13px; border-radius: 12px; padding: 10px 12px; margin-bottom: 16px; }
.lg-notice { background: #EFF6FF; border: 1px solid #BFDBFE; color: #1E3A8A; }
.lg-error { background: #FEF2F2; border: 1px solid #FECACA; color: #991B1B; margin: 14px 0 0; }
.lg-field { position: relative; margin-bottom: 14px; }
.lg-lead { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #475569; pointer-events: none; display: grid; }
.lg-input {
  width: 100%; height: 54px; padding: 0 16px 0 50px; font: inherit; font-size: 15px; color: var(--lg-ink); background: rgba(255, 255, 255, 0.78);
  border: 1px solid #d9dcf5; border-radius: 14px; transition: border-color .15s, box-shadow .15s, background .15s;
}
.lg-input::placeholder { color: #6b6b8d; }
.lg-input:hover { border-color: #c3c7ee; }
.lg-input:focus { outline: none; background: #fff; border-color: #6c52ff; box-shadow: 0 0 0 4px rgba(108, 82, 255, 0.18); }
.lg-pw .lg-input { padding-right: 50px; }
.lg-eye { position: absolute; right: 8px; top: 7px; width: 40px; height: 40px; display: grid; place-items: center; background: none; border: 0; border-radius: 10px; color: #475569; cursor: pointer; }
.lg-eye:hover { color: var(--lg-ink); background: rgba(108, 82, 255, 0.08); }
.lg-eye:focus-visible { outline: 2px solid #6c52ff; }
.lg-forgot { text-align: right; margin: 12px 2px 24px; }
.lg-card a.lg-link { color: #5b3fe8; font-size: 14px; font-weight: 500; text-decoration: none; }
.lg-card a.lg-link:hover { text-decoration: underline; }
.lg-btn {
  display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; height: 54px; border: 0; border-radius: 14px; color: #fff;
  background: linear-gradient(90deg, #5b4bff, #7f62ff); box-shadow: 0 12px 26px -10px rgba(91, 75, 255, 0.75);
  font: inherit; font-size: 16px; font-weight: 600; cursor: pointer; transition: filter .15s, box-shadow .15s, transform .05s;
}
.lg-btn:hover:not(:disabled) { filter: brightness(1.06); }
.lg-btn:active:not(:disabled) { transform: translateY(1px); }
.lg-btn:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(108, 82, 255, 0.3); }
.lg-btn:disabled { opacity: .7; cursor: default; }
@media (max-width: 480px) { .lg-card { padding: 28px 22px 32px; } .lg-logo { width: 150px; } }

.lg-ring { width: 64px; height: 64px; margin: 0 auto 16px; border-radius: 50%; display: grid; place-items: center; background: #ece9ff; color: #5b3fe8; }
.lg-ring.ok { background: #e3f6ea; color: #15803d; } .lg-ring.warn { background: #fdf0e1; color: #c2570c; }
.lg-card .lg-h { margin: 0 0 6px; text-align: center; font-size: 24px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; color: #0b0b1a; text-transform: none; }
.lg-center { text-align: center; color: #64648a; font-size: 15px; line-height: 1.5; margin: 0 0 22px; }
.lg-center strong { color: #0b0b1a; font-weight: 600; }
.lg-btn.lg-secondary { background: rgba(255, 255, 255, 0.85); color: #3b2fc9; border: 1px solid #d9dcf5; box-shadow: none; margin-top: 10px; text-decoration: none; }
.lg-btn.lg-secondary:hover:not(:disabled) { filter: none; background: #fff; border-color: #bfb8f5; }
.lg-card a.lg-btn { color: #fff; font-size: 16px; text-decoration: none; } .lg-card a.lg-btn.lg-secondary { color: #3b2fc9; }
.lg-rules { list-style: none; margin: 4px 2px 20px; padding: 0; display: grid; gap: 6px; font-size: 13px; color: #64648a; }
.lg-rules li { display: flex; align-items: center; gap: 8px; }
.lg-rules .dot { width: 16px; height: 16px; border-radius: 50%; border: 2px solid #c9cdea; flex: none; display: grid; place-items: center; }
.lg-rules li.ok { color: #15803d; } .lg-rules li.ok .dot { background: #16a34a; border-color: #16a34a; }
.lg-rules li.ok .dot::after { content: ""; width: 6px; height: 3px; border-left: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(-45deg) translate(1px, -1px); }
.lg-back { text-align: center; margin: 18px 0 0; }
