.auth-page { background:#f5f6f7; color:#202124; }
.auth-page .auth-layout { display:block; }
.auth-container { width:100%; max-width:1060px; margin:48px auto 64px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,440px); gap:64px; align-items:start; }
.auth-welcome { padding:28px 0; }
.auth-brand { display:flex; align-items:center; gap:12px; font-size:23px; font-weight:750; color:#202124; text-decoration:none; }
.auth-mark { width:44px; height:44px; display:grid; place-items:center; border-radius:13px; background:linear-gradient(135deg,#18634b,#3c8d6d); color:white; box-shadow:0 8px 20px #18634b33; }
.auth-welcome h2 { font-size:36px; line-height:1.3; letter-spacing:-.03em; margin:38px 0 18px; }
.auth-welcome>p { color:#64748b; font-size:16px; line-height:1.9; max-width:370px; }
.auth-tip { margin-top:32px; padding:24px; border:1px solid #cbd5ce; border-radius:18px; background:linear-gradient(135deg,#edf3ee,#f5f8f5); }
.auth-tip>span { color:#18634b; font-size:25px; }.auth-tip h3 { margin:10px 0; font-size:17px; }.auth-tip p { margin:0; color:#64748b; line-height:1.8; font-size:14px; }
.auth-benefits { padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:12px; color:#64748b; font-size:13px; margin-top:25px; }.auth-benefits li:before { content:'✓ '; color:#18634b; }
.auth-card { background:white; border:1px solid #e7eaf2; border-radius:20px; overflow:hidden; box-shadow:0 12px 40px #20212408; min-width:0; }.auth-accent { height:6px; background:linear-gradient(90deg,#18634b,#2d8060,#78ae8e); }.auth-card-content { padding:32px; }
.auth-card h1 { font-size:25px; line-height:1.4; margin:0 0 8px; }.auth-subtitle { color:#64748b; line-height:1.7; font-size:14px; margin:0 0 25px; }
.auth-google { width:100%; min-height:48px; display:flex; justify-content:center; align-items:center; gap:12px; border:1px solid #d6dce6; border-radius:11px; padding:12px; background:white; font:inherit; font-weight:600; color:#334155; cursor:pointer; }.auth-google:hover:not(:disabled) { background:#f8fafc; border-color:#91b9a3; }.auth-google:disabled { color:#64748b; cursor:default; }.auth-google svg { width:20px; height:20px; }.auth-google-g { font:700 22px Arial,sans-serif; color:#4285f4; }
.auth-divider { display:flex; align-items:center; gap:12px; color:#94a3b8; font-size:12px; margin:24px 0; }.auth-divider:before,.auth-divider:after { content:''; height:1px; background:#e2e8f0; flex:1; }.auth-field { margin:0 0 18px; }.auth-field>label { display:block; margin-bottom:7px; font-size:14px; font-weight:600; }
.auth-input-wrap { position:relative; }.auth-form input:not([type=hidden]):not([type=checkbox]) { box-sizing:border-box; width:100%; min-height:46px; padding:11px 13px; border:1px solid #d9dfeb; border-radius:10px; background:#f8fafc; font:inherit; font-size:16px; color:#202124; }.auth-form input[type=password],.auth-form input[data-password-visible] { padding-right:66px!important; }.auth-password-toggle { position:absolute; right:8px; top:3px; height:40px; padding:0 7px; border:0; background:transparent; color:#18634b; font-size:13px; cursor:pointer; }
.auth-page :focus-visible { outline:3px solid #91b9a3; outline-offset:3px; }.auth-form input:focus { border-color:#3c8d6d; background:white; }.auth-help { font-size:12px; line-height:1.7; color:#64748b; margin:7px 0; }.auth-help ul { padding-left:18px; }.auth-forgot { text-align:right; font-size:13px; }.auth-card a { color:#174f7a; text-underline-offset:3px; }.auth-submit { width:100%; min-height:48px; border:0; border-radius:11px; background:linear-gradient(100deg,#18634b,#2d8060); box-shadow:0 5px 12px #18634b26; color:white; font:inherit; font-weight:650; cursor:pointer; }.auth-submit:hover { filter:brightness(.96); }.auth-switch { text-align:center; font-size:14px; margin:24px 0 10px; }.auth-switch a { font-weight:650; }.auth-center { text-align:center; }.auth-legal { text-align:center; color:#94a3b8; font-size:12px; line-height:1.9; border-top:1px solid #f1f5f9; margin:24px 0 0; padding-top:18px; }
.auth-consent { font-size:13px; line-height:1.8; margin:20px 0; }.auth-consent label { display:flex; gap:9px; align-items:start; }.auth-consent input { margin-top:5px; flex:0 0 auto; width:16px; height:16px; }.auth-honeypot { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }.auth-form .errorlist { padding:10px 12px; list-style:none; background:#fff1f2; color:#b42340; font-size:13px; border-radius:8px; overflow-wrap:anywhere; }.auth-message { padding:12px; border:1px solid #cbd5ce; border-radius:10px; background:#edf3ee; font-size:14px; overflow-wrap:anywhere; }.auth-mobile-brand { display:none; }
.legal-page { max-width:820px; margin:28px auto; padding:32px; background:white; border:1px solid #e2e8f0; border-radius:16px; overflow-wrap:anywhere; }.legal-page h1 { font-size:28px; }.legal-page h2 { font-size:20px; margin-top:30px; }.legal-page p,.legal-page li { line-height:1.9; }.legal-page .legal-date { color:#64748b; font-size:13px; }
@media(max-width:900px) { .auth-container { grid-template-columns:minmax(0,440px); justify-content:center; gap:0; margin:24px auto 40px; }.auth-welcome { display:none; }.auth-mobile-brand { display:block; margin-bottom:22px; font-weight:750; text-decoration:none; }.auth-card-content { padding:28px; } }
@media(max-width:479px) { .auth-card-content { padding:24px 20px; }.auth-card h1 { font-size:24px; }.auth-container { margin-top:16px; }.legal-page { padding:20px; } }
.auth-page a:focus-visible { outline:2px solid #18634b; outline-offset:3px; border-radius:3px; }

/* Match the home topic list typography; keep form inputs readable on phones. */
.auth-page { font-size:13px; line-height:1.55; }
.auth-page input,.auth-page button,.auth-page select,.auth-page textarea { font-family:inherit; }
.auth-field>label { font-weight:400; }
.auth-welcome>p { font-size:14px; }
.auth-brand,.auth-card h1,.auth-welcome h2,.auth-tip h3 { color:#184f3b; }

/* Compact account fields: labels beside inputs; help/errors below the input. */
.auth-field { display:grid; grid-template-columns:6.5em minmax(0,1fr); align-items:center; column-gap:10px; row-gap:4px; margin-bottom:14px; }
.auth-field>label { margin:0; white-space:nowrap; font-size:14px; }
.auth-input-wrap { min-width:0; }
.auth-field>.auth-help,.auth-field>.errorlist { grid-column:2; margin:0; min-width:0; }
@media(max-width:479px) {
  .auth-field { grid-template-columns:6em minmax(0,1fr); column-gap:8px; }
  .auth-field>label { font-size:12px; }
  .auth-form input:not([type=hidden]):not([type=checkbox]) { padding-left:9px; padding-right:9px; }
}
.auth-brand .auth-brand-logo { display:block; width:300px; height:auto; max-width:100%; aspect-ratio:420 / 112; }
.auth-mobile-brand .auth-brand-logo { display:block; width:224px; height:auto; max-width:100%; aspect-ratio:420 / 112; }
