.auth-open { overflow:hidden; }
.auth-dialog { width:min(480px,calc(100% - 28px)); max-height:calc(100dvh - 28px); padding:36px 28px; border:0; border-radius:28px; color:#183c34; box-shadow:0 20px 100px #12382e40; }
.auth-dialog::backdrop { background:#12382e77; backdrop-filter:blur(4px); }
.auth-content h1,.auth-page h1 { font-size:27px; line-height:1.25; letter-spacing:-.8px; margin:28px 0 10px; }
.auth-content>p,.auth-page .db-access-card>p { color:#60736b; font-size:13px; }
.auth-password { display:flex; position:relative; }
.auth-password input { padding-right:82px; }
.auth-password button { position:absolute; right:4px; top:4px; bottom:4px; padding:8px 12px; font-size:11px; color:#0f766e; }
.auth-form .db-button { width:100%; margin:0; }
.auth-form { gap:15px; }
.auth-form label.auth-consent { display:flex; align-items:flex-start; gap:10px; font-size:11px; font-weight:400; }
.auth-consent input { width:18px; height:18px; min-height:18px; flex:0 0 18px; accent-color:#0f766e; margin-top:3px; }
.auth-consent a,.auth-text-link,.auth-switch a { text-decoration:underline; text-underline-offset:3px; color:#0f766e; }
.auth-error { color:#a43832; font-size:12px; }
.auth-error:empty { display:none; }
.auth-text-link { display:inline-flex; align-items:center; min-height:44px; font-size:12px; margin-top:8px; }
.auth-switch { margin-top:12px; font-size:12px; }
.auth-modal-link { display:block; padding:12px 0; min-height:44px; margin-top:16px; font-size:12px; color:#0f766e; }
.auth-footnote { font-size:11px!important; color:#66796c; margin-top:20px; }
.auth-recovery-code { display:block; padding:20px 16px; margin:24px 0; border:1px dashed #89b79b; border-radius:14px; background:#eff8f0; overflow-wrap:anywhere; font-size:16px; user-select:all; }
.auth-success { display:grid; place-items:center; width:60px; height:60px; margin-top:24px; background:#e2f1e5; color:#0f766e; border-radius:50%; font-size:28px; }
.auth-page .db-access-card { margin-block:20px; }
@media(max-width:480px){.auth-page .db-access { padding:16px; }.auth-page .db-access-card { padding:26px 22px; }.auth-dialog { padding:32px 22px; }}

/* Login com Google e mensagens */
.auth-google { margin: 22px 0 6px; }
.auth-google-button { display: flex; justify-content: center; min-height: 44px; }
.auth-google .auth-footnote { margin: 12px 0 0; text-align: center; }
.auth-divider { display: flex; align-items: center; gap: 12px; margin: 18px 0 4px; color: #66796c; font-size: 12px; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: #d5e3dc; }
.auth-success.is-error { background: #fbe8e6; color: #a43832; }
.auth-form input:focus-visible, .auth-text-link:focus-visible { outline: 2px solid #0f766e; outline-offset: 2px; }
.auth-error a { text-decoration: underline; }
