/* Login and registration only. Keep the requested palette independent of
   the saved dashboard theme; other authentication screens retain auth.css. */
@view-transition { navigation: none; }

body.auth-entry-page {
  color-scheme: dark;
  --bg: #0a0a0a;
  --bg-alt: #121212;
  --bg-rgb: 10, 10, 10;
  --card-rgb: 18, 18, 18;
  --heading: #f4f4f4;
  --text: #d7d7d7;
  --text-muted: #999;
  --hi-rgb: 255, 255, 255;
  --ink-rgb: 215, 215, 215;
  --link: #d7d7d7;
  --accent: #2557d6;
  --accent2: #1945b5;
  --accent-rgb: 37, 87, 214;
  --accent2-rgb: 25, 69, 181;
  --on-accent: #fff;
  --danger: #fca5a5;
  --danger2-rgb: 248, 113, 113;
  --success: #6ee7b7;
  --th-ink: #f4f4f4;
  --th-line: #252525;
  --th-line-2: #333;
  --th-fill-2: #151515;
  --gradient-1: #2557d6;
  background: #0a0a0a;
}

.auth-entry {
  position: relative;
  display: grid;
  grid-template-columns: 44% 56%;
  flex: 1 0 auto;
  min-height: 100vh;
  min-height: 100svh;
}

.auth-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  gap: 64px;
  min-width: 0;
  padding: 40px clamp(36px, 5vw, 80px);
  background: #121212;
}

.auth-brand-logo { display: inline-flex; flex-shrink: 0; }
.auth-brand-logo img { display: block; width: 148px; height: auto; }
.auth-brand-copy { max-width: 420px; margin-block: auto; }
.auth-brand-label { margin-bottom: 24px; color: #999; font-size: 13px; line-height: 1.5; }
.auth-brand-copy h2 {
  color: #f4f4f4;
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: clamp(36px, 3.5vw, 54px);
  font-weight: 450;
  line-height: 1.15;
  letter-spacing: -.035em;
  text-wrap: balance;
}
.auth-brand-note { color: #999; font-size: 12px; line-height: 1.5; }

.auth-back {
  position: absolute;
  z-index: 1;
  top: 40px;
  right: clamp(32px, 4vw, 64px);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  color: #aaa;
  font-size: 13px;
  text-decoration: none;
}
.auth-back svg { width: 18px; height: 18px; }
.auth-back:hover { color: #f4f4f4; }

.auth-panel {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  padding: 120px 48px 72px;
  background: #0a0a0a;
}
.auth-form-content { width: 100%; max-width: 400px; }
.auth-entry .auth-header { margin-bottom: 32px; text-align: left; }
.auth-entry .auth-header h1 {
  margin-bottom: 9px;
  color: #f4f4f4;
  font-family: 'IBM Plex Sans', sans-serif;
  font-size: 30px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -.025em;
}
.auth-entry .auth-header p { color: #999; font-size: 14px; line-height: 1.6; }
.auth-entry .auth-form { gap: 20px; }
.auth-entry .form-group { min-width: 0; gap: 8px; }
.auth-entry .form-group label { font-size: 13px; font-weight: 450; }
.auth-entry .form-group input,
.auth-entry .form-group select.dob-part {
  min-height: 46px;
  border-radius: 4px;
  background-color: #101010;
  font-size: 14px;
}
.auth-entry .input-wrap:has(.password-toggle) input { padding-right: 46px; }
.auth-entry .form-group input::placeholder { color: #858585; }
.auth-entry .form-group input:hover,
.auth-entry .form-group select.dob-part:hover { border-color: #555; }
.auth-entry .form-group input:focus,
.auth-entry .form-group select.dob-part:focus { border-color: #729bff; background-color: #101010; box-shadow: 0 0 0 2px rgba(114, 155, 255, .12); }
.auth-entry .form-group input.error,
.auth-entry .form-group select.dob-part.error { border-color: #fca5a5; }
.auth-entry .form-group select.dob-part {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23999999' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}
.auth-entry .password-toggle { right: 4px; width: 40px; height: 42px; padding: 10px; }
.auth-entry .form-options { padding: 0; border: 0; }
.auth-entry .form-options .remember-me { color: #aaa; }
.auth-entry .form-options .forgot-link { font-size: 12px; font-weight: 400; animation: none; }
.auth-entry .form-options .remember-me a { font-weight: 450; text-decoration: underline; text-underline-offset: 3px; }
.auth-entry .form-options-terms.invalid .remember-me,
.auth-entry .form-options-terms.invalid .remember-me a { color: #fca5a5; }
.auth-entry .form-row { grid-template-columns: 1fr; gap: 20px; }
.auth-entry .btn-submit { min-height: 46px; padding: 12px; border-radius: 4px; font-size: 14px; font-weight: 500; }
.auth-entry .auth-divider { font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.auth-entry .btn-google { min-height: 46px; border-radius: 4px; background: transparent; font-weight: 400; }
.auth-entry .btn-google:hover { background: #181818; border-color: #555; transform: none; }
.auth-entry .auth-footer { margin-top: 28px; text-align: left; font-size: 13px; }
.auth-entry .auth-footer a { margin-left: 4px; font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.auth-entry :is(a, button, input[type="checkbox"]):focus-visible { outline: 2px solid #729bff; outline-offset: 4px; }
.auth-entry-page .flash-messages { top: 24px; left: 50%; width: min(400px, calc(100vw - 400px)); }
.auth-entry-page .flash-message { border-radius: 4px; box-shadow: none; }

@media (max-width: 900px) {
  .auth-entry { grid-template-columns: 40% 60%; }
  .auth-brand { padding-inline: 32px; }
  .auth-brand-copy h2 { font-size: 36px; }
  .auth-panel { padding-inline: 32px; }
}

@media (max-width: 700px) {
  .auth-entry { grid-template-columns: 1fr; grid-template-rows: auto 1fr; }
  .auth-brand { padding: 24px; background: #0a0a0a; }
  .auth-brand-logo img { width: 128px; }
  .auth-brand-copy, .auth-brand-note { display: none; }
  .auth-back { top: 21px; right: 24px; min-height: 42px; font-size: 12px; }
  .auth-back svg { width: 16px; height: 16px; }
  .auth-panel { padding: 64px 24px 48px; }
  .auth-entry .auth-header h1 { font-size: 28px; }
  .auth-entry .auth-header { margin-bottom: 28px; }
  .auth-entry .auth-oauth-row { flex-direction: column; }
  .auth-entry-page .flash-messages { top: 80px; left: 50%; width: calc(100vw - 48px); }
}

@media (prefers-reduced-motion: reduce) {
  .auth-entry *, .auth-entry-page .flash-message { animation: none !important; transition: none !important; }
}
