[hidden]{display:none!important}
.auth-gate{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:22px;background:radial-gradient(ellipse at 15% 0%,#e5efe6 0,transparent 39%),radial-gradient(ellipse at 100% 100%,#eee9dc 0,transparent 36%),#f5f6f3}
.auth-card{width:min(100%,420px);background:#fff;border:1px solid #e6ece6;border-radius:18px;padding:32px;box-shadow:0 22px 70px #21352a12}
.auth-brand{color:#21332c;padding:0;margin-bottom:32px}
.auth-brand strong{font:800 16px 'Manrope',sans-serif;letter-spacing:-.6px}
.auth-brand small{color:#8b9d93}
.auth-card h1{font:700 32px/1.16 'Manrope',sans-serif;letter-spacing:-1.2px;color:#21332c;margin:0}
.auth-copy{font-size:12px;color:#819087;line-height:1.7;margin:10px 0 22px}
.auth-form{display:grid;gap:14px}
.auth-form .field input{height:43px;font-size:12px}
.auth-form .button{height:42px;margin-top:4px}
.auth-toggle{border:0;background:transparent;color:#438062;padding:9px 4px;font-size:10px;font-weight:700}
.auth-toggle:hover{text-decoration:underline}
.auth-privacy{font-size:9px;line-height:1.6;color:#9aa59f;margin:19px 0 0;text-align:center}
.auth-message{padding:10px 12px;border-radius:8px;background:#f0f5f0;color:#62766a;font-size:10px;line-height:1.6;margin:-8px 0 14px}
.auth-message[data-kind="error"]{background:#fbefec;color:#9e5d50}
.auth-message[data-kind="success"]{background:#eaf5ed;color:#397856}
.auth-choice{display:grid;gap:10px;margin:8px 0 0}
.auth-choice>strong{font:700 14px 'Manrope',sans-serif;color:#33483b}
.auth-choice>p{font-size:10px;line-height:1.65;color:#829087;margin:0 0 4px}
.auth-choice-actions{display:grid;gap:8px}
.auth-choice-actions .button{min-height:38px}
.local-mode-button{display:block;margin:10px auto 0}
.sync-status{display:inline-flex;align-items:center;gap:6px;color:#849087;font-size:9px;white-space:nowrap}
.sync-status i{width:6px;height:6px;border-radius:50%;background:#63a579;display:block;flex:none}
.sync-status[data-mode="busy"] i{background:#d2a160;animation:sync-pulse 1s ease-in-out infinite alternate}
.sync-status[data-mode="offline"] i{background:#c97560}
.signout-button{padding:8px 11px;font-size:9px}
@keyframes sync-pulse{to{opacity:.35}}
@media(max-width:780px){.sync-status{font-size:0;gap:0}.sync-status i{width:8px;height:8px}.signout-button{padding:7px 8px}}
@media(max-width:520px){.auth-card{padding:25px 21px;border-radius:15px}.auth-brand{margin-bottom:26px}.auth-card h1{font-size:29px}.auth-copy{font-size:11px}.signout-button{font-size:8px}}
