/* Login presentation only; Django owns widgets, POST, CSRF and redirects. */
body.ui-entry-login {
  --entry-login-ink: #182440;
  --entry-login-muted: #596784;
  color: var(--entry-login-ink);
  background: #eef2f7;
  font-family: var(--ui-shell-font);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
body.ui-entry-login .login-page { position: relative; isolation: isolate; min-height: 100vh; min-height: 100svh; display: grid; place-items: center; padding: 48px 24px; background: radial-gradient(ellipse at 72% 12%, #fff, transparent 55%), linear-gradient(135deg, #e9eef7, #f6f8fc 48%, #e9eff6); }
body.ui-entry-login .login-page::before { content: ""; position: absolute; z-index: -1; top: 12%; right: 10%; width: min(45vw, 660px); height: min(55vh, 520px); border-radius: 95% 0 95% 0; transform: rotate(-18deg); background: linear-gradient(130deg, transparent 32%, #dce4ee 46%, #fff 49%, #e6edf4 54%, transparent 72%); pointer-events: none; }
body.ui-entry-login .login-card { width: min(440px, 100%); padding: 36px 36px 26px; border: 1px solid #fff; border-radius: 14px; background: #fbfcfe; box-shadow: inset 0 1px 0 #fff, 0 16px 50px rgba(47, 62, 91, .08); }
body.ui-entry-login .login-brand { gap: 13px; margin-bottom: 32px; color: var(--entry-login-ink); }
body.ui-entry-login .brand-mark { width: 38px; height: 38px; flex: none; border-radius: 50%; background: transparent; box-shadow: none; }
body.ui-entry-login .login-brand strong { font-size: 18px; line-height: 26px; letter-spacing: -.01em; }
body.ui-entry-login .login-brand small { margin-top: 3px; color: #65738e; font-size: 8px; line-height: 12px; letter-spacing: .045em; }
body.ui-entry-login .login-card .login-eyebrow { margin: 0 0 6px; color: var(--entry-login-muted); font-size: 12px; letter-spacing: .06em; }
body.ui-entry-login .login-card h1 { margin: 0 0 8px; font-size: 28px; line-height: 38px; font-weight: 650; letter-spacing: -.025em; }
body.ui-entry-login .login-card > p { margin: 0 0 26px; color: var(--entry-login-muted); font-size: 14px; line-height: 23px; }
body.ui-entry-login .form-stack { display: grid; gap: 20px; }
body.ui-entry-login .login-field { display: grid; gap: 8px; min-width: 0; }
body.ui-entry-login .login-card label { display: block; color: #34415e; font-size: 14px; line-height: 22px; font-weight: 500; }
body.ui-entry-login .login-field input { width: 100%; min-width: 0; min-height: 46px; padding: 11px 13px; border: 1px solid #d1d9e5; border-radius: 8px; background: #fff; color: var(--entry-login-ink); font: inherit; font-size: 16px; line-height: 24px; box-shadow: inset 0 1px 2px rgba(47, 62, 91, .025); }
body.ui-entry-login .login-field input:hover { border-color: #a5b0c3; }
body.ui-entry-login .login-field input:focus { border-color: var(--ui-shell-accent); outline: 2px solid var(--ui-shell-accent); outline-offset: 2px; }
body.ui-entry-login .button.primary { width: 100%; min-height: 46px; padding: 11px 16px; border: 1px solid #25324a; border-radius: 8px; background: linear-gradient(120deg, #2b3753, #18243e); color: #fff; font-size: 15px; line-height: 24px; font-weight: 500; box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 3px 8px rgba(36, 48, 75, .12); cursor: pointer; }
body.ui-entry-login .button.primary:hover { background: #35435e; }
body.ui-entry-login .button.primary:active { background: #1b2945; }
body.ui-entry-login .form-error { padding: 12px 14px; margin: 0; border: 1px solid #ebd1d8; border-radius: 8px; background: #fff0f3; color: #962d43; font-size: 14px; line-height: 23px; overflow-wrap: anywhere; }
body.ui-entry-login .login-field-error { margin: 0; color: #962d43; font-size: 13px; line-height: 22px; }
body.ui-entry-login .login-card .login-motto { margin: 26px 0 0; padding-top: 18px; border-top: 1px solid #e3e8f1; color: #65738e; text-align: center; font-size: 12px; line-height: 22px; }
body.ui-entry-login :focus-visible { outline: 2px solid var(--ui-shell-accent); outline-offset: 3px; }
@supports (backdrop-filter: blur(8px)) {
  body.ui-entry-login .login-card { background: rgba(251, 252, 254, .88); backdrop-filter: blur(8px); }
}
@media (max-width: 600px) {
  body.ui-entry-login .login-page { padding: 28px 18px; }
  body.ui-entry-login .login-card { padding: 28px 24px 22px; }
  body.ui-entry-login .login-page::before { top: 6%; right: 0; width: 70vw; height: min(40vh, 70vw); transform-origin: bottom right; }
  body.ui-entry-login .login-brand { margin-bottom: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  body.ui-entry-login *, body.ui-entry-login *::before, body.ui-entry-login *::after { transition: none; animation: none; scroll-behavior: auto; }
}
@media (forced-colors: active) {
  body.ui-entry-login, body.ui-entry-login .login-page, body.ui-entry-login .login-card { background: Canvas; color: CanvasText; border-color: CanvasText; box-shadow: none; backdrop-filter: none; }
  body.ui-entry-login .login-page::before { content: none; }
  body.ui-entry-login .login-field input, body.ui-entry-login .button.primary, body.ui-entry-login .form-error { background: Canvas; color: CanvasText; border: 1px solid CanvasText; box-shadow: none; }
  body.ui-entry-login :focus-visible, body.ui-entry-login .login-field input:focus { outline-color: Highlight; }
}
