/**
 * Auth Modal
 */
.alttext-auth-modal { position: fixed; inset: 0; z-index: 999999; font-family: var(--bbai-font); pointer-events: auto; }
.alttext-auth-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.12); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); display: block; padding: 24px; animation: auth-fade-in 0.2s ease-out; }
@keyframes auth-fade-in { from { opacity: 0; } to { opacity: 1; } }
.alttext-auth-modal__content { background: #fff; border-radius: var(--bbai-radius-lg); box-shadow: 0 18px 42px rgba(15,23,42,0.22), 0 4px 12px rgba(15,23,42,0.12), 0 0 0 1px rgba(15,23,42,0.06); max-width: 560px; width: min(calc(100vw - 48px), 560px); max-height: calc(100vh - 48px); overflow-y: auto; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); animation: auth-scale-in 0.2s cubic-bezier(0.16, 1, 0.3, 1); pointer-events: auto; }
@keyframes auth-scale-in { from { opacity: 0; transform: translate(-50%, -48%) scale(0.96); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
.alttext-auth-modal__close { position: absolute; top: 20px; right: 20px; background: none; border: none; font-size: 28px; line-height: 1; color: var(--bbai-gray-400); cursor: pointer; padding: 4px 8px; border-radius: var(--bbai-radius); transition: all var(--bbai-transition-fast); z-index: 10; }
.alttext-auth-modal__close:hover { background: var(--bbai-gray-100); color: var(--bbai-gray-500); }
.alttext-auth-modal__header { text-align: center; padding: 36px 44px 20px; }
.alttext-auth-modal__title { font-size: var(--bbai-text-2xl); font-weight: var(--bbai-font-bold); color: var(--bbai-text); margin: 0 0 6px; line-height: 1.18; }
.alttext-auth-modal__subtitle { font-size: var(--bbai-text-sm); color: var(--bbai-text-muted); margin: 0; line-height: 1.45; }
.alttext-auth-modal__context { margin: 10px 0 0; font-size: 13px; line-height: 1.35; font-weight: var(--bbai-font-semibold); color: var(--bbai-text); }
.alttext-auth-modal__context[hidden] { display: none; }
.alttext-auth-modal__body { padding: 0 44px 28px; }
.alttext-auth-modal__value-step, .alttext-auth-modal__form-step { min-height: 190px; }
.alttext-auth-modal__value-step[hidden], .alttext-auth-modal__form-step[hidden] { display: none; }
.alttext-auth-modal__value-list { display: grid; gap: 10px; margin: 0 0 24px; padding: 0; list-style: none; }
.alttext-auth-modal__value-list li { position: relative; padding-left: 18px; color: var(--bbai-gray-700); font-size: var(--bbai-text-sm); line-height: 1.45; }
.alttext-auth-modal__value-list li::before { content: ""; position: absolute; left: 0; top: 0.6em; width: 6px; height: 6px; border-radius: 999px; background: var(--bbai-primary); }
.alttext-auth-modal__intro-actions { display: grid; gap: 4px; }
.alttext-auth-modal__intro-cta { width: 100%; min-width: 0; margin-bottom: 6px; }
.alttext-auth-modal__intro-cta:disabled { border: 1px solid rgba(148, 163, 184, 0.18); background: #f8fafc; color: #64748b; box-shadow: none; cursor: not-allowed; opacity: 1; }
.alttext-auth-modal__secondary-cta { width: 100%; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; color: var(--bbai-primary); font-size: var(--bbai-text-sm); font-weight: var(--bbai-font-semibold); line-height: 1.3; cursor: pointer; }
.alttext-auth-modal__secondary-cta:hover, .alttext-auth-modal__secondary-cta:focus-visible { background: var(--bbai-gray-50); outline: none; }
.alttext-auth-modal__form-step { padding-top: 18px; border-top: 1px solid var(--bbai-border); }

/* Form */
.alttext-form-group { margin-bottom: 20px; }
.alttext-form-group label { display: block; font-weight: var(--bbai-font-semibold); font-size: var(--bbai-text-sm); color: var(--bbai-gray-700); margin-bottom: 8px; }
.alttext-form-group__header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.alttext-form-group input { width: 100%; padding: 12px 14px; border: 1px solid var(--bbai-border); border-radius: var(--bbai-radius-md); font-size: 15px; color: var(--bbai-text); transition: all var(--bbai-transition-fast); }
.alttext-form-group input::placeholder { color: var(--bbai-gray-400); }
.alttext-form-group input:focus { outline: none; border-color: var(--bbai-primary); box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.15); }
.alttext-form-group input[readonly] { background-color: var(--bbai-gray-50); cursor: not-allowed; }
.alttext-form-group small { display: block; color: var(--bbai-text-muted); font-size: 13px; margin-top: 6px; }
.alttext-forgot-password-link { color: var(--bbai-primary); font-size: 13px; text-decoration: none; font-weight: var(--bbai-font-medium); }
.alttext-forgot-password-link:hover { opacity: 0.7; }

/* Button */
.alttext-btn { display: flex; align-items: center; justify-content: center; min-height: 40px; min-width: min(100%, 280px); max-width: 100%; padding: 0 18px; border: none; border-radius: 8px; font-size: 14px; font-weight: var(--bbai-font-semibold); line-height: 1.15; cursor: pointer; transition: all var(--bbai-transition-fast); width: auto; margin: 0 auto 12px; box-sizing: border-box; }
.alttext-btn:disabled { opacity: 0.6; cursor: not-allowed; }
.alttext-btn--primary { background: var(--bbai-primary); color: white; }
.alttext-btn--primary:hover:not(:disabled) { background: var(--bbai-primary-hover); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08); }
.alttext-btn--primary:active:not(:disabled) { transform: scale(0.98); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.06); }
.alttext-btn__spinner { margin-left: 8px; }

/* Auth Switch */
.alttext-auth-switch { text-align: center; color: var(--bbai-text-muted); font-size: var(--bbai-text-sm); margin: 0; }
.alttext-auth-switch a { color: var(--bbai-primary); text-decoration: none; font-weight: var(--bbai-font-semibold); }
.alttext-auth-switch a:hover { opacity: 0.7; }

/* Alert */
.alttext-alert { padding: 12px 16px; border-radius: var(--bbai-radius-md); margin-bottom: 20px; font-size: var(--bbai-text-sm); }
.alttext-alert--error { background: var(--bbai-error-light); color: #991b1b; border-left: 4px solid var(--bbai-error); }
.alttext-alert--success { background: var(--bbai-success-light); color: #065f46; border-left: 4px solid var(--bbai-success); }

/* Footer */
.alttext-auth-modal__footer { padding: 16px 44px 28px; text-align: center; border-top: 1px solid var(--bbai-border); }
.alttext-auth-modal__upsell { font-size: 13px; color: var(--bbai-text-muted); margin: 0; line-height: 1.5; }

@media (max-width: 640px) {
    .alttext-auth-modal__overlay { padding: 12px; }
    .alttext-auth-modal__content { width: min(calc(100vw - 24px), 100%); max-height: calc(100vh - 24px); }
    .alttext-auth-modal__header { padding: 32px 24px 20px; }
    .alttext-auth-modal__body { padding: 0 24px 24px; }
    .alttext-auth-modal__value-step, .alttext-auth-modal__form-step { min-height: 0; }
    .alttext-auth-modal__footer { padding: 16px 24px 24px; }
    .alttext-btn { width: 100%; min-width: 0; }
}

#bbai-dashboard-main {
    transition: filter 240ms ease, transform 240ms ease;
}

body.bbai-auth-modal-open #bbai-dashboard-main {
    filter: blur(1.5px);
    transform: scale(0.98);
    transform-origin: center top;
}

@media (prefers-reduced-motion: reduce) {
    .alttext-auth-modal__overlay,
    .alttext-auth-modal__content {
        animation: none;
    }

    body.bbai-auth-modal-open #bbai-dashboard-main {
        transform: none;
    }
}
