/* Cerveio Authentication Module — auth-only styles. Loaded on auth-*.html pages only. */

/* shell */
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:32px 20px}
.auth-topbar{position:fixed;top:0;left:0;right:0;padding:20px 24px;z-index:5}

/* utility (small, intentionally mirrors dashboard.css's identical utility — see technical debt note) */
.dash-hidden{display:none}


/* card */
.auth-card{max-width:440px;width:100%;padding:36px}
.auth-card-wide{max-width:560px}
.auth-card h1{font-family:Manrope,Inter,sans-serif;font-weight:800;font-size:1.7rem;color:#fff;margin:0 0 8px;letter-spacing:-.03em}
.auth-card .lead{font-size:.95rem;margin:0 0 22px}
.auth-links{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-top:18px;font-size:.82rem}
.auth-card-note{margin-top:18px;padding:16px 18px;font-size:.85rem}
.auth-card-note p{margin:0 0 12px}
.auth-card-note .btn{width:100%}
.auth-links-start{justify-content:flex-start;gap:16px}

/* prototype disclosure banner — must stay visible on every auth page */
.auth-banner{display:flex;gap:10px;align-items:flex-start;border:1px solid rgba(255,190,80,.3);background:rgba(255,190,80,.08);border-radius:var(--radius-lg);padding:12px 14px;font-size:.78rem;color:#ffd9a0;margin-bottom:22px}
.auth-banner strong{color:#ffe4b8}

/* status alerts */
.auth-alert{border-radius:var(--radius-lg);padding:12px 14px;font-size:.82rem;margin-bottom:18px;border:1px solid var(--line)}
.auth-alert-success{border-color:rgba(90,220,140,.3);background:rgba(90,220,140,.08);color:#9fe3b0}
.auth-alert-error{border-color:rgba(255,120,120,.3);background:rgba(255,120,120,.08);color:#ff9d9d}
.auth-alert-info{border-color:rgba(95,150,255,.3);background:rgba(95,150,255,.08);color:#b7c8ea}

/* inline field validation */
.auth-field-error{display:none;font-size:.72rem;color:#ff9d9d;margin-top:-10px}
.auth-field-error.is-visible{display:block}
input[aria-invalid="true"]{border-color:#ff6b6b}

/* Google sign-in */
.btn-google{gap:10px}
.btn-google svg{width:18px;height:18px;flex:none}
.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:var(--line)}

/* password visibility toggle */
.auth-password-field{position:relative}
.auth-password-field .input{padding-right:44px}
.auth-password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:32px;height:32px;display:grid;place-items:center;background:transparent;border:0;border-radius:8px;color:var(--muted);cursor:pointer;padding:0}
.auth-password-toggle:hover{color:#fff;background:rgba(255,255,255,.06)}
.auth-password-toggle:focus-visible{outline:2px solid #5f96e4;outline-offset:1px;color:#fff}
.auth-password-toggle svg{width:18px;height:18px;pointer-events:none}
.auth-password-toggle .icon-eye-off{display:none}
.auth-password-toggle.is-visible .icon-eye{display:none}
.auth-password-toggle.is-visible .icon-eye-off{display:block}

/* password strength meter */
.auth-strength{display:flex;gap:4px;margin-top:-8px}
.auth-strength-bar{height:4px;flex:1;border-radius:2px;background:rgba(140,160,190,.18);transition:background-color .2s var(--ease)}
.auth-strength-bar.is-weak{background:#ff6b6b}
.auth-strength-bar.is-fair{background:#ffcf7a}
.auth-strength-bar.is-strong{background:#5ad68c}
.auth-strength-label{font-size:.7rem;color:var(--muted)}

/* verification / info banner (email verify, etc.) */
.auth-verify-icon{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:rgba(95,150,255,.12);border:1px solid rgba(95,150,255,.25);margin:0 auto 18px;font-size:1.3rem}

/* loading spinner (functional — has a text label, not purely decorative) */
.auth-spinner{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:var(--muted)}
.auth-spinner-dot{width:14px;height:14px;border-radius:50%;border:2px solid rgba(140,174,228,.25);border-top-color:#5f96e4;animation:authSpin .7s linear infinite}
@keyframes authSpin{to{transform:rotate(360deg)}}

/* generic empty state (reused pattern, auth-scoped alias for consistency) */
.auth-empty{text-align:center;color:var(--muted);padding:20px 0}

/* toast (auth-scoped copy of the dashboard toast pattern — kept isolated per instruction) */
.auth-toast{position:fixed;bottom:24px;right:24px;z-index:80;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.auth-toast-item{pointer-events:auto;background:rgba(6,14,28,.96);border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:.82rem;color:#fff;box-shadow:var(--shadow-md);animation:authToastIn .25s var(--ease)}
@keyframes authToastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:480px){.auth-card{padding:26px}}
