/* Fullscreen auth keeps BetterHebrew's quiet, centered flow in StoryOlive's visual system. */
.olive-auth { position: fixed; inset: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; background: var(--bg, #fdfdfc); color: var(--text, #20251f); font-family: var(--font-sans, 'Nunito Sans', sans-serif); overflow-y: auto; overscroll-behavior: contain; }
.olive-auth[open] { animation: olive-auth-in 160ms ease-out; }
.olive-auth::backdrop { background: var(--bg, #fdfdfc); }
.olive-auth *, .olive-auth *::before, .olive-auth *::after { box-sizing: border-box; }
.olive-auth__shell { min-height: 100%; display: flex; flex-direction: column; align-items: center; padding: max(80px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom)); }
.olive-auth__content { margin-block: auto; width: 100%; max-width: 430px; display: flex; flex-direction: column; gap: 18px; text-align: center; }
.olive-auth h1 { margin: 0 0 8px; font: 700 32px/1.2 var(--font-display, 'Averia Serif Libre', serif); color: var(--text); outline: none; }
.olive-auth p { margin: 0; font-size: 16px; line-height: 1.55; overflow-wrap: anywhere; }
.olive-auth__mascot { display: block; width: 54px; height: 72px; object-fit: contain; margin: 0 auto 4px; }
.olive-auth button, .olive-auth input, .olive-auth a { font-family: inherit; }
.olive-auth button { cursor: pointer; }
.olive-auth button:disabled { cursor: default; opacity: .5; }
.olive-auth__primary { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; min-height: 56px; padding: 14px 22px; border: 0; border-radius: 26px 23px 30px 20px / 24px 28px 20px 26px; background: var(--primary, #8cb65a); color: #fff !important; font-size: 17px; font-weight: 800; line-height: 1.35; text-decoration: none !important; transition: background 140ms, transform 100ms; }
.olive-auth__primary:hover { background: var(--primary-hover, #7aa34c); }
.olive-auth__primary:active { transform: translateY(1px); }
.olive-auth__google { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #fff; flex-shrink: 0; }
.olive-auth__google img { display: block; width: 20px; height: 20px; }
.olive-auth__back { position: absolute; top: max(20px, env(safe-area-inset-top)); left: max(20px, env(safe-area-inset-left)); display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--border, #e2e2dc); border-radius: 50%; background: var(--surface, #fff); color: var(--text); }
.olive-auth__back svg { width: 20px; height: 20px; }
.olive-auth__back:hover { background: var(--surface-muted); }
.olive-auth__email-link, .olive-auth__text-button, .olive-auth__switch button, .olive-auth__forgot { padding: 3px; border: 0; background: transparent; color: #515948; font-size: 14px; font-weight: 700; text-underline-offset: 3px; }
.olive-auth__email-link:hover, .olive-auth__text-button:hover, .olive-auth__switch button:hover, .olive-auth__forgot:hover { text-decoration: underline; }
.olive-auth__footer { flex-shrink: 0; padding-top: 48px; text-align: center; }
.olive-auth .olive-auth__terms { max-width: 340px; margin: 0 auto; color: #69705f; font-size: 12px; line-height: 1.5; }
.olive-auth__terms a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.olive-auth .olive-auth__switch { margin-top: 16px; font-size: 14px; }
.olive-auth__switch button { color: var(--text); }
.olive-auth form, .olive-auth fieldset { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; border: 0; min-width: 0; }
.olive-auth label { display: flex; flex-direction: column; gap: 8px; text-align: left; font-size: 14px; font-weight: 700; }
.olive-auth input { width: 100%; min-width: 0; padding: 16px 18px; border: 0; border-radius: 16px; background: var(--surface-muted, #f4f4f1); color: var(--text); font-size: 16px; line-height: 1.5; outline: none; box-shadow: none; transition: none; }
.olive-auth input:focus, .olive-auth input:active { outline: none; box-shadow: none; }
.olive-auth .olive-auth__code { text-align: center; letter-spacing: .35em; font-size: 22px; font-variant-numeric: tabular-nums; }
.olive-auth .olive-auth__code::placeholder { letter-spacing: normal; font-size: 16px; }
.olive-auth__forgot { align-self: flex-end; margin-top: -8px; }
.olive-auth .olive-auth__error { color: #9c3832; font-size: 14px; text-align: left; }
.olive-auth .olive-auth__muted { font-size: 14px; color: #69705f; }
.olive-auth button:focus-visible, .olive-auth a:focus-visible { outline: 2px solid #3d4633; outline-offset: 4px; }
@keyframes olive-auth-in { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 480px) { .olive-auth h1 { font-size: 28px; } .olive-auth__shell { padding-inline: 24px; } }
@media (prefers-reduced-motion: reduce) { .olive-auth[open] { animation: none; } .olive-auth__primary, .olive-auth input { transition: none; } }
