.auth-page { min-height:calc(100svh - 210px); padding:70px 24px 92px; display:grid; justify-items:center; align-content:start; }
.auth-content { width:min(100%, 440px); text-align:center; }
.auth-content h1 { margin:0 0 18px; color:#152f25; font-size:clamp(30px,5vw,40px); font-weight:800; line-height:1.16; letter-spacing:-.03em; text-wrap:balance; }
.auth-intro { margin:0 auto 30px; color:#4f6256; font-size:16px; line-height:1.7; max-width:37ch; }
.auth-entry { min-height:168px; padding:28px 0; border-block:1px solid #dce5dd; }
.auth-status { margin:0 auto 20px; max-width:38ch; min-height:44px; color:#344c3d; font-size:15px; line-height:1.6; overflow-wrap:anywhere; }
.auth-google { display:inline-flex; min-height:48px; align-items:center; border-radius:999px; }
.auth-google img { display:block; width:212.4px; height:48px; max-width:100%; }
.auth-google:hover { filter:brightness(.97); }
.auth-retry { min-height:44px; border:1px solid #b6c7ba; border-radius:8px; padding:10px 20px; background:white; color:#125a34; font:inherit; font-size:14px; font-weight:700; cursor:pointer; }
.auth-retry:hover { background:#edf4ed; }
.auth-content :is(a,button):focus-visible { outline:3px solid #107c41; outline-offset:4px; }
.auth-content [hidden] { display:none; }
.auth-switch { margin:25px 0 18px; color:#4f6256; font-size:14px; line-height:1.6; }
.auth-content a:not(.button):not(.auth-google) { color:#096633; text-decoration:underline; text-underline-offset:4px; }
.auth-recovery { display:flex; min-height:44px; align-items:center; justify-content:center; margin-top:12px; font-size:14px; font-weight:700; }
.auth-divider { display:flex; align-items:center; gap:14px; margin:25px 0; color:#4f6256; font-size:12px; }
.auth-divider::before,.auth-divider::after { content:""; height:1px; flex:1; background:#dce5dd; }
.auth-email { display:flex; flex-direction:column; gap:10px; text-align:left; }
.auth-email label { color:#152f25; font-size:13px; font-weight:750; }
.auth-email input { display:block; width:100%; min-height:50px; border:1px solid #b6c7ba; border-radius:8px; padding:12px 14px; color:#152f25; background:#fff; font:inherit; font-size:16px; caret-color:#107c41; }
.auth-email input::placeholder { color:#5a6e60; opacity:1; }
.auth-email input:focus-visible { outline:3px solid #107c41; outline-offset:3px; }
.auth-email .auth-email-action { display:flex; min-height:50px; align-items:center; justify-content:center; margin-top:8px; border:1px solid #107c41; border-radius:8px; padding:12px 18px; background:#107c41; color:white; font:inherit; font-size:14px; font-weight:750; cursor:pointer; }
.auth-email .auth-email-action:hover:not(:disabled) { background:#096633; border-color:#096633; }
.auth-email :is(input,button):disabled { opacity:.65; cursor:default; }
.auth-code input { letter-spacing:.28em; font-size:24px; text-align:center; font-variant-numeric:tabular-nums; }
.auth-destination { margin:0 0 10px; color:#344c3d; font-size:14px; line-height:1.65; overflow-wrap:anywhere; }
.auth-code-actions { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px; margin-top:5px; }
.auth-code-actions button { min-height:44px; padding:8px 0; border:0; background:none; color:#096633; font:inherit; font-size:12px; font-weight:700; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.auth-email-error { margin:18px 0 0; text-align:left; color:#9b321f; font-size:14px; line-height:1.65; }
.auth-page ::selection { background:#d8f3a3; color:#152f25; }
@media(max-width:600px) { .auth-page { padding:44px 22px 64px; } .auth-content h1 { font-size:32px; } }
