/* ============================================
   Theme Login — Inherited from Theme Design System
   Loaded only when Custom Login plugin has 'Inherit Theme' active
   Dependencies: bd-theme (style.css)
   ============================================ */

/* ══════════════════════════════════════════
   LAYOUT — Normal Document Flow
   ══════════════════════════════════════════ */
/* Body background only — no flexbox, no viewport constraints.
   The page flows naturally: Header → Main → Footer */
body {
    background: linear-gradient(135deg, var(--bd-dark) 0%, var(--bd-dark-2) 50%, var(--bd-dark-3) 100%) !important;
}
body::before {
    content: '';
    position: fixed;
    inset: 0;
    background:
        radial-gradient(ellipse at 20% 50%, rgba(249,115,22,0.06) 0%, transparent 60%),
        radial-gradient(ellipse at 80% 20%, rgba(59,130,246,0.04) 0%, transparent 50%);
    pointer-events: none;
    z-index: 0;
}

/* Hide page title — not needed on login page */
.bd-single-title {
    display: none !important;
}

/* Reduce spacing above the form — bring card closer to header */
.bd-main-content--full {
    padding-top: 0 !important;
}
.bd-main-content--full .bd-page-content {
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    padding: var(--bd-space-sm) 0 !important;
    margin: 0 !important;
}

/* Shrink spacer block to tighten gap */
.wp-block-spacer {
    height: 24px !important;
}

/* Form card — horizontally centered via auto margins */
body .custom-auth-container {
    margin-left: auto !important;
    margin-right: auto !important;
}

/* ══════════════════════════════════════════
   FORM CONTAINER — Compact Card
   ══════════════════════════════════════════ */
/* Using body prefix to beat plugin's inline !important styles */
body .custom-auth-container {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 650px !important;
    padding: var(--bd-space-2xl) var(--bd-space-xl) !important;
    background: var(--bd-surface) !important;
    border: var(--bd-border-w) solid var(--bd-border) !important;
    box-shadow: var(--bd-shadow-lg) !important;
    border-radius: var(--bd-radius-card) !important;
}

/* ══════════════════════════════════════════
   TITLE
   ══════════════════════════════════════════ */
body .custom-auth-title {
    font-size: var(--bd-text-2xl) !important;
    font-weight: 900 !important;
    color: var(--bd-text) !important;
    text-align: center !important;
    margin-bottom: var(--bd-space-lg) !important;
    letter-spacing: -0.03em !important;
    text-transform: uppercase !important;
}

/* ══════════════════════════════════════════
   TABS
   ══════════════════════════════════════════ */
body .custom-auth-tabs {
    display: flex !important;
    gap: 0 !important;
    margin-bottom: var(--bd-space-md) !important;
    border: 2px solid var(--bd-border) !important;
    background: var(--bd-primary-subtle) !important;
    border-radius: 8px !important;
    padding: 0 !important;
    width: 100% !important;
}
body .auth-tab {
    flex: 1 !important;
    padding: 10px 14px !important;
    font-size: var(--bd-text-xs) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    color: var(--bd-text-muted) !important;
    background: transparent !important;
    border: none !important;
    border-right: 2px solid var(--bd-border) !important;
    cursor: pointer !important;
    transition: all var(--bd-transition) !important;
    position: relative !important;
    border-radius: 0 !important;
}
body .auth-tab:last-child {
    border-right: none !important;
}
body .auth-tab:hover {
    color: var(--bd-primary) !important;
    background: rgba(249,115,22,0.04) !important;
}
body .auth-tab.active {
    color: var(--bd-text-on-primary) !important;
    background: var(--bd-primary) !important;
}

/* ══════════════════════════════════════════
   FORM GROUPS — Inputs
   ══════════════════════════════════════════ */
body .form-group {
    margin-bottom: var(--bd-space-md) !important;
}
body .form-group label {
    display: block !important;
    font-size: var(--bd-text-xs) !important;
    font-weight: 700 !important;
    color: var(--bd-text) !important;
    margin-bottom: 4px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
}
body .form-group input {
    width: 100% !important;
    padding: 11px 14px !important;
    font-size: var(--bd-text-sm) !important;
    font-family: var(--bd-font) !important;
    color: var(--bd-text) !important;
    background: var(--bd-surface-3) !important;
    border: 2px solid var(--bd-border) !important;
    outline: none !important;
    transition: all var(--bd-transition) !important;
    border-radius: 8px !important;
}
body .form-group input:focus {
    border-color: var(--bd-primary) !important;
    box-shadow: var(--bd-shadow-sm) !important;
    background: var(--bd-surface) !important;
}
body .form-group input::placeholder {
    color: var(--bd-text-muted) !important;
    opacity: 0.7 !important;
}

/* Input wrapper for password toggle */
.input-wrapper {
    position: relative !important;
}
.input-wrapper input {
    padding-right: 44px !important;
}
.password-toggle-icon {
    position: absolute !important;
    right: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    cursor: pointer !important;
    font-size: 1.1rem !important;
    color: var(--bd-text-muted) !important;
    transition: color var(--bd-transition) !important;
    line-height: 1 !important;
    user-select: none !important;
}
.password-toggle-icon:hover {
    color: var(--bd-primary) !important;
}

/* ══════════════════════════════════════════
   SUBMIT BUTTON
   ══════════════════════════════════════════ */
body .form-group button[type="submit"] {
    width: 100% !important;
    padding: 13px 20px !important;
    font-size: var(--bd-text-sm) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    color: var(--bd-text-on-primary) !important;
    background: var(--bd-gradient-primary) !important;
    border: 2px solid var(--bd-primary-dark) !important;
    cursor: pointer !important;
    transition: all var(--bd-transition) !important;
    box-shadow: var(--bd-shadow-sm) !important;
    font-family: var(--bd-font) !important;
    border-radius: 8px !important;
}
body .form-group button[type="submit"]:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: var(--bd-shadow-md) !important;
}
body .form-group button[type="submit"]:active {
    transform: translate(0, 0) !important;
    box-shadow: none !important;
}

/* ══════════════════════════════════════════
   FOOTER LINKS
   ══════════════════════════════════════════ */
.form-footer-links {
    text-align: center !important;
    margin-top: var(--bd-space-lg) !important;
    padding-top: var(--bd-space-md) !important;
    border-top: 2px solid var(--bd-border-light) !important;
}
.form-footer-links a {
    font-size: var(--bd-text-sm) !important;
    font-weight: 600 !important;
    color: var(--bd-primary) !important;
    text-decoration: none !important;
    transition: color var(--bd-transition) !important;
}
.form-footer-links a:hover {
    color: var(--bd-primary-dark) !important;
    text-decoration: underline !important;
}

/* Custom auth footer */
.custom-auth-footer {
    margin-top: var(--bd-space-lg) !important;
    text-align: center !important;
    font-size: var(--bd-text-sm) !important;
    color: var(--bd-text-muted) !important;
}

/* ══════════════════════════════════════════
   AUTH MESSAGES
   ══════════════════════════════════════════ */
.auth-message {
    margin-top: var(--bd-space-md) !important;
    padding: var(--bd-space-sm) var(--bd-space-md) !important;
    font-size: var(--bd-text-sm) !important;
    font-weight: 600 !important;
    display: none !important;
}
.auth-message.success {
    display: block !important;
    color: #16a34a !important;
    background: rgba(22,163,74,0.08) !important;
    border: 2px solid #16a34a !important;
}
.auth-message.error {
    display: block !important;
    color: #dc2626 !important;
    background: rgba(220,38,38,0.08) !important;
    border: 2px solid #dc2626 !important;
}
.auth-message.info {
    display: block !important;
    color: var(--bd-primary) !important;
    background: var(--bd-primary-subtle) !important;
    border: 2px solid var(--bd-primary) !important;
}

/* ══════════════════════════════════════════
   MODALS
   ══════════════════════════════════════════ */
.custom-auth-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 99999 !important;
    display: flex;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(15,23,36,0.6) !important;
    backdrop-filter: blur(4px) !important;
}
.custom-auth-modal[style*="display: none"] {
    display: none !important;
}
.custom-auth-modal-content {
    background: var(--bd-surface) !important;
    border: var(--bd-border-w) solid var(--bd-border) !important;
    box-shadow: var(--bd-shadow-lg) !important;
    padding: var(--bd-space-2xl) !important;
    max-width: 440px !important;
    width: 90% !important;
    text-align: center !important;
}
.custom-auth-modal-content h2 {
    font-size: var(--bd-text-2xl) !important;
    font-weight: 900 !important;
    color: var(--bd-text) !important;
    margin-bottom: var(--bd-space-sm) !important;
}
.custom-auth-modal-content p {
    color: var(--bd-text-soft) !important;
    font-size: var(--bd-text-base) !important;
    margin-bottom: var(--bd-space-lg) !important;
}
.custom-auth-modal-icon {
    font-size: 2.5rem !important;
    margin-bottom: var(--bd-space-md) !important;
}
.custom-auth-modal-close {
    display: inline-flex !important;
    padding: 10px 24px !important;
    font-size: var(--bd-text-sm) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    color: var(--bd-text-on-primary) !important;
    background: var(--bd-dark) !important;
    border: var(--bd-border-w) solid var(--bd-border) !important;
    cursor: pointer !important;
    transition: all var(--bd-transition) !important;
    font-family: var(--bd-font) !important;
}
.custom-auth-modal-close:hover {
    background: var(--bd-dark-2) !important;
    transform: translate(-2px, -2px) !important;
    box-shadow: var(--bd-shadow-sm) !important;
}

/* ══════════════════════════════════════════
   LOCKOUT DETAILS BOX
   ══════════════════════════════════════════ */
.lockout-details-box {
    background: var(--bd-surface-2) !important;
    border: 2px dashed var(--bd-border-light) !important;
    color: var(--bd-text-soft) !important;
}

/* ══════════════════════════════════════════
   PASSWORD STRENGTH
   ══════════════════════════════════════════ */
.strength-bar-container {
    background: var(--bd-border-light) !important;
}

/* ══════════════════════════════════════════
   USERNAME CHECK ICON
   ══════════════════════════════════════════ */
.username-check-icon {
    font-size: 1rem !important;
}

/* ══════════════════════════════════════════
   LOGGED IN STATE
   ══════════════════════════════════════════ */
.custom-auth-loggedin {
    position: relative;
    z-index: 1;
    text-align: center !important;
    padding: var(--bd-space-2xl) !important;
    background: var(--bd-surface) !important;
    border: var(--bd-border-w) solid var(--bd-border) !important;
    box-shadow: var(--bd-shadow-lg) !important;
    border-radius: var(--bd-radius-card) !important;
    max-width: 520px !important;
    margin: 0 auto !important;
}
.custom-auth-loggedin p {
    font-size: var(--bd-text-xl) !important;
    font-weight: 700 !important;
    color: var(--bd-text) !important;
    margin-bottom: var(--bd-space-lg) !important;
}
.custom-auth-loggedin a {
    display: inline-flex !important;
    padding: 12px 24px !important;
    font-size: var(--bd-text-sm) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    color: var(--bd-text-on-primary) !important;
    background: var(--bd-primary) !important;
    border: var(--bd-border-w) solid var(--bd-primary-dark) !important;
    text-decoration: none !important;
    transition: all var(--bd-transition) !important;
}
.custom-auth-loggedin a:hover {
    background: var(--bd-primary-dark) !important;
    transform: translate(-2px, -2px) !important;
}

/* ══════════════════════════════════════════
   RESPONSIVE
   ══════════════════════════════════════════ */
@media (max-width: 600px) {
    .custom-auth-container {
        max-width: 100% !important;
        padding: var(--bd-space-xl) var(--bd-space-lg) !important;
    }
    .custom-auth-title {
        font-size: var(--bd-text-xl) !important;
        margin-bottom: var(--bd-space-md) !important;
    }
    .custom-auth-tabs {
        margin-bottom: var(--bd-space-md) !important;
    }
    .auth-tab {
        padding: 8px 10px !important;
        font-size: 0.6rem !important;
    }
    .form-group {
        margin-bottom: var(--bd-space-sm) !important;
    }
    .form-group label {
        font-size: 0.65rem !important;
        margin-bottom: 3px !important;
    }
    .form-group input {
        padding: 10px 12px !important;
        font-size: var(--bd-text-sm) !important;
    }
    .form-group button[type="submit"] {
        padding: 12px 16px !important;
        font-size: var(--bd-text-xs) !important;
    }
    .form-footer-links {
        margin-top: var(--bd-space-md) !important;
        padding-top: var(--bd-space-sm) !important;
    }
}

@media (max-width: 400px) {
    .custom-auth-container {
        padding: var(--bd-space-lg) var(--bd-space-md) !important;
    }
}

/* ══════════════════════════════════════════
   DARK MODE
   ══════════════════════════════════════════ */
[data-theme="dark"] body {
    background: var(--bd-surface) !important;
}
[data-theme="dark"] .bd-site-main {
    background: transparent !important;
}
[data-theme="dark"] .custom-auth-container {
    background: var(--bd-surface-2) !important;
    border-color: var(--bd-border) !important;
}
[data-theme="dark"] .form-group input {
    background: var(--bd-surface-3) !important;
    border-color: var(--bd-border) !important;
    color: var(--bd-text) !important;
}
[data-theme="dark"] .form-group input:focus {
    border-color: var(--bd-primary) !important;
    background: var(--bd-surface-2) !important;
}
[data-theme="dark"] .custom-auth-tabs {
    background: rgba(249,115,22,0.06) !important;
    border-color: var(--bd-border) !important;
}
[data-theme="dark"] .auth-tab {
    border-right-color: var(--bd-border) !important;
    color: var(--bd-text-muted) !important;
}
[data-theme="dark"] .auth-tab.active {
    color: #ffffff !important;
    background: var(--bd-primary) !important;
}
[data-theme="dark"] .custom-auth-modal-content {
    background: var(--bd-surface-2) !important;
    border-color: var(--bd-border) !important;
}
[data-theme="dark"] .custom-auth-loggedin {
    background: var(--bd-surface-2) !important;
    border-color: var(--bd-border) !important;
}
[data-theme="dark"] .auth-message.success {
    background: rgba(22,163,74,0.12) !important;
}
[data-theme="dark"] .auth-message.error {
    background: rgba(220,38,38,0.12) !important;
}
[data-theme="dark"] .auth-message.info {
    background: rgba(249,115,22,0.12) !important;
}
