/* ============================================================================
 * BigBreakingWire Prime — Premium: Authentication
 * ----------------------------------------------------------------------------
 * Scoped override layer for /prime/login/, /prime/register/,
 * /prime/forgot-password/, /prime/reset-password/ (.auth-card root — the
 * four templates share this exact card contract). Form names, actions,
 * nonces, redirects and anti-enumeration behavior are untouched
 * (PHP unmodified).
 *
 * SAFETY CONTRACT: cosmetic only. Never touch input name/type, form action,
 * nonce fields, submit-button ids or the IIFE submit guards. No !important,
 * z-index, position, display/overflow/height/width on functional nodes.
 * ========================================================================== */

.auth-card {
    background: var(--bbw-surface, #ffffff);
    border: 1px solid var(--bbw-border, #e2e7ee);
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(11, 21, 38, .12);
    padding: 34px 32px;
    max-width: 430px;
}
.auth-brand { margin-bottom: 14px; }
.auth-title { font-size: 22px; font-weight: 800; letter-spacing: -.3px; color: var(--bbw-ink, #0b1526); }
.auth-subtitle { font-size: 13.5px; font-weight: 500; color: var(--bbw-ink-2, #46556c); margin-top: 4px; }
.auth-card .form-group { margin-bottom: 14px; }
.auth-card .form-label { font-size: 13px; font-weight: 700; color: var(--bbw-ink, #0b1526); margin-bottom: 6px; }
.auth-card .form-input {
    font-family: inherit; font-size: 14px;
    border: 1px solid var(--bbw-border-strong, #cfd8e3); border-radius: 10px;
    padding: 11px 14px; background: var(--bbw-surface, #ffffff); color: var(--bbw-ink, #0b1526);
}
.auth-card .form-input::placeholder { color: var(--bbw-ink-3, #8a97ab); }
.auth-card .form-input:focus {
    border-color: var(--bbw-blue, #1e56e0); box-shadow: 0 0 0 3px rgba(30, 86, 224, .12); outline: none;
}
.auth-card .btn-submit {
    font-family: inherit; font-size: 14.5px; font-weight: 800;
    border-radius: 11px; padding: 12px 18px; cursor: pointer; width: 100%;
    background: var(--bbw-blue, #1e56e0); border: 1px solid var(--bbw-blue, #1e56e0); color: #fff;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    transition: background .15s ease, border-color .15s ease;
}
.auth-card .btn-submit:hover:not([disabled]) { background: var(--bbw-blue-strong, #1745b5); border-color: var(--bbw-blue-strong, #1745b5); }
.auth-card .btn-submit:focus-visible { outline: 2px solid var(--bbw-blue-strong, #1745b5); outline-offset: 2px; }
.auth-card .btn-submit[disabled] { opacity: .6; cursor: wait; }
.auth-card .btn-spin {
    width: 16px; height: 16px; border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .4);
    border-top-color: #fff;
    animation: bbw-prem-auth-spin .8s linear infinite;
    display: inline-block;
}
@keyframes bbw-prem-auth-spin { to { transform: rotate(360deg); } }
.auth-card .error-badge {
    font-size: 13px; font-weight: 600;
    color: var(--bbw-down, #d90429); background: var(--bbw-down-soft, #fdeef1);
    border: 1px solid rgba(217, 4, 41, .25);
    border-radius: 10px; padding: 10px 14px; margin-bottom: 14px;
}
.auth-card .error-badge:empty { display: none; }
.auth-card .success-badge {
    font-size: 13px; font-weight: 600;
    color: var(--bbw-up, #0e9f6e); background: var(--bbw-up-soft, #e8f8f1);
    border: 1px solid rgba(14, 159, 110, .25);
    border-radius: 10px; padding: 10px 14px; margin-bottom: 14px;
}
.auth-card .success-badge:empty { display: none; }
.auth-card .auth-footer { font-size: 13px; color: var(--bbw-ink-2, #46556c); margin-top: 16px; text-align: center; }
.auth-card .auth-footer a { color: var(--bbw-blue, #1e56e0); font-weight: 700; text-decoration: none; border-radius: 4px; }
.auth-card .auth-footer a:hover { text-decoration: underline; }
.auth-card .auth-footer a:focus-visible { outline: 2px solid var(--bbw-blue, #1e56e0); outline-offset: 2px; }

@media (max-width: 480px) {
    .auth-card { padding: 26px 22px; border-radius: 14px; }
    .auth-title { font-size: 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .auth-card .btn-spin { animation: none; border-top-color: rgba(255, 255, 255, .4); }
    .auth-card .btn-submit { transition: none; }
}
